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