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

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

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

3天內不再提示

CAN外設的接收過濾器設置

331062281 ? 來源:先楫半導體HPMicro ? 2023-08-24 09:03 ? 次閱讀

一、背景

在實際應用中,CAN總線上的數據,對于某些CAN節點來說,可能需要的數據并不多,希望收到的數據是自己關心的即可,不必要的數據過濾同時也可以減少中斷的次數,減輕CPU負荷,也可以節省數據記錄設備中的存儲空間。

從上篇文章《[玩轉先楫CANFD外設系列之一]輕松搞起CANFD》中可知道,先楫的CANFD包括了CAN和MCAN。其中HPM6700/HPM6400/HPM6300系列產品用的是CAN,而HPM6200系列使用的是MCAN。本文統稱HPM6700/HPM6400/HPM6300系列產品的CANFD為CAN。

本文闡述CAN外設,MCAN外設不在本文闡述范圍內。

CAN有16組獨立的篩選器,并沒有所謂的列表和掩碼模式的過濾器組。每個篩選器都是獨立,只要任意一組的篩濾器器滿足條件則能被接收。配置也極其簡單,只需要配置ID CODE和對應的匹配MASK位等寄存器則照樣可以實現所謂的列表和掩碼方式。

eaa69efe-4212-11ee-a2ef-92fbcf53809c.png

二、實現流程

對于篩選器來說,CAN可操作的寄存器很少,只需要三個寄存器即可實現篩選ID的效果。分別對應的名稱是ACF_XXX后綴。

eaba7820-4212-11ee-a2ef-92fbcf53809c.png

(一)ID篩選

寄存器上主要操作ACFCTRL和ACF的CODE_MASK位(一共有29位,滿足標準幀和擴展幀)。

接收匹配MASK的位基于IDCODE來進行匹配。選擇哪個篩選器通過ACFCTRL寄存器的ACFADR配置,一共4bit,也就是16個篩選器。

eacfca68-4212-11ee-a2ef-92fbcf53809c.png

在can_set_filter這個API中,對于篩選器的選擇,可以這么參考。

eaf3dd0e-4212-11ee-a2ef-92fbcf53809c.png

由于IDCODE和MASK共用一個寄存器也就是ACF的CODE_MASK,在配置的時候需要選擇的是IDCODE還是MASK。這里需要用到ACFCTRL的SELMASK位。然后依次進行對CODE_MASK賦值。

需要注意的是:

在CAN外設當中,當MASK對應的位為0的時候,必須于IDCODE對應的位進行匹配比較,當為1的時候則忽視。

eb16b54a-4212-11ee-a2ef-92fbcf53809c.png

eb32ce2e-4212-11ee-a2ef-92fbcf53809c.png

同樣在can_set_filter這個API也是這么操作。

eb57466e-4212-11ee-a2ef-92fbcf53809c.png

需要注意的是:IDCODE和MASK的時候,必須是在CAN復位模式下才能設置。

eb71034c-4212-11ee-a2ef-92fbcf53809c.png

在can的sample當中,注釋也特別提醒。

eb978bb6-4212-11ee-a2ef-92fbcf53809c.png

(二)標準幀和擴展幀篩選

每個篩選器還可以對標準幀和擴展幀進行篩選,主要是通過ACF寄存器的AIDEE和AIDE位進行配置。

這里描述的大概可以這樣理解:

AIDEE=0AIDE=x(不關心)接收標準幀和擴展幀

AIDEE=1 AIDE=0 只接收標準幀

AIDEE=1 AIDE=1 只接收擴展幀

ebbdfe04-4212-11ee-a2ef-92fbcf53809c.png

在can_set_filter這個API中,也是通過判斷can_filter_id_mode_t枚舉進行判斷篩選。

ebea0daa-4212-11ee-a2ef-92fbcf53809c.png

(三)篩選器組的啟用和禁用

在手冊中,每個篩選器都可以單獨啟用和禁用。主要通過ACF_EN配置。

ec1dda40-4212-11ee-a2ef-92fbcf53809c.png

(四)實現列表和掩碼模式效果

從上面的配置可知道:

列表模式:

IDCODE配置為需要接收的ID號,MASK配置為0,那么該篩選器就可以實現只接收一個ID的列表方式,比如:

標準幀下,IDCODE=0x21,MASK=0(全部比較)。那么該篩選器只能篩選ID為0x21這個ID。

掩碼模式:

DCODE配置為需要接收的ID號,MASK配置需要比較的位,那么該篩選器就可以實現只接收一個ID的掩碼方式,比如:

