羅雪雪,陳 敏,朱泉水,丁真真
(南昌航空大學無損檢測技術教育部重點實驗室,江西 南昌 330063)
在人們的日常生活和工業領域中,往往會因不同的原因共同和持續作用而導致一些不良后果的場合,如糧食霉變、山體滑坡等,這時對多參數進行實時監測及存儲就顯得尤為重要。由于上述場合大多處于較為廣闊的環境中,要求使用較多的傳感器模塊并考慮模塊的低功耗特性。基于這些因素的考慮,本文以低功耗芯片CC2530 作為處理核心,采用易于擴展的ZigBee 無線傳感器網絡組成無線傳感網絡模塊,對常規環境變量進行就地存儲和對危險情況進行預警和無線報警。近年來,以ZigBee技術為核心的無線傳感器網絡發展迅猛[1],具有良好的應用前景,尤其是應用ZigBee 技術實現傳感數據的存儲、監測和分析[2]。
本文重點研究采用CC2530 和CH376 芯片實現溫濕度數據的無線傳輸和存儲,為數據的監測和分析奠定基礎。以溫濕度數據采集為例,設計的無線采集和存儲的無線傳感模塊由監測區域的協調器節點和上位機構成。
在無線傳感網絡中,監測區域的終端節點主要完成廣闊區域多個位置點的環境溫濕度數據采集,并按照一定的格式,把經由ZigBee 無線傳感網絡的數據定向傳輸給協調器節點,協調器節點將接收的數據經過一定的處理后實時存儲到數據存儲模塊中。無線傳感模塊中微控制器可使用低功耗芯片CC2530,從而延長無線傳感模塊的使用周期[3-5]。此外,當需要讀取已存儲的歷史溫濕度數據時,上位機可通過Wi-Fi 無線通信模塊與上位機之間建立的Wi-Fi 無線網絡訪問數據存儲模塊中已存儲的監測區域的歷史數據,并進行監測和分析。通過這樣的模塊設計,實現無線溫濕度數據的采集和存儲。
本文以一個終端節點和一個協調器節點組成的無線傳感網絡為例,其硬件結構見第67 頁圖1。無線傳感器網絡節點選用的是創思通信公司生產的ZigBee 開發板,并在此基礎上進行二次開發。終端節點的微控制器采用的是CC2530 芯片,它是工業標準增強型8051 微控制器,具有高達128 KB 的可編程閃存和8 KB 隨機存取存儲器,其遵循IEEE 802.15.4 標準,射頻收發器為2.4 GHz,可控的編程輸出功率最高達到4.5 dBm[6]。它還內置了較為強大和完善的ZigBee 協議棧,該協議棧是構建ZigBee無線傳感網絡的基礎和核心[7]。
環境的溫濕度數據通過使用數字溫濕度傳感器DHT11 采集獲得,在終端節點設計中,DHT11 的DATA 引腳與 CC2530 的 P0.7 引腳連接。

圖1 無線數據采集和存儲硬件結構圖
設計中,在協調器節點上增加了由STC12 單片機和CH376 接口芯片所構成的USB 數據存儲模塊。CH376 芯片是一款文件管理控制芯片,主要用于單片機或嵌入式系統讀寫U 盤或者SD 卡中的文件。其中,協調器節點以串口方式與STC12 單片機通信,STC12 單片機使用協調器上的+5 V 電源。
ZigBee 是當前流行的無線傳感器網絡的通信協議,遵循IEEE 802.15.4 和ZigBee 聯盟標準,因此,采用ZigBee 協議體系對于軟件平臺標準化構建具有重要的意義。
基于ZigBee 的數據采集軟件平臺體系結構見圖2。軟件體系結構分為4 層:物理層 (PHY)、媒體介質訪問層 (MAC)、網絡層 (NWK)和應用支持子層(APS),層層相關聯,下層在設計上為上層提供詳細的管理和數據服務。為了保證數據的安全性還專門為網絡層和應用層增加了安全服務功能[8]。
CH376 的USB 數據存儲流程見圖3。
協調器接收到終端無線傳輸來的溫濕度數據后,通過串口發送給STC12 單片機,為了將數據以特定的文件格式存儲到U 盤中,需要通過CH376接口芯片的管理和控制。在設計中,查詢U 盤和創建文件等功能是通過CH376 文件系統庫FILE_SYS實現的。數據存儲功能的實現主要包括以下步驟。

