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

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

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

通過(guò)CAN_BTR寄存器控制LBKM和SILM

h1654155971.7688 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-31 08:54 ? 次閱讀

CAN模式

一.工作模式 通過(guò)CAN_MCR寄存器控制INRQ和SLEEP1.初始化INRQ=1 SLEEP=0軟件初始化應(yīng)該在硬件2.正常INRQ=0 SLEEP=0在初始化完成后,軟件應(yīng)該讓硬件進(jìn)入正常模式,以便正常接收和發(fā)送報(bào)文3.睡眠SLEEP=1 bxCAN可工作在低功耗的睡眠模式

二.測(cè)試模式 通過(guò)CAN_BTR寄存器控制LBKM和SILM1. 靜默 可以接受不能發(fā)送

2. 循回 可以發(fā)送不能接受3.環(huán)回靜默 只能自發(fā)自收

三.調(diào)試模式

STM32標(biāo)識(shí)符篩選器

在CAN協(xié)議里,報(bào)文的標(biāo)識(shí)符不代表節(jié)點(diǎn)的地址,而是跟報(bào)文的優(yōu)先級(jí)相關(guān)的。因此,節(jié)點(diǎn)在接收?qǐng)?bào)文時(shí)-根據(jù)標(biāo)識(shí)符的值-決定軟件是否需要該報(bào)文;如果需要,就拷貝到SRAM里;如果不需要,報(bào)文就被丟棄且無(wú)需軟件的干預(yù)。為滿足這一需求,bxCAN為應(yīng)用程序提供了14個(gè)位寬可變的、可配置的過(guò)濾器組(13~0),以便只接收那些軟件需要的報(bào)文。硬件過(guò)濾的做法節(jié)省了CPU開銷,否則就必須由軟件過(guò)濾從而占用一定的CPU開銷。

STM32普通型芯片的 CAN 有14組過(guò)濾器組(互聯(lián)型有28組過(guò)濾器組) ,用以對(duì)接收到的幀進(jìn)行過(guò)濾。每組過(guò)濾器包括了2個(gè)可配置的32位寄存器:CAN_FxR1和 CAN_FxR2。對(duì)于過(guò)濾器組,通過(guò)設(shè)置CAN_FM0R的FBMx位,1.屏蔽位模式這樣 CAN_FxR0中保存的就是標(biāo)識(shí)符匹配值,CAN_FxR2中保存的是屏蔽碼,即 CAN_FxR2中如果某一位為1,則 CAN_FxR1中相應(yīng)的位必須與收到的幀的標(biāo)志符中的相應(yīng)位吻合才能通過(guò)過(guò)濾器。CAN_FxR2中為0的位表示 CAN_FxR1中的相應(yīng)位可不必與收到的幀進(jìn)行匹配。

2.標(biāo)識(shí)符列表模式此時(shí) CAN_FxR1和CAN_FxR2中的都是要匹配的標(biāo)識(shí)符,收到的幀的標(biāo)識(shí)符必須與其中的一個(gè)吻合才能通過(guò)過(guò)濾。

理解:標(biāo)識(shí)符列表模式是為了過(guò)濾出一個(gè)標(biāo)識(shí)符,而屏蔽位模式因?yàn)槠帘瘟四承┪凰钥梢赃^(guò)濾出一組標(biāo)識(shí)符,對(duì)于不需要用篩選器組的應(yīng)處以禁用狀態(tài)

一般我們用的都是普通型的,所以在本文中可以說(shuō) STM32有14組過(guò)濾器組。根據(jù)配置,每1組過(guò)濾器組可以有1個(gè),2個(gè)或4個(gè)過(guò)濾器。這些過(guò)濾器相當(dāng)于關(guān)卡,每當(dāng)收到一條報(bào)文時(shí),CAN 要先將收到的報(bào)文從這些過(guò)濾器上”過(guò)”一下,能通過(guò)的報(bào)文是有效報(bào)文,收進(jìn) FIFO,不能通過(guò)的是無(wú)效報(bào)文(不是發(fā)給”我”的報(bào)文),直接丟棄。通過(guò)對(duì)兩個(gè)可配置寄存器值得改變可以選擇過(guò)濾器的數(shù)量。在一組過(guò)濾器中,整組的過(guò)濾器都使用同一種工作模式。

