0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

已多个开源系统为基础,研究6LoWPAN边界路由器

SwM2_ChinaAET 来源:未知 作者:工程师郭婷 2018-07-26 19:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

自从物联网概念的提出,6LoWPAN(IPv6 over Low Power Wireless Personal Area Network)边界路由器就是主要的研究内容之一。为实现Internet网络与无线传感器网络的互联,IETF工作组早在2004年就提出并制定了基于IPv6的以IEEE802.15.4作为底层标准的低功耗无线个域网6LoWPAN技术标准,其主要包括6LoWPAN适配层、IPv6报头压缩与解压、数据分片与重组、路由协议、IPv6网络接入和节点地址管理技术等。

目前6LoWPAN协议已实现在多种开源系统上,例如6LBR、Contiki,本文采用开源的、高度可移植的6LBR和Contiki操作系统。其中,Contiki是一个开源的专门为需要联网、硬件资源严重受限的嵌入式设备而设计的事件驱动多任务操作系统[2],通过uIP协议栈提供了对IPv4和IPv6的TCP/IP协议的支持,还包含了一套轻量级的无线传感器网络协议栈Rime;同时在IPv6中还实现了6LoWPAN协议、RPL无线路由协议以及应用层协议CoAP。6LBR是为工业应用准备的6LoWPAN/RPL边界路由解决方案,它运行在低成本、开放的硬件平台和Linux主机上,因此6LBR更符合未来边界路由器的发展方向,其设计思路更能满足今后的应用需求。

本文在Contiki和OpenWrt的基础上,将6LBR移植到嵌入式OpenWrt系统上,设计了一种实用的边界路由器。其能够完成IP协议栈和6LoWPAN协议栈之间的转换,使IP网络中的主机可以访问6LoWPAN传感网络中的节点。

1、 边界路由器实现方案

OpenWrt是一个基于Linux内核的路由器操作系统,支持各种处理器架构,对拥有ARM架构的TL-WR703N路由器有很好的支持。提供简单易用的环境框架以及模块化设计来构架自己的应用程序,这大大方便了开发应用程序和6LBR移植到OpenWrt系统中。本文在OpenWrt系统的基础上,提出了两种6LoWPAN边界路由器的解决方案,分别是6LBR-OpenWrt边界路由器方案和OpenWrt边界路由器解决方案。

2 、6LBR-OpenWrt边界路由器

2.1 6LBR-OpenWrt边界路由器系统结构

6LBR用于将基于802.15.4与6LoWPAN的无线传感器网络和基于以太网的IPv6网络连接起来。6LBR设计灵活,它可以配置为支持各种网络拓扑结构用于连接无线传感器网络与IP世界。路由器TL-WR703N不能直接与6LoWPAN网络中的网络子节点进行无线通信,要采用运行Contiki程序的CC1310DK芯片,程序带有相关SLIP协议。

2.2 6LBR的运行模式

6LBR目前有两种运行方式:网桥模式和路由模式。在路由模式中,子节点构成的6LoWPAN无线传感器网络和以太网有不同的网络前缀;在网桥模式中,前缀则一样。文献[2]和文献[4]详细介绍了6LBR的几种模式,网桥模式不再赘述。在本文用到的路由器模式中,6LBR当作一个完整的IPv6路由器,用于连接以太网和6LoWPAN网络。6LoWPAN网络由RPL协议来管理,以太网端通过IPv6邻居发现协议管理。在这种模式下,通过数据包过滤器模块,6LBR向Contiki提供了一个虚拟的接口。路由器模式可以将传感器网络分隔成一个独立的子网,这样能清晰地分辨出无线传感器中的节点;由于网络前缀有切换功能,节点可以在不同的6LoWPAN网络中移动;节点会根据新的网络前缀获得一个新的地址。

2.3 软件设计

