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

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

3天内不再提示

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

832065824 来源:汽车电子嵌入式 2023-04-04 09:40 次阅读

前言

最近遇到一个特殊需求:在ECU系统休眠后需要通过网络管理报文和诊断报文唤醒网络,但是应用报文不能唤醒网络。通常情况下,在ECU系统休眠后,AUTOSAR架构中只能配置通过网络管理报文唤醒网络或者所有报文都能唤醒网络,没有单独的诊断报文唤醒网络的配置。那在AUTOSAR架构下如何来实现这个功能了?

本文先详细介绍这个需求在AUTOSAR架构下遇到的问题,然后再给出一个具体的解决办法。

Note: 使用Vector的工具,以及TJA1043的CAN收发器

正文

1.面临的问题

1.1 TJA1043的INH脚唤醒事件

ECU系统休眠后TJA1043的INH脚处于floating高阻态,系统休眠后通过硬件外部电路下拉到低电平状态/Low-level,ECU系统休眠前把TJA1043的INH脚配置为唤醒脚,系统休眠后如果收到任意的CAN报文,TJA1043的INH脚会被拉高,产生CAN收发器的硬件唤醒事件(Low-Level to High-Level)。如果ECU系统是断电系统,那么INH脚应该接在SBC上,因为SBC是常电状态,检测到INH的唤醒事件后就会给ECU-MCU供电,MCU冷启动。如果是ECU系统是常电系统,INH脚应该接到MCU的一个中断唤醒脚上,检测到INH的唤醒事件后,中断唤醒MCU,MCU中的软件可以选择继续跑,也可以通过软件Reset后重新热启动。

参考文章:关于CanTrcv模块的几点思考

总之,无论是断电系统还是常电系统,在ECU系统休眠后,任意的CAN报文都能唤醒ECU。

1.2 EcuM配置网络唤醒

实现网络唤醒,需要在EcuM模块中配置唤醒源,同时配置唤醒源检测。

f562821e-d27c-11ed-bfe3-dac502259ad0.png

开启EcuM的网络唤醒源校验Validation后需要User实现三个Callout函数函数:

1) EcuM_StartWakeupSources(EcuM_WakeupSourceType);

2) EcuM_StopWakeupSources(EcuM_WakeupSourceType);

3) EcuM_CheckValidation(EcuM_WakeupSourceType);

f5805816-d27c-11ed-bfe3-dac502259ad0.png

f5af4da6-d27c-11ed-bfe3-dac502259ad0.png

参考文章:AUTOSAR架构下关于CanNm的几点思考

1.3 CanIf配置唤醒报文过滤

CanIf中可以配置Wakeup Check Valition,有两种配置可选:

1)所有报文可以通过校验

2)只有NM报文可以通过校验

f5d2d4c4-d27c-11ed-bfe3-dac502259ad0.png

1.4ComM网络唤醒

EcuM调用CanIf接口校验网络唤醒源成功后,EcuM就会调用ComM_EcuM_WakeUpIndication请求通信,ComM在CommunicationAlllowed后就会调转到Full Com状态开启网络。

f5ed4aac-d27c-11ed-bfe3-dac502259ad0.png

参考文章:AUTOSAR网络通信问题分析

1.5诊断报文唤醒面临的问题

我们的需求是:在ECU系统休眠后需要通过网络管理报文和诊断报文唤醒网络,但是应用报文不能唤醒网络。

但是从上文中我们可以得知:

1)如果CanIf配置为所有报文可以校验通过,那么应用报文也会通过校验,从而唤醒网络。

2)如果CanIf配置为只有NM报文可以通过校验,那么诊断报文也就不能通过校验, 从而诊断报文不能唤醒网络。

3)只要ECU被唤醒后,因为程序已经跑起来了,理论上肯定可以让诊断报文来唤醒网络的,但是在AUTOSAR架构下没有提供这个配置,代码框架已经被限制,要实现这个功能就不知道在哪里实现。

