<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

以STM8為例的CAN濾波器內容

奈因PCB電路板設計 ? 來源:ST MCU技術部門 ? 作者:Felix.zhao ? 2021-08-11 11:06 ? 次閱讀

前言在CAN協議里,報文的標識符不代表節點的地址,而是跟報文的內容相關的。因此,發送者以廣播的形式把報文發送給所有的接收者。節點在接收報文時,根據標識符的值決定軟件是否需要該報文;如果需要,就拷貝到RAM里;如果不需要,報文就被丟棄且無需軟件的干預。為滿足這一需求,beCAN為應用程序提供了個可配置的、位寬可變的6個(0-5)過濾器組,用于只接收那些軟件需要的報文。硬件過濾的做法節省了CPU開銷,否則就必須由軟件進行過濾,從而占用一定的CPU資源。

濾波器設置濾波器設置包括下面幾個寄存器:CAN濾波模式寄存器1 (CAN_FMR1)和CAN濾波模式寄存器2(CAN_FMR2)、CAN濾波配置寄存器1 (CAN_FCR1)、CAN濾波配置寄存器2 (CAN_FCR2)和CAN濾波配置寄存器3 (CAN_FCR3),CAN濾波組i寄存器x (CAN_FiRx) (i = 0 。。 5, x = 1 。。 8)。

濾波模式寄存器用于設置濾波器為標識符列表模式和掩碼模式,濾波配置寄存器用于開啟或關閉濾波器和濾波器的寬度設置,濾波組用于具體濾波設置。6個可配置的位寬可變的過濾器組,通過FSCx0(x=1..6)和FSCx1(x=1..6)設置濾波寬度,

就32位濾波器設置進行解讀,CAN報文分為標準幀和擴展幀,標準幀ID11位,擴展幀29位,ID與濾波配置映射關系如上表所示,如濾波模式設置可知可以分為兩個ID或者一個ID+Mask。當需要過濾某一段ID時,使用ID+Mask模式,當過濾具體ID時直接使用ID模式即可。如果我的擴展id是0x12345678 ;想只接收0x12xxxxxx的標識符號,該如何設置濾波器,此處采用32位濾波器0進行濾波配置,因此FSC00 = 1;FSC01 = 1;FMH0 = 0;FML0 = 0;擴展id為0x12345678 (0001,0010,0011,0100,0101,0110,0111,1000)將擴展幀ID填入CAN幀ID格式中

RTR位我們設置為0表示數據幀,IDE位設置為1表示擴展ID,因為我們的ID是29位的,所以RTR = 0;IDE = 1;

如果要關心到具體的某一個比特位置;如果要過濾讓它只接收0x12xxxxxx的表示符號;這時候要根據它實際在identify中的位置去修改idmask ; 前八個比特,對應的就是黃色和綠色的部分,所以其他的顏色,可以都填0表示不需要關心,則這里填入:1 1 1 1 ,1 x x x,我們這里填0xF8 ;CAN_F0R1 = 0x91; CAN_F0R2 = 0x00; CAN_F0R3 = 0x00; CAN_F0R4 = 0x00;CAN_F0R5 = 0x91; CAN_F0R6 = 0x00; CAN_F0R7 = 0x00; CAN_F0R8 = 0x00;同理,對于下面的配置是只接收標準id= 0x321(0011,0010,0001)的ID(也是32位過濾器),因為也是數據幀,所以RTR = 0,標準的id,所以IDE = 0 ;

CAN_F0R1 = 0x64; CAN_F0R2 = 0x20; CAN_F0R3 = 0x00; CAN_F0R4 = 0x00;CAN_F0R5 = 0xFF; CAN_F0R6 = 0xE0; CAN_F0R7 = 0x00; CAN_F0R8 = 0x00;

設置過濾器0只接收ID為0x1828A0EF和0x1828A0EE的數據幀。(工作在標識符列表模式)首先我們把這兩個ID寫成二進制:0x1828A0EF:0001 1000 0010 1000 1010 0000 1110 11110x1828A0EE:0001 1000 0010 1000 1010 0000 1110 1110然后我們將0x1828A0EF

二進制的格數據組成如上圖mapping所示的格式Can_fxr1:1100 0001 0xc1Can _fxr2:0100 1001 0x49 //這里有個RTR位我們設置為0表示數據幀,IDE位設置為1表示擴展ID,Can _fxr3:0100 0001 0x41Can _fxr4:1101 1110 0xDE

這時我們工作在標識符列表模式,identifier/Mask的寄存器相當于identifier使用。

再將0x1828A0EE二進制的格數據組成如上圖mapping所示的格式Can _fxr5:1100 0001 0xc1Can _fxr6:0100 1001 0x49 //這里有個RTR位我們設置為零表示數據幀,IDE設置為1表示擴展IDCan _fxr7:0100 0001 0x41Can _fxr8:1101 1100 0xDC

16位配置模式也經常使用,如CAN網絡管理中往往涉及到網絡管理ID-0x4xx,因此需要利用ID和Mask模式,其余的采用ID模式,可以建立濾波器設置寄存器數組。

0x400網段,0x330,0x3200x400:

展開 0000 0100 0000 0000,采用標準幀數據幀格式0x330: 展開 0000 0011 0011 00000x320:

