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

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

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

CAN協(xié)議解析

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2023-07-26 17:05 ? 次閱讀

CAN 總線組網(wǎng)連線圖

根據(jù)CAN總線的硬件特性,當(dāng)一條CAN總線上掛接多個驅(qū)動器的時候,應(yīng)當(dāng)按照如下示意圖進(jìn)行連接布線。 需要在線的起點(diǎn)和終點(diǎn)上各連上一個 120Ω的電阻。并且 CAN 總線只能有一條主干線,分支的線不宜過長。
最近在弄ST和GD的課程,需要GD樣片的可以加群申請:615061293 。

在這里插入圖片描述

由上圖可知,CAN通信是通過兩根線完成的: 一條是黃色的CAN_High 一條是綠色的CANLow CAN能夠使用多種物理介質(zhì)作為通信媒介,最常用的是雙絞線,還可以使用光纖等材料。CAN總線信號通過兩條差分電壓信號線CAN H和CAN* L傳輸,當(dāng)CAN* H和CANL信號線上的電壓值處于2. 5V左右時表明此時總線處于我們所謂的邏輯電平“1”的狀態(tài),也可以稱做隱性狀態(tài);當(dāng)CAN* H比CAN* L上電壓值高時表示邏輯“0”,通常該狀態(tài)下兩條信號線上的電壓值為CAN* H=3. 5V和CAN* L=1. 5V,此時是顯性狀態(tài)。下圖是雙絞線CAN總線電平標(biāo)稱值,圖中顯示了邏輯高電平和邏輯低電平所對應(yīng)的大致總線電壓值。

在這里插入圖片描述

下圖是發(fā)送長度為3的數(shù)據(jù)0x111111,標(biāo)準(zhǔn)幀ID為0001。

在這里插入圖片描述

可以看到在空閑狀態(tài)下,電平在2.5V左右,黃線為CANL,紫線為CAN* H,當(dāng)為顯性時,CAN* H電平拉到3V左右,CAN* L電平拉到1V左右,CAN* H-CAN* L=2V,橙色線為CAN* H-CAN_ L。

在這里插入圖片描述

CAN的報文格式

報文格式

首先,CAN總線協(xié)議中的報文指的是總線單元間傳遞的消息,消息的格式各有不同,總線上的單元想要發(fā)送新信息就要檢測到總線空閑狀態(tài)的位信息才可以發(fā)送。總線上的報文信息表示為幾種固定的幀類型,下圖列出了根據(jù)CAN總線通信中5種不同用途所設(shè)置的幀類型。

在這里插入圖片描述

下表是標(biāo)識符種類說明。

在這里插入圖片描述

終止CAN2. 0B協(xié)議時只是不能發(fā)送擴(kuò)展格式報文,總線仍可以正常工作。下面就CAN總線的各種功能幀結(jié)構(gòu)對報文格式進(jìn)行詳細(xì)說明,數(shù)據(jù)幀由7個段構(gòu)成。數(shù)據(jù)幀的構(gòu)成如圖所示。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

