bxcan是基本擴充套件can(basic extended can)的縮寫,它支援can協議2.0a和2.0b;它的設計目標是以最小的cpu負載來高效處理大量的報文。它也支援報文傳送的優先順序要求(優先順序可軟體配置)。
bxcan模組可以完全自動地接收和傳送can報文,且完全支援標準識別符號(11位)和擴充套件識別符號(29位)。
支援can協議2.0a和2.0b主動模式;
波特率最高可達1兆位/秒;(屬於osi11898標準)
支援時間觸發通訊功能;(可以通過時間戳來進行資料同步)
共有3個傳送郵箱供軟體來傳送報文。傳送排程器根據優先順序決定哪個郵箱的報文先被傳送;
傳送報文的優先順序特性可軟體配置
記錄傳送sof時刻的時間戳
接收3級深度的2個接收fifo;
共有2個接收fifo,每個fifo都可以存放3個完整的報文。它們完全有硬體來管理;
14個位寬可變的過濾器組-由整個can共享;(沒通過過濾器的報文就直接丟棄掉)
共有14個位寬可變/可配置的識別符號過濾器組,軟體通過對其設定,從而在引腳收到的報文中選擇它的需要的報文,而把其他報文丟棄。
識別符號列表;
fifo溢位處理方式可配置;
記錄接收sof時刻的時間戳;
可支援時間觸發通訊模式
禁止自動重傳模式
16位自由執行定時器;(定時器的作用:提供時間戳)
定時器解析度可配置
可在最後2個資料位元組傳送時間戳
管理中斷可遮蔽
郵箱占用單獨1塊位址空間,便於提高軟體效率
控制、狀態和配置暫存器
應用程式通過這些暫存器,可以:
配置can引數,比如速度相關的波特率(所謂波特率就是傳送乙個位資料所花費的時間)
請求傳送報文
處理報文接收
管理中斷
獲取診斷資訊
bxcan有3個主要的工作模式:初始化、正常和睡眠模式;
還包括:測試模式、靜默模式、環迴模式、環迴靜默模式
初始化模式:主要是進行配置,配置完就進入正常模式。然後進入睡眠模式(低功耗模式)
接收到的報文,被儲存在3級郵箱深度的fifo中。fifo完全由硬體來管理,從而節省了cpu的處理負荷,簡化了軟體並保證了資料的一致性。應用程式只能通過讀取fifo輸出郵箱,來讀取fifo中最先收到的報文;
接收相關的中斷
一旦往fifo存入1個報文,硬體就會更新fmp[1:0]位,並且如果can_ier暫存器的fmpie位
為1,那麼就會產生乙個中斷請求。
當fifo變滿時(即第3個報文被存入),can_rfxr暫存器的full位就被置1,並且如果
can_ier暫存器的ffie位為1,那麼就會產生乙個滿中斷請求。
在溢位的情況下,fovr位被置1,並且如果can_ier暫存器的fovie位為1,那麼就會產生
乙個溢位中斷請求。
STM32的CAN匯流排除錯
1.使用stm32的can匯流排,回環程式寫好之後,在無外接收發晶元的情況下,使程式不斷發資料,使用示波器可以看到tx引腳有波形,而rx引腳沒有波形 2.模式改為正常模式,在沒有接收發晶元的情況下再次測一下tx與rx的波形,但是發現使用示波器採集不到波形,而且在發了幾次資料後會進行標準庫的斷言,一直...
STM32的匯流排AMBA AHB APB
一 匯流排的簡單介紹 處理器無疑是計算機中最重要的部件,但並不是唯一的部件。一台計算機也需要隨機訪問儲存器 ram 來存放機器碼指令以便讓處理器執行。計算機還必須有一些方法使這些指令進入ram 輸入裝置 以及一些方法使程式執行結果得以看見 輸出裝置 ram是易失性的,當斷電時,它的內容就會丟失。所以...
stm32的匯流排AMBA AHB APB
出處 amba advanced microprocessor bus architecture 是arm公司提出的一種開放性的soc匯流排標準,現在已經廣泛的應用於risc的核心上了。amba定義了一種 多匯流排系統 multilevel busing system 包括系統匯流排和等級稍低的外設...