<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

CAN總線協議是什么?CAN總線協議有哪些?CAN總線協議知識分析

5RJg_mcuworld ? 來源:未知 ? 作者:易水寒 ? 2018-10-03 19:53 ? 次閱讀

本文說的CAN即是一種總線,也是一種協議。因此,我們常聽見CAN總線,也常聽見CAN協議。

CAN協議和CANOpen協議是兩套不同的協議。從軟硬件層次來劃分,CAN協議屬于硬件協議,而CANOpen屬于軟件協議。

本篇文章先概述一下CAN網絡,讓大家對CAN總線協議有一個全局的概念,再到底層的CAN總線協議知識。

1

CAN網絡

CAN網絡可以理解為多臺CAN設備連接在同一條CAN總線上組合成的網絡,其中的CAN設備我們稱之為節點。CAN網絡拓撲結構如下圖:

如上圖,一個CAN節點主要包含三類:MCU應用程序、CAN控制器、CAN收發器。

1.1 MCU應用程序

MCU應用程序我將其分為三塊:業務邏輯代碼、協議層代碼、底層驅動代碼。

A.業務邏輯代碼:是根據項目需求而定,也很好理解。比如我讀取一個傳感器數據,并對其做出相應邏輯處理。

B.協議層代碼:比如后續要講述的CANOpen。

C.底層驅動代碼:配置CAN總線相應參數、控制收發的代碼。

1.2 CAN控制器

CAN控制器內部結構還是挺復雜的,一般現在CAN控制器都是與處理器集成在一起。

其實對于編程的人來說,無非也就是包含一些控制、狀態、配置等寄存器。

比如我們看到有些STM32芯片帶有CAN,也就是說CAN控制器已經集成在STM32芯片中了,我們只需要編程操作其中的寄存器即可。

1.3 CAN收發器

CAN收發器:將CAN收發引腳(CAN_TX和CAN_RX)的TTL信號轉換成CAN總線的電平信號。

PS:你可以把CAN總線通信認為是UART通過485進行通信:CAN控制器就如UART的控制器,而CAN收發器就如485轉換芯片。

2

ISO標準化的CAN協議

寫這一章節的主要目的就是想讓大家了解CAN總線位于OSI所在層次。

2.1 ISO/OSI基本參照模型

【注】

ISO:International Standardization Organization國際標準化組織;

OSI:Open Systems Interconnection開放式系統間互聯;

2.2 CAN在OSI模型中的定義

【注】

LLC:Logical Link Control邏輯鏈路控制;

MAC:Medium Access Control媒介訪問控制;

從上圖可以知道CAN總線底層硬件的內容(CAN控制器、收發器)主要位于OSI的第1層和第2層。

3

概述CAN總線協議

CAN總線協議:就是為了保證通信(收發)數據在CAN總線上能穩定傳輸而制訂的一套協議。

CAN總線協議的內容很多,為方便初學者理解,本文先大概描述一下CAN總線協議,后續文章詳細講述CAN總線協議的內容。

3.1 總線信號

CAN總線為「兩線」「差分」信號,用隱形代表邏輯1,顯性代表邏輯0。如下圖:

3.2 優先級

假如某一時刻,一個設備(節點)往總線發0,一個設備往總線發1。那么總線會呈現什么現象?

答案:最后總線呈現為顯性,也就是0。

3.3 位時序

位時序邏輯將監視串行總線,執行采樣并調整采樣點,在調整采樣點時,需要在起始位邊沿進行同步并后續的邊沿進行再同步。

簡單的說就是對一個bit位分幾段進行采樣,目的就是提高數據傳輸穩定性。在STM32中底層驅動代碼就需要進行位時序編程,在STM32參考手冊中也會發現如下位時序圖:

3.4 幀的種類和格式

幀的種類有多種:

數據幀:用于發送單元向接收單元傳送數據的幀。

遙控幀:用于接收單元向具有相同 ID 的發送單元請求數據的幀。

錯誤幀:用于當檢測出錯誤時向其它單元通知錯誤的幀。

