Autosar-PNC局域网络管理

49 篇文章 25 订阅 ¥299.90 ¥99.00


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信号
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

诊断协议那些事儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值