爱玩科技网
您的当前位置:首页OpenThread边界路由器设计与实现

OpenThread边界路由器设计与实现

来源:爱玩科技网
2019年1月 第 %〇 卷第 1 期

计算机工程与设计

COMPUTER ENGINEERING ANDDESIGN Jan. 2019

Vol. 40 No. 1

OpenThread边界路由器设计与实现

潘琢金,潘帅帅,罗振

杨华

(沈阳航空航天大学计算机学院,辽宁沈阳110136)

摘要:针对目前尚无支持OpenThead协议的边界路由器这一问题,提出并验证一种OpenThread边界路由器设计方案。 采用树莓派作为边界路由器的主机端,通过以太网口连接外部)网络,通过内置WUB连接专员认证设备;采用德州仪器

CC2538微控制器作为边界路由器的协处理器端,接入OpenThread网络;边界路由器的主机端和协处理器端通过USB连

接。实验结果表明,该OpenThread边界路由器功能能够实现,节点设备可通过边界路由器连接互联网,并允许外部

OpenThread专员设备添加新节点到OpenThread网络中。

关键词:OpenThread网状网络;边界路由器;树毒派;CC2538; OpenThread专员 中图法分类号:TP393 文献标识号:A

doi: 10. 16208/1. issnl000-7024. 2019. 01. 007

文章编号:1000-7024 (2019) 01-0040-05

Design and implementation of OpenThread border router

PAN Zhu〇-jin? PAN Shuai-shuai, LUO Zhen? YANG Hua

(School of Computer Science , Shenyang Aerospace University , Shenyang 110136 , China)

Abstract: For solving the problem of no border router supporting OpenThead protocol at present & a design scheme ofOpenThread border router was proposed and verified. Raspberry Pi was used as the HOST of border router , the external IP ne-- work was connected through Ethernet interface & and the commissioner devices were connected through the built-in WFs Using the Texas instruments CC2538 The HOST and Co-Processor of

microcontroller border router

as were

the

Co-Processor

USB.

of

border router & the

connected via devices can

Experimental results

show

tions of OpenThread border router are achieved, node connect to Internet through it, and

missioner is allowed to add new nodes to the OpenThread network.

Keywords: OpenThreadmesh network; border router; Raspberry Pi; CC2538; OpenThread commissioner

/引言

Thread是一种简化版网状网络标准,由ThreadGroup

联网产品的研发进程。OpeThead协议符合未来物联网行 业发展潮流。

OpenThread边界路由器是连接OpenThread网络和外

联盟(物联网标准认证五大联盟之一)在2015年提出,并 于2015年7月发布Thread规范V1.0。Thread是在 802.15.4 为基础上采用6LowPAN头压缩[1]技术的,支持

IPV6的无线网状网络协议标准。Thread网络具有结枸简

部)网络的桥梁,使得OpenThead网络中的任一节点连 接互联网成为可能[2]。但是目前没有支持OpenThead协议 的边界路由器产品,阻碍了该协议的推广和应用。已有的 支持Thread标准的边界路由器是由各个半导体厂商(如

NXP、Sion Labs)所开发,运行非开源的程序,功能单

一,无法扩展。本文基于开源的OpenThead协议,提出一

单、支持IPv6信息传送、功耗低、安全性高等特点,适用 于智能家居、物联网领域。2016年,谷歌旗下Nest公司推 出了基于Thread标准的开源OpenThead网状网络协议, 开发人员可根据源代码进行二次开发,加速智能家居、物

收稿日期:2017-11-08;修订日期:2017-12-06

种边界路由器设计实现方法,支持OpeThead网络中的节 点与外部)网络中其它设备的连接,支持外部专员设备的

基金项目:航空科学基金项目(014ZC54012);辽宁省教育厅基金项目(L201626);沈阳航空航天大学校博士启动基金项目(15YB06) 作者简介:潘琢金(1962-),男,吉林通化人,教授,硕士生导师,研究方向为嵌人式系统、计算机检测与控制;潘帅帅(19 -),男, 山东东营人,硕士研究生,研究方向为嵌人式系统;罗振(1981-),男,山东淄博人,博士,讲师,研究方向为以太网路由技术、嵌人式 系统;杨华(1974-),男,辽宁沈阳人,博士,副教授,研究方向为计算机系统结构、智能人机交互、仿人机器人。

E-mail: 3442687@qq.com

第4\"卷第1期

潘琢金,潘帅帅,罗振,等$ OpenThread边界路由器设计与实现

-41 -

连接,扩展性强。OpenThrad边界路由器的设计将为进一 步研究OpenThread网络奠定基础。

议设计的,开发人员可通过源代码对边界路由器的功能进 行修 更

善,也 的功能。

添加其它自定义应用组件,实现更多

1系统整体架构

