吴 磊,朱 杰
(北方工业大学 计算机学院,北京 100144)
基于家庭多协议网关通信协议的设计与实现
吴 磊,朱 杰
(北方工业大学 计算机学院,北京 100144)
随着无线通讯技术和嵌入式技术的发展,很多的家居产品逐步采用智能化系统。在一个智能家居系统中,不同的智能家居设备采用不同的工业通讯控制协议,用户为了实现对不同通讯协议下的智能家居设备的通讯控制,需要使用不同的控制软件,由此增加了用户使用智能家居设备的复杂度。为此,需要设计和制定一个方便的通讯控制协议,便于在一个复杂的智能家居网络中,对采用不同通讯协议的智能家居设备的控制。针对不同类型的智能家居设备,采用各自的工业通讯控制协议,在一致化通讯接口的基础上,实现了不同类型的智能家居设备的通讯控制。工程实践验证了所采用的一致性通讯协议对于基于不同通讯协议的智能家居设备通讯控制的有效性,因而可以简化智能家居的控制与使用。
智能家居系统;多协议;设备控制;一致化通讯
随着互联网、云计算、大数据、物联网等与现代制造业的结合,促进家居设备向智能升级。尤其在物联网技术的推动下,智能家居产业发展迅猛,出现了越来越多的智能家居设备。通过对目前智能家居市场的发展趋势分析,预计在今后的几年全世界范围内将有近亿的家庭构建智能、舒适、高效的家居生活。因此智能家居产业蕴含着巨大的市场潜力[1]。
随着智能手机和平板电脑的日益普及,通过这些智能终端,用户可以实现对家居系统进行控制,这种控制方式方便、快捷,将成为未来智能家居系统发展的趋势。但是,现在的家居设备由于其生产设计时采用的通讯协议不同,因此有多种不同的控制方式。例如,电视和空调等类型的家居设备一般都使用红外控制[2],而一些音响设备则采用蓝牙或者WiFi进行控制。在用户实际使用这些设备时,需要使用对应的通讯控制终端,因此用户需要使用多个控制终端才能实现对不同通讯协议设备的控制[3]。通过一个智能终端(如手机)来实现对不同通讯协议的智能家居产品的控制,将更加方便用户的操作。
文中在一个多协议的智能家居系统中,设计了一致性通讯控制协议。通过使用该协议,实现对采用不同通讯协议的智能设备的控制。
随着物联网技术的发展,智能家居产业迅速发展,国内外对于智能家居系统进行了很多研究,因此智能家居在近年来一直是研究热点。
苹果在其开发者大会上介绍了自己的智能家居控制中心HomeKit,基于此开发平台,苹果公司设计出了门锁、摄像头、插座开关等各种智能家居设备,用户可以通过Siri进行控制[4]。三星公司则推出名为Smart Home的智能家居概念,在其设计的智能家居系统中,消费者家中的各种设备通过网络建立连接,然后通过智能手机来实现对家中智能设备的控制[5]。
许多国内的科技公司在智能家居方面提出了各自的方案。小米智能家居布局设备控制主要是依靠小米路由器。通过小米路由器、小米路由器App、小米智能家庭App可实现多设备智能联动,设备联网、影音分享、家庭安防、空气改善等功能和应用场景十分丰富。京东推出了京东智能云,通过使用智能云,超级APP实现了对各硬件的“互联互通”[6]。由于使用了云模式,这一服务目前严重依赖互联网,因此接入的智能产品必须内置WiFi模块[7]。
通过对当前成熟的智能家居系统的研究,现在的智能家居系统中的设备多采用单一的通讯协议。但是随着智能家居设备的种类逐步增多,智能家居系统实现的功能也越来越复杂。为了能够完成复杂的功能,需要采用不同功能和类型的智能家居设备。这些智能家居设备有可能采用不同的通讯协议,例如有的智能家居设备采用WiFi,有的采用ZigBee,有的采用蓝牙。由于在智能家居系统中没有统一的通讯协议,因此用户如果需要实现对智能家居设备的控制,需要采用与之对应的通讯协议。这就需要增加很多硬件设备来实现协议的转换,例如用户的手机无法与采用ZigBee通讯协议的智能设备进行通讯[8]。因此需要设计统一的通讯控制协议,实现对采用各种不同的通讯协议的智能设备的控制。
在一个采用多种不同通讯协议的智能家居系统中,为了使采用不同通信协议的设备共同存在于同一个系统中,并简化相应的协议转换过程,可以设计和制定一个统一简洁的通讯控制协议,便于用户发送的信息在系统中进行通信,从而实现有效控制[9]。
3.1多协议智能家居设备交互协议的制定
针对用户与采用不同通讯协议智能设备之间的通信,需要为上层应用提供统一标准的通信控制接口,隐藏具体设备通讯控制协议的细节[10]。在进行应用程序设计时,只需调用制定的通讯控制接口,就可以在智能家居系统中,实现对采用不同的通讯控制协议的设备的通讯与控制[11]。
在基于多种通讯协议设备组成的智能家居系统中,采用的通信协议多种多样。这些采用不同通信协议的智能设备共同构成了一个多协议智能家居系统[12]。由于不同类型的智能家居设备通过该系统和用户的手机或平板计算机进行交互,因此要求智能设备既能及时地接收并解析出用户发送的指令,还可以正确地向用户返回设备当前的信息状态[13]。
在一致性通讯控制协议中,其协议的数据单元(Protocol Data Unit)格式如表1所示。
表1 数据单元格式
(1)设备编号:智能家居系统中的设备标号;
(2)协议类型:智能家居设备所使用的私有协议;
(3)命令类型:用户发给各个智能设备的命令,各命令的含义一般代表一定的意义;
(4)数据长度:数据单元的长度。在制定的一致性通讯协议中,协议中指令的长度各不相同,具体的长度可以通过该字段设置;
(5)数据:需要通讯的数据。
3.2多协议智能家居交互协议的实现
文中设计的一致性通讯控制协议的具体实现过程包括数据封装成通讯报文、通讯报文的解析和具体控制指令的生成。在采用该协议时,用户可以在手机或平板计算机的软件平台上发送控制智能家居设备的指令,这些控制指令被封装到以太网帧,发送到以太网中,网络中的交互协议解析器通过以太网接口接收到数据。这些以太网帧数据包,在交互协议解析器的中心单元进行处理,通过对报文的逐层解析,读取出用户发送的控制指令的数据。根据用户发送的控制指令,执行相应的操作,如果用户发送对某个具体设备的控制信息,则中心处理单元对相应的数据进行处理后,将生成的控制指令通过串口总线发送给对应的接口,在对应的接口封装成对应的通讯报文发送出去。
3.2.1 多协议网关处理报文流程
在一致性通讯控制协议中,对报文的处理过程如下:在手机或平板计算机上的智能家居控制软件,根据用户具体的操作,将其封装成对应的通讯报文并发送给网关。在多协议网关中,通过对用户发送过来的通讯报文进行解析,可以获得用户具体的操作等信息。网关根据用户需要执行的操作类型和操作的目标设备,选取数据域中相对应的字段,将这些数据发送给网关上对应的通讯模块。通讯模块获取这些数据后,将这些数据封装到该模块所采用的通讯报文中,并发送给目标设备执行相应的操作。
3.2.2 数据的解析过程
用户发送的控制指令被封装在通讯报文的数据字段中,因此需要对报文进行解析,取出相应的通讯控制指令。多协议网关接收到用户发送的通讯控制报文后,对报文的内容进行相应的解析,一直解析到协议数据单元(PDU)后,取出其中需要的数据,其解析过程如图1所示。
解析报文的步骤如下:
(1)在多协议网关中,以太网的端口保持监听状态,如果检测到网络中有报文到来,则使用消息队列来接受保存网络中发送过来的以太网帧。从消息队列读取以太网帧之前需要进行判断,如果消息队列当前的消息个数为空,则放弃读取,如果消息队列当前的消息个数不为空,则读取一条以太网帧进行解析;
(2)从读取出的以太网帧中查找到该帧中对应的IP消息头标识符,如果找到,则对该以太网帧继续执行解析处理,通过IP消息头标识符可以解析该以太网帧中的UDP数据报文,如果没有查找到IP消息头标识符,则丢弃该以太网帧,重新从消息队列中读取一条以太网帧;
(3)在解析出来的UDP报文中查找UDP消息头标识符,如果找到,则将该报文中与协议数据单元相关的数据解析出来,否则丢弃该报文,重新从消息队列中取出一条报文;
(4)查找协议数据单元中的消息头标识符,如果找到,则将协议数据单元中的应用程序数据解析出来,否则放弃该报文,重新从消息队列中取出一条报文[14];
(5)对读取出的协议数据单元字段的数据进行解析,获取相应的信息,例如智能家居设备的编号、采用的通讯协议类型等,获取这些信息后,将对智能家居设备控制指令信息放到相对应的通讯协议报文中,并通过相对应的端口发送出去,实现对智能家居设备的控制。
3.2.3 数据生成指令并发送
通过对报文数据域的解析,获取一些相应信息,例如用户通信的智能家居设备所采用的通讯协议等。根据用户需要通讯的目标设备,将控制指令发送给网关上对应的通讯模块。之后通过这些通讯模块实现与目标设备的最终通信。
在具体实现的过程中,为了方便数据发送给相对应的通讯模块,自定义一个结构体,在该结构体中,定义了包含的智能家居设备编号、协议类型、命令类型、数据类型和数据等信息。
Typedef struct bitType{
EQUIPMENTID equipmentid;
COMMANDTYPE commtype;
DATATYPE datatype;
DATA data;
LENGTH length;
CHECKOUT checkout;
END end;
}PROTOCOL;
网关把报文中各个数据域的数据解析出来,将这些数据分别赋值给定义的结构体中的各个字段,然后根据报文中的通讯协议字段,将该结构体变量发送给对应的通讯模块。如果为WiFi通讯协议,则将赋值后的结构体变量发送给网关上的WiFi模块,在WiFi模块中获取结构体中的相关信息,并将相关信息封装到WiFi通讯报文中,并发送出去。
通讯模块执行完相应的指令后,在规定的时间延迟内,会收到反馈报文。通过对反馈报文的解析,通讯模块会向网关发送一个告知信息,网关将告知信息通过封装成以太网的通讯报文,发送给用户手机。用户手机通过对该告知信息的解析,判断指令是否执行成功,并根据结果进行下一步操作。
为了对多协议智能家居系统中一致性通讯控制协议进行测试并验证,采用了基于WiFi、蓝牙、ZigBee通讯协议的智能设备组成的智能家居系统进行实验。
在所用的智能家居系统中,采用相同通讯协议的设备,将根据自身通讯协议的特点,采用适当的算法,分别组建基于WiFi、蓝牙、ZigBee通讯协议的智能设备网络,组网后可以增加设备之间的通讯距离,更加接近实际的应用环境。实验中分别采用20个基于WiFi的智能设备,20个基于蓝牙的智能设备,20个基于ZigBee协议的智能设备,根据智能家居系统中各类通讯设备普遍应用的组网方式,将这些设备分别组装成相应的网络。WiFi智能设备采用星型的网络拓扑结构进行组网;蓝牙设备采用RPL路由算法,组建树型拓扑结构的网络;ZigBee设备根据自身协议栈,组建星型网络。
在实际的智能家居环境中,丢包率和实时性是两个重要的性能指标。如果通讯报文丢失率较高,会导致用户需要发送多次通讯控制报文才能实现对智能设备的控制;如果通讯报文的延时较高,则用户实际的体验效果会非常差。因此,实验中需要对这两个性能指标进行测试。
4.1网络丢包测试
在多协议智能家居系统中,使用统一的通讯控制协议实现对采用不同通讯协议的智能家居设备的控制,用户在通过手机端向网关发送通讯报文时,会出现丢包问题。如果在通讯过程中丢包率过高,则会对多协议智能家居系统中设备控制的实时性造成影响,因此丢包率是一个需要考量的因素。
在实验搭建的多协议智能家居系统中,通过手机上的控制软件向智能家居网络中的每一个智能家居设备发送50次通讯控制报文,在每个智能设备中会生成一个日志文件,统计总体的丢包个数。
重复上述实验10次,统计每一次的丢包个数,统计结果如表2所示。
从表中可以看出10次实验的丢包个数,综合这10次实验结果可计算出平均丢包率0.21‰,符合CCSA标准规定的最大丢包率1‰[8]。
通过测试发现,在一致性通讯控制协议通信过程中,丢包率控制在合理的范围内,可以很好地实现对采用不同通讯协议智能设备的控制。
表2 丢包数统计
4.2时延测试
在一致性通讯控制协议的条件下,指令传输过程中需要实现报文解析,并将解析出的结果转换成相应的通讯协议,在实现协议转换的过程中,会造成一定的延时。时延是针对在多协议网关中,将统一格式的以太网帧转换成不同类型的通讯协议,并发送到对应智能设备的时间间隔[8]。实验中使用手机端的控制软件向智能家居网络中的每个设备发送50次通讯控制报文,每个智能家居设备会自动生成一个日志文件,记录每一次接收到报文的时间,这样通过计算可以得出每个设备的通讯时延。重复上述实验10次,计算每一次实验中,手机与WiFi、蓝牙、ZigBee智能设备通讯的平均转发延时。在不采用一致性通讯控制协议的条件下,将多协议网关替换成对应的通讯模块。通过对应的通讯模块,向基于WiFi、蓝牙、ZigBee通讯协议的网络中的智能设备发送相应的通信控制报文。在一次实验中,通过对应的通讯模块,向同一网络中的每个智能设备发送50次通讯控制报文,在设备上通过日志文件记录每次通讯的时延,重复上述实验10次,统计在WiFi、蓝牙、ZigBee通讯环境下的通讯时延。数据对比如表3~5所示。
表3 不同条件下WiFi智能设备时延对比
表4 不同条件下蓝牙智能设备时延对比
表5 不同条件下ZigBee智能设备时延对比
虽然使用统一的通讯控制协议,用户在发送控制命令实现控制时出现延时,通过大量的测试,对得出的数据进行分析,协议转换造成的延时在可以接受的范围内,对系统的实际运行不会造成太大的延误。
为了实现对采用不同类型通讯协议的智能设备的控制,提出了一种一致性通讯控制协议。设计并实现了一种多协议智能家居通讯控制协议的接口,实现了对采用不同类型通讯协议的智能设备在通讯控制协议上的一致性协议接口、报文的封装和解析。在该多协议系统中,用户的手机端软件只需使用提供的一致性协议接口,就可以实现与采用不同通讯协议的智能设备之间的通讯,不需要考虑底层数据传输格式。该协议通用性好、数据传输可靠,能以较小的丢包率保证用户手机端和智能设备之间数据的可靠传输[8]。
[1] 茅鑫杰,郑光辉,吴荣泉.移动多协议融合网关技术研究[J].计算机工程,2013,39(10):110-115.
[2] 叶 锋,傅燕云,陈林芳,等.基于多协议融合的实时移动视频监控系统[J].计算机系统应用,2015,24(4):80-85.
[3] 李 波.智能家居多协议网关设计[J].通讯世界,2015(6):196.
[4] 赵志强,杨旭东.一种通用网络通信模块的设计及应用[J].自动化仪表,2014,35(4):53-56.
[5] 张 科,罗 军,邓俊昆.基于改进增强学习算法的双边多协议协商策略[J].计算机科学,2014,41(1):290-292.
[6] 王首浩,仲 悦,张 巍,等.一种用于分布式控制的光纤通信协议设计与仿真[J].计算机测量与控制,2014,22(9):3044-3046.
[7] 陈乔云,贾金玲.基于智能手机与PC机的智能家居系统设计[J].电子设计工程,2009,17(9):25-26.
[8] 马 礼,郑俊歌,杨银刚,等.一种异构多机器人系统交互协议[J].计算机测量与控制,2016,24(7):286-290.
[9] Guerrero J M,Xue Yaosuo.Smart inverters for utility and industry applications[C]//PCIM Europe.[s.l.]:[s.n.],2015:277-284.
[10] Zhang Feng,Liang Alei,Guan Haibing.Performance of a multi-channel MAC protocol implemented in multi-robot system[C]//Seventh international conference on mobile ad-hoc and sensor networks.[s.l.]:[s.n.],2011:209-214.
[11] Alvarez L,Vilanova L,Gonzàlez M,et al.Hardware-software coherence protocol for the coexistence of caches and local memories[J].IEEE Transactions on Computers,2015,64(1):152-165.
[12] Ma Jun,Guo Yuanbo,Ma Jianfeng,et al.Multi-user access control scheme based on resources hierarchies for perceptual layer of IoT[J].Acta Electronica Sinica,2014,42(1):28-35.
[13] Azadeh A,Moghaddam M,Geranmayeh P.A flexible artificial neural network-fuzzy simulation algorithm for scheduling a flow shop with multiple processors[J].International Journal of Advanced Manufacturing Technology,2010,50(5-8):699-715.
[14] Zhang Wenjing.The design of internet of things smart home system based on S3C2440 and Zigbee[J].International Journal of Technology Management,2013(7):81-83.
Design and Implementation of Communication Protocol with HomeMulti-protocol Gateway
WU Lei,ZHU Jie
(Institute of Computer,North China University of Technology,Beijing 100144,China)
With the development of wireless communication technology and embedded technology,a lot of household products have gradually adopted intelligent system.In a smart home system,because of the usage of different industrial communication protocols in different smart home devices the users need to use different control software to increase the complexity of using smart home equipment.Therefore,a convenient communication control protocol is designed to control the smart home equipment with different communication protocol in a smart home network easily.According to industrial control protocols of different smart home devices,control on different types of smart home devices has been designed and implemented based on the unified communication interface.The engineering practice shows that the consistency communication protocol is effective for the communication control of smart home devices based on different communication protocols and can simplify the control and use of smart home.
intelligent home furnishing system;multi-protocol;equipment control;consistent communication
2016-10-12
:2017-01-13 < class="emphasis_bold">网络出版时间
时间:2017-07-11
北京高等学校“青年英才计划”资助项目(YETP1419)
吴 磊(1963-),男,副教授,硕导,研究方向为嵌入式技术、物联网;朱 杰(1989-),男,硕士研究生,研究方向为物联网技术。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170711.1455.052.html
TP302
:A
:1673-629X(2017)09-0150-05
10.3969/j.issn.1673-629X.2017.09.033