精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

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

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

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

幀格式

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

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;

錯(cuò)誤幀定義

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

一個(gè)錯(cuò)誤幀中,可以包含多種錯(cuò)誤類型的錯(cuò)誤信息。

CAN_ERR_TX_TIMEOUT錯(cuò)誤

WINCE中暫時(shí)保留。

lost arbitration仲裁丟失錯(cuò)誤

#defineCAN_ERR_LOSTARB0x00000002U

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

controller problems控制器出錯(cuò)

#defineCAN_ERR_CRTL0x00000004U

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

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

接收buffer溢出

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

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

發(fā)送buffer溢出

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

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

接收錯(cuò)誤達(dá)到警告級別

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

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

發(fā)送錯(cuò)誤達(dá)到警告級別

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

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

接收錯(cuò)誤達(dá)到嚴(yán)重錯(cuò)誤級別

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

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

發(fā)送錯(cuò)誤達(dá)到嚴(yán)重錯(cuò)誤級別

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

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

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

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

CAN通信協(xié)議出錯(cuò)

#defineCAN_ERR_PROT0x00000008U

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

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

(類型)單bit出錯(cuò)

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

(類型)幀格式出錯(cuò)

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

(類型)位填充出錯(cuò)

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

(類型)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。

(類型)傳輸出錯(cuò)

data[2] &0x80為真,傳輸出錯(cuò)。

位置

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標(biāo)準(zhǔn)擴(kuò)展位

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)錯(cuò)誤

#defineCAN_ERR_TRX0x00000010U

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

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

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

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

無ACK錯(cuò)誤

#defineCAN_ERR_ACK0x00000020U

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

總線關(guān)閉

#defineCAN_ERR_BUSOFF0x00000040U

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

總線錯(cuò)誤

#defineCAN_ERR_BUSERROR0x00000080U

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

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

控制器重啟

#defineCAN_ERR_RESTARTED0x00000100U

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

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

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35218
收藏 人收藏

    評論

    相關(guān)推薦

    CAN總線常見錯(cuò)誤碼及其解決方法

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

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

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

    can標(biāo)準(zhǔn)和擴(kuò)展能否共存

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

    can標(biāo)準(zhǔn)和擴(kuò)展的區(qū)別

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

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

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

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

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

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

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

    一文讀懂CAN通訊錯(cuò)誤

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

    一文讀懂CAN控制器錯(cuò)誤處理的原理

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

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

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

    CAN總線的標(biāo)準(zhǔn)和擴(kuò)展有什么區(qū)別呢?分別適用于什么工況?

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

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

    CAN通信協(xié)議中有四種類型,分別是數(shù)據(jù)、遠(yuǎn)程錯(cuò)誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?5119次閱讀

    Coral3568如何軟硬件過濾can及優(yōu)化?

    structcan_filterfilter[1];/*規(guī)則:可以接收ID為0x200數(shù)據(jù)錯(cuò)誤*/filter[0].can_mask=CAN
    的頭像 發(fā)表于 12-08 15:52 ?595次閱讀
    Coral3568如何軟硬件過濾<b class='flag-5'>can</b><b class='flag-5'>幀</b>及優(yōu)化?

    can標(biāo)準(zhǔn)和擴(kuò)展區(qū)別

    標(biāo)準(zhǔn)和擴(kuò)展是用于在控制器局域網(wǎng)(CAN)中傳輸數(shù)據(jù)的兩種基本格式。它們在結(jié)構(gòu)、標(biāo)識(shí)符長度、數(shù)據(jù)長度以及數(shù)據(jù)傳輸和應(yīng)用上存在一些區(qū)別。本文將詳細(xì)介紹標(biāo)準(zhǔn)
    的頭像 發(fā)表于 12-08 10:08 ?9637次閱讀

    如何用示波器排查CAN的各種錯(cuò)誤呢?

    如何用示波器排查CAN的各種錯(cuò)誤呢? 導(dǎo)言: 控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)是一種常用的現(xiàn)場總線通信協(xié)議,廣泛應(yīng)用于汽車電子系統(tǒng)、工業(yè)自動(dòng)化
    的頭像 發(fā)表于 12-07 11:09 ?1120次閱讀