AUTOSAR CAN唤醒硬件方案和软件分析

本文详细介绍了AUTOSAR架构下CAN唤醒的硬件选择和软件分析,包括三种硬件唤醒方式,如RH850与TJA1042、TJA1043的组合。软件层面,通过EcuM模块管理唤醒源,EcuM_CheckWakeup和EcuM_CheckValidation进行唤醒源检查和验证。此外,讨论了Can Transceiver和Can Controller的中断与查询唤醒时序图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

唤醒源配置和管理

在AUTOSAR架构中唤醒源由EcuM模块管理,唤醒源在EcuM中配置,唤醒源的检测可以配置Polling和Interrupt两种方式,每一个唤醒源都要配置唯一的唤醒源ID,并且可以配置CheckWakeupTimeout和ValidationTimeout两个超时时间,这两个时间用来设置唤醒源检查和唤醒的最大时间。另外每一个唤醒源可以映射一个ComM管理的通道,在唤醒后可以请求ComM打开某一个通道的通信。

CAN唤醒硬件方式选择

CAN唤醒的方式和选择的Can Transceiver、ECU低功耗的处理方式(深度睡眠或掉电)等考虑因素有关,常用的硬件组合及唤醒方式如下

方式一

RH850 + TJA1042

睡眠前,使能RH850与TJA1042 RXD所连接的CAN Rx脚唤醒功能,同时复用GPIO中断,并且操作TJA1042的PIN脚,使其处于StandBy模式。

睡眠后,当TJA1042从CAN BUS收到CAN报文后,会通过RXD引起CAN Rx脚电平翻转,从而唤醒MCU

唤醒后,需要检查是否收到合法唤醒报文,否则会继续睡眠

### Autosar 主动唤醒机制 #### NM 模块的主动唤醒过程 在 AutoSAR 中,NM(Network Management)模块负责管理协调网络上的节点状态。当车辆处于休眠模式时,NM 模块会监控特定条件来触发唤醒操作。对于主动唤醒而言,NM 模块通过检测预定义的唤醒条件并发起相应的动作。 具体来说,在满足某些硬件软件设定的标准之后,比如定时器超时、传感器输入变化或者其他内部事件的发生,NM 将识别这些作为潜在的唤醒原因,并启动一系列程序使整个系统从低功耗模式恢复到正常工作状态[^1]。 ```c // C代码片段展示如何设置唤醒事件 void Nm_SetWakeupReason(Nm_WakeupReasonType reason){ /* 设置唤醒理由 */ } ``` #### ECU Manager (ECUM) 的角色 除了 NM 外部接口外,ECU Manager 也扮演着重要角色。它不仅控制着电子控制单元的整体电源管理模式,还参与到了具体的唤醒过程中。例如,在 CAN 总线上传输数据帧之前,必须先激活物理层设备如收发器至常规运行状况;此时可通过调用 `EcuM_SetWakeupEvent` 函数通知 ECUM 发起一次完整的通信准备阶段而不必进入全双工通讯模式[^3]。 ```c // 调用此函数可促使ECUM执行必要的初始化步骤以支持后续的数据交换活动 void EcuM_SetWakeupEvent(void); ``` #### Can 唤醒流程实例分析 针对基于 TJA1043 芯片组设计的具体应用场景下,CAN 接口的唤醒逻辑涉及多个层面的合作。一方面要确保底层驱动正确配置好中断服务例程以便于捕捉到来自外部世界的任何可能引起改变的因素;另一方面则需遵循标准协议栈所提供的 API 来同步各个组件之间的协作关系,从而顺利完成由静默向活跃转变的过程[^2]。 综上所述,AutoSAR 架构下的主动唤醒方案依赖于多方面因素共同作用的结果,包括但不限于上述提到的关键技术要点及其相互间的紧密配合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钢琴上的汽车软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值