[CAN-bus/DeviceNet] 请问CAN控制器为什么要有3个64深度的FIFO?

[复制链接]
3148|11
 楼主| open82977352 发表于 2012-8-22 10:41 | 显示全部楼层 |阅读模式
请教各位大侠一个问题:

为什么can控制器要用3个64深度的ram来作为fifo,分别是8位、4位和1位,后面两个一直闹不明白。。。
后面两个不是存储帧长度信息和过载信息吗?要64深度怎么用的?
hyhmh 发表于 2012-8-22 14:23 | 显示全部楼层
要看 什么型号?
不可 一概而论吧
 楼主| open82977352 发表于 2012-8-22 15:28 | 显示全部楼层
那请问哪种是有这样的3个FIFO?有遇到过么?

2# hyhmh
airwill 发表于 2012-8-22 20:20 | 显示全部楼层
这是考虑了 CAN 数据包的最大长度而定的
 楼主| open82977352 发表于 2012-8-23 08:02 | 显示全部楼层
4# airwill


请问能否稍微讲解下?
airwill 发表于 2012-8-25 21:03 | 显示全部楼层
每个 CAN 帧中最长的数据位 8 字节
 楼主| open82977352 发表于 2012-8-28 08:46 | 显示全部楼层
6# airwill


对啊,8字节和64深度什么关系啊?
第一个64深度好理解,后面两个4位的64深度和1位的64深度就不知道怎么用了。。。
hyhmh 发表于 2012-8-29 10:15 | 显示全部楼层
没有 具体的针对对象(CAN控制器型号) 讨论起来 意义不大。 AT90CAN128/64/32 内置的 CAN控制器 有15个MOB
15 MOb (Message Object) with their own: – 11 bits of Identifier Tag (rev 2.0 A), 29 bits of Identifier Tag (rev 2.0 B) – 11 bits of Identifier Mask (rev 2.0 A), 29 bits of Identifier Mask (rev 2.0 B) – 8 Bytes Data Buffer (Static Allocation) – Tx, Rx, Frame Buffer or Automatic Reply Configuration – Time Stamping
关于缓冲的描述: CAN Data Buffers To preserve register allocation, the CAN data buffer is seen such as a FIFO (with address pointer accessible) into a MOb selection.This also allows to reduce the risks of un-controlled accesses. There is one FIFO per MOb. This FIFO is accessed into a MOb page thanks to the CAN message register.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| open82977352 发表于 2012-8-30 08:10 | 显示全部楼层
8# hyhmh


针对sja1000能给我解释下FIFO,接收缓冲器和发送缓冲器的关系么?
hyhmh 发表于 2012-8-30 11:00 | 显示全部楼层
自己看书、看资料!
misra 发表于 2012-8-30 19:04 | 显示全部楼层
不设置FIFO  就是一下子就能就收8个字节

设置了FIFO  一下子就接收超过8个字节。

太简单了  很简单
misra 发表于 2012-8-30 19:04 | 显示全部楼层
FIFO 设置起来比较麻烦  
没那精力搞那玩意

我的场合用不上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

36

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部