過載幀:用于接收單元通知其尚未做好接收準備的幀。

幀間隔:用于將數據幀及遙控幀與前面的幀分離開來的幀。

數據幀和遙控幀有標準格式和擴展格式兩種格式。標準格式有11個位的標識符ID,擴展格式有29個位的ID。

3.5 位填充

位填充是為防止突發錯誤而設定的功能。當同樣的電平持續 5 位時則添加一個位的反型數據。如下圖:

3.6 錯誤的種類

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16142

    瀏覽量

    345110
  • 控制器
    +關注

    關注

    112

    文章

    15439

    瀏覽量

    173098
  • CAN總線
    +關注

    關注

    145

    文章

    1842

    瀏覽量

    129961

原文標題:嵌入式工程師常用的CAN總線協議,全面了解一下!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CAN總線協議知識科普

    本文說的CAN即是一種總線,也是一種協議。因此,我們常聽見CAN總線,也常聽見CAN
    發表于 09-15 12:47 ?2916次閱讀

    淺談CAN FD總線協議幀格式

    假期更新了一文搞懂CAN總線協議幀格式,CAN FD總線協議怎能錯過?本篇博文將講解
    發表于 10-14 12:49 ?2906次閱讀
    淺談<b class='flag-5'>CAN</b> FD<b class='flag-5'>總線</b><b class='flag-5'>協議</b>幀格式

    Can總線協議

    Can總線協議參考
    發表于 04-10 23:21

    CAN總線協議及概念

    現在的汽車已經不再僅僅是一種死氣沉沉的交通工具了。計算機的發明,也讓汽車了一個職能的心。跟中嵌入式的計算機核心應用到汽車當中。那么如何規范這個核心的工作呢?這就需要CAN總線協議
    發表于 04-18 16:36

    CAN總線協議分析

    `CAN總線接口協議分析通過OSC482L進行CAN總線接口的
    發表于 08-19 09:27

    CAN總線協議詳解

    電子通信協議CAN總線協議
    發表于 12-28 06:30

    CAN總線協議

    ),是國際上應用最廣泛的現場總線之一。 在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線bxCAN簡介
    發表于 08-20 06:27

    CAN總線協議簡介

    CAN總線協議1. CAN簡介CAN(controller area network)控制器局域網是用于解決汽車眾多控制部件之間的數據交換而
    發表于 03-01 06:29

    CAN總線的淺析CANopen協議

    本文分析CAN 總線的一些特點以及在國內的的應用狀況,提出了引入國際上通用的CAN 總線高層應用協議
    發表于 03-27 15:37 ?104次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的淺析CANopen<b class='flag-5'>協議</b>

    CAN總線通信協議分析和實現 CAN總線通信協議以及其實現方法

    CAN總線通信協議分析和實現 CAN總線通信協議
    發表于 09-04 08:45 ?40次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協議</b>的<b class='flag-5'>分析</b>和實現 <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協議</b>以及其實現方法

    CAN總線定義與CAN協議的基本概念

    CAN總線是什么?CAN總線定義是什么? CAN(Controller Area Network)是ISO國際標準化的串行通信
    發表于 12-27 13:40 ?3.1w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>定義與<b class='flag-5'>CAN</b><b class='flag-5'>協議</b>的基本概念

    CAN總線協議教程|CAN報文分析

    CAN協議教程 介紹:CAN總線 CAN總線是廣播類型的總線
    發表于 04-03 15:32 ?1.4w次閱讀

    CAN總線通信協議

    CAN總線通信協議詳細如下。
    發表于 04-19 16:54 ?76次下載

    CAN總線協議CAN在工業控制中的應用

    CAN總線協議CAN在工業控制中的應用說明。
    發表于 04-20 11:14 ?27次下載

    什么是CAN總線協議?它有哪些特性和應用?

    CAN總線協議(Controller Area Network,簡稱CAN),是一種在汽車和工業自動化領域廣泛應用的串行通信協議。自1986
    的頭像 發表于 05-27 16:32 ?261次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>