国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM的物聯(lián)網(wǎng)多網(wǎng)互聯(lián)網(wǎng)關的設計與實現(xiàn)

2016-08-16 09:42王智群
計算機時代 2016年8期
關鍵詞:網(wǎng)關以太網(wǎng)

王智群

摘 要: 物聯(lián)網(wǎng)網(wǎng)關是連接感知層和網(wǎng)絡層的橋梁,是溝通物聯(lián)網(wǎng)與目前流行網(wǎng)絡的紐帶。文章設計的一種基于ARM的物聯(lián)網(wǎng)多網(wǎng)互聯(lián)網(wǎng)關,將Zigbee無線傳感器網(wǎng)絡與Wi-Fi網(wǎng)絡、以太網(wǎng)絡進行互連,實現(xiàn)對Zigbee網(wǎng)絡節(jié)點的控制。該網(wǎng)關硬件方面以ARM9系列S3C6410為主控芯片,采用模塊化的設計思路,分別搭建了相應的外圍功能模塊;軟件方面,通過移植Linux嵌入式操作系統(tǒng)以及編寫協(xié)議轉換程序,實現(xiàn)了網(wǎng)絡的互聯(lián),通過搭建Web服務器,設計應用通信協(xié)議及編寫CGI網(wǎng)關應用程序,實現(xiàn)了對網(wǎng)關的控制與管理。經(jīng)測試,該網(wǎng)關性能穩(wěn)定,實現(xiàn)了三網(wǎng)間的數(shù)據(jù)通信。

關鍵詞: 網(wǎng)關; ZigBee; Wi-Fi; 以太網(wǎng); 互聯(lián)

中圖分類號:TP391 文獻標志碼:A 文章編號:1006-8228(2016)08-28-03

Abstract: The Internet of Things gateway is a bridge which connects the perceptual layer and the network layer, and it is the link between IoT and current popular networks. In this article, a kind of IoT multi-network gateway based on ARM is designed to connect ZigBee Network with Wi-Fi network or Ethernet, and realize the control to the ZigBee nodes. In the hardware, ARM9 series S3C6410 is used as the main control chip of the gateway and the corresponding peripheral functional modules are set up by using the modular design concept; in the software, the gateway achieves interconnection of networks by transplanting embedded Linux operating system and developing protocol conversing programs. And by building Web server, designing application communication protocol and programming CGI gateway application, the control and management of the gateway are realized. According to the test, this gateway is stable, and the data communication between the three networks is implemented.

Key words: gateway; Zigbee; Wi-Fi; Ethernet; interconnection

0 引言

傳感網(wǎng)是物聯(lián)網(wǎng)感知層的主要應用技術,也是物聯(lián)網(wǎng)的支撐技術。而無線傳感器網(wǎng)絡(WSN)是傳感網(wǎng)中的重要組成部分,在目前的WSN中,ZigBee憑著其低功耗、低速率、低成本、高安全性等諸多特性在WSN中廣泛應用[1-3]。由于當前通信網(wǎng)絡種類比較多,各種網(wǎng)絡之間存在較大的差異[4],要將這些異構網(wǎng)絡融合起來,必須要使用網(wǎng)關設備將其互聯(lián),網(wǎng)關就是建立在網(wǎng)絡層之上的協(xié)議轉化器,可實現(xiàn)不同子網(wǎng)的信息交換與通信。由于目前以太網(wǎng)與Wi-Fi網(wǎng)絡在現(xiàn)實生活中廣泛使用,所以將ZigBee網(wǎng)絡與以太網(wǎng)或Wi-Fi網(wǎng)絡連接起來具有重要的現(xiàn)實意義。

本文設計的網(wǎng)關用于ZigBee網(wǎng)絡與Wi-Fi網(wǎng)絡及以太網(wǎng)通信,該網(wǎng)關接受ZigBee網(wǎng)絡傳送過來的信號,在ARM處理器控制處理下,分發(fā)到以太網(wǎng)及Wi-Fi網(wǎng)絡中;同時該網(wǎng)關也可以接受來自以太網(wǎng)和Wi-Fi網(wǎng)絡的控制信息,完成對ZigBee網(wǎng)絡設備的控制。本文設計的網(wǎng)關設備在應用中的作用如圖1所示,對于物聯(lián)網(wǎng)來說,它是連接無線傳感網(wǎng)絡或互聯(lián)網(wǎng)或其他智能設備(如手機、掌上電腦IPAD)的橋梁[5]。

1 網(wǎng)關硬件設計

