CAN總線常見的兩種編碼格式(Intel/Motorola)


在汽車電子行業的開發或者測試中,我們經常會看到CAN總線信號的常見的兩種編碼格式:Intel格式與Motorola格式

講解這兩種格式之前,我們先來了解一些大端模式小端模式,會對后面理解這兩種編碼格式有很大的幫助。

一、大端模式和小端模式

大端模式(Big-Endian):高字節存低地址,低字節存高地址

小端模式(Little-Endian):高字節存高地址,低字節存低地址

單純的從概念描述上可能比較難理解,我們來看一個實例,十六進制數---0x12345678,分別來看一下這個數據在兩種模式下的存儲情況:

數據0x12345678,共四個字節,從高字節到低字節依次為12、34、56、78

 

將這個數據以大端的方式存放在數組data[3]中為:

   

 

將這個數據以小的方式存放在數組data[3]中為:

 

    

 

二、Intel格式與Motorola格式

1.當一個信號的長度不超過1個字節(8bit),且不跨字節時,Intel格式與Motorola格式編碼結果是完全一樣的,如圖:

 

 

 

 

2.當一個信號的長度不超過1個字節(8bit),但是跨字節時,Intel格式與Motorola格式編碼結果是不一樣的

MSB:高位字節    LSB:低位字節

Motorola格式(類似於大端模式):從高地址開始存儲

 

 

Intel格式(類似於小端模式):從低地址開始存儲


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM