智能家居中的增强型KNXnet/IP路由器实现

2017-11-01 17:14刘梦娟
计算机应用与软件 2017年10期
关键词:子网应用层路由器

朱 莉 刘 刚 刘梦娟

1(四川九洲电器集团中央研究院 四川 成都 610041)

2(中兴通讯股份有限公司成都研发中心 四川 成都 610041)

3(电子科技大学信息与软件工程学院 四川 成都 610054)

智能家居中的增强型KNXnet/IP路由器实现

朱 莉1刘 刚2刘梦娟3

1(四川九洲电器集团中央研究院 四川 成都 610041)

2(中兴通讯股份有限公司成都研发中心 四川 成都 610041)

3(电子科技大学信息与软件工程学院 四川 成都 610054)

在基于KNX标准的智能家居或楼宇控制系统中,路由器是一种至关重要的设备。提出一种创新型的KNXnet/IP路由器的实现方案,包括硬件平台、协议栈的软件实现以及测试认证。KNXnet/IP路由器能够提供KNX子网和IP网络之间的相互连接及信息交换,有效利用几乎无处不在的IP网络(包括以太网和WiFi网),性能和功能远远超越了传统的KNX路由器。在此基础之上,KNX系统不再受制于传输距离的限制,能够实现不同楼宇之间的KNX设备互联。同时, 增强型的KNXnet/IP路由器支持WiFi接入,能够实现自由移动组网,保障了KNX网络的自由扩展。

智能家居 KNX协议 KNXnet/IP协议 以太网 双绞线总线

0 引 言

在智能家居和楼宇控制领域,KNX总线标准是独立于制造商的通信协议标准,已被批准为国际标准、欧洲标准、美国标准和中国标准,是唯一的经过认证的开放式标准[1]。作为被广泛接受的国际标准,KNX总线标准能够通过产品认证确保产品的互操作性和交互性,广泛应用于智能家居和楼宇控制,适合于各种楼宇,支持多种配置模式和多种通信介质。

当前,对KNX技术的研究主要集中在总线节点设备的开发。随着楼宇自动化技术的不断发展,控制设备之间传递的信息量日益增加,对互操作性、互联也提出了更高的需求[2]。为此,KNX系统也引入了KNXnet/IP定义,用于通过IP网络实现不同的KNX子网的融合。实现该融合技术的特殊设备就是KNXnet/IP路由器,提供KNX子网和IP网络之间的连接。KNXnet/IP使得KNX系统不再受到传输距离的限制,能够实现不同楼宇之间的KNX设备互联,保障了KNX网络的自由扩展[3]。

KNX支持双绞线(TP)、电力线(PL)和射频(RF)等多种通信介质,其中双绞线应用最为广泛,所以本文设计的KNXnet/IP路由器提供KNX TP设备到骨干网的接入,同时还能提供基于WiFi子网的KNX IP设备到骨干网的接入。

1 KNXnet/IP路由器硬件平台设计

KNXnet/IP路由器的硬件平台如图1所示,硬件系统以CPU LPC3250为处理核心,主要外围器件包括电源管理、晶体、KNX接口、RAM、FALSH等,主要可以分为如下的三个部分:

(1) 核心系统:由LPC3250、RAM和FLASH构成,是一个实时嵌入式系统。

(2) 以太网接口:符合IEEE 802.3/3u/3x标准,通过以太网接口,可以实现核心系统与IP网络的通信。

(3) KNX TP接口:KNX接口的物理通信模块采用TP1的方式工作,核心系统与KNX接口通过标准串口连接。实现了核心系统与TP总线之间的通信。

(4) Wifi接口:符合IEEE 802.11b/g标准,可以实现核心系统与无线局域网的通信。

图1 硬件设计框图

2 KNXnet/IP路由器系统软件设计

KNXnet/IP路由器的系统软件架构如图2所示,主要实现的软件模块包括:

(1) KNX协议栈:KNX协议栈是所有KNX设备的通信基础,KNXnet/IP路由器作为一种KNX设备,首先必须实现KNX协议栈。

(2) KNXnet/IP协议栈:实现KNX子网与主网(IP)的通信和路由功能,是KNXnet/IP路由器的核心功能。