標準幀下,IDCODE=0x100,MASK=0x700。需要匹配的位是第十位到第八位,其他的位都不做關心,那么接收的ID范圍就是0x100~0x1ff

ec3e5ec8-4212-11ee-a2ef-92fbcf53809c.png

三、代碼實現

在hpm_sdk的can這個sample當中,有個測試項目就是篩選器測試,對應的是board_can_filter_test這個函數。這里使用的是內部環回模式,可以不用接外置PHY即可測試。

在函數的開頭注釋就說到兩個注意點,開發者在開發的時候需要注意。

ec4bc248-4212-11ee-a2ef-92fbcf53809c.png

1、CAN的篩選器只能在CAN復位模式下配置,建議使用can_init這個API,通過傳參代入篩選器參數,can_init這個API自動處理。否則需要需要調用can_set_filter這個API,則需要先調用can_reset進行復位。這時候也同樣需要重新設置下波特率。

2、can_filter_config_t結構體的mask成員,1代表在IDCODE對應的位忽視,0代表該位將于IDCODE比較匹配。

這個測試同樣實現了類似所謂掩碼模式和列表模式。

掩碼模式:

ec753c40-4212-11ee-a2ef-92fbcf53809c.png

ecaa7e96-4212-11ee-a2ef-92fbcf53809c.png

log可以看到:

ecce965a-4212-11ee-a2ef-92fbcf53809c.png

列表模式:

在sample當中,16個篩選器的mask都設置為0,也就是必須與idcode的所有位匹配才接收。

ecf41876-4212-11ee-a2ef-92fbcf53809c.png

同樣也是發送ID為0~2048的2048個消息幀,應該只能收到16個ID幀。分別是以下

ed18b08c-4212-11ee-a2ef-92fbcf53809c.png

四、總結

1、HPM6700/HPM6400/HPM6300系列產品的CAN長達16個過濾組,如果需要更多的過濾組,可以選擇HPM6200等是MCAN外設,比如hpm6200的MCAN,標準幀可以達到128個過濾組。

2、HPM6700/HPM6400/HPM6300系列產品的CAN過濾組設置相對簡單易用。

3、HPM6700/HPM6400/HPM6300系列產品的CAN過濾組的IDCODE和MASK只能在CAN復位模式下配置。建議每次配置過濾組直接調用can_init這個API。

審核編輯:彭菁

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

    關注

    146

    文章

    17324

    瀏覽量

    352663
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2770

    瀏覽量

    464398
  • API
    API
    +關注

    關注

    2

    文章

    1511

    瀏覽量

    62404
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62979
  • 過濾器
    +關注

    關注

    1

    文章

    432

    瀏覽量

    19740
  • 先楫半導體
    +關注

    關注

    10

    文章

    217

    瀏覽量

    2189

原文標題:開發者分享:[玩轉先楫CANFD外設系列之二]CAN外設的接收過濾器詳解

