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