全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

网络关闭但ECU没有休眠前如何进行网络唤醒呢?

时间:2023-03-29 09:06

人气:

作者:admin

标签: AUTOSAR  ecu  CAN网络  收发器 

导读:最近在做CAN网络管理的工作,发现网络休眠(关闭)后在ECU系统没有休眠/下电前如果又收到了NM报文,ECU的网络没有被重新唤醒(开启)...

前言

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

正文

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

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

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

1dae6d16-cdc6-11ed-bfe3-dac502259ad0.png

1db61732-cdc6-11ed-bfe3-dac502259ad0.png

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

1dcd7f94-cdc6-11ed-bfe3-dac502259ad0.png

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功能。

1de4ab2e-cdc6-11ed-bfe3-dac502259ad0.png

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

1df38b26-cdc6-11ed-bfe3-dac502259ad0.png

1e0cf99e-cdc6-11ed-bfe3-dac502259ad0.png

软件设置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,整个网路开启。







审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信