本文設計的網(wǎng)關硬件結構如圖2所示。網(wǎng)關采用三星公司ARM9微處器S3C6410做主控芯片,芯片上集成的UART0與ZigBee模塊相連,芯片上集成的USB Host接口與Wi-Fi模塊相連,以太網(wǎng)模塊采用總線方式與主控芯片相連。內(nèi)存采用SDRAM芯片,存儲器采用Flash芯片,供電采用AC/220V,通過電源模塊產(chǎn)生DC 5V、DC 3.3V等電壓給各個模塊供電。

ZigBee模塊選用TI公司的一款工作在2.4GHz頻段并兼容IEEE 802.15.4協(xié)議的片上系統(tǒng)芯片CC2530。在ZigBee通信模塊中CC2530充當組網(wǎng)協(xié)調(diào)器角色,它與S3C6410之間通過串口UART方式進行通信,當S3C6410芯片收到Wi-Fi模塊或以太網(wǎng)模塊發(fā)送過來的數(shù)據(jù)或命令后,就會通過串口通知ZigBee協(xié)調(diào)器向網(wǎng)絡中相應ZigBee節(jié)點發(fā)送信息,協(xié)調(diào)器會根據(jù)ZigBee節(jié)點地址向目標節(jié)點發(fā)送信息。網(wǎng)絡內(nèi)ZigBee節(jié)點終端設備會將收集到的信息以相反的路徑發(fā)送到Wi-Fi網(wǎng)或以太網(wǎng)中。

Wi-Fi模塊采用ralink的一款工作在2.4GHz頻段并支持IEEE 802.11b/g協(xié)議的RT73/RT2571 Wi-Fi芯片。基于模塊化思想,具體選用TP-LINK公司TL-WIN321G+型號USB普通網(wǎng)卡,該網(wǎng)卡通過在S3C6410芯片中移植Hostapd程序(Hostapd是實現(xiàn)USB Wi-Fi AP功能及授權服務的一個開源項目)可實現(xiàn)軟AP點的功能。當Wi-Fi網(wǎng)絡中的終端設備接入AP點后,終端設備發(fā)送或接收信息時,通過Wi-Fi通信模塊的USB接口向S3C6410芯片的USB Host接口發(fā)送或接受信息,然后在S3C6410控制下與ZigBee網(wǎng)絡或以太網(wǎng)絡通信。

以太網(wǎng)模塊采用DM9000A太網(wǎng)控制器芯片。DM9000A一端通過16位數(shù)據(jù)總線掛接到S3C6410的系統(tǒng)數(shù)據(jù)總線上,另一端與集成了網(wǎng)絡變壓器RJ45接口的HR911105A芯片相連接,這樣可以使用普通網(wǎng)線連接網(wǎng)關。當以太網(wǎng)中數(shù)據(jù)經(jīng)DM9000A芯片傳送到S3C6410芯片時,S3C6410控制器分別通過內(nèi)部集成的串口和USB Host接口向ZigBee模塊和Wi-Fi模塊傳送信息,從而完成與ZigBee網(wǎng)絡或Wi-Fi網(wǎng)絡的通信。

2 網(wǎng)關軟件構架

網(wǎng)關主控制器軟件結構如圖3所示,操作系統(tǒng)選擇嵌入式Linux,它由BootLoader程序負責引導。通過編寫Linux系統(tǒng)中DM9000A控制器端口讀寫驅動、UART串口讀寫驅動及USB Host端口的讀寫驅動程序,分別實現(xiàn)應用程序與各模塊間的通信。由于Linux系統(tǒng)中包含一個完整的TCP/IP協(xié)議棧[4],所以通過移植Boa服務器(Boa是Linux下一個小巧的Web服務器,支持CGI程序),在應用層編寫CGI程序實現(xiàn)客戶端與網(wǎng)關間的信息交互與控制。在應用層編寫網(wǎng)絡協(xié)議轉化守護程序,實現(xiàn)網(wǎng)絡協(xié)議的相互轉化。在網(wǎng)關應用層運行Hostapd守護程序,可實現(xiàn)Wi-Fi模塊的AP點等功能。

至于ZigBee模塊的軟件結構,主要是基于Z-Stack的協(xié)議棧,它使用OSAL小型操作系統(tǒng)來實現(xiàn)多任務處理。ZigBee模塊充當網(wǎng)絡協(xié)調(diào)器角色,完成建網(wǎng)與組網(wǎng)功能,同時通過在協(xié)議棧應用層編寫數(shù)據(jù)轉發(fā)等程序,實現(xiàn)串口數(shù)據(jù)與ZigBee網(wǎng)絡節(jié)點數(shù)據(jù)的轉發(fā)等功能。即,ZigBee模塊監(jiān)聽到來自ZigBee網(wǎng)絡數(shù)據(jù)包時,將數(shù)據(jù)包發(fā)送給串口,網(wǎng)關主控制器通過串口接收數(shù)據(jù);當監(jiān)聽到來自網(wǎng)關主控制器串口的數(shù)據(jù)時,ZigBee模塊會根據(jù)相應的尋址方式將數(shù)據(jù)發(fā)往相對應節(jié)點。

