eMMC基礎技術4:eMMC command


1.前言

本文主要對eMMC的command進行詳細介紹,主要包含如下內容:

(1)command類型

(2)command格式

2.command類型

command類型 說明
bc 不帶response的廣播命令
bcr 帶有response的廣播命令
ac 點對點無數據傳輸
adtc 點對點數據傳輸

表 command類型

3. command格式

如上圖所示,eMMC Command 由 48 Bits 組成,各個 Bits 的解析如下所示:

 

表 command格式

  • 總長度48bits;
  • 固定以0開始,以1結束;
  • transmiter bit表示數據的傳輸方向,1代表從host to device;
  • command index 用6個bits指示了command的索引,取值范圍0~63;
  • argument:有些command需要發送參數,是否需要發送參數依賴於具體的命令;
  • CRC7是包含 Start Bit、Transmission Bit、 Command Index 和 Argument 內容的 CRC 校驗值。通過CRC7保護,device 端在接收到CMD時同樣會計算一個CRC值,如果與host發送的CRC不一致,則被認為是傳輸錯誤;
注1:eMMC可能不會支持0~63的所有命令,有些命令可能會不支持
注2:CRC 校驗簡單來說,是發送方將需要傳輸的數據“除於”(模2除)一個約定的數,並將得到的余數附在數據上一並發送出去。接收方收到數據后,再做同樣的“除法”,然后校驗得到余數是否與接收的余數相同。
如果不相同,那么意味着數據在傳輸過程中發生了改變。更多的細節不在本文展開描述,感興趣的讀者可以參考 CRC wiki 中的介紹。

4. command分類

eMMC將command index(0~56)分成12個class,每個class代表一類功能,包含所有commands的一個子集。
具體某一個設備支持哪些class的命令,可以通過CSD寄存器的CCC[95:84] feilds來查詢,如bit84為1則表示支持class0
 
device command class class description  note
class 0 basic 基本命令
class 1 obsolete  廢棄
class 2 block read 塊數據讀相關命令,包括設置塊長度、讀取單塊、讀取多塊
class 3 obsolete 廢棄
class 4 block write 塊數據寫相關命令,包括設置塊個數、寫入單塊、寫入多塊、修改設備id寄存器、修改CSD、設置RTC
class 5 erase 設置擦除組開始地址、設置擦除組結束地址、擦除操作
class 6 write protection 設置寫保護、清除寫保護、獲取device的寫保護狀態、獲取寫保護類型
class 7 lock device lock/unlock device
class 8 application-specific 指示下一個命令是一個特定應用命令而非標准命令  
class 9 I/O mode 寫寄存器、設置系統進入中斷模式
class 10 security protocols 連續傳輸數據塊從device to host或從host to device
class 11 command queuing 執行隊列里的任務
class 12 reserved \

 表 command分類

 5.參考文檔

[1] http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf


免責聲明!

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



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