摘 要:1-Wire總線技術(shù)具有節(jié)省I/O資源、結(jié)構(gòu)簡單、成本低廉,便于總線擴(kuò)展和方便維護(hù)等特點(diǎn)。文章中介紹了1-Wire總線技術(shù)數(shù)字溫度傳感器的基本特性與功能塊圖,數(shù)字溫度傳感器ROM命令和功能命令。闡述了1-Wire總線技術(shù)數(shù)字溫度傳感器供電方式。利用1-Wire總線技術(shù)使用多個(gè)數(shù)字溫度傳感器,實(shí)時(shí)時(shí)鐘電路,鍵盤顯示電路,串行存儲器電路,RS485通信電路以及看門狗電路等,組成了火災(zāi)報(bào)警系統(tǒng)硬件系統(tǒng)。繪制了溫度采集與處理流程圖。采用多個(gè)傳感器測量不同房間內(nèi)的溫度,可以設(shè)置不同房間的報(bào)警上限值,可以實(shí)現(xiàn)多個(gè)房間對應(yīng)溫度的顯示和報(bào)警。1-Wire總線技術(shù)數(shù)字溫度傳感器已經(jīng)成功地應(yīng)用于火災(zāi)報(bào)警系統(tǒng)中。
關(guān)鍵詞:1-Wire技術(shù);溫度傳感器;火災(zāi)報(bào)警;溫度采集
1.引言
1-Wire總線技術(shù)具有節(jié)省I/O資源、結(jié)構(gòu)簡單、成本低廉,便于總線擴(kuò)展和方便維護(hù)等特點(diǎn)。因此在分布式測溫系統(tǒng)中有著廣泛的應(yīng)用。而美國DALLAS公司生產(chǎn)的單總線智能溫度傳感器DS18B20是采用1-Wire總線技術(shù)的典型產(chǎn)品[2]。DS18B20通過單線按照1-Wire協(xié)議傳送特定的命令序列并進(jìn)行數(shù)據(jù)通信。該系列產(chǎn)品有個(gè)很重要的特性就是在出廠前每個(gè)器件都被寫入了唯一的64位ROM 碼即序列號,最低有效字節(jié)為家族代碼。代表器件的類型。如DS1990A的家族碼為01H,DS18B20的家族碼為28H。由于在同一條1-Wire 總線上可同時(shí)掛接多個(gè)相同系列或不同系列的1-Wire 器件,因此主機(jī)必須能夠決定如何正確地訪問位于1-Wire 總線上的各個(gè)器件。64位ROM 碼中家族碼提供了器件的類型,隨后的6 個(gè)字節(jié)是器件的唯一序列號,用以區(qū)分同一個(gè)系列的不同器件。該序列號可作為1-Wire 總線上器件的地址。這樣1-Wire 總線上的所有器件連同主機(jī)就構(gòu)成了一個(gè)微型局域網(wǎng)。它們之間通過一條公共線來進(jìn)行通信[5].
2.數(shù)字溫度傳感器特性與功能塊圖。
DS18B20的核心功能就是可以直接轉(zhuǎn)換成數(shù)字量。由于每一個(gè)智能溫度傳感器DS18B20有一個(gè)唯一的64位序列號。允許多個(gè)DS18B20在同一條總線上工作。因此可以用一個(gè)單片機(jī)在一個(gè)大范圍內(nèi)控制多個(gè)數(shù)字溫度傳感器DS18B20,經(jīng)常用于環(huán)境溫度控制、溫度監(jiān)測系統(tǒng)以及過程監(jiān)測和控制系統(tǒng)中。1-Wire 器件64位序列號的最高有效字節(jié)是循環(huán)冗余校驗(yàn)CRC 碼。該值基于前面的56位數(shù)據(jù)。當(dāng)系統(tǒng)主機(jī)開始與某個(gè)器件進(jìn)行通信時(shí),可以從低位開始讀取8個(gè)ROM 字節(jié)即64位序列號。
1-Wire總線技術(shù)的溫度傳感器DS18B20溫度的測量范圍為 - 55℃ ~ + 125℃ 。便箋存儲器中包含兩個(gè)字節(jié)溫度寄存器用于存儲溫度傳感器的數(shù)字輸出。另外提供一個(gè)字節(jié)報(bào)警上限TH和一個(gè)字節(jié)報(bào)警下限TL寄存器。還有一個(gè)字節(jié)組態(tài)寄存器。組態(tài)寄存器允許用戶設(shè)置分辨率為9 ~ 12位。分別對應(yīng)溫度值0.5℃、0.25℃、0.125℃和0.0625℃。TH、、TL和組態(tài)寄存器可以存放在EEPROM中,因此當(dāng)系統(tǒng)掉電時(shí),TH、、TL和組態(tài)寄存器中的數(shù)據(jù)仍將保存。1-Wire總線技術(shù)的溫度傳感器DS18B20功能塊如圖1所示。
圖1 1-Wire技術(shù)的溫度傳感器DS18B20功能塊圖
3.數(shù)字溫度傳感器ROM命令和功能命令。
為了能夠使1-Wire總線技術(shù)的溫度傳感器DS18B20正常工作,需要按照一定順序執(zhí)行相關(guān)命令。首先進(jìn)行初始化,其次執(zhí)行ROM命令,最后執(zhí)行DS18B20功能命令。常用的ROM命令有5個(gè)。每個(gè)命令均為一個(gè)字節(jié)。在發(fā)送DS18B20功能命令之前,主CPU必須發(fā)布適當(dāng)?shù)腞OM命令。對ROM的五種操作命令有ROM搜索命令(代碼為F0H),ROM命令(代碼為33H),匹配ROM命令(代碼為55H),跳過ROM命令(代碼為CCH)和搜索報(bào)警命令(代碼為ECH)。
當(dāng)主CPU使用了ROM命令之后,如果訪問想要通信的從設(shè)備DS18B20時(shí),主CPU能夠發(fā)布一個(gè)DS18B20功能命令。1-Wire總線技術(shù)的溫度傳感器DS18B20功能命令主要有5條。這些命令允許主CPU讀或?qū)慏S18B20的便箋存儲器,開始溫度轉(zhuǎn)換以及決定電源的模式。DS18B20功能命令如下所述。
1.溫度轉(zhuǎn)換命令(代碼為44H)使DS18B20開始轉(zhuǎn)換。轉(zhuǎn)換完畢的溫度數(shù)據(jù)存放在兩個(gè)字節(jié)的溫度寄存器中。
2.寫便箋存儲器命令(代碼為4EH)允許主CPU 寫3個(gè)字節(jié)數(shù)據(jù)到便箋存儲器中。第一個(gè)數(shù)據(jù)字節(jié)被寫入到TH寄存器中,第二個(gè)數(shù)據(jù)字節(jié)被寫入到TL寄存器中,第三個(gè)數(shù)據(jù)字節(jié)被寫入到組態(tài)寄存器中。數(shù)據(jù)寫入從最低有效位開始。在主CPU發(fā)出復(fù)位脈沖之前,三個(gè)字節(jié)必須被寫完。
3.讀便箋存儲器命令(代碼為BEH)允許主CPU 讀出便箋存儲器中的內(nèi)容。數(shù)據(jù)傳輸從字節(jié)0的最低有效位開始到字節(jié)8。便箋存儲器中的9個(gè)字節(jié)內(nèi)容被讀出。其中字節(jié)8為CRC校驗(yàn)碼。如果只需要讀出便箋存儲器中的部分字節(jié),主CPU可以隨時(shí)發(fā)出復(fù)位脈沖終