歡迎您光臨本站 登入註冊首頁

基於DS18B20 的遠程糧倉溫控系統

admin @ 2014-03-25 , reply:0

概述

1引言   糧食溫度檢測是儲備庫中防止糧食霉爛、保質存放的重要環節。對於一個農業大國來講,糧食生產、需求與儲備量都很大。大量糧食在儲備的過程中常因糧食濕度過大而升溫發熱,……

1 引言
    糧食溫度檢測是儲備庫中防止糧食霉爛、保質存放的重要環節。對於一個農業大國來講,糧食生產、需求與儲備量都很大。大量糧食在儲備的過程中常因糧食濕度過大而升溫發熱,導致糧食大量腐爛變質,給國家帶來巨大損失。所以糧倉監控系統中溫度測量是整個系統的主要功能之一。
    本文介紹一種以單線數字溫度感測器DS18B20為溫度敏感元件的糧倉溫控系統,系統以微型計算機為上位機, 89C51單片機為檢測分機,DS18B20數字溫度感測器直接與分機連接,分機與測溫主機通過RS-485匯流排網進行通信,系統所有操作通過菜單命令完成。本文主要圍繞下位機數據採集部分進行論述,並結合糧倉監控系統,對DSl8B20的這種單匯流排技術及其在本系統中的具體應用進行了討論。

2 系統硬體設計
2.1 系統的總體設計
    整個系統從結構上可分為三層:由微型計算機構成上位機——用戶監控層,51 單片機系統分別構成測溫主機——控制層和分機——溫度數據採集層。上位機通過串列口與測溫主機交換數據。測溫主機與多台分機採用主從分散式結構。系統組成結構如圖1 所示,測溫主機與上位機通過RS-232 匯流排連接,測溫分機與主機通過RS-485 匯流排連接。一台主機最多可管理64 台分機,一台分機可以測試大約1000 個溫度點。本設計適用於中小型糧庫。
 
圖1 系統結構圖
2.2 溫度數據採集模塊的設計
    DS18B20是美國DALLAS公司生產的數字溫度感測器晶元,具有結構簡單、體積小、功耗小、抗干擾能力強、使用方便等優點。可以在三根線上同時並聯多個溫度感測器,每台分機上可以連接多根電纜,每根電纜上可以並聯幾十個點,構成串列匯流排工作方式。由於18B20晶元送出的溫度信號是數字信號,因此簡化了A/D轉換的設計,提高了測量效率和精度;並且晶元的ROM中存有其唯一標識碼,即不存在相同標識碼的DS18B20,特別適合與微處理晶元構成多點溫度測控系統。
    每台測溫分機的P0~P3 口分別可接N 個DS18B20 感測器(N<40)。上位機控制每台分機工作,實現多點測溫。採集到的溫度數據通過RS-485 通信匯流排連成的匯流排型網路進行傳輸,測溫分機接收到DS18B20 所傳送的溫度數據,並將這些數據進行簡單的處理髮往上位機。主程序實現對DS18B20 的實時數據採集,將結果存貯於單片機的RAM 區。中斷服務程序實現測溫分機與上位機的通信。
    測溫分機按照上位機的命令來完成溫度數據採集和發送工作。其先將採集的數據存放於外部存儲器SRAM中,當收到上位機的上傳數據命令時,由發送子程序將數據進行簡單處理后通過串口TXD端送出。在測溫主機的配合下,數據上傳到上位機並在上位機的監控界面顯示給用戶。
2.3 RS-485匯流排在溫控系統中的設計
    在系統中用51單片機構成主從分散式測控系統, 具有價格低、控制功能強等許多特點。然而在應用中,測溫主機與各糧倉相距較遠,距離從幾十米到幾千米不等。對此遠程糧倉,系統採用RS-485匯流排實現數據的遠程傳輸。進行串列通信的主機與分機的RS-485介面電路如圖2.3所示。該電路以MAX485晶元為核心器件進行半雙工通信,具有通信功能強、可靠性高、程序設計簡單等特點。
 
圖2 典型RS-485(半雙工)通信網
    在使用RS-485介面時,對於特定的傳輸線徑,從發生器到負載,其數據信號傳輸所允許的最大電纜長度是數據信號速率的函數,這個長度主要是受信號失真及雜訊等影響所限制。當數據信號速率降低到90Kbit/S以下時,假定最大允許的信號損失為6dBV時,則電纜長度被限制在1200M。實際上,在實用時是完全可以取得比它大的電纜長度。當使用不同線徑的電纜時,取得的最大電纜長度是不相同的。例如:當數據信號速率為600Kbit/S時,採用24AWG電纜,計算可知最大電纜長度是200m,若採用19AWG,電纜則電纜長度將大於200m;若採用28AWG電纜,則電纜長度只能小於200m。
    RS-485匯流排是半雙工方式,即匯流排上某一時刻不能同時出現發送和接收的情況。此方式用於多站互連時,可節省信號線,方便地實現RS-485的多點通信功能。考慮到中小型倉庫地理位置特點,系統採用較低的接收、發送波特率,以換取更遠距離的傳送,此設計完全可以滿足系統需求。

3 軟體設計
3.1 系統軟體的工作流程
    DS18B20 以單匯流排協議工作,測溫分機首先發送複位脈衝命令,使信號線上所有的DS18B20 晶元都被複位,接著發送ROM 操作命令,使序列號編碼匹配的DS18B20 被激活進入接收內存訪問命令狀態;內存訪問命令完成溫度轉換、溫度讀取等工作(單匯流排在ROM 命令發送之前存儲命令和控制命令不起作用)。DS18B20 工作流程見圖3 所示。
 
