Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
SAE J2366-4 标准定义了一种专为智能交通系统(ITS)数据总线(IDB)设计的薄传输层(Thin Transport Layer)协议,运行于 CAN 总线之上。该协议以轻量级、高效率为目标,在资源受限的车载嵌入式环境中提供可靠的数据传输服务。本文将从协议架构、帧格式、分组确认机制及工程应用等方面进行深入探讨。
薄传输层位于 OSI 模型的传输层,利用底层 CAN 的仲裁与错误检测能力。协议通过五种数据帧类型实现对多帧消息的分段传输:Single、Start、Cont、End 以及用于重新同步的 Resync 帧。控制帧包括 ACK 和 NAK,用于确认与错误报告。
表 1 列出了主要帧类型及其用途:
| 帧类型 | 代码 | 说明 |
|---|---|---|
| DataFrameSingle | 0 | 适合单帧传输的短消息 |
| DataFrameStart | 1 | 多帧消息的起始帧 |
| DataFrameCont | 2 | 多帧消息的中间连续帧 |
| DataFrameEnd | 3 | 多帧消息的结束帧 |
| DataFrameResync | 4 | 丢失同步时用于重新建立同步 |
| ACK | 5 | 接收方发送的肯定确认 |
| NAK | 6 | 接收方发送的否定确认,携带错误原因 |
帧格式中包含了序列号、消息 ID、传输协议控制字节(TPCI)、数据段等字段。实际应用中需严格遵循字节填充与排序规则。
薄传输层通过帧分组(Frame Group)实现高效传输:发送方可在一次握手内连续发送多帧数据,分组的最大帧数由系统及网络负载决定。接收方使用 TMaxAck 定时器等待确认,若超时未收到 ACK 则触发重传。TInactivity 定时器用于监视总线空闲,超时后节点应释放总线资源。TFrameGroup 定时器规定了分组发送的时间窗口。
肯定确认(ACK)由收端在成功接收完整消息后回复;否定确认(NAK)则携带错误码(见表2),指出帧缺失、序列号错误等。发送方根据 NAK 可决定重传该帧或执行重新同步。
当发生帧丢失或序列号错乱时,接收方可通过 DataFrameResync 帧发起重同步流程,双方重置序列号并重新开始传输。
| NAK 原因码 | 含义 |
|---|---|
| 0 | 未明确错误 |
| 1 | 帧序列号错误 |
| 2 | 帧丢失 |
| 3 | 分组尺寸超出预期 |
| 4 | 消息 ID 无效 |
在实现 SAE J2366-4 堆栈时,工程师应注意几个易混淆之处:
理解并正确实现 SAE J2366-4 薄传输层,是构建稳定、高效 ITS 数据总线的关键。该协议的轻量级设计使其在车载嵌入式领域拥有广阔应用前景,工程师可结合具体项目需求,参考本文要点优化实现。