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

關 閉

新聞中心

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://cqxgywz.com/article/162174.htm

d.JPG



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


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