MPC5643L单片机——CAN通信FIFO接收使用笔记

一、一个FIFO最多可存储几组CAN数据?

手册里介绍了RX FIFO的寄存器数据结构,0x90-0xDC保留用作存储FIFO引擎,它里面的结构和上面0x80~0x90完全一样吗?也是16个字节吗?好像没有说明。根据大小计算0xDC-0x90=0x4C=76Bytes。若存储16个字节,可存储4个数据。换言之,FIFO里面最多可存储1+5=6个数据(至少包含ID)

二、FIFO初始化: 

       不是任何帧都能进FIFO,首先使能FIFO,然后指定符合哪些CANID的帧可以进FIFO,即设置FIFO ID Table,显然最多允许8个CANID的帧。

         

三、如何使用FIFO接收数据:

       情况一,比如下载程序时,用500kbps波特率,平均一帧8Bytes传输时间400us, 按1ms间隔传输。那么主程序也以1ms间隔接收,总体上两边吞吐率相等。会发生某个间隔内有2帧数据,也会发生下一个间隔总线上没有一帧数据。这样的话只要检测到IFLAG1.B.BUF5I==1,就认为Buffer里还有数据(CANID+8字节Data+数据长度+时间戳),立即取出来。从而不会丢失数据。

      情况一,总线上以500us甚至更短间隔传输数据,但是每次最多只传输6个字节。那么主程序无论以多长周期接收,只要接收6次,就可以把Buffer里面的数据全部取完。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值