XPort與ZigBee模塊的Internet接入技術(shù)
引 言
ZigBee技術(shù)作為一種新型的近距離、低功耗、低數(shù)據(jù)傳輸率的雙向無(wú)線通信技術(shù),在家電產(chǎn)品中得到越來(lái)越廣泛的應(yīng)用。在網(wǎng)絡(luò)無(wú)處不在的今天,人們希望隨時(shí)隨地能訪問(wèn)和控制家庭中的各種家電設(shè)備。這就要求嵌入在家電產(chǎn)品中的智能控制系統(tǒng) (Agent)能夠與Internet相結(jié)合,使家電設(shè)備順利地接入Internet,并能提供相應(yīng)的網(wǎng)絡(luò)服務(wù)。實(shí)現(xiàn)這些服務(wù)要求Agent必須實(shí)現(xiàn) TCP/IP協(xié)議棧,不管是以軟件方式還是以硬件方式,都會(huì)增加產(chǎn)品開發(fā)的成本、周期和復(fù)雜度。本文介紹一種基于XPort和ZigBee模塊的 Internet接入方案,將它集成到家電產(chǎn)品的設(shè)計(jì)中,即可使智能家電設(shè)備便捷地接入Internet,然后通過(guò)Internet來(lái)控制。
1 XPort
XPort設(shè)備服務(wù)器是美國(guó)Lantronix公司開發(fā)的一種緊湊且高度集成的、可讓任何帶有串口的智能設(shè)備接入Internet的嵌入式設(shè)備。通過(guò)在自己的產(chǎn)品設(shè)計(jì)中集成XPort,開發(fā)人員不必考慮復(fù)雜的網(wǎng)絡(luò)協(xié)議,可以大大縮短產(chǎn)品開發(fā)周期。XPort模塊集成有Lantronix公司的DSTni- EX增強(qiáng)版16位CPU。該模塊為i86內(nèi)核體系結(jié)構(gòu),具有24位尋址能力、256 KB的SRAM、16 KB的引導(dǎo)ROM、384 KB的Flash和10/100 Mbps自適應(yīng)以太網(wǎng)口(RJ45)。圖1直觀地顯示了XPort的接口方式和內(nèi)部布局。XPort一端為3.3 V CMOS電平的8引腳高速串口(GND,3.3VDC,Reset,Data In,Data Out,CPl,CP2,CP3),另一端為RJ45標(biāo)準(zhǔn)以太網(wǎng)口。
XPort的主要功能是實(shí)現(xiàn)串口與10/100 Mbps網(wǎng)絡(luò)間的數(shù)據(jù)轉(zhuǎn)換,便于帶有串口的設(shè)備接入Internet;另外還有Email告警功能,通過(guò)設(shè)定的條件觸發(fā)。XPort高速串口支持 RS232、RS485協(xié)議,有300~921 600 bps的波特率可選??刂菩盘?hào)有DTR/DCD、CTS、RTS,流控制有XON/XOFF、RTS/CTS、3個(gè)PIO pin口(軟件可選)。XPort網(wǎng)絡(luò)接口的連接器為RJ45,支持協(xié)議有TCP/IP、UDP/IP、ARP、ICMP、SNMP、TFTP、 Telnet、DHCP、BOOTP、HTTP和AutoIP。XPort具有基于Windows平臺(tái)的配置工具,內(nèi)建Web服務(wù)器,F(xiàn)lash存儲(chǔ)器可以存儲(chǔ)用戶自定義網(wǎng)頁(yè),固件可以通過(guò)TFTP和串口升級(jí)。XPort設(shè)備服務(wù)器還提供10/100 Mbps自適應(yīng)以太網(wǎng)連接、存儲(chǔ)在Flash中的可靠的操作系統(tǒng)、嵌入式Web服務(wù)器、完整的TCP/IP協(xié)議棧、標(biāo)準(zhǔn)的AES加密、狀態(tài)指示燈和電磁屏蔽電路等。XPort的內(nèi)部結(jié)構(gòu)如圖2所示,一端的串行接口與DsTni-EX連接,另一端的以太網(wǎng)連接器通過(guò)一個(gè)防電磁干擾電路與CPU連接。
XPort通過(guò)串口和邊緣設(shè)備通信。XPort的工作電壓為3.3 V,內(nèi)部有一個(gè)電壓監(jiān)測(cè)電路,當(dāng)提供的電壓低于2.7 V時(shí)會(huì)觸發(fā)重啟。3.3 V電壓通過(guò)內(nèi)建的1.8 V電壓轉(zhuǎn)換器為微處理器供電,濾波電路產(chǎn)生3.3 V的數(shù)字電壓和模擬電壓,25 MHz晶振電路為CPU和以太網(wǎng)媒體訪問(wèn)控制芯片提供精確時(shí)鐘信號(hào)。
2 系統(tǒng)結(jié)構(gòu)
遠(yuǎn)程訪問(wèn)和控制家電需要處理的關(guān)鍵問(wèn)題是不同數(shù)據(jù)類型的轉(zhuǎn)換,即TCP/IP數(shù)據(jù)如何被轉(zhuǎn)化為家電可以接收識(shí)別的數(shù)據(jù),使用戶通過(guò)局域網(wǎng)或。Internet終端就能訪問(wèn)家電。該系統(tǒng)主要由3層組成:用戶層、控制中心層和終端設(shè)備層,其結(jié)構(gòu)如圖3所示。
其中,用戶層負(fù)責(zé)收集、顯示整個(gè)系統(tǒng)家電狀態(tài)數(shù)據(jù)和發(fā)送控制命令,這些功能由用戶層中的Web頁(yè)面來(lái)實(shí)現(xiàn),也可以使用上位機(jī)軟件;控制中心層實(shí)際上成為用戶層與終端設(shè)備層之間的一個(gè)連接,由TCP/IP到串口轉(zhuǎn)換設(shè)備XPort和ZigBee模塊LM2455-EM組成,相當(dāng)于一個(gè)ZigBee網(wǎng)關(guān),其主要作用是協(xié)議轉(zhuǎn)換和數(shù)據(jù)傳遞;終端設(shè)備層是由傳感器、無(wú)線發(fā)射模塊和微控制器(MCU)等組成的智能家電產(chǎn)品。用戶層通過(guò)用戶程序發(fā)出的控制命令經(jīng) Socket連接傳給XPort,設(shè)備MCU接到數(shù)據(jù)后控制執(zhí)行器產(chǎn)生相應(yīng)的動(dòng)作,讓家電進(jìn)入相應(yīng)的工作狀態(tài)。家電作為該系統(tǒng)中的嵌入式終端設(shè)備,成為 ZigBee網(wǎng)絡(luò)中的一個(gè)ZigBee節(jié)點(diǎn)。
圖3中,虛線表示ZigBee無(wú)線通信,可分為單向和雙向。單向通信時(shí),家電設(shè)備控制中心只需對(duì)其發(fā)出命令,控制其工作狀態(tài);雙向通信時(shí),家電設(shè)備控制中心還需要從該設(shè)備獲得相關(guān)的信息,并將該信息返回給用戶。系統(tǒng)的關(guān)鍵部分是控制中心層,其中XPort負(fù)責(zé)與局域網(wǎng)或Internet連接,LM2455 -EM無(wú)線模塊負(fù)責(zé)組建ZigBee網(wǎng)絡(luò)并與家電通信。圖4給出了XPort與LM2455-EM的連接方式。XPort的數(shù)據(jù)接收口連接LM2455- EM的數(shù)據(jù)發(fā)送口P1_1,XPort的數(shù)據(jù)發(fā)送口接LM2455-EM的數(shù)據(jù)接收口P1_0。
當(dāng)用戶通過(guò)Internet發(fā)送控制家電的信息或者想要獲得家電狀態(tài)時(shí),XPort就將收到的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)換為串口數(shù)據(jù),通過(guò)其引腳4發(fā)送給LM2455- EM的串口(P1.0);LM2455-EM做出相應(yīng)的響應(yīng),并通過(guò)無(wú)線收發(fā)器向終端設(shè)備發(fā)送相關(guān)命令。同樣,終端設(shè)備對(duì)收到的命令做出響應(yīng),如果用戶端需要讀取家電狀態(tài),則發(fā)送狀態(tài)信息給控制中心。當(dāng)LM2455-EM收到ZigBee無(wú)線數(shù)據(jù)時(shí),將其發(fā)送到XPort的引腳5,XPort就將原始數(shù)據(jù)打包成TCP/IP數(shù)據(jù)包,發(fā)送給用戶。
3 ZigBee模塊
ZigBee模塊LM2455-EM的核心是韓國(guó)RadioPulse公司推出的一款片上系統(tǒng)芯片MG2455-F48。它完全兼容IEEE 802.15.4標(biāo)準(zhǔn)和ZigBee標(biāo)準(zhǔn),為家電控制、無(wú)線傳感器網(wǎng)絡(luò)等ZigBee應(yīng)用提供一種無(wú)線解決方案。由RF收發(fā)器、嵌入式8051核微控制器、內(nèi)部Flash存儲(chǔ)器一般I/O口和定時(shí)器、UART等外圍設(shè)備組成;通信速率有250 kbps、500 kbps、1 Mbps,提供μ-law/a-law/ADPCM語(yǔ)音編碼支持,具有96 KB的Flash程序存儲(chǔ)空間和8 KB數(shù)據(jù)內(nèi)存。
在空曠場(chǎng)合,通信距離可以達(dá)到200 m。其功耗很低,在睡眠模式下,電流消耗低于1μA;在接收狀態(tài)下,電流消耗為33.2 mA;在發(fā)送狀態(tài)下,0 dBm時(shí)電流消耗為30.6 mA,8 dBm時(shí)電流消耗為43 mA。MG2455-F48采用四側(cè)無(wú)引腳扁平48引腳封裝方式。
MG2455-F48芯片集成了符合ZigBee協(xié)議標(biāo)準(zhǔn)的射頻收發(fā)器和微處理器,具有通信距離遠(yuǎn)、抗干擾能力強(qiáng)、組網(wǎng)靈活、性能穩(wěn)定可靠等優(yōu)點(diǎn),能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)、多點(diǎn)對(duì)多點(diǎn)間的數(shù)據(jù)透明傳輸,可組成星型、樹型、蜂窩型等網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。數(shù)據(jù)通信方式包括廣播方式和按照目標(biāo)地址發(fā)送方式。 RadioPulse公司以庫(kù)文件的形式為用戶提供ZigBee協(xié)議棧軟件,用戶可使用Keil等工具軟件編譯自己的應(yīng)用程序。
4 XPort的配置
XPort上電后需要進(jìn)行配置,使其符合用戶需要的工作狀態(tài)。Lantronix公司提供了相應(yīng)的工具軟件Lantron-ix Devicelnstaller。運(yùn)行該軟件,如果XPort供電正常且已經(jīng)接入網(wǎng)絡(luò),該軟件會(huì)自動(dòng)搜尋到該設(shè)備??梢酝ㄟ^(guò)3種方式配置XPort:瀏覽器方式(推薦使用,圖形用戶界面),Telnet:遠(yuǎn)程登陸方式和串口方式。
首先使用DeviceInstaller軟件為其分配一個(gè)有效的IP地址,然后設(shè)置XPort的串口工作方式,最后設(shè)置其網(wǎng)絡(luò)參數(shù)。使用協(xié)議選擇TCP,工作模式為接收連接。需分配一個(gè)本地端口,如果選擇主動(dòng)連接,則需要選擇遠(yuǎn)程主機(jī)的IP地址和端口號(hào),其他默認(rèn)設(shè)置即可。
使用瀏覽器配置XPort的參數(shù)需要人工手動(dòng)設(shè)置,而使用基于命令行的串口方式可實(shí)現(xiàn)自動(dòng)設(shè)置。用戶編寫的XPort參數(shù)設(shè)置程序,上電時(shí)自動(dòng)啟動(dòng)進(jìn)入監(jiān)視模式,完成相關(guān)參數(shù)設(shè)置。由于XPort內(nèi)置Web服務(wù)器,可以使用JAVA applet編寫自己的網(wǎng)頁(yè)程序,燒寫到XPort的用戶存儲(chǔ)空間,然后在程序中使用Socket.receive()和Socket.send()處理用戶自己的數(shù)據(jù)。
5 ZigBee網(wǎng)絡(luò)構(gòu)建
ZigBee網(wǎng)絡(luò)有星型、樹型、網(wǎng)狀等多種組網(wǎng)方式。組建成什么網(wǎng)絡(luò)應(yīng)根據(jù)需要而定。對(duì)各家電問(wèn)沒(méi)有通信需求,也沒(méi)有擴(kuò)展通信距離需要的,可以構(gòu)建成星型網(wǎng)絡(luò)。在星型拓?fù)浣Y(jié)構(gòu)中,所有的終端設(shè)備都與唯一的中央控制設(shè)備——PAN協(xié)調(diào)器通信,終端設(shè)備之間的通信通過(guò)PAN協(xié)調(diào)器的轉(zhuǎn)發(fā)來(lái)完成。終端設(shè)備要么是通信的起點(diǎn),要么是通信的終點(diǎn);PAN協(xié)調(diào)器則既可以是通信的起點(diǎn),也可以是通信的終點(diǎn)。
在一個(gè)ZigBee網(wǎng)絡(luò)中,設(shè)備類型分為ZigBee協(xié)調(diào)器、ZigBee路由器、ZigBee終端設(shè)備,PAN協(xié)調(diào)器就是ZigBee協(xié)調(diào)器。 ZigBee協(xié)調(diào)器是一個(gè)起網(wǎng)絡(luò)控制中心作用的FFD,它不單為網(wǎng)絡(luò)控制而存在,還可以有自己的應(yīng)用。與XPort連接的ZigBee模塊LM2455- EM就充當(dāng)ZigBee協(xié)調(diào)器的角色,負(fù)責(zé)網(wǎng)絡(luò)的創(chuàng)建。
創(chuàng)建一個(gè)新的網(wǎng)絡(luò)需要用到以下幾個(gè)網(wǎng)絡(luò)層原語(yǔ)。
①NLME-RESET.request原語(yǔ):實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)層復(fù)位,清除所有內(nèi)部變量和路由發(fā)現(xiàn)表記錄。
②NLME-NETWORK-FORMATION.reqctest原語(yǔ):創(chuàng)建一個(gè)新的ZigBee網(wǎng)絡(luò)。只有充當(dāng)ZigBee協(xié)調(diào)器的全功能設(shè)備才能嘗試建立一個(gè)新網(wǎng)絡(luò),在創(chuàng)建網(wǎng)絡(luò)之前,它首先會(huì)請(qǐng)求MAC層執(zhí)行能量檢測(cè)掃描。
③NLME-PERMIT-JOINING.request原語(yǔ):允許一個(gè)ZigBee終端設(shè)備加入網(wǎng)絡(luò)。
構(gòu)建網(wǎng)絡(luò)代碼由ZigBee協(xié)議庫(kù)文件實(shí)現(xiàn)的main()函數(shù)來(lái)調(diào)用。它可以在ZUSER_INIT()中實(shí)現(xiàn),也可以在ZUSER_MAIN()中實(shí)現(xiàn)。處理用戶自己數(shù)據(jù)則在ZUS-ER_MAIN()中實(shí)現(xiàn)。運(yùn)行在ZigBee協(xié)調(diào)器中的main()函數(shù)通過(guò)一個(gè)死循環(huán)調(diào)用ZUSER_MAIN() 來(lái)執(zhí)行任務(wù)和工作,其偽代碼如下:
結(jié) 語(yǔ)
ZigBee作為智能家居的實(shí)現(xiàn)技術(shù)之一,有著很好的應(yīng)用前景。本文給出了一個(gè)簡(jiǎn)單而高效的解決方案,使Zig-Bee終端設(shè)備能夠便捷地接入 Internet,用戶通過(guò)瀏覽器就可以操作和控制家電。用該方法實(shí)現(xiàn)嵌入式設(shè)備入網(wǎng),不再需要在設(shè)備中增加以太網(wǎng)控制器并在MCU中實(shí)現(xiàn)TCP/IP協(xié)議,可大大降低系統(tǒng)設(shè)計(jì)復(fù)雜度,縮短開發(fā)周期。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,更多的產(chǎn)品會(huì)連接到網(wǎng)絡(luò)上,通過(guò)更小的設(shè)備來(lái)完成細(xì)分的工作。嵌入式終端設(shè)備入網(wǎng)既是需求,又是趨勢(shì),該方法同樣適合于其他通過(guò)串口交換數(shù)據(jù)的嵌入式設(shè)備聯(lián)網(wǎng)。