91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

玩轉(zhuǎn)先楫CANFD外設(shè)系列之二:CAN外設(shè)的接收過濾器詳解

先楫半導(dǎo)體HPMicro ? 2023-08-24 08:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、背景

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

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

本文闡述CAN外設(shè),MCAN外設(shè)不在本文闡述范圍內(nèi)。

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

f57f33ee-4213-11ee-8e12-92fbcf53809c.png

二、實現(xiàn)流程

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

f5994a72-4213-11ee-8e12-92fbcf53809c.png


(一)ID篩選

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

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

f5ada724-4213-11ee-8e12-92fbcf53809c.png


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


f5c6fa9e-4213-11ee-8e12-92fbcf53809c.png


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

需要注意的是:

在CAN外設(shè)當(dāng)中,當(dāng)MASK對應(yīng)的位為0的時候,必須于IDCODE對應(yīng)的位進行匹配比較,當(dāng)為1的時候則忽視。

f5d96594-4213-11ee-8e12-92fbcf53809c.png

f60272b8-4213-11ee-8e12-92fbcf53809c.png

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

f631b2bc-4213-11ee-8e12-92fbcf53809c.png

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

f66368ac-4213-11ee-8e12-92fbcf53809c.png

在can的sample當(dāng)中,注釋也特別提醒。

f68c1c0c-4213-11ee-8e12-92fbcf53809c.png


(二)標(biāo)準(zhǔn)幀和擴展幀篩選

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

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

AIDEE=0AIDE=x(不關(guān)心)接收標(biāo)準(zhǔn)幀和擴展幀

AIDEE=1 AIDE=0 只接收標(biāo)準(zhǔn)幀

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

f6bc208c-4213-11ee-8e12-92fbcf53809c.png

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

f6ebafa0-4213-11ee-8e12-92fbcf53809c.png


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

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

f70189d8-4213-11ee-8e12-92fbcf53809c.png


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

從上面的配置可知道:

列表模式:

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

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


掩碼模式:

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

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

f732d04c-4213-11ee-8e12-92fbcf53809c.png


三、代碼實現(xiàn)

在hpm_sdk的can這個sample當(dāng)中,有個測試項目就是篩選器測試,對應(yīng)的是board_can_filter_test這個函數(shù)。這里使用的是內(nèi)部環(huán)回模式,可以不用接外置PHY即可測試。

在函數(shù)的開頭注釋就說到兩個注意點,開發(fā)者在開發(fā)的時候需要注意。

f74548f8-4213-11ee-8e12-92fbcf53809c.png

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


2、can_filter_config_t結(jié)構(gòu)體的mask成員,1代表在IDCODE對應(yīng)的位忽視,0代表該位將于IDCODE比較匹配。

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


掩碼模式:

f7894602-4213-11ee-8e12-92fbcf53809c.png

f7ced1cc-4213-11ee-8e12-92fbcf53809c.png

log可以看到:

f80ab7e6-4213-11ee-8e12-92fbcf53809c.png

列表模式:

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

f81a1538-4213-11ee-8e12-92fbcf53809c.png

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

f86a4bac-4213-11ee-8e12-92fbcf53809c.png


四、總結(jié)

1、HPM6700/HPM6400/HPM6300系列產(chǎn)品的CAN長達16個過濾組,如果需要更多的過濾組,可以選擇HPM6200等是MCAN外設(shè),比如hpm6200的MCAN,標(biāo)準(zhǔn)幀可以達到128個過濾組。


