chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

CANOpen系列教程04 _CAN總線波特率、位時(shí)序、幀類型及格式說明

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-06 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1寫在前面

上一篇文章講述了CAN收發(fā)器的重要作用,也提及了一下CAN總線的優(yōu)勢主要在于CAN控制器。CAN控制器在CAN網(wǎng)絡(luò)中所處的位置如下圖:

本文講述的CAN控制器實(shí)現(xiàn)的幾個(gè)重要功能:CAN總線波特率、位時(shí)序、幀類型。

2

CAN總線波特率

CAN總線屬于異步通信,因此就有通信波特率,而這個(gè)波特率發(fā)生器就位于CAN控制器內(nèi)部。我們不需要了解它是如何產(chǎn)生的,但需要了解它的含義。這章節(jié)針對初學(xué)者講述以下兩點(diǎn)內(nèi)容。

2.1 異步通信

在串行通信中,主要分異步通信和同步通信。

同步通信:通信設(shè)備之間通過同步信號(CLK時(shí)鐘)來實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)耐ㄐ沤型酵ㄐ?。?a href="http://www.brongaenegriffin.com/tags/i2c/" target="_blank">I2C、SPI這類通信中都具有一個(gè)時(shí)鐘信號,其實(shí)在STM32中USART也具有同步功能,只是我們大多數(shù)人都只用了它的異步功能。

異步通信:簡單來說,就是通信設(shè)備之間通過約定一樣的時(shí)間來收發(fā)數(shù)據(jù)。而這個(gè)時(shí)間就會決定本節(jié)說的波特率。

2.2 波特率

很多工程師一直都沒徹底搞明白什么是波特率,我這里還是結(jié)合UART波特率來簡述一下其含義。

在電子通信領(lǐng)域,波特(Baud)即調(diào)制速率,指的是有效數(shù)據(jù)信號調(diào)制載波的速率,即單位時(shí)間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)。它是對符號傳輸速率的一種度量,1波特即指每秒傳輸1個(gè)符號。

UART每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含10位(1個(gè)起始位,1個(gè)停止位,8個(gè)數(shù)據(jù)位),這時(shí)的波特率為240Bd,比特率為10位*240個(gè)/秒=2400bps。

從上面的描述可以總結(jié):

比特率:即單位時(shí)間內(nèi)傳送的二進(jìn)制位數(shù);

波特率:即單位時(shí)間內(nèi)傳輸?shù)姆杺€(gè)數(shù);

只有在每個(gè)符號只代表一個(gè)比特信息的情況下,波特率與比特率才在數(shù)值上相等,但是它們的意義并不相同。

3

位時(shí)序

上一章節(jié)講述了波特率,而決定波特率大小的就是本節(jié)說的位時(shí)序。在CAN標(biāo)準(zhǔn)中一個(gè)位可分為4段:

同步段(SS)

傳播時(shí)間段(PTS)

相位緩沖段1(PBS1)

相位緩沖段2(PBS2)

這些段又由可稱為 Time Quantum(簡稱Tq)的最小時(shí)間單位構(gòu)成。

1位分為4個(gè)段,每個(gè)段又由若干個(gè)Tq構(gòu)成,這稱為位時(shí)序。

而在STM32參考手冊中,將位時(shí)序分為三段,但它將它傳播段和位段1合并在一起了,如下圖:

1位由多少個(gè)Tq構(gòu)成、每個(gè)段又由多少個(gè)Tq構(gòu)成等,可任意設(shè)定位時(shí)序。通過設(shè)定位時(shí)序,決定傳輸?shù)牟ㄌ芈剩?/p>

這幾個(gè)參數(shù)會在以后編程中進(jìn)行配置,從而決定通信的波特率。

關(guān)于同步,還有硬件同步、再同步等操作。但初學(xué)者可以不必過多理解,掌握上面基礎(chǔ)內(nèi)容就行了。更多關(guān)于位時(shí)序的內(nèi)容可以參看 ISO 11898 標(biāo)準(zhǔn)。

4

幀類型及格式說明

CAN總線是通過以下5種類型的幀進(jìn)行通信:

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

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

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

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

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

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

4.1 數(shù)據(jù)幀

如上圖,數(shù)據(jù)幀由7個(gè)段構(gòu)成:

