0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么需要PN(Partial Network)功能呢?

冬至配饺子 来源:开心果 Need Car 作者:开心果 Need Car 2022-08-24 17:42 次阅读

Partial Networking(PN)功能相对来说,稍稍复杂一点。PN功能的实现也不能单单看某个模块,因为模块间的交互信息网络状态的切换至关重要。对于PN功能,我主要想从CanNM和ComM两个模块谈,本篇先从CanNM聊。希望能将一些概念讲透,因为在实际项目中,工具的很多配置项我们可能一知半解,在问题排查时,多少让我们摸不着头脑。因此,我想把自己解读的Autosar信息传达出来,分享一下。

提示:基于CAN总线。

1、为什么要PN功能

为什么需要PN(Partial Network)功能呢?实质还是为了节能。没有PN功能时,一个网段内的所有ECU同醒同睡。有时,在一个网段内,可能只需要某些ECU正常工作即可,不相关的ECU没必要唤醒(费电)。所以,增加PN功能是节能的一个优选项。

举例:

不含PN功能的网段,所有ECU同睡同醒。某些工况下(A工况),其实只需要ECU2和ECU4保持工作状态即可,因为没有PN功能,所以该网段内的ECU1、ECU2、ECU3、ECU4、ECU5均保持唤醒,所以就费电了,如下所示:

pYYBAGMF8giARHZjAABJ9c3_qYE818.png

含有PN功能的网段,同样A工况下,ECU2和ECU4保持正常工作状态,ECU1、ECU3、ECU5休眠,相对不含PN功能的网段,含PN功能的网段将更节能,如下所示:

poYBAGMF8hmADiuDAABP4plf5eA784.png


2、NM PDUs的接收处理

嵌入式中,任何信息的交互无非就是收和发。对于PN功能的实现也不例外,节点收到网络管理报文是PN功能讨论的基础。对于CanNM模块而言,它通过注册在CanIf中的回调函数CanNm_RxIndication()获取NM PDUs信息。拿到NM PDUs信息以后,CanNM模块开始拆解信息,通过对信息的拆解决定是否将信息进一步传递给其他模块,比如:COM、ComM、NM等。

在Autosar中,PN功能的开启需要多个模块配置PN参数选项,先说CanNM模块。在CanNM模块,首先需要配置CanNmPnEnabled参数,即CanNmPnEnabled = TRUE

(1)如果参数CanNmPnEnabled = FALSE,CanNM收到NM PDUs直接进行后续动作,即通知NM模块等,此时PN功能忽略(无效)。只要收到有效范围的网络管理报文(一般会规定网络管理报文是一个范围,比如:0x500~0x57F),网络即可唤醒;

(2)参数CanNmPnEnabled = TRUE,也不能说PN功能开始生效。此时需要进一步判断参数CanNmAllNmMessagesKeepAwake和PNI(Partial Network Information Bit)信息。PNI在NM PDUs中所处的位置如下所示:

pYYBAGMF8iuAHHvMAADa7n_T3A4215.png

提示:Control Bit Vector简称CBV,和Source Node Identifier(SNI)一样,一般需要在配置工具中配置,即配置CBV和SNI在PDU中的位置。

如果PNI = 0(即没有PN请求),也就没有PN功能的进一步处理,此时如果CanNmAllNmMessagesKeepAwake = TRUE,那么接收的任何有效网络管理报文进一步处理,即可以唤醒该节点网络;如果CanNmAllNmMessagesKeepAwake = FALSE,则该NM PDUs也不用再进一步处理了,CanNM模块直接丢弃该PDU,即该节点的网络无法唤醒。

如果PNI = 1(即有PN请求),CanNM模块需要过滤User Data中的PNC(Partial Network Cluster )信息,换句话说:PN请求信息包含在User Data中。一般由PNC个数决定使用多少User Data空间,比如:需要设置9个PNC,而每个PNC占用一个bit,即需要9个bit,则使用2个User Data(2 Byte)空间即可。过滤前面聊过,可以参考Autosar网络管理:CanNM PN功能。如果过滤PNC信息,发现每个bit都与该ECU不相关,且CanNmAllNmMessagesKeepAwake = FALSE,那么CanNM直接丢掉该NM PDU,如果CanNmAllNmMessagesKeepAwake=TRUE,那么当前节点网络仍然需要被唤醒。

PNC信息可占用位置如下所示(User Data部分),如果SNI不用,则User Data可以拓展到7 Byte,将CBV配置为第一个字节,如下所示:

poYBAGMF8j-AaM1hAACHyIEksck124.png

3、ERA/EIRA

开发PN功能的朋友,对ERA(External Request Array )/EIRA(External and Internal Request Array )想必并不陌生。但是能说清楚这两个参数怎么用吗?老实说,我理解得可能不是很到位,此段抛砖引玉。

对于ERA/EIRA,可以理解为PN请求的状态集,而这个状态集的信息分别存储在各自的Buffer中,简单说:可以独立配置。

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

