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

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

3天内不再提示

AutoSAR中CAN通信网络管理的概述

冬至子 来源:Vehicle软件开发 作者:Vehicle软件开发 2023-01-18 10:21 次阅读

概述

AutoSAR中CAN通信网络管理主要是根据CANNode接收和发送的NMMessage进行该节点在整个网络中的活动的,根据NM Message控制整个网络对Normal模式和Sleep模式的切换。

同时可以根据CAN NM PDU来检测网络上的其他节点的状态,进行同步休眠等。主要包含以下内容:

1.周期性的NMMessage在发送节点广播式的发送,节点可以周期接收到NM PDU。

2.对于接收节点而言,接收到NMPDU表明相应的节点想要保持网络正常工作。

3.节点想要进入Sleep模式,那么停止发送NM PDU准备进入Sleep,如果此时网络还有别的节点在发送NMPDU,则延迟进入Sleep。

4.在所有节点停止发送NMPDU并且设置的超时时间到,这时候整个网络上的节点同步进入Sleep模式。

5.节点想要从Sleep进入到Normal模式,则请求发送NMPDU。

NM****状态切换

在NM中状态切换主要有两个方面的考虑,其中一个是整个CAN NM的网络切换关系,主要由三个主要的状态,分别是Network Mode、Pre-Bus Sleep Mode和Bus Sleep Mode,对于其内部的转换关系如下图所示。

系统上电后,首先在Bus Sleep模式,如果有NM的通信请求就进入正常的通信模式也就是下中的Network Mode。

在Network Mode主要处理整个系统的网络管理的正常运行,如果NM上的节点停止发送NM PDU,则在定义的TimeOut后进入到Pre-Bus Sleep模式,等待整个通信上的网络达到Bus TimeOut后彻底进入Bus Sleep模式,如果在Pre-Bus Sleep模式下,收到了其它节点的NM请求,则进入正常的Network模式。

2.jpg

在NM的状态切换中还有一个比较重要的就是Network Mode的内部状态切换。无论是Bus Sleep还是Pre-Bus Sleep状态下进入到Network模式都会直接进入Repeat Message State发送NM PDU,处于RepeatMessage State下的节点对于整个网络上的节点来说是有效的节点,并确保其它节点在该状态上保持激活状态。Repaet模式下定义的TimeOut时间到同时接收到NM的请求进入到Normal Operation State,在该模式下只有NN的请求就保持节点处于Awake状态。

接收到RepeatMsg的请求或者对应的RepeatMsg对应的控制Bit接收,则进入Repeat模式,如果接收到NMReleased请求则进入ReadySleep States,ReadySleep States状态下等待其它节点进入到Sleep状态,如果NM TimeOut时间达到进入到Pre-Bus Sleep等待总线Sleep。具体的状态转换如下所示。

2.jpg

网络管理的状态切换中一般主要是由TimeOut和Requested/Released进行切换的,同时包含了对外部NMReq的处理,在使用的时候注意几个TimeOut的时间,尤其是在做整个网络上的Sleep机制的时候要充分考虑不同节点产生的jitters,该部分的考虑主要从内部时钟、NM相关模块函数的循环时间和发送方式进行考虑,由于该部分还有连调连试过,所有先不详细介绍,等后期如果进行相关的工作再补充更新。

NM PDU

AutoSAR中NM的PDU主要包括三大部分,分别是节点的ID、控制位以及用户数据。在标准的CANFrame的具体定义如下:

2.jpg

其中Control Bit Vector的定义如下

2.jpg

Bit0: Repeat Message Request 表明Repeat Msg是否被请求。

Bit3: NM Coordinator Sleep Bit 表明是否开始同步的ShutDown。

Bit4:Active Wakeup Bit 表明是否唤醒通信网络

Bit6: Partial Network Information Bit (PNI)。

Bit1/2/5/7用于后期扩展。

对于Byte0和Byte1两个Byte,AutoSAR定义的是通用的设置Byte,尤其是Byte0是Source的ID,只取其中的低八位,一般OEM都会定义特定的NM报文,而对于在NM PDU机制中的实现和定义主要写入低八位的ID就可以。

对于UserData不同的OEM会有不同的定义,这个取决于自己的设置,之前参与Daimler的一个项目的时候,他们会把UserData0作为WakeUp Reason使用。

如果使用Partial Network Cluster(PNC),一般会在特定的UserData中包含PNC上节点所在的位置。对于NMPDU的使用根据具体的OEM要求设置即可。

Partial Network Cluster

PartialNetwork Cluster(PNC)的使用主要是关掉某些网络上的不需要通信的节点,而一些必须的节点可以正常通信,从而更好的节约能量,减少消耗。

只有在该节点的PNC功能使能,同时接收的NM PDU中PNI位为1的时候才进行正常的PNC处理。同样作为PNC的一个节点在发送NM PDU的时候PNI位也必须设置为1。

PNC在实现的时候在CANNM模块提供了一种滤波机制,用来忽略无效的NMPDU。在使用PNC功能的时候,对于NMPDU 不用的OEM会在UserData中相应的Bit表示一个PNC的网络节点,每一个Bit表示了一个PN节点。

对于滤波机制的使用一般从UserData数据开始,指定需要比较的Byte长度,然后设置需要的比较信息(定义需要接收的Byte Value和Mask Value),进行比较即可,只有满足比较条件才认为接收到的NM PDU是一条有效的NMPDU,否则忽略。

在PNC中提供了两种NM的管理机制,分别为Internal and External Requested(EIR)PN和ExternalRequested(ER)PN。

2.jpg

对于EIR PN而言,主要是用于在接收到NM后,ECU根据接收到的NM PDU通知COMM模块和BSWM去控制相关的NM通道中的I-PDU的使能和禁用,同时可以将接收和发送的数据通过COM模块与APP层进行交互。

