• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 【CAN基礎(chǔ)】電平、邏輯、報(bào)文是怎么來(lái)的

    【CAN基礎(chǔ)】電平、邏輯、報(bào)文是怎么來(lái)的

    作者: 時(shí)間:2019-04-28 來(lái)源:電子產(chǎn)品世界 收藏

    CAN總線通訊是我們每天都會(huì)使用的工業(yè)通訊總線,工程師更多的是關(guān)注報(bào)文是否能夠正常接收,解析結(jié)果是否正確。卻忽略了CAN總線的報(bào)文是怎么產(chǎn)生以及收發(fā)的,所以遇到通訊異常的問(wèn)題時(shí)就會(huì)無(wú)從下手。那么這篇文章將會(huì)帶您快速了解報(bào)文的傳輸

    本文引用地址:http://www.czjhyjcfj.com/article/201904/399979.htm

    一、節(jié)點(diǎn)通訊的

    1556418429586836.jpg

    圖1  CAN節(jié)點(diǎn)示意圖

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

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

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

    1.png

    圖2  CAN-bus信號(hào)電平

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

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

    1556418465425160.png

    圖3  ISO11898高速CAN電平

    三、邏輯信號(hào)如何轉(zhuǎn)換成報(bào)文?

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

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

    1556418494363934.png

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

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

    1556418512485450.png

    圖5  報(bào)文解析實(shí)例

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

    四、上位機(jī)報(bào)文顯示

    1556418529485329.png

    圖 6  上位機(jī)報(bào)文顯示

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

    總結(jié):

    對(duì)于CAN總線報(bào)文錯(cuò)誤來(lái)說(shuō),百分之九十的錯(cuò)誤都來(lái)自于物理層,而CANScope總線分析儀可以對(duì)CAN 波形與報(bào)文同步發(fā)送和接收,快速對(duì)CAN總線進(jìn)行各項(xiàng)測(cè)試,幫助工程師們快速完成故障定位和問(wèn)題排查。



    關(guān)鍵詞: CAN基礎(chǔ) 原理

    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 绥芬河市| 肇州县| 忻城县| 澎湖县| 博野县| 湾仔区| 晋州市| 高雄市| 怀远县| 平和县| 雅江县| 右玉县| 平乐县| 田阳县| 万盛区| 土默特右旗| 高唐县| 洪雅县| 稷山县| 九寨沟县| 永福县| 民勤县| 井陉县| 武冈市| 邻水| 道孚县| 六盘水市| 阜新| 梁平县| 兴文县| 德昌县| 济阳县| 高邑县| 子洲县| 信丰县| 行唐县| 渭源县| 彰武县| 滨海县| 景德镇市| 改则县|