加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1. 概述
    • 2. SD卡的容量和速度
    • 3. SD卡物理結(jié)構(gòu)
    • 4. SD卡寄存器
    • 5. SD卡命令控制
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于FPGA的SD卡讀寫操作(一)

07/04 10:29
3125
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

引言:本文介紹寫SD卡的理論知識,主要包括SD卡分類、容量、速度、管腳、物理結(jié)構(gòu)以及命令控制等。

1. 概述

SD卡存儲卡,是用于手機(jī)、數(shù)碼相機(jī)、便攜式電腦、MP3和其他數(shù)碼產(chǎn)品上的獨(dú)立存儲介質(zhì),一般是卡片的形態(tài),故統(tǒng)稱為“存儲卡”,又稱為“數(shù)碼存儲卡”、“數(shù)字存儲卡”、“儲存卡”等。SD 卡是在 MMC 卡的基礎(chǔ)上發(fā)展而來,全稱 Secure Digital Card,譯為安全數(shù)字卡,簡稱SD卡。

由松下電器、東芝和閃迪聯(lián)合推出,1999 年 8 月發(fā)布。SD卡的數(shù)據(jù)傳送和物理規(guī)范與MMC相似,大小和MMC卡差不多,尺寸為32mmx24mmx2.1mm。長寬和MMC卡一樣,只是比MMC卡厚了0.7mm,以容納更大容量的存貯單元。SD卡與MMC卡保持著向上的兼容,MMC卡可以被新的SD設(shè)備存取,兼容性則取決于應(yīng)用軟件,但SD卡卻不可以被MMC設(shè)備存取。

圖2:SD卡發(fā)展歷程

按照外形與尺寸,SD卡可分為三類:標(biāo)準(zhǔn)SD卡、MiniSD卡和MicroSD 卡,典型參數(shù)如圖3所示。

圖3:三類SD典型參數(shù)

(1)標(biāo)準(zhǔn)SD:規(guī)格最大的一種,今天市面上大多數(shù)消費(fèi)級數(shù)字相機(jī)和攝像機(jī)均使用此標(biāo)準(zhǔn)的SD卡,這種卡有標(biāo)準(zhǔn)的“缺角”設(shè)計。

(2)mini-SD:在數(shù)碼相機(jī),PDA等所用的Flash Memory Card(中文名:快閃存儲卡)基礎(chǔ)上發(fā)展出的一種更小更適合小型手機(jī)用的存儲卡。盡管mini-SD卡的外形大小及接口形狀與原來的SD卡不同,但接口等電氣標(biāo)準(zhǔn)相同,以確保兼容性。將mini-SD卡插入專用適配器,可通過原來的SD卡插槽讀寫mini-SD卡。不過,不具備像SD卡那樣防寫入的鎖定功能。

(3)Micro SD:原名Trans-flash Card(TF卡),2004年正式更名為Micro SD Card,由SanDisk(閃迪)公司發(fā)明,主要用于移動電話。目前,提供128MB、256MB、512MB、1G、2G、4G、8G、16G、32G、64G、128G、256G、512G、1T容量的Micro SD卡供消費(fèi)者選用。

SD卡管腳定義如下圖4和圖5所示。

??? ?? ??

圖4:SD卡典型管腳定義

圖5:Micro SD卡典型管腳定義

2. SD卡的容量和速度

2.1 SD卡容量

SD卡按照容量標(biāo)準(zhǔn)可分為 4 個等級:

SD:Secure Digital Card,安全數(shù)字卡;

SDHC :Secure Digital High Capacity,高容量安全數(shù)字卡;

SDXC :SD eXtended Capacity,容量擴(kuò)大化的安全數(shù)字卡;

SDUC:Secure Digital Ultra Capacity,超容量安全數(shù)字卡。

圖6:SD卡按容量分類

市場的主流SD產(chǎn)品是SDHC和SDXC這兩種較大容量的存儲卡,SD卡因容量過小,已逐漸被市場淘汰,SDUC則是容量太大,預(yù)計會出現(xiàn)在未來市場。