(3) 硬件驱动:KNX UART接口的驱动完成TP总线上的KNX数据的收发、编解码;以太网接口的驱动,能够完成IP数据在以太网上的发送和接收;WiFi接口的驱动,能够完成IP数据在无线局域网上的发送和接收。

图2 系统软件架构图

下面分别介绍着KNXnet/IP路由器的主要软件功能的实现。

2.1 KNX协议栈

KNXnet/IP路由器首先要实现KNX协议栈[4],为KNX的应用、配置和网络管理提供通信服务。KNX协议栈的软件实现框图如图3所示,各个协议层的主要功能如下:

(1) 物理层:接收和发送数据到对应的总线。与普通的KNX设备不同,路由器提供了三类媒介的接入:(a) 对子网接口,提供了两种选择,TP1媒介(实现了TP1总线的数据的发送和接收)和无线媒介(实现了KNX数据在无线局域网内的发送和接收);(b) 对主网接口采用IP/Ethernet媒介。

(2) 数据链路层:主要实现寻址和数据帧的封装和解封装功能。对于TP总线,数据链路层处理TP1数据帧的封装和解封装,对于IP/Ethernet网络和无线局域网,数据链路层处理cEMI数据帧的封装和解封装。

(3) 网络层:实现数据的过滤和转发,即路由。(a) 对于单播数据,网络层模块调用路由算法来决定数据的处理(接收并解封装、转发到另一侧媒介、丢弃);(b) 对于组播数据,通过过滤表来判断数据的处理(如果组地址在过滤表中,则转发,否则丢弃该数据包);(c) 对于广播通信,网络层会向传输层递交,如果数据包的跳数大于0,还会转发该数据包。

(4) 传输层:对于应用相关的组通信,提供组播通信模式;对于管理相关的通信,则提供广播,或者面向连接/无连接的点对点通信。

(5) 应用层:实现组对象通信和管理相关的数据报文的传输和接收。本设计支持系统模式(S-Mode)下通过ETS(Engineering Tool Software)[5]配置,ETS会通过下发相关的应用层指令来对设备进行相关的配置操作。应用层(及应用接口层)需要对接收的应用层消息进行解析,根据消息类型进行不同的管理操作,如果需要,还要根据请求产生相应的响应报文。

图3 KNX协议栈框架

2.2 KNXnet/IP协议栈

KNXnet/IP协议栈[4]是能够实现通过IP网络转发KNX消息的核心,协议栈的实现框图如图4所示。KNXnet/IP协议是基于IP网络协议的,具体又可以分为TCP、UDP、纯IP网络协议来实现[6]。按照协议要求,UDP是必须支持的,其他两种则是可选项。

图4 KNXnet/IP协议栈结构图

KNXnet/IP协议按照功能又可分成三个子协议模块:

(1) KNX隧道协议:隧道协议为KNXnet/IP客户端(如ETS)和KNXnet/IP服务器(KNXnet/IP路由器)之间提供了一个在IP网络之上的点对点的KNX报文通信,专门用于支持配置和诊断过程中来自IP网络的配置消息。

在建立隧道之前,KNXnet/IP 客户端和KNXnet/IP 服务器之间必须要建立起一个专门的通信信道,它基于主机协议(Host Protocol)实现。每个KNXnet/IP隧道对应一个KNX独立地址,当建立起隧道连接,KNXnet/IP 服务器必须为其分配一个KNX的独立地址。

建立好通信连接后,网络侧的设备可以通过隧道模式进行通信。对于单播报文,KNXnet/IP服务器只转发包含隧道KNX物理地址的报文到KNXnet/IP客户端。对于组播业务则都转发给KNXnet/IP客户端。隧道上通过TUNNELLING_REQUEST交互信息,由TUNNELLING_ACK进行确认。客户端将KNX数据链路层的数据帧(cEMI格式)封装在TUNNELLING_REQUEST帧中发送给服务器,而服务器接收来自KNX子网的报文封装在TUNNELLING_REQUEST帧(L_Data.ind,L_Data.con)发送给客户端。

(2) KNX路由:提供组播业务的路由功能,实现KNX子网与其他连接到IP网络的KNX设备的通信。

