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

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

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

CAN協(xié)議解析

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

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

根據(jù)CAN總線的硬件特性,當(dāng)一條CAN總線上掛接多個驅(qū)動器的時候,應(yīng)當(dāng)按照如下示意圖進行連接布線。 需要在線的起點和終點上各連上一個 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總線電平標稱值,圖中顯示了邏輯高電平和邏輯低電平所對應(yīng)的大致總線電壓值。

在這里插入圖片描述

下圖是發(fā)送長度為3的數(shù)據(jù)0x111111,標準幀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è)置的幀類型。

在這里插入圖片描述

下表是標識符種類說明。

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

擴展CAN

在這里插入圖片描述

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

錯誤檢測

在這里插入圖片描述

波形解析

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

ID

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

在這里插入圖片描述

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

RTR、IDE、R0默認情況下為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é)點發(fā)送一個顯性位,表示應(yīng)答。 CRC為0x1984(001 1001 1000 0100),CRC分隔符為1 ACK為01

在這里插入圖片描述

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2662

    瀏覽量

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

    關(guān)注

    2

    文章

    590

    瀏覽量

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

    關(guān)注

    1

    文章

    333

    瀏覽量

    22246
收藏 人收藏

    評論

    相關(guān)推薦

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

    EtherCAT的數(shù)據(jù)給CAN設(shè)備使用。 應(yīng)用廣泛:應(yīng)用于支持CAN接口的變頻器、步進電機、伺服驅(qū)動器、儀表、PLC、DCS、FCS等等。在自動化倉庫和物流輸送系統(tǒng)中,各類搬運設(shè)備和傳感器可能使用CAN
    的頭像 發(fā)表于 08-30 11:30 ?252次閱讀
    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)

    CAN主站轉(zhuǎn)Profinet協(xié)議網(wǎng)關(guān)(JM-PN-CAN

    一,產(chǎn)品主要功能 1、捷米特JM-PN-CAN該網(wǎng)關(guān)能夠?qū)rofinet協(xié)議CAN總線協(xié)議進行轉(zhuǎn)換,實現(xiàn)Profinet網(wǎng)絡(luò)與CAN網(wǎng)絡(luò)
    的頭像 發(fā)表于 08-28 15:28 ?196次閱讀
    <b class='flag-5'>CAN</b>主站轉(zhuǎn)Profinet<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(JM-PN-<b class='flag-5'>CAN</b>)

    labview CAN DBC加載解析程序

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

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

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

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

    PLC協(xié)議解析網(wǎng)關(guān)是一種專門用于工業(yè)自動化領(lǐng)域的設(shè)備,它的主要功能是實現(xiàn)不同通信協(xié)議之間的轉(zhuǎn)換和解析,以便于不同類型的PLC、傳感器、執(zhí)行器等設(shè)備能夠互相通信和數(shù)據(jù)交換。 在工業(yè)控制系
    的頭像 發(fā)表于 07-12 15:41 ?187次閱讀
    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ò)上進行通信。CAN協(xié)議的主要特點包括
    的頭像 發(fā)表于 06-16 10:29 ?400次閱讀

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

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

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

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

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

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

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

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

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

    CAN和CANFD協(xié)議簡介(上)
    的頭像 發(fā)表于 01-26 08:06 ?528次閱讀
    <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)域,實現(xiàn)了實時應(yīng)用的需求。 首先,CAN總線協(xié)議的基本概念包括報文、信息路由和位
    的頭像 發(fā)表于 01-19 17:47 ?993次閱讀

    Modbus轉(zhuǎn)CANopen協(xié)議相互轉(zhuǎn)換在工業(yè)中的作用

    Modbus協(xié)議的消息解析為原始數(shù)據(jù),例如傳感器/執(zhí)行器的狀態(tài)或PLC的指令。2. 消息轉(zhuǎn)換:將原始數(shù)據(jù)轉(zhuǎn)換為CANopen協(xié)議的消息,以便在CAN總線上傳輸。 軟件實現(xiàn)Mo
    發(fā)表于 12-08 17:02

    CAN協(xié)議棧與LIN協(xié)議棧介紹

    CAN協(xié)議棧 汽車CAN協(xié)議棧是一種軟件組件,用于實現(xiàn)汽車電子系統(tǒng)中的CAN總線通信功能。它包含了一系列的功能軟件,用于處理
    的頭像 發(fā)表于 10-27 16:16 ?2565次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>協(xié)議</b>棧與LIN<b class='flag-5'>協(xié)議</b>棧介紹

    mdobus ASCII協(xié)議轉(zhuǎn)換網(wǎng)關(guān)支持CAN OPEN JAE1939

    Modbus RTU協(xié)議轉(zhuǎn)換網(wǎng)關(guān)是一種常見的設(shè)備,用于將Modbus RTU協(xié)議轉(zhuǎn)換為其他通信協(xié)議。而CANopen是一種基于CAN總線的通信協(xié)議
    的頭像 發(fā)表于 09-26 17:10 ?417次閱讀
    mdobus ASCII<b class='flag-5'>協(xié)議</b>轉(zhuǎn)換網(wǎng)關(guān)支持<b class='flag-5'>CAN</b> OPEN JAE1939