文/儲鑫 羅艷艷 于海春
傳統(tǒng)糧倉監(jiān)測手段為人工定期測量,但是由于糧倉一般空間較大,多個糧倉分布地點也較分散,傳統(tǒng)的監(jiān)測手段效率低、周期長,也容易引入主觀原因的漏檢或數據誤差。本文為了解決傳統(tǒng)監(jiān)測手段的問題,提出了一種基于單片機AT89C51CC01的智能化、自動化多點溫濕度檢測方法,并可通過總線技術將測試數據上傳到數據監(jiān)控中心,便于遠程管理。本系統(tǒng)架構簡潔,硬件結構精簡,測量精度、數據傳輸均能得到保障,且具有較強的兼容性和可擴展性,滿足了對糧倉溫濕度是實時測控和管理的要求。
糧倉的溫濕度環(huán)境很大程度上影響了糧食存儲的質量,濕度一般低于12%,溫度在10~22℃之間,相當于一個干藏庫;濕度太大,容易受潮發(fā)芽;溫度過高則容易霉變,造成損失,因此對糧倉進行溫濕度監(jiān)測很有必要。隨著總線技術的快速發(fā)展,遠程監(jiān)控也越來越多地應用到糧倉的溫濕度環(huán)境監(jiān)控應用中。比如,RFID,無線射頻識別,溫濕度傳感器、微處理器和RFID收發(fā)模塊組成傳感標簽,另外微處理器和RFID收發(fā)模塊組成讀寫器,通過射頻收發(fā)模塊將標簽端的溫濕度信息發(fā)送給讀寫器,但標簽端和讀寫端均需要微處理器,硬件結構相對比較復雜;再比如ZigBee,采集溫濕度數據的采集方式及數據傳輸方式,均通過無線網絡,并進行遠距離傳輸,但是傳輸距離通常為幾百米,即使采用強穿透性的低頻段設計方案,ZigBee的最遠傳輸距離不超過6千米。
為了提高傳輸距離,同時不增加硬件成本,精簡數據采集系統(tǒng)的硬件結構,本文以溫濕度測量為核心,適應糧倉智能化自動化的應用管理需求,基于CAN總線技術和單片機AT89C51CC01,提出了一種智能溫濕度檢測方法。整個系統(tǒng)由下位機(包括溫濕度采集單元、數據匯總及處理單元)、CAN總線、上位機組成。上位機是遠程的數據管理中心,作用是可同時對多個不同地點的糧倉環(huán)境情況進行數據匯總分析及呈現,用于糧情的遠程監(jiān)控,提高企業(yè)的管理水平。下位機由多個溫濕度測量單元以及數據匯總處理單元組成,其中數據匯總及處理單元由單片機系統(tǒng)實現,下文將對下位機的實現詳細說明。
如圖1-1所示,系統(tǒng)由128路溫度傳感器、2路濕度傳感器、CAN收發(fā)器、單片機最小系統(tǒng)組成。其中:
圖1 -1系統(tǒng)方案框圖
(1)128路溫度傳感器:分為十六個8路,分別以總線形式掛在P0、P2口上,每個傳感器可返回一個16位的二進制數代表此刻的溫度值。方案中選多路溫度傳感器的目的是增加測溫點,采樣點越多測到的溫度越能準確表明糧倉內的實際溫度,并且采用單總線one-wire的形式,不必占用過多硬件IO資源。
(2)2路濕度傳感器:輸出為模擬電壓信號,直接連接到單片機內置的AD輸入通道P1.0、P1.1。
(3)單片機:根據不同時序不同原理,分別執(zhí)行對128路溫度信號、2路濕度信號的讀取,并按照指定的格式通過CAN接口發(fā)送給CAN收發(fā)器;其最小工作系統(tǒng)還包含復位、外部晶振、JTAG等外圍電路。單片機選擇Atmel公司的一款8位單片機,AT89C51CC01,由于其內置CAN控制器,無需額外的控制器,大大精簡了硬件電路。
(4)CAN收發(fā)器:用于在單片機的CAN接口和CAN總線之間建立通信鏈路,從上位機接收指令傳達給單片機,并將單片機獲得的數據上傳至CAN總線供上位機調用。
已在推廣使用的溫濕度測量方案有兩種,一種是復合式的傳感器,同時具備測量溫度和濕度的功能,比如DHT11,這種方案具有更高的集成度,但其溫度精度±2℃,濕度精度±5%,不能滿足本系統(tǒng)設計要求。為了滿足±1℃、±4%RH的測量精度,本文分別選用不同的溫度傳感器和濕度傳感器進行溫度和濕度測量,型號分別為DS18B20、HIH-4000-1。
2.1 溫度測量單元
本文采用128路DS18B20溫度傳感器部署在糧倉的128個測溫點。為了精簡電路,節(jié)省硬件資源,降低功率損耗,并使用寄生供電模式。單片機的P0口和P2口分別有8個輸入IO,每個IO連接8個傳感器,組成128個網絡式測溫點。
DS18B20由ROM、傳感器本體、溫度報警觸發(fā)器TH/TL和可配置的寄存器組成。每個DS18B20都有一個唯一的序列號存儲在其內部ROM中。單片機對每個IO口總線上的8個傳感器進行溫度讀取通過分時時序完成,工作流程為:
(1)復位初始化:例如,單片機在IO口P0.0發(fā)出一個脈寬為500us的低電平脈沖;置高后等待60us,傳感器返回一個脈寬為60~240us的低電平響應脈沖,單片機檢測到該脈沖表明完成初始化,可以進行下述操作;
(2)跳過ROM,操作碼為0xCC;
(3)溫度轉換,操作碼為0x44;
(4)等待溫度轉換完畢,再次復位初始化;
(5)發(fā)送匹配ROM指令,操作碼為0x55;之后再發(fā)出對應傳感器的64位序列號,等待應答,識別對應的測溫點;
(6)讀RAM,操作碼為0xbe;依次讀取總線上9個字節(jié)數據即為該傳感器的溫度數據。
2.2 濕度測量單元
本文采用兩路濕度傳感器,其電壓輸出端分別與單片機內置的AD端口P1.0和P1.1直接相連,將代表濕度的模擬電壓值通過單片機內置的AD模塊轉換為二進制數據,并采用中位值濾波法對偶發(fā)干擾進行濾除,提高可靠性[6]。其中,AD轉換器分辨率為10bit,包含兩個寄存器:控制寄存器ADC_CONTR和數據寄存器ADC_DATA,具體工作流程如下:
(1)數據寄存器清零,開啟內置AD的轉換電源,ADC CONTR=ADCCONTR|OX80;
(2)等待內部電源穩(wěn)定;
(3)P1.0、P1.1通道開始轉換;
(4)等待轉換結束,將數據寄存器中的值賦給變量。
單片機AT89C51CC01內置了CAN控制器,可將溫度、濕度的二進制數據轉化為邏輯電平,符合CAN規(guī)范的CAN數據幀,下一步需要經過CAN收發(fā)器轉換為差分電平,才能在CAN總線上進行數據/信息的交互。本文中收發(fā)器采用SCM3422ASA,數據傳輸速率1Mbps以上,總線耐壓能力高達±40V,具有過熱保護功能,抗電磁干擾能力極強,允許超過110個負載節(jié)點掛在總線上。
本文提出了基于CAN總線和AT89C51CC01的溫濕度測量系統(tǒng)設計,為糧倉的溫濕度環(huán)境智能監(jiān)測提供了可靠的遠距離傳輸實時監(jiān)控方案。128路溫度傳感器DS18B20和2路濕度傳感器HIH-4000-1,組成糧倉多點溫濕度測量網絡,作為一個智能溫濕度測量節(jié)點掛在CAN總線上,實現了一種遠程分布式節(jié)點形式的糧倉實情監(jiān)測與管控系統(tǒng),成本降低,線路簡單;試驗結果表明在遠距離測量及傳輸情況下,測量精度提高、抗干擾性能增強、工作可靠穩(wěn)定、安裝維護方便,對糧倉溫濕度測量具有參考價值。C