EIRA:可以理解为外部PN请求和内部PN请求,外部PN请求和ERA一样,内部PN请求可以理解为不同channel转发过来的PN请求,比如:某个ECU包含两个CAN节点(CAN1和CAN2),且都可以作为网关节点(实际还需要关注网关类型)。CAN1收到网络管理报文,对应的PNC关联CAN2,CAN1可以内部转发给CAN2,唤醒CAN2网络,这就是内部PN请求。

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

PduR_CanNmRxIndication()属于配置接口,Autosar中描述如下所示:

poYBAGMF8lCAZebRAAES2phtgbA496.png



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5044

    文章

    18805

    浏览量

    298374
  • CAN总线
    +关注

    关注

    145

    文章

    1894

    浏览量

    130326
  • ecu
    ecu
    +关注

    关注

    14

    文章

    852

    浏览量

    54211
收藏 人收藏

    评论

    相关推荐

    正向偏置的pn结为什么会是pn结变窄了?

    正向偏置的pn结为什么是扩散增强漂移减小,pn 结就会变窄?求详细解释?另外还想请教下漂移具体是什么意思?
    发表于 07-04 23:39

    PN码的问题

    不同时延或者说不同相位的PN码是怎么一个形式啊?例如以127位长度PN来说。是不是需要每一位要扩位,扩位后怎样表示不同相位?本人新手,望各位大牛不吝赐教,万分感谢。
    发表于 09-03 22:20

    MySQL8.0 新特性:Partial Update of LOB Column

    of partial JSON updates本文仅仅是笔者在理解该特性时做的一些简单的笔记,,记录的主要目的是用于以后如果涉及到相关的工作可以快速展开,因此比较凌乱目前partial update需要通过
    发表于 06-11 20:23

    如何使用Partial Frame Buffer?

    你好:我有一些关于 t Partial Frame Buffer memsory 的问题。我在程序中声明了 ManyBlockAllocator frameBufferAllocator就像
    发表于 01-31 07:29

    生成AD9653 PN码的算法,如何计算输出的pn码?

    您好,看了关于测试码部分的pn9和pn23伪随机码,想用pn9序列做对齐,但是不太明白如何计算输出的pn码,有没有关于如何生成这个码的具体算法
    发表于 12-01 08:29

    PN码的跟踪

     pn码的捕获只能使本地的pn码与信号的pn码实现同步,而能使本地的pn码保持与接收的pn码精细同步的
    发表于 08-03 10:12 3次下载

    The Complete Network Troublesh

    Features•Auto Network Discovery automatically surveys the network and generates a complete
    发表于 07-14 10:32 6次下载

    什么是Ad hoc network

    什么是Ad hoc network   英文缩写: Ad hoc network 中文译名: 自组织网络,特定网络,对等网络
    发表于 02-22 09:49 982次阅读

    什么是AN (Access Network)

    什么是AN (Access Network)  英文缩写: AN (Access Network) 中文译名: 接入网 分  类: 网络与交换 解  释: 根据
    发表于 02-22 10:04 3380次阅读

    PN/PN Coupler通讯使用入门

    PN/PN Coupler使用方式如下图所示,两个S7-300做为IO Controller通过PROFINET与ET200S、PG/OP通信组成两个PROFINET系统。同时两个S7-300之间还需要进行实时数据交换,这时就可
    发表于 02-12 18:26 1.9w次阅读
    <b class='flag-5'>PN</b>/<b class='flag-5'>PN</b> Coupler通讯使用入门

    PN结的基础知识

    为啥说PN结是基础?
    的头像 发表于 09-15 10:22 3932次阅读

    PN/PN耦合器功能概述

    PN/PN 耦合器用于连接两个不同 PROFINET 子网,实现多个控制器不同子网间的可靠数据交换
    的头像 发表于 10-11 16:49 4931次阅读
    <b class='flag-5'>PN</b>/<b class='flag-5'>PN</b>耦合器<b class='flag-5'>功能</b>概述

    为什么加正向电压PN结变薄,加反向会变厚

    为什么加正向电压PN结变薄,加反向会变厚PN结是半导体器件中最基本和最常用的一种器件,具有正向导通和反向截止的特性。如果将PN结的两端施加正向电压,电子从N型区流向P型区,空穴从
    的头像 发表于 10-19 16:42 2771次阅读

    通常都有哪些线需要控阻抗需要控多少om阻抗

    通常都有哪些线需要控阻抗需要控多少om阻抗? 在高速信号传输中,线路的阻抗控制是非常重要的。阻抗的控制可以减少信号反射和干扰,提高信号传输的可靠性和性能。因此,通常
    的头像 发表于 10-30 10:03 979次阅读

    pn8024r引脚功能和电压功能

    PN8024R是一款具有重要功能的集成电路,广泛应用于电子设备中。本文将详细介绍PN8024R引脚功能和电压功能,以帮助读者更好地了解和使用
    的头像 发表于 12-27 10:58 9260次阅读