OpenThread边界路由器是连接外部IP网络和

2系统硬件设计

OpenThread网状网络的桥梁,不仅要提供两种网络的接入 2.1边界路由器硬件设计

边界路由器是OpenThread网络的核心组成部分,要求 协议执行

强,运行速度快[5]。OpenThread边界路由器

HOST端选用了 Broadcom四核位ARM A53处理器,

功能,而且能够在这两 的要求。

网络之间转发数据=。本文

边界路由器

的边界路由器支持如下功能,能够

支持OpenThread网状网络中任一节点和外部P

网络之 的)连接,外部)网络同时兼容IPv6

和 IPv44。

允许外部专员设备(如用户手机%认证并授权新

设备节点加入OpenThread网络。

除此之外,OpenThread边界路由器还支持如下扩 展功能:

用于配置和管理边界路由器的WebUI。使用网络边

,支 网专员调试设备管理

OpenThread 网络。

(3) 使用NAT用于连接IPv4网络。

(4) 使用 wpantund 管理 OpenThread 接口 设备。系统拓扑图如图1所示,边界路由器在不同网络层中 的功

1。

边界路由器

外部IP

网络以太网口

OpenThread

OpenThread

专员认证 网络

设备

<—>

WiFi

1OpenThread边界路由器系统拓扑图表1边界路由器在不同网络层中的功能

网络功能

供IEEE802. 15. 4网络链路 口和外部IP网 数据链路层络(如WiFi和以太网)链路 口根据IP头中包含的 目标

行IP包路

网络层由 ;通告IPv6 ,处理Thread节点的全局作

传输层端对端的IP通信,透明传送报文应用层

提供对用户自定义应用的支持

OpenThread边界路由器HOST端使用树莓派3B (运

行Raspbian Jessie Lite嵌入式Linux系统)实现,树莓派自 身的以太网口连接外部)网络,与OpenThread网状网络 的通信则是通过移植有OpenThread协议的CC2538模块 来实现。

OpenThread边界路由器是基于开源的OpenThread协

1/B运行内存,板载WiFi和蓝牙模块,满足本文设计要求 的同时,

余量,

行二次开发、功能

扩展)]。OpenThread边界路由器由树莓派和CC2538模块 两部分组成,通过USB连接,硬件结构如图2所示。

图2 OpenThread边界路由器硬件结构

树莓派只提供能够访问外部)网络的以太网和WiFi 接口,不支持IEEE8Q2.15.4标准协议,故需要移植有

OpenThread

的 CC2538 供 OpenThread 网

络接入的支持。CC2592是2. 4 GHz无线RF前端收发芯

,可增加 功率、提升接收器灵敏度、

系数。CC2538是TI德州仪器生产的适用

无线传感器网络应用的低功 器

,该

包含ARM

Cortex-M3 内核、32KB RAM、512KB Flash 以及 IEEE

802. 15. 4射频功能,能够运行复杂的网络协议,如ZigBee、 6L〇WPAN等等[7];芯片内建硬件安全加速器,在

务的同时快速高效的对数据进行认证和加密#该芯片的低 功耗模式可实 工作状态的快速唤醒,降低

了能耗)]#高达32个GPIO以及串行外设接口可连接更多

2.2测试节点硬件设计为验证OpenThread边界路由器的功能是否达到预期要

求,

了 OpenThread 网络

点, 点的

构设计与OpenThread边界路由器的CC2538模块基本相 同,如图3所示。

3系统软件设计

为了实现P网络和OpenThread网状网络互联,边界

路由器需要同时支持两种异构网络。OpenThread边界路由 器采用“HOST + NCP”分离式设计,边界路由器主程序

-42 -

计算机工程与设计2019 年

的OpenThread设备与IPv4主机进行通信。地址转换配置 文件内容如下\"

)Example configuration prefix :ff9b: :/96

dynamic-pool 192. 168. 255. 0/24 ipv6-addr 2001 : db8 : 1 : : 1 ipv4-addr 192. 168. 255. 1

无状态NAT需要多个前缀将所有IPv4地址映射到

图3 OpenThread网络节点硬件结构

IPv6,参数prefix中“/96”表示IPv6地址范围中未使用的

在HOST端运行,连接)网络,NCP端(CC2538模块) 连接OpenThread网状网络。在该设计中,边界代理通过

Wpantund 和 Spinel 与 NCP 通信,Spinel 还提供了 NCP 的 CoAP客户端与服务器之间的接口。系统软件结构如图4所 q,

功 2。

图4 OpenThread边界路由器软件系统结构

表2关键模块功能

关键模块功

网络

Network Co-Processor,网络协处理器,

(NCP)

OpenThread网络中的任何节点均为NCP

通用管理

一种通用NCP ,用于主机设备与

(Spinel)NCP之 行通信IPv6接口驱动 向NCP

