利用I/O模擬多路復(fù)用器PSoC簡化傳感器控制設(shè)計(jì)
CY8C21×34可編程系統(tǒng)級芯片(PSoC)混合信號陣列具有一個I/O模擬多路復(fù)用器,由于每個引腳都可以被用作一個模擬輸入,因此采用單個SoC便能夠輕松實(shí)現(xiàn)需要大量不同類型傳感器的控制應(yīng)用。本文介紹了在多種傳感器控制應(yīng)用中如何利用該器件來簡化設(shè)計(jì)。
圖1:模擬多路復(fù)用器/系統(tǒng)連接。
工業(yè)控制應(yīng)用常常需要許多模擬輸入,即使是具有一個PWM輸出的最簡單的風(fēng)扇控制器也有可能需要對數(shù)量眾多的溫度傳感器進(jìn)行監(jiān)控。模擬輸入是寶貴的資源,經(jīng)常很快就會被消耗殆盡。在很多場合,設(shè)計(jì)工程師不得不采用一個更加昂貴的部件,從而導(dǎo)致一些多余的空閑資源,或者必須增加外部多路復(fù)用器,以滿足對模擬輸入信號訪問次數(shù)增加的需要。而且,傳感器并不總是提供一個緩沖輸出電壓,它們有可能將信號轉(zhuǎn)換成某些非電壓參數(shù),比如電阻或電容。在不少情況下,信號調(diào)節(jié)的成本會超過控制器的成本。
在選擇控制器的時候,始終存在這樣一個問題,那就是設(shè)計(jì)工程師必須規(guī)定多少個模擬輸入。對于一個只需要6個輸入的系統(tǒng)而言,8個輸入是否足夠?需求會不會繼續(xù)提高?一個特定的控制器系列能夠處理多少個模擬輸入?如果我的設(shè)計(jì)需要升級至一個具有更多輸入的器件,那么我的可選方案是什么?這種選擇必須在竭力滿足項(xiàng)目的成本要求、并同時順應(yīng)客戶和市場部門不斷變化的規(guī)格要求的情況下做出。一種簡單的解決方案便是使每個引腳都能夠成為一個模擬輸入,而這在過去是做不到的,I/O模擬多路復(fù)用器將其變?yōu)榱爽F(xiàn)實(shí)。
I/O模擬多路復(fù)用器是一種大型交叉開關(guān),它允許將任何引腳連接至一個控制系統(tǒng)的模擬陣列。就是這樣的一個多路復(fù)用器被內(nèi)置于CY8C21x34可配置混合信號陣列之中。該器件每個引腳均具有一個開關(guān),當(dāng)某個開關(guān)被選擇時,則將其所在的引腳與一根模擬總線相連。該控制器系列提供了多達(dá)28個I/O引腳,每個引腳都有可能成為一個模擬輸入。該總線還與一個模擬陣列相連。模擬陣列由4個可配置模塊組成,當(dāng)這些模塊與數(shù)字資源組合在一起時,將形成復(fù)雜的信號處理器??赡艿哪M功能包括10位模擬-數(shù)字轉(zhuǎn)換器(ADC)和比較器。
圖2:具有電流DAC的模擬多路復(fù)用器。
傳感器是一種換能器,用于把某種物理量變換成可進(jìn)行電氣測量的參數(shù)。對于許多換能器來說,這種轉(zhuǎn)換的最終結(jié)果是電壓。例如,LM35溫度傳感器就提供了一個與溫度成正比的輸出電壓。溫度的測量只需對輸出電壓進(jìn)行數(shù)字化處理,采用適當(dāng)?shù)霓D(zhuǎn)換公式(在本例中為:Temp=Vmeasured/10mV)即可把電壓轉(zhuǎn)換成溫度。
以一個需要在系統(tǒng)中測量16處溫度的控制應(yīng)用為例,簡單的做法是在所需之處安放傳感器并將其各自連接至一個引腳。模擬陣列被配置為一個ADC并連接至模擬總線。利用該拓?fù)浣Y(jié)構(gòu),即可將每個傳感器順序連接至模擬總線并進(jìn)行數(shù)字化處理。某些類型的傳感器具有一個阻性輸出,此類傳感器包括熱敏電阻、光電管、應(yīng)力計(jì)和傳導(dǎo)單元。這些傳感器的信息讀出需要通過電阻測量來完成,通常的做法是采用一個DC電流來模擬傳感器輸出并測量負(fù)載電壓。
為了方便電阻的測量,在CY8C21x34的模擬總線上增設(shè)了一個可編程電流DAC。該電流DAC可在兩個范圍內(nèi)進(jìn)行選擇和調(diào)節(jié):0~20μA或0~400μA。如需讀出電阻,則只要把傳感器連接至一個與模擬總線相連的引腳并開啟電流DAC即可,將會產(chǎn)生一個與電阻和電流的乘積相等的負(fù)載電壓??衫帽慌渲脼锳DC的模擬模塊來讀出該電壓。對該設(shè)計(jì)方案進(jìn)行校準(zhǔn)的方法之一是犧牲一個引腳來連接一個外部基準(zhǔn)電阻器。首先測量基準(zhǔn)電阻,測得的電壓始終與電阻成正比;接著測量傳感器電阻,在已知測量電壓和基準(zhǔn)電阻器阻值的情況下,即可計(jì)算傳感器電阻:
[!--empirenews.page--]
現(xiàn)在,傳感器電阻讀數(shù)的準(zhǔn)確度僅受限于基準(zhǔn)電阻器的準(zhǔn)確度和ADC的分辨率。任何增益誤差都不會被帶入計(jì)算之中。
然后,假設(shè)先前討論的控制應(yīng)用在規(guī)格上有一個變化,即要求用熱敏電阻來代替LM35。所選的特定熱敏電阻具有10kW/25℃的標(biāo)稱電阻,簡單的實(shí)現(xiàn)方法是把熱敏電阻布設(shè)于所需的位置并將它們各自連接至一個引腳。將一個多余的引腳連接至10kW基準(zhǔn)電阻器,并設(shè)定電流DAC產(chǎn)生一個100μA的電流。通過將模擬陣列配置為一個ADC,即可順序測量每個負(fù)載電壓并計(jì)算所有熱敏電阻的阻值,再利用合適的方程來把這些電阻值轉(zhuǎn)換為溫度值。
圖3:具有放電電路的模擬多路復(fù)用器。
有些類型的傳感器具有容性輸出,其中包括加速計(jì)和壓力傳感器。與產(chǎn)生DC負(fù)載電壓的阻性傳感器不同,當(dāng)采用DC電流來激勵時,容性傳感器將產(chǎn)生一個斜坡電壓,斜率與激勵電流成正比,而與測量電容成反比。為了方便該轉(zhuǎn)換速率的測量,在CY8C21x34的模擬總線上增設(shè)了一個放電開關(guān)。當(dāng)被選擇時,該開關(guān)將把模擬總線放電至地電位。可采用多種可配置資源來控制其操作。如欲測量斜坡,則把模擬模塊配置成采樣比較器。
比較器的輸出負(fù)責(zé)控制放電開關(guān)。該拓?fù)浣Y(jié)構(gòu)形成了一個弛張振蕩器(relaxaTIon oscillator)。當(dāng)斜坡電壓上升至跳變點(diǎn)(trip point)時,比較器將關(guān)閉放電通路并重新把模擬總線放電至地電位。然后,比較器釋放開關(guān),電壓繼續(xù)上升。比較器輸出被饋送至配置了一個頻率計(jì)數(shù)器或周期定時器的數(shù)字部分。電容值可以從測量的數(shù)字信號推導(dǎo)出來。
現(xiàn)在,假設(shè)一個需要測量壓力的控制應(yīng)用。微加工技術(shù)的發(fā)展使得能夠利用固定在玻璃襯底上的硅薄膜來制作廉價的壓力傳感器。壓力的變化會使薄膜產(chǎn)生偏移,從而導(dǎo)致電容的改變。然而,熱膨脹也會引發(fā)電容的變化,使得這些傳感器容易受到溫度的影響。相應(yīng)的解決方案是在相同的襯底上設(shè)置一個基準(zhǔn)電容器,并測量兩個電容的比值。
在測量壓力時,將兩個容性輸出均與PSoC引腳相連。模擬部分如今被配置為一個具有1.3V觸發(fā)電平的采樣比較器,并用于控制放電開關(guān)。電流源被設(shè)定為10μA。對于一個10pF的標(biāo)稱電容,產(chǎn)生的電壓變化斜率為1V/μs。在該速率條件下,斜坡電壓將需要1300ns的時間才能達(dá)到1.3V的跳變點(diǎn)。數(shù)字部分計(jì)算出的頻率為769kHz。測量頻率與測量電容成反比。對每個電容進(jìn)行順序測量,并計(jì)算一個比值。這兩個數(shù)值之比將消除任何由于電流源或用于計(jì)算頻率的系統(tǒng)時鐘的不精確性所引發(fā)的誤差。