衡阳派盒市场营销有限公司

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

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

3天內不再提示

CANOpen系列教程02_ 理解CAN總線協議

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-06 16:17 ? 次閱讀

1寫在前面

上一篇文章講述了CAN和CANOpen,相信大家CAN和CANOpen有一定理解了。本文說的CAN即是一種總線,也是一種協議。因此,我們常聽見CAN總線,也常聽見CAN協議。

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

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

2

CAN網絡

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

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

2.1 MCU應用程序

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

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

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

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

2.2 CAN控制器

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

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

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

2.3 CAN收發器

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

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

3

ISO標準化的CAN協議

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

3.1 ISO/OSI基本參照模型

【注】

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

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

3.2 CAN在OSI模型中的定義

【注】

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

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

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

4

概述CAN總線協議

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

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

4.1 總線信號

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

4.2 優先級

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

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

4.3 位時序

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

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

4.4 幀的種類和格式

幀的種類有多種:

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

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

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

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

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

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

4.5 位填充

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

4.6 錯誤的種類

CAN總線協議內容很多,初學者先了解這些,后面文章具體到每一個點上,相信大家就會更明白其中的含義。

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

    關注

    57

    文章

    2769

    瀏覽量

    464377
  • CANopen
    +關注

    關注

    8

    文章

    270

    瀏覽量

    43743
  • 總線協議
    +關注

    關注

    0

    文章

    117

    瀏覽量

    14899
