SD/eMMC暫存器介紹
熟悉SD/MMC的相關暫存器對協議的理解有一定的輔助作用,所以這篇文章來介紹一下SD/MMC相關的暫存器有哪些呢?
1.SD卡內部架構
在熟悉SD/MMC相關暫存器之前,我們先來看看SD卡的內部架構是怎麼樣的,如下圖所示:
2.SD/MMC相關暫存器的介紹
從上圖中總結出:SD卡內部有7個暫存器.
一、OCR,CID,CSD和SCR暫存器儲存卡的配置資訊;
二、RCA暫存器儲存著通訊過程中卡當前暫時分配的地址(只適合SD模式);
三、CSR暫存器卡狀態(Card Status)和SSR暫存器SD狀態(SD Status)暫存器儲存著卡的狀態(例如,是否寫成功,通訊的CRC校驗是否正確等),這兩個暫存器的內容與通訊模式(SD模式或SPI模式)相關.
四、MMC卡沒有SCR和SSR暫存器.
下面分別對7個暫存器中比較重要的暫存器詳細解釋一下,分別是CID、CSD、SCR、OCR、RCA這5個暫存器。
2.1. Card Identification Register(CID)
這個 CID 暫存器有 16 位元組長,如下表所示,它包含了本卡的特別識別碼(ID 號)。 這些資訊是在卡的生產期間被程式設計(燒錄),主控制器不 能修改它們的內容。 注意:SD卡的 CID 暫存器和 MMC 卡的 CID 暫存器在記錄結構上是不同的。
2.2.Card Specific Data Register(CSD)
這個描述資料暫存器(CSD)有 128 位元組長,如下表所示,
在SD3.0協議中,CSD分為版本1.0和版本2.0,版本1.0對應標準容量的SD卡,版本2.0對應高容量和超高容量的SD卡。
CSD Version 2.0的如下:
2.3.SD card Configuration Register (SCR)
除了 CSD 暫存器外,還有一個配置暫存器的名字是:SD 卡配置暫存器(SCR)。SCR 提供了SD 卡的一些特殊特性在這張卡內。它的大小是64 位。這個暫存器內容由製造商在生產廠內設定,MMC卡沒有SCR。
SCR_STRUCTURE 關於SD卡內的物理級說明中SCR結構的版本號。
SD_SPEC描述這張SD卡在物理級上所支援的說明版本。
DATA_STAT_AFTER_ERASE 定義了資料在擦除後的狀態。是“0”或“1”中的任何一個(這要依賴卡的供應商)。
SD_SECURITY 描述了該卡所支援的安全演算法。0:無 1:安全協議1.0 安全說明版本 0.96 2:安全協議2.0 安全說明版本 1.0 - 1.01。其他保留
SD_BUS_WIDTHS描述該卡所支援的所有資料匯流排寬度。從SD 卡支援最少1 位或4 位寬度這兩種匯流排模式開始,任何SD 卡都將最少要設定0 和2 這兩個位(即SD_BUS_WIDTH = 0101 ),1.4位保留。
2.4.Operating Conditions Register (OCR)
這個 32 位的工作條件暫存器儲存了卡的 VDD 電壓輪廓圖。任何標準的 SD 卡主控制器可以使用 2V 至 3.6V 的工作電壓來讓 SD 卡能執行這個電壓識別操作(CMD1)。而訪問儲存器的陣列操作無論如何都需要 2.7V 至 3.6V 的工作電壓。OCR 暫存器顯示了在訪問卡的資料時所需要的電壓範圍。OCR 暫存器的結構描述:
2.5.RCA暫存器
該16位卡地址暫存器儲存了在卡識別過程中卡釋出的器件地址。該地址用於在卡識別後主機利用該地址與卡進行通訊。該暫存器只有在SD匯流排模式下才有效。