(1) 幀起始

表示數(shù)據(jù)幀開始的段。

(2) 仲裁段

表示該幀優(yōu)先級的段。

(3) 控制段

表示數(shù)據(jù)的字節(jié)數(shù)及保留位的段。

(4) 數(shù)據(jù)段

數(shù)據(jù)的內(nèi)容,可發(fā)送 0~8 個(gè)字節(jié)的數(shù)據(jù)。

(5) CRC 段

檢查幀的傳輸錯(cuò)誤的段。

(6) ACK 段

表示確認(rèn)正常接收的段。

(7) 幀結(jié)束

表示數(shù)據(jù)幀結(jié)束的段。

理解數(shù)據(jù)幀的含義,請從認(rèn)真理解它的定義:用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀。

一般的CAN總線通信,總線上通信絕大部分時(shí)候都是數(shù)據(jù)幀。像在CANOpen協(xié)議中,用的最多的PDO過程數(shù)據(jù)對象就是通過數(shù)據(jù)幀進(jìn)行的通信。

初學(xué)者可以先理解數(shù)據(jù)幀,然后其他就容易理解了。下面再來講述一下數(shù)據(jù)幀7段的詳情。

4.1.1 幀起始

標(biāo)準(zhǔn)和擴(kuò)展格式相同。表示幀開始的段,1個(gè)位的顯性位(如下圖):

關(guān)于顯性和隱性電平,請參看我上一篇文章差分信號章節(jié)。

總線上的電平有顯性電平和隱性電平兩種。

總線上執(zhí)行邏輯上的線“與”時(shí),顯性電平的邏輯值為“0”,隱性電平為“1”。

“顯性”具有“優(yōu)先”的意味,只要有一個(gè)單元輸出顯性電平,總線上即為顯性電平。并且,“隱性”具有“包容”的意味,只有所有的單元都輸出隱性電平,總線上才為隱性電平。(顯性電平比隱性電平更強(qiáng))

4.1.2 仲裁段

標(biāo)準(zhǔn)格式和擴(kuò)展格式在此的構(gòu)成有所不同。仲裁段表示該幀優(yōu)先級的段,擴(kuò)展格式多了18位ID(如下圖):

RTR = 0代表數(shù)據(jù)幀,RTR = 1代表遠(yuǎn)程幀。

為什么叫仲裁段,就是通過ID來判斷總線上哪一個(gè)節(jié)點(diǎn)具有優(yōu)先發(fā)送的權(quán)利。ID越?。?代表顯性),優(yōu)先級越高。

4.1.3 控制段

標(biāo)準(zhǔn)和擴(kuò)展格式的構(gòu)成有所不同。控制段由 6 個(gè)位構(gòu)成(如下圖):

它們除了都有4位表示數(shù)據(jù)段長度代碼(DLC)外,標(biāo)準(zhǔn)幀有IDE(數(shù)值為0)位和r0保留位,擴(kuò)展幀有r0和r1保留位。

保留位必須全部以顯性電平發(fā)送。但接收方可以接收顯性、隱性及其任意組合的電平。

4.1.4 數(shù)據(jù)段

標(biāo)準(zhǔn)和擴(kuò)展格式相同。數(shù)據(jù)段表示傳輸數(shù)據(jù)的內(nèi)容,從 MSB(最高位)開始輸出,可發(fā)送 0~8 個(gè)字節(jié)的數(shù)據(jù),長度由前面控制段決定。

4.1.5 CRC段

標(biāo)準(zhǔn)和擴(kuò)展格式相同。CRC段是檢查幀傳輸錯(cuò)誤的幀,由 15 個(gè)位的 CRC 順序和 1 個(gè)位的 CRC 界定符(用于分隔的位)構(gòu)成。

相比485這類通信,CAN控制器就已經(jīng)把CRC校驗(yàn)做了,不需要你的程序再次去計(jì)算,從而節(jié)約了處理器資源。

4.1.6 ACK段

標(biāo)準(zhǔn)和擴(kuò)展格式相同。ACK段用來確認(rèn)是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 個(gè)位構(gòu)成。

A.發(fā)送單元在 ACK 段發(fā)送 2 個(gè)位的隱性位。