另外,每組過(guò)濾器中的過(guò)濾器寬度是可變的,可以是32位或16位。按工作模式和寬度,一個(gè)過(guò)濾器組可以變成以下幾中形式之一:

(1) 1個(gè)32位的屏蔽位模式的過(guò)濾器。(2) 2個(gè)32位的列表模式的過(guò)濾器。(3) 2個(gè)16位的屏蔽位模式的過(guò)濾器。(4) 4個(gè)16位的列表模式的過(guò)濾器。

所有的過(guò)濾器是并聯(lián)的,即一個(gè)報(bào)文只要通過(guò)了一個(gè)過(guò)濾器,就是算是有效的。每組過(guò)濾器組有兩個(gè)32位的寄存器用于存儲(chǔ)過(guò)濾用的”標(biāo)準(zhǔn)值”,分別是 FxR1,F(xiàn)xR2。

解讀:1.在32位的屏蔽位模式下:有1個(gè)過(guò)濾器。FxR2用于指定需要關(guān)心哪些位,F(xiàn)xR1用于指定這些位的標(biāo)準(zhǔn)值。

2.在32位的列表模式下:

有兩個(gè)過(guò)濾器。FxR1指定過(guò)濾器0的標(biāo)準(zhǔn)值,收到報(bào)文的標(biāo)識(shí)符只有跟 FxR1完全相同時(shí),才算通過(guò)。

FxR2指定過(guò)濾器1的標(biāo)準(zhǔn)值。

3.在16位的屏蔽位模式下:有2個(gè)過(guò)濾器。FxR1配置過(guò)濾器0,其中,[31-16]位指定要關(guān)心的位,[15-0]位指定這些位的標(biāo)準(zhǔn)值。

FxR2配置過(guò)濾器1,其中,[31-16]位指定要關(guān)心的位,[15-0]位指定這些位的標(biāo)準(zhǔn)值。

4.在16位的列表模式下:有4個(gè)過(guò)濾器。FxR1的[15-0]位配置過(guò)濾器0,F(xiàn)xR1的[31-16]位配置過(guò)濾器1。FxR2的[15-0]位配置過(guò)濾器2,F(xiàn)xR2的[31-16]位配置過(guò)濾器3。

FIFO

STM32的 CAN 有兩個(gè) FIFO,分別是 FIFO0和 FIFO1。為了便于區(qū)分,下面 FIFO0寫作FIFO_0,F(xiàn)IFO1寫作 FIFO_1。

每組過(guò)濾器組必須關(guān)聯(lián)且只能關(guān)聯(lián)一個(gè) FIFO。復(fù)位默認(rèn)都關(guān)聯(lián)到 FIFO_0。所謂“關(guān)聯(lián)”是指假如收到的報(bào)文從某個(gè)過(guò)濾器通過(guò)了,那么該報(bào)文會(huì)被存到該過(guò)濾器相連的 FIFO。從另一方面來(lái)說(shuō),每個(gè) FIFO 都關(guān)聯(lián)了一串的過(guò)濾器組,兩個(gè) FIFO 剛好瓜分了所有的過(guò)濾器組。每當(dāng)收到一個(gè)報(bào)文,CAN 就將這個(gè)報(bào)文先與 FIFO_0關(guān)聯(lián)的過(guò)濾器比較,如果被匹配,就將此報(bào)文放入 FIFO_0中。如果不匹配, 再將報(bào)文與 FIFO_1關(guān)聯(lián)的過(guò)濾器比較, 如果被匹配, 該報(bào)文就放入 FIFO_1中。如果還是不匹配,此報(bào)文就被丟棄。