展開 0000 0011 0010 0000CAN_F0R1: 100 0000 0 0x80CAN_F0R2: 000 00 000 0x00CAN_F0R3:

111 0000 0 0xE0CAN_F0R4:

00000000 0x00CAN_F0R5: 011 0011 0 0x66CAN_F0R6: 00000000 0x00CAN_F0R7: 011 0010 0 0x64CAN_F0R8: 00000000 0x00FSC00 = 0; FSC01 = 1; FMH0 = 1; FML0 = 0; FACT0 = 1;

在以往的項目中用過多個品牌單片機,包括國產的,一直感覺ST的濾波器設置比較麻煩,每次用到的時候都要花較長時間去回憶。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6008

    文章

    44087

    瀏覽量

    623125
  • 濾波器
    +關注

    關注

    158

    文章

    7392

    瀏覽量

    175310
  • CAN
    CAN
    +關注

    關注

    56

    文章

    2497

    瀏覽量

    460484
  • STM8
    +關注

    關注

    18

    文章

    391

    瀏覽量

    56310

原文標題:STM8單片機CAN濾波器的設置

文章出處:【微信號:pcbgood,微信公眾號:奈因PCB電路板設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    濾波器的設計應用pdf

    、交指型濾波器等等。雖然它們的設計方法各有自己的特殊之點,但是這些設計方法仍是以低頻“綜合法濾波器設計”基礎,再從中演變而成,我們要講的波導濾波器就是一
    發表于 10-13 09:12

    CAN總線協議 濾波器理解問題

    請大家幫忙 解釋一下CAN總線協議 濾波器理解問題
    發表于 12-15 13:00

    切比雪夫I型濾波器設計一個低通濾波器

    設計的低通濾波器要求其采樣頻率44100Hz,通帶8kHz,過渡帶500Hz,阻帶衰減為30dB.
    發表于 05-08 15:39

    FIR濾波器和IIR濾波器有什么區別

    輸入數據和歷史輸入數據,IIR的濾波輸出取決于當前輸入數據、歷史輸入數據和歷史輸出數據。基于FPGA硬件的數字濾波器,FIR在處理信號
    發表于 06-27 04:20

    基于芯片測試的外圍環路濾波器設計

    小數分頻頻率合成器在測試時必須外接一個環路濾波器電路與壓控振蕩才能構成一個完整的鎖相環電路。其外圍電路中環路濾波器的設計好壞將直接影響到芯片的性能測試。ADF4153小數分頻頻率合
    發表于 07-05 06:35

    視頻濾波器有什么作用?

    FMS6403來說明視頻濾波器的原理,它是飛兆半導體公司針對電視、機頂盒和DVD播放機對擴展濾波器的需要而設計的新一代
    發表于 09-30 09:02

    請問如何去設計IIR數字濾波器?

    濾波器的MATLAB怎么去設計?編寫VHDL語言代碼有哪些注意事項?一般IIR數字濾波器該怎么去設計?低通濾波器
    發表于 04-14 06:22

    怎樣去計算濾波器的系數

    Filter Design&Analysis Tool求得,下面一個IIR三階低通濾波器,介紹C語言IIR濾波器的實現方法:1、計算
    發表于 07-14 07:46

    介紹C語言IIR濾波器的實現方法

    Filter Design&Analysis Tool求得,下面一個IIR三階低通濾波器,介紹C語言IIR濾波器的實現方法:1、計算
    發表于 07-14 08:26

    STM32 CAN濾波器配置有哪些注意事項

    ;因此,在配置標準/擴展標識符時要注意左移;如在16位標識符列表模式時,要配置濾波器允許接收標準標識符0x1234的幀:CAN_FilterInitStructure.CAN_FilterIdHigh=0x1234
    發表于 02-08 07:43

    濾波器設計與信號處理的MATLAB實現

    2 步模擬濾波器的設計,我們主要學習的是巴特沃斯設計方法,因此這里“巴特沃斯濾波器雙線性變換”設計法來闡述 IIR
    發表于 09-26 07:22

    關于CAN濾波器相關的內容

    大家好,我是小舒,今天和大家分享一下CAN濾波器相關的內容,濾波器主要用來設置CAN的接收ID,當CAN
    的頭像 發表于 09-08 09:39 ?2770次閱讀

    最適合CAN FD的共模濾波器

    CAN FD用共模濾波器 - ACT1210D 信號線的共模扼流圈/濾波器 ? ACT1210D型是一種通過包含繞組工藝的獨有結構設計,使泄漏電感、寄生電容、模式轉換特性最小化,針對比以往更容易受到
    的頭像 發表于 08-22 11:37 ?1629次閱讀
    最適合<b class='flag-5'>CAN</b> FD的共模<b class='flag-5'>濾波器</b>

    STM8單片機CAN濾波器的設置

    STM8單片機CAN濾波器的設置
    的頭像 發表于 10-17 14:50 ?1464次閱讀
    <b class='flag-5'>STM8</b>單片機<b class='flag-5'>CAN</b><b class='flag-5'>濾波器</b>的設置

    CAN濾波器

    CAN濾波器
    發表于 04-14 10:07 ?0次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>