簡化微控制器與溫度傳感器之間的接口
摘要:數(shù)字系統(tǒng)常常需要測量、控制和保持溫度,而溫度是一個(gè)模擬量。如果采用適當(dāng)?shù)募夹g(shù)和元件,將模擬的溫度量轉(zhuǎn)化為數(shù)字量并不困難。本文介紹了幾種簡單的微處理器與傳感器的接口電路。
關(guān)鍵詞:溫度傳感器、接口、溫度控制
原理上,微處理器對溫度值的讀取很簡單。將熱敏電阻或其它模擬溫度傳感器的輸出送入模數(shù)轉(zhuǎn)換器(ADC),微處理器只需讀取模數(shù)轉(zhuǎn)換器輸出的數(shù)字量即可。有些微處理器內(nèi)部帶ADC,在某種程度上簡化了設(shè)計(jì)。ADC需要一個(gè)基準(zhǔn)電壓,可由外部器件產(chǎn)生。熱敏電阻傳感器的基準(zhǔn)電壓通常與其電阻分壓網(wǎng)絡(luò)高端上的電壓相同。這類溫度測量系統(tǒng)存在的問題是:
· 傳感器輸出電壓范圍遠(yuǎn)小于ADC的輸入范圍:用于溫度測量的ADC一般是8位精度,采用2.5V基準(zhǔn)電壓,通常這也就是輸入電壓范圍。如果在溫度測量范圍內(nèi)傳感器對應(yīng)的最大輸出僅為1.25V,則有效分辨率就下降為7位。為達(dá)到8位精度,必須利用外部運(yùn)算放大器增加信號(hào)增益,或者降低ADC的基準(zhǔn)電壓(對有些ADC而言,這樣會(huì)降低轉(zhuǎn)換精度)。
· 誤差裕量小:熱敏電阻網(wǎng)絡(luò)或其它模擬溫度傳感器誤差、ADC的轉(zhuǎn)換誤差、運(yùn)算放大器失調(diào)、增益設(shè)置電阻的公差、以及電壓基準(zhǔn)誤差的總和可能已超出系統(tǒng)的容差。
· 非線性:熱敏電阻的傳遞函數(shù)具有嚴(yán)重的非線性,許多應(yīng)用場合,在測量的很小溫度范圍之內(nèi)它近似于線性。還可以通過查表法來補(bǔ)償非線性,但這種方法所需要的資源可能難以獲得。
· ADC的輸入端口有限:如果需要測量的溫度點(diǎn)比ADC的輸入端口多,就需要增加多路切換器,這會(huì)增加成本和開發(fā)時(shí)間。
· 微處理器的I/O引腳有限:對于內(nèi)置ADC的微處理器這不成為問題,但是外部串行ADC就需要2到4個(gè)I/O線與微處理器進(jìn)行通訊。
如果采用數(shù)字輸出的溫度傳感器,上述設(shè)計(jì)問題就大為簡化。當(dāng)ADC輸入端口和微處理器I/O引腳不夠用時(shí),時(shí)間或頻率輸出的溫度傳感器都可以解決問題。MAX6576溫度傳感器輸出方波的周期與絕對溫度成正比。它采用6引腳SOT-23封裝,只占很小的電路板面積。與微處理器之間只通過一條I/O線進(jìn)行通訊。微處理器的內(nèi)部計(jì)數(shù)器測出周期后,可直接計(jì)算出溫度值。兩個(gè)邏輯輸入端分別連接到地或電源正端,可設(shè)置4種從10μs/°k到64μs/°k周期/溫度比例系數(shù)。
芯片MAX6577輸出方波的頻率與溫度成正比,比例系數(shù)在0.06Hz/μk到4 Hz/μk之間可調(diào)。這兩種器件僅需一條I/O口線即可將溫度測量數(shù)據(jù)送至MPU,在需要將溫度傳感器與MPU進(jìn)行隔離的場合,只需增加一個(gè)簡單的光耦即可,簡化了溫度測量電路,節(jié)省了電路板面積、元件數(shù)量、以及模擬/數(shù)字I/O口的資源。
對于需要測量多點(diǎn)溫度的應(yīng)用,方案選擇比較復(fù)雜。假設(shè)ADC有足夠多的輸入通道,可將熱敏電阻或傳統(tǒng)的模擬傳感器放置在合適的位置上,并連接到ADC。另一個(gè)方案是采用MAX6575,它可將溫度測量數(shù)據(jù)直接送到MPU,一條I/O線最多可掛8片MAX6575(圖1)。MPU只需短暫拉低I/O口線電平,即可啟動(dòng)測量。經(jīng)過一定延時(shí),第一片MAX6575拉低I/O口線,此時(shí)延長度與絕對溫度成正比,比例系數(shù)通過MAX6575的兩個(gè)引腳設(shè)置。
圖1中,第一片MAX6575按與絕對溫度成正比的時(shí)延(5μs/°k)拉低I/O線電平后釋放I/O線,第二片MAX6575通過設(shè)置端設(shè)一個(gè)更長的時(shí)延常數(shù),經(jīng)過這個(gè)時(shí)延,拉低I/O線電平并按5μs/°k的比例系數(shù)保持一定時(shí)間。4片MAX6575可按這種方式聯(lián)在一條I/O線上。另外4片更長時(shí)延設(shè)置的MAX6575也可聯(lián)在同一I/O線上。
MAX6575L的時(shí)延常數(shù)在55μs/°k到505μs/°k之間 ,MAX6575H在1605μs/°k 到6405μs/°k之間。這樣,最多可有8個(gè)MAX6575放置在測量系統(tǒng)的不同位置,通過一條I/O線與MPU相連。
有些系統(tǒng),不需要測量精確的溫度值,只需判斷溫度是否高于或低于某個(gè)溫度點(diǎn)。這個(gè)信號(hào)可用于風(fēng)扇、空調(diào)、加熱器或其它環(huán)境控制設(shè)備。在系統(tǒng)保護(hù)應(yīng)用中,過熱信號(hào)可觸發(fā)有序的系統(tǒng)關(guān)斷狀態(tài)以避免系統(tǒng)電源切斷時(shí)丟失數(shù)據(jù)。這個(gè)過熱信號(hào)可用前面提到的測量方法獲得,但對于這種簡單應(yīng)用來說,占用了過多硬件和軟件資源。
MAX6501/MAX6502開關(guān)型溫度傳感器可替代溫度傳感器和比較器,使系統(tǒng)簡化(圖2)。這種單芯片集成了溫度傳感器、電壓比較器和電壓基準(zhǔn)。當(dāng)溫度超過了預(yù)設(shè)的閾值時(shí),漏極開路輸出給出一個(gè)低電平信號(hào)。同MAX6575一樣,多個(gè)MAX6501可連在同一條I/O線上,MPU可監(jiān)測一個(gè)或多個(gè)位置是否有溫度報(bào)警,如果系統(tǒng)需要監(jiān)測具體在哪個(gè)位置上有溫度告警發(fā)生,則每個(gè)開關(guān)輸出必須連到不同的MPU I/O線上。
上述芯片監(jiān)測的是它們自身的管芯溫度,因?yàn)楣苄緶囟确浅=咏苣_溫度,所以這些芯片應(yīng)放置在合適的位置,使它們的管腳溫度與被監(jiān)測器件的溫度近似相同。
有些情況需要監(jiān)測的溫度點(diǎn)無法與傳感器芯片建立熱耦合關(guān)系----例如功率ASIC,它們內(nèi)部的管芯溫度遠(yuǎn)遠(yuǎn)高于外部電路板的溫度。一個(gè)內(nèi)置的溫度傳感器可以在溫度過高時(shí)關(guān)斷功率ASIC自身。但這種方式的精確度不夠,很難在出現(xiàn)過熱故障之前向系統(tǒng)發(fā)出警告。
如果在ASIC的管芯上增加一個(gè)可外部連接的P-N結(jié),就可直接測量管芯溫度。方法是使用2個(gè)或多個(gè)正向電流來驅(qū)動(dòng)這個(gè)P-N結(jié),測量結(jié)電壓。兩次電壓的差值與管芯的絕對溫度成正比:V2-V1=KT/q(LnI2/I1)。I1和I2是兩次不同的驅(qū)動(dòng)電流,V1和V2是測得的P-N結(jié)電壓,K是波爾茲曼常數(shù),T是P-N結(jié)的絕對溫度,單位是開爾文度,°k,q是電荷量。
這種測量方法需要產(chǎn)生精確的驅(qū)動(dòng)電流比,測量出微小的電壓差信號(hào),同時(shí)又要盡量抑制功率ASIC的瞬變過程帶來的噪聲信號(hào)。Maxim的遠(yuǎn)端結(jié)溫傳感器可將這些精密的模擬電路功能及一個(gè)簡單靈活的數(shù)字接口集成在一起。
MAX1618,可以8位(1℃)的精度,測量遠(yuǎn)端結(jié)溫,并通過SMBus總線將結(jié)果送入MPU(圖3)。該芯片用于監(jiān)測PC機(jī)的CPU溫度,還可減輕MPU的一些負(fù)擔(dān)。MAX1618通過一個(gè)窗口比較器檢測管芯結(jié)溫度,當(dāng)溫度高于或低于MPU控制寄存器內(nèi)的設(shè)定溫度時(shí),便中斷MPU的工作。