王笑怡
(中國電子科技集團(tuán)公司第四十七研究所,沈陽110032)
我國是糧食生產(chǎn)和消耗大國,糧食產(chǎn)后的儲糧、儲藏、運(yùn)輸、加工等環(huán)節(jié)損失浪費(fèi)巨大,保障國家糧食安全仍面臨著嚴(yán)峻的形勢和新的挑戰(zhàn)[1]。隨著科學(xué)技術(shù)的發(fā)展,科技手段的提高,糧食行業(yè)信息化發(fā)展得到了強(qiáng)有力的科技支撐[2-3]。但一直以來,糧倉儲糧信息的數(shù)據(jù)傳遞不一致,各自形成信息孤島,無法實(shí)現(xiàn)一個(gè)真正全面共享、全面聯(lián)通的信息系統(tǒng)有機(jī)體,亟需通過資源整合,溝通上下聯(lián)通,互聯(lián)互通的業(yè)務(wù)交互平臺,整合各級的數(shù)據(jù)資源,構(gòu)建糧食數(shù)據(jù)大資源地,從而為大數(shù)據(jù)分析和數(shù)據(jù)應(yīng)用提供數(shù)據(jù)基礎(chǔ)[4]。糧倉環(huán)境監(jiān)測系統(tǒng)為某糧庫整體信息化建設(shè)項(xiàng)目的子項(xiàng)目之一。項(xiàng)目要求監(jiān)測系統(tǒng)能夠?qū)崟r(shí)采集糧倉內(nèi)溫濕度、氧氣、二氧化碳?xì)怏w濃度、糧堆高度等數(shù)據(jù),并通過網(wǎng)絡(luò)專線上傳采集數(shù)據(jù),為糧情的大數(shù)據(jù)分析和應(yīng)用提供數(shù)據(jù)基礎(chǔ)。在此,僅闡述糧倉環(huán)境監(jiān)測系統(tǒng)硬件部分的設(shè)計(jì)方法。
根據(jù)糧倉環(huán)境數(shù)據(jù)采集要求,系統(tǒng)設(shè)計(jì)為分層分布式結(jié)構(gòu)[5]。系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)由數(shù)據(jù)集中器和若干個(gè)傳感器模塊(包括溫濕度監(jiān)測模塊、氧氣濃度監(jiān)測模塊、二氧化碳濃度監(jiān)測模塊、測試模塊等)組成,數(shù)據(jù)集中器與傳感器模塊通過RS485總線連接。數(shù)據(jù)集中器是總線中唯一主機(jī),各傳感器模塊均為從機(jī),主機(jī)與從機(jī)間通過問答方式進(jìn)行數(shù)據(jù)傳輸。傳感器模塊內(nèi)置MCU,完成環(huán)境數(shù)據(jù)的采集和轉(zhuǎn)換。在數(shù)據(jù)集中器的請求下,傳感器模塊按約定的通訊格式,向數(shù)據(jù)集中器傳送測量數(shù)據(jù)。數(shù)據(jù)集中器的核心為MCU,采用多機(jī)通訊方式,定期向傳感器模塊發(fā)送請求,并將接收到的環(huán)境數(shù)據(jù)進(jìn)行解析和存儲;同時(shí),數(shù)據(jù)集中器內(nèi)置網(wǎng)絡(luò)傳輸模塊并配置為TCP服務(wù)器模式,實(shí)時(shí)監(jiān)聽網(wǎng)絡(luò)端口是否有數(shù)據(jù)傳送請求,如接收到傳送請求,則將存儲的歷史監(jiān)測數(shù)據(jù)進(jìn)行打包,通過網(wǎng)絡(luò)接口發(fā)送給中心控制臺。
傳感器模塊與數(shù)據(jù)集中器模塊中MCU程序是在Keil4集成開發(fā)環(huán)境下,使用C語言進(jìn)行程序開發(fā)。與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢[6]。
采用分層分布式結(jié)構(gòu)一是為了滿足糧倉內(nèi)環(huán)境數(shù)據(jù)多點(diǎn)采集的要求,二是縮短傳感器與信號轉(zhuǎn)換器之間的距離,降低了信號傳輸過程中的衰減,減少了干擾,保證了測量的準(zhǔn)確性。
傳感器是一種能感受到被測量的信息[7],并能將感受到的信息,按一定規(guī)律變換成為電信號或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、顯示、記錄和控制等要求的檢測裝置[8]。
本系統(tǒng)所要監(jiān)測的環(huán)境參數(shù)均為較常用的參數(shù),因此,相應(yīng)的傳感器芯片/模塊產(chǎn)品較多,從設(shè)計(jì)周期、成本角度考慮,本設(shè)計(jì)采用在成熟的傳感器基礎(chǔ)上進(jìn)行二次開發(fā),以適應(yīng)本系統(tǒng)設(shè)計(jì)要求。
采用氣調(diào)儲糧技術(shù)的糧倉,要求溫度的檢測范圍為-30℃~55℃,測量精度不低于±2℃;濕度檢測范圍的為20%~90%,精度不低于±5%RH;氧氣濃度的檢測范圍為0%~25%,精度不低于±2%;二氧化碳濃度的檢測范圍為0%~60%,精度不低于±4%。另外,為檢測糧倉內(nèi)糧食是否發(fā)生沉降,還要對糧堆高度進(jìn)行檢測,高度檢測范圍為0~5m,精度不低于5cm。
根據(jù)上述指標(biāo)要求,選擇以下傳感器芯片/模塊來實(shí)現(xiàn)系統(tǒng)功能。
1、溫濕度傳感器芯片
溫濕度監(jiān)測選用CHT8305溫濕度傳感器芯片。CHT8305內(nèi)部集成高精度帶隙基準(zhǔn)電路,14-BIT模數(shù)轉(zhuǎn)換器電路;溫濕度數(shù)據(jù)通過I2C數(shù)字接口傳輸給MCU、藍(lán)牙芯片或其它SOC芯片,I2C總線傳輸速率高達(dá)400kHz。主要應(yīng)用于環(huán)境監(jiān)測、可穿戴溫濕度監(jiān)測等場景。其主要技術(shù)指標(biāo)如下:
工作電壓:2.5~5.5V
工作電流:1.5μA(典型),3.0μA(最大)
測量范圍:溫度-40℃~125℃,濕度 0~100%RH
精度:±3.0%RH(濕度),±0.5℃(溫度)
工作溫度范圍:-40℃~125℃
2、二氧化碳傳感器模塊
二氧化碳監(jiān)測選用SprintIR型二氧化碳傳感器。它可測量最高達(dá)100%的二氧化碳濃度,并配有流入式適配器,適合要求高速傳感的應(yīng)用和二氧化碳濃度快速變化的測量。采用UART通訊方式輸出測試結(jié)果,接口可直接與MCU等芯片連接。它對功耗要求低,使其成為便攜式、可穿戴式及自供電應(yīng)用很好選擇。其主要技術(shù)指標(biāo)如下:
工作電壓:3.25~5.5V
工作電流:平均電流<15mA,峰值電流100mA
工作溫度范圍:-30°C~55°C
測量范圍:0%~60%
精度:±(70ppm+讀數(shù)的5%)
3、氧氣濃度監(jiān)測模塊
氧氣濃度監(jiān)測選用LuminOx型熒光傳感器。LuminOx是應(yīng)用熒光猝滅原理測量氧氣濃度,同時(shí)可檢測氧分壓。內(nèi)置溫度補(bǔ)償,不含鉛或其他任何有毒材料,且不受其他氣體交叉干擾的影響,無污染,非常穩(wěn)定和環(huán)保。LuminOx不需要額外的信號調(diào)節(jié)電路,可直接跟MCU的接口通過3.3V電平RS232連接,降低了成本,簡化了系統(tǒng)設(shè)計(jì)。其主要技術(shù)指標(biāo)如下:
工作電壓:4.5~5.5V
工作電流:<7.5mA(1Hz數(shù)據(jù)采樣率),<20mA(峰值)
工作溫度范圍:-30℃~60℃
測量范圍:0%~25%
精度:<2%FS
4、聲吶測距模塊
通過在糧倉棚頂與糧堆頂部間的距離可反映出糧堆的下沉情況。測距模塊選用XL-MaxSonar-EZ型超聲波測距傳感器。該傳感器輸出功率高,針對變化的環(huán)境(溫度、電壓和聲學(xué)及電氣噪音)具備實(shí)時(shí)自動(dòng)標(biāo)定功能,確保每次采集的讀數(shù)都是最可靠(空氣中)的數(shù)據(jù)。XL-MaxSonar-EZ傳感器能在小而緊湊的外形結(jié)構(gòu)中提供長短距離檢測和測距并提供數(shù)字輸出。其主要技術(shù)指標(biāo)如下:
工作電壓:3.3~5.5V
工作電流:3.4mA(平均),100mA(最大)
工作溫度:-40℃~65℃
測量范圍:0~1608cm
精度:±1cm
根據(jù)分層分布式的總設(shè)計(jì)思路及傳感器輸出方式和數(shù)據(jù)格式,必須在傳感器輸出和數(shù)據(jù)集中器輸入間增加一個(gè)數(shù)據(jù)采集和格式轉(zhuǎn)換環(huán)節(jié)。本設(shè)計(jì)選用C8051F410來實(shí)現(xiàn)這一功能。
傳感器模塊原理圖如圖2所示。設(shè)計(jì)時(shí)在保證功能和可靠性前提下,盡量節(jié)省成本,因此,第一要充分利用MCU內(nèi)部資源,減少外圍器件;第二將所有傳感器芯片/模塊設(shè)計(jì)在同一塊電路板上,使用時(shí)每塊PCB板僅安裝一種傳感器芯片/模塊。

圖2 傳感器模塊原理圖
圖2中U1為C8051F410,該芯片內(nèi)部的復(fù)位、時(shí)鐘、UART控制器、I2C控制器、4個(gè)定時(shí)器、2個(gè)外中斷電路可供使用,因此,外圍僅增加了RS485接口芯片和必要的電源及濾波器件。本設(shè)計(jì)中氧氣、二氧化碳、聲納測距傳感器均采用UART通訊方式輸出測量結(jié)果,C8051F410在接收傳感器輸出的同時(shí),還要與數(shù)據(jù)集中器進(jìn)行數(shù)據(jù)通訊,因此需要至少2個(gè)UART端口。C8051F410芯片本身僅有1個(gè)UART端口,設(shè)計(jì)通過軟件編程,使用IO端口模擬UART通訊時(shí)序進(jìn)行擴(kuò)展。
數(shù)據(jù)集中器作為數(shù)據(jù)的中轉(zhuǎn)站,對下通過RS485總線收集匯總各傳感器監(jiān)測的環(huán)境數(shù)據(jù),對上通過網(wǎng)絡(luò)專線按約定格式向控制臺傳送匯總數(shù)據(jù)。當(dāng)控制臺無數(shù)據(jù)傳送請求時(shí),數(shù)據(jù)集中器還可將匯總數(shù)據(jù)保存在非易失性存儲器中。
數(shù)據(jù)集中器的核心控制器仍選擇C8051F410。非易失性存儲器選用AT24C256,該芯片除保存系統(tǒng)運(yùn)行的配置數(shù)據(jù)外,還可保存1000條環(huán)境數(shù)據(jù)。S3530為I2C接口時(shí)鐘芯片,用于提供系統(tǒng)時(shí)間。以太網(wǎng)協(xié)議芯片選用CH395,該芯片自帶10/100M以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY),完全兼容IEEE802.3 10/100M協(xié)議。本設(shè)計(jì)中C8051F410通過SPI接口控制CH395芯片進(jìn)行以太網(wǎng)通訊。數(shù)據(jù)集中器結(jié)構(gòu)框圖如圖3所示。

