详解Autosar Arxml中的CANFD报文及格式

前言

之前在没有真正接触CANFD时,理解的CANFD报文只是两个主要变化点:
1.波特率可切换
2.数据位拓展为64位

这样的话,对于之前的CAN报文来说,DBC可以很好的兼容CANFD报文,只需要定义好message中的layout即可。但目前实际使用过程中,并不是简单的一个message包括一个PDU,而是通过Arxml文件引入了Container-PDU和I-signal-PDU,一个CANFD的frame中可能包含多个I-signal-PDU。

PDU类型定义


在Arxml文件中定义的有如下类型:

PDU TypeApplication/Idea
ISignal-I-PduDUAUTOSAR COM标准信号PDU
N-PduDUtransport layer诊断TP层
NmM-PduDUNetwork Management网络管理
XcpCP-PduDUXCP=Universal Measurement and Calibration ProtocolXCP标定
Multiplexed I-PDUdu多路复用PDU
varying Signal I-PDUs at the same position
General-Purpose-PduDU
General-Purpose-I-PDUduwith category XCP replaces the deprecated XCP-PDU
DcmCM-I-PduDUDiagnostic Communication Manager
Container-I-PduDU容器PDU,存放多个其他PDU
UserDefinedPduDU用户自定义
UserDefinedIPduDU用户自定义
SecuredIPduRefers to an IPdu, that is protected against unauthorized manipulation
J1939DcmIPdu

对于标准CAN通讯来说,比较常用的就是ISignal-I-Pdu,Container-I-Pdu。后面再详细介绍。

Autosar定义的PDU

Abbreviation/ Acronym:Description:
COM I-PDUI-PDU assembled in the COM module out of COM Signals
contained I-PDUI-PDU assembled into or extracted from a Container PDU对应Arxml中的多种PDU类型
Container PDUPDU containing I-PDUs and headers包含多种PDU

对于普通CAN报文来说,一个message对应一个PDU,对于CANFD报文来说,引入Container PDU和contained I-PDU实现一个message对应多组PDU。

考虑这样做的优势:

不同的contained I-PDU可以映射到不同的Container PDU的不同位置。不仅提高了灵活性,而且也会降低总线负载率。

动态Container布局


Autosar引入了动态Container的layout,也就是说PDU存在的位置是不固定的,将PDU Header和I-PDU打包后可以放入不同Container PDU的不同位置中。
可以这么理解:PDU Header就是之前普通CAN报文的ID和DLC。

CANFD ContainerPDU定义

ContainerPDU并不是frame,但可以设置ContainerPDU包含frame所有的数据位。ContainerPDU是包含在frame中的。
对于一个CANFD-frame,定义如下:


:若CANFD报文实际只有8字节,那么就和普通报文一样,定义一个I-Signal-PDU就够了,不需要引入容器PDU

Container-I-PDU定义如下:


Header Type有三种选择:

1.ShortHeader 2.LongHeader 3.NoHeader

Autosar中定义如下:

IpduM支持两种不同的动态Container Pdu的头大小(参见ECUC_IpduM_00183: IpduMContainerHeaderSize):
IPDUM_HEADERTYPE_SHORT, 24位ID, 8位长度
IPDUM_HEADERTYPE_LONG, 32位ID, 32位长度

如果是选择的ShortHeader,那么实际数据位中会有三个byte为ID,一个byte为DLC,8个byte为数据位

在Container-PDU定义页可以选择包含的PDU及设置PDU对应的ID。

CANFD Signal-I-PDU定义


这个Signal-I-PDU就类似普通的CAN报文,里面定义了具体的信号信息,及layout信息。

CANFD实际数据解析


CANFD带Container的报文,实际数据长度为24,包含两个Signal-I-PDU(每个12个byte)

对应的Signal-I-PDU还可以继续展开解析后的信号具体信息

总结

CANFD报文若使用contained I-PDU和Container PDU,则DBC不适合再用来管理通讯矩阵,需要采用Arxml文件来管理。若没有选择使用HeaderID和DLC,则DBC还可以继续使用,对于应用来说,相对于CAN的DBC只是长度增加而已。

使用I-Signal-PDU,使得CANFD报文中的信息更加灵活,对于网关转发,信号解析更加方便。

目前主要只用到了I-Signal-PDU,若用到其他的,会持续更新本文~~
若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~
你的鼓励是对小弟的最大支持~~~

建了一个WX公众号,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~

  • 15
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
Autosar ARXML文件是汽车软件架构标准(AUTOSAR)的一种文件格式,用于描述汽车上使用的电子控制单元(ECU)之间的通信和数据交换。该文件包含了ECU的描述、软件组件、接口、通信矩阵以及应用软件的参数。 Autosar ARXML文件是一种XML(可扩展标记语言)格式的文件,通过使用结构化的标签和属性,可以轻松地进行信息交换和解析。这种文件格式AUTOSAR标准定义的,因此具有广泛的兼容性和标准化特性。 在Autosar ARXML文件,可以找到各个ECU的描述,包括硬件、软件和功能方面的信息。每个ECU都可以被定义为一个节点,其包含了ECU的唯一标识符、厂商信息、硬件插槽、操作系统属性以及支持的软件组件等。 此外,Autosar ARXML文件还定义了不同ECU之间的接口和通信矩阵。通过定义这些接口,不同的ECU可以交互并共享数据。通信矩阵定义了不同ECU之间的通信连接,包括信号名称、数据类型、发送方和接收方等。 最后,Autosar ARXML文件还包含了应用软件的参数。这些参数描述了ECU上运行的各个软件组件的属性和配置信息。例如,可以定义软件组件的版本、启动顺序、优先级、内存分配等。 总而言之,Autosar ARXML文件是一种用于描述汽车ECU之间通信和数据交换的文件格式。通过使用这种标准化的文件格式,可以提高不同ECU之间的兼容性和可靠性,促进汽车软件的开发和集成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赞哥哥s

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

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

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

打赏作者

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

抵扣说明:

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

余额充值