【AutoSar_PN网络管理】功能和配置方案总结(1)

本文介绍了AUTOSAR Partial Networking (PN) 的概念和功能,核心在于节能机制,允许在网络中形成部分网络集群,实现ECU的高效能源管理。文章详细阐述了PNC信息的载体、接收和发送流程,涉及CAN上的网络管理帧结构,并探讨了PNC Gateway的角色和配置。此外,还讨论了PNC信息如何在不同模块间传递,如CanTrcv、CanIf、CanNM等,并提及BswM在PNC状态变化时的仲裁作用。
摘要由CSDN通过智能技术生成

1. 简介和功能概述

PN即Partial Networking,意指部分网络或局部网络。PN的核心思想是在AUTOSAR中实施高效的能源管理,其目标是提供一种节能机制。PN允许在不需要那么多ECU工作的时候,关闭一批ECU的网络通信。其他ECU可以继续在同一总线通道(比如动力CAN)上通信。如下图,在网络中可以将ECU分成若干个小组(包含的ECU处于相同或不同的通道上),每个ECU组成一个PNC(Partial Network Cluster),也就是部分网络集群,PNC小组成员的特点是,同睡同醒
值得一提的是,每个PNC都有独立的PNC状态机,换句话说,同一个网段上可能存在多个PNC状态机。
AUTOSAR_EXP_LayeredSoftwareArchitecture(R20-11)p173


2. PNC信息传递的载体

CAN上的网络管理帧有8个字节,通常我们会占用Byte0作为NID(可在CanNM中配置),如NM报文的CanId是0x518,则NIDy应配为0x18。byte1则作为CBV位,其他的bytes称为User data,作为PNC的区域,从byte2~byte7对应PNC16-PNC63。以PNC16举例,如果这个位的值是1,就是PNC生效,部分网络唤醒,反之为0则PNC失效,部分网络休眠。
AUTOSAR_SWS_CANNetworkManagement R20-11 p33
AUTOSAR_SWS_CANNetworkManagement R20-11 p33
NM PDU 的字节1 被分配用于发送控制比特向量。其中:

  • bit0:重复消息状态请求标志(Repeat Message Request Bit)
    0:不请求重复消息状态
    1:请求重复消息状态
  • bit1:PN关闭请求位(PNSR)
    0:NM报文不包含同步PN关闭请求
    1:NM报文包含同步PN关闭请求
  • bit3:网络管理统筹睡眠标志 (NM Coordinator Sleep Bit)
    0:主统筹节点不要求开始同步关闭
    1:主统筹节点要求开始同步关闭
  • bit4:激活唤醒标志(Active Wakeup Bit)
    0:节点不唤醒网络(被动唤醒)
    1:节点唤醒网络(主动唤醒)
  • bit5:PN学习位(PNL)
    0:PNC学习未被请求
    1:PNC学习被请求
  • bit6:部分网络标志(Partial Network Information Bit)
    0:网络管理报文不包含部分网络管理请求信息
    1:网络管理报文包含部分网络管理请求信息

3. 相关模块

PNC信息的交互及作用到的模块包括:CanTrcv、CanIf、CanNM、CanSM、PduR、COM、BswM、ComM、RTE、SWC、EcuM等,如下所示
AUTOSAR_EXP_LayeredSoftwareArchitecture(R20-11)p177

4. PNC信息传递

PNC Gateway原则适用于网关节点ECU,对于网关ECU,包含多个物理通道,当PNC跨网段时,则需要将PNC信息路由到目标网段,进而实现不同网段PNC的管理。如下图, ECU7、ECU8都属于CAN 3 ,故PNC17只需在CAN3上即可。而PNC 16关联ECU3和ECU6,ECU3属于CAN 2 BUS,ECU6属于CAN 3 BUS,所以,PNC16信息需要在CAN 2 BUS和CAN 3 BUS之间路由,以便于管理PNC 16的网络状态。
在这里插入图片描述
那么,PNC16和PNC17的信息通过什么方式传递呢?EIRA和ERA信号。对于PNC17,其信息只需在同一个网段上传递EIRA信号即可。而PNC16则需要网关路由到其他网段。

此处重点说一下,PNC路由的原则。在Autosar规范中,如果使用PNC Gateway功能,需要使能配置参数ComMPncGatewayEnabled = TRUE。至于通道上能否收到其他通道的ERA信号取决于ComMPncGatewayType
:COMM_GATEWAY_TYPE_ACTIVE或者COMM_GATEWAY_TYPE_PASSIVE。那么这两者有什么区别呢?

假设:某ECU有4个节点,1个Flexray,3个Can。Flexray1和CAN3配置成COMM_GATEWAY_TYPE_PASSIVE;CAN1和CAN2配置成COMM_GATEWAY_TYPE_ACTIVE。Flexray1、CAN1、CAN2、CAN3均关联PNC16。
例1:COMM_GATEWAY_TYPE_PASSIVE节点收到PNC16 = 1,只有通道PncGatewayType配置为COMM_GATEWAY_TYPE_ACTIVE才能转发PNC16,而COMM_GATEWAY_TYPE_PASSIVE的通道不会转发PNC信息
gateway1

