新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > CAN总线通信控制协议的仿真与性能分析

CAN总线通信控制协议的仿真与性能分析

作者:时间:2016-09-12来源:网络收藏

控制器局域网(CAN)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。它是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其通信速率高、工作可靠、调试方便、使用灵活和性价比高等优点,己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用,被公认为几种最有前途的总线之一,其协议也发展为重要的国际标准。

本文引用地址:http://www.eepw.com.cn/article/201609/303473.htm

随着CAN总线在各个行业和领域的广泛应用,其通信性能也越来越受到人们的关注。目前,已有很多学者对CAN总线通信性能进行分析研究。文中在分析CAN总线协议的基础上,在MATLAB/Sinulink软件Stateflow环境下,利用有限状态机理论对CAN总线通信系统进行了形式化建模。通过此模型,分析了CAN总线通信系统中负载率的变化对网络吞吐量、平均信息时延、通信冲突率、网络利用率、网络效率以及负载完成率的影响。

1CAN总线协议

根据ISO11898(1993)标准,CAN从结构上分为物理层和数据链路层,数据链路层又包括逻辑链路层控制子层(LLC)和介质访问控制子层(MAC)。在CAN总线系统中,节点间通过公共传输介质传输数据,因而数据链路层是总线的核心部分。CAN总线数据链路层的通信介质访问控制方式为事件触发,采用CSMA/CD。只要总线空闲,网络上任意节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,节点在请求发送信息时,首先侦听总线状态,若总线空闲(或等待至总线空闲)则开始发送。当多个节点同时发送产生冲突时,采用非破坏性位仲裁机制,即借助ID标识符及逐位仲裁规则,低优先级节点主动停止发送,高优先级节点不受影响继续发送,从而避免总线冲突,避免信息和时间发生损失。在发送过程中,发送节点对发送信息进行校验,完成发送后释放总线。CAN总线系统通过使用这种非破坏性的逐位线仲裁技术来处理多个节点同时访问网络的冲突,最后优先级最高的节点能够立即发送数据,满足了高优先级节点实时性的相关需要。

2CAN总线系统模型

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

1.jpg

图1节点模块

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

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节点每次请求发送的数据帧的个数。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