B.接收到正確消息的單元在 ACK 槽(ACK Slot)發(fā)送顯性位, 通知發(fā)送單元正常接收結(jié)束。這稱作“發(fā)送 ACK”或者“返回 ACK”。

4.1.7 幀結(jié)束

標(biāo)準(zhǔn)和擴(kuò)展格式相同。幀結(jié)束是表示該該幀的結(jié)束的段。由 7 個(gè)位的隱性位構(gòu)成。

4.2 遙控幀

和數(shù)據(jù)幀相比,遙控幀是接收單元向發(fā)送單元請求發(fā)送數(shù)據(jù)所用的幀。所以,遙控幀沒有數(shù)據(jù)段。因此,遙控幀由如下 6 個(gè)段組成:

(1) 幀起始(SOF)

表示幀開始的段。

(2) 仲裁段

表示該幀優(yōu)先級的段。可請求具有相同 ID 的數(shù)據(jù)幀。

(3) 控制段

表示數(shù)據(jù)的字節(jié)數(shù)及保留位的段。

(4) CRC 段

檢查幀的傳輸錯(cuò)誤的段。

(5) ACK 段

表示確認(rèn)正常接收的段。

(6) 幀結(jié)束

表示遙控幀結(jié)束的段。

這6個(gè)段和上面數(shù)據(jù)幀的內(nèi)容基本一樣,這里就不一一講述了。講一下遙控幀和數(shù)據(jù)幀的區(qū)別:

遙控幀的 RTR 位為隱性位,沒有數(shù)據(jù)段。

沒有數(shù)據(jù)段的數(shù)據(jù)幀和遙控幀可通過 RTR 位區(qū)別開來。

問題一:遙控幀沒有數(shù)據(jù)段,數(shù)據(jù)長度碼該如何表示?

遙控幀的數(shù)據(jù)長度碼以所請求數(shù)據(jù)幀的數(shù)據(jù)長度碼表示。

問題二:沒有數(shù)據(jù)段的數(shù)據(jù)幀有何用途?

例如,可用于各單元的定期連接確認(rèn)/應(yīng)答、或仲裁段本身帶有實(shí)質(zhì)性信息的情況下。

4.3 錯(cuò)誤幀

用于在接收和發(fā)送消息時(shí)檢測出錯(cuò)誤通知錯(cuò)誤的幀。錯(cuò)誤幀由錯(cuò)誤標(biāo)志和錯(cuò)誤界定符構(gòu)成。

(1) 錯(cuò)誤標(biāo)志

錯(cuò)誤標(biāo)志包括主動錯(cuò)誤標(biāo)志和被動錯(cuò)誤標(biāo)志兩種。

主動錯(cuò)誤標(biāo)志: 6 個(gè)位的顯性位。

被動錯(cuò)誤標(biāo)志: 6 個(gè)位的隱性位。

(2) 錯(cuò)誤界定符

錯(cuò)誤界定符由 8 個(gè)位的隱性位構(gòu)成。

4.4 過載幀

過載幀是用于接收單元通知其尚未完成接收準(zhǔn)備的幀。過載幀由過載標(biāo)志和過載界定符構(gòu)成。

(1) 過載標(biāo)志

6 個(gè)位的顯性位。

過載標(biāo)志的構(gòu)成與主動錯(cuò)誤標(biāo)志的構(gòu)成相同。

(2) 過載界定符

8 個(gè)位的隱性位。

過載界定符的構(gòu)成與錯(cuò)誤界定符的構(gòu)成相同。

4.5 幀間隔

幀間隔是用于分隔數(shù)據(jù)幀和遙控幀的幀。數(shù)據(jù)幀和遙控幀可通過插入幀間隔將本幀與前面的任何幀(數(shù)據(jù)幀、遙控幀、錯(cuò)誤幀、過載幀)分開。

過載幀和錯(cuò)誤幀前不能插入幀間隔。

(1) 間隔

3 個(gè)位的隱性位。

(2) 總線空閑

隱性電平,無長度限制(0 亦可)。

本狀態(tài)下,可視為總線空閑,要發(fā)送的單元可開始訪問總線。

(3) 延遲傳送(發(fā)送暫時(shí)停止)

8 個(gè)位的隱性位。

只在處于被動錯(cuò)誤狀態(tài)的單元?jiǎng)偘l(fā)送一個(gè)消息后的幀間隔中包含的段。

