1. 程式人生 > >報文 Intel 格式與Motorola 格式的區別

報文 Intel 格式與Motorola 格式的區別

當一個訊號的資料長度不超過 1 個位元組(8 位)時,Intel 與 Motorola 兩種格式的編碼結果沒有什麼不同,完全一樣。當訊號的資料長度超過 1 個位元組(8 位)時,兩者的編碼結果出現 了明顯的不同。

  1. 訊號的高位,即最能表達訊號特性的因子,比如:車速訊號 500km/h 按照給定的公 式,轉換成十六進位制數為 0x6A5,因為 6 代表的數量級最大(162),那麼其中 6 就 是其訊號的高位。
  2. 訊號的低位,即最不能表達訊號特性的因子,比如:車速訊號 500km/h 按照給定的公式,轉換成十六進位制數為 0x6A5,因為 5 代表的數量級最小(160),那麼其中 5 就是其訊號的低位。
  3. 訊號的起始位,一般來講,主機廠在定義整車 CAN 匯流排通訊矩陣時,其每一個信 號都從其最低位開始填寫,這樣也符合使用習慣。所以訊號的起始位就是訊號的最低位。這也與 CANoe 中 CANdb++的定義 Startbit 含義一致。

Intel 格式

當一個訊號的資料長度超過1 個位元組(8 位)或者資料長度不超過一個位元組但是採用跨位元組方式實現時,該訊號的高位(S_msb)將被放在高位元組(MSB)的高位,訊號的低位(S_lsb)將被放在低位元組(LSB)的低位。這樣,訊號的起始位就是低位元組的低位。

在這裡插入圖片描述
Motorola 格式

當一個訊號的資料長度超過 1 個位元組(8 位)或者資料長度不超過一個位元組但是採用跨位元組方式實現時,該訊號的高位(S_msb)將被放在低位元組(MSB)的高位,訊號的低位(S_lsb)將被放在高位元組(LSB)的低位。這樣,訊號的起始位就是高位元組的低位.
在這裡插入圖片描述

所以CAN報文先發低位,位元組順序不一定,分格式而論