3 關鍵技術處理

3.1 網(wǎng)絡協(xié)議轉化

由于網(wǎng)絡協(xié)議標準的不同,要實現(xiàn)ZigBee網(wǎng)絡、Wi-Fi網(wǎng)絡、以太網(wǎng)絡之間相互通信,必須在主控制器中實現(xiàn)網(wǎng)絡協(xié)議的轉化。對于Wi-Fi網(wǎng)絡和以太網(wǎng)絡,雖然其低層標準一個采用802.11,一個采用802.3,但它們網(wǎng)絡傳輸層都執(zhí)行TCP/IP協(xié)議,因此Wi-Fi網(wǎng)絡和以太網(wǎng)絡的轉換可以使用NAT(Network Address Translation)技術,改變IP包頭,使目的地址、源地址或兩個地址在包頭中被不同的地址替換即可,即通過移植Linux內(nèi)核中的Netfilter模塊及編寫腳本文件可實現(xiàn)Wi-Fi網(wǎng)絡和以太網(wǎng)絡間報文的相互轉發(fā)。但是ZigBee網(wǎng)絡則不同,網(wǎng)絡傳輸層沒有執(zhí)行TCP/IP協(xié)議,所以通過NAT技術解決不了網(wǎng)絡間的相互轉發(fā),必須在主控制器中設計協(xié)議轉化程序。該守護程序設計思想是將串口鏈路層數(shù)據(jù)經(jīng)過TCP/IP協(xié)議的封裝,即可完成與Wi-Fi網(wǎng)絡、以太網(wǎng)絡的通訊。具體來說當ZigBee網(wǎng)絡來的串口數(shù)據(jù)向Wi-Fi網(wǎng)絡、以太網(wǎng)絡傳輸時,進入TCP/IP協(xié)議棧加上Wi-Fi頭或以太網(wǎng)頭、TCP/IP頭及串口號等信息進行封裝,然后再發(fā)往這些網(wǎng)絡;當Wi-Fi網(wǎng)絡、以太網(wǎng)絡向串口發(fā)送數(shù)據(jù)時,是出TCP/IP協(xié)議棧分解的過程,即依次去掉每層的協(xié)議頭分解出應用層數(shù)據(jù),最后根據(jù)串口號字段值將信息發(fā)往相應串口,從而完成整個通訊過程。

3.2 ZigBee網(wǎng)絡尋址

ZigBee網(wǎng)絡內(nèi)節(jié)點只有兩種地址,即16位短的網(wǎng)絡地址和64位長的物理地址。ZigBee網(wǎng)內(nèi)通訊采用隨機生成的16位短地址。由于ZigBee網(wǎng)絡地址不是固定的,而64位物理地址是IEEE分配的全球惟一號,所以其他網(wǎng)絡與ZigBee網(wǎng)絡通訊時必須要建立物理地址與網(wǎng)絡地址的一對一關系。因此在網(wǎng)關內(nèi)部保存一張ZigBee網(wǎng)絡內(nèi)所有節(jié)點的物理地址和網(wǎng)絡地址對應表,當ZigBee網(wǎng)絡節(jié)點加入網(wǎng)絡成功后,網(wǎng)關協(xié)調(diào)器就更新這張網(wǎng)絡節(jié)點地址對應表。當Wi-Fi網(wǎng)絡或以太網(wǎng)絡與ZigBee網(wǎng)絡節(jié)點通訊時采用的是64位物理地址,傳輸數(shù)據(jù)時,網(wǎng)關首先根據(jù)物理地址在表中查找它的網(wǎng)絡地址,然后根據(jù)網(wǎng)絡地址將數(shù)據(jù)發(fā)送到相應的ZigBee節(jié)點。

3.3 通信協(xié)議設計

