当前位置:   article > 正文

Autosar-PNC局域网络管理_达芬奇autosar can pnc网管

达芬奇autosar can pnc网管


PNC

PNC – Partial Network Cluster (局域网络簇)。
• Partial Networking shall allow for turning off idling ECU’s and their network communication in case their provided functions are not required under certain conditions
Partial Networking会允许部分没有参与这个功能的ECU让它保持静默状态,可以允许部分信号停止收发,降低总线负载,让不参与的ECU保持休眠状态。
PNC

  1. ECUA和ECUB属于Partial Network Cluster (PNC) 1, ECUB, ECUC, ECUD属于PNC2
  2. 所有需要实现的功能分属于PNC1或者PNC2
  3. PNC1和PNC2都属于激活状态
  4. 当前只有ECUB保持着PNC1激活, ECUC保持着PNC2激活
  5. 当PNC2的相关功能停止时, ECUC去激活PNC2
  6. ECUC和ECUD进入休眠状态
  7. ECUB停止发送和接收所有PNC2相关的报文
  8. 由于PNC1还处于激活状态,所以ECUB和ECUA还保持唤醒状态
  9. 当PNC1的所有相关功能停止时, ECUA去激活PNC1,则ECUA, ECUB进入休眠状态

AUTOSAR 4.0.3及以上版本支持局域网络管理
PNC
系统层级的局域网络管理,用于打包不同的message,信号来支持分布在多个ECU的一个或多个实车功能。

VFC(Virtual Function Cluster)
• SWC层级的局域网络管理,用于对应功能层面管理不同功能的局域网络,使得对于应用层设计更友好,如Locking, ExteriorLight等

Autosar关联模块

AutosarCanTrcv模块:对于具有selective wakeup功能的tranciver, CanTrcv模块用于设置可以唤醒的Frame

CanIf模块:

  1. 收发NM报文,
  2. 通过配置决定唤醒后第一帧报文是NM报文还是APP报文

CanNM模块:

  1. 对NM报文中的PNC进行过滤,若没有相关的PNC置上,则可以不被该NM报文唤醒。
  2. 收集所有内部外部的PNC请求。
  3. 发送PNC状态,在NM报文中, AUTOSAR定义了user data,在user data中一个bit可以用来置上一个PNC的状态
  4. 当有PNC激活时,发送NM报文,当本地ECU有相关的PNC置上时,或者收到了相关的PNC置上时,需要主动发出NM报文,直到所有相关PNC(内部和外部)都清零了,停止发送NM报文
  5. ERA EIRA的计算,并通知ComM模块
  6. 过滤接收到的NM报文的PNC

COM模块

  1. 在NM模块和ComM模块间交换PNC信息, COM模块中会有所有网段的PNC信息, ComM模块会根据所有网段中PNC的信息统一成各PNC一个状态。
  2. 使能或者禁止相应IPDU(报文)的发送和接收,如当IPDU1为ECUA发送的IPDU, IPDU2为ECUA接收的IPDU,IPDU1关联了PNC1, IPDU2关联了PNC2,当PNC1激活时, IPDU1开始发送,当PNC1去激活时, IPDU1会停止发送 (当PNC1去激活后, IPDU1还会继续发送CanNmPnResetTime时间);同样当PNC2激活时, COM模块会接收IPDU2,如果PNC2去激活, COM模块会停止接收IPDU2。

ComM模块:

  1. VFC和PNC的关联
  2. ComM模块负责PNC的状态机切换,并提供各个PNC的当前状态
  3. 协调多个PNC状态切换请求(来自于不同网段,或者来自于内部请求)

BSWM模块:

  1. 监控各个局域网络的使能状态
    • ComM模块通过函数BswM_ComM_CurrentPncMode通知BswM模块各个PNC的状态
    • 根据PNC状态使能或禁用 PDU Group
  2. 建立各种规则协调ComM模块和其他模块(如: SWC, COM等)用于使能或禁止各个PNC, I-PNCGroup
    • BswM通过ComM_RequestComMode函数使能或禁用相关ComM user

EIRA & ERA

每一个PNC有其独立的状态机,大的状态有两个:PNC_NO_COMMUNICATION和PNC_FULL_COMMUNICATION。PNC_FULL_COMMUNICATION又包含PNC_REQUESTED,PNC_READY_SLEEP和PNC_PREPARE_SLEEP三个子状态。
PNC
EIRA – External and Internal Request Array
• 内部和外部PNC请求的合成状态
• ComM需要该信息来处理PNC状态管理

External:主要是指通过ERA Rx信号接收外部请求信息,eg:收到包含PNC信息的NM Msg。
Internal:主要是指调用ComM_UserRequest()接口的“User”,这里的User包括:Runnable entities、SW-Cs、BswM 以及DCM 。

ERA – External Request Array
• 主要用于PNC gateway

PNC Gateway原则主要适用于网关节点ECU,对于网关节点ECU,包含多个物理通道,当PNC跨网段时,则需要将PNC信息路由到目标网段,进而实现不同网段PNC的管理。

时序图

CANNM RX流程

RX

CANNM TX流程

TX

Autosar配置

TerminologyDescription
CanIfPublicPnSupportCanIF是否支持局域网络管理功能
CanIfTxPduPnFilterPdu使能后ECU唤醒后发的第一帧报文会是NM报文
Pn Enable使能局域网络功能
CanNmComUserDataSupportNM报文中是否支持user data (PNC信息位于user data中)
CanNmEiraCalcEnabled是否使能EIRA计算
CanNmPnEraCalcEnabled是否使能ERA计算
CanNmPnInfoLengthPNC所占字节长度
CanNmPnInfoOffsetPNC在NM报文中的偏移位置(注意:不是user data的偏移位置)
Pn Reset Time用于局域网络管理, PNC停留在ready sleep状态下的时间,一般需要比CanNmTimeoutTime小一些
CanNmPnFilterMaskBytes设置PNC过滤,为0时,该位的PNC会在CanNM层过滤掉
ComMPncSupport是否支持局域网络管理功能
ComMPncEnabled是否使能局域网络管理功能
ComMPncGatewayEnable是否使能Pnc gateway 功能
ComMPncPrepareSleepTimerPNC状态机中,停留在prepare sleep状态时间
ComMSynchronousWakeup当设为TRUE时,某个ComM通道被唤醒时,其他的所有ComM通道都会被唤醒
ComMPncGatewayType设置ComM Channel是Active或passive (Active节点需要mirror back其他节点的PNC状态)
ComMPncNmRequest设成TRUE是,每一次因为PNC状态机切换到PNC_Request状态,从而导致ComM Channel切换成FULL Com,则需要调用函数Nm_NetworkRequest
ComMPncIDPNC的ID (AUTOSAR 4.2.2开始, ID号从8开始)
ComMChannelPerPncPNC关联的ComM Channel
ComMUserPerPncPNC关联的ComM USer
Container ComMPncComSignalPNC相关联的ERA EIRA信号
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号