摘要:本文结合整车网络开发的工程经验,使直接和间接2种网络监控机制有效结合,并在网络建环过程和状态迁移部分对OSEK规范进行优化,使OSEK网络管理在CAN总线通信中得到更加准确、有效的应用。最后对所提策略进行了仿真验证,保证了整车CAN网络系统设计的正确性和可靠性。
随着汽车电子技术的发展,汽车上的电子控制单元(ECU)也越来越多,控制器局部网(ControllerArea Network、CAN)总线以结构简单、低成本、高可靠性、实时性、抗干扰能力强等特点在工业现场控制等众多领域得到了广泛应用。
为了提高软件复用性、汽车系统的扩展性和移植性,欧洲汽车厂商和科研单位联合提出了一种汽车电子开放式系统及其接口的软件标准一一OSEK/VDX r21、OSEK网络管理(NM)规范为提高ECU产品的网络互连能力提供了一个网络连接标准。本文将重点研究如何将OSEK网络管理更加规范化、合理化地移植到CAN总线整车网络中,包括节点监控方法、网络管理协议数据单元的定义方法以及CAN数据帧的映射结构、网络建环的优化设计、网络状态迁移优化设计。最后,通过C ANoe仿真进行了总体验证。
1 网络节点监控策略
OSEK直接NM通过在网络中主动发送网络管理消息来实现对网络节点的监控,也就是发送ring报文来建立一个逻辑上的环,来判断网络节点是否在线,这样网络中的每一个节点都会被其他节点所监控。但这种监控方法对应用报文无法实时性的监控,其可靠性不高。如果整车网络完全依靠直接网络管理进行节点监控会存在很大风险,因此本文在进行直接的监控网络管理报文的同时,加入对周期性的应用报文的监控,并且对预接收的报文设置一个超时时间,一旦到达时间上限,接收节点就会记录发送节点丢失。通过对这2种监控方法的结合,有效地提高了整车网络的通信安全性和可靠性。
2 网络管理协议数据单元
网络管理协议数据单元(NMPDU)分为地址域、控制域和数据域[31。其中地址域又分为源地址的ID和目的地址的ID,为保证网络建环的可行性和稳定性,在ID分配时需注意网络中的每一个节点的ID值必须是唯一的。在控制域中通过定义不同的操作码来识别网络中3种NM报文类型。OSEK对以上两区域进行强制要求,而数据域是设计者可以自定义并且选择的,具体设计时可将节点睡眠和唤醒原因,以及系统的一些故障原因加入到数据域中,以便故障的排查与定位,实现在开发和测试中快速地找出故障原因并解决问题。
OSEK中没有给出协议数据单元的具体编码解码方法,这也使OSEK网络管理具备更好的可移植性,OSEK要在CAN总线上实现,除了给每个ECU分配唯一的源ID外,还需为每个ECU分配一个网络管理报文的ID,这个ID的设置不但要与NMPDU中的源地址对应,还要考虑到CAN总线的这种非破坏性仲裁(CSMA/CA)的通信机制,优先级过高可能会影响到对实时性要求比较高的应用报文的发送。具体的映射关系如图1所示。