查看: 234|回复: 0

AIO-3399ProC开发板 ---CAN 通信

[复制链接]

313

主题

470

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
18616
发表于 2020-11-20 09:56:10 | 显示全部楼层 |阅读模式
      CAN(Controller Area Network)总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线是一种在汽车上广泛采用的总线协议,被设计作为汽车环境中的微控制器通讯。 如果想了解更多的内容可以参考CAN应用报告
更详细看这里
http://wiki.t-firefly.com/AIO-3399ProC/driver_can.html
通信测试

CAN通信测试,驱动在AIO-3399ProC上默认已经做了支持,所以直接使用 candump 和 cansend 工具进行收发报文测试即可,将工具push到/system/bin/目录下执行。工具可以在 官方 或者 github 下载。

ip link set can0 type can bitrate 250000            //在收发端设置比特率为250Kbpsip link set can0 up                                    //在收发端打开can0设备candump can0                                        //在接收端执行candump,阻塞等待报文cansend can0 123#1122334455667788                     //在发送端执行cansend,发送报文

报文收发成功现象(这里分别用2台AIO-3399ProC做数据传输): 至此,MCP2515模块通信调试已经成功。

在测试的过程中发现,当设置比特率为500Kbps及以上时,如果使用 cansend 的时间间隔过短(使用频率太快),在接收端会出现多收、收错的现象。




特别要注意的是看FAQ
FAQS

总结调试过程中遇到的几个问题及解决方法:

Q: “ifconfig -a” 查看不到canX设备。

A: 检查驱动是否移植成功进入probe,检查MCP2515_CAN模块供电是否正常,是否损坏。

Q: 报文发送后很久才接收到,或者接收不到。

A:检查总线 CAN_H 和 CAN_L, 杜邦线是否松动或者接反。

Q:接收端只成功接收一次报文,后面就再也接收不到报文了。

A:检查MCP2515模块的INT中断引脚在dts中是否配对;INT引脚是否和开发板对应的pin脚连接上



风火轮微信公众号
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风火轮WIKI|手机版|深圳风火轮团队 ( 粤ICP备17095099号

GMT+8, 2020-12-6 08:28 , Processed in 0.055877 second(s), 24 queries .

快速回复 返回顶部 返回列表
 
【客服1】 商务合作 15289193
【客服2】 业务洽谈 13257599
【客服3】 售前咨询 510313198
【邮箱】
smartfire@smartfire.cn