0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

已多個開源系統(tǒng)為基礎(chǔ),研究6LoWPAN邊界路由器

SwM2_ChinaAET ? 來源:未知 ? 作者:工程師郭婷 ? 2018-07-26 19:21 ? 次閱讀

自從物聯(lián)網(wǎng)概念的提出,6LoWPAN(IPv6 over Low Power Wireless Personal Area Network)邊界路由器就是主要的研究內(nèi)容之一。為實現(xiàn)Internet網(wǎng)絡(luò)與無線傳感器網(wǎng)絡(luò)的互聯(lián),IETF工作組早在2004年就提出并制定了基于IPv6的以IEEE802.15.4作為底層標(biāo)準(zhǔn)的低功耗無線個域網(wǎng)6LoWPAN技術(shù)標(biāo)準(zhǔn),其主要包括6LoWPAN適配層、IPv6報頭壓縮與解壓、數(shù)據(jù)分片與重組、路由協(xié)議、IPv6網(wǎng)絡(luò)接入和節(jié)點地址管理技術(shù)等。

目前6LoWPAN協(xié)議已實現(xiàn)在多種開源系統(tǒng)上,例如6LBR、Contiki,本文采用開源的、高度可移植的6LBR和Contiki操作系統(tǒng)。其中,Contiki是一個開源的專門為需要聯(lián)網(wǎng)、硬件資源嚴(yán)重受限的嵌入式設(shè)備而設(shè)計的事件驅(qū)動多任務(wù)操作系統(tǒng)[2],通過uIP協(xié)議棧提供了對IPv4和IPv6的TCP/IP協(xié)議的支持,還包含了一套輕量級的無線傳感器網(wǎng)絡(luò)協(xié)議棧Rime;同時在IPv6中還實現(xiàn)了6LoWPAN協(xié)議、RPL無線路由協(xié)議以及應(yīng)用層協(xié)議CoAP。6LBR是為工業(yè)應(yīng)用準(zhǔn)備的6LoWPAN/RPL邊界路由解決方案,它運行在低成本、開放的硬件平臺和Linux主機(jī)上,因此6LBR更符合未來邊界路由器的發(fā)展方向,其設(shè)計思路更能滿足今后的應(yīng)用需求。

本文在Contiki和OpenWrt的基礎(chǔ)上,將6LBR移植到嵌入式OpenWrt系統(tǒng)上,設(shè)計了一種實用的邊界路由器。其能夠完成IP協(xié)議棧和6LoWPAN協(xié)議棧之間的轉(zhuǎn)換,使IP網(wǎng)絡(luò)中的主機(jī)可以訪問6LoWPAN傳感網(wǎng)絡(luò)中的節(jié)點。

1、 邊界路由器實現(xiàn)方案

OpenWrt是一個基于Linux內(nèi)核的路由器操作系統(tǒng),支持各種處理器架構(gòu),對擁有ARM架構(gòu)的TL-WR703N路由器有很好的支持。提供簡單易用的環(huán)境框架以及模塊化設(shè)計來構(gòu)架自己的應(yīng)用程序,這大大方便了開發(fā)應(yīng)用程序和6LBR移植到OpenWrt系統(tǒng)中。本文在OpenWrt系統(tǒng)的基礎(chǔ)上,提出了兩種6LoWPAN邊界路由器的解決方案,分別是6LBR-OpenWrt邊界路由器方案和OpenWrt邊界路由器解決方案。

2 、6LBR-OpenWrt邊界路由器

2.1 6LBR-OpenWrt邊界路由器系統(tǒng)結(jié)構(gòu)

6LBR用于將基于802.15.4與6LoWPAN的無線傳感器網(wǎng)絡(luò)和基于以太網(wǎng)的IPv6網(wǎng)絡(luò)連接起來。6LBR設(shè)計靈活,它可以配置為支持各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)用于連接無線傳感器網(wǎng)絡(luò)與IP世界。路由器TL-WR703N不能直接與6LoWPAN網(wǎng)絡(luò)中的網(wǎng)絡(luò)子節(jié)點進(jìn)行無線通信,要采用運行Contiki程序的CC1310DK芯片,程序帶有相關(guān)SLIP協(xié)議。

2.2 6LBR的運行模式