2.2 SD卡速度

不同品牌和廠商生產(chǎn)的SD卡在對存取速度上的定義標(biāo)準(zhǔn)不同,這會使用戶在選擇SD卡時產(chǎn)生困擾。所以SD協(xié)會根據(jù)視頻勻速寫入到SD卡的最低持續(xù)速度來劃分不同等級,每個等級的速率是以每秒傳輸多少M(fèi)B來衡量的,單位為MB/SSD協(xié)會定義了三種速度等級:速度等級、UHS速度等級與視頻速度等級。三種速度等級的具體傳輸速度如圖7所示。


圖7:SD卡速度等級

從SD2.0的規(guī)范開始,對SD普通卡和高速卡的速度分級是:Class2、Class4、Class6和 Class 10 四個等級。

UHS 速度等級

UHS(Ultra High Speed)是與SDXC同時推出的SD卡總線標(biāo)準(zhǔn)。UHS 速度等級適用于SDHC和SDXC。SD協(xié)會定義的UHS速度等級是UHS速度等級1(UHS-1)和UHS速度等級 3(UHS-3)。U1和U3可應(yīng)用于UHS總線IF產(chǎn)品系列(UHS-I,UHS-II和UHS-III)。廠商一般會直接在SD卡上標(biāo)注速度,這可協(xié)助消費(fèi)者透過讀寫標(biāo)志來選擇所需要的效能。

視頻速度等級

視頻速度等級定義為能滿足高分辨率和高質(zhì)量4K/8K 視頻錄制的需求,它還具有支持下一代閃存類型(如3DNAND)的重要功能。此外,視頻速度等級還涵蓋了HD高清(2K)視頻的速度。SD協(xié)會定義的視頻速度等級為V6,V10,V30,V60和V90。V6和V10可應(yīng)用于高速和UHS總線IF產(chǎn)品系列。V30可應(yīng)用于UHS總線 IF產(chǎn)品系列。V60和V90可應(yīng)用于UHS-II/UHS-III 產(chǎn)品系列。

3. SD卡物理結(jié)構(gòu)

SD卡物理結(jié)構(gòu)如圖8所示。

圖8:SD卡物理結(jié)構(gòu)

SD卡從物理結(jié)構(gòu)看包括5個部分,分別為存儲單元、存儲單元接口、電源檢測、卡及接口控制器和接口驅(qū)動器,具體見圖8。存儲單元是存儲數(shù)據(jù)部件,存儲單元通過存儲單元接口與卡控制單元進(jìn)行數(shù)據(jù)傳輸;電源檢測單元保證SD卡工作在合適的電壓下,如出現(xiàn)掉電或上電狀態(tài)時,它會使控制單元和存儲單元接口復(fù)位;卡及接口控制單元控制SD卡的運(yùn)行狀態(tài),它包括有8個寄存器;接口驅(qū)動器控制SD卡引腳的輸入輸出。

常規(guī)的SD卡共有9個引腳接口,其中包括3根電源線、1根時鐘線、1根命令線和4根數(shù)據(jù)線。工作模式有兩種:SDIO模式和SPI模式(模式3)。各信號簡介如下:

CLK:同步時鐘線,由SDIO主機(jī)產(chǎn)生,即由主機(jī)控制器輸出;使用SPI模式時,該引腳與SPI總線的SCK時鐘信號相連;

CMD:命令控制線,SDIO主機(jī)通過該線發(fā)送命令控制SD卡,如果命令要求SD卡提供應(yīng)答(響應(yīng)),SD卡也是通過該線傳輸應(yīng)答信息;使用SPI模式時,該引腳與SPI總線的MOSI信號相連,SPI主機(jī)通過它向SD卡發(fā)送命令及數(shù)據(jù),但因為SPI總線的MOSI僅用于主機(jī)向從機(jī)輸出信號,所以SD卡返回應(yīng)答信息時不使用該信號線;

