PNC和VFC介绍

PNC与VFC:从功能到网络

PNC(Partial Network Cluster,部分网络集群)和VFC(Virtual Function Cluster,虚拟功能簇),是实现车辆“按需通信、节能降耗”的关键概念。

你可以这样理解二者的关系:VFC是应用层的“逻辑功能组”,而PNC是实现该功能的“物理通信组”

概念全称定位核心目的示例
VFCVirtual Function Cluster应用/软件架构层将实现一个或多个车辆功能的软件组件(SWC)及其通信端口进行逻辑分组。“智能大灯”功能,可能涉及车身控制器、灯光控制器等多个SWC的交互。
PNCPartial Network Cluster网络通信层将分布在多个ECU上、为实现特定功能所必需的系统信号进行分组,并映射到网络管理报文中。为了实现“智能大灯”,需要保持车身CAN总线上ECU A、B、C之间的网络通信,这三个ECU构成PNC 16。

两者的映射关系是灵活的:

  • 一个VFC可以映射一个PNC:单一功能对应一个网络簇。
  • 一个VFC可以映射多个PNC:复杂功能需要多个总线上的ECU协同(例如,涉及动力CAN和车身CAN)。
  • 多个VFC可以映射一个PNC:多个功能共享同一组ECU的网络资源。

核心实现模块与数据流

实现PNC/VFC管理,依赖于AUTOSAR通信栈和模式管理模块的协同工作。下图清晰地展示了从“功能请求”到“网络报文收发”的完整流程及核心模块:

ComM模块:两级状态机与PNC控制核心

ComM模块是网络通信的“总开关”,它管理两个层级的状态:通道状态PNC状态

  • 通道状态:指一条物理总线(如CAN总线)的整体通信状态,由该总线上所有ECU的网络管理协同决定。

  • PNC状态:指一个具体部分网络簇的通信状态,由ComM根据内部和外部请求独立管理。

通道状态机:决定总线“上下电”

下图展示了一条通信通道(如CAN通道)在ComM管理下的核心状态转换逻辑:

关键点

  • **NO_COMMUNICATION**:通道关闭,无法收发应用数据。
  • **FULL_COMMUNICATION**:通道完全激活。进入此状态,意味着上层CanNm模块已成功将节点加入网络(进入NM Repeat Message State),网络已“唤醒”。
  • SILENT_COMMUNICATION(可选):某些实现中,这是一个仅能监听网络管理报文,但不能发送应用报文的中间状态,用于网关监听其他网络的状态。

触发转换的核心API

  • ComM_RequestComMode(Channel, COMM_FULL_COMMUNICATION):应用层(通过RTE)请求打开通信。
  • ComM_ReleaseComMode(Channel):应用层释放通信请求。

PNC状态机:实现“按需通信”

每个PNC都有自己的状态机,其转换主要受应用层请求外部网络请求影响。

关键行为:接收应用层的通信请求,将其转换为对特定PNC的网络请求;同时,处理从网络接收到的外部PNC请求(ERA/EIRA),并通知BswM。

