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

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

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

CAN基礎(chǔ):電平、邏輯、報文是怎么來的

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-26 02:46 ? 次閱讀

CAN總線的報文是怎么產(chǎn)生以及收發(fā)的,遇到通訊異常的問題時從什么角度分析?這篇文章將會帶您快速了解報文的傳輸原理。

1、節(jié)點通訊的原理

圖1 CAN節(jié)點示意圖

如圖1所示是一個CAN節(jié)點的示意圖,整體包括了CAN收發(fā)器、CAN控制器MCU。我們以節(jié)點發(fā)送報文為例,當(dāng)我們使用上位機軟件發(fā)送一段報文時,報文會通過MCU發(fā)送給CAN控制器。CAN控制器將這段報文解析成邏輯信號后,再發(fā)送給CAN收發(fā)器。CAN收發(fā)器根據(jù)CAN-bus標(biāo)準(zhǔn)將接收到的邏輯信號轉(zhuǎn)換成電信號,再通過CAN_H和CAN_L兩根總線將電信號傳到總線上的其他節(jié)點上。

簡單說就是MCU將報文發(fā)送給控制器,控制器將報文轉(zhuǎn)換成符合規(guī)范的CAN報文后,通過CAN收發(fā)器以電信號的形式在總線上進行傳輸。

2、電平是如何轉(zhuǎn)換成邏輯?

圖2 CAN-bus信號電平

如圖2所示,CAN總線使用的是雙線差分信號,所以分為CAN_H和CAN_L兩根總線,根據(jù)兩根總線之間電壓的差值大小來判斷其顯隱性。而線纜上傳輸?shù)碾娖叫盘栔挥袃煞N可能,分別為顯性電平和隱性電平,其中顯性電平代表邏輯0,隱性電平代表邏輯1。

當(dāng)接受到報文時,首先就要通過CAN收發(fā)器將電信號轉(zhuǎn)換成邏輯信號。根據(jù)圖3所示的ISO11898高速CAN電平標(biāo)準(zhǔn)進行判斷,但是線路上經(jīng)常會受到各種干擾,為了保證傳輸?shù)姆€(wěn)定性。所以差分電平小于0.5V就是隱性電平代表邏輯1,差分電平大于0.9V就是顯性電平代表邏輯0。

圖3 ISO11898高速CAN電平

3、邏輯信號如何轉(zhuǎn)換成報文?

CAN控制器是CAN-bus設(shè)備的核心元件,集成了CAN規(guī)范中數(shù)據(jù)鏈路層的全部功能,能夠自動完成CAN-bus協(xié)議的解析。

當(dāng)CAN收發(fā)器將邏輯信號傳送給CAN控制器后,CAN控制器會將邏輯信號轉(zhuǎn)換成符合CAN規(guī)范的CAN幀。而CAN幀的類型包括了數(shù)據(jù)幀、遠程幀、幀間空間、錯誤幀和超載幀。

圖4 標(biāo)準(zhǔn)幀格式

以最常見的數(shù)據(jù)幀為例,圖4就是標(biāo)準(zhǔn)幀的格式,包括了幀起始、仲裁場、控制場、數(shù)據(jù)場等。

圖5 報文解析實例

圖5就是報文解析的實例,當(dāng)接受到對應(yīng)的邏輯信號后,CAN控制器就會根據(jù)規(guī)定的CAN幀格式進行解析,并將報文發(fā)給MCU。

4、上位機報文顯示

圖6 上位機報文顯示

如圖6所示,當(dāng)CAN控制器完成了CAN-bus協(xié)議的解析后,就會將報文傳輸?shù)組CU中在上0位機軟件中進行顯示。像幀起始、CRC場、ACK場這樣的數(shù)據(jù)不讀取,所以我們上位機軟件只顯示數(shù)據(jù)幀類型、幀ID和幀數(shù)據(jù)等信息

5、總結(jié)

對于CAN總線報文錯誤來說,百分之90的錯誤都來自于物理層,而CANScope總線分析儀可以對CAN 波形與報文同步發(fā)送和接收,快速對CAN總線進行各項測試,幫助工程師們快速完成故障定位和問題排查。