圖3 數(shù)據(jù)集中器結(jié)構(gòu)框圖
通過對UART通訊時(shí)信號狀態(tài)的分析,可以根據(jù)其信號狀態(tài)變化的規(guī)律,使用軟件控制IO端口模擬UART時(shí)序?qū)崿F(xiàn)通訊。
在UART通訊中,數(shù)據(jù)線上共有兩種狀態(tài),分別用邏輯1(高電平)和邏輯0(低電平)表示。在空閑時(shí),數(shù)據(jù)線應(yīng)該保持在邏輯1狀態(tài)。在采用N,8,1設(shè)置發(fā)送數(shù)據(jù)時(shí),首先發(fā)送一個(gè)邏輯0信號,表示傳輸字符的開始,然后是8位的數(shù)據(jù)位,最后時(shí)邏輯1的停止位,之后總線處于邏輯1狀態(tài),表示當(dāng)前線路上沒有資料傳送,直到下次發(fā)送數(shù)據(jù)。數(shù)據(jù)線上起始、停止及各數(shù)據(jù)位間隔由波特率決定。
本設(shè)計(jì)中使用C8051F410的兩個(gè)IO口作為軟件UART的發(fā)送數(shù)據(jù)線SW_TXD和接收數(shù)據(jù)線SW_RXD;定時(shí)器2設(shè)置為雙8位自動(dòng)重裝定時(shí)器方式,TMR2H用于產(chǎn)生發(fā)送波特率,TMR2L用于產(chǎn)生接收波特率;外中斷0(INT0)設(shè)置為下降沿觸發(fā)方式,信號輸入端口與SW_RXD復(fù)用,用于檢測SW_RXD上的起始位。
實(shí)現(xiàn)軟件UART的源程序如下:




