田紅芳,趙 強
(北方工業大學機電工程學院,北京 100144)
溫度是現代化工、農業生產過程、工藝研究中需要重點考慮的環境因素之一。有些工、農業產品對于溫度的要求較高,需要將溫度控制在其可承受范圍之內,過高或過低均會對其性能造成一定影響,因而溫度的測控越來越多地受到研發人員重視。傳統的溫度測控主要還是針對單個點的溫度采集,但在一些特殊的現場控制中,由于環境因素,必須對多個點進行動態實時溫度測控,而且采用傳統的線纜傳輸數據,會導致現場布線太多[1]。為了解決這些問題,本文設計了基于無線通訊技術的多點動態溫度測控系統,系統以數字溫度傳感器DSl8B20進行多點溫度監測,以ATmeag8單片機為核心的測控系統,并利用nRF905射頻收發芯片實現了數據的無線通信,并將此系統應用于某糧倉溫度的實時測控中。
本文設計的多點動態溫度測控系統主要由一個上位機模塊和若干個下位機模塊組成,系統的結構框圖如圖1所示。

圖1 系統結構框圖
上位機模塊包括工控機后臺監控、ATmega單片機及無線信號接收模塊,主要完成上傳采集數據的實時處理和顯示。下位機模塊主要包括糧倉內的多點溫度采集電路、單片機、顯示電路以及其他外圍電路組成。其中溫度傳感器的數量可由實際控制對象的規模以及控制精度來確定,單片機完成采樣數據的AD轉換及數據的計算和上傳,其他的外圍電路一般根據需要會增加報警電路、風機控制電路等。上位機模塊和下位機模塊間采用無線收發模塊nRF905以射頻方式進行數據交互。工控機與單片機采用串口通信。工控機作為上層主機,放置在主控室中對糧倉進行遠程監控,后臺程序用可視化語言設計GUI,實現人機交互?,F場實測信號經無線通信,可以上傳到工控機在軟件窗口進行顯示;同時,工控機可以發出控制指令,經無線通信由現場溫度控制器執行指令[2]。
本系統設計中,下位機以ATmega8 AVR單片機作為控制核心。ATmega8是一款基于AVR精簡指令集結構的8位單片機。該款單片機的特色是運行代碼效率的提高,ATmega8將工作寄存器、算數邏輯單元、精簡指令集有機地結合在一起,能夠實現CPU執行一條指令同時去訪問兩個獨立寄存器,這樣使指令的運行速度大幅提高,大部分指令都可以在一個時鐘周期內完成。
溫度采集電路如圖2所示。下位機數據采集終端采用單總線數字溫度傳感器DS18B20,它的測溫范圍在-55℃ ~+125℃之間,精度很高,而且可以將溫度模擬信號直接轉換成數字信號傳輸給ATmega8,省去了ATmega8模數轉換的部分,提高了數據采集速度。它的工作電壓在3.0 V~5.0 V之間,它的可編程分辨率為9~12位,對應的可辨溫度分別為 0.5℃、0.125℃和0.0625℃,能夠實現高精度測溫。將轉換后的數字信號以“一線總線”串行傳送給ATmega8,同時還可以傳送校驗碼,有效降低誤碼率。用戶還可自行設定溫度報警的上下限,其值是非易失性的,適合于本設計系統對于溫度傳感器的選擇。

圖2 溫度采集電路
本系統的無線通信部分采用nRF905單片射頻收發芯片,其主要包含頻率合成器、接收解調器、功放模塊、晶振等組成部分。nRF905的工作特點是自動產生前導碼和循環冗余碼校驗,通過SPI接口與ATmega8進行無線通信。
12864液晶是一款內置國標GB2312碼簡體中文字庫的顯示屏,采用ST7920控制器,5 V驅動,帶背光,16×16點陣、128個字符(8×16點陣)及64×256點陣顯示RAM(CDRAM),可直接與ATmega8通用I/O口連接,并且可以使用八位并行接口,也可以使用串行接口。
本設計的外圍電路主要指控制電路,由三個部分組成:光電耦合器、繼電器和通風設備。當傳感器采集到的溫濕度值超過設定值時,后臺通過無線收發模塊給單片機發出控制信號讓光電耦合器導通,從而控制繼電器來啟動通風設備完成通風控制,起到降低被控對象溫度的作用。
主程序的主要功能包括ATmega8和nRF905的初始化、看門狗程序、定時器、對子程序的調用等。上位機在接收工控機后臺程序下發的控制指令后,向下位機采集終端的單片機傳輸指令,并在接收到下位機上傳的溫度數據后執行相應的操作。本系統的下位機采集終端分布于糧倉多個溫度采集點,采集點的位置及數量通過先驗經驗及實驗來確定,其原則是保證溫度采集具有代表性,且數量能夠達到測控的精度要求。
子程序設計主要包括溫度采集程序、顯示部分程序和無線通信子程序。
對于應用無線通信技術的溫度測控系統,無線通信子程序是需要重點考慮的部分。無線通信包括數據發送與數據接收兩部分。
(1)發送數據
當ATmega8有數據要發送時,按初始化時配置好的接口速率將接收機的地址和將要發送的數據通過SPI送傳給nRF905;ATmega8將TBX_CE和TX_EN置1,則nRF905的ShockBurst TM開啟發送模式;射頻寄存器自動開啟,數據打包(加幀頭和CRC校驗碼)并發送數據包;如果 AUTO_RETRAN置1,nRF905將連續重發數據包,直到TRX_CE被置0;當TRX_CE置0,nRF905發送過程完成,自動進入待機模式。
(2)接收數據
nRF905的TX_EN置1,TRX_CE置0時進入接收模式。nRF905讀到接收頻率相同的載波時,CD置1;且接收到的數據發送地址與自己地址匹配時,將AM置1,即已接收到數據;然后對數據的CRC進行校驗,如果正確,則將數據保存在接收數據寄存器RX_AYLOAD中,同時,DR信號置1,通知ATmega讀取數據;ATmega將TRX_CE置0,通過SPI接口讀出數據。全部數據讀完后,nRF905又將AM和DR重新置0。
針對傳統溫度測控系統中溫度采集數據片面單一、實時性低、且傳輸數據布線繁瑣的缺陷,設計了基于無線通信技術的多點動態溫度測控系統。數據采集終端部分由ATmega8單片機和DS18B20溫度傳感器構成,無線通信部分采用了nRF905無線收發模塊,并將該系統應用于某糧倉的溫度實時測控中,使管理人員可以在后臺實時掌握糧庫內的溫度情況并能根據實際情況實施控制。
[1]黃保瑞,賈之豪,邵婷婷.基于AT89C51單片機的溫度測控系統設計[J].現代電子技術,2011,34(6):142-147.
[2]張志宏,李盈君.基于射頻技術的溫度無線數據采集系統[C].第二十六屆中國(天津)2012 IT、網絡、信息、技術電子儀器儀表創新學術會議,2012.
[3]楊光松.基于NRF905的無線溫度數據采集系統[J].數采與監測,2008,24(8):104-106.