聲明:本文內(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

    文章

    2008

    瀏覽量

    134181
  • CANopen
    +關(guān)注

    關(guān)注

    8

    文章

    443

    瀏覽量

    46672
  • 波特率
    +關(guān)注

    關(guān)注

    2

    文章

    319

    瀏覽量

    35308
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    UART波特率計(jì)算及UART收發(fā)回顯實(shí)驗(yàn)

    決定串口波特率的寄存器有BRR(Bite Rate Rigister),SEMR(Serial Extended Mode Rigister)和MDDR(Modulation Duty
    的頭像 發(fā)表于 10-17 09:51 ?279次閱讀
    UART<b class='flag-5'>波特率</b>計(jì)算及UART收發(fā)回顯實(shí)驗(yàn)

    如何測量CAN/CAN FD的時(shí)間精度?

    的通信質(zhì)量。在原理上波特率時(shí)間是互為倒數(shù)的關(guān)系,因此借助ZPS-CANFD設(shè)備的時(shí)間測量與評估功能,有助于診斷總線隱含故障、優(yōu)化系統(tǒng)及提升網(wǎng)絡(luò)性能。在串行通信系
    的頭像 發(fā)表于 09-04 11:39 ?384次閱讀
    如何測量<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN</b> FD的<b class='flag-5'>位</b>時(shí)間精度?

    波特率是什么

    波特率是串行通信中的一個(gè)核心參數(shù),用于描述數(shù)據(jù)在傳輸線路上的傳輸速率。以下從定義、單位、與比特的關(guān)系、實(shí)際應(yīng)用及設(shè)置注意事項(xiàng)等方面進(jìn)行詳細(xì)說明: 一、定義與本質(zhì) 波特率(Baud R
    的頭像 發(fā)表于 07-22 11:11 ?3528次閱讀

    基于瑞薩64MPU RZ/G2L的uboot串口多波特率支持介紹

    本文主要介紹基于瑞薩64MPU RZ/G2L,討論uboot下非常規(guī)波特率115200的支持方法,用于解決客戶對uboot下特殊波特率的需求,供客戶參考。
    的頭像 發(fā)表于 07-04 15:54 ?2432次閱讀
    基于瑞薩64<b class='flag-5'>位</b>MPU RZ/G2L的uboot串口多<b class='flag-5'>波特率</b>支持介紹

    開疆智能CCLinkIE轉(zhuǎn)CANopen網(wǎng)關(guān)連接四宏電機(jī)驅(qū)動器配置案例

    本案例是CCLinkIE主站通過CCLinkIE轉(zhuǎn)CANopen網(wǎng)關(guān)連接斯宏電機(jī)的配置案例 配置過程 首先設(shè)置電機(jī)參數(shù),根據(jù)從站手冊說明。電機(jī)默認(rèn)站地址為1,波特率500K,網(wǎng)關(guān)以此參數(shù)進(jìn)行配置 將
    的頭像 發(fā)表于 07-03 18:47 ?233次閱讀
    開疆智能CCLinkIE轉(zhuǎn)<b class='flag-5'>CANopen</b>網(wǎng)關(guān)連接四宏電機(jī)驅(qū)動器配置案例

    如何評估CAN總線信號質(zhì)量

    與隱性態(tài)之間的差值,影響噪聲免疫力。 上升沿時(shí)間 :快速上升沿確保準(zhǔn)確的定時(shí)。 下降沿時(shí)間 :類似上升沿,影響定時(shí)精度。 信號定時(shí) :確保定時(shí)符合波特率要求。 為確保CAN
    發(fā)表于 06-07 08:46

    CAN總線十萬個(gè)為什么 | CAN自定義波特率有什么用?

    導(dǎo)讀CAN總線通信中,波特率一致并不總能保證通信順暢。本文將揭秘自定義波特率的原理和應(yīng)用,探討如何通過優(yōu)化采樣點(diǎn)和提高容忍度解決通信問題,助力工程師提升通信穩(wěn)定性。通常情況下,
    的頭像 發(fā)表于 02-07 11:36 ?988次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>十萬個(gè)為什么 | <b class='flag-5'>CAN</b>自定義<b class='flag-5'>波特率</b>有什么用?

    RS232通信的波特率設(shè)置說明

    RS232通信的波特率設(shè)置是確保數(shù)據(jù)正確傳輸?shù)年P(guān)鍵參數(shù)之一。以下是對RS232通信波特率設(shè)置的說明: 一、波特率的概念 波特率是指每秒傳輸?shù)?/div>
    的頭像 發(fā)表于 12-10 16:26 ?5737次閱讀

    波特率設(shè)置中的常見問題解析

    速率(Data Rate)混淆。數(shù)據(jù)速率是指單位時(shí)間內(nèi)傳輸?shù)挠行?shù)據(jù)量,而波特率是指單位時(shí)間內(nèi)傳輸?shù)姆枖?shù)量。 解決方案: 要區(qū)分兩者,需要理解波特率是數(shù)據(jù)速率的基礎(chǔ)。例如,如果一個(gè)通信系統(tǒng)使用8位數(shù)據(jù)格式,那么數(shù)據(jù)速率將是波
    的頭像 發(fā)表于 11-22 10:06 ?2206次閱讀

    波特率與串行通信的關(guān)系 各種設(shè)備波特率轉(zhuǎn)換的方法

    波特率(Baud Rate)是串行通信中的一個(gè)重要參數(shù),它指的是信號傳輸?shù)乃俾剩磫挝粫r(shí)間內(nèi)傳輸?shù)姆枺ɑ蛐盘枲顟B(tài))的數(shù)量。在串行通信中,波特率決定了數(shù)據(jù)傳輸?shù)乃俣?,因此對于通信效率和設(shè)備兼容性
    的頭像 發(fā)表于 11-22 10:01 ?2046次閱讀

    常見的波特率標(biāo)準(zhǔn)和協(xié)議

    波特率是指在數(shù)據(jù)通信中,每秒鐘傳輸?shù)姆枖?shù)(或比特?cái)?shù)),是衡量數(shù)據(jù)通信速度的重要指標(biāo)。在不同的通信協(xié)議和場景中,常見的波特率標(biāo)準(zhǔn)和協(xié)議有所不同。以下是一些常見的波特率標(biāo)準(zhǔn)和協(xié)議: 一、串口通信
    的頭像 發(fā)表于 11-22 09:56 ?8076次閱讀

    Wi-Fi與藍(lán)牙的波特率對比分析

    Wi-Fi與藍(lán)牙是兩種不同的無線通信技術(shù),它們在波特率(或稱數(shù)據(jù)傳輸速率)方面存在顯著的差異。以下是對Wi-Fi與藍(lán)牙波特率的對比分析: 一、Wi-Fi的波特率 概述 : Wi-Fi(無線局域網(wǎng)
    的頭像 發(fā)表于 11-22 09:54 ?2457次閱讀

    波特率的定義和計(jì)算方法 波特率與數(shù)據(jù)傳輸速度的關(guān)系

    波特率的定義 波特率(Baud Rate),又稱調(diào)制速率或傳符號,是指每秒傳輸?shù)姆枖?shù)目,單位為波特(Bd)。它是一個(gè)數(shù)字信號通信中重要的參數(shù),在串行通信協(xié)議中經(jīng)常被用作衡量串行數(shù)據(jù)
    的頭像 發(fā)表于 11-22 09:49 ?1.1w次閱讀

    波特率9600和115200的區(qū)別

    在現(xiàn)代通信技術(shù)中,數(shù)據(jù)傳輸速率是一個(gè)關(guān)鍵的性能指標(biāo)。對于串行通信,波特率是衡量數(shù)據(jù)傳輸速度的基本單位。波特率9600和115200是兩種常見的設(shè)置,它們在不同的應(yīng)用場景中有著各自的優(yōu)勢和局
    的頭像 發(fā)表于 10-18 14:56 ?6842次閱讀

    波特率與比特有何關(guān)系 波特率與數(shù)據(jù)傳輸速率的關(guān)系

    波特率(Baud Rate)和比特(Bit Rate)是衡量數(shù)據(jù)通信系統(tǒng)性能的兩個(gè)重要參數(shù),它們之間有著密切的關(guān)系,但并不完全相同。 波特率(Baud Rate): 波特率是指在數(shù)據(jù)
    的頭像 發(fā)表于 10-18 14:55 ?3043次閱讀