• 沒有找到結果。

SD 記憶卡的暫存器

第三章 SD 記憶卡

3.1 SD 記憶卡概述

3.1.4 SD 記憶卡的暫存器

在使用 SD 記憶卡時,必須知道卡片的詳細資訊才能夠正確的進行操 作,而卡片的各種詳細資訊就存放在內部暫存器中,表3-2 列出了 SD 記憶 卡內部的六個暫存器,其為OCR、CID、CSD、RCA、DSR 與 SCR,要存 取這些暫存器的資料需要透過相對應的命令才能讀取,詳細的暫存器內容 說明請參考SD Memory Card Specification [4]。

表 3-2 SD 記憶卡內部暫存器 [4]

Name Width Description

CID 128 Card identification number; card individual number for identification RCA 16 Relative card address; local system address of a card, dynamically

suggested by the card and approved by the host during initialization DSR 16 Driver Stage Register; to configure the card’s output drivers CSD 128 Card Specific Data; information about the card operation conditions SCR 64 SD Configuration Register; information about the SD Memory Card’s

Special Features capabilities OCR 32 Operation condition register

OCR 暫存器 (Operation Conditions Register)

OCR 暫存器有 32 位元,是儲存 SD 記憶卡的操作電壓範圍,由於記憶 卡的匯流排並不支援所有的操作電壓,所以OCR 暫存器會提供這張記憶卡 的操作電壓範圍。每一個位元對應一個電壓檔位,如果該位元為1,則表示 支援該電壓範圍;反之則不支援該電壓範圍。

另外,在第31 位元還包含了 1 位元的狀態資訊,如果記憶卡的電源起 動程序執行完成,則狀態資訊位元會設置為 1,當記憶卡在 BUSY 狀態下

當電源起動程序執行完成後,第 30 位元(CCS)會依據記憶卡容量來設 定,如為高容量記憶卡,則 CCS 會設置為 1。如電源起動程序無法執行完 成,則CCS 不會被設置。

圖3-6 為本系統使用的創見(Transcend) 2GB SD 記憶卡,其讀取的 OCR 數值為0x80FF800,可以得知其操作電壓範圍為 2.7V~3.6V,且記憶卡的狀 態為電源起動程序執行完成,不支援高容量模式。讀取OCR 暫存器的專用 命令為ACMD41 (SEND_APP_OP_COND)。

OCR = 0x80FF8000

31  30  [30:24]  [23:16] [15:8] [7:4] [3:0]   

1  0  00  FF  80  0  0   

  Reserve 

Openating Voltage  2.7 – 3.6V 

Reserve  Card capacity  status  Busy bit   

圖 3-6 OCR 結構分析 [4]

CID 暫存器 (Card IDentification)

CID 暫存器的資料格式為 128 位元,使用 CMD10(SEND_CID)命令來 讀取,其記錄了該SD 記憶卡的製造廠商、產品名稱、版本與序號等識別資 訊,每一張記憶卡都有一個唯一的識別號碼(PSN),本系統使用的創見 (Transcend) 2GB SD 記憶卡 CID 值為:

CID = { 0x1E,0x41,0x42,0x53,0x44,0x43,0x20,0x20 0x10,0x4B,0x60,0xD0,0x50,0x00,0xA9,0x47 }

CSD 暫存器 (Card-Specific Data)

CSD 暫存器提供如何操作記憶卡的資訊,其為 128 位元資料格式,其 定義了資料容量、錯誤校正形式、最大存取時間以及是否可以使用DSR 暫 存器等資訊。可使用CMD9 (SEND_CSD)命令來讀取 CSD 暫存器的資料。

本系統使用的創見(Transcend) 2GB SD 記憶卡 CSD 值為:

CSD = { 0x00,0x2F,0x00,0x32,0x5F,0x5A,0x83,0xB6 0xED,0xB7,0xFF,0xBF,0x96,0x80,0x00,0xF7 } RCA 暫存器 (Relative Card Address)

RCA 暫存器是一 16 位元的卡片位址暫存器,在卡片識別流程期間登 錄,主裝置可用此位址來指定記憶卡,RCA 的初始設定值為 0x0000。CMD3 (Send_Relative_Addr)命令可以用來登錄新的 RCA 位址,可用 CMD7 (Select/

Deselect_Card)命令來選擇特定 RCA 位址的記憶卡。

DSR 暫存器 (Driver Stage Register)

DSR 暫存器儲存記憶卡的命令與資料匯流排驅動電流與斜率,主裝置 可以依照DSR 設定隨意地根據資料線寬度、傳輸速率、卡片數量來改善匯 流排驅動能力,出廠設定值為0x0404。可用 CMD4(SET_DSR) 命令來設定 DSR 暫存器。

SCR 暫存器

64 位元的 SCR(SD CARD Configuration Register)暫存器是用來擴展 CSD 暫存器,其提供該記憶卡特殊功能的設定資訊,此暫存器需在製造後 出廠前就被設定好,使用ACMD51 (SD_APP_SEND_SCR)命令來讀取 SCR 暫存器資料。

相關文件