KNXnet/IP Router接收到来自KNX子网的报文,如果满足过滤准则,那么路由器将数据封装成IP报文并在IP网络中广播。所有连接到IP网络的KNXnet/IP 路由器将会收到报文,然后根据过滤准则确定是否将报文转换成KNX报文并转发到它们连接的KNX子网。KNXnet/IP路由器必须支持UDP/IP组播,采用IGMP(Internet Group Management Protocol) 来通知本地IP组播路由器增加新的组播地址[6],允许KNXnet/IP路由报文在IP网络中由IP路由器进行转发。KNXnet/IP路由器可以通过设置TTL值来控制组播报文转发的次数,从而限制在IP网络中传输的范围。

(3) KNXnet/IP设备管理:这是专门针对KNXnet/IP路由器通过IP网进行配置管理的方式。在配置过程之前,KNX配置设备和KNXnet/IP路由器通过Host Protocol协议建立起一条点对点的通道。配置设备的直接调用KNXnet/IP的配置管理接口产生相应控制消息的cEMI格式帧,然后再封装成DEVICE CONFIGURATION REQUSET消息(业务类型标识为0x0310),在已经建立的通道上以点对点方式发送到KNXnet/IP路由器。KNXnet/IP路由器接收到该DEVICE CONFIGURATION REQUEST后,向控制设备返回DEVICE CONFIGURATION ACK(业务类型标识为0x0311)消息,同时将消息解封装成cEMI帧格式直接递交到KNXnet/IP的配置管理模块完成相关参数配置。

2.3 KNXnet/IP路由器的配置管理

KNXnet/IP路由器的配置管理可以通过KNX TP总线完成,也可以通过IP网络来完成。配置管理对象又分为两类:(1) KNX设备对象,主要是KNXnet/IP路由器设备的配置参数;(2) KNX接口对象,跟KNXnet/IP路由器相关的参数配置(如IP组播地址、IP网关等),具体内容参考文献[4]。

应用层(及应用接口层)需要对接收的应用层消息进行解析,根据消息类型进行不同的管理操作,并根据请求类型生成相应的响应报文。对于读写指令,KNX规范中规定了相关内存偏移的具体含义。为便于管理操作,软件设计了一个虚拟内存,虚拟内存按照协议规范定义的内存映射方式填充相关数据。(1) 当接收到读内存指令,则根据指令的偏移量直接读取虚拟内存中的内容。(2) 当接收到写内存指令时,会将虚拟内存对应偏移位置开始的内容进行更新,并通知应用保存更新值到固存。

根据配置设备(主控设备)在系统中的位置,配置处理方式可分为两类:

(1) 当配置设备位于KNX TP子网中时,配置设备通过KNX协议栈与KNXnet/IP路由器通信,消息通过应用层、传输层、数据链路层(采用TP1帧格式)进行封装,最后以TP物理帧格式发送到TP1总线。路由器接收的网络层判断该消息的目的地址与自己一致,会接收该消息。该消息逐层向上递交到应用层,由应用层解析该配置消息类型并调用相关API进行设备的参数配置。

(2) 当配置设备位于IP/Ethernet主网中或无线局域网时,又可细分为下面三种处理方式:

KNX路由方式:配置设备与KNXnet/IP路由器之间采用路由传输模式进行配置信息的交互。配置消息从上到下依次通过应用层、传输层、网络层、数据链路层(采用cEMI帧格式)封装成ROUTING INDICATION消息(业务类型标识为0x0530)后,在IP网中内组播发送。

KNX隧道方式:在发送配置消息之前,配置设备和KNXnet/IP路由器需要采用Host Protocol[4]协议建立起点对点的通道。配置设备与KNXnet/IP路由器之间采用隧道传输模式进行配置信息的交互。配置消息从上到下依次通过应用层、传输层、网络层、数据链路层(采用cEMI帧格式)封装成TUNNELLING REQUEST消息(业务类型标识为0x0420)后,通过已建立的通道传输到路由器侧。路由器响应TUNNELLING ACK(业务类型标识为0x0421)消息,通过已建立的通道传回给配置设备。

