knx-eib通信协议的实时性分析与改进

knx-eib通信协议的实时性分析与改进

ID:24841253

大小:67.00 KB

页数:10页

时间:2018-11-16

knx-eib通信协议的实时性分析与改进_第1页
knx-eib通信协议的实时性分析与改进_第2页
knx-eib通信协议的实时性分析与改进_第3页
knx-eib通信协议的实时性分析与改进_第4页
knx-eib通信协议的实时性分析与改进_第5页
资源描述:

《knx-eib通信协议的实时性分析与改进》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、KNX/EIB通信协议的实时性分析与改进KNX/EiB通信协议的实时性分析与改进引言.L.  随着楼宇智能化应用越来越普及,产生了许多楼宇智能化通信协议,其中KNX/EIB(Konnex/ElectricalInstallationBus)通信协议应用最为广泛。KNX/EIB通信协议是唯一一个开放式并经过认证的标准,2006年成为国际标准ISO/IEC145433,并于2007年正式成为中国国家标准GB/Z209652007[1]。  在家庭或者楼宇智能环境中,对通信协议实时性传输的要求非常高。每个数据命令的发送执行都有一个期限,如果超过这个期限,将会有新的随机数据命令产生,前一条

2、命令可能就已经失效了。换句话说,一条数据命令必须在要求的时间内得到执行,同时还要求每条数据命令的传输时延要稳定。KNX/EIB通信协议采用了无线通信常采用的带冲突避免的载波侦听多路存取(CarrierSenseMultipleAccess/CollisionAvoidance,CSMA/CA)[2]防冲突机制来解决KNX/EIB网络的冲突问题,但CSMA/CA机制导致数据命令帧传输时延抖动非常大。比如调光命令,调光命令由两条数据命令组成,两条数据命令的产生是随机的,采用CSMA/CS算法机制可能会使这两条数据命令发送的延迟时间不同,造成调光无法准确执行;再比如,在总线不繁忙时,一个开灯数

3、据命令或许可以很快地得到发送执行,但是当总线繁忙时,数据命令可能为了避免冲突,回避高优先级或者同优先级优势数据命令的发送,造成很长的传输时延。这种情况在楼宇智能环境下是不能容忍的,而且可能会因此造成严重的误操作。这也使网络的实时性降低。  本文针对KNX/EIB通信协议在双绞线(Tainline)上构成一个域(area),15个域又通过域耦合器(areacoupler)连接到骨干线(backboneline)上组成整个网络[3]。 一般情况下,每个BCU被安装进系统时被分配一个独一无二的独立地址(IndividualAddress,IADRS)。KNX可以通过组地址(GroupAddr

4、ess,GADRS)对BCU进行无限制分组。所有BCU可以通过发送组播式数据命令帧来进行参.L.数共享,甚至可以进行按位读写。      KNX/EiB数据帧格式如图2所示。Octet0中包含了数据命令帧控制信息,其中数据命令帧优先级就包含在其中。Octet1和Octet2为数据命令帧发送源地址,其为BCU的IADRS。      1.2KNX/EIB防冲突机制分析及其对实时性的影响  根据KNX/EIB标准(KNX/EIBS),若一个BCU已经开  始发送信号,则系统禁止其他BCU占用信道。当多个BCU    同时向总线上发送数据时,根据CSMA/CA算法,BCU要检查    每个比

5、特,如果物理层显示总线繁忙或者正在发生碰撞,则低优先级数据命令帧需要立刻停止传送,高优先权数据命令帧开始传送数据,高优先级数据命令帧传送完成后,低优先级数据命令帧重新开始传输判定。KNX/EIB通信协议中,传输数据的优先级分为四级:系统最高级(systempriority)、报警级别(urgentpriority)、普通级别(normalpriority)和低级(lo.unsignedshortAddr;  unsignedcharPriority_TR;  }  .L.  程序后      其中Addr参数是用来存储申请通信授权的从模块的IADRS;而Priority_TR是用来调度从

6、模块的通信申请并进行排序,其初始值为256。    主模块与从模块都需要一个定时器,用来解决总线出现故障时的程序死锁。  3.2调度程序的调度算法  调度算法的目的是对主模块中存储列表Panding_Req_List上的i(i=1,2,)个通信申请进行排序,使得各个从模块获取通信信道的机会均等,使最大通信延迟时间得到确定。  调度程序的伪代码如下:  程序前      Ifi≤1then  按照先入先出原则,进行调度  elsEifi≥2then  按照Panding_Req_List中参数Priority_TR,由小到大进行调度  IfPanding

7、_Req_List中参数Priority_TR存在相等的then  按照Panding_Req_List中参数Adrr,由大到小进行调度    endif  Endif      程序后      设置IADRS值大的BCU的优先级高是为了减少劣势数据命令帧的等待时间,以及减少劣势数据帧在总线与优势数据帧发生竞争的几率,使各个从模块之间的传输延迟尽量平均。  当有一个申请被执行,该申

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。