色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁(yè) > 博客 > 詳解CAN總線:CAN總線報(bào)文格式—數(shù)據(jù)幀

          詳解CAN總線:CAN總線報(bào)文格式—數(shù)據(jù)幀

          CAN總線上傳輸?shù)男畔⒎Q為報(bào)文,當(dāng)總線空閑時(shí)任何連接的單元都可以開(kāi)始發(fā)送新的報(bào)文。

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

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

          • 遙控幀 

          • 錯(cuò)誤幀 

          • 過(guò)載幀 

          • 幀間隔


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


          各種幀的用途如下表所示:


          圖片

          近期打算寫5篇文章,分別詳細(xì)介紹這5種類型的CAN總線報(bào)文格式,本篇博文將詳細(xì)講解CAN數(shù)據(jù)幀格式,創(chuàng)作不易,請(qǐng)各位朋友多多點(diǎn)贊、收藏、關(guān)注支持~


          關(guān)注公眾號(hào):美男子玩編程,優(yōu)先推送最新技術(shù)博文~


          數(shù)據(jù)幀由7個(gè)段構(gòu)成,圖解說(shuō)明如下所示:


          圖片
          • 幀起始:表示數(shù)據(jù)幀開(kāi)始的段;

          • 仲裁段:表示該幀優(yōu)先級(jí)的段,根據(jù)仲裁段ID碼長(zhǎng)度的不同,分為標(biāo)準(zhǔn)幀(CAN 2.0A)和擴(kuò)展幀(CAN 2.0B);

          • 控制段:表示數(shù)據(jù)的字節(jié)數(shù)及保留位的段;

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

          • CRC段:檢查幀的傳輸錯(cuò)誤的段;

          • ACK段:表示確認(rèn)正常接收的段;

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


          1


          幀起始

          幀起始由1個(gè)顯性位組成。總線空閑時(shí),發(fā)送節(jié)點(diǎn)發(fā)送幀起始,其他接收節(jié)點(diǎn)同步于該幀起始位。


          圖片

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


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


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


          2


          仲裁段

          仲裁段用于寫明需要發(fā)送到目的CAN節(jié)點(diǎn)的地址、確定發(fā)送的幀類型(當(dāng)前發(fā)送的是數(shù)據(jù)幀還是遙控幀),并確定發(fā)送的幀格式是標(biāo)準(zhǔn)幀還是擴(kuò)展幀。


          仲裁段在標(biāo)準(zhǔn)格式幀和擴(kuò)展格式幀中有所不同。標(biāo)準(zhǔn)格式幀的仲裁段由11位標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位RTR組成,擴(kuò)展格式幀的仲裁段由29位標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位RTR組成。


          圖片

          圖片


          圖片


          圖片


          2.1、標(biāo)準(zhǔn)數(shù)據(jù)幀

          標(biāo)準(zhǔn)數(shù)據(jù)幀基于早期的CAN規(guī)格(1.0和2.0A版),使用了11位的識(shí)別域。


          CAN標(biāo)準(zhǔn)幀幀信息是11字節(jié),包括幀描述符和幀數(shù)據(jù)兩部分。如下表所列:


          圖片

          前3字節(jié)為幀描述部分。字節(jié)1為幀信息,第7位(FF)表示幀格式,在標(biāo)準(zhǔn)幀中FF=0,第6位(RTR)表示幀的類型,RTR=0表示為數(shù)據(jù)幀,RTR=1表示為遠(yuǎn)程幀。DLC表示在數(shù)據(jù)幀時(shí)實(shí)際的數(shù)據(jù)長(zhǎng)度。


          標(biāo)準(zhǔn)數(shù)據(jù)幀的 ID 有 11 個(gè)位。從 ID10 到 ID0 依次發(fā)送。禁止高 7 位都為隱性(禁止設(shè)定:ID=1111111XXXX)。


          字節(jié)2~3為報(bào)文識(shí)別碼,其高11位有效。


          字節(jié)4~11為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無(wú)效。


          2.2、擴(kuò)展數(shù)據(jù)幀

          CAN擴(kuò)展幀幀信息是13字節(jié),包括幀描述符和幀數(shù)據(jù)兩部分,如下表所示:


          圖片

          前5字節(jié)為幀描述部分。字節(jié)1為幀信息,第7位(FF)表示幀格式,在擴(kuò)展幀中FF=1,第6位(RTR)表示幀的類型,RTR=0表示為數(shù)據(jù)幀,RTR=1表示為遠(yuǎn)程幀。DLC表示在數(shù)據(jù)幀時(shí)實(shí)際的數(shù)據(jù)長(zhǎng)度。


          擴(kuò)展格式的 ID 有 29 個(gè)位。基本 ID 從 ID28 到 ID18,擴(kuò)展 ID 由 ID17 到 ID0 表示?;?ID 和 標(biāo)準(zhǔn)格式的 ID 相同。禁止高 7 位都為隱性(禁止設(shè)定:基本 ID=1111111XXXX)。


          字節(jié)2~5為報(bào)文識(shí)別碼,其高28位有效。


          字節(jié)6~13為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無(wú)效。


          3


          控制段

          控制段由6個(gè)位組成,包括數(shù)據(jù)長(zhǎng)度代碼和兩個(gè)將來(lái)作為擴(kuò)展用的保留位,標(biāo)準(zhǔn)格式和擴(kuò)展格式的構(gòu)成有所不同。


          數(shù)據(jù)長(zhǎng)度代碼指示了數(shù)據(jù)段中的字節(jié)數(shù)量。數(shù)據(jù)長(zhǎng)度代碼為4個(gè)位,在控制段里被發(fā)送,數(shù)據(jù)幀長(zhǎng)度允許的字節(jié)數(shù)為0、1、2、3、4、5、6、7、8,其他數(shù)值為非法的。


          圖片

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


          數(shù)據(jù)長(zhǎng)度碼(DLC)與數(shù)據(jù)的字節(jié)數(shù)的對(duì)應(yīng)關(guān)系如下表所示:


          圖片

          數(shù)據(jù)的字節(jié)數(shù)必須為 0~8 字節(jié),但接收方對(duì) DLC = 9~15 的情況并不視為錯(cuò)誤。


          4


          數(shù)據(jù)段

          數(shù)據(jù)段由數(shù)據(jù)幀中的發(fā)送數(shù)據(jù)組成,它可以為0~8字節(jié),每字節(jié)包含了8位,首先發(fā)送最高有效位MSB,依次發(fā)送至最低有效位LSB。


          圖片

          5


          CRC段

          CRC段是檢查幀傳輸錯(cuò)誤的幀,包括:15 個(gè)位的 CRC序列(CRC SEQUENCE)和1 個(gè)位的CRC界定符(CRC DELIMITER)構(gòu)成。


          圖片

          CRC序列是根據(jù)多項(xiàng)式生成的 CRC 值,CRC 的計(jì)算范圍包括:幀起始、仲裁段、控制段、數(shù)據(jù) 段。接收方以同樣的算法計(jì)算 CRC 值并進(jìn)行比較,不一致時(shí)會(huì)通報(bào)錯(cuò)誤。


          圖片

          6


          ACK段

          ACK段用來(lái)確認(rèn)是否正常接收。由 ACK 槽(ACK SLOT)和 ACK 界定符(ACK DELIMITER)2 個(gè)位構(gòu)成。


          圖片

          發(fā)送單元在 ACK 段發(fā)送 2 個(gè)位的隱性位。當(dāng)接收器正確地接收到有效的報(bào)文時(shí),接收器就會(huì)在應(yīng)答間隙(ACK SLOT)期間(發(fā)送ACK 信號(hào))向發(fā)送器發(fā)送一個(gè)“顯性”的位以示應(yīng)答,通知發(fā)送單元正常接收結(jié)束,這稱作“發(fā)送 ACK”或者“返回 ACK”。


          發(fā)送 ACK/返回 ACK是在既不處于總線關(guān)閉態(tài)也不處于休眠態(tài)的所有接收單元中,接收到正常消息的單元 (發(fā)送單元不發(fā)送 ACK)。所謂正常消息是指不含填充錯(cuò)誤、格式錯(cuò)誤、CRC 錯(cuò)誤的消息。


          7


          幀結(jié)束

          幀結(jié)束是由每一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀的標(biāo)志序列界定的,這個(gè)標(biāo)志序列由7個(gè)“隱性”位組成。


          圖片


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

          高通濾波器相關(guān)文章:高通濾波器原理


          關(guān)鍵詞: CAN總線 汽車

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