新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > STM32的CAN總線中繼器設計及應用

        STM32的CAN總線中繼器設計及應用

        作者: 時間:2011-03-11 來源:網絡 收藏

        2 中繼器的軟件實現
        中繼器的主要任務是在兩個網絡中進行數據的過濾和轉發。其軟件主要包括以下模塊:初始化模塊、數據發送模塊和接收模塊等。
        2.1 初始化模塊
        初始化直接關系到控制器能否正常工作,在很多情況下,軟件不能正常工作并不是CAN的收發程序有問題,往往是初始化配置不正確造成的。的CAN初始化主要包括CAN寄存器初始化、CAN單元初始化(包括CAN模式和波特率的設置)、CAN過濾器的初始化。由于開發商提供了大量的固件庫函數,所以只需在調用的時間作出相應的設置即可。初始化子程序如下所示:
        ①CAN單元初始化子程序。

        c.JPG
        在該初始化子程序中最關鍵的環節是怎么設置CAN的波特率,數據手冊給出了波特率的計算公式:
        d.JPG
        其中tq為CAN時鐘周期。如上述CAN單元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN時鐘有APB1提供。假設系統時鐘為72 MHz,APB1為系統時鐘的9分頻,結合初始化子程序,CAN_Prescaler=1,帶入波特率計算公式即可求的其波特率為500 kb/s。
        ②CAN過濾器的初始化子程序。

        f.JPG
        CAN過濾器設置的得當與否是CAN是否能夠成功接收信息的關鍵,尤其在過濾器組位寬和模式上,如何將節點的ID號準確地映射到過濾器組位寬設置寄存器上是過濾器的核心。為了過濾出一組標識符,設置過濾器工作在屏蔽位模式下,對標識符的任何一位采用“必須匹配”或“不用關心”的原則處理。



        關鍵詞: 應用 設計 總線 CAN STM32

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安泽县| 眉山市| 洛浦县| 灵丘县| 确山县| 林周县| 安龙县| 清镇市| 张家港市| 汝州市| 车致| 息烽县| 福州市| 忻州市| 浪卡子县| 乳源| 长岛县| 普兰店市| 新野县| 巴林左旗| 马山县| 库车县| 调兵山市| 桑植县| 水富县| 榆社县| 太仓市| 余姚市| 肥城市| 中江县| 安龙县| 积石山| 澳门| 咸阳市| 萍乡市| 北碚区| 茌平县| 高邮市| 怀来县| 河源市| 安远县|