论文部分内容阅读
为了提高驾乘的舒适性以及车辆的可操控性和安全性,越来越多的电子控制单元(Electronic Control Unit,ECU)被集成到汽车的控制系统中。由于这些ECU之间需要进行大量数据的高速通信,传统的点到点连接的线束集成方式早已被分布式控制网络所取代,面向汽车的CAN通信协议已经成为汽车网络的标准协议。但是CAN协议没有定义应用层,需要用户自己定义CAN帧消息中所传输数据的意义以及实现网络管理功能,这就增加了开发的复杂性和成本。CANopen协议作为CAN总线应用层协议,以其独特的设计获得了广泛的认可和应用。尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准,目前已经应用到医疗器械、运动控制和测量设备等行业。但是,在汽车控制系统中还没有应用CANopen协议,主要原因是CANopen协议的实时性和可靠性还需要完善,而且在汽车行业也缺少标准的应用规范。本文在分析CANopen协议以及汽车控制网络的拓扑结构基础上,实现一个基于CANopen协议的简单汽车控制网络,并针对网络中每个设备实现了相关的设备子协议。此外,本文给出了对象字典的一种典型实现方式,并对基于散列表实现对象字典方式进行了分析。在此基础上,根据对象字典的特点,提出基于数组和链表结合的方式来实现对象字典。采用CANoe软件开发CANopen网络,可以在不需要相关硬件的支持下,仿真一个支持基本CANopen通信协议的网络。然后对所开发的网络系统进行一致性和性能测试,验证所仿真的网络是基本符合要求的。CANopen协议虽然能够提高网络配置的灵活性和不同设备间的互操作性,但是其通信对象是在CAN标准帧的基础上实现的,仍然遵从CAN总线仲裁机制,即优先级与标识符相关。CANopen网络中,实时数据由过程数据对象(Process Data Object,PDO)传输。当网络负载较大时,低优先级的PDO会被阻塞,从而导致其传输具有较长的等待时间。为了解决这个问题,研究在CANopen协议中实现最早截止期优先(Earliest Deadline First,EDF)调度算法,基于所传输报文对截止期的要求,动态改变通信对象的优先级,从而使对实时性要求高的报文能够优先获得发送。通过仿真实现EDF算法,验证了方案的可行性。