网络关闭但ECU没有休眠前如何网络唤醒

发布于 2023-5-22 11:48
浏览
0收藏

前言

最近在做CAN网络管理的工作,发现网络休眠(关闭)后在ECU系统没有休眠/下电前如果又收到了NM报文,ECU的网络没有被重新唤醒(开启),ECU系统也没有结束下电(Shutdown)流程,而是直接下电后再被唤醒,而不是我们期望的在PreShutdown到Shutdown阶段收到NM报文重回到Startup阶段。


本文就来解决这个问题。


Note: 本文中使用的是TJ1A043收发器,Vector的AUTOSAR SIP包。


AUTOSAR架构下关于CanNm的几点思考

AUTOSAR 通信协议栈的几个问题(一)

Can通信协议栈分析(1)-Can Driver

AUTOSAR网络通信问题分析

正文

1.网络休眠时的相关系统状态

在本地唤醒源(Local wake up source,一般是IGN等硬线信号)Disable掉后,User会调用ComM_RequestComMode请求ComM进入到NoCom状态,如果这个时候没有接收到NM报文,且没有收到诊断请求ComM会切换到NoCom状态,这个时候ComM会调用CanSM_RequestComMode(network:=<channel state machine’s network>, mode:= COMM_NO_COMMUNICATION)关闭Can控制器(CanDriver)的收发报文能力。

我们具体来看CanSM对Can Transceiver的操作,以及此时Transceiver的状态。

网络关闭但ECU没有休眠前如何网络唤醒 -汽车开发者社区

网络关闭但ECU没有休眠前如何网络唤醒 -汽车开发者社区

CanSM-->CanIf-->CanTrcv最终会拉低TJA1043收发器的STB_N脚,这个时候TJA1043收发器的INH脚是处于高电平状态。

网络关闭但ECU没有休眠前如何网络唤醒 -汽车开发者社区

TJA1043收发器处于Standby mode时的报文收发功能是关闭的,也就是收发器在Standby mode下是不能收发报文的。


所以这个时候,ComM处于NoCom状态,NM处于Bus Sleep状态,就算这个时候Can-Bus上有NM报文过来,Can Transceiver根本就收不到,也就是不可能让ECU系统状态机从Preshutdown跳转到Startup。


那能让Can Transceiver别不要进入到Standby Mode么?-- 不能,因为ComM进入NoCom后CanSM-->CanIf-->CanTrcv设置Transceiver进入到Standby mode这个过程是AUTOSAR静态代码自动实现的,我们不可能去改静态代码。


所以我们该怎么做才能实现网络关闭后ECU没有休眠前网络唤醒?

2.网络休眠后重新唤醒网络需要做的准备工作

要实现网络关闭后ECU没有休眠前网络唤醒需要以下必要操作:

1)配置CanIf和EcuM的Wake up validation功能。

网络关闭但ECU没有休眠前如何网络唤醒 -汽车开发者社区

2)User判断Can Transceiver进入到Standby模式后,通过CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode设置收发器到Sleep模式。

网络关闭但ECU没有休眠前如何网络唤醒 -汽车开发者社区

网络关闭但ECU没有休眠前如何网络唤醒 -汽车开发者社区

软件设置Can收发器到Sleep模式后通过硬件设计保证INH脚在Sleep模式是以低电平状态输入到MCU。


3)Can收发器进入Sleep模式后如果收到CAN报文就会使得INH脚切换到High电平状态,User通过判断INH脚从Low电平状态跳变为High状态来得知Can-Bus收到了报文,这个时候通过调用CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode设置Can Transceiver到Normal状态,这样Can Transceiver就能接收到报文了,报文就能到达CanIf模块。


4)允许网络通信CommunicationAllowed=TRUEComM,这样通过ComM_EcuM_WakeUpIndication(ChX)这个条件就能使得ComM进入到FullCom状态,如果收到的是NM报文,就能维持住网络。

3.总结

想要实现网络关闭但ECU没有休眠前网络唤醒需要通过检测TJA1043收发器的INH脚的电平状态来判断接收到Can报文,然后通过EcuM和CanIf的唤醒源校验(NM报文校验)功能来触发ComM模块切换到FullCom状态,最后ComM进入FullCom后调用CanSM接口唤醒网络,同时NM状态进入到Network Mode的Repeat Message State,整个网路开启。


参考文献:

[1]Specification of CAN Network ManagementAUTOSAR CP Release 4.3.1

[2]Specification of NetworkManagement Interface AUTOSAR CP Release 4.3.1

[3] Specification of Communication Manager AUTOSAR Release 4.2.2

[4] Specification of Basic Software Mode Manager AUTOSAR Release 4.2.2


文章转载自公众号:汽车电子嵌入式

分类
收藏
回复
举报
回复
相关推荐
这个用户很懒,还没有个人简介
贴子
已赞
声望
粉丝
关注
社区精华内容

目录