本文采用路由器模式,CC1310上运行的Slip-radio程序可以实现6LBR Linux进程和802.15.4无线电的通信,通过串口收发数据。MAC(Medium Acess Control)层在6LBR里,驱动方式为载波侦听多路访问(Carrier Sense Multiple Acess,CSMA);RDC(Radio Duty Cycling)层在Slip-radio里,MAC层接收RDC层发来的数据,并通过RDC发送数据;如果RDC层检测到数据碰撞,MAC重发此数据。6LBR移植到TL-WR703N路由器上之后,需要在路由器上创建6lbr.conf文件,其主要内容如下:

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串口连接,路由器上系统会根据串口生成一个虚拟网卡tap0,br-lan包括有线lan口和无线网;然后让tap0口和br-lan口相接。PC通过lan口把数据传给TL-WR703N,数据经过6LBR处理之后通过tap0即串口发送给CC1310,CC1310通过无线的方式将数据传给6LoWPAN传感器网络。

3、 OpenWrt边界路由器

3.1 OpenWrt边界路由器系统结构

OpenWrt边界路由器也采用到CC1310DK芯片,与第一种方案不同的是,CC1310DK芯片不仅作为与6LoWPAN传感器网络连接的802.15.4接口,还作为无线传感器网络的RPL根节点,支持对网络的路由功能和管理RPL网络,集成了6LoWPAN适配层,并能完成IPv6协议和IEEE802.15.4协议的转换,使完整的6LoWPAN/RPL网络和OpenWrt边界路由器实现通信,因此真正起到6LoWPAN边界路由器功能的是CC1310DK。TP-WR703N通过以太网网口或者无线的方式与计算机主机连接,这样OpenWrt边界路由器便实现了处理来自IP网络和WSN的IPv6之间转发的数据。

3.2 软件设计

CC1310DK通过USB接口与TL-WR703N连接,此时串口在路由器上生成/dev/ttyUSB0端口号,OpenWrt上的tunslip6软件包把端口号虚拟成tun0网卡。可以实现在TL-WR703N上ping通6LoWPAN传感器网络中的子节点,外部网络如PC通过lan口ping通边界路由器,但无法ping通6LoWPAN传感器网络中的子节点;为了实现IP网络与6LoWPAN传感器网络的通信,有两种方式,第一种是对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的网口,tun0是6LoWPAN传感器网络和边界路由器通信的接口,这个配置就是让lan口和tun0口相通,两者可以相互转发数据。

6LoWPAN子节点里运行带有CoAP协议的程序。CoAP协议(Constrained Application Protocol)是为物联网中资源受限设备制定的基于UDP的应用层传输协议,可让小型设备接入互联网世界。Libcoap是CoAP协议的C语言实现,它提供了server和client的功能。6LoWPAN子节点用作server端;OpenWrt提供了Libcoap软件包,TL-WR703N路由器可作client端,通过coap-client指令实现路由器对6LoWPAN无线传感器网络中子节点的数据通信。实际上目前的通信仅在TL-WR703N路由器和传感器网络构成的局域网实现。外部网络通过对路由器TL-WR703N的操作实现通信,因此本文第二种方式为在OpenWrt系统上开发了软件包socket-support,软件包主要基于socket程序在Linux下开发了服务器端,通信协议为TCP协议,计算机、手机等外部设备运行客户端。

这两种方式的数据通信除了在PC端接收发送不同外,基本是一样的。PC通过以太网口将数据传递给路由器TL-WR703N,运行border-router程序的CC1310与路由器通信接口是虚拟网卡tun0。CC1310可以看作是6LoWPAN网关节点,网关节点通过SLIP协议从路由器收到数据包,数据包格式为IPv6,而无线传感网络通信标准为IEEE 802.15.4。所以网关节点利用6LoWPAN适配层对数据包进行报头压缩、数据分片,处理后的数据根据目的地址也就是6LoWPAN网络子节点的IPv6地址发送下去;子节点收到数据后进行数据重组,响应命令,将采集到的数据压缩、分片后传给网关节点,6LoWPAN网关节点对收到的数据重组通过tun0口传给路由器,路由器通过以太网口传到IPv6网络上。

4 、边界路由器功能验证

