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

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

3天内不再提示

Autosar这个指定网络管理报文是如何过滤的呢

冬至配饺子 来源:开心果 Need Car 作者:开心果 Need Car 2022-08-23 12:09 次阅读

我们清楚Autosar网络管理,也知道收到网络管理报文会唤醒网络,但是网络管理如果上PN功能的话,就只能是指定的网络管理报文才可以唤醒网络。这个指定网络管理报文是如何过滤的呢?来,我们看看Autosar怎么做的。

1、缩写词

Acronym/abbreviation Description
CBV
Control Bit Vector
PN
Partial Network
PNC Partial Network Cluster
PNI Partial Network Information

PNC解释

为便于理解,以最常见的Can总线为例,其它总线同理。比如在某个Can网段内,有3个ECU,其中ECU1包含3路Can,即Node1、Node2、Node3,ECU2包含两路Can,即Node4、Node5,ECU3包含1路Can,即Node6。如下所示:

poYBAGMEUmeAdTGUAACyMUaDyVo759.png

假设,我们示例中的Can网段设计了5个PNC,分别定义PNC ID为:0x01、0x02、0x03、0x04、0x05。一个Node可以加入一个PNC也可以加入多个PNC。这里的PNC类似Ethernet多播组概念。举个例子:我的微信里有100个好友,但是我要将一些事情告诉某些好友,而不是全部好友。于是,我将好友1、2、3拉了一个小群,设置标签PNC1;我又拉了好友1、2、5、6组建了另一个小群,设置标签PNC2。我发朋友圈的时候,选择PNC1标签的好友可见我的消息,即使我的所有朋友都会看朋友圈,但是只有我的好友1、2、3可以看到我的消息(即唤醒Node1、Node2、Node3)。

假设需求如下所示:

PNC1:Node1、Node5、Node6

PNC2:Node2、Node4、Node6

PNC3:Node2、Node6

PNC4:Node1、Node2、Node3、Node4、Node5

PNC5:Node2、Node5

需求可以进行如下分配:

PNC1
(0x01)
PNC2
(0x02)
PNC3
(0x03)
PNC4
(0x04)
PNC5
(0x05)
Node1
1
0
0 1
0
Node2 0
1
1
1 1
Node3 0
0
0
1
0
Node4 0
1
0
1
0
Node5 1
0
0
1 1
Node6
1
1 1
0
0

注释:

1 表示使能Node,0 表示不使能Node。

2、NM PDUFormat

一般来说,CAN网络管理报文的PDU格式如下所示:

Byte0:节点ID,比如Node ID为0x509(假设网络管理报文:0x500~0x5FF),工具配置时,此字节设置0x09即可。因为0x05是网段标识,底层收到0x05xx的报文即可知道是网络管理报文,之后根据偏移值(本例:0x09)即可知道是哪个Node。

Byte1:控制位向量。

Byte2~Byte7:用户数据

pYYBAGMEUoqAQV3hAACdikX5qKM464.png

这里只讨论和PN功能相关的Bit6。

Bit6 = 1,表示有PN请求,如果有PN请求,则后面要判断收到的网络管理报文的PNC,判断该节点是否在此PNC内;

Bit6 = 0,表示没有PN请求,一般收到网络管理报文就直接唤醒网络。

pYYBAGMEUqKAatHOAABztxj3aKE250.png

3、NMPDU过滤算法

前面的讨论为本小节做了铺垫,那我们就好奇一个问题了:如果节点有PN功能,如果判断收到的网络管理报文可以唤醒当前节点的网络?

这里就涉及到了PDU的过滤算法问题。

示例

CanNmPnInfoOffset =4,PnInfo在PDU中偏移的距离

CanNmPnInfoLength = 2,Pn Info在PDU中的长度

Byte0
Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7
NID
CBV
User Data
PN Info
User Data
0x09
0x40
0xFF
0xFF
0x12
0x8E
0xFF
0xFF

如何识别出网络管理报文可以唤醒该节点呢?Autosar中使用了屏蔽掩码过滤的方式,如上例,Pn Info的长度为2byte,对应设置2个Mask,比如:

CanNmPnFilterMaskByteIndex= 0,设置CanNmPnFilterMaskByteValue = 0x01;

CanNmPnFilterMaskByteIndex= 1,设置CanNmPnFilterMaskByteValue = 0x97。

之后对每个Pn Info采用位与运算,运算结果如下所示:

Filter Mask Value(Byte)
Compared to received PNinfo
Resulting
0x01(byte0)
0x12(NM PDU Byte4)
0x00 (no relevant PN information)
0x97(byte1)
0x8E(NM PDU Byte5) 0x86(relevant PN information)

其中,有一个字节与结果不为0,表示该报文可以唤醒当前节点。如果两个字节的比较均为0x00,则当前节点网络不被唤醒,忽略该网络管理报文。

提示:

有些transceiver有PNC过滤功能,也可以在硬件上设置此过滤功能。针对NXP TJA1145 Transceiver而言,只能过滤通信速率在1Mbps的报文,因此要注意项目中的网络管理报文速率,如果使用的是CANFD,且速率是500Kbps/2Mbps,则NXP TJA1145 Transceiver硬件过滤功能可能就不能使用。也许在不久的将来,硬件变速率过滤功能也将成为现实。