KNX IP 设备管理方式:该方式通过KNXnet/IP协议栈的设备管理协议来实现,是专门针对KNXnet/IP路由器的配制方式,在3.2节已有详细说明,这里不再赘述。

3 KNXnet/IP路由器的认证测试

KNX标准采用简表(profile)定义不同的功能[7],不同的KNX设备根据需要实现对应的简表,具体要求可以参考文献[4]。KNX协议栈认证会针对每层协议栈设计相关的测试场景和测试用例来验证其功能是否符合标准要求。

根据KNXnet/IP路由器的特性,采用的简表是掩码为091A的KNXnet/IP类。根据认证要求,必须满足表1功能需求。

在认证测试中,可分为三个功能模块:

KNX设备基本功能:主要实现KNX 各层协议栈(数据链路层、网络层、传输层、应用层),实现KNX基本通信和管理功能;

KNX耦合器功能:KNXnet/IP路由器具备耦合器功能,包括路由和SNA Server功能;

KNXnet/IP功能:主要针对KNX在IP网络上实现的功能,主要包括设备管理、路由和隧道。

按照KNX测试规范[8]要求,对KNXnet/IP路由器的各个功能模块搭建相关测试平台,运行测试序列,所有测试项均通过,才能说明设备符合KNXnet/IP路由器规范要求,才能取得KNX认证。

表1 profile 091A的基本功能

3.1 KNX基本功能测试

如图5所示,PC的KNX数据接口EDI通过RS232或USB连接到TP总线,在PC上运行的EITT软件可以发送测试消息到总线也可以接收来自总线的消息,从而观察被测KNXnet/IP路由器的行为。

图5 KNX路由器的KNX协议栈测试示意图

按照测试规范[8]要求,先通过ETS配置软件配置好KNXnet/IP路由器后,采用EITT软件编写好测试序列,运行测试序列,所有测试例均通过,说明该协议栈符合KNX协议规范要求。

3.2 路由功能测试

KNXnet/IP路由器具备耦合器相关功能[9],可以配置成线耦合器(line coupler),骨干耦合器(backbone coupler)或者是转发器(repeater),测试规范[8]中也规范了如何测试KNXnet/IP作为耦合器的功能。

如图6所示,PC的一个数据接口EDI通过RS232或USB连接到TP总线,另一个数据接口通过KNXnet/IP 服务器连接IP网络。在PC上运行的EITT软件通过两个接口可以发送消息到总线或IP网络,也可以接收来自总线或IP网络的消息,从而观察被测对象KNXnet/IP路由器的行为。

图6 KNXnet/IP路由器的耦合功能测试示意图

3.3 KNXnet/IP功能测试

KNX标准提供了测试软件KNX IP Validation Tool[8],专门用来验证KNXnet/IP协议实现的正确性。

如图 7所示,PC的一个数据接口(EDI)通过RS232或USB连接到TP总线,另一个数据接口通过KNXnet/IP 服务器连接IP网络,负载开关是用于控制总线电源的开和断功能,PC通过TP总线发送指令来控制负载开关,用于验证KNXnet/IP路由器对TP总线异常的检测和上报功能。在PC端运行KNX IP Validation Tool进行KNXnet/IP协议栈的相关测试。

图7 KNXnet/IP协议栈测试示意图

4 增强型KNXnet/IP路由器的应用

图8示意了一个增强型KNXnet/IP路由器的典型应用场景。该路由器可以提供TP总线的KNX TP设备接入到骨干网,也可以提供WiFi子网内的KNX IP设备接入到骨干网。

图8 KNXnet/IP路由器的实施例示意图

现有KNXnet/IP路由器方案的无线接入一般都是采用的RF方式。与现有技术方案相比,增强型KNXnet/IP路由器具有以下优点:

(1) 通过对KNX协议栈的改进和增强,使得整个KNX系统的方案设计更加灵活,改进后的系统可以支持KNX IP设备作为子网设备和KNX路由器连接的主网通信。

(2) 整个系统都采用KNX标准实现,具有较强的扩展性和互操作性。

(3) 在对无线网络中的KNX设备进行配置时,除了可以连接到网络的PC进行配置外,还可以直接使用智能终端通过无线网络对KNX设备进行配置,既可以无线子网内的KNX设备进行配置,也可以对无线子网外的KNX设备进行配置,配置更加灵活方便。

