linux can的使用

  1. 查看详细信息
ip -details link show can0

linux can的使用_第1张图片
2、设置波特率

ip link set can0 type can bitrate 250000

3、调节各段设置波特率跟采样点

ip link set can0 type can tq 125 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1 

CAN总线的位时序与参数设置
tq :节拍称为时间量子(Time quantum, Tq)这里对应的单位(ns)
linux can的使用_第2张图片
几个关键值的计算:
在这里插入图片描述
采样点: (prop-seg + phase-seg1 + sjw)/(prop-seg + phase-seg1 + phase-seg2 + sjw)
(6+6+1)/(6+6+2+1) = 0.8666…

每个时钟周期: 1/30000000 = 3.333333333333333e-8
500K波特率下一个位周期: 1/500000 = 0.000002
tq*总段数 = 位周期

tq = n * 时钟周期
即:n * 时钟周期 * 总段数 = 位周期
n * 总段数=位周期/时钟周期
n * 总段数 = 30000000/500000 = 60;
找出两个整数n和 “总段数” 乘积 = 60;
1 * 60
2 * 30
3 * 20
4 * 15
5 * 12
6 * 10
linux can的使用_第3张图片
剩下这三组
3 * 20
4 * 15
5 * 12

找一个接近87.5的采样点
20 * 0.875 = 17.5
15 * 0.875 = 13.125
12 * 0.875 = 10.5
显然4 * 15这组比较合适

tq = 4 * (1 / 30000000) = 1.333333333333333e-7 秒 = 133ns

你可能感兴趣的:(linux)