一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

CAN總線協(xié)議是什么?CAN總線協(xié)議有哪些?CAN總線協(xié)議知識(shí)分析

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

本文說(shuō)的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線,也常聽(tīng)見(jiàn)CAN協(xié)議。

CAN協(xié)議和CANOpen協(xié)議是兩套不同的協(xié)議。從軟硬件層次來(lái)劃分,CAN協(xié)議屬于硬件協(xié)議,而CANOpen屬于軟件協(xié)議。

本篇文章先概述一下CAN網(wǎng)絡(luò),讓大家對(duì)CAN總線協(xié)議有一個(gè)全局的概念,再到底層的CAN總線協(xié)議知識(shí)。

1

CAN網(wǎng)絡(luò)

CAN網(wǎng)絡(luò)可以理解為多臺(tái)CAN設(shè)備連接在同一條CAN總線上組合成的網(wǎng)絡(luò),其中的CAN設(shè)備我們稱之為節(jié)點(diǎn)。CAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如下圖:

如上圖,一個(gè)CAN節(jié)點(diǎn)主要包含三類:MCU應(yīng)用程序、CAN控制器、CAN收發(fā)器。

1.1 MCU應(yīng)用程序

MCU應(yīng)用程序我將其分為三塊:業(yè)務(wù)邏輯代碼、協(xié)議層代碼、底層驅(qū)動(dòng)代碼。

A.業(yè)務(wù)邏輯代碼:是根據(jù)項(xiàng)目需求而定,也很好理解。比如我讀取一個(gè)傳感器數(shù)據(jù),并對(duì)其做出相應(yīng)邏輯處理。

B.協(xié)議層代碼:比如后續(xù)要講述的CANOpen。

C.底層驅(qū)動(dòng)代碼:配置CAN總線相應(yīng)參數(shù)、控制收發(fā)的代碼。

1.2 CAN控制器

CAN控制器內(nèi)部結(jié)構(gòu)還是挺復(fù)雜的,一般現(xiàn)在CAN控制器都是與處理器集成在一起。

其實(shí)對(duì)于編程的人來(lái)說(shuō),無(wú)非也就是包含一些控制、狀態(tài)、配置等寄存器。

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

1.3 CAN收發(fā)器

CAN收發(fā)器:將CAN收發(fā)引腳(CAN_TX和CAN_RX)的TTL信號(hào)轉(zhuǎn)換成CAN總線的電平信號(hào)。

PS:你可以把CAN總線通信認(rèn)為是UART通過(guò)485進(jìn)行通信:CAN控制器就如UART的控制器,而CAN收發(fā)器就如485轉(zhuǎn)換芯片。

2

ISO標(biāo)準(zhǔn)化的CAN協(xié)議

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

2.1 ISO/OSI基本參照模型

【注】

ISO:International Standardization Organization國(guó)際標(biāo)準(zhǔn)化組織;

OSI:Open Systems Interconnection開(kāi)放式系統(tǒng)間互聯(lián);

2.2 CAN在OSI模型中的定義

【注】

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

MAC:Medium Access Control媒介訪問(wèn)控制;

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

3

概述CAN總線協(xié)議

CAN總線協(xié)議:就是為了保證通信(收發(fā))數(shù)據(jù)在CAN總線上能穩(wěn)定傳輸而制訂的一套協(xié)議。

CAN總線協(xié)議的內(nèi)容很多,為方便初學(xué)者理解,本文先大概描述一下CAN總線協(xié)議,后續(xù)文章詳細(xì)講述CAN總線協(xié)議的內(nèi)容。

3.1 總線信號(hào)

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

3.2 優(yōu)先級(jí)

假如某一時(shí)刻,一個(gè)設(shè)備(節(jié)點(diǎn))往總線發(fā)0,一個(gè)設(shè)備往總線發(fā)1。那么總線會(huì)呈現(xiàn)什么現(xiàn)象?

答案:最后總線呈現(xiàn)為顯性,也就是0。

3.3 位時(shí)序

位時(shí)序邏輯將監(jiān)視串行總線,執(zhí)行采樣并調(diào)整采樣點(diǎn),在調(diào)整采樣點(diǎn)時(shí),需要在起始位邊沿進(jìn)行同步并后續(xù)的邊沿進(jìn)行再同步。

簡(jiǎn)單的說(shuō)就是對(duì)一個(gè)bit位分幾段進(jìn)行采樣,目的就是提高數(shù)據(jù)傳輸穩(wěn)定性。在STM32中底層驅(qū)動(dòng)代碼就需要進(jìn)行位時(shí)序編程,在STM32參考手冊(cè)中也會(huì)發(fā)現(xiàn)如下位時(shí)序圖:

3.4 幀的種類和格式

幀的種類有多種:

數(shù)據(jù)幀:用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀。

