在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

jf_pJlTbmA9 ? 來源:玩轉(zhuǎn)嵌入式 ? 作者:玩轉(zhuǎn)嵌入式 ? 2023-10-17 14:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天和大家分享一下CAN濾波器相關(guān)的內(nèi)容,濾波器主要用來設(shè)置CAN的接收ID,當(dāng)CAN總線上所掛接的節(jié)點(diǎn)較多,數(shù)據(jù)量較大的話,對單節(jié)點(diǎn)的接收判斷可能造成較大的壓力、占用較多的資源。為了解決這個(gè)問題,可以通過設(shè)置濾波器實(shí)現(xiàn)只接收特定ID。ST系列單片機(jī)的濾波器設(shè)置非常繞,很容易把自己繞暈了,下面以STM8為例和大家分享一下。

注意,此文需要看多遍。

前言

在CAN協(xié)議里,報(bào)文的標(biāo)識(shí)符不代表節(jié)點(diǎn)的地址,而是跟報(bào)文的內(nèi)容相關(guān)的。因此,發(fā)送者以廣播的形式把報(bào)文發(fā)送給所有的接收者。節(jié)點(diǎn)在接收報(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è)置濾波寬度,

wKgaomUD75WAUYrLAABhCSuW28s012.jpg

就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í)符號,該如何設(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格式中

wKgZomUD75eADiHJAABKWVMIsVU754.jpg

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

在濾波器中填充如下:

wKgZomUD75mAQBpbAABSrk3fdP4201.jpg

如果要關(guān)心到具體的某一個(gè)比特位置;如果要過濾讓它只接收0x12xxxxxx的表示符號;

這時(shí)候要根據(jù)它實(shí)際在identify中的位置去修改idmask ; 前八個(gè)比特,對應(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;

同理,對于下面的配置是只接收標(biāo)準(zhǔn)id= 0x321(0011,0010,0001)的ID(也是32位過濾器),因?yàn)橐彩菙?shù)據(jù)幀,所以RTR = 0,標(biāo)準(zhǔn)的id,所以IDE = 0 ;所以填入到:

wKgZomUD75qASIuVAABPpezDKnw419.jpg

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 1111 0x1828A0EE:0001 1000 0010 1000 1010 0000 1110 1110

然后我們將0x1828A0EF二進(jìn)制的格數(shù)據(jù)組成如上圖mapping所示的格式

Can_fxr1:1100 0001 0xc1 Can _fxr2:0100 1001 0x49 //這里有個(gè)RTR位我們設(shè)置為0表示數(shù)據(jù)幀,IDE位設(shè)置為1表示擴(kuò)展ID, Can _fxr3:0100 0001 0x41 Can _fxr4:1101 1110 0xDE

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

再將0x1828A0EE二進(jìn)制的格數(shù)據(jù)組成如上圖mapping所示的格式

Can _fxr5:1100 0001 0xc1 Can _fxr6:0100 1001 0x49 //這里有個(gè)RTR位我們設(shè)置為零表示數(shù)據(jù)幀,IDE設(shè)置為1表示擴(kuò)展ID Can _fxr7:0100 0001 0x41 Can _fxr8:1101 1100 0xDC

wKgaomUD75uAdko2AABzzEtbZuo707.jpg

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

0x400網(wǎng)段,0x330,0x320 0x400: 展開 0000 0100 0000 0000,采用標(biāo)準(zhǔn)幀數(shù)據(jù)幀格式 0x330: 展開 0000 0011 0011 0000 0x320: 展開 0000 0011 0010 0000 CAN_F0R1: 100 0000 0 0x80 CAN_F0R2: 000 00 000 0x00 CAN_F0R3: 111 0000 0 0xE0 CAN_F0R4: 00000000 0x00 CAN_F0R5: 011 0011 0 0x66 CAN_F0R6: 00000000 0x00 CAN_F0R7: 011 0010 0 0x64 CAN_F0R8: 00000000 0x00 FSC00 = 0; FSC01 = 1; FMH0 = 1; FML0 = 0; FACT0 = 1;

wKgaomUD75yAN-84AACHOa3bv3c349.jpg

wKgaomUD756AJi8vAACK_dJO_Gg003.jpg

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

來源:玩轉(zhuǎn)嵌入式
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理


