[摘 要]:采用先進(jìn)的單總線數(shù)字式溫度傳感器DS18B20設(shè)計(jì)了一種低成本的大規(guī)模測(cè)溫網(wǎng)絡(luò)系統(tǒng),并給出了軟硬件設(shè)計(jì)方法。由于該系統(tǒng)采用了單總線技術(shù),溫度信號(hào)在測(cè)量現(xiàn)場(chǎng)被轉(zhuǎn)換為數(shù)字信號(hào),能夠遠(yuǎn)距離測(cè)量,具有很高的測(cè)量精度和應(yīng)用價(jià)值。
[關(guān)鍵詞]:溫室 單總線 控制系統(tǒng)
0引言
在測(cè)溫網(wǎng)絡(luò)系統(tǒng)中,采用單總線數(shù)字溫度傳感器芯片 DS18B20 實(shí)現(xiàn)遠(yuǎn)距離多點(diǎn)空氣溫度和土壤溫度的測(cè)量,通過單總線驅(qū)動(dòng)器 DS2480B 輸送給微處理器,系統(tǒng)具有一定智能化。
1 單總線器件及其工作原理
系統(tǒng)主要用到了溫度傳感器 DS18B20和單總線驅(qū)動(dòng)器 DS2480B。單總線器件內(nèi)部 ROM 中都有光刻的 64位序列號(hào),它是該器件的地址序列碼;64 位光刻 ROM 的排列是:開始 8 位(DS18B20 為28H)是產(chǎn)品類型標(biāo)號(hào),也就是所謂的家族碼,接下來的 48 位是該自身的序列號(hào),最后 8 位是前面 56 位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一個(gè)單總線器件的地址都各不相同,都是唯一的,以便實(shí)現(xiàn)一根總線上掛接多個(gè)單總線器件。單總線驅(qū)動(dòng)器 DS2480B 完成到單總線的轉(zhuǎn)換,提高了單總線的驅(qū)動(dòng)能力。微處理器可以通過控制 DS2480B 驅(qū)動(dòng)在線所有的單總線器件。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 數(shù)字溫度傳感器 DS18B20
DS18B20 是美國 Dallas Semiconductor公司推出的數(shù)字式溫度傳感器,遵循單線協(xié)議,
其工作原理是利用溫度敏感振蕩器的頻率隨溫度變化的關(guān)系,通過對(duì)振蕩周期計(jì)數(shù)來實(shí)
現(xiàn)溫度測(cè)量。其支持 3V~5.5V 的電壓范圍,可以與處理器進(jìn)行雙向數(shù)字通信,測(cè)溫度范圍寬(-55℃~+125℃),工作溫度范圍寬(-10℃~+85℃),分辨率高(當(dāng)設(shè)定為 12 位轉(zhuǎn)換模式可以達(dá)到 0.0625℃)?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸。DS18b20 內(nèi)部有 2 個(gè)字節(jié) RAM 單元用來存放轉(zhuǎn)換后的溫度值,后1 個(gè)字節(jié)為溫度值低8 位的補(bǔ)碼(稱作 A),前 1 個(gè)字節(jié)為符號(hào)位和溫度值的補(bǔ)碼高 3 位(稱作 B)。
2.2 單總線驅(qū)動(dòng)器 DS2480B
DS2480B 是從串行接口到 1-Wire 網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的橋接器。只要主機(jī)具有普通的串行通信 UART,就可以通過該橋接器產(chǎn)生嚴(yán)格定時(shí)和電壓擺率控制的 1-Wire 波形。DS2480B 接受所要發(fā)送的指令和數(shù)據(jù),執(zhí)行 1-Wire 操作,并將結(jié)果返回至主機(jī)(詳細(xì)資料間參考文獻(xiàn)[2])。
2.3 系統(tǒng)原理
考慮到單總線的驅(qū)動(dòng)能力,采用星型結(jié)構(gòu),就是在若干個(gè)單總線上分別掛若干個(gè)單總線
器件。硬件以 AT89C55WD為核心,主要包括按鍵模塊、顯示模塊、信號(hào)輸入、控制輸出、時(shí)鐘、串口擴(kuò)展和存儲(chǔ)等電路。LED 用來循環(huán)顯示個(gè)測(cè)量點(diǎn)的參數(shù),按鍵用來設(shè)置給定參數(shù),AT24C256 用來存儲(chǔ)各個(gè)測(cè)量點(diǎn)單總線器件的序列號(hào)(測(cè)量點(diǎn)的器件地址)及一些重要的參數(shù)。GM 用來擴(kuò)展串口,擴(kuò)展后的三個(gè)串口分別用于轉(zhuǎn)換為 1-Wire
網(wǎng)絡(luò)協(xié)議、LED顯示和與上位機(jī)通信。
3 軟件設(shè)計(jì)
3.1 總線結(jié)構(gòu)軟件設(shè)計(jì)
在該系統(tǒng)中,多個(gè)單總線器件掛于一單總線上,欲想操作任何一個(gè)單總線器件,必須首
先獲得該器件的地址,即序列號(hào)。獲得器件的地址的方法一般有兩種方法,第一種方法是:
調(diào)試程序時(shí),編寫一單獨(dú)程序依次讀出每個(gè)測(cè)控點(diǎn)器件的地址并存于單片機(jī)程序表格中[3],但當(dāng)該測(cè)控點(diǎn)的某個(gè)器件損壞時(shí),需要讀新的單總線器件地址,替換壞器件,并要修改主程序,重新固化主程序;第二種方法是:通過二叉樹算法完成在線所有的單總線器件地址,但系統(tǒng)無法具體確定每個(gè)測(cè)量點(diǎn)的單總線器件地址。該系統(tǒng)采用依次上電的方法,通過二叉樹算法(見參考文獻(xiàn)[4])完成每個(gè)測(cè)量點(diǎn)的在線單總線器件地址,維護(hù)方便,方法如下:
(1)打開測(cè)控點(diǎn)1單總線器件電源,關(guān)閉其它測(cè)控點(diǎn)電源,通過“Search”鍵啟動(dòng)在
線搜索地址操作,LED顯示“1” ,表示正在搜索測(cè)控點(diǎn) 1 單總線器件的地址。存儲(chǔ)測(cè)控點(diǎn) 1單總線器件地址于 AT24C256。
(2)測(cè)量點(diǎn)1搜索完畢后,LED顯示“2” ,打開測(cè)控點(diǎn) 2單總線器件電源,系統(tǒng)根據(jù)二叉樹算法在線搜索測(cè)控點(diǎn) 2 單總線器件的地址,存儲(chǔ)測(cè)控點(diǎn) 2 單總線器件地址于AT24C256。
(3)測(cè)量點(diǎn) 2 搜索完畢后,LED 顯示“3” ,如有測(cè)控點(diǎn) 3,打開測(cè)控點(diǎn)單總線器件電源,搜索測(cè)控點(diǎn) 3 的器件地址,依次類推;如沒有,按“OK”按鍵。
3.2 抗干擾軟件設(shè)計(jì)
系統(tǒng)采用三種抗干擾方法:
(1)應(yīng)用 AT89C55WD片上看門狗;
(2)采用 CRC 容錯(cuò)技術(shù)。
4 結(jié)論
本文作者的創(chuàng)新點(diǎn)(軟硬件):
(1)硬件均為可裁剪結(jié)構(gòu),組態(tài)靈活,各模塊可以不依賴其他模塊獨(dú)立運(yùn)行,運(yùn)行方式
既可以自動(dòng)又可以手動(dòng),該系統(tǒng)可以利用 485 異步串行通信總線聯(lián)網(wǎng),以適應(yīng)各類不同檔次用戶的不同需要,根據(jù)不同組態(tài),系統(tǒng)既可以適應(yīng)高自動(dòng)化程度的具有集散特征的大規(guī)模用戶,又可適應(yīng)各類中小散戶應(yīng)用。
(2)現(xiàn)場(chǎng)的單總線結(jié)構(gòu),所有的信號(hào)采集都可以掛在只有兩條導(dǎo)線組成的單總線上,由
于農(nóng)業(yè)溫室各類參數(shù)變化均較緩慢,故可以采用串行分時(shí)復(fù)用的方式解決大量現(xiàn)場(chǎng)信息的傳輸問題,這就使得現(xiàn)場(chǎng)前向通道電路結(jié)構(gòu)大大簡化。
參考文獻(xiàn):
[1]Dallas Semiconductor Data Books.Dallas Semiconductor Corporation 1995
[2]李華驛,汪道輝.應(yīng)用 DS2480 實(shí)現(xiàn) RS—232 與單總線的串行接口[J],微計(jì)算機(jī)信息,2002.12:45-46
[3]文哲雄,羅中良.單總線多點(diǎn)分布式溫度監(jiān)控系統(tǒng)的設(shè)計(jì)[J],微計(jì)算機(jī)信息,2005.06s:63-65
[4]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)庫結(jié)構(gòu)[M].清華大學(xué)出版社,1998