在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

            3 STM32的bxCAN實現(xiàn)

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

            圖2

            3.2 出錯管理

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

            3.3 離線恢復(fù)

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

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

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

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

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

            地址偏移量: 0x18
            復(fù)位值: 0x0000 0000

            圖3

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


            上一頁 1 2 下一頁

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

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