引言
嵌入式系統因具有低功耗、實時性強、可靠性高等優點而日益普及,隨著網絡對人們的生活越來越重要,網絡通信功能也成為嵌入式系統的發展趨勢。傳統的遠程監控系統多采用8位或16位主控芯片,通過485總線、紅外線等方式進行遠程通信。這樣的遠程監控系統存在反應速度慢、數據傳輸速率低、布線復雜、易受干擾等缺點。本系統采用32位的STM32F103C6作為主控芯片,現場采集的數據通過ZigBee無線傳感器網絡,用ENC28J60以太網控制器實現嵌入式系統與遠程監控主機的網絡通信。該系統可以廣泛應用于工業現場、樓宇等需要進行遠程監控的場所,具有實時性強、多用戶、監控方便、成本低等優點。
1 系統總體結構設計
根據系統的功能,可以把整個監控系統分為3部分:數據采集部分、數據處理與控制部分、遠程監控部分。監控系統總體結構如圖1所示。
數據采集部分采用CC2530芯片與ZStack協議棧組建的ZigBee無線傳感器網絡。終端設備對現場的溫度、濕度等數據進行采集,通過路由器把數據傳送到協調器。協調器與主控芯片STM32F103C6通過RS-232串口通信。
數據處理與控制部分(嵌入式服務器)是整個監控系統的核心,負責接收ZigBee網絡采集的數據,并通過以太網把數據發送給遠程監控主機,接收遠程監控主機發送的命令并執行相應的控制功能。嵌入式服務器由STM32F103C6芯片與ENC28J60以太網控制芯片組成,采用μIP協議棧實現可靠的端到端服務。
遠程監控部分由PC機與應用軟件組成。應用軟件為Visual Studio 2010開發的監控軟件,可供用戶實時地查看監控對象的參數,并控制遠程設備。
2 硬件設計
2.1 數據采集部分
該部分采用TI公司的CC2530芯片。CC2530通過I/O口與數據采集芯片相連,把采集到的數據經過ZigBee無線傳感器網絡傳到數據處理與控制部分。
CC2530除具有代碼預取功能的低功耗8051微控制器內核外,還具有8 KB內存、最高128 KB閃存、5通道DMA、一個16位定時器和一個8位定時器、8路輸入和可配置分辨率的12位ADC、2個支持多種串行通信協議的強大USART,21個通用I/O口,適應2.4 GHz IEEE802.15.4標準的RF收發器。其具有極高的接收靈敏度和抗干擾性能,只需要一個晶振和極少的外接元件即可正常運行。CC2530與外圍器件的連接關系如圖2所示。
2.2 數據處理與控制部分
該部分是整個監控系統的核心,主要由STM32F103C6芯片與ENC28J60芯片組成。數據處理與控制部分的連接原理如圖3所示。STM32F103 C6接收CC2530采集的數據,并在μIP協議棧的基礎上把數據封裝成符合以太網格式的數據包發送給遠程監控主機。同時,控制ZigBee無線傳感器網絡、接收遠程監控主機的命令,對電動機、電燈、風扇、空調、總開關等設備進行控制。
STM32F103C6采用ARM Cortex-M3(32位RISC)內核,最高運行頻率可達72 MHz。具有豐富的片上資源:32 KB的Flash、10 KB的SRAM、2個通用定時器和1個高級定時器、1個SPI接口、1個I2C總線接口、2個USART接口、1個USB接口、1個CAN總線接口、2個12位同步ADC模塊。
ENC28J60集成了10BASE-T PHY和MAC,帶接收器和沖突抑制電路,是兼容IEEE 802.3的以太網控制器。支持一個帶自動極性檢測和校正的10BASE—T端口,支持全雙工和半雙工模式,具有可編程在發生沖突時自動重發、可編程填充和CRC生成、可編程自動拒絕錯誤數據包的特性,并帶一個最高速度可達10 Mbps的SPI接口。具備8 KB發送/接收數據包雙端口SRAM,支持單播、組播和廣播數據包,可以自動收發、過濾數據包。ENC28J60通過SPI接口與STM32F103C6連接,接收STM32F103C6的數據并把數據轉化成符合IEEE 802.3標準的以太網數據包,實現網絡通信。
HR911105A是單口RJ45插座,符合IEEE802.3、IEEE802.3ab標準,自適應10/100/1000M以太網,內部集成了網絡隔離變壓器,具有強大的電磁干擾抑制功能。
2.3 遠程監控部分
該部分由PC機組成,PC機數量可以根據用戶的數量確定,可以分布于不同的地理位置,通過網線與嵌入式服務器連接,獲取嵌入式服務器的數據并發送用戶的控制命令給嵌入式服務器。
3 系統軟件設計
3.1 嵌入式服務器軟件總體設計
嵌入式服務器程序是本系統中最重要的功能實現模塊。主要實現3部分功能:接收ZigBee無線網絡的數據和傳輸數據采集控制命令,建立客戶機一服務器(C/S)模式的網絡通信機制以及控制外圍器件。
在本系統中,由STM32F103C6組成的嵌入式服務器即為C/S模式中的服務器,監控PC為客戶機。嵌入式服務器軟件系統是由μC/OS嵌入式實時操作系統、μIP協議棧、應用程序組成的。嵌入式服務器上電后對系統進行初始化,等待ZigBee網絡就緒,接收監控PC發送的命令,根據命令采集數據或控制外圍器件。嵌入式服務器軟件的流程如圖4所示。
3.2 ZigBee無線傳感器網絡
ZigBee協議是基于國際標準化組織(ISO)的開放系統互連(OSI)基本參考模型,ISO/OSI模型有7層,而ZigBee僅實現了低功耗、低數據傳輸率的無線網絡必需的部分:物理層(PHY)、介質訪問控制層(MAC)、網絡層(NWK)和應用層(APL)。最低的兩層:物理層和介質訪問控制層,由IEEE 802.15.4標準定義。網絡層和應用層由ZigBee標準定義。在應用層內提供了應用支持子層和ZigBee設備對象。
ZigBee網絡包含3種設備類型:協調器(ZC)、路由器(ZR)、終端設備(ZE)。ZigBee無線傳感器網絡拓撲結構如圖5所示。
協調器負責啟動和控制網絡,存儲關于網絡的信息;路由器負責中轉數據包,擴展網絡覆蓋面,提供備份路由以防網絡擁擠和設備通信失敗,支持子設備。終端設備可以發送或接收信息,但不能執行路由操作,必須被聯系到協調器或者一個路由器,并且終端設備不支持子設備。在本系統中終端設備負責采集溫度、濕度、煙霧、光照等數據,協調器通過RS-232接口與嵌入式服務器連接,把采集到的數據傳送到嵌入式服務器。
本系統采用TI公司符合ZigBee2007協議棧標準的Z—Stack協議棧實現ZigBee無線網絡。系統上電后,各結點首先實行硬件初始化,然后初始化ZigBee無線網絡,網絡組建完成并且運行正常后,終端設備進行數據采集,并通過路由器結點把數據傳遞給協調器。ZigBee無線網絡的工作順序如圖6所示。
3.3 μIP協議棧
μIP協議棧是由瑞典計算機科學研究所的AdamDunkels開發,并在BSD風格的許可證下發布的免費、開放源代碼的協議棧。完整TCP/IP協議棧的實現分別需要幾百KB的程序存儲空間和內存,這對8位或16位芯片組成的系統來說,需消耗太多的資源而無法得到應用。對于大多數應用來說,實現完整的TCP/IP協議棧是沒有必要的。μIP設計成僅僅實現完整TCP/IP協議棧里必需的特性,其中包括IP、ICMP、μDP和TCP協議,整個協議棧是用C語言實現的,并且只能處理一個網絡接口。
應用程序調用μIP協議棧提供的用戶接口函數實現網絡通信功能。發送數據時,μIP協議棧把應用程序的數據封裝成符合以太網標準的數據包,再調用底層驅動程序把數據發送到以太網中的目標機器。一旦以太網控制器接收到符合要求的數據包,則μIP協議棧提取包中的有效數據傳遞給應用程序。μIP協議棧與底層驅動、應用程序的調用關系如圖7所示。
3.4 監控系統測試結果
把程序下載到嵌入式服務器,硬件連接完畢后整個系統上電。在遠程監控主機中打開監控程序,對本系統進行測試,結果如圖8所示。
結語
通過對該監控系統進行運行測試,本系統可以接收遠程監控PC發送的監控命令,并根據命令將ZigBee無線傳感器網絡采集到的數據通過以太網發送給遠程監控PC、控制現場設備,實現了遠距離監測與控制功能。本設計解決了傳統遠程監控系統中傳輸距離短、布線復雜與實時性差等問題,具有重要的實際意義。
評論