由于6LBR是作为软件包应用程序移植到OpenWrt上的,为了测试应用方便,可以在第二种方案的基础上选择6LBR应用程序包。这两种方案都需要边界路由器串口连接CC1310DK,TP-WR703N目前只提供一个端口,所以在调试时只能分开测试验证。

4.1 6LBR-Openwrt边界路由器连通性测试

连通性测试主要采取如下步骤:

(1)在PC端打开cmd.exe或者,执行如下命令ping-6 bbbb::100,测试PC到网关已通。

(2)在运行有Copper插件的火狐浏览器内输入coap://[子节点IPv6地址]:5683/,可以访问子节点的Web端程序,然后可以选择特定的资源使用GET/POST/PUT/DELETE来获取资源的具体内容,可以看出子以太网和无线网的IPv6地址前缀并不相同,因此工作方式为路由模式,如图6所示。

4.2 OpenWrt边界路由器连通性测试

(1)打开网络调试助手,选择TCP Client模式连接边界路由器,输入getip和getipall命令可得到边界路由器的IPv6地址以及子节点的IPv6地址。

(2)ping6子节点地址进行ping连通性测试,也可将子节点的IPv6地址输入到浏览器地址栏里访问子节点Web界面。既可在Web页面进行GET/POST/PUT/DELETE命令操作,也可在网络调试助手内输入coap命令进行对子节点控制,如:coap-client-m get coap://:[子节点IPv6地址]:5683/sen/batmon/tem-p(得到子节点芯片的温度值29)。因此可根据具体的实际应用选择Web端页面的方式还是网络调试助手,。

5 、结论

本文以Contiki、6LBR以及OpenWrt等多个开源系统为基础,从多方面设计研究了6LoWPAN边界路由器,提出了多种可实施的解决方案。从测试结果可看出,所设计的6LoWPAN边界路由器达到了预期的设计目标,可以根据具体无线传感网络应用场合选择合适的边界路由器,下一步将陆续完善边界路由器并应用到环境检测中。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2939

    文章

    47319

    浏览量

    407881
  • 路由器
    +关注

    关注

    22

    文章

    3890

    浏览量

    118877
  • 开源系统
    +关注

    关注

    0

    文章

    27

    浏览量

    13917

