控制令牌
數據塊傳輸由一些令牌控制。
數據響應令牌
每個寫入卡的數據塊都會被一個數據響應令牌確認。
它是一個字節長,格式如下:
狀態位的含義定義如下:
'010'-接受的數據。
'101'-由于CRC錯誤而拒絕數據。
'110' -由于寫入錯誤而拒絕數據
如果在寫多塊操作過程中出現任何錯誤(CRC或寫錯誤),主機將停止使用CMD12傳輸數據。
如果出現寫錯誤(響應'110'),主機可能會發送CMD13 (send STATUS)來獲取寫入問題的原因。
ACMD22可用于查找編寫良好的寫塊的數量。
開始塊令牌和停止傳輸令牌
讀和寫命令都有與之相關的數據傳輸。
數據通過數據令牌傳輸或接收。
所有的數據字節都首先以MSB傳輸。
數據令牌長度為4 ~ 515字節,格式如下:
For Single Block Read, Single Block Write and Multiple Block Read:
第一個字節:Start Block
2 ~ 513字節(取決于數據塊長度):用戶數據
最后兩個字節:16位CRC。
對于多塊寫操作:
每個塊的第一個字節。如果要傳輸數據,那么-啟動塊令牌
如果請求停止傳輸-停止傳輸令牌
注意,這種格式只用于多塊寫。
在多塊讀取的情況下,使用STOP_TRAN命令(CMD12)執行停止傳輸。
數據錯誤令牌
如果讀操作失敗,卡不能提供所需的數據,它會發送一個數據錯誤令牌。
這個令牌有一個字節長,格式如下:
清除狀態bits
如前所述,在SPI模式下,狀態比特以三種不同的格式報告給主機:響應R1、響應R2和數據錯誤令牌(相同的比特可能存在于多種響應類型中,例如Card ECC failed)。
在SD模式下,錯誤bits在被主機讀取時被清除,而不管響應格式如何。
狀態指示燈可以通過讀取清除,也可以根據卡的狀態清除。
下表總結了各種狀態位的設置和清除條件:
類型:
E:錯誤位。
S:狀態位。
R:檢測并設置為實際命令響應。
X:在執行命令時檢測并設置。
主機可以通過發出帶有R1響應的命令來獲取狀態。
清零條件:
A:根據卡當前狀態清零。c:按讀清零
卡寄存器
在SPI模式下,只有RCA寄存器不可訪問。其他寄存器的格式與SD模式下的格式相同。
審核編輯 黃宇
-
SPI
+關注
關注
17文章
1706瀏覽量
91581 -
SD NAND
+關注
關注
0文章
83瀏覽量
1239
發布評論請先 登錄
相關推薦
評論