CAN口波特率计算工具是一款功能非常强大的波特率计算器,这款波特率计算器使用方法非常的简单,计算出来的结果很准确,不会出现误差。有了这款波特率计算器,就可以快速的帮助用户进行计算出NXP系列的CAN控制器。
软件特色
1、500K波特率
FCAN/CAN baudrate = 6 MHz/500 kHz = 12,在8-25范围,所以BRP=1,TQ数目=12/1=12
Prog_Seg Phase_Seg1 Phase_Seg2分别等于3、4、4
寄存器编程值为(上述值减1):
BRP=0,SJW=3,PRS=2,PHS1=3,PHS2=3
2、100K波特率
FCAN/CAN baudrate = 6 MHz/100 kHz = 60,取BRP=6,TQ数目=60/6=10
Prog_Seg Phase_Seg1 Phase_Seg2分别等于2、3、4
寄存器编程值为(上述值减1):
BRP=5,SJW=2,PRS=1,PHS1=2,PHS2=2
3、10K波特率
FCAN/CAN baudrate = 6 MHz/100 kHz = 600,取BRP=60,TQ数目=600/60=10
Prog_Seg Phase_Seg1 Phase_Seg2分别等于2、3、4
寄存器编程值为(上述值减1):
BRP=59,SJW=2,PRS=1,PHS1=2,PHS2=2
4、5K波特率
FCAN/CAN baudrate = 6 MHz/5 kHz = 1200,取BRP=60,TQ数目=1200/60=20
Prog_Seg Phase_Seg1 Phase_Seg2分别等于6、6、7
寄存器编程值为(上述值减1):
BRP=59,SJW=3,PRS=5,PHS1=5,PHS2=6
使用方法
1、在软件右边的第一个框(clock)中填写CAN控制器的系统时钟。例如实际使用中SJA1000的晶体振荡器为的16Mhz,则需要填入“16000”;
2、在软件右边的第二个框(Baudrate)中埴写用户需要的实际波特率。例如用户需要500Kbps的波特率,则需填入“500”;
3、如果允许计算出来的波特率有1%的误差(根据CAN协议1%的误差在容许的范围内),那么就勾选复选框“Match +1%”;
4、在软件左上角选择采样率(samples)。采样率可以选择采样一次或采样三次,通常情况下,在低波特率(低于40Kbps)的情况下使用三次采样,这样可以有效的消除总线毛刺。在高波特率的情况下,通常使用一次采样;
5、以上对波特率的要求填写完成之后,点击计算按钮(Calculate),在左边的表格中就会计算出用户所使用的波特率。
表格中罗列出来的结果由下图所示的6部分参数组成,它们表示的意思如下:
1、Btr0
总线定时器0,其中高两位为同步跳转宽度,低六位为波特率预设值。
2、Btr1
总线定时器1,其中低四位为相位缓冲段1,每四位至第六位为相位缓冲段 1,最高位为采样次数选择。
3、 BTLCycles
总线定时器的所占单位时间份额的数量,总线定时器长度 = 单位时 间*BTLCycle,即有BTLCycle=(同步段+传播段+相位缓冲段1+相位缓冲段2),通常同步段和传播段为1个时间份额。
4、 SJW
总线重同步跳转宽度,通常情况下其数值范围是1~4。
5、Sampling Point
总线采样点的位置,即采样总线时采样点占整个位时间的位置。
6、 Actual
按照该组数据的算出来的准确波特率值。 表格中所罗列出来的数值,按照CAN的协议都是満足要求的,用户可以任挑一组数据作为当前波特率的数值。但是如果在点击了计算按钮,表格中没有计算出数据,则表示根据用户设置的晶体振荡器频率和需要的波特率无法计算出満足要求的结果,这种情况下用户可以试着改变晶体振荡频率或波特率来重新计算。
取值范围
参数 范围 编程值 说明
BRP [1..64] 0-63 定义时间量子(时间份额)的长度tq
Sync_Seg 1 tq 固定长度,总线输入与系统时钟同步
Prog_Seg [1..8]tq 0-7 补偿物理延时时间
Phase_Seg1 [1..8]tq 0-7 可通过同步暂时延长
Phase_Seg2 [1..8]tq 0-7 可通过同步暂时缩短
TSJW [1..4]tq 0-3 不能比任何一相位缓冲段长