J1939Tp传输模式详解:BAM与CMDT操作与调度

需积分: 0 22 下载量 15 浏览量 更新于2024-08-04 收藏 645KB PDF 举报
本文主要探讨了AUTOSAR J1939Tp的传输方式,这是一个针对车辆网络通信协议的补充模块,旨在处理超过8字节的Packet Data Units (PDUs,N-SDUs)的重组和拆分。J1939Tp在AUTOSAR架构中扮演着关键角色,支持两种传输模式:BAM(广播模式)和CMDT(点对点传输模式),这两种模式在实际应用中有不同的功能和性能要求。 首先,文章概述了J1939Tp的基本概念和工作原理。当系统配置允许且实际传输数据未超过8字节时,J1939Tp将负责处理这些大PDU的传输。初始化和关闭阶段有严格的顺序,特别是当DET(Development Error Detection)启用时,确保J1939Tp_Init()函数之前的所有操作必须成功执行,否则会导致错误。 在数据传输方面,分为两种模式: 1. **直接传输模式(DirectPG)**:适用于数据长度小于8字节的情况。其数据流包括PDUR、J1939Tp和CANIF之间的函数调用顺序,确保数据的准确发送和接收。中断机制用于实时通知J1939Tp接收新的报文,如通过J1939Tp_RxIndication函数。接收报文后,J1939Tp可能通过PduR_J1939TpCopyTxData或PduR_J1939TpCopyRxData与上层协议栈进行数据交换,这时上层buffer需要保持锁定以保证数据连续性。 2. **点对点传输模式(CMDT)**:对于超过8字节的PDUs,采用点对点传输,J1939Tp需要严格遵循CMDT相关的时序约束,如Tr、Th、T1至T4等,确保数据的正确传输。报文接收过程中,同样涉及PDUR、J1939Tp和CANIF之间的协作,接收指示信号TP.CM_RTS后,上层会通过PduR_J1939TpStartOfReception获取接收缓冲区,并可能进行数据复制操作。 本文提供了一个深入理解J1939Tp工作流程和功能细节的框架,对于从事AUTOSAR开发的工程师来说,无论是设计车辆网络通信模块还是优化数据传输性能,都是非常有价值的参考资料。了解并掌握这些传输模式的细节是提升系统效率和可靠性的关键。