J1939Tp (SAE J1939 Transport Layer)

AUTOSAR(Automotive Open System Architecture)是一种用于汽车电子电气系统的标准化软件架构。J1939是由SAE(Society of Automotive Engineers,美国汽车工程师学会)制订的一系列规范,广泛用于商用车辆和重型设备的通信。J1939 Transport Layer(J1939Tp)模块是AUTOSAR中的一个重要部分,它处理跨多个CAN(Controller Area Network)报文的数据传输,这些数据被称为多报文传输。

J1939Tp 模块的主要功能

J1939Tp模块主要有以下几个功能:

  1. 数据分段和重组:J1939协议规定的单个CAN帧的数据长度是8字节,J1939Tp负责将较大的数据消息划分为多个8字节的小分段在CAN网络上传输,并在接收方将这些小分段重新组装成完整的消息。
  2. 传输协议管理:J1939Tp负责管理传输过程,包括初始化、数据发送和接收、重发机制以及错误处理。
  3. 多路传输:支持多个并发的数据传输通道,利用唯一的消息ID(Identifier,标识符)来区分不同的数据消息。
  4. 通讯参数管理:管理和配置包括超时参数、重发次数、窗口大小等通讯参数。

J1939Tp 的主要组件

J1939Tp模块的实现一般包含以下几个主要组件:

  1. TP管理器 (TP Manager):负责整体传输协议的管理,包括初始握手、传输状态监控和错误处理等。
  2. 分段管理器 (Segment Manager):实现数据的分段和重组功能,保证消息的正确拼装和解码。
  3. 通讯控制器 (Comm Controller):与CAN模块(CAN Interface,CAN通道)交互,具体执行数据帧的发送和接收。

关键概念与通讯流程

数据分段和合并
  • BAM(Broadcast Announce Message):一种不需要确认的广播模式,会在发送数据之前广播一条消息宣布接下来数据分段的传输。
  • RTS-CTS(Request to Send - Clear to Send):一种带有确认的通讯模式,发送方请求发送数据,接收方确认可以接收数据。
流程示例

1. BAM模式

  • 发送方先发送BAM报文,宣布即将发送的数据分段。
  • 发送方按顺序发送所有数据分段。
  • 接收方接收所有数据分段并按顺序重组为完整消息。

2. RTS-CTS模式

  • 发送方发送RTS报文,请求发送某个数据。
  • 接收方根据接收能力发送CTS报文,允许按窗口尺寸个数的数据分段发送。
  • 发送方按照接收方的窗口尺寸发送数据分段,接收方接收后发送CTS继续请求,直至所有分段传输完毕。

配置与参数

J1939Tp模块需要配置多个参数以正确工作,这些包括但不限于:

  • Max Number of Segments:单次传输的数据分段最大个数。
  • Timeout Parameters:包括RTS-CTS模式下的超时、BAM模式下的超时等。
  • Retry Count:传输失败时的重试次数。

错误处理

J1939Tp模块需要具备健壮的错误处理机制,如:

  • 超时处理:在指定时间内未收到预期的CTS或者数据分段时进行重试或报错。
  • 检测并处理丢失或错误的数据分段:如果检测到数据分段丢失或者接收到错误的数据段,模块需要采取对应的补救措施,如重发或者报错。

总结

J1939Tp模块在AUTOSAR架构中用于处理跨多个CAN报文进行的多报文传输。它不仅负责数据分段和重组,还需要管理复杂的传输协议和错误处理。通过高效管理通讯参数和实现可靠的传输机制,J1939Tp确保车辆和设备的稳定通讯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值