LINUX CAN CANFD配置及常见操作

CAN指令

  • CAN接收指令

用法 candump canX //can第X号端口接收监听CAN总线
e.g.:candump can1

  • CAN发送指令 cansend canX XXX#11223344

XXX:表示标识符ID ID越小 优先级越高 CAN数据冲突时,优先发送。后面112233344表示发送的数据 以16进制表示 最小发送数据单位是字节 可发0~8个字节
e.g.:cansend can0 2c1#1122334455667788

CAN状态以及统计CAN收发情况查询指令

  • ip -details -statistics link show canX 查询CANX的状态及情况

e.g.:ip -details -statistics link show can1

CAN网络关闭

  • ip link set canX down //关闭canX网络

e.g.:ip link set can1 down

CAN网络启动

  • ip link set up canX //启动canX网路

e.g.:ip link set up can1

查看当前网络 ifconfig -a
可以看当前网络下网卡信息(CAN也附属于网卡内)

加载can模块

  • sudo modprove can
  • sudo modprove can_raw
  • sudo modprove can_dev
  • sudo modprove mttcan

配置CAN模块波特率

  • ip link set canX type can bitrate 500000

//设置CANX 波特率为500Kbps

回环测试

有两种回环,外部回环和内部回环。外部回环需要TX和RX断接。

外部回环

Short the Tx and Rx pins of the Jetson carrier board’s CAN0。需断接TX和RX引脚。
回环测试可用过测试xavier的CAN控制器驱动的问题和验证写的socket can程序(如同创建一个虚拟can)。不用考虑实际波特率、can电阻和接线情况。适合于开发测试。
设置can0错误报告和回环模式
如果出现报错,报错应该在dmesg上有显示错误类型。
sudo ifconfig can0 down
sudo ip link set up can0 type can bitrate 500000 berr-reporting on loopback on

can0 后台接收运行
candump can0 &

can0随机发送
cangen can0

收发测试
canudmp cansend

CANFD测试

1. 设置并启动can0为canfd模式

can0 仲裁段波特率为500K 采样点为0.8,数据场波特率为2M bitrate 采样点为0.75
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 500000 sample-point 0.8 dbitrate 2000000 dsample-point 0.75 fd on restart-ms 1000
sudo ip link set can0 up

2. canfd收发测试

can0接收,can1发送。
candump can0

CAN1send
cansend can1 123##300112233445566778899aabbccddeeff

CAN延时及其fd测试
线束can3-H与can4-H相连,线束线束can3-L与can4-L相连,H与L之间加一个120欧姆负载电阻。
can0接收前后两帧差分时间
candump -td can0

can1发送canfd 报文
cansend can1 123##300112233445566778899aabbccddeeff

 (000.000000)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.002545)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.000000)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.002562)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.000000)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.002618)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.000000)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
 (000.002605)  can0  123  [16]  00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF

设置can buffer空间

cd /sys/class/net/can3
echo 4096 > tx_queue_len
cat tx_queue_len

linux can卡更多配置信息参考

ip link set can0 type can help

你可能感兴趣的:(Linux系统基础,linux)