0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

832065824 来源:汽车电子嵌入式 2023-03-29 09:06 次阅读

前言

最近在做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,整个网路开启。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    2971

    浏览量

    104779
  • AUTOSAR
    +关注

    关注

    9

    文章

    329

    浏览量

    21136
  • ecu
    ecu
    +关注

    关注

    14

    文章

    821

    浏览量

    53885
  • CAN网络
    +关注

    关注

    1

    文章

    42

    浏览量

    16776

原文标题:网络关闭但ECU没有休眠前如何网络唤醒

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电动汽车的ECU进入休眠后,目前有3种唤醒模式,CAN总线和AC电压的唤醒设计原理是什么?

    电动汽车的ECU进入休眠后,目前有3种唤醒模式,我想知道CAN总线和AC电压的唤醒设计原理是什么?
    发表于 02-02 06:19

    cc2530休眠唤醒后各个模块寄存器的值有变化吗?

    做zigbee协议cc2530低功耗编程时有以下疑问请帮忙解答一下:1.休眠唤醒后各个模块寄存器的值有变化吗?尤其是串口。2.串口要进入休眠状态需要哪些设置?一定要中断模式吗?DM
    发表于 04-01 17:53

    Zigbee 怎么实现没有网络就进入休眠的功能

    本帖最后由 冒汗的心情 于 2016-4-27 09:14 编辑 在Zigbee网路想实现一个功能,如果终端上电周围没有网络可以加入,就进入休眠,下次上电再继续加入网络,如果
    发表于 04-26 10:19

    如果设备加入到网络后,在休眠后怎么检测到协调器掉网?

    TI工程师,你们好,我现在有一个终端节点,想做低功耗,现在有几个问题想请教下,谢谢!1、如果设备在没有加入网络的状态下,怎么让设备进入到休眠,然后定时唤醒和按键中断唤醒。2、如果设备加
    发表于 08-05 14:21

    如何实现局部网络休眠唤醒机制?

    局部网络管理是什么?局部网络(PN)管理的优势有哪些?如何实现局部网络休眠唤醒机制?
    发表于 04-19 07:42

    无os的LwIP在TCP server历程中如何进行网络数据发送

    无os的LwIP在TCP server历程中如何进行网络数据发送?开启LWIP的调试功能主要的设置步骤有哪些?
    发表于 11-04 06:47

    ECU是怎么启动或关闭ECU启动方式有没有一般规律

    前言当你看到ECU从启动状态至正常运行状态,再从正常运行状态至休眠关闭的过程时,你是否曾想过以下一些问题ECU是怎么启动或
    发表于 02-10 06:07

    CH582M freeRTOS如何实现休眠休眠后如何唤醒

    有以下以后望解答:如何实现休眠休眠后如何唤醒?目前尝试用裸机例程中的休眠函数,仅LowPower_Shutdown(0); 可以正常睡眠并且成功
    发表于 08-01 06:19

    LM3S系列单片机休眠与深度休眠应用笔记

    介绍 LM3S 系列单片机如何进休眠或深度休眠模式,以及休眠后如何唤醒
    发表于 11-07 13:57 35次下载

    基于冗余节点休眠和分阶段唤醒策略的传感器网络三维覆盖控制方法

    该文针对无线传感器网络中节点能量有限且密集布点时存在大量冗余节点的情况,提出了基于冗余节点休眠和分阶段唤醒策略的无线传感器网络3 维覆盖控制方法。在3 维待监测区域
    发表于 02-09 15:49 12次下载

    MSP430休眠唤醒装置设计详析

    针对矿用救灾指挥装置网络视频服务器采用电池供电工作时间短的缺点, 采用 MSP430 低功耗单片机设计了一种休眠唤醒装置, 实现了网络视频服务器的
    发表于 04-24 14:27 14次下载
    MSP430<b class='flag-5'>休眠</b><b class='flag-5'>唤醒</b>装置设计详析

    ECU休眠网络唤醒时间怎么测?

    t0时刻,使用仿真设备(CANoe/PCan/ZLG等)发送一帧或者连续多帧有效的网络管理报文;
    的头像 发表于 08-29 17:28 3794次阅读
    <b class='flag-5'>ECU</b>从<b class='flag-5'>休眠</b>到<b class='flag-5'>网络</b><b class='flag-5'>唤醒</b>时间怎么测?

    ECU系统休眠后通过诊断报文唤醒ECU唤醒网络

    ECU系统休眠后TJA1043的INH脚处于floating高阻态,系统休眠后通过硬件外部电路下拉到低电平状态/Low-level,ECU系统休眠
    的头像 发表于 04-04 09:40 6011次阅读

    ECU系统休眠后通过诊断报文唤醒ECU唤醒网络后快发NM报文

    一文中我们分析并实现了通过诊断报文
    的头像 发表于 05-09 09:36 3471次阅读
    <b class='flag-5'>ECU</b>系统<b class='flag-5'>休眠</b>后通过诊断报文<b class='flag-5'>唤醒</b><b class='flag-5'>ECU</b>且<b class='flag-5'>唤醒</b><b class='flag-5'>网络</b>后快发NM报文

    理一理AUTOSAR架构下的唤醒源事件

    最近的项目负责网络管理部分,网路唤醒ECU系统的休眠关系紧密,对系统的唤醒源事件感觉理解的不是很透彻,今天就来理一理AUTOSAR架构下的
    的头像 发表于 07-14 09:11 1612次阅读
    理一理AUTOSAR架构下的<b class='flag-5'>唤醒</b>源事件