日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比

發(fā)布時(shí)間:2023/12/15 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在研究CAN總線的驅(qū)動(dòng),需要詳細(xì)了解數(shù)據(jù)幀/標(biāo)準(zhǔn)幀/擴(kuò)展幀/遠(yuǎn)程幀/錯(cuò)誤幀這幾種幀的詳細(xì)組成格式,于是收集了一下,統(tǒng)一放在這里進(jìn)行對(duì)比和記錄,以便日后需要時(shí)查閱。

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

CAN 標(biāo)準(zhǔn)數(shù)據(jù)幀如下圖所示。與其他所有幀一樣,幀以起始幀 (SOF)位開(kāi)始, SOF 為顯性狀態(tài),允許所有節(jié)點(diǎn)的硬同步。

SOF之后是仲裁字段,由12個(gè)位組成,分別為11個(gè)標(biāo)識(shí)位和一個(gè)遠(yuǎn)程發(fā)送請(qǐng)求(Remote Transmission
Request, RTR)位。 RTR 位用于區(qū)分報(bào)文是數(shù)據(jù)幀(RTR 位為顯性狀態(tài))還是遠(yuǎn)程幀 (RTR 位為隱性狀態(tài))。

仲裁字段之后是控制字段,由 6 個(gè)位組成。控制字段的第一位為標(biāo)識(shí)擴(kuò)展(Identifier Extension,IDE)位,該位應(yīng)是顯性狀態(tài)來(lái)指定標(biāo)準(zhǔn)幀。標(biāo)識(shí)擴(kuò)展位的下一位為零保留位(RB0),CAN 協(xié)議將其定義為顯性位。控制字段的其余 4 位為數(shù)據(jù)長(zhǎng)度碼 (Data Length Code,DLC),用來(lái)指定報(bào)文中包含的數(shù)據(jù)字節(jié)數(shù) (0 到 8 字節(jié))。

控制字段之后為數(shù)據(jù)字段,包含要發(fā)送的任何數(shù)據(jù)字節(jié)。數(shù)據(jù)字段長(zhǎng)度由上述 DLC 定義 (0 到 8 字節(jié))。數(shù)據(jù)字段之后為循環(huán)冗余校驗(yàn)(CRC)字段,用來(lái)檢測(cè)報(bào)文傳輸錯(cuò)誤。CRC 字段包含一個(gè) 15 位的 CRC 序列,之后是隱性的 CRC 定界位。

最后一個(gè)字段是確認(rèn)字段 (ACK),由 2 個(gè)位組成。在確認(rèn)時(shí)隙(ACK Slot)位執(zhí)行期間,發(fā)送節(jié)點(diǎn)發(fā)出一個(gè)隱性位。任何收到無(wú)錯(cuò)誤幀的節(jié)點(diǎn)會(huì)發(fā)回一個(gè)顯性位(無(wú)論該節(jié)點(diǎn)是否配置為接受該報(bào)文與否)來(lái)確認(rèn)幀收到無(wú)誤。確認(rèn)字段以隱性確認(rèn)定界符結(jié)束,該定界符可能不允許被改寫(xiě)為顯性位。

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

在擴(kuò)展 CAN 數(shù)據(jù)幀中(如下圖所示),緊隨 SOF 位的是 32 位的仲裁字段。仲裁字段的前 11 位為 29 位標(biāo)識(shí)符的最高有效位(Most Significant bit,MSb)(基本lD) 。緊隨這 11 位的是替代遠(yuǎn)程請(qǐng)求(Substitute Remote Request, SRR)位,定義為隱性狀態(tài)。 SRR位之后是 lDE 位,該位為隱性狀態(tài)時(shí)表示這是擴(kuò)展的CAN 幀。

應(yīng)該注意的是,如果發(fā)送完擴(kuò)展幀標(biāo)識(shí)符的前 11 位后,總線仲裁無(wú)果,而此時(shí)其中一個(gè)等待仲裁的節(jié)點(diǎn)發(fā)出標(biāo)準(zhǔn) CAN 數(shù)據(jù)幀 (11 位標(biāo)識(shí)符),那么,由于節(jié)點(diǎn)發(fā)出了顯性 lDE 位而使標(biāo)準(zhǔn) CAN 幀贏得總線仲裁。另外,擴(kuò)展 CAN 幀的 SRR 位應(yīng)為隱性,以允許正在發(fā)送標(biāo)準(zhǔn)CAN 遠(yuǎn)程幀的節(jié)點(diǎn)發(fā)出顯性 RTR 位。

SRR和lDE位之后是標(biāo)識(shí)符的其余18位(擴(kuò)展lD)及一個(gè)遠(yuǎn)程發(fā)送請(qǐng)求位。

為使標(biāo)準(zhǔn)幀和擴(kuò)展幀都能在共享網(wǎng)絡(luò)上發(fā)送,應(yīng)將29位擴(kuò)展報(bào)文標(biāo)識(shí)符拆成高 11 位和低 18 位兩部分。拆分后可確保 lDE 位在標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀中的位置保持一致。

仲裁字段之后是 6 位控制字段。控制字段前兩位為保留位,必須定義為顯性位。其余 4 位為 DLC,用來(lái)指定報(bào)文中包含的數(shù)據(jù)字節(jié)數(shù)。

擴(kuò)展數(shù)據(jù)幀的其他部分 (數(shù)據(jù)字段、 CRC 字段、確認(rèn)字段、幀結(jié)尾和間斷)與標(biāo)準(zhǔn)數(shù)據(jù)幀的結(jié)構(gòu)相同。

3、遠(yuǎn)程幀

通常,數(shù)據(jù)傳輸是由數(shù)據(jù)源節(jié)點(diǎn)(例如,傳感器發(fā)出數(shù)據(jù)幀)自主完成的。但也可能存在目標(biāo)節(jié)點(diǎn)向源節(jié)點(diǎn)請(qǐng)求發(fā)送數(shù)據(jù)的情況。要做到這一點(diǎn),目標(biāo)節(jié)點(diǎn)需發(fā)送一個(gè)遠(yuǎn)程幀,其中的標(biāo)識(shí)符應(yīng)與所需數(shù)據(jù)幀的標(biāo)識(shí)符相匹配。隨后,相應(yīng)的數(shù)據(jù)源節(jié)點(diǎn)會(huì)發(fā)送一個(gè)數(shù)據(jù)幀以響應(yīng)遠(yuǎn)程幀請(qǐng)求。

遠(yuǎn)程幀 與數(shù)據(jù)幀存在兩點(diǎn)不同:

1)遠(yuǎn)程幀的 RTR 位為隱性狀態(tài);
2)遠(yuǎn)程幀沒(méi)有數(shù)據(jù)字段。

當(dāng)帶有相同標(biāo)識(shí)符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)發(fā)出時(shí),數(shù)據(jù)幀將贏得仲裁,因?yàn)槠錁?biāo)識(shí)符后面的 RTR 位為顯性。這樣,可使發(fā)送遠(yuǎn)程幀的節(jié)點(diǎn)立即收到所需數(shù)據(jù)。

4、主動(dòng)錯(cuò)誤幀

當(dāng)錯(cuò)誤主動(dòng)節(jié)點(diǎn)檢測(cè)到一個(gè)總線錯(cuò)誤時(shí),這個(gè)節(jié)點(diǎn)將產(chǎn)生一個(gè)主動(dòng)錯(cuò)誤標(biāo)志來(lái)中斷當(dāng)前的報(bào)文發(fā)送。主動(dòng)錯(cuò)誤標(biāo)志由 6 個(gè)連續(xù)的顯性位構(gòu)成。這種位序列主動(dòng)打破了位填充規(guī)則。所有其他節(jié)點(diǎn)在識(shí)別到所生成的位填充錯(cuò)誤后,會(huì)自行產(chǎn)生錯(cuò)誤幀,稱為錯(cuò)誤反射標(biāo)志。

錯(cuò)誤標(biāo)志字段因此包含 6 到 12 個(gè)連續(xù)顯性位 (由 1 個(gè)或多個(gè)節(jié)點(diǎn)產(chǎn)生)。錯(cuò)誤定界字段 (8 個(gè)隱性位)為錯(cuò)誤幀劃上句號(hào)。在錯(cuò)誤幀發(fā)送完畢后,總線主動(dòng)恢復(fù)正常狀態(tài),被中斷的節(jié)點(diǎn)會(huì)嘗試重新發(fā)送被中止的報(bào)文。

5、過(guò)載幀

過(guò)載幀與主動(dòng)錯(cuò)誤幀具有相同的格式。

但是,過(guò)載幀只能在幀間間隔產(chǎn)生,因此可通過(guò)這種方式區(qū)分過(guò)載幀和錯(cuò)誤幀 (錯(cuò)誤幀是在幀傳輸時(shí)發(fā)出
的)。過(guò)載幀由兩個(gè)字段組成,即過(guò)載標(biāo)志和隨后的過(guò)載定界符。過(guò)載標(biāo)志由 6 個(gè)顯性位和緊隨其后的其他節(jié)點(diǎn)產(chǎn)生的過(guò)載標(biāo)志構(gòu)成 (而主動(dòng)錯(cuò)誤標(biāo)志最多包含 12個(gè)顯性位)。過(guò)載定界符包含 8 個(gè)隱性位。節(jié)點(diǎn)在兩種情況下會(huì)產(chǎn)生過(guò)載幀:

1)節(jié)點(diǎn)在幀間間隔檢測(cè)到非法顯性位。在 IFS 的第三位期間檢測(cè)到顯性位除外。這種情況下,接收器會(huì)把它看作一個(gè) SOF 信號(hào)。
2)由于內(nèi)部原因,節(jié)點(diǎn)尚無(wú)法開(kāi)始接收下一條報(bào)文。節(jié)點(diǎn)最多可產(chǎn)生兩條連續(xù)的過(guò)載幀來(lái)延遲下一條報(bào)文的發(fā)送。

總結(jié)

以上是生活随笔為你收集整理的CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。