×
嵌入式 > 嵌入式开发 > 详情

一种“动静结合”的CAN总线调度算法在汽车电子控制网络中的研究与应用

发布时间:2020-06-16 发布时间:
|
CAN总线最初是由德国BOSCH公司于20世纪80年代初提出的,当时主要应用于汽车电气通信,它将汽车上各种信号的接线只用两根简洁的电缆线取代,而各种电子装置通过CAN控制器挂到这两根电缆上,设备之间进行数据通信和数据共享,从而大大减少了汽车上的线束。CAN总线结构独特,性能可靠,目前被公认为是最有前途的现场控制总线之一。

1、基于CAN总线的汽车电子控制网络中潜在问题

从信息共享角度分析,现代典型的汽车电子控制单元有:电控燃油喷射系统、电控传动系统、防抱死制动系统(ABS)、防滑控制系统(ASR)、巡航系统、空调控制系统等,用CAN总线将各个单元节点连接起来,组成实时通信网络。

汽车CAN总线网络在实际运行过程中,众多节点之间需要进行大量的实时数据交换,不可避免会出现总线负荷过大的情况。当信息帧的碰撞概率达到一定程度时,系统中一部分信息帧的收发就会产生延时,甚至根本不能收发成功。这样,当驾驶员刹车时,即使时延只有几个毫秒,但时速100公里的汽车也可能在这期间内全速驶出3~4米,后果将不堪设想。

为了解决上述问题,本文提出了一种结合TTCAN(Time Triggered Controller Area Network)技术和动态晋升机制[4]各自所长的“动静结合”的调度算法。该算法有效解决了数据的发送时延和冲突问题,改善了CAN总线数据传输的实时性。

2、基于TTCAN技术的时间触发调度方式

TTCAN由时间进程驱动,其时间触发调度由顺序固定的时间窗组成。时间窗是用于交换报文的时间片断,通常有三类时间窗:专用时间窗(特定的周期性报文)、仲裁时间窗(通过仲裁访问总线的报文)和空闲时间窗(为总线扩展所保留),如图1所示。专用时间窗类似于TDMA(时分多路访问),属于离线进行的静态调度,所有流程和时间参数均需要预先指定,并可以在多级或多个TTCAN网络内实现同步。TTCAN的全局时间由时间主机周期发送的参考报文产生,它的总线最多可以配置8个具有优先级的时间主机节点,以确保总线的连续、确定性通信,优先级最高的时间主机为当前时间主机。


图1 TTCAN的基本周期和时间窗


在节点编程时,可以利用处理器的定时器中断周期作为NTU(Network Time Unit),其值定义为在CAN总线上以1Mbps的速率传输1帧8字节数据帧所需时间的八分之一,约为16.75μs。对周期中断次数进行计数,总线的调度从主节点发送参考报文开始,当计数器值与节点设定值相符时,则发送周期报文。传输数据帧时的时间窗利用率可以定义为:时间窗利用率=(传输数据帧所需的NTU数/时间窗长度)×100%。在实际测试中可以发现,当时间窗小、调度周期数大时,误码率较大;当时间窗增大即时间窗利用率较低时,误码率基本维持在很低的水平。

3、基于动态优先级调度算法的事件触发调度方式

仲裁窗发送事件触发报文,如果采用传统的静态优先级分配机制,将会在网络负担繁重的情况下出现发送传输时延或者丢失报文。而动态优先级调度算法则能很好地解决这一问题。以下是该算法的基本原理。

首先,将CAN的仲裁域(以扩展帧格式为例)分成优先级和标识两部分,如图2所示。标识部分是固定用来标识协议帧的,这也是协议帧的惟一标识,与传统协议帧标识符的意义完全相同;优先级部分已经不再具有协议帧的标识功能,而只是表示协议帧的优先级功能,所以它可以根据总线调度机制分配给协议帧的优先级的变化而变化。


图2 CAN扩展帧格式的仲裁域的划分


其次,当协议帧第一次发送、且当它在发送时和其他协议帧碰撞并失去仲裁时,即退出发送,并置优先级上升一位后,再重新发送。因为这时其优先级高于其他协议帧,在整个网络中如果没有其他与之具有相同优先级的协议帧同时发送,即使和其他的协议帧(处于第一次发送的)碰撞,也会赢得仲裁,所以发送成功的概率很大。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
RIOS实验室联手Imagination.共同助力RISC-V生态发展