供本地IPv6网络接口的用户空

(Wpantund)

受 的应用

(CoAP)

OpenThread 网络 用专员

OpenThread网络

,用

于Thread网络

(Commissioner)

中节点认证、添加和移

此外,边界路由器的WAN (WiFi,以太网% 口支持外 部专员(如用户的手机)认证和连接OpenThread网络节 点,并使用标准UDP 与 通信。

3.1 IPv6与IPv4地址转换

外部IP网络接入主要通过嵌入式Linux操作系统的网 络接口实现。虽然OpenThread网络完美支持IPv6,但是 目前网络接入更多使用IPv4,因此需要设计一种IPv6和

IPv4之间网络

转换的方法[9]。

OpenThread边界路由器结合无状态的NAT和有状

态的NAT44,提供一种有状态NAT,实现了 IPv6地址

前缀。dynamic-pool为IPv4地址池,IPv6地址映射IPv4地 址时使用。

3.2 NCP设备的支持

边界路由器通

供对网络协处理器(NCP)的连接

支持,接入OpenThread网络。边界路由器通过串行接口, 使用Spinel协议连接NCP。Spinel是一种适用于低功耗网 状网络的通用管理协议,可用于主机设备与NCP之间的通 信和管理。如图4所示,Wpantund可以支持Linux系统上 的OpenThread网络连接,它使用Spinel与NCP进行通信。

Wpantund类似于点对点

序,通过串行口与NCP通信。Wpantund包含一个命令行工具wpanctl,可以

配置NCP 创建网络、扫描

网络、加入网络等功

能。Wpantund配置文件位于树莓派Linux系统的“/ etc/

wpantund. conf”,关键配置参数如下:

Config : TUN : InterfaceName \" wpanO\"Conf ig : NCP : SocketPath \"/dev/ ttyUSBO\"Config : NCP : DriverName \"spinel\"Config : Daemon : PrivDropToUser \"nobody\"NCP:CCAThreshold

\"一 70 ’’

在配置文件中,wpanO是默认的网络接口名称,可向 主机操作系统公开一个本地IPv6接口。SocketPath为NCP 设备串行接口路径。边界路由器HOST端通过USB连接

CC2538 节点设备,路径为 “/dev/ttyUSBO”。

3.3边界路由器运行流程

当边界路由器以太网口收到远端IPv4主机发送来的命

令时,先经过NAT网络地址转换,转换成完整的IPv6 数据包,该数据包所包含的命令与转换前IPv4数据包中命 令完全一致。OpenThread网络使用6LowPAN头压缩技 术,边界路由器

IPv6数据包头后,经NCP端射频接

口传送至OpenThread网络中。OpenThread网络节点执行 命令后,向边界路由器

令执行结果。边界路由器将

的结果数据包 ,

的IPv6

,再经

NAT转为IPv4数据包,发送至远端IPv4主机。通信时

序如图5所示。

3.4外部专员设备的支持

供OpenThread设备加入网络所需的授权认

证服务,当专员设备位于非OpenThread网络时,边界路由

第40卷第1期

潘琢金,潘帅帅,罗振,等$ OpenThread边界路由器设计与实现

-43 -

OpenThread节点进行仲裁,如果OpenThread网络已经存

在专员设备,将拒绝授权当前专员,如果OpenThread网络 无专员设备,将授权该专员为OpenThread网络唯一专员设 备。新加入的

开始工作。

与边界路由器建立安全的

4功能测试

为了验证OpenThread边界路由器的功能是否达到预期

目标,将边界路由器和用户PC机同时连接IPv4网络,用 图5 IPv4主机经边界路由器与Thread节点通信时序器可作为专员的接口点。本文设计的OpenThread边界路由 器使用WiFi接入点(AP)作为软接入点(Soft AP),连接

与边界路由器设备握手,才

能加入OpenThread网络,成为唯一授权的专员[10]。专员 设备通过边界路由器加入OpenThread网络如图6所示。

边界路由器认证专员

拒绝当前

专员授权

建立安全的调试会话,

专员开始工作

(结▼束

图6边界路由器添加外部专员设备流程

当外部专员设备(如用户手机)需要加入OpenThread 网络时,需先连接边界路由器提供的WiFi接入点。边界路 由器

,将 入

:专,开始

序。如果 功,边界路由器将认

。边界路由器将

的手机

作为

连接边界路由器的WiFi接入

点,再放置一个OpenThread网络节点,节点通过无线与边 路由器连接。4.1连通性测试

在用户PC机端使用ping命令来测试用户PC机和

OpenThread节点是否连通。在边界路由器端使用“ipaddr”

命令可查看OpenThread节点IPv6地址为“fdde: ba7a:

ble5:0: e225:b463:de29:eb2c”。边界路由器连通性测试结

构如图7所示虚线框中的部分。

图7 连通性测试结构

图 < 所示在用户PC机端使用ping命令测试与

OpenThread节点的连通性结果,可以看到数据包延时在

lms〜6 ms之间,用户PC机、边界路由器和OpenThread

节点之间连通

,已经能够 实用 。

图8连通性测试结果

4.2外部专员设备测试

将用 机作为专员角色连接边界路由器的WiFi,测试用

授权新

点加入

OpenThread网络。专员设备支持测试结构如图9所示虚线

框中的部分。

-44 -

计算机工程与设计2019 年

室灯光监控系统设计)].华中科技大学学报(自然科学版),