每個(gè) FIFO 的所有過(guò)濾器都是并聯(lián)的,只要通過(guò)了其中任何一個(gè)過(guò)濾器,該報(bào)文就有效。如果一個(gè)報(bào)文既符合 FIFO_0的規(guī)定,又符合 FIFO_1的規(guī)定,顯然,根據(jù)操作順序,它只會(huì)放到 FIFO_0中。

每個(gè) FIFO 中只有激活了的過(guò)濾器才起作用,換句話說(shuō),如果一個(gè) FIFO 有20個(gè)過(guò)濾器,但是只激話了5個(gè),那么比較報(bào)文時(shí),只拿這5個(gè)過(guò)濾器作比較。一般要用到某個(gè)過(guò)濾器時(shí),在初始化階段就直接將它激活。需要注意的是,每個(gè) FIFO 必須至少激活一個(gè)過(guò)濾器,它才有可能收到報(bào)文。如果一個(gè)過(guò)濾器都沒有激活,那么是所有報(bào)文都報(bào)廢的。一般的,如果不想用復(fù)雜的過(guò)濾功能, FIFO 可以只激活一組過(guò)濾器組,且將它設(shè)置成 32位的屏蔽位模式,兩個(gè)標(biāo)準(zhǔn)值寄存器(FxR1,F(xiàn)xR2)都設(shè)置成0。這樣所有報(bào)文均能通過(guò)。(STM32提供的例程里就是這么做的! )

過(guò)濾器匹配序號(hào)

過(guò)濾器編號(hào)用于加速 CPU 對(duì)收到報(bào)文的處理。收到一個(gè)有效報(bào)文時(shí), CAN 會(huì)將收到的報(bào)文 以及它所通過(guò)的過(guò)濾器編號(hào), 一起存入接收郵箱中。CPU 在處理時(shí),可以根據(jù)過(guò)濾器編號(hào),快速的知道該報(bào)文的用途,從而作出相應(yīng)處理。

不用過(guò)濾器編號(hào)其實(shí)也是可以的, 這時(shí)候 CPU 就要分析所收?qǐng)?bào)文的標(biāo)識(shí)符, 從而知道報(bào)文的用途。由于標(biāo)識(shí)符所含的信息較多,處理起來(lái)就慢一點(diǎn)了。

STM32使用以下規(guī)則對(duì)過(guò)濾器編號(hào):

(1) FIFO_0和 FIFO_1的過(guò)濾器分別獨(dú)立編號(hào),均從0開始按順序編號(hào)。(2) 所有關(guān)聯(lián)同一個(gè) FIFO 的過(guò)濾器,不管有沒有被激活,均統(tǒng)一進(jìn)行編號(hào)。(3) 編號(hào)從0開始,按過(guò)濾器組的編號(hào)從小到大,按順序排列。(4) 在同一過(guò)濾器組內(nèi),按寄存器從小到大編號(hào)。FxR1配置的過(guò)濾器編號(hào)小,F(xiàn)xR2配置的過(guò)濾器編號(hào)大。(5) 同一個(gè)寄存器內(nèi),按位序從小到大編號(hào)。[15-0]位配置的過(guò)濾器編號(hào)小,[31-16]位配置的過(guò)濾器編號(hào)大。(6) 過(guò)濾器編號(hào)是彈性的。 當(dāng)更改了設(shè)置時(shí),每個(gè)過(guò)濾器的編號(hào)都會(huì)改變。但是在設(shè)置不變的情況下,各個(gè)過(guò)濾器的編號(hào)是相對(duì)穩(wěn)定的。

這樣,每個(gè)過(guò)濾器在自己在 FIFO 中都有編號(hào)。

在 FIFO_0中,編號(hào)從0 – (M-1), 其中 M 為它的過(guò)濾器總數(shù)。

在 FIFO_1中,編號(hào)從0 – (N-1),,其中 N 為它的過(guò)濾器總數(shù)。