圖2 基于ZigBee 的數據采集軟件平臺體系結構圖

圖3 CH376 的USB 數據存儲流程圖
1)單片機和CH376 接口芯片的初始化。在軟件設計中,STC12 單片機的初始化重點涉及與串口有關的寄存器、定時器和中斷控制的資源配置,以及串口緩存區的設計。CH376 接口芯片的初始化主要是該芯片工作模式的設置及其通信接口的初始化,該過程通過調用文件系統庫中的函數實現。
2)查詢U 盤。南京沁恒公司提供了有關CH376 的文件系統庫FILE_SYS,通過調用文件系統庫中的函數來完成查詢U 盤和創建文件的工作。在主機模式下,單片機設置CH376 繼續調用FILE_SYS 文件系統庫中的CH376DiskConnect ()函數查詢U 盤連接情況。當U 盤接入時,能自動檢測USB 總線中數據信號線的電平變化然后產生中斷通知。當U 盤連接成功后,會調用文件系統庫中的CH376DiskReady()函數來查詢U 盤是否進入了準備狀態。
3)創建新文件。U 盤準備就緒后,通過調用函數CH376FileCreate(),在U 盤的存儲空間中創建一個名為“MY_ADC.TXT”的文本文件,等待溫濕度數據寫入。
4)向U 盤中寫數據。當溫濕度數據傳輸過來時會先暫存在STC12 單片機的串口緩沖區,緩沖區的設計是為了更加方便和快速地寫數據,當串口緩沖區存滿數據后,再把這些數據以扇區方式批量寫入 U 盤中的“MY_ADC.TXT”文本文件中[9]。
在ZigBee 構建的無線傳感器網絡中,協調器節點把終端節點發送來的溫濕度數據轉化成一定的數據格式,通過串口傳送給STC12 單片機,STC12 單片機通過并口以扇區方式批量把數據存儲到U 盤中[10]。通過串口顯示的調試結果見圖4,顯示的溫濕度數據中,第一列為溫度數據,第二列為濕度數據。

圖4 串口調試系統界面
在U 盤的根目錄下成功創建名為“MY_ADC.TXT”的文本文件的調試結果見圖5。最后系統不斷把溫濕度數據以扇區方式批量寫入新建的文本文件中,結果見圖6。

圖5 系統在U 盤根目錄下創建名為“MY_ADC.TXT”的文本文件
通過構建的無線傳感器網絡實現了溫濕度數據的采集和存儲,當需要讀取存儲模塊中已存儲的歷史溫濕度數據而進行監測和分析時,只需要在STC12 單片機上添加一個Wi-Fi 模塊ESP8266,并進行相應的串口Wi-Fi 和讀U 盤存儲器的軟件設計,最后上位機連接ESP8266 的Wi-Fi 熱點后就可以控制訪問U 盤存儲器中的歷史溫濕度數據,進一步進行監測和分析[11]。

圖6 “MY_ADC.TXT”文本文件中保存的部分溫濕度數據
本文論述了一種基于CC2530 處理器芯片和USB2.0 控制器CH376 的ZigBee 無線數據采集和存儲模塊,構建了系統的軟硬件平臺,同時對基于CH376 的USB 數據存儲進行了詳細的介紹,后期只要添加一個Wi-Fi 模塊,就能夠實現上位機對存儲模塊中歷史數據的訪問。實驗測試證明,該平臺傳輸可靠性好,系統可擴展性較強,前景可觀,值得深入探索。