ER PN而言主要是作为NM的Gateway收集外部的PN PDU使用,用于路由NM相关的PNC到指定的通信Bus通道,进行PN控制。

PNCAutoSAR****中的实现

对于PNC在AutoSAR中的实现将从CAN相关的PNC做阐述,因为现在CAN的PNC网络管理也是用的最多的。

CAN的PNC在AutoSAR架构中主要包括了支持CAN PNC的硬件、CAN、CanTrcv(SPI通信)、CanIf、CanNm、CanSM、NmIf、ComM、BSWM以及应用层的SWC。整个PNC的相关状态切换如下图所示。

2.jpg

根据上面的图片简单介绍几个主要作用:

1.唤醒:MCU被唤醒后,对于带有唤醒功能的TJA1145而言会在CANTrcv中将唤醒通知到CANIF,然后在EcuM中调用相关的函数对唤醒的有效性进行判断,从而将当前唤醒的状态通知给BswM进行状态处理。

2.PNC通信:在CANIf收到相关的NMPDU后,通知CANNM做PNC的有效性校验,在PNC校验有效后通过PDUR和COM两个模块将有效PNC信息告知COMM中特定的PNC通道,然后COMM将PNC的状态发送给BSWM,BSWM根据PNC的状态和特定的Rules反馈给COMM进行PNC通信请求,同时通过CANSM模块经CANIf去控制CNATrcv进行通信模式切换。

3.在应用层的SWC可以直接建立与BSWM的Mode Req CS接口或者SWC建立与COMM的用于请求通信的CS接口,实现SWC对通信的请求。

4.对于NM PDU的发送一般需要NM模块进行请求或者释放,其控制指令也是在COMM受到BSWM或者SWC请求后发出控制指令。

5.对于PNC的NM PDU Group的使能和禁用开关需要BSWM结合具体的Rules进行控制,从而StartNM PDU 和StopNM PDU。

6.TJA1145这款芯片的模式操作和唤醒帧定义需要通过SPI通信进行控制。

审核编辑:刘清

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

    关注

    3

    文章

    87

    浏览量

    17628
  • OEM
    OEM
    +关注

    关注

    4

    文章

    383

    浏览量

    49861
  • AUTOSAR
    +关注

    关注

    9

    文章

    330

    浏览量

    21138
  • OSEK
    +关注

    关注

    2

    文章

    19

    浏览量

    12974
收藏 人收藏

    评论

    相关推荐

    基于SNMP的通信网络性能管理模块设计

    目前通信网络结构越来越复杂,通信网络使用的设备也越来越复杂,随着网络的大型化与复杂化,如何有效地进行网络管理日益成为人们普遍关注的问题。IS
    发表于 09-30 13:48 1504次阅读
    基于SNMP的<b class='flag-5'>通信网络</b>性能<b class='flag-5'>管理</b>模块设计

    Autosar软件开发技术概述

    系统的编码与诊断),到系统定制(如个性化定制功能,可设定特殊条件的服务定制功能)。现在,应用于全新7系的BMW Standard Core软件系统通过AUTOSAR架构实现对车载网络、系统内存管理以及
    发表于 12-26 10:34

    矢量网络分析仪及其在移动通信网建设和维护的应用介绍

    1、概述随着移动通信的发展,2G、3G、4G通信网并存,使通信网络的复杂度越来越高,尤其是室内分布系统,往往由成百上千个射频器件组成,射频器件的质量好坏直接关系到
    发表于 07-18 06:18

    如何通过硬件实现安全CAN通信网络的方式

    汽车在往智能化方向发展,节点间通信的安全性变得越来越重要。当下是在报文中添加验证信息实现通信安全,这样不仅浪费宝贵的通信资源,还增加软件复杂度。本文将介绍一种通过硬件实现安全CAN
    发表于 02-26 06:06

    怎样有效管理数据通信网络

    怎样有效管理数据通信网络
    发表于 05-27 06:37

    AUTOSAR CAN网络管理

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

    充电机和BMS之间通信网络采用CAN2.0B通讯协议

    我们首先要了解的信息有以下五点:1、充电机和BMS之间通信网络采用CAN2.0B通讯协议。2、在充电过程,充电机和BMS监测电压、电流和温度等参数,同时BMS管理整个充电过程。3、充
    发表于 09-14 06:07

    AUTOSAR CAN网络管理状态机介绍

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

    CAN总线的基本知识概述

    CAN总线(一)嵌入式的工程师一般都知道CAN总线广泛应用到汽车,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对
    发表于 12-08 08:11

    基于移动通信网络维护管理

    ,移动通信网络的维护管理问题应该引起相关单位的重视,必须要采取积极有效的维护管理策略,提高网络管理水平,为满足人民群众对信息的需求发挥自身的
    发表于 01-18 14:25 1次下载

    AUTOSAR_SWS_CAN网络管理规范标准4.3.1

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

    CAN网络管理规范 AUTOSAR CP中文版

    CAN网络管理规范 AUTOSAR CP中文版免费下载。
    发表于 04-06 16:21 0次下载

    CAN网络管理规范 AUTOSAR CP英文版

    AUTOSAR_SWS_CAN网络管理规范标准4.3.0英文版免费下载。
    发表于 04-06 16:20 0次下载

    AUTOSAR CAN网络管理协议

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

    一文解析AUTOSAR CAN网络管理

    AUTOSAR CAN 网络管理是一个独立于硬件的协议,只能在 CAN 上使用。它的主要目的是协调网络
    的头像 发表于 09-09 10:32 2679次阅读
    一文解析<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>CAN</b><b class='flag-5'>网络</b><b class='flag-5'>管理</b>