KNX协议入门.docx
《KNX协议入门.docx》由会员分享,可在线阅读,更多相关《KNX协议入门.docx(12页珍藏版)》请在冰豆网上搜索。
KNX协议入门
一、KNX技术简介
KNX通过一条总线将各个分散的设备连接并分组和赋予不同的功能;系统采用串行数据通讯进行控制、监测和状态报告。
KNX是基于事件控制的分布式总线系统,只有当总线上有事件发生时和需要传输信息时才将报文发送到总线上。
KNX技术的通信模型采用五层结构:
物理层、数据链路层、网络层、传输层和应用层。
KNX物理层支持TP1(双绞线)、PL110(电力线)、RF(射频)和Ethernet(以太网),其中TP1介质应用最多。
数据链路层实现总线设备之间的数据传输,并解决网络中的通信冲突问题。
对于小KNX系统中的总线设备,网络层的功能很少,只是完成了传输层和数据链路层的通信映射功能。
大型KNX系统中有耦合器类产品,作用是在网络层完成路由功能和跳数(hop)控制功能。
传输层完成设备之间的传输,有四种传输模式:
点到点无连接,点到点有连接,广播和多播。
KNX通信模型
KNX传输介质主要是双绞线,比特率为9600bit/s。
总线由KNX电源(DC24V)供电,数据传输和总线设备电源共用一条电缆,数据报文调制在直流电源上。
KNX系统有两种配置模型:
S-Mode(系统模式)和E-Mode(简单模式)。
S-Mode:
该配置机制是为经过良好培训的KNX安装者实现复杂的楼宇控制功能。
一个由“S-Mode”组件组成的装置可以由通常的软件工具(ETS®3专业版)在由S-Mode产品制造商提供的产品数据库的基础上进行设计:
ETS也可以用于连接和设置产品(即设置安装和下载要求的可用参数)。
“S-Mode”提供给实现楼宇控制功能的最高级别的灵活性。
E-Mode:
该配置机制是针对经过基本KNX培训的安装人员。
和S-Mode相比,“E-Mode”兼容产品只提供有限的功能。
E-Mode组件是已经预先编程好的并且已经载入默认参数。
使用简单配置,可以部分的重新配置各个组件(主要是它的参数设置和通信连接)。
注:
ETS软件是系统设计、编程和调试的工具软件;可能需要购买。
KNX系统的构建和各种参数设置都需要ETS软件。
ETS软件安装好后数据库是空的,需要将各个制造商产品的参数导入数据库;KNX认证过的产品应当会有光盘之类的介质存储相关的产品信息。
二、KNX总线设备和网络拓扑
KNX总线设备结构图
由上图可知KNX总线设备主要由三部分组成。
总线耦合单元主要由两部分组成:
控制器和收发器,这也是硬件设计的地方。
总线耦合单元有自己的MCU并集成了KNX协议栈;BCU会提供已定义的API(应用程序编程接口)函数,供AM通过PEI(一般是串口通讯)调用。
KNX总线设备的BCU硬件都是相同的,一个总线设备的功能是由AM模块的应用程序决定。
由BCU和AM可决定总线设备可以是一体或者分离结构。
“一体结构”的通信部件和应用部件不可分离,不需要PEI(物理外部接口)。
“一体结构”产品的总线耦合功能和应用功能是由一个MCU实现;“分离结构”的产品其总线耦合功能和应用功能由不同中央处理单元分别实现。
我们的KNX网关应该是分离结构的,设备由BCU(用西门子KNX芯片)和AM(STM32)组成;还要加入以太网等通讯协议。
如果需要中央管理功能,可以通过在PC或触摸屏上安装监控软件来实现。
KNX系统原理示意图
由上图可知KNX总线设备主要分为执行器和传感器,如果KNX系统网络较大还需要耦合器\路由器。
KNX系统拓扑的层次结构是:
线路、干线(域)、主干线。
KNX采用分层结构,分为域和线路;一个系统有15个域,每个域有15条线路,每个线路有64个设备。
大型KNX网络中支线/干线耦合器(路由器)和中继器是构建整个网络的关键设备。
1、线路
线路是KNX系统最小的单元,可接64个设备;实际可连接的设备数量应取决于总线电源和设备耗电。
每条线路最长1000m。
如下图所示:
2、干线(域)
KNX系统可以有15条线路通过线路耦合器(路由器)连接到主线路。
如下图所示:
3、主干线(多个区域)
干线可通过干线耦合器(路由器)组成多个区域,一般情况下一个KNX系统可接14400(15*15*64)个总线设备。
一般KNX系统线路和干线都采用KNX通讯,如下图所示:
ABB基于KNX的系统
ABB大型KNX网络在主干线上采用的是以太网通讯,这样可以提高系统的通信速率;在干线上用以太网通讯,干线和线路的耦合采用的是IP/KNX网关,线路用KNX通讯。
这样的系统在干线网络中可以有大量的状态信息,如下图所示:
ABB基于IP网络的KNX系统
由上图两个KNX系统可知耦合器(路由器)的作用,干线耦合器和线路耦合器作为网络的节点,作用是为数据传输找到合适的路径和切换链路,确保数据包到达目的地;另外对系统线路中的信号进行过滤后才能进入到干线中,这样可以增加干线的通讯速率。
耦合器(路由器)使用两种不同的路由机制,对于组地址寻址,使用一种过滤算法;对于物理地址寻址,通过解释接收帧的物理地址进行路由。
耦合器接收到的组地址只要包含在该过滤表内,就可以被路由;这样可以保证各个线路独立工作。
有的大型设备在线路中还会增加中继器,中继器没有物理地址,不具有过滤特性,只是确认接收到数据链路层上的帧,并在中继器的另一侧发送已接收到的帧;这样可以增加线路的长度。
三、KNX系统通信
KNX总线设备是通过报文传输信息。
设备发送报文后会收到应答,发送设备若收到NAK(接收错误)确认时,通常会重复发送报文三次;若收到BUSY(总线被占用)确认,发送总线设备将会等待一个短时隙,此后重新尝试发送报文;若发送总线设备未收到确认,则最多重复发送该报文三次,此后,终止发送请求。
KNX技术应用CSMA/CA(载波侦听多路访问/冲突避免)和报文优先级来控制介质访问。
KNX系统采用单元地址化结构设计,分为物理地址和组地址。
KNX系统通信基本解释:
1、KNX地址类别:
物理地址和组地址
KNX基本线路工作示意图
上图中工作流程如下简述:
当物理地址(PA)为1.1.1的开关按下后会发生包含组地址(GA)为5/2/66、操作值“1”的报文;在线路中的所有总线设备都会接受到这个报文,但只有相同组地址的总线设备才会执行。
在KNX网络中根据系统的等级结构和应用模块的功能赋予每个总线设备相应的物理地址(用于识别总线设备和反应在网络中的拓扑位置)和组地址(用于连接传感器和执行器的功能)。
物理地址是KNX系统中总线设备的唯一编码,它由域地址、线路地址和设备地址组成;物理地址在系统中用于对设备进行管理和配置。
组地址是功能相关的地址,在系统中并不唯一;因此总线设备根据功能分配有一个或多个组地址,可进行“多控一”或者“一控多”操作。
在KNX系统各种功能应该是靠组地址实现;物理地址在系统中主要用于程序下载(通过ETS软件)、诊断、排错等。
2、报文结构
当KNX系统有事件发生,总线设备就会向总线发送报文。
经过长度不短于T1的总线空闲时间之后,开始进行传输;报文传输完成之后,总线设备将使用时间T2检查报文是否已被成功接收。
如果没有总线设备来应答,发送的报文会被重复。
报文发送后会收到报文传输时间如下图所示:
标准报文结构图
A、控制字段
上图中A表示报文是否重复,BB表示报文的优先级。
B、源地址、目标地址
报文中源地址只能是物理地址,表示报文发送设备自身所在的域和线路;目标地址可以是物理地址或者组地址,它定义了通信的接收对象,可以是一台或者多台设备,也可以是在同一条线路或者不同的线路中。
目标地址的第17位可由接收方可以判定目标地址为组地址还是物理地址。
若为“0”,则目标地址为物理地址仅对总线中一个设备进行寻址;若为“1”,为组地址,对总线中所有相同组地址的设备寻址。
C、路由计数、长度
该字节除了包含LSDU(链层服务数据单元)数据的长度还包含一个bit的标志表明地址的属性,以及3个bit的路由计数信息。
数据长度是指报文中实用数据字节的长度。
同时在每一个数据报中包含一个3bits的路由计数器。
一般总线设备计数器的初始值为6,每经过个总线耦合器、线路耦合器和中继器等都减一,当这个计数值减为0时,这个报文就被丢弃,因而避免了死循环的问题。
E、实用数据
实用数据的长度根据应用的不同而改变,最少为2字节,最多为16字节。
包括各种开关、调光、读写地址命令。
F、校验字节
检测数据采用校验位(字符校验)和校验字节(报文校验)的形式传输,用于检测报文传输错误。
报文中的每个字符均执行偶校验,报文中全部字符的每一个位位置均执行奇校验,字符校验和报文校验相结合。
3、编码方式
KNX以双绞线作为传输介质时,“0”和“1”两个逻辑状态采用一个bit位表示;逻辑“0”有调制信号到总线上(有6-9V的电压下降),“1”期间的发生器被禁用没有调制信号,总线上只有直流信号。
因此,逻辑“0”的优先级高于逻辑“1”。
KNX总线电压和逻辑电平
4、介质访问控制
KNX采用CSMA/CA(载波侦听多路访问/冲突避免)技术。
为了发送报文,总线设备必需首先侦听总线,如果在前一帧间隔时间内在媒体上没有检测到活动,那么可以立即开始传输;否则应当等待总线上的报文传输完成。
在检测到总线空闲之后,可能会有多个总线设备同时开始传输会发生碰撞。
因此,KNX的报文结构中有优先级机制,优先级高的先发送;当报文优先级相同时应再根据报文中的的物理地址(发送报文设备的自身物理地址)决定发送先后顺序,物理地址低的先发送。
发送期间,总线设备应监测总线;当发送逻辑“1”的总线设备监测到逻辑“0”(总线上有电流)时,当前设备应停止发送让位于其它设备。
四、KNX硬件设计
KNX网关的硬件设计STM32部分还是沿用老网关,KNX耦合部分硬件参考西门子KNX方案(包括集成KNX协议栈的KNX-Processor和TP-UART收发器)。
西门子方案基本框图如下所示: