操控器局域网(CAN)归于现场总线的范畴,是一种有用支撑散布式操控体系的串行通讯网络。它是由德国博世公司在20世纪80年代专门为汽车职业开发的一种串行通讯总线。由于其通讯速率高、作业牢靠、调试便利、运用灵敏和性价比高级长处,己经在汽车业、航空业、工业操控、安全防护等范畴中得到了广泛应用,被公认为几种最有出路的总线之一,其协议也发展为重要的国际规范。
跟着CAN总线在各个职业和范畴的广泛应用,其通讯功用也越来越遭到人们的重视。现在,已有许多学者对CAN总线通讯功用进行剖析研讨。文中在剖析CAN总线通讯操控协议的基础上,在MATLAB/Sinulink软件Stateflow仿真环境下,运用有限状况机理论对CAN总线通讯体系进行了形式化建模。通过此仿真模型,剖析了CAN总线通讯体系中负载率的改变对网络吞吐量、均匀信息时延、通讯抵触率、网络运用率、网络功率以及负载完结率的影响。
1 CAN总线通讯操控协议
依据ISO11898(1993)规范,CAN从结构上分为物理层和数据链路层,数据链路层又包含逻辑链路层操控子层(LLC)和介质拜访操控子层(MAC)。在CAN总线体系中,节点间通过公共传输介质传输数据,因此数据链路层是总线的中心部分。CAN总线数据链路层的通讯介质拜访操控方法为事情触发,选用CSMA/CD.只需总线闲暇,网络上恣意节点均可在恣意时刻自动地向网络上其他节点发送信息,而不分主从,节点在恳求发送信息时,首要侦听总线状况,若总线闲暇(或等候至总线闲暇)则开端发送。当多个节点一起发送发生抵触时,选用非破坏性位裁定机制,即凭借ID标识符及逐位裁定规矩,低优先级节点自动中止发送,高优先级节点不受影响持续发送,然后防止总线抵触,防止信息和时刻发生丢失。在发送过程中,发送节点对发送信息进行校验,完结发送后开释总线。CAN总线体系通过运用这种非破坏性的逐位线裁定技能来处理多个节点一起拜访网络的抵触,最终优先级最高的节点能够当即发送数据,满意了高优先级节点实时性的相关需求。
2 CAN总线体系仿真模型
文章在Matlab/Simulink软件Stateflow仿真环境中树立了16节点的CAN总线通讯体系仿真模型。节点1-16的结构是相同的,节点模块如图1所示。
图1 节点模块
节点模块包含发送、缓存、数据收集3个部分。由于本次仿真首要研讨CAN总线的通讯功用,所以树立节点模型时,只考虑了其通讯活动所触及的部分,没有参加节点核算操控活动部分和数据接纳部分。数据收集用于收集Simulink中输入的数据,数据长度遵守随机均匀散布,在状况“有数据”中,数据被组装成CAN规范短帧。在实践体系中,数据可能是节点自身收集的现场检测数据,或是节点操控器输出的数据。“缓存”代表节点的缓冲器,这儿假定容量为1.包含两个状况:“空”和“非空”.数据被收集并组装成CAN规范短帧后,触发由“空”到“非空”的转化,将节点信息放在等候发送的缓冲器中,发送完结后,回来“空”状况,等候下一次触发。“发送”代表节点发送部分,当缓冲器有数据等候传输时,触发由“中止”到“等候”的转化,进入等候状况;当总线裁定答应本节点发送时,触发由“等候”到“传送”的转化,开端发送数据;当缓冲器的数据传送完结时,触发由“传送”到“中止”的转化,等候下一次发送。
图2 通讯调度模块
通讯调度模块,如图2所示。包含总线活动模块fieldbus和裁定判别函数compete.fieldbus模块包含3个状况:“闲暇”、“繁忙”、“帧距离”.开端总线在“闲暇”状况下,当有节点要发送信息时,用compete函数对待发节点进行裁定,并触发由“闲暇”到“繁忙”的转化;节点发送数据完结后,以“回来”事情触发由“繁忙”到“帧距离”的转化;通过一个“帧距离”后,回到“闲暇”状况,等候下一次传输。compete函数对各节点的裁定契合CAN裁定机制,通过比较各待发节点的优先级,完成“线与”功用,将发送权给优先级最高的节点。
以上所述的仿真渠道简练直观地解说了CAN网络的操控机理,并能动态地仿真其通讯活动。
3 网络功用
3.1 功用指标
咱们先介绍总线网络相关功用指标的相关界说。
网络负载率:单位时刻内宣布拜访网络的节点数(需求传送的报文数)与网络最大容量的比率。
吞吐量:单位时刻内体系成功发送信息数量的均值。
均匀信息时延:从信息宣布传输恳求到被成功地传输到意图节点所需求的均匀时刻。
通讯抵触率:节点遭受通讯抵触的概率。
网络运用率:单位时刻内通道传送信息号的时刻比率,便是通道处于繁忙状况的概率,它反映了通道被运用的状况。
网络功率:单位时刻内通道成功传送的信息与通道发送信息的时刻比率,即吞吐量与通道运用率两者间的比率。
负载完结率:一切节点运转完结后成功向总线上发送的报文帧的总个数与一切节点恳求发送的报文帧的总个数的比率。
3.2 功用剖析
仿真设定CAN总线传输速率为200kbit/s,总的运转时刻为T=2s,并假定每一帧报文的数据长度为100bit,能够得知,CAN总线满负载时传输4000帧数据,表明为N=4000帧,即满负载时传输的数据帧的总长度为400kbit,表明为S=400kbit.通过设定各节点的发送周期,来调整负载率的巨细。
CAN总线仿真模型中,输出参数意义别离为:u代表通道处于繁忙状况的总时刻;thout代表一切节点发送的一切数据帧的总长度;fz代表一切节点发生的一切数据帧的总长度;b1-b16别离代表第1-16个节点每次运转完结后成功向总线上发送的数据帧的个数;p1-p16别离代表第1-16节点每次恳求发送的数据帧的个数。
所以,吞吐量的核算公式为:
均匀信息时延的核算公式为:
式中i表明节点编号(I=1~16)。
通讯抵触率的核算公式为:
网络运用率的核算公式为:
网络功率的核算公式为:
负载完结率的核算公式为:
式中i表明节点编号(1~16)。
通过运转仿真模型,得到体系在负载别离为16%、33%、50%、81.5%、100%、125%、150%、175%、200%、230%、250%、280%、310%时的一系列仿真成果。