一個(gè) FIFO 如果有很多的過(guò)濾器,,可能會(huì)有一條報(bào)文, 在幾個(gè)過(guò)濾器上均能通過(guò),這時(shí)候,,這條報(bào)文算是從哪兒過(guò)來(lái)的呢?STM32在使用過(guò)濾器時(shí),按以下順序進(jìn)行過(guò)濾:

(1) 位寬為32位的過(guò)濾器,優(yōu)先級(jí)高于位寬為16位的過(guò)濾器。(2) 對(duì)于位寬相同的過(guò)濾器,標(biāo)識(shí)符列表模式的優(yōu)先級(jí)高于屏蔽位模式。(3) 位寬和模式都相同的過(guò)濾器,優(yōu)先級(jí)由過(guò)濾器號(hào)決定,過(guò)濾器號(hào)小的優(yōu)先級(jí)高。

按這樣的順序,報(bào)文能通過(guò)的第一個(gè)過(guò)濾器,就是該報(bào)文的過(guò)濾器編號(hào),被存入接收郵箱中。

上面的例子說(shuō)明了bxCAN的過(guò)濾器規(guī)則:在接收一個(gè)報(bào)文時(shí),其標(biāo)識(shí)符首先與配置在標(biāo)識(shí)符列表模式下的過(guò)濾器相比較;如果匹配上,報(bào)文就被存放到相關(guān)聯(lián)的FIFO中,并且所匹配的過(guò)濾器的序號(hào)被存入過(guò)濾器匹配序號(hào)中。如同例子中所顯示,報(bào)文標(biāo)識(shí)符跟#4標(biāo)識(shí)符匹配,因此報(bào)文內(nèi)容和FMI4被存入FIFO。如果沒有匹配,報(bào)文標(biāo)識(shí)符接著與配置在屏蔽位模式下的過(guò)濾器進(jìn)行比較。如果報(bào)文標(biāo)識(shí)符沒有跟過(guò)濾器中的任何標(biāo)識(shí)符相匹配,那么硬件就丟棄該報(bào)文,且不會(huì)對(duì)軟件有任何打擾。

發(fā)送

發(fā)送報(bào)文的流程

應(yīng)用程序選擇1個(gè)空置的發(fā)送郵箱;設(shè)置標(biāo)識(shí)符,數(shù)據(jù)長(zhǎng)度和待發(fā)送數(shù)據(jù);然后對(duì)CAN_TIxR寄存器的TXRQ位置’1’,來(lái)請(qǐng)求發(fā)送。 TXRQ位置’1’后,郵箱就不再是空郵箱;而一旦郵箱不再為空置,軟件對(duì)郵箱寄存器就不再有寫的權(quán)限。 TXRQ位置1后,郵箱馬上進(jìn)入掛號(hào)狀態(tài),并等待成為最高優(yōu)先級(jí)的郵箱,參見發(fā)送優(yōu)先級(jí)。一旦郵箱成為最高優(yōu)先級(jí)的郵箱,其狀態(tài)就變?yōu)轭A(yù)定發(fā)送狀態(tài)。一旦CAN總線進(jìn)入空閑狀態(tài),預(yù)定發(fā)送郵箱中的報(bào)文就馬上被發(fā)送(進(jìn)入發(fā)送狀態(tài))。一旦郵箱中的報(bào)文被成功發(fā)送后,它馬上變?yōu)榭罩绵]箱;硬件相應(yīng)地對(duì)CAN_TSR寄存器的RQCP和TXOK位置1,來(lái)表明一次成功發(fā)送。如果發(fā)送失敗,由于仲裁引起的就對(duì)CAN_TSR寄存器的ALST位置’1’,由于發(fā)送錯(cuò)誤引起的就對(duì)TERR位置’1’。

發(fā)送優(yōu)先級(jí)

一.標(biāo)識(shí)符決定當(dāng)有超過(guò)1個(gè)發(fā)送郵箱在掛號(hào)時(shí),發(fā)送順序由郵箱中報(bào)文的標(biāo)識(shí)符決定。根據(jù)CAN協(xié)議,標(biāo)識(shí)符數(shù)值最低的報(bào)文具有最高的優(yōu)先級(jí)。如果標(biāo)識(shí)符的值相等,那么郵箱號(hào)小的報(bào)文先被發(fā)送。由發(fā)送請(qǐng)求次序決定。

二.由發(fā)送請(qǐng)求次序決定通過(guò)對(duì)CAN_MCR寄存器的TXFP位置’1’,可以把發(fā)送郵箱配置為發(fā)送FIFO。在該模式下,發(fā)送的優(yōu)先級(jí)由發(fā)送請(qǐng)求次序決定。該模式對(duì)分段發(fā)送很有用。

中止通過(guò)對(duì)CAN_TSR寄存器的ABRQ位置’1’,可以中止發(fā)送請(qǐng)求。郵箱如果處于掛號(hào)或預(yù)定狀態(tài),發(fā)送請(qǐng)求馬上就被中止了。如果郵箱處于發(fā)送狀態(tài),那么中止請(qǐng)求可能導(dǎo)致2種結(jié)果。如果郵箱中的報(bào)文被成功發(fā)送,那么郵箱變?yōu)榭罩绵]箱,并且CAN_TSR寄存器的TXOK位被硬件置’1’。如果郵箱中的報(bào)文發(fā)送失敗了,那么郵箱變?yōu)轭A(yù)定狀態(tài),然后發(fā)送請(qǐng)求被中止,郵箱變?yōu)榭罩绵]箱且TXOK位被硬件清’0’。因此如果郵箱處于發(fā)送狀態(tài),那么在發(fā)送操作結(jié)束后,郵箱都會(huì)變?yōu)榭罩绵]箱。

接受

接受流程FIFO從空狀態(tài)開始,在接收到第一個(gè)有效的報(bào)文后, FIFO狀態(tài)變?yōu)閽焯?hào)_1(pending_1),硬件相應(yīng)地把CAN_RFR寄存器的FMP[1:0]設(shè)置為’01’(二進(jìn)制01b)。軟件可以讀取FIFO輸出郵箱來(lái)讀出郵箱中的報(bào)文,然后通過(guò)對(duì)CAN_RFR寄存器的RFOM位設(shè)置’1’來(lái)釋放郵箱,這樣FIFO又變?yōu)榭諣顟B(tài)了。如果在釋放郵箱的同時(shí),又收到了一個(gè)有效的報(bào)文,那么FIFO仍然保留在掛號(hào)_1狀態(tài),軟件可以讀取FIFO輸出郵箱來(lái)讀出新收到的報(bào)文。如果應(yīng)用程序不釋放郵箱,在接收到下一個(gè)有效的報(bào)文后, FIFO狀態(tài)變?yōu)閽焯?hào)_2(pending_2),硬件相應(yīng)地把FMP[1:0]設(shè)置為’10’(二進(jìn)制10b)。重復(fù)上面的過(guò)程,第三個(gè)有效的報(bào)文把FIFO變?yōu)閽焯?hào)_3狀態(tài)(FMP[1:0]=11b)。此時(shí),軟件必須對(duì)RFOM位設(shè)置1來(lái)釋放郵箱,以便FIFO可以有空間來(lái)存放下一個(gè)有效的報(bào)文;否則,下一個(gè)有效的報(bào)文到來(lái)時(shí)就會(huì)導(dǎo)致一個(gè)報(bào)文的丟失。

溢出

當(dāng)FIFO處于掛號(hào)_3狀態(tài)(即FIFO的3個(gè)郵箱都是滿的),下一個(gè)有效的報(bào)文就會(huì)導(dǎo)致溢出,并且一個(gè)報(bào)文會(huì)丟失。此時(shí),硬件對(duì)CAN_RFR寄存器的FOVR位進(jìn)行置’1’來(lái)表明溢出情況。至于哪個(gè)報(bào)文會(huì)被丟棄,取決于對(duì)FIFO的設(shè)置:

