【AUTOSAR-CanNM】-2.3-如何设置CBV的Bit4:Active Wakeup Bit

本文详细介绍了AUTOSAR中主动唤醒(Active Wakeup)和被动唤醒(Passive Wakeup)的概念,特别是重点解析了Active Wakeup Bit(CBV的Bit4)的理论基础及配置方法。通过NM和CanNM模块的描述,阐述了Active Wakeup Bit在唤醒汽车电子系统过程中的作用,并提供了底层实现流程和测试log图示,展示了Bit在0和1状态间的切换。

返回「《Autosar_BSW高阶配置》总目录」

案例背景(共8页精讲):该篇博文将通俗的告诉您:

  1. 什么Active Wakeup主动唤醒?
  2. 什么Passive Wakeup被动唤醒?
  3. 图解并详述CBV_Bit4:Active Wakeup Bit如何置1或0(附测试LOG图例);
  4. NM PDU“快发”过程。

目录

1 “主动唤醒”和“被动唤醒”概念

2 Active Wakeup Bit的理论基础

2.1 NM模块中的描述

2.2 CanNM模块中的描述

3 如何设置Active Wakeup Bit

3.1 CanNm模块配置

3.2 底层的实现流程

3.3 测试log图示:Active Wakeup Bit在0和1之间的切换

4 结尾


关键字:
Active Wakeup主动唤醒
Passive Wakeup被动唤醒
CBV:Control Bit Vector
Active Wakeup Bit / ActiveWakeupBit
Nm_PassiveStartUp
CanNm_PassiveStartUp
Nm_NetworkRequest
CanNm_NetworkRequest
COMM_FULL_COMMUNICATION
Nm_NetworkRelease
NmPassiveModeEnabl

### CanNm与Nm模块配置详解 在AUTOSAR架构中,CanNm和Nm模块是实现网络管理功能的关键组成部分。这些模块负责协调不同总线系统之间的通信状态,确保网络资源的有效利用并支持节能操作。 #### 配置基础 在进行CanNm和Nm模块的配置之前,需要明确几个基本概念: - **Nm模块**:作为网络管理的核心组件,它位于AUTOSAR通信服务层,向上与ComM交互,向下控制各总线网络管理模块,为ComM提供统一的网络管理功能。 - **CanNm模块**:专用于CAN总线上的网络管理,它是Nm模块的一个具体实现实例,负责实际执行网络管理任务[^1]。 #### 配置参数 配置过程中涉及多个关键参数,其中一些包括: - `CanNmRemoteSleepIndEnabled`:此参数决定了如果CanNm模块在指定时间内未接收到处于正常操作状态的NM PDU,则应调用回调函数`Nm_RemoteSleepIndication`以指示远程节点可能已经进入睡眠模式[^3]。 - Partial Network (PN) 配置:允许车辆中的某些部分在网络不需要完全活动时保持低功耗状态。 - Wakeup配置:定义了如何通过特定信号唤醒休眠的网络节点。 #### 设置指南 为了正确设置CanNm和Nm模块,遵循以下步骤可以确保配置过程顺利进行: 1. **需求分析**:理解应用需求,确定是否需要支持Partial Network或Wakeup等功能。 2. **选择合适的配置工具**:使用符合AUTOSAR标准的配置工具来编辑Nm和CanNm模块的配置文件。 3. **定义网络拓扑**:根据实际硬件布局,在配置中指定所有相关的ECU及其连接关系。 4. **设定超时值**:基于网络延迟和其他因素,合理设置如`CanNmRemoteSleepIndEnabled`等参数的时间阈值。 5. **集成回调函数**:为处理远程睡眠指示等事件,需将相应的回调函数注册到CanNm模块中。 6. **测试验证**:完成配置后,进行全面测试以确认网络管理行为符合预期。 ```c // 示例代码展示如何启用远程睡眠指示功能 void ConfigureCanNmRemoteSleep(void) { // 启用远程睡眠指示功能 CanNmRemoteSleepIndEnabled = TRUE; // 设置无NM PDU接收的最大等待时间(单位通常是毫秒) CanNmNoNMMessageTimeout = 5000; // 假设为5秒 // 注册回调函数 Nm_RegisterRemoteSleepCallback(&HandleRemoteSleep); } // 回调函数原型声明 void HandleRemoteSleep(NetworkHandleType networkHandle); ``` 以上示例代码展示了如何启用远程睡眠指示功能,并设置了无NM PDU接收的最大等待时间,以及注册了一个处理远程睡眠事件的回调函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汽车电子助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值