0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以STM8為例的CAN濾波器內(nèi)容

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

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

濾波器設(shè)置濾波器設(shè)置包括下面幾個(gè)寄存器: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)。

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

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

RTR位我們?cè)O(shè)置為0表示數(shù)據(jù)幀,IDE位設(shè)置為1表示擴(kuò)展ID,因?yàn)槲覀兊腎D是29位的,所以RTR = 0;IDE = 1;

如果要關(guān)心到具體的某一個(gè)比特位置;如果要過濾讓它只接收0x12xxxxxx的表示符號(hào);這時(shí)候要根據(jù)它實(shí)際在identify中的位置去修改idmask ; 前八個(gè)比特,對(duì)應(yīng)的就是黃色和綠色的部分,所以其他的顏色,可以都填0表示不需要關(guān)心,則這里填入: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;同理,對(duì)于下面的配置是只接收標(biāo)準(zhǔn)id= 0x321(0011,0010,0001)的ID(也是32位過濾器),因?yàn)橐彩菙?shù)據(jù)幀,所以RTR = 0,標(biāo)準(zhǔn)的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;

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

二進(jìn)制的格數(shù)據(jù)組成如上圖mapping所示的格式Can_fxr1:1100 0001 0xc1Can _fxr2:0100 1001 0x49 //這里有個(gè)RTR位我們?cè)O(shè)置為0表示數(shù)據(jù)幀,IDE位設(shè)置為1表示擴(kuò)展ID,Can _fxr3:0100 0001 0x41Can _fxr4:1101 1110 0xDE

這時(shí)我們工作在標(biāo)識(shí)符列表模式,identifier/Mask的寄存器相當(dāng)于identifier使用。

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

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

0x400網(wǎng)段,0x330,0x3200x400:

展開 0000 0100 0000 0000,采用標(biāo)準(zhǔn)幀數(shù)據(jù)幀格式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;

在以往的項(xiàng)目中用過多個(gè)品牌單片機(jī),包括國產(chǎn)的,一直感覺ST的濾波器設(shè)置比較麻煩,每次用到的時(shí)候都要花較長時(shí)間去回憶。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    631014
  • 濾波器
    +關(guān)注

    關(guān)注

    159

    文章

    7670

    瀏覽量

    177215
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2686

    瀏覽量

    462938
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

    56627

原文標(biāo)題:STM8單片機(jī)CAN濾波器的設(shè)置

