RM新时代网站-首页

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

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

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

英創(chuàng)信息技術(shù)關(guān)于新CAN驅(qū)動的錯誤幀定義

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-05 10:27 ? 次閱讀

CAN總線產(chǎn)生的錯誤以錯誤幀的形式上報給應(yīng)用層。設(shè)置注冊表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1] BusErrorReport項為1可以讓驅(qū)動上報CAN總線錯誤幀,為0,驅(qū)動不會上報錯誤幀。

幀格式

CAN幀結(jié)構(gòu)體定義如下,當CAN_FRAME中CAN_ID的error為1時,表示該幀為錯誤幀。

typedefstruct{

unsignedintid:29;

unsignedinterror:1;

unsignedintremote:1;

unsignedintextended:1;

}CAN_ID;

typedefstruct_can_frame

{

CAN_ID can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */

BYTE can_dlc; /* frame payload length in byte*/

BYTE data[CAN_MAX_DLEN];

} CAN_FRAME, *PCAN_FRAME;

錯誤幀定義

可以參考例程中庫頭文件sdk_can.h,錯誤幀標記為CAN_ID的error,錯誤類型存放在CAN_ID中,根據(jù)不同類型的錯誤,詳細信息存放在幀結(jié)構(gòu)體CAN_FRAME的data中。

一個錯誤幀中,可以包含多種錯誤類型的錯誤信息。

CAN_ERR_TX_TIMEOUT錯誤

WINCE中暫時保留。

lost arbitration仲裁丟失錯誤

#defineCAN_ERR_LOSTARB0x00000002U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_LOSTARB為真時,表明該錯誤產(chǎn)生。

controller problems控制器出錯

#defineCAN_ERR_CRTL0x00000004U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_CRTL為真時,表明該錯誤產(chǎn)生。

詳細信息存放在錯誤幀結(jié)構(gòu)體data[1]中。

接收buffer溢出

data[0] &0x01為真,表明該錯誤產(chǎn)生。

需要及時處理接收到的數(shù)據(jù)包。

發(fā)送buffer溢出

data[0] &0x02為真,表明該錯誤產(chǎn)生。

可能由于瞬間發(fā)送的數(shù)據(jù)包過多導(dǎo)致。

接收錯誤達到警告級別

data[0] &0x04為真,表明該錯誤產(chǎn)生。

當該錯誤提示,表明短期內(nèi)接收產(chǎn)生的錯誤較多。

發(fā)送錯誤達到警告級別

data[0] &0x08為真,表明該錯誤產(chǎn)生。

當該錯誤提示,表明短期內(nèi)發(fā)送產(chǎn)生的錯誤較多。

接收錯誤達到嚴重錯誤級別

data[0] &0x10為真,表明該錯誤產(chǎn)生。

當該錯誤提示,表明短期內(nèi)接收產(chǎn)生的錯誤過多。應(yīng)當暫停CAN通信,檢查錯誤原因。

發(fā)送錯誤達到嚴重錯誤級別

data[0] &0x20為真,表明該錯誤產(chǎn)生。

當該錯誤提示,表明短期內(nèi)發(fā)送產(chǎn)生的錯誤過多。應(yīng)當暫停CAN通信,檢查錯誤原因。

恢復(fù)到錯誤激活狀態(tài)

data[0] &0x40為真,表明恢復(fù)到錯誤激活狀態(tài)。

CAN通信協(xié)議出錯

#defineCAN_ERR_PROT0x00000008U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_PROT為真時,表明該錯誤產(chǎn)生。

詳細信息存放在錯誤幀結(jié)構(gòu)體data[2]和data[3]中,其中data[2]表明協(xié)議錯誤類型,data[3]表明協(xié)議出錯的位置

(類型)單bit出錯

data[2] &0x01為真,表明協(xié)議單bit出錯。

(類型)幀格式出錯

data[2] &0x02為真,表明幀格式出錯。

(類型)位填充出錯

data[2] &0x04為真,表明位填充出錯。

(類型)dominant bit發(fā)送失敗

data[2] &0x08為真,表明dominant bit發(fā)送失敗。

(類型)recessive bit發(fā)送失敗

data[2] &0x10為真,表明recessive bi發(fā)送失敗。

(類型)總線過載

data[2] &0x20為真,表明總線過載。

(類型)active error announcement

