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