打印
[CAN-bus/DeviceNet]

关于MCP2515和SJA1000之间通信的问题

[复制链接]
5254|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hufei1956|  楼主 | 2011-3-22 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手头有周立功的USBCAN-2的设备,有研华的PCI-1680U,这两个设备都是SJA1000的,今早上两个可以正常通信了,这两个设备都是完好无损的,(买这两个就是为了测试)。现在还有一个开发板,它用的是MCP2515的,好像寄存器的很多地方不一样,也在开发板上写了程序,不能保证程序对,但是什么反应都没有,想问问有没有用过MCP2515和SJA1000之间通信吗?
      问题不止这里,手边还有人设计基于C8051F40的一块板搭TI的CAN收发器,最后要把这些都给通信上,请问难度会很大吗?
      期待高人给些指导,感觉前面的方向不明……
      迷惑中!
评论
tieMaBingHe 2019-11-26 14:48 回复TA
MCP2515还是不错的,我都实现了,sja1000感觉比较繁琐了,楼主有sja1000的文档吗 

相关帖子

沙发
hufei1956|  楼主 | 2011-3-22 21:45 | 只看该作者
不同的CAN控制器在做CRC校验的时候,用的是一个公式吗?看到校验这一块想起的问题。

使用特权

评论回复
板凳
lnskngdc| | 2011-3-22 22:52 | 只看该作者
CAN总线是自动仲裁的,不需要软件crc校验。
所有不通can控制器互相通讯要注意的是波特率的匹配。

使用特权

评论回复
地板
ejack| | 2011-3-25 08:14 | 只看该作者
1. CRC校验公式必须相同,否则就违反了规范。
2. 检查你的程序。CAN协议的规格是统一的,不同厂家的产品只要支持CAN协议就必须能够正常通信。

使用特权

评论回复
5
hufei1956|  楼主 | 2011-3-26 12:42 | 只看该作者
据MCP2515;
这两天调程序发现一个问题,就是运行到发送缓冲器准备发送时,先向TXB0CTRL写0x0B,再次读TXB0CTRL时就变成了0x1B,根据芯片手册,就是TXBOCTRL.TXERR位被置1了,就是报文发送期间发生总线错误,但又不知道问题发生在哪里,也不知道改哪里好,希望有大侠为我解答疑惑,不甚感激……

使用特权

评论回复
6
hufei1956|  楼主 | 2011-3-28 12:13 | 只看该作者
问题得到解决,飞凌开发板上的CAN总线程序中关于位时间配置的寄存器CNF1,CNF2,CNF3配置不对,害我弄了这么长时间啊。终于可以正常收发,进行下一步。

使用特权

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

本版积分规则

7

主题

65

帖子

0

粉丝