遙控幀:用于接收單元向具有相同 ID 的發(fā)送單元請(qǐng)求數(shù)據(jù)的幀。

錯(cuò)誤幀:用于當(dāng)檢測(cè)出錯(cuò)誤時(shí)向其它單元通知錯(cuò)誤的幀。

過(guò)載幀:用于接收單元通知其尚未做好接收準(zhǔn)備的幀。

幀間隔:用于將數(shù)據(jù)幀及遙控幀與前面的幀分離開(kāi)來(lái)的幀。

數(shù)據(jù)幀和遙控幀有標(biāo)準(zhǔn)格式和擴(kuò)展格式兩種格式。標(biāo)準(zhǔn)格式有11個(gè)位的標(biāo)識(shí)符ID,擴(kuò)展格式有29個(gè)位的ID。

3.5 位填充

位填充是為防止突發(fā)錯(cuò)誤而設(shè)定的功能。當(dāng)同樣的電平持續(xù) 5 位時(shí)則添加一個(gè)位的反型數(shù)據(jù)。如下圖:

3.6 錯(cuò)誤的種類

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

    關(guān)注

    146

    文章

    17718

    瀏覽量

    358200
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    16838

    瀏覽量

    182253
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1968

    瀏覽量

    131984

原文標(biāo)題:嵌入式工程師常用的CAN總線協(xié)議,全面了解一下!

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CAN總線協(xié)議簡(jiǎn)介

    CAN 總線協(xié)議已經(jīng)成為汽車計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN 為底層協(xié)議
    發(fā)表于 08-02 12:29 ?2199次閱讀

    CAN總線協(xié)議知識(shí)科普

    本文說(shuō)的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線,也常聽(tīng)見(jiàn)CAN
    發(fā)表于 09-15 12:47 ?3565次閱讀

    淺談CAN FD總線協(xié)議幀格式

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

    CAN總線通信協(xié)議的基礎(chǔ)知識(shí)

    本文將介紹CAN總線通信協(xié)議的基礎(chǔ)知識(shí),目前的內(nèi)容僅為通用的協(xié)議部分,暫不涉及具體的外設(shè)模塊的用法。研究通信
    的頭像 發(fā)表于 06-16 10:58 ?7369次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協(xié)議</b>的基礎(chǔ)<b class='flag-5'>知識(shí)</b>

    CAN總線知識(shí)】全面了解CAN總線協(xié)議

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

    CAN總線協(xié)議分析

    `CAN總線接口協(xié)議分析通過(guò)OSC482L進(jìn)行CAN總線接口的
    發(fā)表于 08-19 09:27

    CAN總線協(xié)議簡(jiǎn)介

    CAN總線協(xié)議1. CAN簡(jiǎn)介CAN(controller area network)控制器局域網(wǎng)是用于解決汽車眾多控制部件之間的數(shù)據(jù)交換而
    發(fā)表于 03-01 06:29

    CAN總線的淺析CANopen協(xié)議

    本文分析CAN 總線的一些特點(diǎn)以及在國(guó)內(nèi)的的應(yīng)用狀況,提出了引入國(guó)際上通用的CAN 總線高層應(yīng)用協(xié)議
    發(fā)表于 03-27 15:37 ?104次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的淺析CANopen<b class='flag-5'>協(xié)議</b>

    CAN總線通信協(xié)議分析和實(shí)現(xiàn) CAN總線通信協(xié)議以及其實(shí)現(xiàn)方法

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

    CAN總線定義與CAN協(xié)議的基本概念

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

    CAN總線通信協(xié)議分析實(shí)現(xiàn)

    CAN總線通信協(xié)議,才能完成數(shù)據(jù)準(zhǔn)確可靠的傳輸。目前,也存在一些CAN總線產(chǎn)品開(kāi)發(fā)公司定制的協(xié)議
    發(fā)表于 01-08 15:01 ?9次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協(xié)議</b><b class='flag-5'>分析</b>實(shí)現(xiàn)

    CAN總線協(xié)議教程|CAN報(bào)文分析

    CAN協(xié)議教程 介紹:CAN總線 CAN總線是廣播類型的總線
    發(fā)表于 04-03 15:32 ?1.5w次閱讀

    CAN總線通信協(xié)議

    CAN總線通信協(xié)議詳細(xì)如下。
    發(fā)表于 04-19 16:54 ?79次下載

    CAN總線協(xié)議CAN在工業(yè)控制中的應(yīng)用

    CAN總線協(xié)議CAN在工業(yè)控制中的應(yīng)用說(shuō)明。
    發(fā)表于 04-20 11:14 ?27次下載

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

    CAN總線協(xié)議(Controller Area Network,簡(jiǎn)稱CAN),是一種在汽車和工業(yè)自動(dòng)化領(lǐng)域廣泛應(yīng)用的串行通信協(xié)議。自1986
    的頭像 發(fā)表于 05-27 16:32 ?1894次閱讀