<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32之CAN---錯誤管理分析

STM32之CAN---錯誤管理分析

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò ) 收藏

3 STM32的bxCAN實(shí)現

3.1 bxCAN錯誤狀態(tài)圖

圖2

3.2 出錯管理

CAN協(xié)議描述的出錯管理,完全由硬件通過(guò)發(fā)送錯誤計數器(CAN_ESR寄存器里的TEC域),和接收錯誤計數器(CAN_ESR寄存器里的REC域)來(lái)實(shí)現,其值根據錯誤的情況而增加或減少。軟件可以讀出它們的值來(lái)判斷CAN網(wǎng)絡(luò )的穩定性。此外,CAN_ESR寄存器提供了當前錯誤狀態(tài)的詳細信息。通過(guò)設置CAN_IER寄存器(比如ERRIE位),軟件可以靈活地控制中斷的產(chǎn)生――當檢測到出錯時(shí)。

3.3 離線(xiàn)恢復

當TEC等于255時(shí),bxCAN就進(jìn)入離線(xiàn)狀態(tài),同時(shí)CAN_ESR寄存器的BOFF位被置’1’。在離線(xiàn)狀態(tài)下,bxCAN無(wú)法接收和發(fā)送報文。

根據CAN_MCR寄存器的ABOM位的設置,bxCAN可以自動(dòng)或在軟件的請求下,從離線(xiàn)狀態(tài)恢復(變?yōu)殄e誤主動(dòng)狀態(tài))。在這兩種情況下,bxCAN都必須等待一個(gè)CAN標準所描述的恢復過(guò)程(CAN RX引腳上檢測到128次11個(gè)連續的隱性位)。

如果ABOM位為’1’,bxCAN進(jìn)入離線(xiàn)狀態(tài)后,就自動(dòng)開(kāi)啟恢復過(guò)程。
如果ABOM位為’0’,軟件必須先請求bxCAN進(jìn)入然后再退出初始化模式,隨后恢復過(guò)程才被開(kāi)啟。

注: 在初始化模式下,bxCAN不會(huì )監視CAN RX引腳的狀態(tài),這樣就不能完成恢復過(guò)程。為了完成恢復過(guò)程,bxCAN必須工作在正常模式。

4 CAN錯誤狀態(tài)寄存器 (CAN_ESR)

地址偏移量: 0x18
復位值: 0x0000 0000

圖3

位31:24REC[7:0]: 接收錯誤計數器
這是對CAN協(xié)議的故障界定機制接收部分的實(shí)現。按照CAN的標準,當接收出錯時(shí),根據出錯的情況該計數器加1或加8;而在每次接收成功后,該計數器減1,或減少其值為120-當該計數器的值大于127時(shí)。當該計數器的值超過(guò)127時(shí),CAN進(jìn)入錯誤被動(dòng)狀態(tài)。
位23:16TEC[7:0]: 發(fā)送錯誤計數器
與上面相似,這是對CAN協(xié)議的故障界定機制發(fā)送部分的實(shí)現。
位15:7保留位,硬件強制為0。
位6:4LEC[2:0]: 上次錯誤代碼
在檢測到CAN總線(xiàn)上發(fā)生錯誤時(shí),硬件根據出錯情況設置其為1~6的值。當報文被正確發(fā)送或接收后,硬件清除其值為’0’。
硬件沒(méi)有使用錯誤代碼7,軟件可以設置該值,從而可以檢測代碼的更新。
000: 沒(méi)有錯誤;
001: 位填充錯;
010: 格式(Form)錯;
011: 確認(ACK)錯;
100: 隱性位錯;
101: 顯性位錯;
110: CRC錯;
111: 由軟件設置。
位3保留位,硬件強制為0。
位2BOFF: 離線(xiàn)(Bus Off)標志
當進(jìn)入離線(xiàn)狀態(tài)時(shí),硬件對該位置1。當發(fā)送錯誤計數器TEC溢出,即大于255時(shí),CAN進(jìn)入離線(xiàn)狀態(tài)。
位1EPVF: 錯誤被動(dòng)(Error Passive)標志
當出錯次數達到錯誤被動(dòng)的閾值時(shí),硬件對該位置1。
(接收錯誤計數器或發(fā)送錯誤計數器的值>127)。
位0EWGF: 錯誤警告標志
當出錯次數達到警告的閾值時(shí),硬件對該位置1。
(接收錯誤計數器或發(fā)送錯誤計數器的值≥96)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: STM32CAN錯誤管

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>