DAT0-3:在SDIO模式下,它們均為數(shù)據(jù)線,傳輸讀寫數(shù)據(jù),SD卡可將 D0拉低表示忙狀態(tài);在SPI模式下,DAT0與SPI總線的MISO信號相連,SD卡通過該信號線向主機(jī)發(fā)送數(shù)據(jù)或響應(yīng),DAT3與總線的CS信號相連,SPI主機(jī)通過該信號線選擇要通訊的SD卡。

VDD、VSS1、VSS2:電源和地信號,其中Micro SD卡不包含VSS2信號,即Micro SD卡僅有8根線。

SD卡有兩種工作模式,在SDIO模式下,SD卡共使用到CLK、CMD、DAT[3:0]六根信號線;SDIO總線與多張SD卡連接時,可以共用CLK時鐘信號線,對于CMD、DAT[3:0]信號線,每張SD卡都要獨(dú)立連接。SDIO總線與SD卡連接方式,具體見圖9。

圖9:SDIO總線與SD卡互聯(lián)

在SPI模式下,SD卡共使用到CS(DAT[3])、CLK、MISO(DAT[0])、MOSI(CMD)四根信號線;SPI 總線與多張 SD卡連接時,除CS片選信號線不可共用外,其他信號均可公用。SPI總線與SD卡連方式,具體見圖10。

圖10:SPI總線與SD卡互聯(lián)

4. SD卡寄存器

SD卡總共有8個寄存器,用于設(shè)定或表示SD卡信息,寄存器描述具體見圖11。這些寄存器只能通過對應(yīng)的命令訪問,對SD卡的控制操作是通過命令來執(zhí)行的,SD卡定義了64個命令(部分命令不支持SPI模式),每個命令都有特殊意義,可以實現(xiàn)某一特定功能,SD卡接收到命令后,根據(jù)命令要求對SD卡內(nèi)部寄存器進(jìn)行修改,程序控制中只需要發(fā)送組合命令就可以實現(xiàn)SD卡的控制以及讀寫操作。

圖11:SD卡寄存器寄存器簡述

5. SD卡命令控制

5.1 SD卡控制時序

SD卡的通信是基于命令和數(shù)據(jù)傳輸?shù)?。通訊由一個起始位(“0”)開始,由一個停止位(“1”)終止。SD通信一般是主機(jī)發(fā)送一個命令(Command),從設(shè)備在接收到命令后作出響應(yīng)(Response),如有需要會有數(shù)據(jù)(Data)傳輸參與。SD卡的基本交互是命令與響應(yīng)交互,如圖12所示,圖中的DataIn和DataOut線分別是SPI的MISO及MOSI信號。

圖12:命令與響應(yīng)交互

SD數(shù)據(jù)是以塊(Block)形式傳輸?shù)模琒DHC卡數(shù)據(jù)塊長度一般為512字節(jié),數(shù)據(jù)可以從主機(jī)到卡,也可以是從卡到主機(jī)。數(shù)據(jù)塊需要CRC位來保證數(shù)據(jù)傳輸成功,CRC位由SD卡系統(tǒng)硬件生成。單個數(shù)據(jù)塊的讀寫時序見圖12、圖13。

圖 12:單塊讀操作

圖:13:單塊寫操作

讀寫操作都是由主機(jī)發(fā)起的,主機(jī)發(fā)送不同的命令表示讀或?qū)?,SD卡接收到命令后對命令返回響應(yīng)。在讀操作中,SD卡返回一個數(shù)據(jù)塊,數(shù)據(jù)塊中包含 CRC校驗碼;在寫操作中,主機(jī)接收到命令響應(yīng)后需要先發(fā)送一個標(biāo)志(TOKEN)然后緊跟一個要寫入的數(shù)據(jù)塊,卡接收完數(shù)據(jù)塊后會返回一個數(shù)據(jù)響應(yīng)及忙碌標(biāo)志,當(dāng)SD卡把接收到的數(shù)據(jù)寫入到內(nèi)部存儲單元完成后,會停止發(fā)送忙碌標(biāo)志,主機(jī)確認(rèn)SD卡空閑后,可以發(fā)送下一個命令。SD數(shù)據(jù)傳輸支持單塊和多塊讀寫,它們分別對應(yīng)不同的操作命令,結(jié)束多塊讀寫時需要使用命令來停止操作。