(4) 在采用KNX RF系统中,无线传输的速率不够高,当来自IP侧的数据量大的时候,可能导致子网速率限制而造成大量数据包被丢弃。在增强型KNX系统中,无线局域网可以支持到千兆及以上的带宽。

(5) 无线局域网技术非常成熟,使得本系统实现难度小,研发周期短,可实施性好。

(6) 无线局域网产品应用非常广泛,超大规模的应用使得成本可以非常低廉,本系统在增加无线局域网支持时对产品成本影响很小。

5 结 语

本文介绍的增强型KNXnet/IP路由器是基于LPC处理器、Linux系统来设计和实现的,并采用了NCN5120芯片作为KNX总线收发模块。该设备通过了第三方认证测试实验室的认证测试,符合KNXnet/IP路由器协议规范。同时,增强型KNXnet/IP路由器对KNX协议栈的改进和增强,使得整个KNX系统的方案设计更加灵活,成本更加低廉,具有巨大的经济价值和市场前景。

[1] Cavalieri S,Chiacchio F,Puglisi A D S.Integrating KNX and OPC UA Information Model[J].Journal of Computers,2014,9(7):1536-1541.

[2] 张国栋,张曦煌.KNX/EIB通信协议的实时性分析与改进[J].计算机应用,2012,32(2):370-373,384.

[3] Nazabal J A,Gómez J,Falcone F,et al.Android Application for Accessing KNX Devices via IP Connection[J].International Journal of Smart Home,2012,6(4):39-46.

[4] Konnex Association.Konnex Standard,Vol3,System Specifications[Z].2013.

[5] De Luca G,Lillo P,Mainetti L,et al.KNX-Based Home Automation Systems for Android Mobile Devices[C]//SMART 2013:The Second International Conference on Smart Systems,Devices and Technologies,2013:20-23.

[6] 兰少华.TCP/IP网络与协议[M].北京:清华大学出版社,2014.

[7] Konnex Association.Konnex Standard,Vol6,Profiles[Z].2013.

[8] Konnex Association.Konnex Standard,Vol8,System Test Specifications[Z].2013.

[9] Konnex Association.Konnex Standard,Vol9,Basic and System Components[Z].2013.

IMPLEMENTATIONOFENHANCEDKNXNET/IPROUTERINSMARTHOME

Zhu Li1Liu Gang2Liu Mengjuan3

1(SichuanJiuzhouElectricGroupCo.,Ltd.,Chengdu610041,Sichuan,China)2(R&DCenter,ZTECorporation,Chengdu610041,Sichuan,China)3(SchoolofInformationandSoftwareEngineering,UniversityofElectronicScienceandTechnologyofChina,Chengdu610054,Sichuan,China)

In the smart home or building control system based on KNX standard, router is very important equipment. This paper proposes an innovative scheme of KNXnet/IP router, including hardware platform, protocol stack software and certification test. The enhanced KNXnet/IP router provides the connection and exchange of information between KNX subnet and IP network, effectively using IP network resources such as Ethernet and WiFi. The performance and function of the enhanced KNXnet/IP router are far beyond the traditional KNX router. Based on this, KNX system is no longer limited by transmission distance. KNXnet/IP router can achieve the interconnection between KNX devices of different buildings, and ensure the free extension of KNX network. Also, enhanced KNXnet/IP router supports WiFi access, which enables free mobile networking and guarantees the free expansion of the KNX network.

Smart home KNX protocol KNXnet/IP protocol Ethernet TP bus

TP39

A

10.3969/j.issn.1000-386x.2017.10.029

2017-01-16。国家自然科学基金青年项目(61202445)。朱莉,硕士,主研领域:智能家居,大数据,LTE。刘刚,博士。刘梦娟,副教授。

猜你喜欢
子网应用层路由器
考虑荷电状态的交直流微电网多模式协调控制策略
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
子网划分问题研究及应用
航天器多子网时间同步系统设计与验证
基于分级保护的OA系统应用层访问控制研究
物联网技术在信息机房制冷系统中的应用
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair