Autosar BSW 之模式管理(3) NM

本文详细介绍了Autosar中的网络管理(NM)状态,包括睡眠模式、预休眠模式、重复报文状态、正常工作状态和准备睡眠状态,并探讨了时间参数、NM类型、唤醒方式、PDU格式以及协调器的角色。通过理解这些概念,读者可以更好地掌握ECU在不同状态下的通信行为和节能管理。

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

1. PNC/VFC

  • PNC:部分网络簇,在整车网络中,某些功能需要多个节点参与,节点之间通过信息交互(Signal:信号,包含在PDU中)实现功能。这几个节点就是一个簇(Cluster),这个簇映射到网络信号User Data中的一个Bit位,此Bit位置位与否标识着对应功能是否要启用或者禁止。所以,不同的PNC #n表示不同的网络簇,意味着对应的ECU是否需要通信。

  • VFC:虚拟功能簇。SWC之间通过Port交互信息,实现一个或者多个车辆功能。需要使能某个功能时,通过特定的SWC(VFC-Controller)置位VFC #n( = 1)即可请求对应的通信功能,使得不同SWC之间可以交互信息,对应功能开启;如果不需要某个功能时,复位对应的VFC #n( = 0 )即可关闭通信,功能禁止。VFC #n状态信息可以通过RTE Port传递给BSW。

PNC通讯流程

VFC对应功能,PNC对应局部网络,功能的启用和禁止依附于对应局部网络激活与否

暂时无法在飞书文档外展示此内容

2. NM State

2.1 睡眠模式(Bus-Sleep Mode)

休眠状态,当ECU没有本地网络唤醒源以及远程唤醒请求源时,控制器就会进入此睡眠模式,ECU在该状态下就是一个低功耗的状态,大部分耗电外设均已经关闭,仅仅留下一些唤醒源的检测,此模式下NM报文只收不发,APP报文不收不发,这是整车上所有ECU的协同睡眠状态,当ECU上电初始化时默认进入该状态。

2.2 预休眠模式(Prepare Bus-Sleep Mode)

准备进入休眠的一个状态,APP报文不收不发,NM报文只收不发,ECU进入到这个状态时处于只收NM帧的状态,它会等待一段时间 T_WAIT_BUS_SLEEP让车上所有的ECU实现一起休眠

2.3 重复报文状态(Repeat Message State,RMS)

NM报文可收可发,APP报文可收可发

  • Normal immediate state :以快速周期(immediateNMCycleTime)发送N(immediateNM_times)次NM帧,发送完进入Normal Transmit State

  • Normal Transmit State:正常周期(MessageCycleTime)发送NM报文

2.4 正常工作状态(Normal Operation State,NOS)

此状态下NM报文可收可发,APP报文可收可发,NOS可以说明ECU处于一种真正的唤醒状态,可正常进行通讯。

2.5 准备睡眠状态(Ready Sleep State,RSS)

从工作状态准备进入休眠时必须要经过这个状态,主要是做休眠之前的一些准备工作,就比如说有些数据要存储EEPROM还在写操作中,ESCL电子转向柱锁解闭锁动作还未完成,也有可能是电机控制器检测到电机未处于停止状态,也就是说这个状态是要让休眠前的准备工作都要完成即ECU的外设要都处于空闲的状态,在RSS状态时NM报文只收不发,APP报文可收可发

3. 时间参数

  • T_REPEAT_MESSAGE:RMS状态保持最长时间

  • T_NM_TIMEOUT:NM模式最长保持时间

  • T_WAIT_BUS_SLEEP:确保节点停止所有活动定时器,预休眠最大时间

  • T_STARTTX_AppFrame:发送NM报文后延迟发送APP报文间隔

  • T_NM_ImmediateCycleTime:快速发送网络报文周期时间

  • T_NM_MessageCycle:正常周期网络报文发送时间

  • T_START_NM_TX:进入RMS状态第一帧NM报文发送时间

  • T_WakeUp:NM报文最大发送间隔

  • T_MESSAGE_TIMEOUT:NM报文发送超时时间

4. NM类型

  • FULL:该通道具备网络管理模块的所有功能,因此本 ECU 具备保持总线唤醒的能力,同时可以由 NM 向 ComM 模块指示何时进入网络同步休眠状态。

  • PASSIVE:该通道的网络管理模块处于 PASSIVE 模式,即本身只接收网络管理报文,但不向外发送网络管理报文。本 ECU 不具备保持总线唤醒的能力,但可以根据其他 ECU的网络管理报文,向 ComM 模块指示进入网络同步休眠状态。

  • LIGHT:该通道不具有网络管理模块,因此不会接收或发送网络管理报文。但可以通过配置定时器,在没有通信需求的一段时间以后自动进入休眠状态。该配置项一般用于需要延迟休眠的场景。

  • NONE:该通道不具有网络管理模块,因此不会接收或发送网络管理报文。一旦进入FULL_COM模式就不会退出,也不会自动进入休眠状态,只有通过 ECU 电源才能控制网络关闭。