標(biāo)準(zhǔn)CAN只有11位標(biāo)識符,每幀的數(shù)據(jù)長度為44+8N位。
● SOF - 幀起始,顯性(邏輯0)表示報文的開始,并用于同步總線上的節(jié)點(diǎn)。
● 標(biāo)識符 - 標(biāo)準(zhǔn)CAN具有11位標(biāo)識符,用來確定報文的優(yōu)先級。此域的數(shù)值越小,優(yōu)先級越高。
● RTR - 遠(yuǎn)程發(fā)送請求位,當(dāng)需要從另一個節(jié)點(diǎn)請求信息時,此位為顯性(邏輯0)。所有節(jié)點(diǎn)都能接收這個請求,但是幀標(biāo)識符確定被指定的節(jié)點(diǎn)。響應(yīng)數(shù)據(jù)幀同樣被所有節(jié)點(diǎn)接收,可以被有興趣的節(jié)點(diǎn)使用。
● IDE - 標(biāo)識符擴(kuò)展位為顯性時表示這是一個標(biāo)準(zhǔn)CAN格式,為隱形表示這是擴(kuò)展CAN格式。 ● r0 - 保留位(可能將來標(biāo)準(zhǔn)修訂會使用)
● DLC - 4位數(shù)據(jù)長度代碼表示傳輸數(shù)據(jù)的字節(jié)數(shù)目,一幀CAN最多傳輸8字節(jié)用戶數(shù)據(jù)
● 數(shù)據(jù)0~8 – 最多可以傳輸8字節(jié)用戶數(shù)據(jù)
● CRC - 16位(包括1位定界符)CRC校驗碼用來校驗用戶數(shù)據(jù)區(qū)之前的(包含數(shù)據(jù)區(qū))傳輸數(shù)據(jù)段。
ACK - 2位,包含應(yīng)答位和應(yīng)答界定符。發(fā)送節(jié)點(diǎn)的報文幀中,ACK兩位是隱性位,當(dāng)接收器正確地接收到有效的報文,接收器會在應(yīng)答位期間向發(fā)送節(jié)點(diǎn)發(fā)送一個顯性位,表示應(yīng)答。如果接收器發(fā)現(xiàn)這幀數(shù)據(jù)有錯誤,則不向發(fā)送節(jié)點(diǎn)發(fā)送ACK應(yīng)答,發(fā)送節(jié)點(diǎn)會稍后重傳這幀數(shù)據(jù)。
● EOF – 7位幀結(jié)束標(biāo)志位,全部為隱性位。如果這7位出現(xiàn)顯性位,則會引起填充錯誤。
● IFS – 7位幀間隔標(biāo)志位,CAN控制器將接收到的幀正確的放入消息緩沖區(qū)是需要一定時間的,幀間隔可以提供這個時間。

在這里插入圖片描述

擴(kuò)展CAN

在這里插入圖片描述

● 擴(kuò)展CAN具有29位標(biāo)識符,每幀數(shù)據(jù)長度為64+8N位。
● SRR – 代替遠(yuǎn)程請求位,為隱性。所以當(dāng)標(biāo)準(zhǔn)幀與擴(kuò)展幀發(fā)送相互沖突并且擴(kuò)展幀的基本標(biāo)識符與標(biāo)準(zhǔn)幀的標(biāo)識符相同時,標(biāo)準(zhǔn)幀優(yōu)先級高于擴(kuò)展幀。
● IDE – 為隱性位表示標(biāo)志位擴(kuò)展幀,18位擴(kuò)展標(biāo)識符緊跟著IDE位。
● r1 – 保留

錯誤檢測

在這里插入圖片描述

波形解析

發(fā)送長度為3的數(shù)據(jù)0x111111,標(biāo)準(zhǔn)幀ID為0001。

ID

當(dāng)ID為0001時候,對于二進(jìn)制為000 0000 0001,由于位填充機(jī)制,發(fā)送器只要檢測到有5個連續(xù)相同值的位,就會自動在下一位里添加一個相反值,接收器接受數(shù)據(jù)時會自動剔除這個添加位。

在這里插入圖片描述

數(shù)據(jù)長度

RTR、IDE、R0默認(rèn)情況下為0,數(shù)據(jù)長度為0011(3)。

在這里插入圖片描述

數(shù)據(jù)字段

傳輸數(shù)據(jù)為3字節(jié)的數(shù)據(jù),為0x111111。

在這里插入圖片描述

CRC

校驗位(CRC) = 15位之后有一個隱性CRC分隔符位 應(yīng)答區(qū)(ACK) 2位,包括ACK槽加一個隱性ACK分隔符,ACK兩位是隱性位,當(dāng)接收器正確地接收到有效的報文,接收器會在應(yīng)答位期間向發(fā)送節(jié)點(diǎn)發(fā)送一個顯性位,表示應(yīng)答。 CRC為0x1984(001 1001 1000 0100),CRC分隔符為1 ACK為01