數(shù)據(jù)集中器中C8051F410通過以太網(wǎng)協(xié)議芯片CH395與控制臺軟件進(jìn)行TCP/IP通訊。CH395初始化成功后,還要進(jìn)行Socket配置才能進(jìn)行網(wǎng)絡(luò)通訊,本系統(tǒng)配置為TCP服務(wù)器模式。CH395初始化流程如圖4所示。將Socket設(shè)置為TCP服務(wù)器模式的流程如圖5所示。
在TCP服務(wù)器模式下,如果客戶端進(jìn)行連接,Socket一直處于監(jiān)聽狀態(tài),不會產(chǎn)生超時(shí)中斷,如果TCP連接成功,CH395會產(chǎn)生SINT_STAT_CONNECT中斷,此時(shí)單片機(jī)可以發(fā)送命令CMD_GET_REMOT_IPP_SN來獲取客戶端的IP地址和端口號。

圖4 CH395初始化流程圖

圖5 設(shè)置Socket為TCP服務(wù)器模式流程圖
采用本設(shè)計(jì)方法研制的糧倉環(huán)境監(jiān)測系統(tǒng),實(shí)現(xiàn)了對I2C接口的溫濕度傳感器、UART接口的二氧化碳傳感器及聲納測距模塊、3.3V電平RS232協(xié)議的氧氣傳感器的輸出數(shù)據(jù)采集、解析功能。各傳感器采集信息按糧庫信息化平臺數(shù)據(jù)格式打包、傳輸,實(shí)現(xiàn)不同信息間數(shù)據(jù)格式和傳遞方式的有效融合,便于數(shù)據(jù)被平臺深度利用。系統(tǒng)樣機(jī)體積小、安裝簡便,在用戶現(xiàn)場試用穩(wěn)定,功能滿足用戶需求。