PCAN-VIEW中BTR0和BTR1解释
对于一般的控制器的CAN配置主要使用SEG1和SEG2来代表相位缓冲时间。但是对于PCAN设备中会有所不同。主要是因为PCAN使用了外置的CAN控制器。它将其中的寄存器内容直接展露出来。
它使用的独立CAN控制器是一个来自飞利浦的SJA1000,而BTR(BUS TIMING REGISTER)是这个控制器的内部寄存器的名称
在PCAN-view中的模式选择里面就可以看到CAN控制器型号。
根据PCAN-view的手册说明,这个mode参数应该有三种可能的选项。
CAN (SJA1000):使用外部的SJA1000CAN控制器(实际上大部分硬件已经没有此控制器。估计是为了进行版本兼容,而继续使用设个选项)。这个选项中,时钟源是不可修改的8M
CAN:这个选项的设备时钟频率可以大于8M
CAN FD:字面意思,用于FD设备
BTR0
BTR0参数代表了两个含义:
SJW:同步跳变宽度,这个参数在有的手册中也叫RJW,这两个名称是同一个含义
BRP:波特率分频器,这个参数主要与Tq数量和Tq时间有关,指的是8M晶振如何进行分频
BTR1
在BTR1中主要显示相位缓冲段1和2。
TSEG2:相位缓冲段2
TSEG1:相位缓冲段1,注意此控制器的相位缓冲段是4位。是因为这个控制器没有单独的传播段设置。它将传播段混合到了TSEG1里面
已有配置举例
现在我按照PCAN-view中的已有配置举例。注意SJA1000的“相位缓冲段”中包含了“传播段”长度的设置。所以在举例中看不到“传播段”的设置。
第一个例子计算如下:
BTR0 = 0 说明SJW = 0+1 = 1,重定位宽度为1;BRP = 0+1 = 1,分频系数为1,就是不分频。在不分频率的时候Tq是125ns,Nq是16。
BTR1 = 1C 说明TSEG2 = 2;TSEG1 = 13;
验算下Nq = TSEG2 + TSEG1 +1 = 16,符合BTR0中配置的参数
此时采样点为(1+TSEG1 )/Nq = 14/16 = 87.5%。PCAN软件中显示88%是被四舍五入的
第二个例子计算如下:
BTR0 = 41 说明SJW = 1+1 = 2,重定位宽度为2;BRP = 1+1 = 2,分频系数为2,将频率/2。在此时Tq是250ns,Nq是8。
BTR1 = 14 说明TSEG2 = 2;TSEG1 = 5;
验算下Nq = TSEG2 + TSEG1 +1 = 5 +2 +1 = 8,符合BTR0中配置的参数
此时采样点为(1+TSEG1 )/Nq = 6/8 = 75%。
总结
其实对于一般使用人员的来说不需要纠结BTR0和BTR1的配置。因为从结果来看,软件已经把含义显示在了Sample Point、Nq和SJW这三个列当中了。只要注意观察这三列就足够了。