● 如果禁用了FIFO鎖定功能(CAN_MCR寄存器的RFLM位被清’0’),那么FIFO中最后收到的報(bào)文就被新報(bào)文所覆蓋。這樣,最新收到的報(bào)文不會(huì)被丟棄掉。● 如果啟用了FIFO鎖定功能(CAN_MCR寄存器的RFLM位被置’1’),那么新收到的報(bào)文就被丟棄,軟件可以讀到FIFO中最早收到的3個(gè)報(bào)文。

接收相關(guān)的中斷

一旦往FIFO存入一個(gè)報(bào)文,硬件就會(huì)更新FMP[1:0]位,并且如果CAN_IER寄存器的FMPIE位為’1’,那么就會(huì)產(chǎn)生一個(gè)中斷請(qǐng)求。

當(dāng)FIFO 變 滿 時(shí)( 即 第3 個(gè) 報(bào) 文 被 存 入) , CAN_RFR 寄 存 器 的FULL 位 就 被 置’1’ , 并 且 如 果CAN_IER寄存器的FFIE位為’1’,那么就會(huì)產(chǎn)生一個(gè)滿中斷請(qǐng)求。

在溢出的情況下, FOVR位被置’1’,并且如果CAN_IER寄存器的FOVIE位為’1’,那么就會(huì)產(chǎn)生一個(gè)溢出中斷請(qǐng)求。

位時(shí)序

位時(shí)間特性邏輯通過(guò)采樣來(lái)監(jiān)視串行的CAN總線,并且通過(guò)與幀起始位的邊沿進(jìn)行同步,及通過(guò)與后面的邊沿進(jìn)行重新同步,來(lái)調(diào)整其采樣點(diǎn)。

它的操作可以簡(jiǎn)單解釋為,如下所述把名義上的每位時(shí)間分為3段:

● 同步段(SYNC_SEG):通常期望位的變化發(fā)生在該時(shí)間段內(nèi)。其值固定為1個(gè)時(shí)間單元(1 xtCAN)?!?時(shí)間段1(BS1):定義采樣點(diǎn)的位置。它包含CAN標(biāo)準(zhǔn)里的PROP_SEG和PHASE_SEG1。

其值可以編程為1到16個(gè)時(shí)間單元,但也可以被自動(dòng)延長(zhǎng),以補(bǔ)償因?yàn)?a href="http://ttokpm.com/v/tag/1722/" target="_blank">網(wǎng)絡(luò)中不同節(jié)點(diǎn)的頻率差異所造成的相位的正向漂移。

● 時(shí)間段2(BS2):定義發(fā)送點(diǎn)的位置。它代表CAN標(biāo)準(zhǔn)里的PHASE_SEG2。其值可以編程為1到8個(gè)時(shí)間單元,但也可以被自動(dòng)縮短以補(bǔ)償相位的負(fù)向漂移。

重新同步跳躍寬度(SJW)定義了,在每位中可以延長(zhǎng)或縮短多少個(gè)時(shí)間單元的上限。其值可以編程為1到4個(gè)時(shí)間單元。

有效跳變被定義為,當(dāng)bxCAN自己沒有發(fā)送隱性位時(shí),從顯性位到隱性位的第1次轉(zhuǎn)變。如果在時(shí)間段1(BS1)而不是在同步段(SYNC_SEG)檢測(cè)到有效跳變,那么BS1的時(shí)間就被延長(zhǎng)最多SJW那么長(zhǎng),從而采樣點(diǎn)被延遲了。相反如果在時(shí)間段2(BS2)而不是在SYNC_SEG檢測(cè)到有效跳變,那么BS2的時(shí)間就被縮短最多SJW那么長(zhǎng),從而采樣點(diǎn)被提前了。為了避免軟件的編程錯(cuò)誤,對(duì)位時(shí)間特性寄存器(CAN_BTR)的設(shè)置,只能bxCAN處于初始化狀態(tài)下進(jìn)行。