也就是说,在AUTOSAR架构下按通常配置是无法实现ECU系统休眠后需要通过网络管理报文和诊断报文唤醒网络,但是应用报文不能唤醒网络的。

2.解决的办法

如果能想办法在EcuM调用CanIf_CheckValication的时候能让诊断报文通过校验(NM报文也通过校验,应用报文不能通过校验)就能解决这个问题。

审核编辑 :李倩

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

    关注

    10

    文章

    2968

    浏览量

    104775
  • AUTOSAR
    +关注

    关注

    9

    文章

    329

    浏览量

    21130
  • ecu
    ecu
    +关注

    关注

    14

    文章

    821

    浏览量

    53883

原文标题:ECU系统休眠后通过诊断报文唤醒ECU且唤醒网络

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

收藏 人收藏

    评论

    相关推荐

    CAN总线指定帧唤醒的硬件实现方式

    CAN的指定帧唤醒是一种网络管理的场景,对于我这个偏硬件的工程师来说,网络管理也就是通过CAN来唤醒不同的
    发表于 03-07 09:17 7424次阅读

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

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

    CANoe:网络ECU开发、测试和分析的专业工具

    规范/集成/回归测试 仿真ECU诊断功能 针对好的/坏的测试用例,访问所有级别诊断通信(CAN报文,传输协议和诊断服务)的能力仿真和残余总
    发表于 10-09 17:42

    ECU的静态电流

    谁能帮忙解释下ECU的静态电流是指ECU处在什么状态时候的耗电量?是指在上电状态,但是输入输出还没工作时的耗电量吗?比如发动机ECU,钥匙打在Key on还没启动的时候的状态?这和芯片处于休眠
    发表于 06-27 09:37

    汽车ECU的低功耗高性能实现

    在需要时能及时唤醒。比如当车速超过30Km/H时则完全可以关闭倒车雷达。其实CAN收发器可以工作在深度睡眠模式(参见ISO11898-6),只有当接收到一个特定的CAN报文收发器才会唤醒
    发表于 05-10 04:23

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

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

    电脑休眠唤醒来相关资料推荐

    老板让写一个流氓软件,客户必须装,而且要一直登陆,电脑休眠唤醒来,等待本地网络连接上,就让他执行在线登陆,网上找的很好用! public partial class App
    发表于 01-03 07:35

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

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

    常用的通过按键唤醒休眠系统怎么实现?

    请教各位高人,实测新唐N76E003 的外部中断INT0及INT1好像跟TIME0和TIME1有联系,在空闲模式和掉电模式下,关掉TIME0和TIME1 外部中断INT0及INT1也跟着关掉了。 那么问题来了:常用的通过按键唤醒休眠
    发表于 06-14 07:18

    如何通过外部事件快速唤醒MCU

    如何通过外部事件快速唤醒基于 Cortex M0+的 MCU 简介 Microchip 的基于 32 位 Arm Cortex-M0+的单片机具有通过空闲、待机、备用和关断等不同休眠
    的头像 发表于 09-30 10:31 3551次阅读

    EcuM是如何知道有唤醒事件呢?

     EcuM主函数会轮询检测底层上报的唤醒事件,如果想进一步的分析唤醒事件是不是有效的总线唤醒源(网络管理报文),需要
    的头像 发表于 08-23 11:39 4336次阅读
    EcuM是如何知道有<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没有休眠前如何进行网络唤醒呢?

    最近在做CAN网络管理的工作,发现网络休眠(关闭)后在ECU系统没有休眠/下电前如果又收到了NM
    的头像 发表于 03-29 09:06 1962次阅读

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

    的头像 发表于 05-09 09:36 3458次阅读
    <b class='flag-5'>ECU</b><b class='flag-5'>系统</b><b class='flag-5'>休眠</b>后<b class='flag-5'>通过</b><b class='flag-5'>诊断</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<b class='flag-5'>报文</b>

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

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