J1939-24 协议TP.CM_BAM和TP.DT报文传输多包数据

目录

SAE J1939-21 标准

TP.CM_BAM (Broadcast Announce Message)

TP.DT (Data Transfer)

工作流程

示例

关键点

TP.CM_BAM (Broadcast Announce Message)

功能:

典型格式:

示例:

TP.DT (Data Transfer)

功能:

典型格式:

示例:

具体工作流程

发送 TP.CM_BAM 消息:

发送 TP.DT 消息:

处理和错误检测:

控制字节

重要注意事项



Tom今天聊的是J1939-24协议的TP.CM_BAM和TP.DT报文传输多包数据,先看协议标准

SAE J1939-21 标准

SAE J1939-21 是一部分定义了商用车辆和工业设备网络通信协议的 SAE J1939 标准系列。它主要关注数据链路层的协议,包括如何处理多包传输。该协议的一个重要部分是处理大数据传输的多包传输协议(Transport Protocol, TP)。

在通信过程中根据数据量和传输需求选择合适的消息ID和传输协议,以确保数据正确有效地传输。

TP.CM_BAM TP.DT 是在 SAE J1939 协议中的多包传输 (Transport Protocol, TP) 的特定消息类型,用于管理和传输大量数据。

TP.CM_BAM (Broadcast Announce Message)

  • TP.CM_BAM 全称为 Transport Protocol, Connection Management - Broadcast Announce Message
  • 它用于广播方式宣布即将进行的多包传输。
  • 作用:
    • 当一个节点(如车辆的电子控制单元)需要发送大于单包能容纳的数据量时,它会先发送一个 TP.CM_BAM 消息,告知网络上的其他节点即将开始一个多包传输。
    • 包含的信息包括总的数据长度、数据包数量以及数据的标识符等。
  • ID: 典型的消息ID是 0x18ECFFxx,其中 xx 通常是发送节点的地址。

TP.DT (Data Transfer)

  • TP.DT 全称为 Transport Protocol, Data Transfer
  • 它用于实际的数据包传输。
  • 作用:
    • 在 TP.CM_BAM 消息之后,数据将被分成多个 TP.DT 消息发送,每个 TP.DT 消息包含数据的一个片段。
    • 这些消息按顺序发送,接收端将这些消息重新组合成完整的数据。
  • ID: 典
<think>好的,我现在需要回答用户关于文结构的问题,特别是BAMTP.DT是否应该含在内。首先,我得回忆一下相关协议的知识,比如CAN总线中的机制。用户可能是在汽车电子或嵌入式系统领域工作,需要了解数据如何在总线上分段传。 首先,文通常用于传超过单帧数据容量的信息。常见的应用场景如诊断通信(UDS)或大型参数传。这时候,协议通常会定义如何分段重组数据。 接下来,BAM(Broadcast Announcement Message)是CAN协议中的一部分,特别是在J1939标准里。它的作用是在传数据前广播一个通知,告诉接收方即将发送的数据数量、总大小等信息,让接收方做好准备。因此,BAM属于文结构的一部分,应该被含在内。 然后是TP.DT(Transport Protocol Data Transfer),属于ISO-TP(ISO 15765-2)标准中的数据帧。在ISO-TP中,分为不同的帧类型:单帧(SF)、首帧(FF)、连续帧(CF)流控制帧(FC)。TP.DT在这里可能指的是数据阶段的实际数据帧,也就是连续帧。因此,在基于ISO-TP中,TP.DT是必须的,用于携带分段后的数据内容。 不过,用户的问题可能混淆了不同协议中的术语。需要确认BAMTP.DT是否属于同一协议栈。例如,J1939使用BAM,而ISO-TP使用首帧、流控制帧等。因此,是否同时BAMTP.DT取决于所使用的具体协议。如果系统遵循J1939,那么文会BAM;如果遵循ISO-TP,则会使用首帧、流控制帧连续帧(可能对应TP.DT)。两者一般不共存于同一协议中。 另外,需要提醒用户注意协议版本具体应用场景,不同标准可能有不同的结构要求。例如,诊断用的UDS over CAN会采用ISO-TP,而商用车可能用J1939BAM机制。 总结来说,回答需要明确BAMTP.DT各自的协议背景,指出它们通常不一起使用,而是属于不同标准中的组成部分。同时,结构是否含这两者取决于具体采用的协议规范。</think>文的结构设计需结合具体协议规范(如CAN总线、ISO-TPJ1939等),以下是分步解析: 1. **文的必要性** 当传数据长度超过单帧容量(如CAN的8字节限制)时,需将数据拆分为,并添加协议控制信息以实现分段传与重组。 2. **关键组成部分** - **文头**:含控制信息(如文类型、总长度、序号等) - **数据载荷**:实际传的分段数据 - **校验/状态字段**:用于错误检测或流控制 3. **BAM(Broadcast Announcement Message)的作用** - **所属协议**:常见于SAE J1939标准 - **功能**:在广播数据前发送通知,声明后续数据数量总长度 - **结构示例**: ```text BAM帧格式:[优先级][PGN][源地址][数据长度][总数][保留位] ``` 4. **TP.DT(Transport Protocol Data Transfer)的定位** - **所属协议**:ISO 15765-2(ISO-TP- **功能**:在流控制阶段传实际数据分段(即连续帧) - **结构示例**: ```text TP.DT帧格式:[帧类型(0x2X)][序号][数据载荷] ``` 5. **BAMTP.DT的兼容性** - **J1939协议流程**: ```mermaid graph LR A[发送BAM] --> B[接收方准备缓存] B --> C[发送数据(非TP.DT格式)] ``` - **ISO-TP协议流程**: ```mermaid graph LR A[发送首帧FF] --> B[接收方回复流控制帧FC] B --> C[发送连续帧TP.DT] ``` 6. **选择依据** - **汽车诊断(UDS)**:采用ISO-TP,需TP.DT - **商用车通信(J1939)**:使用BAM机制,无需TP.DT - **混合场景**:两者一般不共存,需严格遵循目标系统的协议栈要求 **结论**:BAMTP.DT分属不同协议体系,文结构应基于具体协议选择其一,而非同时含。设计时需明确目标系统遵循的标准(如J1939或ISO-TP),并严格按对应规范实现文结构。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

特大号汤姆猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值