通过上篇文,我们知晓汽车上有许多控制器为了节省能源和延长电池寿命,大多都具有休眠功能。当车辆处于长时间待机状态或者很久没有使用时,汽车上的一些控制器就会进入低功耗休眠状态,在车辆重新启动时,控制器又能被唤醒以配合整车响应指令完成特定事件,如车门开关、打开雨刮器、启动车辆等。
作为一个进入车载领域短短两年半的小白菜来说,需要掌握的知识多如雨后春笋,一节更比一节长,在解析需求文档时那些名词一度让人抓耳挠腮,更别提相似度高达99%的名词定义,所以,今天我们要讨论的就是唤醒那些事儿......
一、唤醒分类
*** *** ***按照唤醒源分为:本地唤醒、远程唤醒*** *** ***
本地唤醒:唤醒源来源于自身模块,比如常说的KL15硬线唤醒或者硬件传感器信号唤醒(车门打开)等;
远程唤醒:唤醒源来源于自身ECU节点所在的网络报文,该节点处于完全休眠状态,无静电消耗
*** *** ***按照唤醒方式分为:主动唤醒、被动唤醒*** *** ***
主动唤醒:ECU上电后,如果检测到预设的本地唤醒事件,如User请求、实时时钟(RTC)定时唤醒、硬线唤醒信号(如KL15信号)或其他内部条件满足,会触发主动唤醒过程。
被动唤醒:当一个处于休眠或低功耗模式的ECU接收到网络上的特定管理报文时,就会发生被动唤醒。这些报文通常是由网络中的其他活跃节点发送的,用于指示有即将到来的数据传输需求或网络活动,需要目标ECU参与通信。
*** *** ***网络管理层对唤醒方式分为:网络主动唤醒、网络被动唤醒*** *** ***
网络主动唤醒:ECU主动参与网络通信,通过调用CanNm_NetworkRequest()
函数向网络发出一帧网络管理(NM)报文,作为唤醒过程的第一步,表示网络自己有需求去主动唤醒ECU,且第一帧是NM报文。
网络被动唤醒:由于【外界因素-KL15上电】或【CAN总线上其它节点发送唤醒请求,自身接节点对其响应】。ECU通过执行CanNm_PassiveStartUp()接口响应这些外部唤醒源,随后加入网络活动。这里的唤醒过程最初不是由网络管理报文启动,而是由应用层(APP)的数据传输需求引起,因此第一帧报文是APP报文。
需要理清的是在Autosar网络管理中 ,ECU控制器的唤醒和休眠与NM的唤醒和休眠是两个概念,当ECU控制器发生唤醒事件不一定存在网络管理唤醒,但是当发生网络管理唤醒一定存在ECU控制器被唤醒。 举个栗子:某个硬件传感器唤醒(ECU控制器唤醒)会让整车中与之关联的部分控制器被唤醒但不需要网络管理参与其中;整车上存在Autosar网络管理,当某个网络节点发送网络唤醒请求后,通过CAN总线传输到所有ECU节点(车辆启动),每个ECU都需要做出表现为控制器被唤醒。
二、常见的控制器唤醒源
2.1KL15点火信号:KL15是汽车钥匙上的ON挡位,一端连接车载+12V电源,另一端连接控制器,点火前,KL15开关断开,控制器不工作;点火后,KL15开关闭合,+12V电源使能电源管理芯片,唤醒控制器。
2.2硬线唤醒信号:KL15上电后,首先唤醒某一个控制器,然后该控制器再通过硬线信号唤醒其他控制器,在有些情况下控制器休眠后会通过其它控制器电平信号来唤醒。
2.3CAN总线唤醒:当BMS(车身状态管理系统)控制器处于休眠模式(常供电)时可以通过CAN总线唤醒,然后进入正常工作模式。BMS控制器的CAN收发器芯片需要具有总线唤醒功能。当系统需要BMS配合实现其它功能时,会有CAN节点向总线上发送特定的唤醒报文。
3.3高低电平唤醒
3.4边沿信号唤醒
三、有效唤醒源、无效唤醒源
在OESK-NM报文的协议数据单元(PDU)中,除了协议规定的源节点地址(SA)和目的节点地址(DA),控制域(CF)之外,剩下的数据区域为可选的数据区域。在OESK NM-PDU的基础上扩展,将可选的数据区域中定义两个字节的唤醒源标识符,唤醒源标识位的描述唤醒源有效,标志位置“1”,唤醒源无效,标志位置“0”;在ECU发送NM报文时会将唤醒源标识信息同步到网络管理报文中。