ZigBee模塊與主控制器S3C6410之間要實現(xiàn)信息交互,必須采用一定格式的通訊協(xié)議。表1是網(wǎng)關ZigBee模塊與主控制器通訊時的幀格式,它采用32字節(jié)固定長度的幀格式與主控制器通訊,每一幀都是32字節(jié),且?guī)в袔^、數(shù)據(jù)和幀尾。除幀頭和幀尾外,每一幀數(shù)據(jù)都有功能碼、地址、有效數(shù)據(jù)和校驗位組成。幀頭為一特殊字符,占1個字節(jié);功能碼代表本幀數(shù)據(jù)需要執(zhí)行的功能類型,占3個字節(jié);地址位共占10個字節(jié),代表所訪問ZigBee網(wǎng)絡節(jié)點的網(wǎng)絡地址和物理地址,高8字節(jié)是物理地址,低2字節(jié)是網(wǎng)絡地址; 數(shù)據(jù)長度占16字節(jié),傳送各個參數(shù)、變量與返回值及各種需要發(fā)送的數(shù)據(jù);校驗位占1個字節(jié),是從功能碼到數(shù)據(jù)尾的加和校驗,所得的結果為檢驗字節(jié);幀尾為一特殊字符,占1個字節(jié)。

當網(wǎng)關應用程序對ZigBee網(wǎng)內(nèi)節(jié)點控制時,首先應用程序根據(jù)通訊協(xié)議格式向串口發(fā)送帶有相應功能碼的指令,網(wǎng)關ZigBee模塊從串口得到該指令后,根據(jù)其中的功能碼及地址位,依據(jù)3.2節(jié)ZigBee網(wǎng)絡尋址方式向相應節(jié)點發(fā)送該命令,ZigBee網(wǎng)絡節(jié)點在接收到含有功能碼的指令后,完成相應的功能并收集相關信息。節(jié)點在收集完相關信息后,按通訊協(xié)議格式要求打包,將相應信息發(fā)往網(wǎng)關ZigBee模塊,網(wǎng)關ZigBee模塊在得到上述信息后轉發(fā)到串口,S3C6410偵聽到串口來的數(shù)據(jù),然后將串口數(shù)據(jù)解包,即可獲得相應反饋信息。網(wǎng)關CGI程序根據(jù)該通訊協(xié)議,實現(xiàn)對ZigBee網(wǎng)絡的控制與管理。

4 結束語

本文設計的基于ARM處理器的網(wǎng)關,經(jīng)測試很好的實現(xiàn)了ZigBee網(wǎng)絡與WI-FI網(wǎng)絡及以太網(wǎng)絡的通信。但需要注意的是:由于Wi-Fi信號與ZigBee信號都使用2.4G無線頻段,當其部署在同一環(huán)境中且Wi-fi信道與ZigBee信道重疊時,Wi-Fi通信會對ZigBee產(chǎn)生較大干擾。但在2.425GHz、2.450GHz、2.475GHz和2.480GHz四個頻段上,ZigBee頻段與Wi-Fi網(wǎng)絡頻段不存在重疊干擾現(xiàn)象,因此,ZigBee信號建議使用以上4個頻段避免Wi-Fi信號的干擾。

參考文獻(References):

[1] 余成波,李洪兵,陶紅艷.無線傳感器網(wǎng)絡實用教程[M].清華大學出版社,2012.

[2] 成小良,鄧志東.基于ZigBee規(guī)范構建大規(guī)模無線傳感器網(wǎng)絡[J].通信學報,2008.29(11):158-164

[3] S. R. Ramyah. Load Density Analysis of Mobile ZigBee Coordinator in Hexagonal Configuration[J]. Wireless Sensor Network,2012.4(3):59-64

[4] 王緒海,姚曉峰.基于嵌入式系統(tǒng)的物聯(lián)網(wǎng)網(wǎng)關的設計[J].信息通信,2016.157(1):64-67

[5] 張文華等.基于嵌入式Web服務器的物聯(lián)網(wǎng)網(wǎng)關設計[J].四川大學學報(自然科學版),2013.50(5):962-966

猜你喜歡
網(wǎng)關以太網(wǎng)
基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設計與實現(xiàn)
談實時以太網(wǎng)EtherCAT技術在變電站自動化中的應用
一種90W高功率以太網(wǎng)供電系統(tǒng)的設計
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應用
應對氣候變化需要打通“網(wǎng)關”
一種實時高效的伺服控制網(wǎng)關設計
基于Zigbee與TCP的物聯(lián)網(wǎng)網(wǎng)關設計
沧源| 开封市| 竹山县| 滨海县| 景宁| 泸溪县| 通州区| 大足县| 屏边| 凤阳县| 黑水县| 锡林郭勒盟| 蓬溪县| 富平县| 吉木萨尔县| 财经| 嘉义县| 留坝县| 巩留县| 成都市| 吴川市| 鄱阳县| 牡丹江市| 武平县| 呼玛县| 土默特右旗| 舒兰市| 凤冈县| 衢州市| 普兰县| 石首市| 油尖旺区| 沈丘县| 赞皇县| 岳阳市| 馆陶县| 武义县| 滨州市| 竹溪县| 赤壁市| 内乡县|