5. PNC信息的接收和发送

EIRA接收流程

5.1 PNC信息的接收

5.1.1 PNC信息的接收流程

PNC信息包含于User data中,上图以EIRA信号为例,说明NM报文如何传递到ComM。下图以CAN总线为例,分析一下ERA、EIRA信号如何将PNC信息从CanIf传递给ComM:
在这里插入图片描述
在这里插入图片描述

  1. CanIf : 当某个CAN节点由CAN总线接收到NM Msg以后,经由CanIf过滤CanId之后通过CanNm_RxIndication传递给CanNM。
  2. CanNM : 首先,检查CBV中的PNI bit,如PNI为1才能向上传递User Data。然后,由于PN功能的使能,且配置参数CanNmPnEraCalcEnabled = TRUE,CanNmPnEiraCalcEnabled = TRUE。CanNM模块将NM PDU中NID和CBV字节去除,并将User Data(包含PNC信息部分)映射到两种PDU:ERA PDU、EIRA PDU(在这个过程中,CanIf2CanNM_PDU为8 bytes,EIRA_CanNm2PduR_PDU 6bytes,ERA_CanNm2PduR_PDU 6bytes);
    注:网关ECU多条通道共用一个Rx_EIRA,每条通道需配置一个Rx_ERA。终端ECU只需要配置一个Rx_EIRA。
    3.PduR : CanNM通过PduR中配置的路由路径(配置为Trigger发送)将ERA PDU、EIRA PDU路由给COM模块(其间调用了PduR_CanNMIndication, Com_RxIndication);
    4.com : COM模块将接收到的ERA PDU,EIRA PDU进一步拆分成ERA Signal、EIRA Signal。在ERA Signal、EIRA Signal发生改变后,Com会调用ComM_COMCbk_去告知ComM在下一个轮询中去处理PN状态。
    5.ComM : 此时,ComM可以通过COM的标准接口Com_ReceiveSignal获取ERA、EIRA 信号中的PNC信息。
5.1.2 PNC #n值复位

当收到外部或者内部PNC #n请求时,ERA_Rx_Signal、EIRA_Rx_Signal的PNC #n =1,PnResetTimer重置(eg:2.95s),如果外部或者内部不再请求PNC #n,当ERA Timer和EIRA PnResetTimer超时,将CanNM存储的PNC #n复位(=0),并通知COM更新ERA_Rx_Signal、EIRA_Rx_Signal的PNC #n( = 0)。
注:每个通道中ERA都有独立的PnResetTimer,而EIRA信号则共用一个PnResetTimer。
PnResetTimer具体配置说明请见[^参考资料4]

5.2 PNC信息的发送

每个通道的PNC信息的发送流程如下:

  • Step1:ComM根据每个PNC的局部网络状态,调用Com_SendSignal()置位/复位COM Tx_EIRA_PDU中的PNC #n Bit;
  • Step2:每当CanNM的CANNM_MSG_CYCLE_TIME到期以后(eg:1s),CanNM触发NM Msg的发送请求(Trigger),此时CanNM的User Data部分信息为空(Empty),向PduR请求User Data, 而PduR则会向下路由Com中的Tx_EIRA_PDU至CanNM;
  • Step3:CanNM将从上层拿到的User Data和 CanNM Header(NID+CBV)组装成NM PDU,调用CanIf_Transmit()发送接口完成NM PDU的发送。如下图所示:
    pn发送流程

6. 配置说明

6.1 BswM

PNC的状态每次变化除了进入COMM_PNC_NO_COMMUNICATION,会通过BswM_ComM_CurrentPncMode()告知BswM,
故可以根据PNC的状态进行仲裁:

  • PNC状态关联某些PDU Group的关闭、打开;
  • PNC状态关联是否能够通过唤醒源验证;
  • PNC状态关联电源下电

具体的配置方案可根据需求进行设计。

6.2 其他模块配置说明

设计配置项太多了,就不一一赘述了,下表仅供参考,可以翻一下规范。