原文标题:【学术论文】基于多个开源系统的6LoWPAN边界路由器的设计

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    带光纤路由器与传统路由器的区别

    在数字经济高速发展的今天,网络基础设施的升级已成为企业与家庭智能化转型的核心驱动力。厦门才茂通信作为行业先行者,推出了国内首款带光纤接口的工业级路由器CM520-3XX-9系列,彻底打破了传统路由器
    的头像 发表于 09-28 09:52 608次阅读

    光纤如何连接路由器

    连接路由器的标准流程 1. 确认设备与接口类型 运营商提供的光猫:通常白色或黑色方形设备,带有光纤接口(SC/APC接口,一般绿色)。 路由器:需支持以太网(WAN口)输入,普通家
    的头像 发表于 05-28 09:33 5994次阅读
    光纤如何连接<b class='flag-5'>路由器</b>

    路由器的散热解决方案

    热源分布与散热挑战的深度解析 现代路由器的热管理核心在于主控芯片(SoC)、WiFi射频模块及电源电路等关键区域。以5G路由器例,其主控芯片在高负载下温度可突破70℃,而WiFi模块在密集
    发表于 04-29 13:57

    Banana Pi BPI-RV2 RISC-V 路由器开发板发售, 全球首款RISC-V路由器

    BPI-Wifi5 低成本Wifi5 路由器合作之后的又一力作,全球开发者与商业客户提供基于RISC-V的路由器解决方案,支持OpenWrt系统。 Banana Pi BPI-RV2
    发表于 04-18 14:06

    怎样选择合适的工业路由器?

    在工业物联网快速发展的今天,工业路由器作为连接设备与网络的核心枢纽,其性能与可靠性直接影响着整个系统的运行效率。然而,面对市场上众多品牌和型号,如何选择一款真正适合自身需求的工业路由器?本文将从
    的头像 发表于 04-03 13:55 645次阅读

    工业路由器和家用路由器区别

    在当今万物互联的时代,路由器作为网络连接的核心设备,渗透到生产生活的各个角落。但工业场景与家庭环境对网络设备的要求存在本质差异,由此催生出工业路由器和家用路由器两大品类。本文将深入解
    的头像 发表于 03-27 16:20 770次阅读

    Banana Pi BPI-R4开源路由器板产品详情

    免费使用 CPE 来提供操作系统定制、内置服务和应用程序以扩展功能,这些功能现在是旗舰路由器/AP 设备的常规功能。 联发科设计的片内网络处理单元 (NPU) VLAN / PPTP / L2TP
    发表于 03-21 16:06

    Banana Pi OpenWRT One Wifi6 OpenWrt社区官方开源路由器评测

    /AP-24.XY路由器开发系统已经上市。这是OpenWRT团队与硬件公司的第一个联合项目。选择 Banana Pi,加上 Sinovoip 的知识和经验,是合乎逻辑的,尤其是当你加上通过开源和开放
    发表于 03-08 13:58

    Banana Pi OpenWRT One 开源官方路由器的第一印象

    绿色,升级完成。 6.固件恢复 • 关闭路由器电源。 • 将NAND/NOR开关设置NAND模式。 • 按住前面板上的 USR 按钮并打开设备电源。 路由器将进入恢复模式。使用浏览
    发表于 02-15 12:13

    芯科科技Wi-SUN边界路由器解析

    )是该网络的核心,它在 Wi-SUN 网状网络和基于IP的系统(如以太网)之间充当网关。不论您是物联网爱好者还是首次探索Wi-SUN 的专业人士,本指南将带您了解如何使用SiliconLabs(芯科科技) 的GUI图形界面工具和资源设置并管理 Wi-SUN 边界
    的头像 发表于 01-23 15:12 1378次阅读

    无线路由器终端是如何工作的?

    什么是无线路由器终端?     无线路由器终端 ,简而言之,是一种能够利用无线技术将多个计算机、移动设备和其他设备连接到局域网(LAN)或广域网(WAN)的设备。它不仅内置了路由器功能
    的头像 发表于 01-17 17:47 1640次阅读
    无线<b class='flag-5'>路由器</b>终端是如何工作的?

    5G/4G工业路由器和普通路由器的区别

    类型,它们有着显著的区别与各自的适用场景。1基本功能普通路由器是通常用于家庭和小型办公室网络的设备,它的主要功能是连接互联网,并在多个设备之间分配网络流量。普通路由器
    的头像 发表于 12-26 14:23 1785次阅读
    5G/4G工业<b class='flag-5'>路由器</b>和普通<b class='flag-5'>路由器</b>的区别

    如何远程登录路由器

    路由器放置在机房、弱电箱等不方便直接操作的位置,或当网络出现故障或者需要远程协助时远程登录路由器可以极大的解决问,本期重点说明远程登录路由器的方法,供各位参考使用: 首先 ,需要确保家里的
    的头像 发表于 12-18 12:01 1559次阅读
    如何远程登录<b class='flag-5'>路由器</b>

    Bananna Pi开源社区联合矽昌通信打造开源的低成本Wifi5路由器解决方案

    香蕉派 BPI-Wifi5 路由器采用矽昌SF19A2890S2芯片方案设计。它是一款高性能无线路由器,适用于小微企业、家庭和其他网络环境。Banana Pi开源社区提供整体解决方案。所有代码
    发表于 12-12 17:15

    Bananna Pi开源社区联合矽昌通信打造开源的低成本Wifi5路由器

    香蕉派 BPI-Wifi5 路由器采用矽昌SF19A2890S2芯片方案设计。它是一款高性能无线路由器,适用于小微企业、家庭和其他网络环境。Banana Pi开源社区提供整体解决方案。所有代码
    的头像 发表于 12-12 17:10 2017次阅读
    Bananna Pi<b class='flag-5'>开源</b>社区联合矽昌通信打造<b class='flag-5'>开源</b>的低成本Wifi5<b class='flag-5'>路由器</b>