STM32學習之CAN控制器簡介

2021-09-24 21:22:56 字數 2033 閱讀 4930

1、stm32自帶了基本擴充套件can外設,又稱bxcan,bxcan的特點如下:

支援can協議2.0a和2.0b主動模式

波特率最高達1mbps

支援時間觸發通訊

具有3個傳送郵箱

具有3級深度的2個接收fifo

可變的篩選器組(也稱過濾器組,最多28個)

2、stm32 can控制器簡介-模式

①初始化模式(inrq=1,sleep=0)

②正常模式(inrq=0,sleep=0)

③睡眠模式(sleep=1)

測試模式

①靜默模式( lbkm=0,silm=1 )

②環迴模式( lbkm=1,silm=0 )

③環迴靜默模式(lbkm=1,silm=1)

除錯模式

3、stm32 can控制器簡介-bxcan框圖

can控制器框圖如下:

can的識別符號不表示目的位址而是表示傳送優先順序。接收節點根據識別符號的值,來決定是否接收對應訊息。

stm32 can控制器,提供了28個可配置的篩選器組(f1僅互聯型才有28個,其他的只有14個),可降低cpu處理can通訊的開銷。

stm32 can控制器每個篩選器組由2個32位暫存器組成(can_fxr1和can_fxr2,x=0~27)。根據位寬不同,每個篩選器組可提供:

● 1個32位篩選器,包括:stdid[10:0]、extid[17:0]、ide和rtr位

● 2個16位篩選器,包括:stdid[10:0]、ide、rtr和extid[17:15]位

篩選器可配置為:遮蔽位模式和識別符號列表模式。在遮蔽位模式下,識別符號暫存器和遮蔽暫存器一起,指定報文識別符號的任何一位,應該按照「必須匹配」或「不用關心」處理。而在識別符號列表模式下,遮蔽暫存器也被當作識別符號暫存器用。因此,不是採用乙個識別符號加乙個遮蔽位的方式,而是使用2個識別符號暫存器。接收報文識別符號的每一位都必須跟篩選器識別符號相同。

通過can_fm1r和can_fs1r可配置篩選器的位寬和模式:

為了過濾出一組識別符號,應該設定篩選器組工作在遮蔽位模式。

為了過濾出乙個識別符號,應該設定過濾器組工作在識別符號列表模式。

應用程式不用的篩選器組,應該保持在禁用狀態(通過can_fa1r設定)。

篩選器組中的每個篩選器,都被編號為(即:篩選器編號)從0開始,到某個最大數值-取決於篩選器組的模式和位寬的設定。

通過can_ffa1r的設定,可以將篩選器組關聯到fifo0/fifo1

例:設定篩選器組0工作在:1個32位篩選器-識別符號遮蔽模式,然後設定can_f0r1=0xffff0000,can_f0r2=0xff00ff00。其中存放到can_f0r1的值就是期望收到的id,即(stid+extid+ide+rtr)最好是:0xffff0000。而0xff00ff00就是設定我們需要必須關心的id,表示收到的映像,其位[31:24]和位[15:8]這16個位的必須和can_f0r1中對應的位一模一樣,而另外的16個位則不關心,可以一樣,也可以不一樣,都認為是正確的id,即收到的映像必須是0xffxx00xx,才算是正確的(x表示不關心)。

3、stm32 can控制器簡介-傳送流程

can傳送流程:

can傳送流程為:

程式選擇1個空置的郵箱(tme=1)->設定識別符號(id),資料長度和傳送資料->設定can_tixr的txrq位為1,請求傳送->郵箱**(等待成為最高優先順序)->預定傳送(等待匯流排空閒)->傳送->郵箱空置。

can接收流程 :

can接收流程為:

fifo空->收到有效報文->**_1(存入fifo的乙個郵箱,這個由硬體控制,我們不需要理會)->收到有效報文->**_2->收到有效報文->**_3->收到有效報文->溢位。

can收到的有效報文,儲存在3級郵箱深度的fifo中。fifo接收到的報文數,我們可以通過查詢can_rfxr的fmp暫存器來得到,只要fmp不為0,我們就可以從fifo讀出收到的報文。

4、stm32 can控制器簡介-位時序:

stm32的can位時序,如下圖所示:

stm32f103,設ts1=8、ts2=7、brp=3,波特率=36000/[(9+8+1)*4]=500kbps。

STM32之CAN控制器

1 can只具有can high和can low兩條訊號線,can是以差分訊號的形式進行通訊的 2 can通訊有兩種網路 一種是遵循iso11898標準的高速短距離閉環網路,它的匯流排最大長度為40m,通訊速度最高位1mbit s 另外一種是遵循iso11519 2標準的低速遠距離開環網路,最大傳輸...

STM32網路之MAC控制器

之前的文章主要介紹了stm32的externalphy intereface部分,stm32網路電路設計 也就是下圖區域1。本文將重點講解stm32的mac控制器,也就是下圖區域2。stm32的mac控制器全稱是 mediaaccess control。stm32f207的mac控制器支援的模式 其...

STM32 巢狀向量中斷控制器NVIC學習

stm32中有兩個優先順序的概念 搶占式優先順序和響應優先順序 也叫副優先順序 他們的特性是 1 高搶占式優先順序的中斷可以巢狀在低搶占式優先順序的中斷中 即低搶占式優先順序的中斷可以被高搶占式優先順序的中斷打斷 2 當兩個中斷源的搶占式優先順序相同時,這兩個中斷將沒有巢狀關係,當乙個中斷到來後,如...