6LBR目前有兩種運行方式:網(wǎng)橋模式和路由模式。在路由模式中,子節(jié)點構(gòu)成的6LoWPAN無線傳感器網(wǎng)絡(luò)和以太網(wǎng)有不同的網(wǎng)絡(luò)前綴;在網(wǎng)橋模式中,前綴則一樣。文獻(xiàn)[2]和文獻(xiàn)[4]詳細(xì)介紹了6LBR的幾種模式,網(wǎng)橋模式不再贅述。在本文用到的路由器模式中,6LBR當(dāng)作一個完整的IPv6路由器,用于連接以太網(wǎng)和6LoWPAN網(wǎng)絡(luò)。6LoWPAN網(wǎng)絡(luò)由RPL協(xié)議來管理,以太網(wǎng)端通過IPv6鄰居發(fā)現(xiàn)協(xié)議管理。在這種模式下,通過數(shù)據(jù)包過濾器模塊,6LBR向Contiki提供了一個虛擬的接口。路由器模式可以將傳感器網(wǎng)絡(luò)分隔成一個獨立的子網(wǎng),這樣能清晰地分辨出無線傳感器中的節(jié)點;由于網(wǎng)絡(luò)前綴有切換功能,節(jié)點可以在不同的6LoWPAN網(wǎng)絡(luò)中移動;節(jié)點會根據(jù)新的網(wǎng)絡(luò)前綴獲得一個新的地址。

2.3 軟件設(shè)計

本文采用路由器模式,CC1310上運行的Slip-radio程序可以實現(xiàn)6LBR Linux進(jìn)程和802.15.4無線電的通信,通過串口收發(fā)數(shù)據(jù)。MAC(Medium Acess Control)層在6LBR里,驅(qū)動方式為載波偵聽多路訪問(Carrier Sense Multiple Acess,CSMA);RDC(Radio Duty Cycling)層在Slip-radio里,MAC層接收RDC層發(fā)來的數(shù)據(jù),并通過RDC發(fā)送數(shù)據(jù);如果RDC層檢測到數(shù)據(jù)碰撞,MAC重發(fā)此數(shù)據(jù)。6LBR移植到TL-WR703N路由器上之后,需要在路由器上創(chuàng)建6lbr.conf文件,其主要內(nèi)容如下:

MODE=ROUTER

RAW_ETH=0

BRIDGE=1

ETH_JOIN_BRIDGE=0

DEV_BRIDGE=br-lan

DEV_TAP=tap0

DEV_ETH=br-lan

RAW_ETH_FCS=0

DEV_RADIO=/dev/ttyUSB0 BAUDRATE=9600

CC1310DK與TL-WR703N串口連接,路由器上系統(tǒng)會根據(jù)串口生成一個虛擬網(wǎng)卡tap0,br-lan包括有線lan口和無線網(wǎng);然后讓tap0口和br-lan口相接。PC通過lan口把數(shù)據(jù)傳給TL-WR703N,數(shù)據(jù)經(jīng)過6LBR處理之后通過tap0即串口發(fā)送給CC1310,CC1310通過無線的方式將數(shù)據(jù)傳給6LoWPAN傳感器網(wǎng)絡(luò)。

3、 OpenWrt邊界路由器

3.1 OpenWrt邊界路由器系統(tǒng)結(jié)構(gòu)

OpenWrt邊界路由器也采用到CC1310DK芯片,與第一種方案不同的是,CC1310DK芯片不僅作為與6LoWPAN傳感器網(wǎng)絡(luò)連接的802.15.4接口,還作為無線傳感器網(wǎng)絡(luò)的RPL根節(jié)點,支持對網(wǎng)絡(luò)的路由功能和管理RPL網(wǎng)絡(luò),集成了6LoWPAN適配層,并能完成IPv6協(xié)議和IEEE802.15.4協(xié)議的轉(zhuǎn)換,使完整的6LoWPAN/RPL網(wǎng)絡(luò)和OpenWrt邊界路由器實現(xiàn)通信,因此真正起到6LoWPAN邊界路由器功能的是CC1310DK。TP-WR703N通過以太網(wǎng)網(wǎng)口或者無線的方式與計算機(jī)主機(jī)連接,這樣OpenWrt邊界路由器便實現(xiàn)了處理來自IP網(wǎng)絡(luò)和WSN的IPv6之間轉(zhuǎn)發(fā)的數(shù)據(jù)。

3.2 軟件設(shè)計

