集成 CAN 上的 UDS 引导加载器和 J1939 堆栈 说明: 嗨,团队、 我在 S32K344 上使用 S32DS 3.6.5 和 RTD 3.0.0。 目前正在实施: FlexCAN CAN 通信 通过 ISO-TP 的 UDS 引导加载程序 J1939 应用通信 GCC 编译器 AUTOSAR RTD 驱动器 我需要有关以下方面共存的指导: UDS 诊断(ISO14229) ISO-TP 传输层 J1939 通信栈 如何在 S32k344 中通过软件选择 CAN 终端电阻配置? 解释如何在收发器和 MCU 中设计 CAN 终端 问题 在同一个 CAN 控制器上同时运行 UDS 和 J1939 的推荐架构是什么? 是否建议为 UDS 和 J1939 使用不同的 CAN 报文缓冲器? 如何配置 CAN ID 过滤? 恩智浦是否有以下参考示例: UDS 引导加载程序 J1939 堆栈 共享使用 FlexCAN RTD 3.0 在这种使用情况下有什么已知限制吗? 控制器: S32K344 RTD 3.0 S32DS 3.5 谢谢。 Re: Integration of UDS Bootloader and J1939 Stack on CAN 您好,
1) 使用单个 FlexCAN 实例,并行运行两个堆栈,但在逻辑上将它们分开。UDS (ISO‑TP) 和 J1939 应共享驱动程序,而软件调度层则基于 CAN ID/MB 索引路由帧。 2) 是的,建议这样做。 为 UDS 和 J1939 分配专用 Rx/Tx 消息缓冲区 (MB),以避免干扰并简化过滤。
3) 配置硬件过滤(MB 掩码/ID 过滤器),以便 - UDS 帧只进入 UDS MB - J1939 帧只进入 J1939 MB - 确保没有 ID 重叠,并正确处理 11 位与 29 位的帧
4) 恩智浦参考示例 -UDS 引导加载程序:仅以演示形式提供;https://community.nxp.com/t5/S32K-Knowledge-Base/Unified-bootloader-Demo/ta-p/1423099 -J1939 堆栈:恩智浦未以全栈形式提供(通常为第三方或自定义) -共享 FlexCan 用法:存在基本的 FlexCan 示例,但没有完整的 UDS + J1939 组合参考文档
5) 对 RTD300 没有限制,但一般建议使用最新的 RTD。 现有的演示通常使用不同的 RTD 版本,因此任何移植都取决于用户。
BR, Petr
記事全体を表示