您的位置:控制工程论坛网论坛 » 教程与手册 » CAN总线学习心得一:CAN总线波特率计算

xilinxue

xilinxue   |   当前状态:在线

总积分:16186  2024年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2020-03-22

空间 发短消息加为好友

CAN总线学习心得一:CAN总线波特率计算

xilinxue  发表于 2008/11/25 13:15:47      801 查看 0 回复  [上一主题]  [下一主题]

手机阅读

看了很多资料,都迷迷糊糊的。

 

CAN总线有两个定时器。

定时寄存器0的位   

  7                  6              5                4              3             2              1             0

SJW.1        SJW.0     BRP.5        BRP.4      BRP.3      BRP.2     BRP.1      BRP.0

定时寄存器1的位   

  7                  6              5                4              3              2                 1                0

SAM    TSEG2.2    TSEG2.1    TSEG2.0   TSEG1.3  TSEG1.2    TSEG1.1   TSEG1.0

 

CAN系统时钟公式

 tscl=2*tclk*(32*BRP.5+16*BRP.4+8*BRP.3+4*BRP.2+2*BRP.1+BRP.0+1)

               其中tclk=1/晶振频率

同步跳转宽度  tSJW="tscl"*(2*SJW.1+SJW.0+1)

位周期T=tSYNCSEG+tTSEG1+tTSEG2

                tTSEG1=tscl*(8*TSEG1.3+4*TSEG1.2+2*TSEG1.1+TSEG1.0+1)

                tTSEG2=tscl*(4*TSEG2.2+2*TSEG2.1+TSEG2.0+1)

 

比如定时器0为0x31 定时器1为0x1c,那么波特率为10K

 

周立功有篇文章就是讲这个的,这个和整个系统的优化有很大的关系的。

1楼 0 0 回复