【分享】i.MX6Q linux can总线编程

2020-02-20 20:28发布

Socket CAN是在Linux下CAN协议实现的一种实现方法。Linux下最早使用CAN的方法是基于字符设备来实现的,与之不同的是Socket CAN使用伯克利的Socket接口和Linux网络协议栈,这种方法使得CAN设备驱动可以通过网络接口来调用。Socket CAN的接口被设计的尽量接近TCP/IP的协议,让那些熟悉网络编程的程序员能够比较容易的学习和使用。

经过这样的抽象我们应用层的代码编写变得简单了。
下面把我整理的代码贴出来,大家看看,如果有问题,欢迎跟帖讨论。
我的代码参考了canutils源码实现。
头文件
QQ截图20140904145717.png (72.43 KB, 下载次数: 0) 下载附件 2014-9-4 14:57 上传

源代码打包,注意,编译时需要自己指定相应的库。

src.rar (3.64 KB, 下载次数: 25) 2014-9-4 15:12 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
bruce_helen
1楼-- · 2020-02-23 06:51
qs6361036 发表于 2014-12-8 16:01
Socket CAN通信协议貌似很强大 , 这个最多能支持多少个节点 ?

这个和CAN协议有关,标准CAN id,11bit,扩展CAN id,29bit
浪里白条
2楼-- · 2020-02-23 08:36
 精彩回答 2  元偷偷看……
fengyunyu
3楼-- · 2020-02-23 12:47
qs6361036 发表于 2014-12-8 16:01
Socket CAN通信协议貌似很强大 , 这个最多能支持多少个节点 ?


一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。一般100多个没问题。
fengyunyu
4楼-- · 2020-02-23 18:05
bruce_helen 发表于 2014-12-13 06:39
这个和CAN协议有关,标准CAN id,11bit,扩展CAN id,29bit


单从id上看,直接的节点数近乎无数了。
qs6361036
5楼-- · 2020-02-23 20:57
bruce_helen 发表于 2014-12-13 06:39
这个和CAN协议有关,标准CAN id,11bit,扩展CAN id,29bit

我说的是节点个数 。能连接的设备个数  
xiexie943
6楼-- · 2020-02-24 02:16
刚买的板子,过几天搞一下

一周热门 更多>