论文部分内容阅读
摘要:该文对LonWorks总线网络的协议模型进行了分析,采用MATLAB7.4.0仿真软件对LonWorks总线网络通信实时性进行仿真分析。仿真结果表明,影响通信实时性能的主要因素是不同站点数下的负载提供情况。网络在轻负载情况下,如果提供负载不超过400包/s,节点数在一定数目下,冲突率就能控制在2%以下,同时平均访问延时在负载为400包/s时也是很小的;当网络在轻负载情况下,随着BL值的增加,插入的随机时间片减少,节点发送速度较快;在重负载下,随着BL值增加,插入的随机时间片较多,可有效避免冲突。最后初步提出几种改善LonWorks总线网络通信延迟的可行性方法。
关键词:LonWorks总线;实时性;冲突;仿真
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)30-0217-03
LonWorks(Local Operating Network,局部操作网络)是美国Echelon公司开发的一种局域网络控制系统能够建立生产过程现场级设备之间及其与更高控制管理层之间的通讯,负责底层设备数据的上传和管理层控制命令的下达。实现基本控制、补偿计算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。已在电力监控系统、制造自动化、过程自动化、楼宇、交通领域得到广泛应用[1][2]。由于LonWorks網络为底层控制网必须满足对现场控制设备的实时性和信道数据传输的高效性要求。LonWorks总线使用LonTalk协议,其介质访问控制层采用带冲突检测的载波监听多路访问(CSMA/CD)控制方式。各个站点采用“优先级可预测P—持续CSMA/CD”二进制指数退避算法来处理冲突,导致每次信号重发的等待时间不一致,使得通信延迟时间不确定。考虑LonWorks网络的通信延迟降低监控系统的实时性能,因而目前对LonWorks总线网络实时性能进行分析是LonWorks技术研究的重要内容之一。
1 LonWorks总线网络协议模型分析
1.1 协议模型
LonWorks总线采用LonTalk协议,LonTalk协议的 MAC子层的报文周期见图1[3]。由图1可知[β1]出现在一帧报文的后面,其中[β1]是一个空闲时间,作用是隔离信道上的所有报文帧,在[β1]期间没有任何信息传送才表示网络空闲,任何节点在发送数据前需先确定网络是否空闲。紧跟在[β1]后的是优先级时间片,它由大小相等的n个传送延时Tslot组成,LonTalk协议规定n值可以为128,紧跟在优先级时间片后面的是随机时间片,它由大小相等的传送延时[β2]组成,随机传送延时[β2]的个数允许为1008个,优先传送延时Tslot和[β2]的大小相等。LonTalk协议规定在一个报文周期内只能有一帧报文被发送,Tslot对应的节点比[β2]对应的节点优先级高,越靠近[β1]的传送延时对应的节点优先级就越高。
节点发送报文前随机插入[0~w]个随机时隙,为此信道中的任一节点在发送报文之前平均插入了[w2]个随机时隙,公式为[w=BL×wbase],其中[w]会根据网络负载变化而变化,[wbase]是基本随机窗口内随机时隙的个数,在此BL为某一时刻网上将发送消息包的数目的预估值,[wbase]=16。
节点有报文需要利用信道发送时,首先需要在[β1]周期内确认网络是否空闲,是否有报文。若网络被确认为空闲,一个随机等待时间会被节点产生,随机等待时间为[0~w]随机时间片[β2]中的一个,待到延时结束,网络仍被确认为空闲,这个时候节点才可以发送报文;否则,节点检测是否需要接收信息,然后再重复MAC算法。
BL值是某一时刻网上将发送信息包的数目的预估值,每个节点都有一个当前信道使用情况的BL估计值。当检测到一个MPDU(报文格式)发送或接收时,BL值会增加1;同时每隔一个固定报文周期BL值会减1,然后BL值会被放到MPDU/LPDU中。由于BL值需要大于等于1,所以当BL值为1时就不再减了。
概率[p]值的动态变化与随机时隙数的动态变化之间的关系说明如下:
(1)概率[p]值的动态变化取决于随机时隙数的动态变化。
当网上将发送的信息包的数目增加时,数据将被节点分布在更多的时隙上发送,参数BL(backlog)决定了增加的时隙数量,其中BL为网络负载,BL的取值范围为1~63,随机时隙数目R=16×BL=16~1008。
(2)节点对网络负载的预测能力决定了随机时隙数目的动态变化。
每一个节点在网上启动发送信息之前,首先随机时隙数会根据BL值进行调整,然后以概率[1BL?16]在某一随机分配的时隙发送数据。每一个网络上的节点都拥有一个自己的BL值,BL是节点对当前网络负载的估计。BL是按照如下方法预测得出的:节点在它发送的消息包中增加了接收到该消息需要肯定应答的节点数目,也就是发送消息包将带来的应答数信息,新的BL值由收到该信息包的节点的BL值加上对应的应答数得来,从而达到更新随机时隙的目的,同时节点在发送完消息包时,它的BL值将会自动减l,必须选择应答服务才能实现预测,如果应答服务类型被数据包所采用,则可以预测50%或更高的网络负载。
2 LonWorks网络通信延迟分析
2.1 LonTalk协议的实时特性
有多个节点设备同时在总线上发送报文时会产生冲突,根据退避算法,各节点设备发送报文之前等待一段时间。LonTalk网络的通信延时主要包括以下几点。
1)数据传输的延时[Ttran]:从数据进入发送节点的排队队列时起,至目的节点成功接收该数据时止;
2)数据排队的延时[Tque]:从数据进入发送节点的排队队列时起,到该数据所在队列的前面数据被发送完时止; 3)数据阻塞的时间[Tblock]:从节点将向网络上发送数据时起,到将数据真正发送到网络上为止;
4)数据发送的净延时[Tframe]:完整的数据被一次性成功发送到网络上所需要的时间。数据的帧长度和比特位时间[Tbit]等参数决定了该时间的大小;
5)通道传播的延时[Tprop]:该延时大小取决于数据在网络上的传输速度和目的节点与发送节点之间的距离;
6)接收的延时[Tdrv]:数据被目的節点完整接收所需要的时间。
由此得到:
在多数的实际控制应用中,一个节点的新报文到来时,旧的报文就会丢失[3],因此[Tque]可以忽略。总线传输距离不是很长,LonWorks的总线形结构网络最长距离为2700m[5],因此[Tprop]和[Tdrv]可以忽略。所以式(1)可简化为以下公式:
2.2 信道吞吐量和冲突率
吞吐量:指的是单位时间内,信道成功传输的帧或(数据量)。在这里是信道比特率的百分比。设一个帧长度为[L]。
[τsucc]是一个帧周期传输报文成功的平均时间长度;
[τcoll]是一个帧周期传送过程中发生碰撞的平均时间长度。
[dsucc]为平均时隙个数,在此节点赢得总线使用权开始传输数据。
[dcoll]为平均时隙个数,在此节点传输过程中发生冲突。
就目前所研究的吞吐量而言,一般取[β1=4bits],[β2=2bits],帧长度[L=96bits]。
冲突率:帧传输过程中发生冲突的小部分时间。
3 仿真结果及其分析
影响LonWorks网络通信延迟的主要因素是不同站点数下的负载提供情况,本文是在MATLAB7.4.0软件环境下借助于TrueTime工具箱进行仿真,来分析这几个参数对LonWorks总线网络实时性能的影响。对LonTalk MAC算法在不确认服务下仿真,假定数据包长度为12Bytes,信道速率为78kbps。
3.1站点数(节点数)下负载与信道吞吐量之间的关系。
由图2可以看出,当节点数个数很小时,即为2以内,信道吞吐量随着所提供负载的增长而增长,吞吐量达到最大值84%左右,将保持稳定,即使负载再增长,吞吐量将保持在稳定的范围内;当节点数为6时,信道吞吐量随着所提供负载的增长而增长,达到最大值75%左右,将保持稳定,即使负载再增长,吞吐量将保持在稳定的范围内;随着节点的持续增多,信道所达到的最大吞吐量的值会持续下降,便稳定在某一范围之内;最后当节点数达到30时,信道吞吐量所能达到的最大值只有56%左右。
3.2不同站点数下负载与冲突率之间的关系仿真分析
由图3可知:当节点数为30时,对应所提供的负载为1600包/秒时,这时的信道冲突率是最大的为60%;当站点数减少到24时,信道冲突率随着所提供负载的增长而增长,当提供的负载为1600包/秒时,随对应的冲突率已减小到52%左右,并将稳定在这个范围内,即使负载的增加。由图可以看出,节点数越少,所对应的冲突率就越小,最后当节点数减少到2时,信道的冲突率基本保持在5%左右,即使负载的增加,信道冲突率将保持恒定不变。因此,当网络在轻负载下,如果提供的负载不超过400包/秒,节点数在一定数目下,冲突率就能控制在2%以下。
3.3 不同站点数下的平均访问延时与负载之间的关系仿真分析
由图3可知,当节点数为2~30时,对应所提供的负载在800包/秒时,平均访问延时将保持在最小值,延时几乎为0,当随着所提供负载的增加,平均访问延时也开始相应的增加,节点数越多的,所对应的平均访问延时就越大,当负载增加到1600包/秒时,对应的平均访问延时达到3200bit。因此可知网络在轻负载情况下,如果所提供负载不超过400包/秒,节点数在一定数目下,平均访问延时在这个范围内是很小的。
3.4 改善LonWorks总线网络实时性能的方法:
为满足工业或企业所用系统的实时要求,用以下方法减少LonWorks网络的传输时延和冲突:
(1)一般影响网络实时性和信道利用率最为关键的因素是网络的通信协议,因此可以从LonWorks的介质访问机制入手,从冲突避免方面考虑,可以对LonTalk协议的MAC仲裁机制进行硬实时改进,即通过选择网络中任意节点作为主节点来发送同步帧,去解决因较高优先级节点交替占用总线,而使较低优先级节点得不到总线使用权的问题。从而去避免冲突的发生。
(2)可以使用基于马尔科夫链的方法对LonTalk协议——可预测的P-坚持CSMA协议在冲突检测情况下对信道进行负荷效率预测分析与研究,分析对于指定的负载情况下的马尔科夫链的转移概率,通过计算竞争窗口的平稳分布,和传输成功/失败的概率[6]。来减少冲突提高LonTalk协议的实时性能。
(3)也可以从冲突解决方面去考虑,对LonTalk协议的软实时性去改进,如改进二进制退避算法,使网络传输的冲突率尽可能小,也就是系统有效吞吐量尽可能大,可以使用增强的二进制退避算法—基于马尔科夫链的模型来分析竞争窗口[7],通过选择最优竞争窗口及动态的估计要发送报文的站点数目,来改善LonWorks网络的实时性能。
4 结论
本文对LonWorks总线网络的实时协议模型进行了分析同时分析了影响实时通信的性能参数,用MATLAB7.4.0软件对不同的站点(节点)的不同负载情况下的LonWorks总线网络进行了仿真分析,仿真结果表明基于LonWorks总线网络可以满足目前工业应用的实时性要求,同时提出了几种改善LonWorks总线网络实时性能的可行性方法。
参考文献:
[1] 张云贵,王丽娜,张声勇,等.LonWorks总线系统设计与应用[M].北京:中国电力出版社,2010.
[2] 阳宪惠.工业数据通信与控制网络[M].北京:清华大学出版社,2003:343-366.
[3] 杨育红.LON网络控制技术及应用[M].西安:西安电子科技大学出版社,1999.
[4] 张玉萍.LonWorks总线实时通信协议的研究[D].哈尔滨工业大学,2009.
[5] LonTalk Protocol Specification,Version 3.0,Echelon Corporation.
[6] KRISHNA C M;SHIN K G Real-time systems 2001
[7] 茹锋.控制网络协议的实时性能分析与应用研究[D].西安交通大学,2002.
关键词:LonWorks总线;实时性;冲突;仿真
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)30-0217-03
LonWorks(Local Operating Network,局部操作网络)是美国Echelon公司开发的一种局域网络控制系统能够建立生产过程现场级设备之间及其与更高控制管理层之间的通讯,负责底层设备数据的上传和管理层控制命令的下达。实现基本控制、补偿计算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。已在电力监控系统、制造自动化、过程自动化、楼宇、交通领域得到广泛应用[1][2]。由于LonWorks網络为底层控制网必须满足对现场控制设备的实时性和信道数据传输的高效性要求。LonWorks总线使用LonTalk协议,其介质访问控制层采用带冲突检测的载波监听多路访问(CSMA/CD)控制方式。各个站点采用“优先级可预测P—持续CSMA/CD”二进制指数退避算法来处理冲突,导致每次信号重发的等待时间不一致,使得通信延迟时间不确定。考虑LonWorks网络的通信延迟降低监控系统的实时性能,因而目前对LonWorks总线网络实时性能进行分析是LonWorks技术研究的重要内容之一。
1 LonWorks总线网络协议模型分析
1.1 协议模型
LonWorks总线采用LonTalk协议,LonTalk协议的 MAC子层的报文周期见图1[3]。由图1可知[β1]出现在一帧报文的后面,其中[β1]是一个空闲时间,作用是隔离信道上的所有报文帧,在[β1]期间没有任何信息传送才表示网络空闲,任何节点在发送数据前需先确定网络是否空闲。紧跟在[β1]后的是优先级时间片,它由大小相等的n个传送延时Tslot组成,LonTalk协议规定n值可以为128,紧跟在优先级时间片后面的是随机时间片,它由大小相等的传送延时[β2]组成,随机传送延时[β2]的个数允许为1008个,优先传送延时Tslot和[β2]的大小相等。LonTalk协议规定在一个报文周期内只能有一帧报文被发送,Tslot对应的节点比[β2]对应的节点优先级高,越靠近[β1]的传送延时对应的节点优先级就越高。
节点发送报文前随机插入[0~w]个随机时隙,为此信道中的任一节点在发送报文之前平均插入了[w2]个随机时隙,公式为[w=BL×wbase],其中[w]会根据网络负载变化而变化,[wbase]是基本随机窗口内随机时隙的个数,在此BL为某一时刻网上将发送消息包的数目的预估值,[wbase]=16。
节点有报文需要利用信道发送时,首先需要在[β1]周期内确认网络是否空闲,是否有报文。若网络被确认为空闲,一个随机等待时间会被节点产生,随机等待时间为[0~w]随机时间片[β2]中的一个,待到延时结束,网络仍被确认为空闲,这个时候节点才可以发送报文;否则,节点检测是否需要接收信息,然后再重复MAC算法。
BL值是某一时刻网上将发送信息包的数目的预估值,每个节点都有一个当前信道使用情况的BL估计值。当检测到一个MPDU(报文格式)发送或接收时,BL值会增加1;同时每隔一个固定报文周期BL值会减1,然后BL值会被放到MPDU/LPDU中。由于BL值需要大于等于1,所以当BL值为1时就不再减了。
概率[p]值的动态变化与随机时隙数的动态变化之间的关系说明如下:
(1)概率[p]值的动态变化取决于随机时隙数的动态变化。
当网上将发送的信息包的数目增加时,数据将被节点分布在更多的时隙上发送,参数BL(backlog)决定了增加的时隙数量,其中BL为网络负载,BL的取值范围为1~63,随机时隙数目R=16×BL=16~1008。
(2)节点对网络负载的预测能力决定了随机时隙数目的动态变化。
每一个节点在网上启动发送信息之前,首先随机时隙数会根据BL值进行调整,然后以概率[1BL?16]在某一随机分配的时隙发送数据。每一个网络上的节点都拥有一个自己的BL值,BL是节点对当前网络负载的估计。BL是按照如下方法预测得出的:节点在它发送的消息包中增加了接收到该消息需要肯定应答的节点数目,也就是发送消息包将带来的应答数信息,新的BL值由收到该信息包的节点的BL值加上对应的应答数得来,从而达到更新随机时隙的目的,同时节点在发送完消息包时,它的BL值将会自动减l,必须选择应答服务才能实现预测,如果应答服务类型被数据包所采用,则可以预测50%或更高的网络负载。
2 LonWorks网络通信延迟分析
2.1 LonTalk协议的实时特性
有多个节点设备同时在总线上发送报文时会产生冲突,根据退避算法,各节点设备发送报文之前等待一段时间。LonTalk网络的通信延时主要包括以下几点。
1)数据传输的延时[Ttran]:从数据进入发送节点的排队队列时起,至目的节点成功接收该数据时止;
2)数据排队的延时[Tque]:从数据进入发送节点的排队队列时起,到该数据所在队列的前面数据被发送完时止; 3)数据阻塞的时间[Tblock]:从节点将向网络上发送数据时起,到将数据真正发送到网络上为止;
4)数据发送的净延时[Tframe]:完整的数据被一次性成功发送到网络上所需要的时间。数据的帧长度和比特位时间[Tbit]等参数决定了该时间的大小;
5)通道传播的延时[Tprop]:该延时大小取决于数据在网络上的传输速度和目的节点与发送节点之间的距离;
6)接收的延时[Tdrv]:数据被目的節点完整接收所需要的时间。
由此得到:
在多数的实际控制应用中,一个节点的新报文到来时,旧的报文就会丢失[3],因此[Tque]可以忽略。总线传输距离不是很长,LonWorks的总线形结构网络最长距离为2700m[5],因此[Tprop]和[Tdrv]可以忽略。所以式(1)可简化为以下公式:
2.2 信道吞吐量和冲突率
吞吐量:指的是单位时间内,信道成功传输的帧或(数据量)。在这里是信道比特率的百分比。设一个帧长度为[L]。
[τsucc]是一个帧周期传输报文成功的平均时间长度;
[τcoll]是一个帧周期传送过程中发生碰撞的平均时间长度。
[dsucc]为平均时隙个数,在此节点赢得总线使用权开始传输数据。
[dcoll]为平均时隙个数,在此节点传输过程中发生冲突。
就目前所研究的吞吐量而言,一般取[β1=4bits],[β2=2bits],帧长度[L=96bits]。
冲突率:帧传输过程中发生冲突的小部分时间。
3 仿真结果及其分析
影响LonWorks网络通信延迟的主要因素是不同站点数下的负载提供情况,本文是在MATLAB7.4.0软件环境下借助于TrueTime工具箱进行仿真,来分析这几个参数对LonWorks总线网络实时性能的影响。对LonTalk MAC算法在不确认服务下仿真,假定数据包长度为12Bytes,信道速率为78kbps。
3.1站点数(节点数)下负载与信道吞吐量之间的关系。
由图2可以看出,当节点数个数很小时,即为2以内,信道吞吐量随着所提供负载的增长而增长,吞吐量达到最大值84%左右,将保持稳定,即使负载再增长,吞吐量将保持在稳定的范围内;当节点数为6时,信道吞吐量随着所提供负载的增长而增长,达到最大值75%左右,将保持稳定,即使负载再增长,吞吐量将保持在稳定的范围内;随着节点的持续增多,信道所达到的最大吞吐量的值会持续下降,便稳定在某一范围之内;最后当节点数达到30时,信道吞吐量所能达到的最大值只有56%左右。
3.2不同站点数下负载与冲突率之间的关系仿真分析
由图3可知:当节点数为30时,对应所提供的负载为1600包/秒时,这时的信道冲突率是最大的为60%;当站点数减少到24时,信道冲突率随着所提供负载的增长而增长,当提供的负载为1600包/秒时,随对应的冲突率已减小到52%左右,并将稳定在这个范围内,即使负载的增加。由图可以看出,节点数越少,所对应的冲突率就越小,最后当节点数减少到2时,信道的冲突率基本保持在5%左右,即使负载的增加,信道冲突率将保持恒定不变。因此,当网络在轻负载下,如果提供的负载不超过400包/秒,节点数在一定数目下,冲突率就能控制在2%以下。
3.3 不同站点数下的平均访问延时与负载之间的关系仿真分析
由图3可知,当节点数为2~30时,对应所提供的负载在800包/秒时,平均访问延时将保持在最小值,延时几乎为0,当随着所提供负载的增加,平均访问延时也开始相应的增加,节点数越多的,所对应的平均访问延时就越大,当负载增加到1600包/秒时,对应的平均访问延时达到3200bit。因此可知网络在轻负载情况下,如果所提供负载不超过400包/秒,节点数在一定数目下,平均访问延时在这个范围内是很小的。
3.4 改善LonWorks总线网络实时性能的方法:
为满足工业或企业所用系统的实时要求,用以下方法减少LonWorks网络的传输时延和冲突:
(1)一般影响网络实时性和信道利用率最为关键的因素是网络的通信协议,因此可以从LonWorks的介质访问机制入手,从冲突避免方面考虑,可以对LonTalk协议的MAC仲裁机制进行硬实时改进,即通过选择网络中任意节点作为主节点来发送同步帧,去解决因较高优先级节点交替占用总线,而使较低优先级节点得不到总线使用权的问题。从而去避免冲突的发生。
(2)可以使用基于马尔科夫链的方法对LonTalk协议——可预测的P-坚持CSMA协议在冲突检测情况下对信道进行负荷效率预测分析与研究,分析对于指定的负载情况下的马尔科夫链的转移概率,通过计算竞争窗口的平稳分布,和传输成功/失败的概率[6]。来减少冲突提高LonTalk协议的实时性能。
(3)也可以从冲突解决方面去考虑,对LonTalk协议的软实时性去改进,如改进二进制退避算法,使网络传输的冲突率尽可能小,也就是系统有效吞吐量尽可能大,可以使用增强的二进制退避算法—基于马尔科夫链的模型来分析竞争窗口[7],通过选择最优竞争窗口及动态的估计要发送报文的站点数目,来改善LonWorks网络的实时性能。
4 结论
本文对LonWorks总线网络的实时协议模型进行了分析同时分析了影响实时通信的性能参数,用MATLAB7.4.0软件对不同的站点(节点)的不同负载情况下的LonWorks总线网络进行了仿真分析,仿真结果表明基于LonWorks总线网络可以满足目前工业应用的实时性要求,同时提出了几种改善LonWorks总线网络实时性能的可行性方法。
参考文献:
[1] 张云贵,王丽娜,张声勇,等.LonWorks总线系统设计与应用[M].北京:中国电力出版社,2010.
[2] 阳宪惠.工业数据通信与控制网络[M].北京:清华大学出版社,2003:343-366.
[3] 杨育红.LON网络控制技术及应用[M].西安:西安电子科技大学出版社,1999.
[4] 张玉萍.LonWorks总线实时通信协议的研究[D].哈尔滨工业大学,2009.
[5] LonTalk Protocol Specification,Version 3.0,Echelon Corporation.
[6] KRISHNA C M;SHIN K G Real-time systems 2001
[7] 茹锋.控制网络协议的实时性能分析与应用研究[D].西安交通大学,2002.