5.2 SD卡命令

命令格式

SD命令由主機(jī)發(fā)出,命令格式固定為48bit,通過CMD信號線連續(xù)傳輸。SD 命令格式,具體見圖14。

圖:14:命令格式

起始位和終止位:命令的主體包含在起始位與終止位之間,它們都只包含一個數(shù)據(jù)位,起始位為 0,終止位為 1。

傳輸標(biāo)志:用于區(qū)分傳輸方向,該位為1時表示命令,方向為主機(jī)傳輸?shù)絊D卡,該位為0時表示響應(yīng),方向為SD卡傳輸?shù)街鳈C(jī)。命令主體內(nèi)容包括命令、地址信息/參數(shù)和CRC校驗三個部分。

命令號:它固定占用6bit,所以總共有64個命令,每個命令都有特定的用途,部分命令不適用于SPI總線,或不適用于SD卡操作,只是專門用于MMC卡或者 SD I/O卡。

地址/參數(shù):每個命令32bit地址信息/參數(shù)用于命令附加內(nèi)容,例如,廣播命令沒有地址信息,這32bit用于指定參數(shù),而尋址命令這32bit用于指定目標(biāo)SD卡的地址,當(dāng)使用SDIO驅(qū)動多張SD卡時,通過地址信息區(qū)分控制不同的卡,使用SPI總線驅(qū)動時,通過片選引腳來選擇不同的卡,所以使用這些命令時地址可填充任意值。CRC7校驗:長度為7bit的校驗位用于驗證命令傳輸內(nèi)容正確性,如果發(fā)生外部干擾導(dǎo)致傳輸數(shù)據(jù)個別位狀態(tài)改變將導(dǎo)致校準(zhǔn)失敗,也意味著命令傳輸失敗,SD卡不執(zhí)行命令。使用SDIO驅(qū)動時,命令中必須包含正確的CRC7校驗值;而使用SPI驅(qū)動時,命令中的CRC7校驗?zāi)J(rèn)是關(guān)閉的,即這CRC7校驗位中可以寫入任意值而不影響通訊,僅在發(fā)送CMD0命令時需要強(qiáng)制帶標(biāo)準(zhǔn)的CRC7校驗。

命令說明

SD卡命令可分為標(biāo)準(zhǔn)命令 (如CMD0)和特殊應(yīng)用命令 (如ACMD41),其中特殊應(yīng)用命令只有在先寫入CMD55命令后才能被識別。按照指令類型又可將 SD卡命令分為基本命令、數(shù)據(jù)塊寫命令、數(shù)據(jù)塊讀命令、擦除命令等12種(class0 ~ class11),部分命令不適用于SPI 總線,或不適用于SD卡操作,只是專門用于MMC卡或者 SD I/O 卡。

感謝關(guān)注公眾號,喜歡就多多轉(zhuǎn)發(fā)吧!

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
EPM240M100C5N 1 Altera Corporation Flash PLD, 7.5ns, 192-Cell, CMOS, PBGA100, 6 X 6 MM, 0.50 MM PITCH, LEAD FREE, MICRO, FBGA-100
$80.18 查看
A3P250-FG144I 1 Microchip Technology Inc Field Programmable Gate Array, 6144 CLBs, 250000 Gates, 350MHz, CMOS, PBGA144
$21.02 查看
10CL025YU256I7G 1 Intel Corporation Field Programmable Gate Array, PBGA256, UBGA-256

ECAD模型

下載ECAD模型
$224.62 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

專注FPGA技術(shù)開發(fā),涉及Intel FPGA、Xilinx FPGA技術(shù)開發(fā),開發(fā)環(huán)境使用,代碼風(fēng)格、時序收斂、器件架構(gòu)以及軟硬件項目實戰(zhàn)開發(fā),個人公眾號:FPGA技術(shù)實戰(zhàn)。