在這里插入圖片描述

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2754

    瀏覽量

    463697
  • 協(xié)議
    +關(guān)注

    關(guān)注

    2

    文章

    602

    瀏覽量

    39223
  • 組網(wǎng)
    +關(guān)注

    關(guān)注

    1

    文章

    353

    瀏覽量

    22346
收藏 人收藏

    評論

    相關(guān)推薦

    CAN總線應(yīng)用領(lǐng)域 CAN總線協(xié)議解析

    CAN(Controller Area Network)總線是一種用于車輛內(nèi)部網(wǎng)絡(luò)的串行通信協(xié)議,由Bosch公司在1986年開發(fā)。它以其高可靠性、實(shí)時性和靈活性而聞名,廣泛應(yīng)用于汽車電子、工業(yè)控制
    的頭像 發(fā)表于 11-21 10:15 ?409次閱讀

    解析CAN總線

    前言 前面已經(jīng)介紹了幾種總線協(xié)議,那現(xiàn)在如果在汽車上實(shí)際應(yīng)用一種總線協(xié)議來通訊的話,你會選擇哪一種呢? 答案是 都不行 因為在汽車中許多系統(tǒng)都需要實(shí)時控制,而且數(shù)據(jù)必須可靠,即使面對面對惡劣環(huán)境也要
    的頭像 發(fā)表于 11-19 13:35 ?413次閱讀
    <b class='flag-5'>解析</b><b class='flag-5'>CAN</b>總線

    CAN總線知識】全面了解CAN總線協(xié)議

    提及總線,總是讓人聯(lián)想到那些交錯在一起的計算機(jī)電線。那么這些電線如何發(fā)揮功效呢?這還得配合總線協(xié)議的管理來使用。那么今天我們介紹的就是CAN總線協(xié)議??纯催@個協(xié)議的含義和應(yīng)用吧。
    的頭像 發(fā)表于 10-15 08:05 ?1468次閱讀
    【<b class='flag-5'>CAN</b>總線知識】全面了解<b class='flag-5'>CAN</b>總線<b class='flag-5'>協(xié)議</b>

    CAN底層報文抓到了,卻不知怎么解析?以及如何看到信號運(yùn)行狀態(tài)?

    本文介紹CAN總線中DBC文件的重要性及ZCANPRO如何實(shí)現(xiàn)DBC解析、數(shù)據(jù)發(fā)送和實(shí)時曲線分析,幫助您更有效地分析和利用CAN總線數(shù)據(jù)。在CAN總線的實(shí)際應(yīng)用中,我們經(jīng)常需要
    的頭像 發(fā)表于 09-30 08:05 ?1163次閱讀
    <b class='flag-5'>CAN</b>底層報文抓到了,卻不知怎么<b class='flag-5'>解析</b>?以及如何看到信號運(yùn)行狀態(tài)?

    EtherCAT從站轉(zhuǎn)CAN協(xié)議網(wǎng)關(guān)(CAN轉(zhuǎn)EtherCAT)

    EtherCAT的數(shù)據(jù)給CAN設(shè)備使用。 應(yīng)用廣泛:應(yīng)用于支持CAN接口的變頻器、步進(jìn)電機(jī)、伺服驅(qū)動器、儀表、PLC、DCS、FCS等等。在自動化倉庫和物流輸送系統(tǒng)中,各類搬運(yùn)設(shè)備和傳感器可能使用CAN
    的頭像 發(fā)表于 08-30 11:30 ?490次閱讀
    EtherCAT從站轉(zhuǎn)<b class='flag-5'>CAN</b><b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(<b class='flag-5'>CAN</b>轉(zhuǎn)EtherCAT)

    labview CAN DBC加載解析程序

    labview CAN DBC加載解析程序
    發(fā)表于 08-18 11:42

    CAN/CAN FD/CAN XL三大總線協(xié)議解讀,是逐步替代關(guān)系嗎?

    進(jìn)入核心市場。 不過,從市場表現(xiàn)來看,目前CAN/CAN FD/CAN XL各有各的市場,并非逐步取代的關(guān)系,背后的原因是什么呢? ? CAN/CA
    的頭像 發(fā)表于 08-12 01:12 ?4409次閱讀

    plc協(xié)議解析網(wǎng)關(guān)是什么

    PLC協(xié)議解析網(wǎng)關(guān)是一種專門用于工業(yè)自動化領(lǐng)域的設(shè)備,它的主要功能是實(shí)現(xiàn)不同通信協(xié)議之間的轉(zhuǎn)換和解析,以便于不同類型的PLC、傳感器、執(zhí)行器等設(shè)備能夠互相通信和數(shù)據(jù)交換。 在工業(yè)控制系
    的頭像 發(fā)表于 07-12 15:41 ?304次閱讀
    plc<b class='flag-5'>協(xié)議</b><b class='flag-5'>解析</b>網(wǎng)關(guān)是什么

    can的通信協(xié)議主要由什么完成

    CAN(Controller Area Network)是一種基于消息的通信協(xié)議,主要用于汽車和工業(yè)領(lǐng)域。它是一種局域網(wǎng)技術(shù),允許多個設(shè)備在同一網(wǎng)絡(luò)上進(jìn)行通信。CAN協(xié)議的主要特點(diǎn)包括
    的頭像 發(fā)表于 06-16 10:29 ?612次閱讀

    什么是CAN總線協(xié)議?它有哪些特性和應(yīng)用?

    CAN總線協(xié)議(Controller Area Network,簡稱CAN),是一種在汽車和工業(yè)自動化領(lǐng)域廣泛應(yīng)用的串行通信協(xié)議。自1986年由德國博世公司提出以來,
    的頭像 發(fā)表于 05-27 16:32 ?1320次閱讀

    什么是CAN2.0協(xié)議?

    CAN2.0協(xié)議是控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)的一種版本,也被稱為傳統(tǒng)CAN協(xié)議,由德國博世BOSC
    的頭像 發(fā)表于 03-29 08:19 ?1334次閱讀
    什么是<b class='flag-5'>CAN</b>2.0<b class='flag-5'>協(xié)議</b>?

    泰克科技全新CAN XL協(xié)議解碼軟件上線

    近日,泰克宣布推出CAN XL(控制器局域網(wǎng)擴(kuò)展長度)協(xié)議解碼軟件,支持工程師整合最新一代CAN通信技術(shù),并幫助客戶在技術(shù)日新月異的當(dāng)今時代保持競爭優(yōu)勢。 泰克CAN XL
    發(fā)表于 03-27 10:30 ?496次閱讀
    泰克科技全新<b class='flag-5'>CAN</b> XL<b class='flag-5'>協(xié)議</b>解碼軟件上線

    CAN和CANFD協(xié)議簡介(下)

    CAN和CANFD協(xié)議簡介(下)
    的頭像 發(fā)表于 02-19 12:08 ?1114次閱讀
    <b class='flag-5'>CAN</b>和CANFD<b class='flag-5'>協(xié)議</b>簡介(下)

    CAN和CANFD協(xié)議簡介(上)

    CAN和CANFD協(xié)議簡介(上)
    的頭像 發(fā)表于 01-26 08:06 ?1393次閱讀
    <b class='flag-5'>CAN</b>和CANFD<b class='flag-5'>協(xié)議</b>簡介(上)

    CAN總線協(xié)議簡介及其常見的應(yīng)用領(lǐng)域

    CAN總線協(xié)議是一種串行通訊協(xié)議,主要用于汽車和工業(yè)自動化領(lǐng)域,實(shí)現(xiàn)了實(shí)時應(yīng)用的需求。 首先,CAN總線協(xié)議的基本概念包括報文、信息路由和位
    的頭像 發(fā)表于 01-19 17:47 ?1129次閱讀