2016,44 (增 I ): 210-214.]

[2] CHEN Kaifeng. Design of 6L0WPAN edge router based on

NAT [ J ]. Transducer and Microsystem Technologies, 2016, 35 (7): 94-96 (inChinese).[陈开锋.基于 NAT

的6L〇DPAN边缘路由器设计[].传感器与微系统,2016,

35 (7): 94-96.]

[3] JI Fusheng. The realize of border router in 6L0WPAN based on

OpenWrt [J]. Application of Electronic Technique, 2017, 43

图9专员设备支持测试结构

(6): 68-70 (inChinese).[吉福生.基于 OpenDrt 的 6L0WPAN

图10给出手机端实验结果:①用户手机可直接连接到 边界路由器上;②通

看其它节点

OpenThread网络中的连接情况。

图10 专员设备授权OpenThread节点加入网络

5结束语

针对目前市场上暂无支持OpenThead协议的边界路由

器产 & 了 基于开源的OpenThread边界

路由器的

方案。本文从系统

软件设计两大

分对边界路由器 方案进行详细阐述。实验结果

&

该边界路由器达到了预期设计目标,解决了 OpenThread协

在推

用上的痛点,能够在

家居、物联网应用

场合使用。该边界路由器可扩展性强, 用户添加自定义应用,并支 &

的功能。

该实现的边界路由器为OpenThread推广应用起到了一定的

促进作用。

参考文献:

[1]

LI Zhiqin. Design of classroom light monitoring system based on 6L0WPAN [J]. Journal of Huazhong University of Science and Technology (Natural Science Edition) & 2016,44 (Sup. I): 210-214 (in Chinese).[李枝琴.基于 6L0DPAN 的教

边界路由器的实现[J].电子技术应用,2017,43 (6):

68-70.]

[4] XIAO Xiangning. Research of edge router based on 6L0WPAN

[J]. Computer Science, 2015, 42 (12): 215-219 (in Chi­nese).

[肖湘宁.基于6L〇DPAN的边缘路由器设计研究

[].计算机科学,2015, 42 (2): 215-219.]

[5] TIAN Guangdong. Design of 6L0WPAN border router based on

Contiki [J]. Application of Electronic Technique, 2016, 42 (3) : 61- (in Chinese).[田广东.基于 Contiki 的 6LoWPAN

边界路由器的设计[].电子技术应用,2016, 42 (3):

61-Z]

[6] GUO Liang. Design of remote real-time measuring system of

tempurature and humidity based on raspberry Pi and Java lan­guage [J]. Computer Measurement e Control, 2017, 25 (6) : 4-8 (in Chinese).[郭亮.基于树莓派和Java语言的温

湿度远程实时测量系统的设计[].计算机测量与控制,

2017,25 (6): 4-8.]

[7] LlWeiqin. Design and construction of a WSN gateway based on

6 LoWP AN [J]. Microcomputer Information, 2012, 28 (9):

363-366 (inChinese).[李伟勤.基于6L0DPAN的无线传感

网络网关设计与实现[].微计算机信息,2012, 28 (9):

363-366.]

[8] PANG Yong. Study on smart home system based on ZigBee

[J]. Computer Engineering and Design, 2014,35 (5): 1547­1550 (inChinese).[庞泳.基于ZigBee的智能家居系统改进

研究[].计算机工程与设计,2014,35 (5): 1547-1550.]

[9] GENG Daoqu. Research and implementation of uNAT mecha­

nism in 6 LoWP AN access Internet [J]. Chinese Journal of Sensors and Actuators, 2016, 29 (8): 1284-12 (in Chinese). [耳火道渠.6L0WPAN接人Internet中uNAT 机制的研究与实

现[].传感技术学报,2016, 29 (8): 1284-12.]

[10] FU WcC Research on the 6 LoWP AN home appliance control

system for smart home [J]. Process Automation Instrumenta- tion,2013,34 (12): 62-65 (inChinese).[付蔚.智能家

居6L〇WPAN家电控制系统研究[].自动化仪表,2013,

34 (12): 62-65.]

因篇幅问题不能全部显示,请点此查看更多更全内容