羅雪雪,陳 敏,朱泉水,丁真真
(南昌航空大學(xué)無損檢測技術(shù)教育部重點實驗室,江西 南昌 330063)
在人們的日常生活和工業(yè)領(lǐng)域中,往往會因不同的原因共同和持續(xù)作用而導(dǎo)致一些不良后果的場合,如糧食霉變、山體滑坡等,這時對多參數(shù)進行實時監(jiān)測及存儲就顯得尤為重要。由于上述場合大多處于較為廣闊的環(huán)境中,要求使用較多的傳感器模塊并考慮模塊的低功耗特性。基于這些因素的考慮,本文以低功耗芯片CC2530 作為處理核心,采用易于擴展的ZigBee 無線傳感器網(wǎng)絡(luò)組成無線傳感網(wǎng)絡(luò)模塊,對常規(guī)環(huán)境變量進行就地存儲和對危險情況進行預(yù)警和無線報警。近年來,以ZigBee技術(shù)為核心的無線傳感器網(wǎng)絡(luò)發(fā)展迅猛[1],具有良好的應(yīng)用前景,尤其是應(yīng)用ZigBee 技術(shù)實現(xiàn)傳感數(shù)據(jù)的存儲、監(jiān)測和分析[2]。
本文重點研究采用CC2530 和CH376 芯片實現(xiàn)溫濕度數(shù)據(jù)的無線傳輸和存儲,為數(shù)據(jù)的監(jiān)測和分析奠定基礎(chǔ)。以溫濕度數(shù)據(jù)采集為例,設(shè)計的無線采集和存儲的無線傳感模塊由監(jiān)測區(qū)域的協(xié)調(diào)器節(jié)點和上位機構(gòu)成。
在無線傳感網(wǎng)絡(luò)中,監(jiān)測區(qū)域的終端節(jié)點主要完成廣闊區(qū)域多個位置點的環(huán)境溫濕度數(shù)據(jù)采集,并按照一定的格式,把經(jīng)由ZigBee 無線傳感網(wǎng)絡(luò)的數(shù)據(jù)定向傳輸給協(xié)調(diào)器節(jié)點,協(xié)調(diào)器節(jié)點將接收的數(shù)據(jù)經(jīng)過一定的處理后實時存儲到數(shù)據(jù)存儲模塊中。無線傳感模塊中微控制器可使用低功耗芯片CC2530,從而延長無線傳感模塊的使用周期[3-5]。此外,當(dāng)需要讀取已存儲的歷史溫濕度數(shù)據(jù)時,上位機可通過Wi-Fi 無線通信模塊與上位機之間建立的Wi-Fi 無線網(wǎng)絡(luò)訪問數(shù)據(jù)存儲模塊中已存儲的監(jiān)測區(qū)域的歷史數(shù)據(jù),并進行監(jiān)測和分析。通過這樣的模塊設(shè)計,實現(xiàn)無線溫濕度數(shù)據(jù)的采集和存儲。
本文以一個終端節(jié)點和一個協(xié)調(diào)器節(jié)點組成的無線傳感網(wǎng)絡(luò)為例,其硬件結(jié)構(gòu)見第67 頁圖1。無線傳感器網(wǎng)絡(luò)節(jié)點選用的是創(chuàng)思通信公司生產(chǎn)的ZigBee 開發(fā)板,并在此基礎(chǔ)上進行二次開發(fā)。終端節(jié)點的微控制器采用的是CC2530 芯片,它是工業(yè)標(biāo)準(zhǔn)增強型8051 微控制器,具有高達128 KB 的可編程閃存和8 KB 隨機存取存儲器,其遵循IEEE 802.15.4 標(biāo)準(zhǔn),射頻收發(fā)器為2.4 GHz,可控的編程輸出功率最高達到4.5 dBm[6]。它還內(nèi)置了較為強大和完善的ZigBee 協(xié)議棧,該協(xié)議棧是構(gòu)建ZigBee無線傳感網(wǎng)絡(luò)的基礎(chǔ)和核心[7]。
環(huán)境的溫濕度數(shù)據(jù)通過使用數(shù)字溫濕度傳感器DHT11 采集獲得,在終端節(jié)點設(shè)計中,DHT11 的DATA 引腳與 CC2530 的 P0.7 引腳連接。
圖1 無線數(shù)據(jù)采集和存儲硬件結(jié)構(gòu)圖
設(shè)計中,在協(xié)調(diào)器節(jié)點上增加了由STC12 單片機和CH376 接口芯片所構(gòu)成的USB 數(shù)據(jù)存儲模塊。CH376 芯片是一款文件管理控制芯片,主要用于單片機或嵌入式系統(tǒng)讀寫U 盤或者SD 卡中的文件。其中,協(xié)調(diào)器節(jié)點以串口方式與STC12 單片機通信,STC12 單片機使用協(xié)調(diào)器上的+5 V 電源。
ZigBee 是當(dāng)前流行的無線傳感器網(wǎng)絡(luò)的通信協(xié)議,遵循IEEE 802.15.4 和ZigBee 聯(lián)盟標(biāo)準(zhǔn),因此,采用ZigBee 協(xié)議體系對于軟件平臺標(biāo)準(zhǔn)化構(gòu)建具有重要的意義。
基于ZigBee 的數(shù)據(jù)采集軟件平臺體系結(jié)構(gòu)見圖2。軟件體系結(jié)構(gòu)分為4 層:物理層 (PHY)、媒體介質(zhì)訪問層 (MAC)、網(wǎng)絡(luò)層 (NWK)和應(yīng)用支持子層(APS),層層相關(guān)聯(lián),下層在設(shè)計上為上層提供詳細(xì)的管理和數(shù)據(jù)服務(wù)。為了保證數(shù)據(jù)的安全性還專門為網(wǎng)絡(luò)層和應(yīng)用層增加了安全服務(wù)功能[8]。
CH376 的USB 數(shù)據(jù)存儲流程見圖3。
協(xié)調(diào)器接收到終端無線傳輸來的溫濕度數(shù)據(jù)后,通過串口發(fā)送給STC12 單片機,為了將數(shù)據(jù)以特定的文件格式存儲到U 盤中,需要通過CH376接口芯片的管理和控制。在設(shè)計中,查詢U 盤和創(chuàng)建文件等功能是通過CH376 文件系統(tǒng)庫FILE_SYS實現(xiàn)的。數(shù)據(jù)存儲功能的實現(xiàn)主要包括以下步驟。
圖2 基于ZigBee 的數(shù)據(jù)采集軟件平臺體系結(jié)構(gòu)圖
圖3 CH376 的USB 數(shù)據(jù)存儲流程圖
1)單片機和CH376 接口芯片的初始化。在軟件設(shè)計中,STC12 單片機的初始化重點涉及與串口有關(guān)的寄存器、定時器和中斷控制的資源配置,以及串口緩存區(qū)的設(shè)計。CH376 接口芯片的初始化主要是該芯片工作模式的設(shè)置及其通信接口的初始化,該過程通過調(diào)用文件系統(tǒng)庫中的函數(shù)實現(xiàn)。
2)查詢U 盤。南京沁恒公司提供了有關(guān)CH376 的文件系統(tǒng)庫FILE_SYS,通過調(diào)用文件系統(tǒng)庫中的函數(shù)來完成查詢U 盤和創(chuàng)建文件的工作。在主機模式下,單片機設(shè)置CH376 繼續(xù)調(diào)用FILE_SYS 文件系統(tǒng)庫中的CH376DiskConnect ()函數(shù)查詢U 盤連接情況。當(dāng)U 盤接入時,能自動檢測USB 總線中數(shù)據(jù)信號線的電平變化然后產(chǎn)生中斷通知。當(dāng)U 盤連接成功后,會調(diào)用文件系統(tǒng)庫中的CH376DiskReady()函數(shù)來查詢U 盤是否進入了準(zhǔn)備狀態(tài)。
3)創(chuàng)建新文件。U 盤準(zhǔn)備就緒后,通過調(diào)用函數(shù)CH376FileCreate(),在U 盤的存儲空間中創(chuàng)建一個名為“MY_ADC.TXT”的文本文件,等待溫濕度數(shù)據(jù)寫入。
4)向U 盤中寫數(shù)據(jù)。當(dāng)溫濕度數(shù)據(jù)傳輸過來時會先暫存在STC12 單片機的串口緩沖區(qū),緩沖區(qū)的設(shè)計是為了更加方便和快速地寫數(shù)據(jù),當(dāng)串口緩沖區(qū)存滿數(shù)據(jù)后,再把這些數(shù)據(jù)以扇區(qū)方式批量寫入 U 盤中的“MY_ADC.TXT”文本文件中[9]。
在ZigBee 構(gòu)建的無線傳感器網(wǎng)絡(luò)中,協(xié)調(diào)器節(jié)點把終端節(jié)點發(fā)送來的溫濕度數(shù)據(jù)轉(zhuǎn)化成一定的數(shù)據(jù)格式,通過串口傳送給STC12 單片機,STC12 單片機通過并口以扇區(qū)方式批量把數(shù)據(jù)存儲到U 盤中[10]。通過串口顯示的調(diào)試結(jié)果見圖4,顯示的溫濕度數(shù)據(jù)中,第一列為溫度數(shù)據(jù),第二列為濕度數(shù)據(jù)。
圖4 串口調(diào)試系統(tǒng)界面
在U 盤的根目錄下成功創(chuàng)建名為“MY_ADC.TXT”的文本文件的調(diào)試結(jié)果見圖5。最后系統(tǒng)不斷把溫濕度數(shù)據(jù)以扇區(qū)方式批量寫入新建的文本文件中,結(jié)果見圖6。
圖5 系統(tǒng)在U 盤根目錄下創(chuàng)建名為“MY_ADC.TXT”的文本文件
通過構(gòu)建的無線傳感器網(wǎng)絡(luò)實現(xiàn)了溫濕度數(shù)據(jù)的采集和存儲,當(dāng)需要讀取存儲模塊中已存儲的歷史溫濕度數(shù)據(jù)而進行監(jiān)測和分析時,只需要在STC12 單片機上添加一個Wi-Fi 模塊ESP8266,并進行相應(yīng)的串口Wi-Fi 和讀U 盤存儲器的軟件設(shè)計,最后上位機連接ESP8266 的Wi-Fi 熱點后就可以控制訪問U 盤存儲器中的歷史溫濕度數(shù)據(jù),進一步進行監(jiān)測和分析[11]。
圖6 “MY_ADC.TXT”文本文件中保存的部分溫濕度數(shù)據(jù)
本文論述了一種基于CC2530 處理器芯片和USB2.0 控制器CH376 的ZigBee 無線數(shù)據(jù)采集和存儲模塊,構(gòu)建了系統(tǒng)的軟硬件平臺,同時對基于CH376 的USB 數(shù)據(jù)存儲進行了詳細(xì)的介紹,后期只要添加一個Wi-Fi 模塊,就能夠?qū)崿F(xiàn)上位機對存儲模塊中歷史數(shù)據(jù)的訪問。實驗測試證明,該平臺傳輸可靠性好,系統(tǒng)可擴展性較強,前景可觀,值得深入探索。