关键点与关键配置

  • **PNC_REQUESTED**:这是功能活跃状态。一旦进入,ComM会通知BswM,从而可能触发相关应用报文的收发。
  • PNC_READY_SLEEP:这是一个关键的“延时关闭”状态。当所有请求释放后,PNC不会立即关闭,而是等待一个PNC复位定时器(CanNmPnResetTime 超时。这避免了因短暂、频繁的请求造成的网络振荡。
  • **PNC_NO_COMMUNICATION**:PNC休眠状态,无相关通信。

核心定时器配置(在CanNm模块中)

  • CanNmPnResetTime必须小于网络管理超时时间CanNmTimeoutTime。这是设计的关键!目的是确保一个PNC的本地复位先于网络超时发生,从而在节点需要进入睡眠时,能提前在NM报文中清除该PNC位,通知其他节点。

BswM模块:基于规则的执行器

BswM本身没有复杂状态机,它监听ComM报告的PNC状态变化,并根据预配置的规则和动作来执行相应操作。

工作流程与配置示例

  1. 监听:BswM配置为监听来自ComM的“PNC状态变化”事件。
  2. 裁决:配置一条规则,例如:“如果 PNC_16 的状态变为 REQUESTED 执行动作 Action_SetIPduGroup(IPduGroup_Lighting, ON)”。
  3. 执行:BswM调用Com_IpduGroupControl服务,启动或停止与该PNC关联的一组应用报文(I-PDU Group)的发送/接收。

关键配置

  • 规则表(Rule Table):定义事件与动作的逻辑映射。
  • 仲裁逻辑(Arbitration):当多条规则同时触发时,决定执行顺序(如顺序执行、优先级仲裁)。

CanNm模块:PNC的网络载体配置

CanNm的配置确保PNC信息能被正确编码到网络管理报文中。

核心作用:负责将PNC信息(如PNC #16 = 1)承载到CAN网络管理报文(NM PDU)的User Data特定比特位中,并在总线上收发。

关键行为

  • 发送:从上层获取PNC位图(EIRA信号),与节点ID、控制位向量(CBV)组装成完整的NM PDU发出。CBV中的Partial Network Information (PNI)位必须置1,才表示此报文包含有效PNC信息。
  • 接收:解析收到的NM PDU,检查PNI位。若有效,则提取PNC位图,并向上层传递(ERA/EIRA信号)。

关键数据结构与配置

  1. PNC位图定义

    • CanNm配置中,为每个PNC分配一个唯一的位索引(Bit Position, 通常为0-63)
    • 例如,PNC_16 对应 User Data 字节数组的第1字节(bit 0-7)中的第0位(LSB)。需要在CanNmPnInfo容器中正确关联PnIdPnIndex
  2. PNC网络管理向量(CBV)配置

    • CanNmNmPdu配置中,必须**启用PnEnabled并设置PnIndex**,以告知模块PNC信息存储在NM PDU的哪个字节/位区域。
    • 最重要的是,必须将 PNI (Partial Network Information)(在控制位向量CBV中)设置为1。这是接收方判断该NM PDU是否携带有效PNC信息的唯一标志。PNI=0,则接收方会忽略所有PNC位。

COM与PduR:PNC信息的信号级路由通道

  • COM作用:将PNC信息以信号(Signal)的形式进行管理。发送时,将ComM的PNC状态组帧成EIRA PDU;接收时,从NM PDU中解析出ERA/EIRA信号,并通知ComM。
  • PduR作用:在CanNm和COM之间,为承载PNC信息的PDU(如EIRA_PDUERA_PDU)提供确定的路由路径。

关键补充说明

  • ERA与EIRA信号:这是PNC信息在模块间传递的载体。
    • ERA(External Request Array):纯粹的外部请求,即从其他节点NM报文解析出的PNC位图。
    • EIRA(External Internal Request Array):外部请求与内部请求(本节点其他通道转发或应用层请求)的综合结果,是决定本节点最终PNC状态的依据。
  • 网关节点:对于连接多条总线的网关ECU,其ComM模块可以配置PNC Gateway功能,将某个PNC的信息在不同总线通道间进行路由转发,从而实现跨网络的PNC协调。

配置与实践要点

  • PNC状态机与定时器:每个PNC都有独立的状态机,由ComM管理。关键的CanNmPnResetTime定时器决定了PNC位在网络管理报文中保持置位的时间,其配置需小于网络超时时间CanNmTimeoutTime,以避免异常。
  • 配置一致性:一个ECU可能只参与部分PNC。在配置CanNm模块时,需要正确定义该ECU所关心的PNC位,并正确关联到对应的通信通道(Channel)。

总而言之,VFC和PNC是AUTOSAR实现智能功耗管理的核心设计。通过从应用功能抽象出虚拟簇,再映射到物理网络集群,最终依靠ComM、BswM、CanNm、COM、PduR等模块的精密协作,实现了车辆功能与网络通信状态的解耦与按需控制。    

参考

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

Autosar网络管理:Partial Network基础

Autosar网络管理:如何理解局部网络的VFC? - 知乎

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2025 wrd
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信