文章出處:【微信號(hào):pcbgood,微信公眾號(hào):奈因PCB電路板設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    切比雪夫I型濾波器設(shè)計(jì)一個(gè)低通濾波器

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

    視頻濾波器有什么作用?

    FMS6403來說明視頻濾波器的原理,它是飛兆半導(dǎo)體公司針對(duì)電視、機(jī)頂盒和DVD播放機(jī)對(duì)擴(kuò)展濾波器的需要而設(shè)計(jì)的新一代
    發(fā)表于 09-30 09:02

    低通濾波器設(shè)計(jì)

    低通濾波器設(shè)計(jì)內(nèi)容有:低通濾波器的基本電路和方程,低通勃脫華濾波器,二階低通勃脫華斯濾波器,低通契比雪夫
    發(fā)表于 12-01 12:39 ?83次下載
    低通<b class='flag-5'>濾波器</b>設(shè)計(jì)

    帶通濾波器設(shè)計(jì)

    帶通濾波器設(shè)計(jì)內(nèi)容有:二階帶通濾波器的基本電路和方程,二階VCVS帶通濾波器,二階多路所饋帶通濾波器,二階正反饋帶通
    發(fā)表于 12-01 12:45 ?1046次下載
    帶通<b class='flag-5'>濾波器</b>設(shè)計(jì)

    基于Multisim8的RC有源模擬濾波器設(shè)計(jì)

    詳細(xì)介紹了常用的 RC有源濾波器 的兩種結(jié)構(gòu)及其設(shè)計(jì)步驟.第一種VCVS結(jié)構(gòu),設(shè)計(jì)了基于巴特沃斯逼近的帶通濾波器,并介紹了一款最新的常
    發(fā)表于 06-16 10:45 ?115次下載
    基于Multisim<b class='flag-5'>8</b>的RC有源模擬<b class='flag-5'>濾波器</b>設(shè)計(jì)

    多速率采樣中的CIC濾波器設(shè)計(jì)與分析

    CIC濾波器是常用于多速率采樣抽取或內(nèi)插過程中的高效濾波器,具有結(jié)構(gòu)簡單,易于工程實(shí)現(xiàn)的特點(diǎn)。提高采樣速率,首先介紹了內(nèi)插理論和CtC
    發(fā)表于 09-20 15:12 ?73次下載
    多速率采樣中的CIC<b class='flag-5'>濾波器</b>設(shè)計(jì)與分析

    濾波器的材料是什么

    濾波器的材料一般有:金屬殼,銅漆包線、阻燃材料骨架、磁環(huán)磁柱導(dǎo)磁體等,下面這個(gè)電感濾波器:所用到的材料有銅漆包線、磁環(huán)和阻燃材料制成。
    的頭像 發(fā)表于 01-14 15:46 ?1.1w次閱讀

    STM8單片機(jī),如何實(shí)現(xiàn)Bootloader?

    上位機(jī)把.bin/hex文件CAN通訊的方式發(fā)送給單片機(jī)并存儲(chǔ)在規(guī)定的Flash中。這個(gè)過程與手機(jī)端更新APP類似。 STM8單片機(jī)
    的頭像 發(fā)表于 04-12 09:48 ?2994次閱讀
    <b class='flag-5'>STM8</b>單片機(jī)<b class='flag-5'>為</b><b class='flag-5'>例</b>,如何實(shí)現(xiàn)Bootloader?

    AD7173-8濾波器模型

    AD7173-8濾波器模型
    發(fā)表于 05-22 14:48 ?14次下載
    AD7173-<b class='flag-5'>8</b><b class='flag-5'>濾波器</b>模型

    關(guān)于CAN濾波器相關(guān)的內(nèi)容

    。為了解決這個(gè)問題,可以通過設(shè)置濾波器實(shí)現(xiàn)只接收特定ID。ST系列單片機(jī)的濾波器設(shè)置非常繞,很容易把自己繞暈了,下面STM8
    的頭像 發(fā)表于 09-08 09:39 ?3563次閱讀

    模擬無源濾波器設(shè)計(jì)(九)-Gaussian濾波器設(shè)計(jì)詳解

    文章詳細(xì)對(duì)高斯濾波器的綜合設(shè)計(jì)進(jìn)行講解,解釋如何從時(shí)域無過沖推導(dǎo)出高斯濾波器的。并且深入探討了高斯濾波器的零極點(diǎn)分布。最后介紹基于Matlab的濾波器設(shè)計(jì)軟件,
    的頭像 發(fā)表于 05-28 11:31 ?6732次閱讀

    LinearAmplitude濾波器設(shè)計(jì)詳解

    本文提出了一種新型的濾波器,其頻響具有直線特性,本文將詳細(xì)解釋如何推導(dǎo)這種特殊的濾波器。最后介紹基于Matlab的濾波器設(shè)計(jì)軟件,低通為
    的頭像 發(fā)表于 07-11 09:51 ?629次閱讀
    LinearAmplitude<b class='flag-5'>濾波器</b>設(shè)計(jì)詳解

    最適合CAN FD的共模濾波器

    CAN FD用共模濾波器 - ACT1210D 信號(hào)線的共模扼流圈/濾波器 ? ACT1210D型是一種通過包含繞組工藝的獨(dú)有結(jié)構(gòu)設(shè)計(jì),使泄漏電感、寄生電容、模式轉(zhuǎn)換特性最小化,針對(duì)比以往更容易受到
    的頭像 發(fā)表于 08-22 11:37 ?1930次閱讀
    最適合<b class='flag-5'>CAN</b> FD的共模<b class='flag-5'>濾波器</b>

    STM8單片機(jī)CAN濾波器的設(shè)置

    STM8單片機(jī)CAN濾波器的設(shè)置
    的頭像 發(fā)表于 10-17 14:50 ?2141次閱讀
    <b class='flag-5'>STM8</b>單片機(jī)<b class='flag-5'>CAN</b><b class='flag-5'>濾波器</b>的設(shè)置

    CAN濾波器

    CAN濾波器
    發(fā)表于 04-14 10:07 ?0次下載