1.0 簡介
安全數字卡(簡稱
SD卡),最初引進應用于手持式可攜帶電子產品,在一個小尺寸產品上可靠的存儲數據,如移動電話,數碼相機等。近來,
SD卡也被應用于工業級環境中。傳統的工業級存儲接口是ATA,要么是2.5"驅動器要么是TureIDE模式的PC卡,
CF卡或者DOM。SD接口與ATA有很大區別。這份簡介是為了幫助那些剛開始用SD接口的客戶更好的懂得它的特征與用法。
2.0 規格
官方的SD卡規格由SD卡協會發布。官方的規格僅能從SD卡協會成員獲得。盡管如此,SD卡協會會免費提供一個簡單的物理層版本,對幫助終端用戶在他們的系統里設計SD卡是有用的。任何人在他們的系統里設計。
3.0 基礎知識
與CF卡或者PC卡一樣,SD卡內部包含一個控制器,能控制內部所有的閃存操作。根據串行時鐘數據在主機與卡之間傳輸,速度為512字節塊。目前定義FAT12/16的文件系統的卡容量在2G字節或以下,FAT32的卡的容量在4G字節或者以上。
3.1 引腳說明
與CF或者PC卡不同,SD卡沒有使用PIN針,取而代之的是使用9個接觸焊盤,如下圖所示。
3.2 電平標準
SD卡操作電壓范圍是2.7-3.3V。專用的低電壓版本SD卡能工作在1.6V。Agrade睿達的SD卡工作電壓范圍在標準的SD卡電壓范圍內。
3.3
總線協議
SD卡有定義2套總線協議。默認是本地SD模式,但是能配置成較慢SPI模式。在上電后第一次復位命令期間選擇協議。SD卡工作在SD模式,若將卡切換到SPI模式,當主機發送復位命令給卡時CS信號必須生效。一旦配置了專用的協議,在供電期間都不能改變。切換協議的唯一方法就是重新上電。
3.4 總線寬度
SD卡工作于時鐘串行模式的位寬度是1-4位。在SPI模式,僅僅工作于1位的模式。3.5 時鐘頻率SD工作于2種速度模式,默認模式時鐘頻率是0-25MHz,高速模式是0-50MHz。3.6 卡寄存器所有SD卡包含一套寄存器信息,用來描述與控制多種特征卡的支持性。類似卡配置寄存器與PC或CF卡的CIS結構(或者識別IDE驅動器的驅動結構)。如下表格列出了卡的信息寄存器與他們的描述:
SD卡協議由主機與SD卡之間的命令交換或者反饋標號組成。數據通過數據包進行傳輸。一個包由數據塊與CRC檢驗位組成。數據可以通過單個塊與多個塊模式進行傳遞,類似ATA讀/寫扇區與讀/寫多重命令。所有的傳輸在CMD/DAT引腳進行前首先使用MSB(最高有效位)。當數據在DAT引腳上傳輸時,CMD引腳發送命令與反饋信號。
4.0 數據包
有2中類型數據包格式。一種是一般字節寬的數據,與其他使用512位數據塊較寬的寬度數據。2種類型數據都被CRC16保護。對于一般512字節數據傳輸,首先傳輸最小的重要字節,但是在個別字節,數據首先傳送MSB。數據傳輸在1位模式(只使用DAT0)或者4位模式(如果被使能,使用DAT0-3)。當使用4位模式,字節格式的數據例如在DAT[3:0]數據線上,bit[7:4]在bit[3:0]后面傳送。在簡易SD規格書中有詳細的格式圖解。可以從SD卡協會網站下載。
5.0 SPI工作模式
大部分SD卡的工作是相同的,要么是SD模式要么SPI模式,但是有一些不同需要指出。SPI模式總線寬度只有1位。SPI傳輸是字節式的,所有命令與數據傳輸有一系列字節組成。SPI有定義2個新的反饋標記。如果卡在讀取數據時遇到錯誤條件,SPI模式將反饋一個ERROR標記相當于SD模式的超時。SPI模式寫入塊,卡會在收到每個數據塊后返回一個數據反饋標記。SPI模式寫入塊,數據塊優先于開始塊標記。SPI模式CRC保護是可選擇的,即使如此,當卡在SD模式會發送復位命令,因此,這個命令必須用一個有效的CRC發送。命令等級1,3,9不支持SPI模式。專門的等級才有支持命令,這也是SPI與SD模式之間的區別