2、HPM6700/HPM6400/HPM6300系列產(chǎn)品的CAN過濾組設(shè)置相對簡單易用。


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

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

    關(guān)注

    31

    文章

    5608

    瀏覽量

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

    關(guān)注

    59

    文章

    3067

    瀏覽量

    472747
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    3040

    瀏覽量

    91660
  • 過濾器
    +關(guān)注

    關(guān)注

    1

    文章

    444

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    激光焊接機在焊接過濾器的工藝流程

    激光焊接機在過濾器制造中扮演著至關(guān)重要的角色,其以高精度、高效率及低變形的特點,顯著提升了過濾器的性能與可靠性。整個工藝流程環(huán)環(huán)相扣,對最終產(chǎn)品的質(zhì)量起著決定性作用。下面來看看激光焊接機在焊接過濾器
    的頭像 發(fā)表于 01-06 15:17 ?190次閱讀
    激光焊接機在焊接<b class='flag-5'>過濾器</b>的工藝流程

    CAN如何進行錄波,接收所有數(shù)據(jù)?

    模式RT_CAN_MODE_LISEN,就能夠正常使用,之前工作在RT_CAN_MODE_NORMAL普通模式。但是底層并沒有提供有這個是普通還是監(jiān)聽模式的設(shè)置的接口。 5)有沒有做過這塊CAN接受所有來往數(shù)據(jù)的?就是不設(shè)置
    發(fā)表于 10-09 09:12

    請問rt_thread中如何使用CAN硬件過濾器?

    目前我使用rt_thread版本為v4.1.1,目前使用了兩路can,想要對兩路can的數(shù)據(jù)進行硬件過濾處理,降低CPU負荷。 過濾的ID為: #define
    發(fā)表于 09-19 06:36

    rt-thread studio里面如何設(shè)置CAN過濾器?

    這個是我配置的過濾器,想問下大家這個設(shè)置的為啥不起作用啊,我的環(huán)境是rt-thread studio,然后版本是5.1,板子是野火的STM32H743
    發(fā)表于 09-10 08:11

    ART-PI 使用CAN硬件過濾器打開后接收中斷異常的原因?

    開啟硬件過濾器后,出現(xiàn)如下斷言異常,不開啟硬件過濾器,接收數(shù)據(jù)正常 (hdr < can->config.maxhdr && hdr
    發(fā)表于 09-10 07:10

    rt-thread studio里面如何設(shè)置CAN過濾器呢?

    這個是我配置的過濾器,想問下大家這個設(shè)置的為啥不起作用啊,我的環(huán)境是rt-thread studio,然后版本是5.1,板子是野火的STM32H743
    發(fā)表于 08-22 07:45

    如何使用 M460 系列微控制器 (MCU) 接收和打印 CANFD 總線上的所有消息?

    使用 M460 系列微控制器 (MCU) 接收和打印 CANFD 總線上的所有消息
    發(fā)表于 08-20 06:17

    宏集案例 | 時間繼電器在真空過濾器上的應(yīng)用

    近年來,隨著國家對資源、能源有效利用率的要求越來越高,對環(huán)境保護和水處理的要求也越來越嚴(yán)格,因此有大量的固液分離問題需要解決。真空過濾器是是由負壓形成真空過濾的固液分離機械。用過濾介質(zhì)把容器分為上
    的頭像 發(fā)表于 08-08 18:12 ?594次閱讀
    宏集案例 | 時間繼電器在真空<b class='flag-5'>過濾器</b>上的應(yīng)用

    【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+4. CAN外設(shè)調(diào)試(含源碼)

    的軟件開發(fā)還是有一定的不習(xí)慣。 另外一個,本次的代碼對CAN報文接收過濾,感覺還是沒有完全弄明白。對配置為接收郵箱時,數(shù)據(jù)長度好像就是可有可無,設(shè)置1,并不是表示只接收一個字節(jié)的報文。
    發(fā)表于 08-05 20:46

    半導(dǎo)體高性能MCU入駐立創(chuàng)商城,國產(chǎn)芯勢力再添新動能

    半導(dǎo)體(HPMicro)宣布其全系列高性能MCU芯片正式上架立創(chuàng)商城(LCSC),標(biāo)志著國產(chǎn)高端MCU在供應(yīng)鏈渠道與生態(tài)服務(wù)方面邁上新臺階,國產(chǎn)芯勢力再添新動能。
    的頭像 發(fā)表于 07-31 08:32 ?1180次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體高性能MCU入駐立創(chuàng)商城,國產(chǎn)芯勢力再添新動能

    激光焊接技術(shù)在焊接過濾器的工藝應(yīng)用

    過濾器作為工業(yè)設(shè)備、汽車及電子產(chǎn)品的關(guān)鍵部件,其制造質(zhì)量直接影響系統(tǒng)性能和壽命。激光焊接技術(shù)憑借其精密、高效與可靠的特性,正逐步成為過濾器焊接工藝的核心解決方案,解決了傳統(tǒng)焊接方法難以克服的挑戰(zhàn)
    的頭像 發(fā)表于 07-10 15:08 ?523次閱讀
    激光焊接技術(shù)在焊接<b class='flag-5'>過濾器</b>的工藝應(yīng)用

    最先進的過濾器監(jiān)測@SENSIRION

    AndriesBosma(氣體流動產(chǎn)品經(jīng)理),ManuelEckstein(暖通空調(diào)大客戶經(jīng)理)在需要清潔空氣的地方,空氣過濾器通常就在不遠處。在過去十年里,過濾行業(yè)在過濾技術(shù)方面取得了巨大進步
    的頭像 發(fā)表于 07-08 12:05 ?557次閱讀
    最先進的<b class='flag-5'>過濾器</b>監(jiān)測@SENSIRION

    節(jié)并傳感完成超千萬元融資,加速高端過濾器國產(chǎn)化進程

    膜材研發(fā)迭代工作,助力破局高端過濾器”卡脖子”難題, 加速高精度膜過濾器國產(chǎn)替代進程。 節(jié)并傳感(Gibeing)位于江蘇省蘇州市,成立于2022年,致力于微孔膜及生物過濾相關(guān)耗材的研發(fā)及銷售。目前公司主要產(chǎn)品為生物制藥
    的頭像 發(fā)表于 05-16 18:17 ?1291次閱讀
    節(jié)并傳感完成超千萬元融資,加速高端<b class='flag-5'>過濾器</b>國產(chǎn)化進程

    STM32G0B1VE芯片的CAN過濾器分為掩碼模式和列表模式,在列表模式下,可過濾多少個ID呢?

    STM32G0B1VE芯片的CAN過濾器分為掩碼模式和列表模式,在列表模式下,可過濾多少個ID呢?芯片手冊中未有詳細說明
    發(fā)表于 03-12 07:16

    神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計數(shù)據(jù)怎么查看?

    無法觀察神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計數(shù)據(jù)
    發(fā)表于 03-06 07:10