can通信入门

这篇博客详细介绍了如何在Linux环境下使用SocketCAN进行CAN总线的操作,包括加载虚拟CAN模块、添加网卡、设置波特率、回环模式,以及发送和接收CAN帧。还提供了各种SocketCAN指令的解释,帮助用户进行设备管理和数据传输测试。
摘要由CSDN通过智能技术生成

1、加载虚拟can模块

sudo modprobe vcan

2、添加vcan0网卡

sudo ip link add dev vcan0 type vcan

3、可以查到当前can网络 can0 can1,包括收发包数量、是否有错误等等

ifconfig -a 

4、设置can0的波特率为800kbps,CAN网络波特率最大值为1Mbpsip

link set can0 up type can bitrate 800000
//ip link set can0 type can --help

5、设置回环模式,自发自收,用于测试是硬件是否正常, loopback不一定支持

ip link set can0 up type can bitrate 800000 loopback on

6、关闭can0 网络

ip link set can0 down

7、发送默认ID为0x1的can标准帧,数据为0x11 22 33 44 55 66 77 88, 每次最大8个byte

cansend can0 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88

-e 表示扩展帧,CAN_ID最大29bit,标准帧CAN_ID最大11bit
-i表示CAN_ID 0x800

cansend can0 -i 0x800 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e

cansend --loop 表示发送20个包

cansend can0 -i 0x02 0x11 0x12 --loop=20

8、接收CAN0数据

candump can0

9、Socket CAN指令详解

ip link set canX down //关闭can设备;
ip link set canX up   //开启can设备;
ip -details link show canX //显示can设备详细信息;
candump canX  //接收can总线发来的数据;
ifconfig canX down //关闭can设备,以便配置;
ip link set canX up type can bitrate 250000 //设置can波特率
conconfig canX bitrate + 波特率;
canconfig canX start //启动can设备;
canconfig canX ctrlmode loopback on //回环测试;
canconfig canX restart // 重启can设备;
canconfig canX stop //停止can设备;
canecho canX //查看can设备总线状态;
cansend canX --identifier=ID+数据 //发送数据;
candump canX --filter=ID:mask//使用滤波器接收ID匹配的数据

参考:
1、http://processors.wiki.ti.com/index.php/AM335X_DCAN_Driver_Guide
2、Bringing CAN interface up - eLinux.org

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值