CAN-发送处理(Tx Handling)

上传者: 62434750 | 上传时间: 2025-12-18 19:02:52 | 文件大小: 546KB | 文件类型: PDF
CAN
Tx Handling 是 M_CAN 发送链路中枢,协调专用 Tx Buffer、Tx FIFO、Tx Queue 与 CAN Core 的数据流,确保消息按优先级传输,平衡 CPU 配置与总线速率,支持 Classic CAN/CAN FD M_CAN 发送链路的中枢,即 Tx Handling(发送处理),是负责协调专用 Tx Buffer、Tx FIFO 和 Tx Queue 与 CAN Core 之间数据流的核心组件。它的主要任务是确保 CAN 总线上的消息可以按照既定的优先级被无冲突地传输,同时平衡 Host CPU 的消息配置速度和 CAN 总线的实际传输速率。 M_CAN 支持灵活的消息传输模式,包括 Classic CAN 和 CAN FD(Flexible Data-rate)。其中,专用 Tx Buffer 数量最多支持32个,它们可以通过 TXBC 寄存器配置为 Tx FIFO 或 Tx Queue 元素。每个 Tx Buffer 的传输模式可以独立配置为 Classic CAN 或 CAN FD,这由 CCCR 寄存器的全局配置和 Tx Buffer 元素的局部配置共同决定。 在 Classic CAN 模式下,若 CCCR 配置 BRSE=任意,FDOE=0,则所有消息强制按 Classic CAN 传输。若需要启用 CAN FD 模式,必须满足 CCCR 寄存器中 FDOE=1 的条件。而在 CAN FD 模式下,如果需要比特率切换,还需要满足 CCCR 中 BRSE=1 和 Tx Buffer 中的 FDF=1 以及 BRS=1 的条件。这表示 CAN FD 传输可以是有比特率切换的,也可以是没有比特率切换的,而这一点是由相应的寄存器位决定的。 在 Tx Handler 的管理下,Host 通过 TXBAR 发起传输请求,或通过 TXBCR 发起取消请求,控制消息的传输。消息传输后,相关信息会存入 Tx Event FIFO,供 Host 查询传输状态。Tx 扫描是 Tx Handler 实现消息按优先级传输的核心机制,它在 TXBRP 寄存器更新时启动。通过遍历所有置位的 TXBRP 寄存器位,读取对应的 Tx Buffer 消息 ID,找出 ID 最小的 Tx Buffer,并标记为最高优先级待传输请求。这样做的目的是加快后续传输。消息的传输是由 CAN Core 实现的。 M_CAN 的传输优先级由消息 ID 的大小决定,ID 越小优先级越高,这符合 CAN 协议的仲裁规则。在传输过程中, Tx 扫描和临时缓冲区预加载机制确保传输效率。Host 时钟频率、 Tx Buffer 数量和共享 Message RAM 的 M_CAN 数量决定了 Tx 扫描所需的时间。在当前传输或接收结束前完成临时缓冲区预加载,以减少延迟并快速启动预加载消息的传输。 M_CAN 的 Tx Handling 在设计上考虑了优先级反转的风险,即在 Tx 扫描加上临时缓冲区预加载的过程中可能出现的优先级问题。确保了消息能够按照既定优先级无冲突地传输,同时平衡了 CPU 的配置速度和 CAN 总线的传输速率。通过精心设计的机制和硬件资源配置,M_CAN 能够支持 Classic CAN 和 CAN FD 两种灵活的传输模式,以满足各种 CAN 应用场景的需求。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明