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

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

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

CAN總線協(xié)議的數(shù)據(jù)鏈路層有哪些部分

CHANBAEK ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2024-09-03 14:14 ? 次閱讀

CAN(Controller Area Network)總線協(xié)議的數(shù)據(jù)鏈路層是CAN通信中至關(guān)重要的一部分,它負(fù)責(zé)在物理層之上實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸。數(shù)據(jù)鏈路層不僅管理著幀的同步、差錯(cuò)控制、流量控制等關(guān)鍵功能,還通過仲裁機(jī)制確保多個(gè)節(jié)點(diǎn)之間的高效通信。

一、CAN總線協(xié)議概述

CAN協(xié)議最早由德國Bosch公司于1983年提出,旨在解決汽車電子系統(tǒng)中的通信問題。隨著技術(shù)的發(fā)展,CAN協(xié)議逐漸被廣泛應(yīng)用于工業(yè)控制、醫(yī)療設(shè)備、智能家居等領(lǐng)域。CAN協(xié)議采用多主控制、廣播通信、非破壞性仲裁和錯(cuò)誤檢測與處理等機(jī)制,確保了通信的實(shí)時(shí)性、可靠性和靈活性。

二、數(shù)據(jù)鏈路層的組成

CAN總線協(xié)議的數(shù)據(jù)鏈路層主要由以下幾個(gè)部分組成:

1. MAC子層(媒體訪問控制子層)

MAC子層是CAN協(xié)議的關(guān)鍵組成部分,它主要負(fù)責(zé)將物理層接收到的信號組織成具有實(shí)際意義的信息,并管理錯(cuò)誤控制等傳輸流程。MAC子層的主要功能包括:

  • 消息的幀化處理 :將待傳輸?shù)臄?shù)據(jù)封裝成符合CAN協(xié)議規(guī)范的幀格式。
  • 仲裁 :通過非破壞性仲裁機(jī)制解決多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí)的沖突。
  • 應(yīng)答 :接收節(jié)點(diǎn)通過應(yīng)答機(jī)制確認(rèn)數(shù)據(jù)的正確接收。
  • 錯(cuò)誤的檢測和報(bào)告 :檢測通信過程中的錯(cuò)誤,并通過錯(cuò)誤幀向其他節(jié)點(diǎn)報(bào)告。

2. LLC子層(邏輯鏈路控制子層)

雖然CAN協(xié)議標(biāo)準(zhǔn)中并沒有明確劃分LLC子層,但通常我們可以將幀過濾、報(bào)文重發(fā)等邏輯控制功能歸為LLC子層的范疇。LLC子層主要負(fù)責(zé):

  • 報(bào)文過濾 :通過過濾器對接收的報(bào)文進(jìn)行過濾,只保留感興趣的報(bào)文。
  • 報(bào)文重發(fā) :在檢測到通信錯(cuò)誤或未收到應(yīng)答時(shí),自動重發(fā)報(bào)文。

三、數(shù)據(jù)鏈路層的功能

1. 幀同步

幀同步是數(shù)據(jù)鏈路層的基本功能之一,用于確保發(fā)送和接收節(jié)點(diǎn)能夠正確識別信息幀的開始和結(jié)束。在CAN信息幀中,幀起始位(SOF)用于標(biāo)識信息幀的開始,而幀結(jié)束位(EOF)則用于標(biāo)識信息幀的結(jié)束。發(fā)送節(jié)點(diǎn)通過發(fā)送幀起始位來啟動一個(gè)幀的傳輸,接收節(jié)點(diǎn)則通過檢測幀起始位來實(shí)現(xiàn)幀同步。

2. 差錯(cuò)控制

差錯(cuò)控制是數(shù)據(jù)鏈路層的另一個(gè)重要功能,它包括錯(cuò)誤檢測和錯(cuò)誤糾正。CAN協(xié)議采用循環(huán)冗余校驗(yàn)(CRC)進(jìn)行錯(cuò)誤檢測,以確保數(shù)據(jù)的完整性。發(fā)送節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前會生成CRC校驗(yàn)碼,并將其附加到數(shù)據(jù)場之后。接收節(jié)點(diǎn)在接收到數(shù)據(jù)后,會重新計(jì)算CRC校驗(yàn)碼,并與接收到的CRC校驗(yàn)碼進(jìn)行比較,以檢測數(shù)據(jù)是否出現(xiàn)錯(cuò)誤。如果檢測到錯(cuò)誤,接收節(jié)點(diǎn)會發(fā)送錯(cuò)誤幀來通知其他節(jié)點(diǎn)。