CC1310DK通過USB接口與TL-WR703N連接,此時串口在路由器上生成/dev/ttyUSB0端口號,OpenWrt上的tunslip6軟件包把端口號虛擬成tun0網(wǎng)卡。可以實現(xiàn)在TL-WR703N上ping通6LoWPAN傳感器網(wǎng)絡(luò)中的子節(jié)點,外部網(wǎng)絡(luò)如PC通過lan口ping通邊界路由器,但無法ping通6LoWPAN傳感器網(wǎng)絡(luò)中的子節(jié)點;為了實現(xiàn)IP網(wǎng)絡(luò)與6LoWPAN傳感器網(wǎng)絡(luò)的通信,有兩種方式,第一種是對OpenWrt里的firewall/files里添加如下配置:

config zone option input ‘ACCEPT’

option forward ‘REJECT’

option output ‘ACCEPT’

option name ‘6lowpan’

option network ‘lan6’

config forwarding option dest ‘lan’

option src ‘6lowpan’

config forwarding option dest ‘6lowpan’

option src ‘lan’

在socket-support軟件包里加入如下腳本命令:

uci set network.lan6=interface

uci set network.lan6.proto=static

uci set network.lan6.ifname=tun0

uci set network.lan6.ip6assign=64

uci commit network

Uci命令行添加了一個tun0的網(wǎng)口,tun0是6LoWPAN傳感器網(wǎng)絡(luò)和邊界路由器通信的接口,這個配置就是讓lan口和tun0口相通,兩者可以相互轉(zhuǎn)發(fā)數(shù)據(jù)。

6LoWPAN子節(jié)點里運行帶有CoAP協(xié)議的程序。CoAP協(xié)議(Constrained Application Protocol)是為物聯(lián)網(wǎng)中資源受限設(shè)備制定的基于UDP的應(yīng)用層傳輸協(xié)議,可讓小型設(shè)備接入互聯(lián)網(wǎng)世界。Libcoap是CoAP協(xié)議的C語言實現(xiàn),它提供了server和client的功能。6LoWPAN子節(jié)點用作server端;OpenWrt提供了Libcoap軟件包,TL-WR703N路由器可作client端,通過coap-client指令實現(xiàn)路由器對6LoWPAN無線傳感器網(wǎng)絡(luò)中子節(jié)點的數(shù)據(jù)通信。實際上目前的通信僅在TL-WR703N路由器和傳感器網(wǎng)絡(luò)構(gòu)成的局域網(wǎng)實現(xiàn)。外部網(wǎng)絡(luò)通過對路由器TL-WR703N的操作實現(xiàn)通信,因此本文第二種方式為在OpenWrt系統(tǒng)上開發(fā)了軟件包socket-support,軟件包主要基于socket程序在Linux下開發(fā)了服務(wù)器端,通信協(xié)議為TCP協(xié)議,計算機(jī)、手機(jī)等外部設(shè)備運行客戶端。

這兩種方式的數(shù)據(jù)通信除了在PC端接收發(fā)送不同外,基本是一樣的。PC通過以太網(wǎng)口將數(shù)據(jù)傳遞給路由器TL-WR703N,運行border-router程序的CC1310與路由器通信接口是虛擬網(wǎng)卡tun0。CC1310可以看作是6LoWPAN網(wǎng)關(guān)節(jié)點,網(wǎng)關(guān)節(jié)點通過SLIP協(xié)議從路由器收到數(shù)據(jù)包,數(shù)據(jù)包格式為IPv6,而無線傳感網(wǎng)絡(luò)通信標(biāo)準(zhǔn)為IEEE 802.15.4。所以網(wǎng)關(guān)節(jié)點利用6LoWPAN適配層對數(shù)據(jù)包進(jìn)行報頭壓縮、數(shù)據(jù)分片,處理后的數(shù)據(jù)根據(jù)目的地址也就是6LoWPAN網(wǎng)絡(luò)子節(jié)點的IPv6地址發(fā)送下去;子節(jié)點收到數(shù)據(jù)后進(jìn)行數(shù)據(jù)重組,響應(yīng)命令,將采集到的數(shù)據(jù)壓縮、分片后傳給網(wǎng)關(guān)節(jié)點,6LoWPAN網(wǎng)關(guān)節(jié)點對收到的數(shù)據(jù)重組通過tun0口傳給路由器,路由器通過以太網(wǎng)口傳到IPv6網(wǎng)絡(luò)上。

4 、邊界路由器功能驗證

由于6LBR是作為軟件包應(yīng)用程序移植到OpenWrt上的,為了測試應(yīng)用方便,可以在第二種方案的基礎(chǔ)上選擇6LBR應(yīng)用程序包。這兩種方案都需要邊界路由器串口連接CC1310DK,TP-WR703N目前只提供一個端口,所以在調(diào)試時只能分開測試驗證。

