打印
[STC单片机]

请教CAN扩展芯片MCP2515扩展帧序号的问题

[复制链接]
2149|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
alphal|  楼主 | 2014-9-18 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用USBCAN(周立功出品)总线分析对MCP2515发扩展帧,发现:MCP收到的帧序号的标准帧部分和扩展帧部分位置是调转的,把他们调过来就和USBCAN发送的帧序号对的上。如:USBCAN发送的扩展帧序号AB(A是扩展部分,B是标准部分),MCP从寄存器读出的却是BA。
用MCP发出扩展帧序号为AB(按这个顺序写入寄存器),用USBCAN同样接收显示的却是BA。

用K60的FLEXCAN来和MCP2515通信情况一样,即FLEXCAN和USBCAN是一致的,和MCP2515是调转的。发标准帧的时候是正常的,看样子像是发扩展帧的时候扩展部分(18bit)先发的,看数据手册写的是标准部分在前,扩展部分在后,手册里也没有看到哪个寄存器能配置这个先后顺序,请问这是为什么??

相关帖子

沙发
tudou21| | 2014-9-18 23:22 | 只看该作者
看bosch CAN 2.0 B部分就知道,扩展帧的11位部分是先发的,然后发送后面的18位,也就是说基本ID决定了扩展帧的基本仲裁优先权。
在MCP寄存器中,从低地址往高地址是基本ID高位,基本ID地位,扩展ID高位,扩展ID低位。你看看程序写的是否正确。

使用特权

评论回复
板凳
alphal|  楼主 | 2014-9-19 21:23 | 只看该作者
tudou21 发表于 2014-9-18 23:22
看bosch CAN 2.0 B部分就知道,扩展帧的11位部分是先发的,然后发送后面的18位,也就是说基本ID决定了扩展 ...

听你这么说11位部分先发有道理。
但是咱们通常定义扩展ID的时候扩展部分是放在高位,基本ID在低位,如果基本ID先发,那接收的时候(我用USBCAN和飞思卡尔K60芯片的FlexCAN接收都一样)基本ID就在高位,扩展ID在低位。那接收方得到的ID就不正确了。
奇怪的是这些不是都遵守同一个标准么,那这种情况是是谁不对了??

用FlexCAN发送的时候,MCP接收到的ID也是基本ID在高位,扩展部分在低位,对应不上。

“在MCP寄存器中,从低地址往高地址是基本ID高位,基本ID地位,扩展ID高位,扩展ID低位”我的程序是这样的,如果我寄存器错了也不可能出现刚好这两部分换位就正确的情况。


谢谢您的回复。

使用特权

评论回复
地板
tudou21| | 2014-9-21 21:31 | 只看该作者
一直用标准帧,没用过扩展帧。帮不上你,你问问Microchip的FAE试试。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

473

帖子

1

粉丝