收藏 人收藏

    評論

    相關推薦

    解析ECAN-E02單過濾器CAN硬件過濾

    什么是CAN總線CAN(ControllerAreaNetwork)總線是一種用于車輛電子設備之間通信的標準協議
    的頭像 發表于 01-16 19:35 ?83次閱讀
    解析ECAN-E<b class='flag-5'>02</b>單過濾器<b class='flag-5'>CAN</b>硬件過濾

    基于Xilinx的A7系列FPGA的CAN總線協議開發

    一、CAN總線協議介紹 CAN是 Controller Area Network 的縮寫(以下稱為 CAN ),是 ISO 國際標準化的串行
    的頭像 發表于 12-21 14:49 ?690次閱讀
    基于Xilinx的A7<b class='flag-5'>系列</b>FPGA的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協議</b>開發

    CAN總線通信原理介紹 CAN總線模塊選擇指南

    CAN總線(Controller Area Network)是一種串行通信協議,主要用于汽車電子控制單元之間的通信。它由Bosch公司在20世紀80年代初開發,因其可靠性、實時性和靈活性而廣泛應用
    的頭像 發表于 11-21 10:21 ?967次閱讀

    CAN總線應用領域 CAN總線協議解析

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

    三格電子- EtherCAT轉CANopen/ CAN網關

    ECAT轉CANopen/ CAN網關型號:SG-ECAT-COE/CAN 本產品是ECAT(EtherCAT)和CANOPEN(CAN O
    的頭像 發表于 11-15 15:03 ?277次閱讀
    三格電子- EtherCAT轉<b class='flag-5'>CANopen</b>/ <b class='flag-5'>CAN</b>網關

    CAN總線通信協議詳解

    一、CAN總線概述 CAN總線是一種多主控制的串行通信協議,它允許多個設備共享同一通信線路,而無需中央控制單元。這種設計使得
    的頭像 發表于 11-12 09:46 ?1597次閱讀

    CAN總線基礎知識匯總#CAN #CANoe #汽車總線

    CAN總線
    北匯信息POLELINK
    發布于 :2024年11月04日 13:35:54

    CAN總線知識】全面了解CAN總線協議

    提及總線,總是讓人聯想到那些交錯在一起的計算機電線。那么這些電線如何發揮功效呢?這還得配合總線協議的管理來使用。那么今天我們介紹的就是CAN總線
    的頭像 發表于 10-15 08:05 ?1669次閱讀
    【<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>知識】全面了解<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協議</b>

    CAN/CAN FD/CAN XL三大總線協議解讀,是逐步替代關系嗎?

    電子發燒友網報道(文/吳子鵬)在軟件定義汽車逐漸成為主流的當下,數據傳輸的速度和效率成為打造智能汽車的瓶頸,在這種大背景下,傳統CAN總線應對一些需求已經相當吃力,因此CAN FD和CAN
    的頭像 發表于 08-12 01:12 ?4595次閱讀

    Profinet從轉CANopen總線協議轉換網關

    怎么樣讓Profinet和CANopen通訊連接起來?這幾天有幾個客戶朋友咨詢到這個問題,作者在這里統一為大家回復一下。想要解決這個問題其實也非常簡單,只需要用到一個設備,名為YC-PN-CAN
    的頭像 發表于 07-29 14:45 ?285次閱讀
    Profinet從轉<b class='flag-5'>CANopen</b>主<b class='flag-5'>總線</b><b class='flag-5'>協議</b>轉換網關

    協議can總線隔離中繼器接多會怎樣

    協議CAN總線隔離中繼器是一種用于CAN總線系統中的設備,其主要功能是實現CAN
    的頭像 發表于 06-16 10:31 ?901次閱讀

    can總線中斷狀態什么意思呢?

    CAN總線(Controller Area Network)是一種廣泛使用的現場總線通信協議,主要用于汽車、工業控制等領域。在CAN
    的頭像 發表于 06-16 10:21 ?1907次閱讀

    STM32是否支持CCP協議,能否用INCA/CANaple通過CAN總線的CCP協議進行標定?

    想開發一款控制器,基于帶CAN總線接口的F407系列。 現在考慮參數標定/正定的問題。 不知能否通過生成A2L文件,然后用INCA/ CANaple 通過CAN
    發表于 05-31 08:14

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

    CAN總線協議(Controller Area Network,簡稱CAN),是一種在汽車和工業自動化領域廣泛應用的串行通信協議。自1986
    的頭像 發表于 05-27 16:32 ?1489次閱讀

    醫療設備CAN/CANopen總線數據傳輸解決方案

    盟通提出的醫療設備CAN/CANopen總線數據傳輸解決方案是基于IXXAT的高性能CAN設備,助力您實現穩定、便捷的數據采集和分析,為您的項目創新提供有利支持。
    的頭像 發表于 03-18 14:26 ?1728次閱讀
    醫療設備<b class='flag-5'>CAN</b>/<b class='flag-5'>CANopen</b><b class='flag-5'>總線</b>數據傳輸解決方案
    华泰百家乐的玩法技巧和规则| 百家乐官网游戏机破解方法| 百家乐官网网站新全讯网| 威尼斯人娱乐场官网是多少| 百家乐和怎么算输赢| 大发888娱乐城下载地址| 娱乐城免费领取体验金| 隆子县| 百家乐官网2珠路投注法| 百家乐官网欧洲赔率| 2024年九运的房屋风水吉凶| 百家乐真人游戏娱乐场| 大发888体育注册| 格尔木市| 韩国百家乐的玩法技巧和规则| 百家乐官网压钱技巧| 百家乐官网讯特| 百家乐单跳投注法| 御匾会百家乐的玩法技巧和规则| 云鼎娱乐城怎么存钱| 百家乐官网庄闲和概率| 百家乐官网真人博彩的玩法技巧和规则 | 鼎龙百家乐的玩法技巧和规则 | AG百家乐大转轮| bet365网址b365etbyty| 网络百家乐官网破解平台| 属狗人做生意店铺朝向| 娱乐百家乐可以代理吗| 必博备用| 李雷雷百家乐官网的奥妙| 海立方百家乐的玩法技巧和规则| 百家乐和局投注法| 德州扑克高牌| 百家乐官网桌| 合乐8百家乐娱乐城| 六合彩开奖网站| 百家乐官网高科技出千工具| 百家乐与龙虎斗怎么玩| 澳门金沙娱乐场| 24山的丑方位| 大发888 dafa888 大发官网|