審核編輯 黃宇

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

    關(guān)注

    6067

    文章

    44962

    瀏覽量

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

    關(guān)注

    162

    文章

    8121

    瀏覽量

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

    關(guān)注

    57

    文章

    2903

    瀏覽量

    467283
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

    57762
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM8單片機(jī)

    單片機(jī)8單片機(jī)STM8
    jf_72064266
    發(fā)布于 :2022年10月04日 05:27:41

    stm8單片機(jī)例程分享

    使用stm8單片機(jī)模擬串口功能實(shí)現(xiàn)STM8S003單片機(jī)串口實(shí)現(xiàn)printf函數(shù)功能STM8單片機(jī)
    發(fā)表于 01-27 07:37

    基于單片機(jī)控制的程控有源濾波器電路

    基于單片機(jī)控制的程控有源濾波器電路 有源濾波器廣泛應(yīng)用于數(shù)字信號處理、通信、自動(dòng)控制領(lǐng)域,但設(shè)計(jì)可變寬頻帶有源濾波器則比較困難。利用單片機(jī)
    發(fā)表于 05-13 00:36 ?940次閱讀
    基于<b class='flag-5'>單片機(jī)</b>控制的程控有源<b class='flag-5'>濾波器</b>電路

    PIC STM8 STC單片機(jī)代碼及相關(guān)資料

    PIC STM8 STC單片機(jī)代碼及相關(guān)資料,破解文件等
    發(fā)表于 02-07 15:53 ?15次下載

    單片機(jī)程控濾波器設(shè)計(jì)詳解

    本文主要闡述了單片機(jī)程控濾波器設(shè)計(jì),分別從設(shè)計(jì)要求、設(shè)計(jì)方案、硬件設(shè)計(jì)以及軟件設(shè)計(jì)這幾個(gè)方面詳細(xì)介紹。
    發(fā)表于 04-13 11:06 ?1.1w次閱讀
    <b class='flag-5'>單片機(jī)</b>程控<b class='flag-5'>濾波器</b>設(shè)計(jì)詳解

    STM8單片機(jī)如何進(jìn)行IAR工程的建立

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM8單片機(jī)如何進(jìn)行IAR工程的建立。
    發(fā)表于 05-10 18:13 ?8次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機(jī)</b>如何進(jìn)行IAR工程的建立

    STM8單片機(jī)的串口UART資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM8單片機(jī)的串口UART資料免費(fèi)下載。
    發(fā)表于 04-24 17:19 ?35次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機(jī)</b>的串口UART資料免費(fèi)下載

    基于單片機(jī)控制的可編程有源濾波器

    有源濾波器廣泛應(yīng)用于數(shù)字信號處理、通信、自動(dòng)控制領(lǐng)域,但設(shè)計(jì)可變寬頻帶有源濾波器則比較困難。利用單片機(jī)控制參數(shù)可編程的雙二階通用開關(guān)電容有源濾波器,精確
    發(fā)表于 05-18 09:47 ?2048次閱讀

    STM8系列單片機(jī)程序的下載方式

    STM8系列單片機(jī)程序的下載方式
    發(fā)表于 11-26 14:06 ?31次下載
    <b class='flag-5'>STM8</b>系列<b class='flag-5'>單片機(jī)</b>程序的下載方式

    01、STM8 單片機(jī)芯片介紹

    4.8、STM8S單片機(jī)選型5、STM8S單片機(jī)應(yīng)用1、概述??STM8 系列是意法半導(dǎo)體公司生產(chǎn)的 8
    發(fā)表于 11-26 14:21 ?34次下載
    01、<b class='flag-5'>STM8</b> <b class='flag-5'>單片機(jī)</b>芯片介紹

    stm8單片機(jī)例程下載鏈接

    使用stm8單片機(jī)模擬串口功能實(shí)現(xiàn)STM8S003單片機(jī)串口實(shí)現(xiàn)printf函數(shù)功能STM8單片機(jī)
    發(fā)表于 12-03 12:06 ?41次下載
    <b class='flag-5'>stm8</b><b class='flag-5'>單片機(jī)</b>例程下載鏈接

    如何設(shè)置STM8單片機(jī)選項(xiàng)字

    如何設(shè)置STM8單片機(jī)選項(xiàng)字
    發(fā)表于 12-03 12:36 ?12次下載
    如何<b class='flag-5'>設(shè)置</b><b class='flag-5'>STM8</b><b class='flag-5'>單片機(jī)</b>選項(xiàng)字

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

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

    stm單片機(jī)型號的意義 stm8和stm32的燒寫程序的區(qū)別 stm8讀取程序

    STM或STM32或STM8,代表單片機(jī)的品牌和系列。STM32系列是基于ARM Cortex-M內(nèi)核的單片機(jī)系列,而STM8系列則是基于ST8
    的頭像 發(fā)表于 04-08 14:43 ?9282次閱讀

    STM8系列單片機(jī)入門

    電子發(fā)燒友網(wǎng)站提供《STM8系列單片機(jī)入門.pdf》資料免費(fèi)下載
    發(fā)表于 10-07 16:09 ?3次下載
    <b class='flag-5'>STM8</b>系列<b class='flag-5'>單片機(jī)</b>入門
    主站蜘蛛池模板: 国产热re99久久6国产精品 | 色多多在线观看播放 | 激情文学综合丁香 | 亚洲网站免费观看 | 亚洲午夜一区二区三区 | 日本日b视频 | 男人的天堂视频在线 | 中文字幕在线观看一区二区三区 | 国产精品午夜高清在线观看 | 久久视频精品36线视频在线观看 | 西西人体大胆午夜gog0 | 亚洲性人人天天夜夜摸 | 美女黄18以下禁止观看的网站 | 哺乳期xxxx视频 | 一区二区在线免费视频 | 日韩基地1024首页 | 午夜福利123 | 在线视频亚洲 | 中文一区在线观看 | 手机看片免费永久在线观看 | 亚偷熟乱区视频在线观看 | 一级一黄在线观看视频免费 | 色女人网| 天天操天天玩 | 色在线视频观看 | 国产呦在线观看视频 | 免费一级特黄3大片视频 | 欧美黄色片视频 | 一区二区手机视频 | 成 人 a v黄 色 | 亚洲成人www| 欧美一区二区视频 | 色综合天天综合网亚洲影院 | 日本三级黄 | 老头天天吃我奶躁我的动图 | 中文字幕色婷婷在线精品中 | 色网站免费看 | 国产精品爱啪在线线免费观看 | 成年午夜一级毛片视频 | 中韩日欧美电影免费看 | 久操操操|