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

    文章

    3404

    浏览量

    105903
  • AUTOSAR
    +关注

    关注

    10

    文章

    350

    浏览量

    21491
  • ecu
    ecu
    +关注

    关注

    14

    文章

    881

    浏览量

    54433

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    干货分享 | TSMaster—LIN 唤醒休眠机制

    在汽车总线中常见的唤醒方式有硬线唤醒网络唤醒和特定信号唤醒,而LIN总线则是通过
    的头像 发表于 09-25 08:03 1425次阅读
    干货分享 | TSMaster—LIN <b class='flag-5'>唤醒</b>与<b class='flag-5'>休眠</b>机制

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

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

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

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

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

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

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

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

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

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

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

     EcuM主函数会轮询检测底层上报的唤醒事件,如果想进一步的分析唤醒事件是不是有效的总线唤醒源(网络管理报文),需要
    的头像 发表于 08-23 11:39 4998次阅读
    EcuM是如何知道有<b class='flag-5'>唤醒</b>事件呢?

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

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

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

    最近在做CAN网络管理的工作,发现网络休眠(关闭)ECU系统没有
    的头像 发表于 03-29 09:06 2940次阅读

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

    的头像 发表于 05-09 09:36 5405次阅读
    <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'>唤醒</b><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>快发NM<b class='flag-5'>报文</b>

    LIN休眠唤醒及测试心得

    这次我们的介绍主题是LIN休眠唤醒,一起看看标准和差异性,开发和测试的关系,实际的案例分享也来了。
    的头像 发表于 11-23 08:43 1135次阅读
    LIN<b class='flag-5'>休眠</b><b class='flag-5'>唤醒</b>及测试心得

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

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

    简化ECU中具有选择性唤醒功能的隔离式CAN设计

    电子发烧友网站提供《简化ECU中具有选择性唤醒功能的隔离式CAN设计.pdf》资料免费下载
    发表于 09-06 11:15 0次下载
    简化<b class='flag-5'>ECU</b>中具有选择性<b class='flag-5'>唤醒</b>功能的隔离式CAN设计

    ECU故障诊断工具 如何选择合适的ECU

    在现代汽车维修领域,电子控制单元(ECU)扮演着核心角色,负责管理车辆的多种功能。 1. 了解ECU故障诊断工具的基本功能 ECU故障诊断
    的头像 发表于 11-05 10:23 213次阅读