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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)、归零编码(RZ)和不归零编码(NRZ)

發(fā)布時間:2024/10/14 编程问答 79 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)、归零编码(RZ)和不归零编码(NRZ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

幀格式

??在 CAN 總線中,為了確保足夠的轉(zhuǎn)換以保持同步,在相同極性的 5 個連續(xù)位之后使用位填充。下面以 標準格式來進行說明,先看下面標準格式的幀的圖示:

在某些文檔中,將 CAN 幀分為以下部分:

  • Header ( H ): 由 Start of Frame (SOF) 、 Arbitration Field、 Control Field 組成。
  • Data field ( D ): 即數(shù)據(jù)域
  • CRC field ( R ): 即 CRC 域的 CRC 部分。其內(nèi)容由 CAN 控制器在運行時計算,因此不能由應用程序直接修改。
  • Unstuffed trailer ( U ): i由 CRC delimiter、the ACK slot、the ACK delimiter、the End of Frame (EOF) field. 組成。

位填充

??BOSCH CAN2.0 規(guī)范規(guī)定,DATA FRAME 或 REMOTE FRAME 中的位字段 START OF FRAME,ARBITRATION FIELD,CONTROL FIELD,DATA FIELD 和 CRC SEQUENCE 都需要通過比特填充的方法編碼。 每當發(fā)送器在要發(fā)送的比特流中檢測到相同值的五個連續(xù)比特時,則自動在實際發(fā)送的比特流中插入一個相反的比特位,這種方法被稱為位填充

??DATA FRAME 或 REMOTE FRAME 的剩余位字段 CRC DELIMITER,ACK FIELD 和 END OF FRAME 是固定的格式,不需要填充。 ERROR FRAME 和 OVERLOAD FRAME 也是固定格式,不通過位填充方法編碼。
??消息中的比特流根據(jù)不歸零(Non-Return-to-Zero,NRZ)法進行編碼。這意味著在總比特時間內(nèi),生成的比特電平要么是“顯性”要么是“隱性”。下圖為一個填充示意圖:

??在使用比特填充的字段中,相同極性的六個連續(xù)比特(111111或000000)被認為是錯誤。 當檢測到錯誤時,節(jié)點可以發(fā)送主動錯誤標志。 主動錯誤標志由 6 個連續(xù)的比特位的顯性電平組成,這違反了位填充規(guī)則。
??位填充方案的一個副作用是,接收到的消息中的少量位錯誤可能會破壞解填充過程(接收器需要去除填充位),從而導致大量錯誤在解填充消息中傳播。這降低了 CRC 針對原始錯誤提供的保護級別。該協(xié)議的不足之處已經(jīng)在 CAN FD 幀中得到了解決,具體方法是 通過使用固定填充比特和記錄插入的填充比特數(shù)的計數(shù)器的組合。

幀長度

??在位填充之后,CAN 幀的大小將增大。填充位本身可以是五個連續(xù)相同位中的第一個,因此在最壞的情況下,每四個原始位有一個填充位。幀大小可以使用如下公式表示:

  • s:由控制域中 DLC 定義的數(shù)據(jù)域的長度
  • 8s:數(shù)據(jù)域的 比特位 數(shù)
  • 47:從 SOF 開始到幀間隔(3個比特位的隱性電平),除去數(shù)據(jù)域部分(8s 單獨表示)
  • 8s + 47:表示填充之前幀的大小。
  • 34:根據(jù)規(guī)范的要求,可能受到位填充的位的數(shù)量。去除了不可填充的部分和某些固定位。在最壞情況下,原數(shù)據(jù)除了第一個 4 位后,在每個 4 位后增加 1 位(所以分子減去 1)

歸零編碼(RZ)和不歸零編碼(NRZ)

??無論是歸零編碼(return-to-zero,RZ)還是不歸零編碼(non-return to zero,NRZ),信號都是在正 (+V) 和負 (- V) 電壓之間交替。邏輯1 表示正電壓下的信號,邏輯 0 表示負電壓下的信號。然而,在 NRZ 方法中,從邏輯 0 到邏輯 1 的轉(zhuǎn)換(反之亦然),直接跨越零電壓電平,而在 RZ 方法中,轉(zhuǎn)換暫時停留在零電壓電平上。如下圖所示:

??在光通信中,術語 RZ 和 NRZ 使用與以上含義不同,因為沒有負光。NRZ 意味著邏輯值 1 (光脈沖)的一個位在位周期的邊界上改變它的值(從光到無光或反之亦然)。相反,RZ 表示光脈沖比比特周期窄。在光信號中,邏輯 1 導通大約三分之一的位周期并且關閉大約三分之二。 邏輯 0 在比特周期的三分之二時間內(nèi)保持關閉狀態(tài)。

雙極信號和單極信號

??雙極信號(bipolar signal) 是一個三電壓級的信號,通常在正電壓和負電壓之間搖擺。雙極信號可以是 RZ 或 NRZ。在數(shù)字雙極信號中,正電壓和負電壓交替出現(xiàn)。這導致輸電線路上的零直流分量。
??單極信號(unipolar signal) 是一種兩級信號,通常在零級和正級之間波動。單極信號被認為是一種開關信號,可以應用于電信號或光學信號。在電力傳輸中,假設統(tǒng)計上有相同數(shù)量的1和0,那么直流分量可能達到峰值正電壓的一半。對于長距離傳輸,這種直流分量是不可取的。在光學傳輸中,單極信號也稱為開關鍵控。

??還有一類是多級信號。在這種情況下,可以使用幾個電壓電平(例如,8),每個電平對應8個代碼中的一個。盡管多級信號由于其固有的編碼壓縮特性而具有很大的吸引力,但它們并不用于通信網(wǎng)絡的傳輸。在光傳輸中,不存在多電平信號。

48/58, 88/108 CODING

??4B/5B 代碼將 4 位轉(zhuǎn)換成 16 個預定的 5 位代碼之一。 因此,即使原始的 4 位代碼是 0000,它也被轉(zhuǎn)換為 5 位非全零代碼。 此方法避免在任何代碼中都包含所有零。它也可以設計成連續(xù)模式避免某些字符串。 4B/5B 意味著轉(zhuǎn)換后的初始 1 Gb/s 比特率由于增加了比特而增加到 1.25 Gb/s。 也就是說,有 25% 的開銷帶寬損失。 類似地,8B/10B 代碼將 8 位轉(zhuǎn)換成 256 個預定的 10 位代碼之一。 帶寬損失也是25%。

參考

  • 維基百科—— CAN BUS
  • BOSCH CAN2.0 規(guī)范 Part A 部分
  • Preventing bit stuffing in CAN - Gianluca Cena, Ivan Cibrario Bertolotti, Tingting Hu, and Adriano Valenzano, CNR-IEIIT
  • Using bit-stuffing distributions in CAN analysis - Thomas Nolte, Student member, IEEE, Hans Hansson, Member, IEEE, Christer Norstr?m, Member, IEEE, Sasikumar Punnekkat, Member, IEEE
  • 總結

    以上是生活随笔為你收集整理的CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)、归零编码(RZ)和不归零编码(NRZ)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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