總線傳輸保護
總線上傳輸?shù)拿織lSD卡命令都受到CRC位的保護。在SPI模式下,SD存儲卡提供了CRC ON模式,使具有可靠數(shù)據(jù)鏈路的系統(tǒng)能夠排除實現(xiàn)CRC生成和驗證功能所需的硬件或固件。在CRC OFF模式下,命令的CRC位被定義為“不關(guān)心”發(fā)送端,而被接收端忽略。
缺省情況下,SPI接口初始化為CRC OFF模式。然而,用于將卡切換到SPI模式的RESET命令(CMD0)在SD模式下被卡接收,因此應(yīng)該有一個有效的CRC字段。
由于CMD0沒有參數(shù),所有字段的內(nèi)容(包括CRC字段)都是常量,不需要在運行時計算。
有效的復位命令為:Ox40, Ox0, Ox0, Ox0, Ox0, ox95卡進入SPI模式后,將根據(jù)CMD59設(shè)置對包括CMD0在內(nèi)的所有命令進行CRC檢查。
主機可以使用CRC_ON_OFF命令(CMD59)打開和關(guān)閉CRC選項。
主機應(yīng)在發(fā)出ACMD41之前啟用CRC驗證。始終啟用CMD8 CRC校驗。
主機應(yīng)在CMD8參數(shù)中設(shè)置正確的CRC。
如果檢測到CRC錯誤,無論命令索引如何,卡都會在R1響應(yīng)中返回CRC錯誤。
數(shù)據(jù)讀取
SPI模式支持單塊讀取和多塊讀取操作(SD Memory Card協(xié)議中的CMD17或CMD18)。
在接收到一個有效的讀命令后,卡將用一個響應(yīng)令牌和一個數(shù)據(jù)令牌進行響應(yīng),參考下圖。
在標準容量卡的情況下,數(shù)據(jù)令牌中的大小由set BLOCKLEN (CMD16)設(shè)置的塊長度決定。
對于SDHC和SDXC卡,無論cmd16設(shè)置的塊長度如何,塊長度都固定為512字節(jié)。
最大塊長度為512字節(jié),與CSD中定義的READ_BL_LEN無關(guān)。
如果在標準容量卡中啟用部分塊訪問(即CSD參數(shù)READ BL partial等于1),塊長度可以是1到512字節(jié)之間的任何數(shù)字。
起始地址可以是卡有效地址范圍內(nèi)的任意字節(jié)地址。但是,每個塊應(yīng)包含在單個物理卡扇區(qū)中。
如果禁用部分塊訪問,則只支持512字節(jié)的數(shù)據(jù)長度。SDHC和SDXC卡只支持512字節(jié)的塊長度。起始地址應(yīng)與塊邊界對齊。
在數(shù)據(jù)檢索錯誤的情況下,卡將不傳輸任何數(shù)據(jù)。相反,一個特殊的數(shù)據(jù)錯誤令牌將被發(fā)送到主機。
下圖顯示了一個以錯誤令牌而不是數(shù)據(jù)塊結(jié)束的數(shù)據(jù)讀取操作。
數(shù)據(jù)寫入
SPI模式支持單塊和多塊寫命令。在接收到有效的寫命令(SD存儲卡協(xié)議中的CMD24或CMD25)后,卡將使用響應(yīng)令牌進行響應(yīng),并等待主機發(fā)送數(shù)據(jù)塊。
CRC后綴、塊長度和起始地址限制(CSD參數(shù)WRITE BL PARTIAL控制部分塊寫選項和WRITE_BL_LEN除外)與讀操作相同,參考下圖
每個數(shù)據(jù)塊都有一個“開始塊”標記的前綴(一個字節(jié))。在接收到數(shù)據(jù)塊后,卡將使用數(shù)據(jù)響應(yīng)令牌進行響應(yīng)。如果接收到的數(shù)據(jù)塊沒有錯誤,將對其進行編程。
只要卡在忙編程,所有連續(xù)的忙令牌流將被發(fā)送到主機(有效地保持低數(shù)據(jù)輸出線)。
一旦編程操作完成,主機應(yīng)該使用SEND_STATUS命令(CMD13)檢查編程的結(jié)果。一些錯誤(例如地址超出范圍,違反寫保護等)僅在編程期間檢測到。
在數(shù)據(jù)塊上執(zhí)行并通過數(shù)據(jù)響應(yīng)令牌與主機通信的唯一驗證檢查是CRC和一般寫錯誤指示。
在多塊寫操作中,停止傳輸將通過在下一個塊的開始處發(fā)送' stop Tran'令牌而不是'Start Block'令牌來完成。
如果出現(xiàn)寫錯誤指示(在數(shù)據(jù)響應(yīng)上),主機將使用SEND_NUM_WR_BLOCKS (ACMD22)來獲取寫好的寫塊的數(shù)量。
當卡忙時,重置CS信號不會終止編程過程。卡將釋放數(shù)據(jù)輸出線(三狀態(tài))并繼續(xù)編程。
如果在編程完成之前重新選擇卡,則DataOut線將被強制返回低電平,并且所有命令將被拒絕。
重置存儲卡(使用CMDO用于SD存儲卡)將終止任何掛起的或正在進行的編程。這可能會破壞卡上的數(shù)據(jù)格式。預防是主機的責任
擦寫保護管理
SPI模式的擦寫保護管理過程與SD模式的擦寫保護管理過程相同。
當卡擦除或更改預定義扇區(qū)列表的寫保護位時,它將處于忙狀態(tài)并使DataOut線保持低電平。
下圖說明了使用和不使用忙信令的“無數(shù)據(jù)”總線事務(wù)。
審核編輯 黃宇
-
SPI
+關(guān)注
關(guān)注
17文章
1724瀏覽量
92178 -
總線
+關(guān)注
關(guān)注
10文章
2904瀏覽量
88438 -
SD NAND
+關(guān)注
關(guān)注
0文章
84瀏覽量
1293
發(fā)布評論請先 登錄
相關(guān)推薦
SD NAND、SPI NAND 和 Raw NAND 的定義與比較
Arduino程序:實現(xiàn)SD NAND(貼片sd卡)的讀寫功能
瀚海微SD NAND之SD 協(xié)議(42)SPI總線時序
![<b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>協(xié)議</b>(42)<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>時序](https://file1.elecfans.com/web2/M00/0A/C3/wKgaomcVuZ2AaejkAACY5bkLVI4604.png)
瀚海微SD NAND之SD 協(xié)議(40)SPI模式CMD8的操作
![<b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>協(xié)議</b>(40)<b class='flag-5'>SPI</b>模式CMD8的操作](https://file1.elecfans.com/web1/M00/F2/D0/wKgaoWcMep2Ab-jNAAC7JmPVe4U685.png)
瀚海微SD NAND之SD 協(xié)議(39)SPI模式 Transaction Packets
![<b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>協(xié)議</b>(39)<b class='flag-5'>SPI</b>模式 Transaction Packets](https://file1.elecfans.com/web2/M00/0A/3F/wKgaomcJ6DGAMO52AABmLb_cvXo863.png)
瀚海微SD NAND之SD 協(xié)議(38)寄存器&復位&開解鎖
瀚海微SD NAND之SD 協(xié)議(36)SPI模式
![<b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>協(xié)議</b>(36)<b class='flag-5'>SPI</b>模式](https://file1.elecfans.com/web2/M00/09/EE/wKgaomcElOiAZFg6AAD4R5Dh8lc422.png)
瀚海微SD NAND之SD 協(xié)議(29)硬件接口
![<b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>協(xié)議</b>(29)硬件接口](https://file1.elecfans.com/web2/M00/08/89/wKgaombyITSAZrtfAAC4D5Tr7Uw136.png)
瀚海微SD NAND應(yīng)用之SD協(xié)議系統(tǒng)功能和概念 1 基礎(chǔ)知識
![<b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>應(yīng)用之<b class='flag-5'>SD</b><b class='flag-5'>協(xié)議</b>系統(tǒng)功能和概念 1 基礎(chǔ)知識](https://file1.elecfans.com/web2/M00/FE/49/wKgaomaZ4aaATDJuAACBJpHSiMw536.png)
SD NAND、SPI NAND和eMMC的區(qū)別對比分析
![<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、<b class='flag-5'>SPI</b> <b class='flag-5'>NAND</b>和eMMC的區(qū)別對比分析](https://file1.elecfans.com/web2/M00/F6/FD/wKgZomaDdA-AUp1AAAAeo5rLUOg894.png)
評論