Module终端ECU配置内容网关ECU配置内容
BswM(按需求和设计方案进行配置)(按需求和设计方案进行配置)
ComMComMPncSupport = TRUE
ComMPncNmRequest = TRUE
ComMPncComSignal(EIRA_Rx)
ComMPncComSignal(EIRA_Tx)
ComMPncComSignalRef(引用Com中的信号)
ComMPncId(PNC#n)
ComMPncSupport = TRUE
ComMPncNmRequest = TRUE
ComMPncComSignal(EIRA_Rx)
ComMPncComSignal(EIRA_Tx)
ComMPncComSignalRef(引用Com中的信号)
ComMPncId(PNC#n
ComMPncGatewayEnabled = TRUE
ComMPncGatewayType = ACTIVE/PASSIVE
(由通道是否需要PNC转发决定)

在网关中可以用一个PNC mapping到多个通道
NMNMComUserDataSupport = TRUENMComUserDataSupport = TRUE
ComPduGroup_EIRA_Rx
PduGroup_EIRA_Tx
ComPdu_EIRA_Rx
ComPdu_EIRA_Tx
ComSignal_EIRA_Rx
ComSignal_EIRA_Tx
PduGroup_EIRA/ERA_Rx
PduGroup_EIRA_Tx
ComPdu_EIRA_Rx(仅有一个EIRA Pdu)
ComPdu_ERA_Rx(每条通道都有一个Pdu)
ComPdu_EIRA_Tx(每条通道都有一个Pdu)
ComSignal_EIRA_Rx*1
ComSignal_ERA_Rx*n
ComSignal_EIRA_Tx*n
PduRPduR_Routing_Path:Rx_EIRA
PduR_Routing_Path:Tx_EIRA
PduR_Routing_Path:Rx_EIRA(所有通道仅需一条path)
PduR_Routing_Path:Rx_ERA(每条通道仅需一条path)
PduR_Routing_Path:Tx_EIRA(每个通道都要Tx_EIRA path)
EcuCNM_Rx_PDU(8bytes)
Rx_EIRA_CanNM2PduR_PDU(6bytes)
Rx_EIRA_PduR2Com_PDU(6bytes)
Tx_EIRA_Com2PduR_PDU(6bytes)
Tx_EIRA_PduR2CanNM_PDU(6bytes)
NM_Tx_PDU(8bytes)
NM_Rx_PDU(每个通道都需配置)
Rx_EIRA_CanNM2PduR_PDU
(所有通道Rx_PDU聚合成一个EIRA Rx PDU,故只需配置一个)
Rx_EIRA_PduR2Com_PDU
(所有通道Rx_PDU聚合成一个EIRA Rx PDU,故只需配置一个)
Rx_ERA_CanNM2PduR_PDU
Rx_ERA_PduR2Com_PDU

Tx_EIRA_Com2PduR_PDU(每个通道都需配置)
Tx_EIRA_PduR2CanNM_PDU(每个通道都需配置)
NM_Tx_PDU(每个通道都需配置)
CanNmCanNmPnEnabled = TRUE
CanNmComUserDataSupport = TRUE
CanNmActiveWakeupBitEnabled = TRUE
CanNmNodeDetectionEnabled = TRUE
CanNmNodeIdEnabled = TRUE
CanNmPnEiraCalcEnabled = TRUE
CanNmPnInfo:配置PN信息(过滤与ECU相关的NM PDUs)
CanNmPnResetTime(CanNmMsgCycleTime<CanNmPnResetTime<CanNmTimeoutTime)
CanNmPnEiraRxNSduRef
(引用EIRA PDU_CanNM2PduR, 所有通道聚合为一个Rx EIRA)
CanNmTxUserDataPduRef(每个通道上的Tx EIRA PDU)
CanNmPnEnabled = TRUE
CanNmComUserDataSupport = TRUE
CanNmActiveWakeupBitEnabled = TRUE
CanNmNodeDetectionEnabled = TRUE
CanNmNodeIdEnabled = TRUE
CanNmPnEiraCalcEnabled = TRUE
CanNmPnInfo:配置PN信息(过滤与ECU相关的NM PDUs)
CanNmPnResetTime(CanNmMsgCycleTime<CanNmPnResetTime<CanNmTimeoutTime)
CanNmPnEiraRxNSduRef
(引用EIRA PDU_CanNM2PduR, 所有通道聚合为一个Rx EIRA)
CanNmTxUserDataPduRef(每个通道上的Tx EIRA PDU)
CanNmAllNmMessagesKeepAwake = TRUE
CanNmPnEraCalcEnabled = TRUE
CanNmPnEraRxNSduRef(每个通道都要上报ERA,故每个通道都须配置Rx ERA PDU
canIfCanIfTxPduTriggerTransmit = FALSE(与CanNmComUserDataSupport = TRUE相关)
CanIfPublicPnSupport = TRUE
CanIfTxPduTriggerTransmit = FALSE(与CanNmComUserDataSupport = TRUE相关)
CanIfPublicPnSupport = TRUE
CanSMCanSMPncSupport = TRUECanSMPncSupport = TRUE
EcuMEcuMComMPncRefEcuMComMPncRef

最后的最后,希望以后有时间更新一下使用PN的网络管理和电源管理方案~~~

7. 参考资料

1.Autosar网络管理:Partial Network基础 之 ERA/EIRA、PNC Gateway
2.AUTOSAR PNC数据流分析
3.Autosar PN网络管理:PNC信息的收/发流程
4.Autosar网络管理:CanNmPnResetTime对关联Tx PDU的发送影响
5.AUTOSAR_SWS_CANNetworkManagement (R20-11)
6.AUTOSAR_EXP_LayeredSoftwareArchitecture(R20-11)
7.AUTOSAR_SWS_COMManager(R20-11)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值