审核编辑:刘清

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

    关注

    145

    文章

    1812

    浏览量

    129608
  • 网络管理
    +关注

    关注

    0

    文章

    107

    浏览量

    27511
  • AUTOSAR
    +关注

    关注

    9

    文章

    330

    浏览量

    21138
收藏 人收藏

    评论

    相关推荐

    CAN总线指定帧唤醒的硬件实现方式

    CAN的指定帧唤醒是一种网络管理的场景,对于我这个偏硬件的工程师来说,网络管理也就是通过CAN来
    发表于 03-07 09:17 7435次阅读

    CC3200如何过滤报文

    我现在使用CC3200 transceiver mode,我想将报文过滤下,请问transceiver mode下支持sl_WlanRxFilterAdd 过滤条件添加吗?如果能,我想要根据field:FRAME_SUBTYPE_FIELD来
    发表于 04-27 10:12

    AUTOSAR CAN网络管理

    一、背景: 在AUTOSAR CAN网络管理框架下,如果所有的节点都按照状态机要求,在ReadSleep状态下停发NM帧,在Prepare Bus-Sleep模式下停发App帧,所有节点可以从
    发表于 07-26 06:47

    网络管理NMT与特殊协议报文

    网络管理NMT、特殊协议报文、过程数据对象PDO和服务数据对象SDO的报文ID分配
    发表于 08-23 06:11

    AUTOSAR CAN网络管理状态机介绍

    AUTOSAR CAN网络管理状态机为什么停发应用帧?有什么解决办法吗?
    发表于 09-24 07:47

    AUTOSAR信息安全框架和关键技术相关资料介绍

    ,进而可以伪造报文控制车辆。SecOC 是在AUTOSAR 软件包中添加的信息安全组件,主要增加了加解密运算、密钥管理、新鲜值管理和分发等一系列的功能和新要求。该模块的主要作用是为总线
    发表于 11-24 16:51

    AUTOSAR_SWS_CAN网络管理规范标准4.3.1

    AUTOSAR_SWS_CAN网络管理规范标准4.3.1
    发表于 03-28 17:02 12次下载

    AUTOSAR CAN网络管理协议

    AUTOSAR_SWS_CANNetworkManagement AUTOSAR CAN网络管理协议,4.4.0版本
    发表于 08-01 11:09 14次下载

    网络管理报文的收/发与网络管理时间配置参数解析

    Wait Bus Sleep Timer:在PBM状态,收不到网络管理报文,且没有网络请求,该时间超时以后进入BSM;如果收到网络
    的头像 发表于 08-29 18:12 7423次阅读
    <b class='flag-5'>网络</b><b class='flag-5'>管理</b><b class='flag-5'>报文</b>的收/发与<b class='flag-5'>网络</b><b class='flag-5'>管理</b>时间配置参数解析

    AUTOSAR CAN网络管理报文的数据场格式

    表1中,字节0为ECU Address,作为源节点标识符,用 以告知其他节点该报文是由哪个节点发送的;处于CAN网 络中的每个节点都会分配一个唯一的标识符,本文中网络 管理报文的ECU
    的头像 发表于 11-17 11:05 2891次阅读

    科普系列:AUTOSAR与OSEK网络管理比较(上)

    AUTOSAR(Automotive Open System Architecture,即汽车开放系统架构),另一个是OSEK。AUTOSAR与OSEK的网络管理方式的区
    的头像 发表于 10-26 09:28 687次阅读
    科普系列:<b class='flag-5'>AUTOSAR</b>与OSEK<b class='flag-5'>网络</b><b class='flag-5'>管理</b>比较(上)

    科普系列:AUTOSAR与OSEK网络管理比较(下)

    作者:You小编:吃不饱在上篇中我们分别在状态机和报文格式方面对OSEK和AUTOSAR网络管理进行了简单介绍,感兴趣的小伙伴请移步至文章《科普系列:
    的头像 发表于 11-22 10:17 788次阅读
    科普系列:<b class='flag-5'>AUTOSAR</b>与OSEK<b class='flag-5'>网络</b><b class='flag-5'>管理</b>比较(下)

    详解CAN总线的AUTOSAR网络管理报文

    官方一点: AUTOSAR 就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构。
    的头像 发表于 07-31 11:27 2940次阅读
    详解CAN总线的<b class='flag-5'>AUTOSAR</b><b class='flag-5'>网络</b><b class='flag-5'>管理</b><b class='flag-5'>报文</b>

    一文解析AUTOSAR CAN网络管理

    AUTOSAR CAN 网络管理是一个独立于硬件的协议,只能在 CAN 上使用。它的主要目的是协调网络的正常运行和总线休眠模式之间的转换。
    的头像 发表于 09-09 10:32 2706次阅读
    一文解析<b class='flag-5'>AUTOSAR</b> CAN<b class='flag-5'>网络</b><b class='flag-5'>管理</b>

    如何在TSMaster中对常用总线报文信号进行过滤

    TSMaster软件平台支持对不同总线(CAN、LIN、FlexRay)的报文和信号过滤过滤方法一般有全局接收过滤、数据流过滤、窗口
    的头像 发表于 12-16 08:21 235次阅读
    如何在TSMaster中对常用总线<b class='flag-5'>报文</b>信号进行<b class='flag-5'>过滤</b>?