文章出處:【微信號:HPMicro,微信公眾號:先楫半導體HPMicro】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32之CAN ---CAN ID過濾器分析

    機制,首先大家需要了解幾個概念。2 幾個重要的概念2.1 過濾器組STM32總共提供14個過濾器組來處理CAN接收過濾問題,每個過濾器組包含
    發表于 03-16 14:14

    CAN過濾器的配置

    CAN過濾器的配置(f103 hal1.8 系列)can過濾器的配置是對can接收到的報文進行
    發表于 08-19 06:11

    CAN通信的過濾器配置的理解

    總結一些最近做項目對CAN通信的過濾器配置的理解;這里我使用STM32F105系列的芯片,有2路CAN,我使用的是CAN2,過濾器可以
    發表于 08-20 07:14

    STM32普通型芯片的CAN過濾器

    STM32普通型芯片的 CAN 有14組過濾器組(互聯型有28組過濾器組) ,用以對接收到的幀進行過濾。每組
    發表于 08-20 08:27

    過濾組、過濾器編號介紹

    一、過濾組、過濾器編號介紹 在STM32互聯型產品中,CAN1和CAN2分享28個過濾器組,其它STM32F103xx系列產品中有14個
    發表于 08-20 06:13

    STM32 CAN過濾組、過濾器編號介紹

    一、過濾組、過濾器編號介紹 在STM32互聯型產品中,CAN1和CAN2分享28個過濾器組,其它STM32F103xx系列產品中有14個
    發表于 08-23 06:51

    CAN—關于CAN過濾器的一些設置方法

    CAN過濾器配置以及常見問題總結過濾器組在具有兩個CAN的產品中,CAN1和CAN2分享28個
    發表于 03-08 10:23

    stm8s208的can過濾器怎么設置?

    stm8s208 的 can 過濾器怎么設置?
    發表于 10-26 08:13

    STM32_CAN發送和接收過濾原理

    STM32_CAN發送和接收過濾原理介紹。
    發表于 07-22 17:04 ?9次下載

    STM32單片機對CAN過濾器設置方法

    在使用STM32的CAN控制器進行數據收發,當用到位屏蔽模式的時候,就要設置過濾器了,這個關系到是否能夠接收到想要的數據。下面針對幾種不同情況對CA
    發表于 11-28 16:25 ?1.8w次閱讀
    STM32單片機對<b class='flag-5'>CAN</b><b class='flag-5'>過濾器</b>的<b class='flag-5'>設置</b>方法

    過濾器的作用

    本視頻主要詳細介紹了過濾器的作用,分別是濾速高、過濾效果好;強度高、耐腐蝕;靜電作用;過濾物質;攔截;其次介紹了水龍頭過濾器的作用,最后介紹了活性炭
    的頭像 發表于 12-12 16:23 ?4.5w次閱讀

    STM32 CAN應用-過濾器設置

    在使用STM32的CAN控制器進行數據收發,當用到位屏蔽模式的時候,就要設置過濾器了,這個關系到是否能夠接收到想要的數據。下面針對幾種不同情況對CA
    發表于 02-10 10:00 ?3次下載
    STM32 <b class='flag-5'>CAN</b>應用-<b class='flag-5'>過濾器</b><b class='flag-5'>設置</b>

    殺菌過濾器 滅菌過濾器 除菌過濾器

    殺菌過濾器 滅菌過濾器 除菌過濾器
    的頭像 發表于 03-03 14:03 ?2758次閱讀
    殺菌<b class='flag-5'>過濾器</b> 滅菌<b class='flag-5'>過濾器</b> 除菌<b class='flag-5'>過濾器</b>

    CH32FV系列CAN設備過濾器配置

    簡介CAN作為總線通信協議,在總線上可能會有大量的數據包同時傳輸,適當的過濾機制可以提升數據處理的效率,節省處理器的資源。通過配置CAN過濾器定義自己的數據
    的頭像 發表于 10-11 08:03 ?365次閱讀
    CH32FV系列<b class='flag-5'>CAN</b>設備<b class='flag-5'>過濾器</b>配置

    解析ECAN-E02單過濾器CAN硬件過濾

    什么是CAN總線?CAN(ControllerAreaNetwork)總線是一種用于車輛電子設備之間通信的標準協議。CAN過濾器是用來過濾
    的頭像 發表于 01-16 19:35 ?83次閱讀
    解析ECAN-E02單<b class='flag-5'>過濾器</b><b class='flag-5'>CAN</b>硬件<b class='flag-5'>過濾</b>
    主站蜘蛛池模板: 成人午夜大片免费7777 | 亚洲国产一区二区三区在线观看 | 久久精品乱子伦免费 | 午夜高清视频在线观看 | 日本午夜影院 | 亚洲色图 在线视频 | 欧美 亚洲 国产 丝袜 在线 | 色偷偷91综合久久噜噜 | 丁香婷婷影院 | 国产福利乳摇在线播放 | 天天色综合1 | 欧美特黄特色aaa大片免费看 | 欧洲无线区一二区 | 国产香蕉在线精彩视频 | 欧美性猛 | 午夜伦y4480影院中文字幕 | 免费人成观看在线网 | 丁香婷婷在线视频 | 在线欧美色 | 国产免费私拍一区二区三区 | 老师今晚让你爽个够 | 一区二区三区四区视频 | 羞羞视频靠逼视频大全 | 午夜久久免影院欧洲 | 欧美一级看片a免费观看 | 综合色亚洲 | 久久精品国产免费看久久精品 | 美女被拍拍拍拍拍拍拍拍 | 失禁h啪肉尿出来高h男男 | 性欧美xxxx乳高跟 | 久久精品免视看国产成人2021 | 亚洲午夜网未来影院 | 国产在线一卡 | 天天干天天操天天做 | 大乳妇女bd视频在线观看 | 日本三级日本三级日本三级极 | 国产主播在线看 | 一 级 黄 色 片生活片 | 日本免费一区二区视频 | 国内夫妇交换性经过实录 | 国产大片免费观看中文字幕 |