data[2] &0x40為真,active error announcement。

(類型)傳輸出錯

data[2] &0x80為真,傳輸出錯。

位置

data[3]為0x03表明協(xié)議SOF幀頭位置

data[3]為0x02表明協(xié)議ID第28-21bits(SFF:10-3)

data[3]為0x06表明協(xié)議ID第20-18bits(SFF:2-0)

data[3]為0x04表明協(xié)議substitute RTR位(SFF:RTR)

data[3]為0x05表明協(xié)議identifier extension標準擴展位

data[3]為0x07表明協(xié)議ID第17-13bits

data[3]為0x0F表明協(xié)議ID第12-5bits

data[3]為0x0E表明協(xié)議ID第4-0bits

data[3]為0x0C表明協(xié)議RTR位

data[3]為0x0D表明接收bit 1

data[3]為0x09表明接收bit 0

data[3]為0x0B表明DLC位

data[3]為0x0A表明DATA位

data[3]為0x08表明CRC序列

data[3]為0x18表明CRC分隔符

data[3]為0x19表明ACK應(yīng)答位

data[3]為0x1B表明ACK分隔符

data[3]為0x1A表明幀尾

data[3]為0x12表明間歇

收發(fā)狀態(tài)錯誤

#defineCAN_ERR_TRX0x00000010U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_TRX為真時,表明在收發(fā)時CAN狀態(tài)有誤。

詳細信息存放在錯誤幀結(jié)構(gòu)體data[4]中,data[4]中1個字節(jié)8bit中,高4位表示CANL值,分別代表如下CANH錯誤

高4位表示CANH值,分別代表如下CANL錯誤

高低位值以排列組合方式存在。

無ACK錯誤

#defineCAN_ERR_ACK0x00000020U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_ACK為真時,表明該錯誤產(chǎn)生。

總線關(guān)閉

#defineCAN_ERR_BUSOFF0x00000040U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_BUSOFF為真時,表明總線關(guān)閉。

總線錯誤

#defineCAN_ERR_BUSERROR0x00000080U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_BUSERROR為真時,表明該錯誤產(chǎn)生。

該錯誤通常與其它錯誤一起發(fā)出。

控制器重啟

#defineCAN_ERR_RESTARTED0x00000100U

