|
最近在搞060的CAN,碰到波特率的计算现在很是头疼。
使用的是内部晶振,系统时钟12.25MHz,刚开始是设定的1Mbit/s,扩展帧传播,总线上加了100欧的电阻与LPC2119通讯,从0.5米到30米收发都没有问题。
现在根据需要要50Kbit/s的波特率,计算结果实际中不能用,我估计计算方法有问题,请大家评评。
////////////////////////// 可以使用 /////////////////////////////////////////////////////////////////
晶振:12.25MHz
时间量子 81.633 ns (1+BRP_)/12.25mhz BRP=0;
1个标称位时间 1000ns/81.633 ns=12.249~~12个tq(最小整数)
------ 波特率 1M的倒数 1/(1M)=1000ns
传播时间段 2*(10米×5ns+150)/81.633=4.899----5
2-----来回传播时间
10米---1M最远节点10米
150---- CAN延时
5ns------5 ns/m signal delay time.
prop_seg=4.42~~5tq (考虑到总线延时取整数)
sync_seg=1tq
phase_seg2=3tq
phase_seg1=3tq
sjw =(min(Phase_Seg1, 4) tq = 3tq
0 010 0111 10 000000 =0x2780;
///////////////////////// 不能使用 ///////////////////////////////////////////////////
晶振:12.25MHz 50K bit/s
System clock f_sys = 12.25Mhz
System clock period t_sys = 1/f_sys = 81.633 ns
CAN time quantum tq = t_sys*20 (at BRP = 19) =1632.65306ns
1个标称位时间 20000ns/1632.65306ns=12.25个tq(最小整数)-------------------12个tq
传播延时时间段 2*(1200米×5ns+150)/1632.65306ns =7.53
CAN bus length = 1300 m, with 5 ns/m signal delay time.
Propagation delay time : 2*(6500+ 150) = 13300 ns
prop_seg=8tq (考虑到总线延时取整数)
sync_seg=1tq
phase_seg2+phase_seg1=12-1-8=3
phase_seg2=2tq
phase_seg1=1tq
sjw =(min(Phase_Seg1, 4) tq = 1tq
这是在http://www.docin.com/p-48575706.html上看到的计算方法,请问如果50Kbit,应该怎么算??? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|