5. 唤醒方式

  • 主动唤醒源:承担着主动唤醒网络责任的唤醒源。比如:KL15硬线,User请求,ERA信号等。

  • 被动唤醒源:不需要承担唤醒网络责任的唤醒源。比如:收到NM Msg。

  • 主动唤醒:由主动唤醒源触发,调用CanNm_NetworkRequest()接口唤醒网络的方式称为网络主动唤醒。

处于休眠状态的主板,在由主动唤醒源唤醒后,会从 Bus-Sleep 模式切换到Network 模式的Repeat state,进行快发报文,以 CanNmImmediateNmCycleTime(例:20ms) 为周期,发送 CanNmImmediateNmTransmissions(例:10) 次,之后进入慢发报文,以 CanNmMsgCycleTime(例:200ms) 为周期,在Repeat Message Timer(例:1000ms)定时器到时时跳转到 Normal State,在此状态会一直发NM报文和应用报文,当满足休眠条件则切换到 Ready state,此时主板不会再发送NM报文,只会发送APP应用报文。

  • 被动唤醒:由被动唤醒源触发,调用CanNm_PassiveStartUp()接口唤醒网络的方式称为网络被动唤醒。

处于休眠状态的主板,在收到NM报文唤醒时,会从 Bus-Sleep 模式切换到Network 模式的Repeat state,进行慢发NM报文,以 CanNmMsgCycleTime(例:200ms) 为周期,在Repeat Message Timer(例:1000ms)定时器到时时跳转到 Ready state, 此时主板不会再发送NM报文,只会发送APP应用报文。

6. PDU格式

6.1 字节流

Byte0

Byte1

Byte2

Byte3

Byte4

Byte5

Byte6

Byte7

NodeId

CBV

UserData1

UserData2

UserData3

PnIfo1

UserData4

PnIfo2

UserData5

UserData6

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Rsv

Partial Network Information

Partial Network Learnin

Active WakeUp

NM Coordinat

Or Sleep Ready

Rsv

PN Shutdown Request

Repeat Message

  • CBV_Bit0:重复消息状态请求标志(Repeat Message Request Bit)

    • 0:不请求重复消息状态

    • 1:请求重复消息状态

  • CBV_Bit1:PN关闭请求位(PNSR)

    • 0:NM报文不包含同步PN关闭请求

    • 1:NM报文包含同步PN关闭请求

  • CBV_Bit3:网络管理统筹睡眠标志 (NM Coordinator Sleep Bit)

    • 0:主统筹节点不要求开始同步关闭

    • 1:主统筹节点要求开始同步关闭

  • CBV_Bit4:激活唤醒标志(Active Wakeup Bit)

    • 0:节点不唤醒网络(被动唤醒)

    • 1:节点唤醒网络(主动唤醒)

  • CBV_Bit5:PN学习位(PNL)

    • 0:PNC学习未被请求

    • 1:PNC学习被请求

  • CBV_Bit6:部分网络标志(Partial Network Information Bit)

    • 0:网络管理报文不包含部分网络管理请求信息

    • 1:网络管理报文包含部分网络管理请求信息

6.2 过滤算法

  • CanNmPnInfoOffset = 4,Pn Info在PDU中偏移的距离

  • CanNmPnInfoLength = 2,Pn Info在PDU中的长度

  • CanNmPnFilterMaskByteIndex= 0,设置CanNmPnFilterMaskByteValue = 0x01;

  • CanNmPnFilterMaskByteIndex= 1,设置CanNmPnFilterMaskByteValue = 0x97。

7. ERA/EIRA

ERA:可以理解为外部PN请求,比如:接收到其他ECU发送来的网络管理报文,PNI置位,PNC有效。

EIRA:可以理解为外部PN请求和内部PN请求,外部PN请求和ERA一样,内部PN请求可以理解为不同channel转发过来的PN请求。

内部请求实际是通过signal走COM传递给ComM,这里简单提一下,后面我们在讨论ComM和PN的关系。可以把ERA和EIRA看作信号,通过COM层标准收发接口进行信息交互。既然依赖COM,那么CanNM此时可以看作底层模块,通过PduR_CanNmRxIndication()接口通知到PDUR,PDUR再路由给COM模块,之后ComM通过COM层信号接口获取PN请求的状态信息。

8. UserData

  • CDD直接访问,不能使能PN

    • CanNmComUserDataSupport配置为False

    • CanNmUserDataEnabled配置为True

    • NmComUserDataSupport配置为False

    • NmUserDataEnable配置为True

  • SWC->RTE->COM访问

    • CanNmComUserDataSupport配置为True

    • CanNmUserDataEnabled配置为True

    • NmComUserDataSupport配置为True

    • NmUserDataEnable配置为True

9. Coordinator(协调器)

NM模块使用协调算法协调连接到ECU的所有或一个或多个独立网络子集NM的关闭。执行NM协调功能的NM被认为是NM Coordinator。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丶小破孩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值