時鐘控制
主機(jī)可以使用SD Memory Card總線時鐘信號將卡切換到節(jié)能模式或控制總線上的數(shù)據(jù)流(以避免欠運(yùn)行或過運(yùn)行)。主機(jī)不允許降低時鐘頻率或關(guān)閉時鐘。
例如,在具有512字節(jié)數(shù)據(jù)緩沖區(qū)的主機(jī)希望將數(shù)據(jù)傳輸?shù)骄哂?kbyte寫塊的卡的情況下。因此,為了保持所有數(shù)據(jù)的連續(xù)傳輸,從卡的角度來看,到卡的時鐘應(yīng)該在第一個512字節(jié)之后停止。然后,主機(jī)將用另一個512字節(jié)填充其內(nèi)部緩沖區(qū)。在主機(jī)中寫塊的后半部分準(zhǔn)備好后,它將通過重新啟動時鐘電源繼續(xù)向卡傳輸數(shù)據(jù)。這樣,卡就不能識別數(shù)據(jù)傳輸中的任何中斷。有一些限制是HOST應(yīng)該考慮的:
總線頻率可隨時更改(受最大數(shù)據(jù)傳輸頻率和規(guī)范文件定義的識別頻率的限制.
上述豁免是ACMD41 (SD_APP_OP_COND)。發(fā)出ACMD41命令后,由主機(jī)執(zhí)行以下1)或2)程序,直到卡準(zhǔn)備就緒。
1)發(fā)出100 KHz-400 KHz頻率范圍內(nèi)的連續(xù)時鐘。如果主機(jī)想要停止時鐘,則通過ACMD41命令以小于50 ms的間隔輪詢忙位。
這是一個明顯的要求,時鐘應(yīng)該運(yùn)行的卡輸出數(shù)據(jù)或響應(yīng)令牌。在最后一次SD存儲卡總線事務(wù)之后,要求主機(jī)在關(guān)閉時鐘之前提供8(eight)個時鐘周期供卡完成操作。以下是各種總線事務(wù)的列表:沒有回應(yīng)的命令。
8個時鐘主機(jī)命令結(jié)束位之后。帶有響應(yīng)的命令。
8個時鐘在卡響應(yīng)結(jié)束位之后。讀數(shù)據(jù)事務(wù)。
8個時鐘在最后一個數(shù)據(jù)塊的結(jié)束位之后。寫數(shù)據(jù)事務(wù)。
8人時鐘在CRC狀態(tài)令牌之后。允許主機(jī)關(guān)閉“忙”卡的時鐘。
無論主機(jī)時鐘如何,卡都將完成編程操作。但是,主機(jī)應(yīng)該為卡提供一個時鐘邊緣來關(guān)閉它的忙音信號。如果沒有時鐘邊緣,卡(除非先前通過取消選擇命令cmd7斷開連接)將永遠(yuǎn)迫使DAT線向下。
CRC (Cyclic Redundancy Code)
CRC旨在保護(hù)SD存儲卡命令、響應(yīng)和數(shù)據(jù)傳輸,防止SD存儲卡總線上的傳輸錯誤。為每個命令生成一個CRC,并檢查CMD行上的每個響應(yīng)。對于數(shù)據(jù)塊,每個傳輸?shù)膲K生成一個CRC。生成并檢查CRC,如下所述。
CRC7
CRC7檢查用于所有命令、除類型R3之外的所有響應(yīng)以及CSD和CID寄存器。CRC7是一個7位值,計算方法如下:
第一個位是對應(yīng)的位串(命令、響應(yīng)、CID或CSD)的最左邊的位多項(xiàng)式的階n是CRC保護(hù)位的個數(shù)減少1。命令和響應(yīng)(n = 39)需要保護(hù)的比特數(shù)為40,CSD和CID (n = 119)需要保護(hù)的比特數(shù)為120。
CRC7例子
命令/響應(yīng)的CRC部分被保留。
CRC16
在使用一條DAT線路的情況下,CRC16用于塊傳輸模式下的有效負(fù)載保護(hù)。CRC校驗(yàn)和是一個16位的值,計算方法如下:
第一個位是相應(yīng)塊的第一個數(shù)據(jù)位。多項(xiàng)式的度n表示數(shù)據(jù)塊的位數(shù)減少1
(例如,塊長度為512字節(jié)時為e.g.n =4095)。發(fā)生器多項(xiàng)式G(x)是一個標(biāo)準(zhǔn)的CCITT多項(xiàng)式。代碼的最小距離為d-4,用于負(fù)載長度為2048字節(jié)(n <= 16383)。在單數(shù)據(jù)線模式和寬總線模式下應(yīng)使用相同的CRC16方法在寬總線模式下,CRC16在每條線路上分別完成。
CRC16例子
512字節(jié)的0xFF data-->CRC16=0x7FA1
錯誤條件
CRC與非法命令
所有命令都由CRC (cvclic redundancy check)位保護(hù)。如果地址卡的CRC檢查失敗,則該卡不響應(yīng),命令不執(zhí)行??ú桓淖兯臓顟B(tài),并且在狀態(tài)寄存器中設(shè)置了COM CRC ERROR位。同樣,如果接收到非法命令,卡將不改變其狀態(tài),不響應(yīng),并在狀態(tài)寄存器中設(shè)置ILLEGAL_COMMAND錯誤位。狀態(tài)圖中只顯示非錯誤狀態(tài)分支。下表給出了完整的狀態(tài)轉(zhuǎn)換描述。
非法命令有不同的類型:屬于卡不支持的類的命令(如:只讀卡中的寫入命令)。
當(dāng)前狀態(tài)下不允許的命令(如:CMD2處于傳輸狀態(tài))。
未定義的命令(如:CMD5)。
審核編輯 黃宇
-
存儲
+關(guān)注
關(guān)注
13文章
4441瀏覽量
86680 -
crc
+關(guān)注
關(guān)注
0文章
201瀏覽量
29815 -
SD NAND
+關(guān)注
關(guān)注
0文章
86瀏覽量
1351
發(fā)布評論請先 登錄
相關(guān)推薦
一文帶你了解什么是SD NAND存儲芯片
國產(chǎn)安路FPGA SD NAND FLASH 初步描述
瀚海微SD NAND之SD 協(xié)議(37)SPI總線保護(hù)和讀寫

瀚海微SD NAND存儲功能描述(28)RCA Registers

瀚海微SD NAND存儲功能描述(26)CSD Registers

瀚海微SD NAND存儲功能描述(25)SD Registers

瀚海微SD NAND存儲功能描述(22)Timing Values

瀚海微SD NAND存儲功能描述(21)數(shù)據(jù)讀寫

瀚海微SD NAND存儲功能描述(18)命令類e

瀚海微SD NAND存儲功能描述(17)命令類d

瀚海微SD NAND存儲功能描述(14)命令類a

瀚海微SD NAND存儲功能描述(11)命令系統(tǒng)CMD8

瀚海微SD NAND存儲功能描述(10)CMD6和其他命令關(guān)系

瀚海微SD NAND存儲功能描述(9)切換功能

瀚海微SD NAND應(yīng)用之SD協(xié)議存儲功能描述2 初始化命令

評論