|
顺便发一个计算位时间的 大家讨论
关于CAN的波特率的计算,在数据手册上已经有很详细的说明。在此,简要的把计算方法给出来:
Tcsc :bit位每一编码的时间长度,每bit可以配置为8~25位编码,常设为16 。
Tcsc=1/波特率/编码长度 ;按上计算 Tcsc=1/1MHz/16=62.5ns (取63) 。
BRP = (Tcsc x MCK) - 1=6.3-1 (可以取 5)
各种延迟(Tprs :)
Delay of the bus driver: 50 ns
Delay of the receiver: 30ns
Delay of the bus line (20m): 110ns
Tprs = 2 * (50+30+110) ns = 380 ns
PROPAG= 380 ns/ Tcsc-1 =6.08Tcsc-1 (可取 6)
Tphs1 + Tphs2 = bit time - Tcsc - Tprs = (16 - 1 - 7)Tcsc= 8
常取 Tphs1 = Tphs2 ,所以 Tphs1 = Tphs2 =4 ;
Tsjw = Min(4 Tcsc,Tphs1) = 4 Tcsc (From 1 to Tphs1 )
SJW = Tsjw/Tcsc - 1 = 3 ;
现在CAN_BR 中的各个参数就都有了(BRP=5 ;SJW=3;PROPAG=6;PHASE1=PHASE=4),填进去就应该OK了 。
|
|