4.1 6LBR-Openwrt邊界路由器連通性測試

連通性測試主要采取如下步驟:

(1)在PC端打開cmd.exe或者,執(zhí)行如下命令ping-6 bbbb::100,測試PC到網(wǎng)關(guān)已通。

(2)在運行有Copper插件的火狐瀏覽器內(nèi)輸入coap://[子節(jié)點IPv6地址]:5683/,可以訪問子節(jié)點的Web端程序,然后可以選擇特定的資源使用GET/POST/PUT/DELETE來獲取資源的具體內(nèi)容,可以看出子以太網(wǎng)和無線網(wǎng)的IPv6地址前綴并不相同,因此工作方式為路由模式,如圖6所示。

4.2 OpenWrt邊界路由器連通性測試

(1)打開網(wǎng)絡(luò)調(diào)試助手,選擇TCP Client模式連接邊界路由器,輸入getip和getipall命令可得到邊界路由器的IPv6地址以及子節(jié)點的IPv6地址。

(2)ping6子節(jié)點地址進(jìn)行ping連通性測試,也可將子節(jié)點的IPv6地址輸入到瀏覽器地址欄里訪問子節(jié)點Web界面。既可在Web頁面進(jìn)行GET/POST/PUT/DELETE命令操作,也可在網(wǎng)絡(luò)調(diào)試助手內(nèi)輸入coap命令進(jìn)行對子節(jié)點控制,如:coap-client-m get coap://:[子節(jié)點IPv6地址]:5683/sen/batmon/tem-p(得到子節(jié)點芯片的溫度值29)。因此可根據(jù)具體的實際應(yīng)用選擇Web端頁面的方式還是網(wǎng)絡(luò)調(diào)試助手,。

5 、結(jié)論

本文以Contiki、6LBR以及OpenWrt等多個開源系統(tǒng)為基礎(chǔ),從多方面設(shè)計研究了6LoWPAN邊界路由器,提出了多種可實施的解決方案。從測試結(jié)果可看出,所設(shè)計的6LoWPAN邊界路由器達(dá)到了預(yù)期的設(shè)計目標(biāo),可以根據(jù)具體無線傳感網(wǎng)絡(luò)應(yīng)用場合選擇合適的邊界路由器,下一步將陸續(xù)完善邊界路由器并應(yīng)用到環(huán)境檢測中。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2912

    文章

    44882

    瀏覽量

    375725
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3742

    瀏覽量

    114244
  • 開源系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    13725

原文標(biāo)題:【學(xué)術(shù)論文】基于多個開源系統(tǒng)的6LoWPAN邊界路由器的設(shè)計

