为什么要网络管理
Autosar网络管理之所以重要,可以用比较通俗的话来解释:
想象一下汽车是一个庞大的交流团队,每个成员都是一部分的电子控制单元(ECU)。这些成员之间需要不断地交换信息,就像团队成员需要沟通一样。而Autosar网络管理就好比是团队的领导,负责协调和管理成员间的交流,确保信息传递顺畅,工作高效。
为什么需要这个领导呢?因为随着汽车电子系统的发展,团队成员(ECU)越来越多,信息交流变得更加复杂。如果没有好的领导(Autosar网络管理),可能会发生混乱、信息丢失或者冲突。这个领导的存在,就是为了保持整个团队的协作,让汽车系统在各种工况下都能保持稳定、高效地运行。
Autosar网络管理就像是一位智能的交流协调员,确保每个成员都知道何时发言、何时倾听,避免交流时的混乱和错误。这样,整车系统就能更可靠、更安全地运行,为驾驶员提供更好的驾驶体验。更重要一点是节约能源,汽车上 ECU 节点千千万万,不可能 ignition On 时所有 ECU 都正常工作,而是当用户需要请求相关功能时,参与该功能的相关 ECU 节点才需要启动起来,否则带来的只是过多对电池的无用消耗。
车辆上的总线包含上千条message,message可以理解为报文,获取报文链路有lin,CAN,Ethernet和flexray等,这个不重要,总线上传输数据统称报文,报文分有网络管理报文和应用报文,怎么区分网络管理报文和应用报文呢?这个要根据客户需求来制定,会规定一定范围的id是网络管理报文。报文内携带signal 信号,比如有车速,胎压,轮速,灯状态等。
CanNM状态
Autosar的CanNM(Controller Area Network Network Management)定义了一些网络管理状态,这些状态反映了CAN总线上网络节点的运行情况。以下是一些典型的CanNM网络管理状态:
CAN_NM_BUS_SLEEP: 表示CAN总线处于休眠状态。在这个状态下,节点之间的通信被暂停,以节省能量。当系统需要唤醒时,会从休眠状态切换到活动状态。不能发送NM Msg,可以接收NM Msg,App Msg既不能发送,也不能接收。App Msg包括:诊断报文、标定报文、应用报文、测试报文等。
CAN_NM_BUS_OFF: 表示CAN总线已经被关闭。这可能是由于错误发生次数过多,导致总线进入错误恢复状态。在这种状态下,节点无法进行正常的通信,需要进行总线的重新初始化。
CAN_NM_PREPARE_BUS_SLEEP: 表示节点正在准备进入休眠状态。在进入休眠状态之前,节点可能需要进行一些准备工作,以确保数据的完整性和正确性。
CAN_NM_READY_SLEEP: 表示节点已经准备好进入休眠状态。这个状态表明节点已经完成了休眠前的准备工作,可以安全地进入休眠状态。NM Msg可以接收,不能发送,App Msg即可以收,也可以发送。
CAN_NM_REPEAT_MESSAGE: 表示节点在发送重复消息。这可能是为了确保其他节点能够正确接收到消息,尤其是在网络恢复或重新配置时。
这些状态反映了CAN总线上节点的不同运行状态,CanNM通过管理这些状态,确保CAN网络在各种情况下能够稳定、可靠地运行。这对于整车电子系统的性能和可维护性都至关重要。请注意,具体的状态可能会根据Autosar版本和实现而有所不同,可以参考Autosar标准文档或相关的实现手册获取更详细和准确的信息。
ECU唤醒
在车辆上,电子控制单元(ECU)的唤醒方式是多样化的,具体的方式取决于车辆的架构、应用需求以及系统设计。以下是一些常见的车辆上的 ECU 唤醒方式:
定时唤醒: ECU 可以通过内部定时器设定唤醒时间,周期性地唤醒以执行某些任务。这对于需要定期执行任务的 ECU 是有效的。
电源线唤醒: KL15硬线触发,监测电源线上的电压变化,当检测到电压上升时,ECU 可以被唤醒。这是一种常见的低功耗模式下的唤醒方式。
网络管理唤醒: 发送网络管理报文,Autosar 标准中定义了网络管理模块,通过网络管理机制,ECU 可以在特定条件下被唤醒。