圖3 DS18B20 工作流程圖
    系統以ROM 命令和存儲器命令的形式對DS18B20 操作。ROM 操作命令均為8 位,命令代碼分別為:讀ROM(0x33H)、匹配ROM(0x55H)、跳過ROM(0xCCH) 、搜索ROM(0xF0H) 和告警搜索(0xECH) 命令;存儲器操作命令為:寫暫存存儲器(0x4EH) 、讀暫存存儲器(0xBEH)、複製暫存存儲器(0x48H)、溫度變換(0x44H)、重新調出EERAM(0xB8H)以及讀電源供電方式(0xB4H)命令。其對時序及電特性參數要求較高,必須嚴格按照它的時序要求去操作。DS18B20 的數據讀寫由測溫分機來完成,包括初始化、讀數據和寫數據。
    系統軟體採用模塊化程序設計,主從式結構通信方式。規定匯流排上有一個測溫主機和64台分機,分機地址唯一。初始化完成後各分機均處於監聽狀態,採用中斷方式工作,測溫分機接受上位機命令,向DS18B20發出地址匹配命令幀,進入等待狀態,每一幀數據位都對應著不同意義,若地址匹配成功則進行響應分機,否則繼續等待,直到等待超時而重發命令。溫度採集模塊負責數據的採集工作。
    當緩衝區有數據時產生中斷,程序轉向中斷服務子程序入口,中斷子程序如下:
void SerialInterrupt() interrupt 4 //中斷服務子程序
{loop0:if(RI);SlaveNo=SBUF;
RI=0; while (! RI); //等待下一個命令
loop1:RI=0;
SensorNo=SBUF;
if(SlaveNo==0x81&SensorNo<0x80) //判別數據是否合法
{while(1)
{Gettemp(SensorNo); if(RI) goto loop1;} }
else goto loop0; }//否則繼續等待
3.2 DS18B20的時延及讀寫時序問題
    為保證DS18B20的嚴格I/O時序,需要作較精確的延時。在DS18B20的操作中,短時間延時是指10us以下的延時,在彙編語言下採用若干個NOP指令即可。因C51編譯器提供了若干內部函數,(_nop_()函數為其中之一)其編譯結果就是在對應位置嵌入一個nop彙編指令,所以短時間延時可利用_nop_()函數實現。較長時間延時指10us以上的延時。在DS18B20操作中,用到的較長時間延時有15us、90us、270us、540us等。因這些延時均為15us的整數倍,可編寫一個Delayl5(n)函數,該函數可實現約15us×n的延時。
    DS18B20的初始化包括測溫分機發送的複位脈衝和其向測溫分機返回的存在脈衝。匯流排在開始時刻發出一個最短為480us的低電平複位脈衝,接著在該時刻釋放匯流排並進入接收狀態,DS18B20在接收到匯流排的電平上升沿,等待15—60us后在下一時刻發出60—240us時延的低電平存在脈衝信號,表明器件已接在匯流排上。時序如圖4所示。
 
圖4 初始化圖
    當匯流排於該時刻從高電平拉至低電平時,就產生“寫”的時間間隙。從該時刻開始15us之內,應將所需寫的位送到匯流排上,DS18B20在該時刻后的15—45us期間內對匯流排採樣,低電平寫入0,高電平寫入1。連續寫兩位之間的間隙應大於1us。寫時序如圖5所示。
 
圖5 讀寫時序圖
    起始時刻將匯流排從高電平拉至低電平,持續15us之後將匯流排釋放,就產生讀時間間隙。測溫分機必須在該時刻之後的15us之內完成讀匯流排狀態,並在45us內釋放匯流排,連續讀兩位之間的間隙應大於1us。讀時序如圖5所示。

4 總結
    本文論述了以DS18B20 為感測器,AT89C51 單片機為控制核心組成的遠程糧倉溫控系統。由於DS18B20 採用數字單匯流排技術,使得系統電路簡單,易於擴展,加上匯流排數字化,使得系統的抗干擾性能好,可靠性高,測溫範圍比較寬(-55~125℃),與傳統的溫控系統相比還具有較高的性價比。此外,系統的應用範圍不僅僅局限於糧倉領域,稍作改動還可作為其它自控領域的解決方案,如煙葉烘烤箱控制系統等。
    本文作者創新觀點:採用新型數字溫度感測器DS18B20,並將其與51 單片機、RS-485匯流排技術有機的結合在一起,組成抗干擾性能較強的溫控系統。系統具有較高的性價比,已成功應用於許昌、尉氏等中型糧庫中。該系統避免了因溫度過高而導致大量糧食發霉變質所造成的損失,對於中型糧庫可產生經濟效益百萬元以上,在糧食儲藏技術領域內具有廣闊的市場前景。

參考文獻:
[1] 來清民.基於CAN匯流排的多功能大型糧倉遠程監測系統[J].微計算機信息,2005,(07)
[2] 李虹,溫秀梅,高振天.基於MSP430單片機和DS18B20的小型測溫系統[J].微計算機信息,2006, (20)


[admin via 研發互助社區 ] 基於DS18B20 的遠程糧倉溫控系統已經有3329次圍觀

http://cocdig.com/docs/show-post-42092.html