當錯誤幀結(jié)構(gòu)體中CAN_ID& CAN_ERR_RESTARTED為真時,表明控制器重啟。

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

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35295
收藏 人收藏

    評論

    相關(guān)推薦

    CAN總線常見錯誤碼及其解決方法

    錯誤碼,這些錯誤碼可以幫助我們診斷和解決問題。 1. 錯誤(Error Frame) 錯誤碼 :當CA
    的頭像 發(fā)表于 11-12 10:05 ?1699次閱讀

    中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術(shù)實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?461次閱讀

    can標準和擴展能否共存

    CAN(Controller Area Network)是一種用于汽車和工業(yè)自動化領(lǐng)域的現(xiàn)場總線通信協(xié)議。CAN協(xié)議具有多種格式,包括標準和擴展
    的頭像 發(fā)表于 07-24 15:24 ?1849次閱讀

    can標準和擴展的區(qū)別

    CAN(Controller Area Network)是一種用于汽車和工業(yè)領(lǐng)域的通信協(xié)議,它允許多個設(shè)備在同一總線上進行通信。CAN協(xié)議有兩種類型:標準和擴展
    的頭像 發(fā)表于 07-24 15:20 ?1829次閱讀

    can網(wǎng)絡(luò)數(shù)據(jù)的特點

    特點,在分布式系統(tǒng)中得到了廣泛應(yīng)用。 數(shù)據(jù)的重要性 :數(shù)據(jù)CAN網(wǎng)絡(luò)中用于數(shù)據(jù)傳輸?shù)幕締卧?,其結(jié)構(gòu)設(shè)計和特性直接關(guān)系到整個網(wǎng)絡(luò)的通信效率和可靠性。 二、數(shù)據(jù)的結(jié)構(gòu) 基本構(gòu)成
    的頭像 發(fā)表于 07-24 15:18 ?355次閱讀

    can數(shù)據(jù)有哪幾個域組成

    CAN(控制器局域網(wǎng)絡(luò))是一種基于消息傳遞的通信協(xié)議,廣泛應(yīng)用于汽車、工業(yè)自動化和嵌入式系統(tǒng)等領(lǐng)域。CAN協(xié)議的數(shù)據(jù)是用于傳輸信息的基本單位。 1.
    的頭像 發(fā)表于 07-24 15:14 ?960次閱讀

    CAN數(shù)據(jù)的各個域及其作用

    CAN(Controller Area Network)是一種用于汽車電子系統(tǒng)中的通信協(xié)議,它具有高可靠性、實時性和靈活性等特點。在CAN通信中,數(shù)據(jù)是最基本的通信單元,用于傳輸信息
    的頭像 發(fā)表于 07-24 15:10 ?1203次閱讀

    一文讀懂CAN通訊錯誤

    CAN總線通信技術(shù)廣泛應(yīng)用于多個行業(yè),是每個總線設(shè)計工程師必學(xué)的一個通訊網(wǎng)絡(luò)。然而,對于CAN通信中的錯誤,許多人僅停留在表面了解,缺乏深
    的頭像 發(fā)表于 06-12 08:24 ?2682次閱讀
    一文讀懂<b class='flag-5'>CAN</b>通訊<b class='flag-5'>錯誤</b><b class='flag-5'>幀</b>

    一文讀懂CAN控制器錯誤處理的原理

    CAN通訊的錯誤到底是如何被界定的?本文帶你輕松了解!錯誤標定檢測到錯誤條件的站通過發(fā)送錯誤
    的頭像 發(fā)表于 04-26 08:25 ?1606次閱讀
    一文讀懂<b class='flag-5'>CAN</b>控制器<b class='flag-5'>錯誤</b>處理的原理

    CAN 會收到錯誤的數(shù)據(jù)嗎?

    CAN-bus總線協(xié)議以高穩(wěn)定性,高容錯率而著稱于世,然而仍有很多用戶在使用的時候擔心CAN會接受到錯誤信息,在數(shù)據(jù)里增加了CRC校驗的部分,這種做法是否有必要?
    的頭像 發(fā)表于 04-04 08:24 ?415次閱讀
    <b class='flag-5'>CAN</b> 會收到<b class='flag-5'>錯誤</b>的數(shù)據(jù)嗎?

    CAN數(shù)據(jù)傳輸錯誤的常見原因有哪些?

    電源波動或其他電氣問題可能會影響CAN信號的質(zhì)量并導(dǎo)致“錯誤”。例如,波特率不匹配或者節(jié)點沒有初始化,也可能導(dǎo)致沒有ACK(應(yīng)答)信號。
    發(fā)表于 04-02 09:30 ?1111次閱讀

    虹科技術(shù) | PCAN View功能細講:從實時監(jiān)測到錯誤分析

    相信使用過PCAN工具的朋友都知道虹科PCAN-View這款免費軟件,它具有直觀的用戶界面,可以實時監(jiān)測和分析CAN總線上的數(shù)據(jù),并提供過濾、發(fā)送和報文記錄。但你知道嗎?它其實不只是簡單收發(fā)報文,虹科PCAN-View還能自動檢測和報告
    的頭像 發(fā)表于 03-18 13:48 ?1256次閱讀
    虹科<b class='flag-5'>技術(shù)</b> | PCAN View功能細講:從實時監(jiān)測到<b class='flag-5'>錯誤</b><b class='flag-5'>幀</b>分析

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢?

    之間的信息傳輸。下面將詳細介紹CAN總線數(shù)據(jù)的格式。 CAN總線數(shù)據(jù)分為兩種類型:標準和擴
    的頭像 發(fā)表于 01-31 13:46 ?1268次閱讀

    CAN總線的標準和擴展有什么區(qū)別呢?分別適用于什么工況?

    CAN總線的標準和擴展CAN協(xié)議中的兩種類型。
    的頭像 發(fā)表于 01-30 09:41 ?6101次閱讀
    <b class='flag-5'>CAN</b>總線的標準<b class='flag-5'>幀</b>和擴展<b class='flag-5'>幀</b>有什么區(qū)別呢?分別適用于什么工況?

    CAN通信協(xié)議中有哪幾種類型?CAN通信中格式的作用

    CAN通信協(xié)議中有四種類型,分別是數(shù)據(jù)、遠程、錯誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?5409次閱讀
    RM新时代网站-首页