今天看啥  ›  专栏  ›  汽车电子与软件

AUTOSAR实战干货:为什么仅发出一帧CAN报文?

汽车电子与软件  · 公众号  ·  · 2024-07-02 21:59
    

文章预览

1. 问题背景 在软件开发初期基本上需要开发CAN驱动模块,最为常见的一类问题就是 软件内部虽然在周期发送CAN帧,但是仅发出一帧? 今天小T跟大家一起来解析这个最为常见的问题原因,以英飞凌TC3XX芯片CAN驱动开发为例。 2. 过程分析 2.1 CAN发送状态分析 以TC3XX芯片为例,CAN发送一般均通过如下函数接口 Can_17_McmCan_Write 对外发送CAN报文。 该函数也有相应的返回值, 相关说明如下图: 我们通过调试代码发现此时 canStatus的状态为CAN_BUSY, 则表示当前CAN没有可用的Tx hardware buffer 。 Q1 : 为什么没有可用的Tx hardware Buffer呢 ? Ans :  首先我们查看下回复CAN_BUSY的条件: CanTxMask表示32个Tx的发送状态Bit位,其中某Bit位为1表示当前Tx Buffer处于空闲状态,为0则表示已经使用。当前可以看到是由于Line 7564行条件满足时才会进入到CAN_BUSY状态。 其中BufferIndex可理解为对 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览