文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    5G/4G工業(yè)路由器和普通路由器的區(qū)別

    類型,它們有著顯著的區(qū)別與各自的適用場景。1基本功能普通路由器是通常用于家庭和小型辦公室網(wǎng)絡(luò)的設(shè)備,它的主要功能是連接互聯(lián)網(wǎng),并在多個設(shè)備之間分配網(wǎng)絡(luò)流量。普通路由器
    的頭像 發(fā)表于 12-26 14:23 ?441次閱讀
    5G/4G工業(yè)<b class='flag-5'>路由器</b>和普通<b class='flag-5'>路由器</b>的區(qū)別

    Bananna Pi開源社區(qū)聯(lián)合矽昌通信打造開源的低成本W(wǎng)ifi5路由器

    香蕉派 BPI-Wifi5 路由器采用矽昌SF19A2890S2芯片方案設(shè)計。它是一款高性能無線路由器,適用于小微企業(yè)、家庭和其他網(wǎng)絡(luò)環(huán)境。Banana Pi開源社區(qū)提供整體解決方案。所有代碼
    的頭像 發(fā)表于 12-12 17:10 ?281次閱讀
    Bananna Pi<b class='flag-5'>開源</b>社區(qū)聯(lián)合矽昌通信打造<b class='flag-5'>開源</b>的低成本W(wǎng)ifi5<b class='flag-5'>路由器</b>

    香蕉派開源社區(qū)與矽昌通信共推BPI-Wifi5 低成本路由器開源方案

    香蕉派開源社區(qū)與矽昌通信共推BPI-Wifi5 低成本路由器[]() 香蕉派 BPI-Wifi5 路由器采用矽昌SF19A2890S2芯片方案設(shè)計。它是一款高性能無線路由器,適用于小微
    發(fā)表于 11-28 10:37

    WiFi7 - 改善你的 OpenWrt One開源路由器

    安裝最新的 OpenWrt 主程序(啟用驅(qū)動程序),您就擁有了完全開源路由器,支持 802.11BE 和 6GHz。測試了 mt7925 和 wcn7850 卡。
    的頭像 發(fā)表于 10-31 18:52 ?4474次閱讀
    WiFi7 - 改善你的 OpenWrt One<b class='flag-5'>開源</b><b class='flag-5'>路由器</b>

    5g路由器如何選型號設(shè)置

    在選擇和設(shè)置5G路由器時,用戶需要考慮多個因素以確保網(wǎng)絡(luò)性能的穩(wěn)定性和高效性。以下是對如何選型號和設(shè)置的詳細(xì)指導(dǎo): 一、選擇5G路由器型號 性能需求 : 如果需要支持多個設(shè)備同時連接并
    的頭像 發(fā)表于 10-21 14:43 ?430次閱讀

    工業(yè)路由器與家用路由器的區(qū)別

    本文將從多個角度,對工業(yè)路由器與家用路由器進(jìn)行詳細(xì)比較,幫助您更好地理解二者的區(qū)別。
    的頭像 發(fā)表于 10-18 17:51 ?516次閱讀

    基于CC1310的6LOWPAN組網(wǎng)技術(shù)的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《基于CC1310的6LOWPAN組網(wǎng)技術(shù)的應(yīng)用.pdf》資料免費下載
    發(fā)表于 08-31 09:53 ?0次下載
    基于CC1310的<b class='flag-5'>6LOWPAN</b>組網(wǎng)技術(shù)的應(yīng)用

    網(wǎng)關(guān)和路由器的對比分析

    網(wǎng)關(guān)和路由器作為計算機(jī)網(wǎng)絡(luò)中的關(guān)鍵設(shè)備,各自承擔(dān)著不同的角色和功能。下面將從定義、功能、應(yīng)用場景、性能等多個方面對網(wǎng)關(guān)和路由器進(jìn)行對比分析。
    的頭像 發(fā)表于 08-27 10:20 ?1404次閱讀

    如何清除連接過的路由器wifi信息?

    怎么清除連接過的路由器wifi信息
    發(fā)表于 06-26 07:55

    Banana Pi BPI-R4 Wifi7開源路由器外殼組裝教程,包括5G和wifi7#路由器 #開發(fā)板

    路由器開源
    Banana Pi開源硬件
    發(fā)布于 :2024年05月25日 12:05:09

    路由器橋接路由器怎樣橋接 路由器橋接好還是中繼好

    路由器橋接是指將一個路由器連接到另一個路由器上,通過無線或有線連接,將兩個或多個網(wǎng)絡(luò)連在一起,使其成為一個單一的網(wǎng)絡(luò)。橋接可以擴(kuò)大網(wǎng)絡(luò)范圍,同時保持原有網(wǎng)絡(luò)的兼容性和功能。 橋接有兩
    的頭像 發(fā)表于 02-20 14:26 ?5941次閱讀

    為什么要橋接無線路由器?如何通過網(wǎng)線將兩個路由器進(jìn)行橋接?

    連接。然而,由于無線信號的傳輸受到物理障礙和距離的限制,有時候一個無線路由器可能無法整個房間或建筑提供均勻的信號覆蓋。此時,橋接無線路由器的作用就顯得尤為重要。 橋接無線路由器的作用
    的頭像 發(fā)表于 02-04 14:07 ?3055次閱讀

    Banana Pi BPI-R3開源路由器啟動及性能評測

    Banana Pi BPI-R3開源路由器啟動及性能評測
    發(fā)表于 02-01 16:32

    請問多個路由器如何組網(wǎng)呢?

    多個路由器組網(wǎng)是一個常見的方式,用于擴(kuò)大無線覆蓋范圍或在家庭和辦公室中創(chuàng)建更復(fù)雜的網(wǎng)絡(luò)布局。
    的頭像 發(fā)表于 01-29 11:45 ?3375次閱讀

    千兆路由器和百兆路由器的區(qū)別 萬兆路由器有什么好處?

    千兆路由器和百兆路由器的主要區(qū)別在于它們的傳輸速率和端口速率。千兆路由器的傳輸速率可以達(dá)到1000Mbps,而百兆路由器的傳輸速率僅為100Mbps。
    的頭像 發(fā)表于 01-29 11:24 ?2303次閱讀