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 當兩個中斷源的搶占式優先順序相同時,這兩個中斷將沒有巢狀關係,當乙個中斷到來後,如...