3. 流量控制

流量控制用于防止發(fā)送節(jié)點(diǎn)過快地發(fā)送數(shù)據(jù),導(dǎo)致接收節(jié)點(diǎn)無法處理。在CAN協(xié)議中,流量控制主要通過仲裁機(jī)制和應(yīng)答機(jī)制來實(shí)現(xiàn)。仲裁機(jī)制確保了在多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí),具有較高優(yōu)先級的節(jié)點(diǎn)能夠優(yōu)先發(fā)送數(shù)據(jù)。而應(yīng)答機(jī)制則要求接收節(jié)點(diǎn)在接收到數(shù)據(jù)后發(fā)送應(yīng)答信號,以確認(rèn)數(shù)據(jù)的正確接收。如果發(fā)送節(jié)點(diǎn)未收到應(yīng)答信號,則會認(rèn)為通信失敗并可能重發(fā)報(bào)文。

4. 訪問控制

訪問控制是數(shù)據(jù)鏈路層的另一個(gè)關(guān)鍵功能,它用于協(xié)調(diào)多個(gè)節(jié)點(diǎn)之間的通信。在CAN協(xié)議中,訪問控制主要通過非破壞性仲裁機(jī)制實(shí)現(xiàn)。當(dāng)兩個(gè)或多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí),它們會競爭總線的使用權(quán)。仲裁機(jī)制通過比較仲裁場的值來確定發(fā)送數(shù)據(jù)的優(yōu)先級。具有較高優(yōu)先級的節(jié)點(diǎn)可以繼續(xù)發(fā)送數(shù)據(jù),而具有較低優(yōu)先級的節(jié)點(diǎn)則需要等待直到高優(yōu)先級節(jié)點(diǎn)完成數(shù)據(jù)發(fā)送。

四、CAN信息幀的組成部分

CAN信息幀是CAN協(xié)議中最基本的數(shù)據(jù)傳輸單元,其組成部分包括:

  • 幀起始位(SOF) :標(biāo)識信息幀的開始。
  • 仲裁場 :用于確定發(fā)送數(shù)據(jù)的優(yōu)先級。仲裁場的長度可以是11位(標(biāo)準(zhǔn)幀)或29位(擴(kuò)展幀),仲裁場的值越小,優(yōu)先級越高。
  • 控制場 :包括遠(yuǎn)程傳輸請求位(RTR)和標(biāo)識符擴(kuò)展位(IDE)。RTR位用于標(biāo)識數(shù)據(jù)幀是遠(yuǎn)程幀還是數(shù)據(jù)幀,IDE位用于標(biāo)識幀是標(biāo)準(zhǔn)幀還是擴(kuò)展幀。
  • 數(shù)據(jù)場 :用于存儲實(shí)際傳輸?shù)臄?shù)據(jù)。標(biāo)準(zhǔn)幀的數(shù)據(jù)場長度為0-8字節(jié),擴(kuò)展幀的數(shù)據(jù)場長度為0-64字節(jié)。
  • 校驗(yàn)場 :包括循環(huán)冗余校驗(yàn)(CRC)和CRC界定符。CRC用于檢測數(shù)據(jù)在傳輸過程中是否出現(xiàn)錯(cuò)誤,CRC界定符用于標(biāo)識CRC校驗(yàn)的結(jié)束。
  • 應(yīng)答場 :包括應(yīng)答插槽和應(yīng)答界定符。應(yīng)答插槽用于接收節(jié)點(diǎn)發(fā)送應(yīng)答信號,應(yīng)答界定符用于標(biāo)識應(yīng)答場的結(jié)束。
  • 幀結(jié)束位(EOF) :標(biāo)識信息幀的結(jié)束。

五、錯(cuò)誤處理機(jī)制