中斷

● 發(fā)送中斷可由下列事件產(chǎn)生:─ 發(fā)送郵箱0變?yōu)榭眨?CAN_TSR寄存器的RQCP0位被置’1’。─ 發(fā)送郵箱1變?yōu)榭眨?CAN_TSR寄存器的RQCP1位被置’1’。─ 發(fā)送郵箱2變?yōu)榭眨?CAN_TSR寄存器的RQCP2位被置’1’。

● FIFO0中斷可由下列事件產(chǎn)生:─ FIFO0接收到一個(gè)新報(bào)文, CAN_RF0R寄存器的FMP0位不再是’00’。─ FIFO0變?yōu)闈M的情況, CAN_RF0R寄存器的FULL0位被置’1’。─ FIFO0發(fā)生溢出的情況, CAN_RF0R寄存器的FOVR0位被置’1’。

● FIFO1中斷可由下列事件產(chǎn)生:

─ FIFO1接收到一個(gè)新報(bào)文, CAN_RF1R寄存器的FMP1位不再是’00’。─ FIFO1變?yōu)闈M的情況, CAN_RF1R寄存器的FULL1位被置’1’。─ FIFO1發(fā)生溢出的情況, CAN_RF1R寄存器的FOVR1位被置’1’。

● 錯(cuò)誤和狀態(tài)變化中斷可由下列事件產(chǎn)生:─ 出錯(cuò)情況,關(guān)于出錯(cuò)情況的詳細(xì)信息請(qǐng)參考CAN錯(cuò)誤狀態(tài)寄存器(CAN_ESR)。─ 喚醒情況,在CAN接收引腳上監(jiān)視到幀起始位(SOF)。─ CAN進(jìn)入睡眠模式。

關(guān)于標(biāo)識(shí)符篩選器和篩選器匹配序號(hào)的理解

這兩個(gè)概念理解起來(lái)有點(diǎn)麻煩下面舉個(gè)例子來(lái)理解。面前有很多門,門上寫著不同的屬性,人得依據(jù)屬性進(jìn)門,比如說(shuō)小門1 小門2 中門 大門1 大門2 其中小門1要求身高恰恰等于1.87的人進(jìn)入 而中門要求身高小于1.90大于1.87的人進(jìn)入 這2個(gè)概念就是標(biāo)志篩選器的概念一個(gè)是標(biāo)志符列表,另一個(gè)是屏蔽位 而進(jìn)入門的人在后面的環(huán)節(jié)中 有測(cè)量身高這一環(huán) 為了快速獲知他們的身高 我們可以用他們進(jìn)的門來(lái)表示,因?yàn)殚T實(shí)際上包含了他們的身高信息這就是篩選器匹配的概念 篩選器匹配就是在很多門中有可能同時(shí)都可以使這個(gè)人進(jìn)入 但是只有那一個(gè)門的身高和人得身高最接近 比如說(shuō)人高1.70 門A要求1.68-1.12 門B要求1.70 那么就是門B由此篩選出門B這個(gè)匹配序號(hào) 可以直接獲知這個(gè)人得身高信息

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

    關(guān)注

    57

    文章

    2696

    瀏覽量

    463161
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

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

    關(guān)注

    1

    文章

    427

    瀏覽量

    19521

原文標(biāo)題:從頭到腳剖析STM32上的CAN通訊