審核編輯:符乾江
聲明:本文內(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

    文章

    2686

    瀏覽量

    462906
  • 電平
    +關(guān)注

    關(guān)注

    5

    文章

    356

    瀏覽量

    39769
  • 邏輯
    +關(guān)注

    關(guān)注

    2

    文章

    831

    瀏覽量

    29415
收藏 人收藏

    評論

    相關(guān)推薦

    邏輯電平輸出是什么意思

    信號。 邏輯電平輸出的定義 邏輯電平輸出是指數(shù)字電路中的輸出端能夠產(chǎn)生的電壓水平,這些電壓水平用于表示邏輯狀態(tài)。在數(shù)字電路中,通常使用兩個不
    的頭像 發(fā)表于 09-20 17:32 ?230次閱讀

    CAN總線的報文類型介紹

    CAN(Controller Area Network)總線是一種廣泛使用的串行通信協(xié)議,特別適用于汽車和工業(yè)自動化領(lǐng)域。CAN總線上的報文類型主要可以分為以下幾種,每種類型都有其特定的用途和格式。
    的頭像 發(fā)表于 09-03 14:20 ?564次閱讀

    CAN SIC收發(fā)器助力復(fù)雜CAN網(wǎng)絡(luò)高效可靠通信(2)

    SIC的作用機理在CAN總線上,通過CAN_H和CAN_L兩根線上的電位差表示CAN信號。CAN
    的頭像 發(fā)表于 08-09 08:37 ?774次閱讀
    <b class='flag-5'>CAN</b> SIC收發(fā)器助力復(fù)雜<b class='flag-5'>CAN</b>網(wǎng)絡(luò)高效可靠通信(2)

    TSMaster 中不同總線報文消息過濾的操作方式

    TSMaster軟件平臺支持對不同總線(CAN、LIN、FlexRay)報文和信號的過濾,包括全局接收過濾、數(shù)據(jù)流過濾、窗口過濾、字符串過濾、可編程過濾,針對不同的總線信號過濾器的使用方法基本相
    的頭像 發(fā)表于 06-22 08:21 ?1260次閱讀
    TSMaster 中不同總線<b class='flag-5'>報文</b>消息過濾的操作方式

    如何通過CAN報文TC375傳輸數(shù)據(jù)?

    從示例 MCMCAN_1_KIT_TC375_LK 和 ADC_Single_Channel_1_TC375_LK 開始,我必須用 CAN 報文發(fā)送從模擬通道獲取的數(shù)值。 我就是這么做的: void
    發(fā)表于 05-28 08:30

    CAN報文為什么會發(fā)送失???

    CAN總線調(diào)試過程中出現(xiàn)報文發(fā)送失敗。很多工程師都對此只知其一不知其二,今天我們就以CAN報文發(fā)送失敗的問題做一次探討。在了解
    的頭像 發(fā)表于 04-12 08:25 ?1636次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>報文</b>為什么會發(fā)送失???

    CAN總線波形中為什么ACK電平偏高?

    在觀察CAN通信波形時,我們會發(fā)現(xiàn)差分電平在ACK段突然增高,這是什么原因?qū)е碌哪??本文結(jié)合測試實例對ACK電平偏高的原因做簡單分析。ACK簡介ACK的作用:確認(rèn)一幀報文是否正常接收。
    的頭像 發(fā)表于 03-28 08:23 ?930次閱讀
    <b class='flag-5'>CAN</b>總線波形中為什么ACK<b class='flag-5'>電平</b>偏高?

    TC275多路CAN節(jié)點,報文接收時需要開啟多路的CAN接收中斷嗎?

    TC275配置使用一路CAN0時,收發(fā)都可以,收報文是開啟的CAN0接收中斷,然后接收報文;現(xiàn)在使用兩路CAN
    發(fā)表于 02-20 08:27

    TC387模塊CAN0的節(jié)點2作為CANA使用,CANA既收不到報文也發(fā)不出報文如何解決?

    TC387模塊CAN0的節(jié)點2作為CANA使用,CAN1的節(jié)點0作為CANB使用,配置基本相同。但CANB的通信正常,而在TJA1145正常情形下,CANA既收不到報文,也發(fā)不出報文
    發(fā)表于 02-19 06:43

    TC39x的can報文過濾規(guī)則怎么設(shè)置?

    TC39x的can報文過濾規(guī)則怎么設(shè)置
    發(fā)表于 02-19 06:12

    [ElfBoard] YOU CAN YOU UP 之CAN總線

    出現(xiàn)問題,缺點是信號反射嚴(yán)重,無法用于高波特率和遠距離傳輸,如下圖所示: 電平標(biāo)準(zhǔn) CAN_High - CAN_Low < 0.5V 時候為隱性的,邏輯信號表現(xiàn)為\"
    發(fā)表于 12-05 10:45

    [ElfBoard] YOU CAN YOU UP 之CAN總線分享

    出現(xiàn)問題,缺點是信號反射嚴(yán)重,無法用于高波特率和遠距離傳輸,如下圖所示: 電平標(biāo)準(zhǔn) CAN_High - CAN_Low < 0.5V 時候為隱性的,邏輯信號表現(xiàn)為\"
    發(fā)表于 12-04 14:47

    什么是邏輯電平?如何實現(xiàn)電平轉(zhuǎn)換?(原理講解+電路圖)

    邏輯電平是數(shù)字電子系統(tǒng)中的關(guān)鍵概念之一。它決定了信號被認(rèn)定為高電平還是低電平,并進一步影響著數(shù)字電路的正確操作。邏輯
    的頭像 發(fā)表于 11-24 08:20 ?7738次閱讀
    什么是<b class='flag-5'>邏輯</b><b class='flag-5'>電平</b>?如何實現(xiàn)<b class='flag-5'>電平</b>轉(zhuǎn)換?(原理講解+電路圖)

    CAN總線和電平邏輯介紹

    分傳輸,為了避免信號的反射和干擾,還需要在CAN_H和CAN_L之間接上120歐姆的終端電阻。 每一個設(shè)備既可做主設(shè)備也可做從設(shè)備。CAN總線的通信距離可達10千米(速率低于5Kbps),速度可達1Mbps(通信距離小于40M)
    的頭像 發(fā)表于 11-09 18:11 ?1496次閱讀
    <b class='flag-5'>CAN</b>總線和<b class='flag-5'>電平</b><b class='flag-5'>邏輯</b>介紹

    CAN總線位時序的介紹

    CAN控制器根據(jù)兩根線上的電位差判斷總線電平。總線電平分為顯性電平和隱性電平,二者必居其一。發(fā)
    的頭像 發(fā)表于 10-27 14:55 ?1564次閱讀
    <b class='flag-5'>CAN</b>總線位時序的介紹