1 CAN测试
首先进入net文件夹查看设备
cd /sys/class/net/
对CANFD接口进行初始化,设置仲裁域波特率为1Mbps,采样率为80%;数据域波特率为5Mbps,采样率为75%,设置发送缓冲区为2048000字节大小:(这里得先了解一下自己的板子是否支持CANFD)。
ip link set can0 type can bitrate 1000000 sample-point 0.8 dbitrate 5000000 dsample-point 0.75 fd on restart-ms 1000
应该很好理解,设置CAN0,仲裁波特率为1Mbps,采样率80%;数据波特率5Mbps,采样率75%,fd为CANFD模式
ip link set can0 up
使能CAN0;
cangen -f -g 0 -L 32 -D i can0 -n 204800
cangen生成随机CAN流量 -f 为CANFD -g为帧之间的间隔,这里填的是0, -L 32 长度32位 发送204800帧。
可以看下这个指令的参数
提示没有足够的可用数组空间,
通过cat /sys/class/net/can0/tx_queue_len查看发送队列长度。
echo 2048000 > /sys/class/net/can0/tx_queue_len
增加空间,再次发送。
2500帧每秒,通道占用率81%左右。
收到的数据也正常,没有错误帧。
cangen -b -g 0 -L 32 -D i can0 -n 204800
发送CANFD加速帧,数据长度为32,发送204800帧。
相比于CANFD,加速帧就可以到达九千帧每秒通道占用80%左右。
同样没有错误帧。