文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32之CAN---配置波特率

    (CAN_BTR)地址偏移量: 0x1C復(fù)位值: 0x0123 0000注: 當(dāng)CAN處于初始化模式時(shí),該寄存器只能由軟件訪問(wèn)。圖2[tr=transparent]位31SILM:
    發(fā)表于 03-21 14:16

    STM32的CAN外設(shè)位時(shí)序

    ,采樣點(diǎn)位于 BS1 及 BS2 段的交界處。其中 SYNC_SEG 段固定長(zhǎng)度為 1Tq,而 BS1 及 BS2 段可以在位時(shí)序寄存器 CAN_BTR 設(shè)置它們的時(shí)間長(zhǎng)度,它們可以在重新同步期間增長(zhǎng)或
    發(fā)表于 08-11 09:10

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計(jì)數(shù)
    發(fā)表于 03-08 14:38 ?1.2w次閱讀

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發(fā)表于 03-08 14:50 ?1.7w次閱讀

    CAN寄存器功能

    fesscale的8位單片機(jī)can寄存器對(duì)應(yīng)的功能。
    發(fā)表于 03-29 14:44 ?4次下載

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實(shí)現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    寄存器變量

    C語(yǔ)言中使用關(guān)鍵字register來(lái)聲明局部變量為寄存器變量。寄存器變量的值會(huì)被存放在CPU的寄存器中,每當(dāng)需要使用它們時(shí),CPU就可以直接使用,而無(wú)須再通過(guò)
    發(fā)表于 06-03 10:13 ?2319次閱讀

    配置STM32寄存器控制GPIO點(diǎn)亮LED

    STM32點(diǎn)亮LED 寄存器方式IO簡(jiǎn)介1、每個(gè)IO可以自由編程,但是IO口寄存器必須按照32位字被訪問(wèn)。2、每個(gè)IO端口都有7個(gè)寄存器來(lái)控制。CRL 【0-7】端口配置
    發(fā)表于 01-13 16:15 ?3次下載
    配置STM32<b class='flag-5'>寄存器</b><b class='flag-5'>控制</b>GPIO點(diǎn)亮LED

    單片機(jī)工作寄存器作用 單片機(jī)常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機(jī)中還會(huì)有特定功能的寄存器,如定時(shí)寄存器、中斷
    的頭像 發(fā)表于 04-08 14:46 ?7239次閱讀

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過(guò)寄存器模型對(duì)RTL中寄存器進(jìn)行讀寫訪問(wèn),或者同步寄存器模型與RTL中寄存器
    的頭像 發(fā)表于 07-12 09:37 ?1006次閱讀
    RAL<b class='flag-5'>寄存器</b>模型操作指南

    STM32 CAN接收/發(fā)送錯(cuò)誤寄存器如何清零?

    ,每一個(gè)節(jié)點(diǎn)都有一個(gè)CAN控制器,CAN控制器通過(guò)內(nèi)部寄存器和接口與
    的頭像 發(fā)表于 09-14 14:22 ?4749次閱讀

    怎樣通過(guò)改變寄存器中的內(nèi)容實(shí)現(xiàn)對(duì)CPU的控制呢?

    寄存器是CPU中程序員可以用指令讀寫的部件,通過(guò)改變寄存器中的內(nèi)容實(shí)現(xiàn)對(duì)CPU的控制。
    的頭像 發(fā)表于 09-20 15:49 ?1289次閱讀
    怎樣<b class='flag-5'>通過(guò)</b>改變<b class='flag-5'>寄存器</b>中的內(nèi)容實(shí)現(xiàn)對(duì)CPU的<b class='flag-5'>控制</b>呢?

    寄存器分為基本寄存器和什么兩種

    寄存器是計(jì)算機(jī)中用于存儲(chǔ)數(shù)據(jù)的高速存儲(chǔ)單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1016次閱讀

    接口的控制與狀態(tài)寄存器什么作用

    的行為并獲取硬件的狀態(tài)信息。 接口的控制與狀態(tài)寄存器的作用 在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,硬件設(shè)備與軟件之間的交互是通過(guò)一系列的接口來(lái)實(shí)現(xiàn)的。這些接口不僅需要能夠傳輸數(shù)據(jù),還需要能夠控制硬件設(shè)備
    的頭像 發(fā)表于 10-17 10:42 ?237次閱讀