2CAN总线系统仿真模型

文章在Matlab/Simulink软件Stateflow仿真环境中建立了16节点的CAN总线通信系统仿真模型。节点1-16的结构是相同的,节点模块如图1所示。

CAN总线通信性能的仿真分析研究

图1节点模块

节点模块包括发送、缓存、数据采集3个部分。因为本次仿真主要研究CAN总线的通信性能,所以建立节点模型时,只考虑了其通信活动所涉及的部分,没有加入节点计算控制活动部分和数据接收部分。数据采集用于采集Simulink中输入的数据,数据长度服从随机平均分布,在状态"有数据"中,数据被组装成CAN标准短帧。在实际系统中,数据可能是节点本身采集的现场检测数据,或是节点控制器输出的数据。"缓存"代表节点的缓冲器,这里假设容量为1。包括两个状态:"空"和"非空"。数据被采集并组装成CAN标准短帧后,触发由"空"到"非空"的转换,将节点信息放在等待发送的缓冲器中,发送完成后,返回"空"状态,等待下一次触发。"发送"代表节点发送部分,当缓冲器有数据等待传输时,触发由"停止"到"等待"的转换,进入等待状态;当总线仲裁允许本节点发送时,触发由"等待"到"传送"的转换,开始发送数据;当缓冲器的数据传送完成时,触发由"传送"到"停止"的转换,等待下一次发送。

CAN总线通信性能的仿真分析研究

图2通信调度模块

通信调度模块,如图2所示。包括总线活动模块fieldbus和仲裁判断函数compete。fieldbus模块包括3个状态:"空闲"、"忙碌"、"帧间隔"。开始总线在"空闲"状态下,当有节点要发送信息时,用compete函数对待发节点进行仲裁,并触发由"空闲"到"忙碌"的转换;节点发送数据完成后,以"返回"事件触发由"忙碌"到"帧间隔"的转换;经过一个"帧间隔"后,回到"空闲"状态,等待下一次传输。compete函数对各节点的仲裁符合CAN仲裁机制,通过比较各待发节点的优先级,实现"线与"功能,将发送权给优先级最高的节点。

以上所述的仿真平台简洁直观地解释了CAN网络的控制机理,并能动态地仿真其通信活动。

3网络性能

3.1性能指标

我们先介绍总线网络相关性能指标的相关定义。

网络负载率:单位时间内发出访问网络的节点数(需要传送的报文数)与网络最大容量的比率。