一种“动静结合”的CAN总线调度算法在汽车电子控制
,该芯片是一款低成本、高性能的16位HCS12系列微处理器,内置有msCAN控制器,非常适合作为汽车电子控制单元的核心部件; CAN总线收发器选用的是MC33989(高速总线)芯片和MC33388芯片(低速总线);车身控制系统中的LIN总线收发器和电机驱动选用的都是MC33399芯片;车灯及其他负载的驱动选用的是MC33888芯片。网络整体框图如图4所示。
![](../img/eep/emb/emb-50376m3iau2llww5.jpg)
图4 汽车电子控制网络的整体框图
4.2 汽车电子控制网络软件设计
利用CodeWarrior集成开发环境IDE(Integrated Development Environment),通过背景调试方式BDM(Background Debug Mode),下载控制程序和修改相关参数,在不干扰目标程序运行的情况下,实时监测各寄存器和存储器,实现了控制程序的板上在线调试,从而提高了集成系统的开发效率和试验的方便性,缩短了试验周期。
系统所需软件模块主要由系统初始化模块、启动自检模块、主控制模块、数据采集模块、数据处理模块、参考车速计算模块、控制决策和执行机构动作模块、故障诊断模块、总线通信模块等几大部分组成。各模块由主控制模块按任务管理机制实时进行统一调度,分配运行时间,进行数据和信号的交换。
为了实现预期的CAN总线调度算法,将节点的11位ID分解为3 + 8位的形式,前3位定义为组号。每个节点占用二个ID,同一节点ID的后8位相同,前3位用来区分时间触发报文组与事件触发报文组,并且时间触发报文组的优先级设置比事件触发报文组的优先级高。在调度表中,安排先发送时间触发报文,发送完毕后,再允许各节点发送事件触发报文。发送时间触发报文时,高优先级节点的报文先发送,在该期间,由调度表确保仅有一个节点获取总线控制权。在一个调度周期内,只有最后一个时间窗用于各节点发送事件触发报文,该时间窗的大小,可根据实际使用情况,在调度表中灵活安排。若多个节点同时发送事件触发报文,则依据CAN总线的位仲裁机制,以及动态优先级调度算法来进行竞争,获取总线控制权的节点发送报文。
实践证明,这种结合了TTCAN技术和动态晋升机制的调度算法,在整车电子控制网络中起到了至关重要的作用,各个子系统之间数据传输的实时性以及通信质量都得到了明显的改善。
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)