在表1中,对于每个整数的TQ总数,一个TQ必须提供给SYNC段,PS2(或TSEG2)段必须足够大,以容纳CAN控制器信息处理时间(只要BRP大于4,MCP2515为2 TQ,ADSP-BF548为小于1 TQ)。另外,对于MCP2515,PROP和PS1最多可以各有8 TQ;对于ADSP-BF548,TSEG1 (PROP + PS1)最多可以为16 TQ。图4和图5分别展示了MC...
延长/缩短TSeg段来达到同步:Prop和TSeg1段小,而TSeg2加大时,采样点前移;Prop+TSeg1段大,而TSeg2减小时,采样点后移。 SJW (reSynchronization Jump Width):重新同步补偿宽度,即在重新同步的时候,TSeg1和TSeg2段的允许加长或缩短的时间长度,SJW加大后允许误差加大,但通信速率下降。SJW为补偿此误差的最大值(即...
TSEG1 (Time segment 1): TSEG1是吸收CAN网络上物理延迟的网段。CAN网络上的物理延迟是CAN总线上的延迟,输入比较器中的延迟和输出驱动器中的延迟的两倍。 TSEG2 (Time segment 2): TSEG2是补偿由于频率误差引起的相位误差的部分 SJW (Resynchronization jump width) SJW是延长或减少时间段的长度,以补偿由于相位...
50%=Tseg2/NBT=[(TSEG2+1)tq]/16*tq=(TSEG2+1)/16 即有:TSEG2=7。 那么Tseg1= NBT-Tseg2-Tsync=7tq,所以TSEG1=6。 再根据下式计算SJW, 这里直接假设TSJW=3*tq能保证下式两个不等式成立(不在此处展开Tprope的讨论),那么SJW=2。 综上有:DIV8=0, BRP=4,TSEG1=6,TSEG2=7,SJW=2。
通过设定每个段由多少个Tq构成等,可设定1bit为多少个Tq,从而决定比特率,从而决定传输的波特率。 举个例子: 如果一个BitTime中TSeg1=7, TSeg2 =2,则Tq总和固定为10个Tq,即同步段(1) + TSeg1 + TSeg2 = 10, 如一个Tq=50ns,则一个bit时间Tb=500ns,比特率为1/500ns=2Mb/s。编辑...
先算TSEG2,即有: 1-87.5%=Tseg2/NBT=[(TSEG2+1)*tq]/8*tq=(TSEG2+1)/8 即有:TSEG2=0,注意也就是相位缓冲段2(PBS2)为1个tq 那么Tseg1= NBT-Tseg2-Tsync=6tq,所以TSEG1=5。 再根据下式计算SJW, 因为Tseg2=1Tq,所以SJW只能取0。综上有:DIV8=0, BRP=4,TSEG1=5,TSEG2=0,SJW=...
SS,同步段,一般固定占用1个Tq。TSEG1和TSEG2,分别代表时间分段1和时间分段2,采样点就选在这两个时间分段之间。由于采样点不可能绝对精确,于是就有了SJW重同步宽度,就是冗余误差范围。 根据波特率的计算公式: Bitrate=fCAN/(BRP+1)/(1+TSEG1+TSEG2) ...
同步段(sync_seg ) 传播时间段(prop_seg ) 相位缓冲段1(phase_Seg1 ) 相位缓冲段2(phase_Seg2) 以上将1bit电平时间分为10等分,1等分称为1个Time Quantum(Tq).为方便编程,很多厂家将prop_seg和Phase_Seg1合在一起为TSEG1,phase_Seg2称为TSEG2.如下所示: ...
晶振时钟频率11M, SJW为1个Tq, TSEG1 为18, TSEG2为3,则采样点计算带入上面的公式, (1+18)/(1+18+3) = 86.3636%约等于86%。其他计算类似。希望对你有所帮助,在自己动手写CAN通信配置CAN位速率的时候尽量使采样点靠近7/8位时间点。
tSJW=TSCL×(2×SJW.1+1×SJW.0+1) (5) 总线时序寄存器1 定义每个位周期长度采样点的位置和在每个采样点的采样数目。位功能说明如表2所列,其中SAM意义见表3。 表2 表3 TSEG1(共4位,取值区间[1,16])和TSEG2(共3位,取值区间[1,8])决定了每一位时钟数目和采样点的位置。这里 ...