數(shù)字式I2C總線溫度傳感器在溫度檢測中的應(yīng)用
ds1624的基本特性
ds1624是dallas公司生產(chǎn)的一種功能較強(qiáng)的數(shù)字式溫度傳感器,它比同系列的ds1620控制更為簡單,比ds1621分辨率更高,可以使用一片控制器控制多達(dá)8片傳感器,支持i2c總線協(xié)議,測溫范圍寬,讀數(shù)穩(wěn)定,分辨率高,無須外接電路,與單片機(jī)接口簡單,可以廣泛用于溫度檢測、溫度控制,溫度報(bào)警等領(lǐng)域。
測溫范圍:-55℃~+125℃,分辨率0.03125℃
溫度值以13位數(shù)字量輸出(兩字節(jié)傳輸)
溫度轉(zhuǎn)換時(shí)間小于1秒,
數(shù)據(jù)的讀寫通過2線串行接口實(shí)現(xiàn)(sda,scl)可選總線地址。
內(nèi)部集成256b的e2prom,可以用來保存用戶設(shè)定的參數(shù)
引腳說明 ds1624為8腳dip封裝或者soic封裝,其引腳功能如下表。
ds1624的工作原理
ds1624采用專用的片內(nèi)的溫度測量技術(shù)進(jìn)行溫度的測量,其溫度測量原理如圖1。
[!--empirenews.page--]
在計(jì)數(shù)門開通的情況下對(duì)低溫系數(shù)振蕩器的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),計(jì)數(shù)脈沖的周期由高溫系數(shù)振蕩器所決定,計(jì)數(shù)器和溫度寄存器的預(yù)先設(shè)置值為-55℃。如果計(jì)數(shù)器在脈沖結(jié)束之前達(dá)到0,則溫度寄存器增加,同時(shí)計(jì)數(shù)器預(yù)置為非線性累加器的值,并重新開始計(jì)數(shù),如果脈沖周期在計(jì)數(shù)器到0之前還未結(jié)束,則重復(fù)上面的過程,否則停止計(jì)數(shù)。最終溫度寄存器中的值即為被測溫度值。
ds1624的溫度值以0.03125℃為單位表示,1624 內(nèi)部的溫度寄存器為13位(2個(gè)字節(jié))的寄存器,該寄存器可以通過iic總線串行讀出,高位在前。該13寄存器的內(nèi)容即為補(bǔ)碼表示的溫度值,最高位置符號(hào)位,符號(hào)位?quot;1"表示溫度值為負(fù),為"0"表示溫度值為正。將該13位數(shù)據(jù)的真值乘以0.03125,即為被測溫度值。例如:
表示被測溫度為:+802*0.03125=25.0625℃
ds1624的工作方式
ds1624可以在兩種方式下工作,連續(xù)轉(zhuǎn)換方式和一次轉(zhuǎn)換方式,通過配置寄存器的來控制使用哪種工作模式。
done 為轉(zhuǎn)換完成位,溫度轉(zhuǎn)換完成時(shí)候?yàn)?,正在轉(zhuǎn)換時(shí)為0,1shot為一次模式位,該位為1時(shí),每次收到開始轉(zhuǎn)換命令執(zhí)行一次溫度轉(zhuǎn)換,為0時(shí),執(zhí)行連續(xù)溫度轉(zhuǎn)換,該位為非易失性的。
ds1624在嵌入一個(gè)系統(tǒng)時(shí),需要有mcu對(duì)其發(fā)出控制命令,如讀寫狀態(tài)寄存器,讀溫度寄存器,開始溫度轉(zhuǎn)換等命令,mcu對(duì)ds1624的控制是通過i2c總線接口來實(shí)現(xiàn)的,寫入和讀出完全遵循i2c總線的協(xié)議。
ds1624的命令集包含下面5個(gè),比相同系列的ds1621更加方便,簡捷。
?。?)開始溫度轉(zhuǎn)換[eeh]
該命令啟動(dòng)溫度轉(zhuǎn)換,無需讀數(shù)據(jù),再一次轉(zhuǎn)換模式下,該命令啟動(dòng)轉(zhuǎn)換,ds1624完成轉(zhuǎn)換之后保持空閑,在連續(xù)轉(zhuǎn)換方式下,該命令啟動(dòng)ds1624進(jìn)行連續(xù)的溫度轉(zhuǎn)換。
?。?)溫度轉(zhuǎn)換結(jié)束命令[22h]
該命令停止溫度轉(zhuǎn)換,無需更多數(shù)據(jù),在連續(xù)運(yùn)行方式下,該命令停止ds1624的溫度轉(zhuǎn)換,并且保持空閑,直到ds1624得到新的溫度轉(zhuǎn)換開始命令。
?。?)讀溫度命令[aah]
該命令讀出最近一次溫度轉(zhuǎn)換的結(jié)果,隨后ds1624將兩個(gè)字節(jié)補(bǔ)碼表示的溫度值送出。最高為符號(hào)位,最低三位不用。
?。?)訪問配置寄存器[ach]
若r/w=0,該命令寫入配置寄存器之后,mcu送出一個(gè)字節(jié),用以確定ds1624的工作方式;若r/w=1,ds6124送出當(dāng)前狀態(tài)用來通知mcu轉(zhuǎn)換是否完成。
?。?)訪問存儲(chǔ)器[17h]
該命令用來訪問ds1624內(nèi)部集成的256b的e2存儲(chǔ)器,下一字節(jié)數(shù)據(jù)為被訪問的存儲(chǔ)器的地址,即可進(jìn)行e2存儲(chǔ)器的讀寫操作,讀寫時(shí)和其他的i2c協(xié)議的e2存儲(chǔ)器相同。讀者可參考其它的資料。[!--empirenews.page--]
ds1624 啟動(dòng)溫度轉(zhuǎn)換、訪問配置寄存器、讀取溫度值的流程圖見圖2。
典型應(yīng)用
ds1624的典型應(yīng)用圖,見圖3,其中l(wèi)ed顯示和溫度報(bào)警電路讀者可以自行設(shè)計(jì)。ds1624沒有專門的溫度控制功能,用戶可以將溫度控制信息,如溫度上限,溫度下限保存在e2存儲(chǔ)器中。工作時(shí)可將ds1624設(shè)為連續(xù)工作方式,mcu不停讀取溫度值,送顯示裝置顯示,并可將溫度值和e2存儲(chǔ)器中的溫度控制參數(shù)比較,用以驅(qū)動(dòng)報(bào)警、加熱或其他執(zhí)行機(jī)構(gòu)。還可以將pid等參數(shù)存于e2存儲(chǔ)器中,通過先進(jìn)的算法實(shí)現(xiàn)閉環(huán)控制。
注意事項(xiàng)
ds1624在使用的時(shí)候,應(yīng)注意幾點(diǎn)問題
1、寫e2prom需要10ms的時(shí)間,所以在每一次寄存器寫操作后都需要等待10ms再進(jìn)行下一次寫操作。 2、由于sda、scl均為漏極開路i/o因此一定要有上拉電阻。
3、在數(shù)據(jù)傳輸和寫命令字的時(shí)候,一定遵循i2c總線的協(xié)議,在由寫操作到讀操作轉(zhuǎn)換的時(shí)候,應(yīng)該重新啟動(dòng)數(shù)據(jù)傳輸,然后發(fā)送地址和讀寫位。
4、在構(gòu)成測溫系統(tǒng)時(shí),一片單片機(jī)最多可以連接8片ds1624,并可采用求平均值的方法提高測量精度。此時(shí)應(yīng)將地址a2、a1、a0作不同的調(diào)整。