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