久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 如何計算CAN通信波特率

如何計算CAN通信波特率

發布人:美男子玩編程 時間:2024-01-10 來源:工程師 發布文章

在CAN總線系統中,波特率的計算是一個關鍵步驟,它確保網絡上的所有設備能夠以相同的速率進行通信。

1

理論

波特率的計算涉及到幾個關鍵參數,包括CAN控制器的時鐘頻率、分頻因子、以及位時間的不同部分。

時鐘頻率(Fclk)

  • CAN控制器的時鐘頻率。

    這是CAN模塊的輸入時鐘,通常來自于微控制器的主時鐘。

分頻因子(Prescaler)

  • 用于從主時鐘頻率中分頻得到位時間計數器的時鐘頻率。

    分頻因子可以增大位時間,使得CAN總線能夠在較低的波特率下工作。

位時間(Bit Time)

  • 位時間由幾個部分組成,總共需要滿足規定的時間量子(Time Quanta,TQ)數:


    • 同步段(Sync Seg):

      用于同步不同節點上的數據邊緣,固定為1 TQ。

    • 傳播時間段(Prop Seg):

      用于補償網絡中的物理延遲,長度可以調整。

    • 相位緩沖段1(Phase Seg1)和相位緩沖段2(Phase Seg2):

      用于對抗信號抖動和網絡延遲,長度可調。

基于上述參數,CAN波特率的計算公式如下:


波特率 = Fclk / (Prescaler * Bit Time)

其中,Bit Time = Sync Seg + Prop Seg + Phase Seg1 + Phase Seg2。

假設一個CAN控制器有如下參數:

  • Fclk = 16 MHz

  • Prescaler = 8

  • Sync Seg = 1 TQ

  • Prop Seg = 2 TQ

  • Phase Seg1 = 3 TQ

  • Phase Seg2 = 2 TQ

  • Bit Time = 1 + 2 + 3 + 2 = 8 TQ

則波特率為:


波特率 = 16 MHz / (8 * 8 TQ) = 16,000,000 / 64 = 250,000 bps (或250 kbps)

2

實踐

以AT32F413這款MCU為例,CAN波特率計算公式如下所示:

圖片


CAN 總線的額定位時間由 3 部分組成:

1、同步段(SYNC_SEG),該段占用 1 時間單元,即公式中的1 x t

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: CAN

技術專區

關閉