一、概述
SD卡全稱(chēng)為 Secrue Digital Memory Card,具有輕巧、可加密、傳輸速度高、適用于手持設備使用等優(yōu)點(diǎn)。
二、總線(xiàn)接口
SD需要高速讀寫(xiě),同時(shí)也要使手持等嵌入式設備能方便使用,特設有兩個(gè)訪(fǎng)問(wèn)接口中:SD模式接口和SPI接口。SD卡在上電初期,卡主控通過(guò)檢測引腳1(DAT3)來(lái)決定使用SD模式還是SPI模式。當此腳接50KOhm上拉電阻時(shí),卡進(jìn)入SD模式;當此腳為低電平,卡則工作于SPI模式。
SD引腳
SD模式
SPI模式
1
DAT3
CS
2
CMD
DI
3
VSS
VSS
4
VDD
VDD
5
CLK
SCLK
6
VSS
VSS
7
DAT0
DO
8
DAT1
Resvered
9
DAT2
Resvered
表1:SD卡接口定義
1、SPI接口
SPI接口是為嵌入式和手持設備準備的,只使用普通的三線(xiàn)制SPI總線(xiàn),即可對卡進(jìn)行一般的慢速的讀寫(xiě)等操作。
2、SD接口
SD接口是為高速專(zhuān)有設備而設計,使設備能對卡進(jìn)行高速可靠的傳輸而設計,因SD模式在每個(gè)命令及數據轉輸時(shí),都必須具有正確的CRC校驗。因此,此模式下主機一般需要專(zhuān)門(mén)設計的硬件模塊以產(chǎn)生CRC校驗。
在此模式下,SD卡具有四根數據線(xiàn),且時(shí)種速度最大可達50MHz,所以此模式下數據傳輸速率比SPI模式快得多。
三、總線(xiàn)協(xié)議
SD卡命令共分為12類(lèi),分別為class0到class11,不同的卡主控根據其功能,支持不同的命令集。主要如下:
class0:卡的識別、初始化命令集。
class2:讀卡命令集
class4:寫(xiě)卡命令集
class7:卡的鎖定,解鎖功能命令集
SD卡只有唯一的主機,所有命令是由主機發(fā)出??偩€(xiàn)上可傳輸三種類(lèi)型數據,分別是命令幀、響應、數據。
命令幀:由總線(xiàn)上唯一的主機發(fā)出,由設備響應并執行。
響應:指設備響應主機的命令。
數據:指由主機傳給設備,或由設備傳給主機的數據實(shí)體。
命令幀一共由48bit組成,其中起始位固定為0,結束位固定為1。每個(gè)命令最后1字節包含7bit的CRC校驗,第一字節為的另外7bit為命令碼,中間的32bit為命令參數。
一個(gè)完整的命令由命令幀和響應,或命令幀、響應和數據組合而成。
主機發(fā)出command請求,然后卡返回該命令的respond,如果respond響應為正確,則Host通過(guò)讀取cmd線(xiàn)狀態(tài),等待卡準備好數據;如果cmd為低電平,表示卡busy,busy結束后卡會(huì )把cmd線(xiàn)拉高,并且發(fā)出start token,隨即進(jìn)入數據傳輸階段;數據傳輸結束后,主機發(fā)送結束命令停止命令,傳輸結束。
(圖參照SD協(xié)議.doc)
四、卡的初始化
上電后,卡處于IDLE狀態(tài),主機發(fā)送CMD0復位SD Card,然后通過(guò)CMD55和ACMD41判斷當前電壓是否在卡的工作范圍內。但如果是MMC卡,則不能識別CMD55,所以可以通過(guò)此命令的響應正確與否,判斷插入的是MMC卡還是SD卡。
得到正確的響應后,主機可以繼續通過(guò)CMD10讀取SD卡的CID寄存器,通過(guò)CMD16設置數據Block長(cháng)度,通過(guò)CMD9讀取卡的CSD寄存器。從CSD寄存器中,主機可獲知卡容量,支持的命令集等重要參數。
此時(shí),卡已進(jìn)入了傳輸狀態(tài),主機就可通過(guò)CMD17/18和CMD24/25對卡進(jìn)行讀寫(xiě)。
繼SD1.1之后又推出了SD2.0,主要特性是支持更大容量。SD1.1中卡容量存放于CSD寄存器中,而由于其規范中相關(guān)域的值較小,固最大只能表示2G地址。隨著(zhù)Nand容量的大大提高,SD1.1已經(jīng)不適合潮流,因而推出了SD2.0。
初始化流程大同小義,只需要CMD0之后再加上CMD8命令的識別。SD1.1不支持CMD8,而SD2.0的CMD8能讀到卡的接口信息。如果卡響應CMD8為無(wú)效命令,則走SD1.1的流程,可能是SD1.1或MMC。如CMD8響應正確,則很可能是SD2.0了。
五、SD Memory Card的寄存器
名稱(chēng)
帶寬
描述
CID
128
卡的ID號。用來(lái)區分每張卡。強制 產(chǎn)品序列 生產(chǎn)日期
RCA
16
卡地址??ǖ谋镜叵到y地址,在設定初值期間由卡動(dòng)態(tài)產(chǎn)生并被主機核準。強制。
DSR
16
驅動(dòng)層寄存器。配置卡的輸出驅動(dòng)??蛇x
CSD
128
卡的特殊數據。標識卡的操作條件。強制
SCR
64
SD配置寄存器。標識SD存儲卡的特別特征。強制
OCR
32
操作條件寄存器。強制
CID 卡標識寄存器 產(chǎn)品序列 生產(chǎn)日期
CSD 卡特性寄存器
SCR 卡配置寄存器 支持協(xié)議 支持總線(xiàn)寬度
OCR 操作寄存器 電壓值 上電狀態(tài)
DSR 驅動(dòng)層寄存器
RCA 卡地址