
关于Autosar J1939Tp模块的总结文档.docx
5星
- 浏览量: 0
- 大小:None
- 文件类型:DOCX
简介:
本文档全面总结了AutoSAR J1939 TP模块的关键特性和应用,包括数据传输协议、诊断功能及故障处理机制,旨在为工程师提供深入的技术指导。
AUTOSAR J1939TP 模块是基于 SAE J1939 网络协议和 CAN 总线的传输层模块,在 AUTOSAR 架构中,该模块位于 PDUR 和 CAN 接口模块之间,负责数据的发送与接收。
J1939TP 的主要功能包括:
- 发送时的数据分包及发送;
- 接收时的数据重组和解析;
- 数据流控制;
- 超时检测以及错误检查机制,在数据拆包和组装过程中发挥作用;
该模块通过 CanlfTransmit、J1939Tp TxConfirmation 和 J1939Tp RxIndication 与 CAN 接口进行通信。
根据 SAEJ1939-21 的规定,传输协议分为 BAM 广播模式以及 CMDT 点对点模式。当 PGN 中的 PF 值小于 240,且 DA 表示特定节点地址时,则使用 CMDT 协议;而 PF 大于或等于 240 或者 DA 是广播地址 (FF) 的情况则采用 BAM。
J1939TP 模块提供的服务包括初始化和关闭操作以及通讯功能。前者使模块从 J1939TP_OFF 状态变为 J1939TP_ON,反之亦然;后者涉及数据传输请求、确认与接收等过程,并且这些服务均独立于内部通信机制。
在实际运行中,上层应用通过调用异步函数 J1939Tp_Transmit 来发起数据发送。若此时信道被占用,则该请求将遭到拒绝并返回 ENOT_OK 错误码。此外,J1939TP 模块还提供两个关键的下层服务:
- 传输确认:通过调用函数 J1939Tp_TxConfirmation() 实现;
- 接收确认:由 J1939Tp_RxIndication() 完成;
在数据传输过程中,J1939TP 模块的状态变化会触发相应的上层服务。例如,在成功发送报文后,模块将调用 PduRJ1939TpTxConfirmation 并返回 NTFRSIT_OK 值以通知传输完成;若发生错误,则同样通过此接口报告 DET 代码。
最后,该模块与 PDUR 模块的交互包括数据获取和传递。具体而言,它利用 PduR_J1939TpCopyTxData 接口从上层接收数据,并使用 PduR_J1939TpCopyRxData 向上传递接收到的数据。在整个传输过程中,上层模块必须保持缓冲区锁定以确保一致性。
总之,AUTOSAR J1939TP 模块作为基于 SAE J1939 和 CAN 总线的通信协议实现者,在数据发送和接收方面扮演着关键角色,并通过与 CanIf 及 PDUR 的交互来支持整个系统中的高效通讯。
全部评论 (0)