CAN協(xié)議定義了多種錯(cuò)誤類型,包括CRC錯(cuò)誤、格式錯(cuò)誤、應(yīng)答錯(cuò)誤、位發(fā)送錯(cuò)誤和位填充錯(cuò)誤等。當(dāng)發(fā)生這些錯(cuò)誤時(shí),發(fā)送節(jié)點(diǎn)或接收節(jié)點(diǎn)會發(fā)送錯(cuò)誤幀來通知其他節(jié)點(diǎn)。為了防止某些節(jié)點(diǎn)自身出錯(cuò)而一直發(fā)送錯(cuò)誤幀干擾其他節(jié)點(diǎn)通信,CAN協(xié)議還規(guī)定了節(jié)點(diǎn)的三種狀態(tài)及行為:主動錯(cuò)誤狀態(tài)、被動錯(cuò)誤狀態(tài)和Bus Off狀態(tài)。這些狀態(tài)根據(jù)接收錯(cuò)誤計(jì)數(shù)器(REC)和發(fā)送錯(cuò)誤計(jì)數(shù)器(TEC)的值進(jìn)行轉(zhuǎn)換。

六、總結(jié)

CAN總線協(xié)議的數(shù)據(jù)鏈路層是實(shí)現(xiàn)CAN通信的關(guān)鍵部分,它負(fù)責(zé)在物理層之上實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸。通過幀同步、差錯(cuò)控制、流量控制和訪問控制等功能,CAN協(xié)議確保了多個(gè)節(jié)點(diǎn)之間的高效、可靠通信。同時(shí),CAN協(xié)議還提供了完善的錯(cuò)誤處理機(jī)制來應(yīng)對通信過程中可能出現(xiàn)的各種問題。這些功能和機(jī)制共同構(gòu)成了CAN總線協(xié)議強(qiáng)大的通信能力,使其在眾多領(lǐng)域得到了廣泛應(yīng)用。

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

    關(guān)注

    145

    文章

    1898

    瀏覽量

    130333
  • 數(shù)據(jù)鏈路層

    關(guān)注

    0

    文章

    52

    瀏覽量

    11970
  • 總線協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    111

    瀏覽量

    14811
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)鏈路層組幀

    數(shù)據(jù)鏈路層怎么根據(jù)協(xié)議組幀,本人沒有寫過類似程序,大家有寫過的可否貼下簡單的程序 啟發(fā)一下。感激不盡。謝謝。
    發(fā)表于 01-17 11:48

    TLP的數(shù)據(jù)鏈路層組成與操作

    監(jiān)控和管理?! ?b class='flag-5'>數(shù)據(jù)鏈路層的組成  數(shù)據(jù)鏈路層由發(fā)送和接收兩部分組成,其中,數(shù)據(jù)鏈路層接收部件組成為:  1)、ACK/NAK DLLP發(fā)送邏輯  2)、“Error Check”邏輯
    發(fā)表于 01-08 17:25

    CAN總線工作原理及數(shù)據(jù)鏈路層、延時(shí)分析

    通信協(xié)議僅僅包括OSI七層互聯(lián)參考模型中的數(shù)據(jù)鏈路層和物理層。三、CAN總線物理層:1. CAN總線
    發(fā)表于 05-13 06:00

    CAN總線的系統(tǒng)架構(gòu)

    使用的CAN2517FD有所區(qū)別,僅供參考),主要體現(xiàn)在數(shù)據(jù)鏈路層這一部分。應(yīng)用程序,具體表現(xiàn)在控制器以不同的通信方式、MCP2517FD提供的相應(yīng)指令集和指令集格式對CAN2517F
    發(fā)表于 08-19 06:47

    介紹車用CAN通訊的基礎(chǔ)知識,數(shù)據(jù)鏈路層部分

    本博文主要介紹了車用CAN通訊的基礎(chǔ)知識,數(shù)據(jù)鏈路層部分,主要包括幀類型、幀起始&幀結(jié)束、仲裁段、控制段、數(shù)據(jù)段、CRC段&ACK段和錯(cuò)誤幀等。
    發(fā)表于 01-07 06:16

    數(shù)據(jù)鏈路層協(xié)議數(shù)據(jù)單元包括哪幾部分

    功能一個(gè)觀測任意數(shù)據(jù)波形的上位機(jī)前提知識數(shù)據(jù)幀所謂數(shù)據(jù)幀(Data frame),就是數(shù)據(jù)鏈路層協(xié)議數(shù)
    發(fā)表于 01-14 06:56

    數(shù)據(jù)鏈路層.ppt

    數(shù)據(jù)鏈路層*3.1  數(shù)據(jù)鏈路層的基本概念*3.2  停止等待協(xié)議  3.2.1 完全理想化的數(shù)據(jù)傳輸  3.2.2 具有最
    發(fā)表于 10-23 16:41 ?0次下載
    <b class='flag-5'>數(shù)據(jù)鏈路層</b>.ppt

    常用的數(shù)據(jù)鏈路層協(xié)議

     ISO和CCITT在數(shù)據(jù)鏈路層協(xié)議的標(biāo)準(zhǔn)制定方面做了大量工作,各大公司也形成了自己的標(biāo)準(zhǔn)。
    發(fā)表于 07-22 15:51 ?4530次閱讀
    常用的<b class='flag-5'>數(shù)據(jù)鏈路層</b><b class='flag-5'>協(xié)議</b>

    數(shù)據(jù)鏈路層的作用

    數(shù)據(jù)鏈路層的作用:通過一些數(shù)據(jù)鏈路層協(xié)議和鏈路控制規(guī)程,在不太可靠的物理鏈路上實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸。 “鏈路(Link)”和“數(shù)據(jù)鏈路”是不
    發(fā)表于 07-22 16:04 ?6931次閱讀

    數(shù)據(jù)鏈路層的定義

    數(shù)據(jù)鏈路層的定義 一、設(shè)計(jì)數(shù)據(jù)鏈路層的原因
    發(fā)表于 07-22 17:13 ?2513次閱讀
    <b class='flag-5'>數(shù)據(jù)鏈路層</b>的定義

    什么是OSI模型數(shù)據(jù)鏈路層

    什么是OSI模型數(shù)據(jù)鏈路層 數(shù)據(jù)鏈路層最基本的服務(wù)是將源機(jī)網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。為達(dá)到這一目的,數(shù)據(jù)鏈路層
    發(fā)表于 03-18 15:11 ?2207次閱讀

    基于無線HART協(xié)議數(shù)據(jù)鏈路層協(xié)議模型設(shè)計(jì)

      無線HART是一種專門為過程控制領(lǐng)域而設(shè)計(jì)的網(wǎng)絡(luò)通信協(xié)議,是HART現(xiàn)場總線在無線領(lǐng)域的延伸,其通信模型主要由應(yīng)用層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層組成。其中數(shù)據(jù)鏈路層
    發(fā)表于 08-26 17:27 ?1641次閱讀
    基于無線HART<b class='flag-5'>協(xié)議</b>的<b class='flag-5'>數(shù)據(jù)鏈路層</b><b class='flag-5'>協(xié)議</b>模型設(shè)計(jì)

    數(shù)據(jù)鏈路層選擇重傳協(xié)議優(yōu)化

    本文的主要目的是探索數(shù)據(jù)鏈路層中,選擇重傳協(xié)議的優(yōu)化改進(jìn)措施,主要方法是通過對量子通信的分析和研究,通過進(jìn)行協(xié)議的模擬實(shí)驗(yàn)、優(yōu)化協(xié)議仿真環(huán)境、引入緩存等措施,進(jìn)過實(shí)驗(yàn)分析發(fā)現(xiàn),與傳統(tǒng)的
    發(fā)表于 11-17 09:44 ?55次下載
    <b class='flag-5'>數(shù)據(jù)鏈路層</b>選擇重傳<b class='flag-5'>協(xié)議</b>優(yōu)化

    數(shù)據(jù)鏈路層到底是什么_數(shù)據(jù)鏈路層工作原理是怎樣的

    本文開始闡述了什么是數(shù)據(jù)鏈路層,其次闡述了數(shù)據(jù)鏈路層的分類和數(shù)據(jù)鏈路層的工作原理,最后介紹了常用的數(shù)據(jù)鏈路層
    發(fā)表于 03-14 14:10 ?3w次閱讀
    <b class='flag-5'>數(shù)據(jù)鏈路層</b>到底是什么_<b class='flag-5'>數(shù)據(jù)鏈路層</b>工作原理是怎樣的

    數(shù)據(jù)鏈路層常用成紙法哪些_數(shù)據(jù)鏈路層的作用

    本文開始闡述了數(shù)據(jù)鏈路層的概念與數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層的功能或作用,其次闡述了數(shù)據(jù)鏈路層的主要協(xié)議,最后分析了數(shù)據(jù)鏈路層常用成紙法
    發(fā)表于 03-14 14:44 ?2052次閱讀
    <b class='flag-5'>數(shù)據(jù)鏈路層</b>常用成紙法<b class='flag-5'>有</b>哪些_<b class='flag-5'>數(shù)據(jù)鏈路層</b>的作用