關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于STM32F1O5的CAN總線中繼器的設計與實現

        基于STM32F1O5的CAN總線中繼器的設計與實現

        作者: 時間:2011-04-14 來源:網絡 收藏

        1.5 波特率設置及ID設置電路
        波特率設置電路由兩個4位撥碼開關構成,STM32F105通過讀取每個波特率撥碼開關的編碼值確定每一路接口的波特率,每一路接口可以選擇16種不同的波特率。由于兩個接口是通過內部進行通信,因此它們的ID可設置為相同的值,ID設置電路由4位編碼的旋轉編碼開關構成,ID的值為編碼開關的編碼值加上0x190。

        2 CAN中繼器軟件的
        CAN中繼器的主要作用是對接收到的CAN報文進行過濾轉發。中繼器的工作流程為:中繼器上電時通過讀取波特率設置電路和ID設置電路的狀態,設置好波特率和ID值。初始化完成后,STM32F105通過監聽兩個CAN接口的中斷完成數據的存儲轉發。當CAN接口A收到上的數據包時產生中斷,中斷處理程序根據標準標識符(StdId)和擴展標識符(ExtId)判斷該數據包是標準幀還是擴展幀,同時將該ID值和ID過濾表中的值進行對比,若符合過濾條件則不轉發,否則將數據包通過CAN接口B轉發出去。
        系統的主程序流程如圖4所示。系統上電時先初始化時鐘和端口,根據配置波特率設置電路和ID設置電路的狀態配置好CAN接口的參數,打開CAN1和CAN2接口的接收中斷。系統在主程序中不斷掃描波特率設置電路和ID設置電路的狀態是否有變化,若當前的讀取值和上次的讀取值不一樣,則重新配置波特率和ID。CAN數據包的存儲轉發在中斷服務程序中完成。為了避免系統若受到干擾死機后不能重啟,因此需打開STM32F105的內置看門狗,看門狗的復位由芯片內部的滴答時鐘每50ms喂狗一次。

        本文引用地址:http://www.104case.com/article/162174.htm

        d.JPG



        3 結束語
        本文采用了采用雙CAN接口的高性能的ARM處理器STMF105作為CAN中繼器的主控CPU,可以很好地解決兩個CAN接口的主從狀態轉換,具有結構簡單、性能穩定、實時性高等特點,有一定的社會效益和廣泛的推廣價值。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 霍林郭勒市| 永济市| 买车| 三都| 苍南县| 准格尔旗| 淮滨县| 临沭县| 获嘉县| 襄樊市| 江孜县| 永仁县| 余庆县| 高要市| 乌什县| 河南省| 静乐县| 绵阳市| 沂源县| 金阳县| 丰城市| 大连市| 盐亭县| 辉南县| 澜沧| 清丰县| 花莲县| 思南县| 洮南市| 桂阳县| 西丰县| 广东省| 吴江市| 德阳市| 乌拉特中旗| 独山县| 米林县| 伽师县| 平安县| 申扎县| 开远市|