多塊寫操作之前的預擦除設置
設置預擦除的寫塊數(shù)量(ACMD23)將使后續(xù)的多塊寫操作比不使用ACMD23的相同操作更快。主機將使用這個命令來定義在下一次寫操作中要發(fā)送多少個寫塊。如果主機將在所有數(shù)據(jù)塊發(fā)送到卡之前終止寫操作(使用停止傳輸),則剩余寫塊的內(nèi)容是未定義的(可以被擦除或仍然有舊數(shù)據(jù))。
如果主機發(fā)送的寫塊數(shù)量超過ACMD23中定義的數(shù)量,卡將逐個擦除塊(當接收到新數(shù)據(jù)時)。“Multiple block Write”操作完成后,該數(shù)值將復位為默認值1。建議在CMD25之前使用此命令,有些卡對于多寫塊操作會更快。
注意,如果主機想要使用預擦除特性,則應該在WRITE命令之前發(fā)送ACMD23。否則,在執(zhí)行其他命令(例如:Security Application commands)時,可能會自動清除pre-erase-count。
發(fā)送寫塊數(shù)使用
Pipeline機制進行數(shù)據(jù)緩沖區(qū)管理的系統(tǒng),在某些情況下,如果在多塊寫入操作中發(fā)生錯誤,則無法確定哪個塊是最后一個被寫入閃存的??▽⒂脤懭肓己玫膲K的數(shù)量響應ACMD22。
擦掉
為了提高數(shù)據(jù)吞吐量,需要同時擦除多個寫塊。這些寫塊的識別是通過ERASE_WR_BLK_START (CMD32)、ERASE_WR_BLK_END (CMD33)命令完成的。
主機應該遵循以下命令順序:ERASE WR_BLK_START、ERASE_WR_BLK_END和ERASE (CMD38)。
如果收到順序錯誤的擦除(CMD38)或地址設置(CMD32, 33)命令,卡將在狀態(tài)寄存器中設置ERASE_SEQ_ERROR位,并重置整個序列。如果收到亂序命令(SEND_STATUS除外),卡將在狀態(tài)寄存器中設置ERASE_RESET狀態(tài)位,重置擦除順序,執(zhí)行最后一條命令。
如果擦除范圍包括寫保護扇區(qū),則保留寫保護扇區(qū),只擦除非保護扇區(qū)。應該設置狀態(tài)寄存器中的WP_ERASE_SKIP狀態(tài)位。地址設置命令中的地址字段是以字節(jié)為單位的寫塊地址??▽⒑雎訵RITE_BL_LEN(參見CSD)大小以下的所有LSB。
如上所述,對于塊寫入,卡將通過保持低DATo來指示擦除正在進行中。實際擦除時間可能相當長,并且主機可能發(fā)出CMD7來取消卡的選擇或執(zhí)行卡的斷開,如上面的塊寫入部分所述。擦除操作后卡上的數(shù)據(jù)要么是“0”,要么是“1”,這取決于卡的供應商。
SCR寄存器位DATA_STAT_AFTER_ERASE(位55)定義它是'0'還是'1'。
寫保護管理
SD存儲卡支持以下三種寫保護方式:
機械寫保護開關(僅主機負責)、卡內(nèi)部寫保護(卡方責任)、密碼保護卡鎖操作。
卡的內(nèi)部寫保護(可選)
卡片數(shù)據(jù)可以防止擦除或?qū)懭搿V圃焐袒騼?nèi)容提供商可以通過在CSD中設置永久或臨時寫保護位,對整個卡進行永久寫保護。對于通過在CSD中設置WP_GRP_ENABLE位來支持扇區(qū)組寫保護的卡,可以保護部分數(shù)據(jù)(以CSD中指定的WP_GRP_SIZE扇區(qū)為單位),并且可以由應用程序更改寫保護。
SET WRITE_PROT命令用來設置地址寫保護組的寫保護CLR_WRITE_PROT命令用于清除指定地址寫保護組的寫保護。SEND_WRITE_PROT命令類似于單個塊讀取命令。卡發(fā)送一個包含32個寫保護位(代表從指定地址開始的32個寫保護組)的數(shù)據(jù)塊,后跟16個CRC位。寫保護命令中的地址字段為組地址,單位為字節(jié)。該卡將忽略所有低于組大小的LSB。Password Card Lock保護將在下面的章節(jié)中介紹。
注意:SDHC和SDXC卡不支持寫保護,也不響應寫保護命令(CMD28、CMD29和CMD30)。
卡片鎖定/解鎖操作
一般密碼保護功能使主機能夠在提供密碼的同時鎖定卡片,稍后將用于解鎖卡片。密碼及其大小分別保存在128位PWD和8位PWD_LEN寄存器中。這些寄存器是非易失性的,因此電源周期不會擦除它們。
鎖定卡響應(并執(zhí)行)“基本”命令類(O類)、l ACMD41、CMD16和“鎖定卡”命令類中的所有命令。因此,允許主機進行復位、初始化、選擇、查詢狀態(tài)等操作,但不允許訪問卡上的數(shù)據(jù)。如果之前設置過密碼(PWD LEN值不是0),上電后卡將自動鎖定。與現(xiàn)有的CSD寄存器寫命令類似,lock/unlock命令只能在“傳輸狀態(tài)”下使用。這意味著它不包括地址參數(shù),卡必須在使用前進行選擇。
card lock/unlock命令具有普通單塊寫命令的結(jié)構(gòu)和總線事務類型。傳輸?shù)臄?shù)據(jù)塊包括命令所需的所有信息(密碼設置模式、PWD本身、卡鎖/解鎖等)。命令數(shù)據(jù)塊的結(jié)構(gòu)如下表所示。注意:物理規(guī)范版本2.00及以后的主機在發(fā)布CMD42時需要將保留位(Bit7-4)設置為0。
ERASE: 1定義強制擦除操作。在字節(jié)0中,第3位將被設置為1(所有其他位將被設置為1)該命令的所有其他字節(jié)將被卡忽略。
LOCK/UNLOCK: 1=鎖定卡片。0=解鎖卡(注意,將此位與SET_PWD一起設置是有效的,但不允許與CLR_PWD一起設置)。
CLR_PWD: 1=清除 PWD。SET_PWD: 1=設置新密碼為
PWDPWDS_LEN:定義以下密碼長度(以字節(jié)為單位)。在修改密碼的情況下,該字段包括舊密碼和新密碼的總長度。密碼長度不超過16個字節(jié)。在修改密碼的情況下,舊密碼和新密碼的總長度最多為32字節(jié)。
PASSWORD DATA:設置新密碼時,包含新密碼。在修改密碼的情況下,它包含舊密碼和新密碼。
數(shù)據(jù)塊大小由主機在發(fā)送卡片鎖/解鎖命令之前定義。塊長度應設置為大于或等于lock/unlock命令所需的數(shù)據(jù)結(jié)構(gòu)。
在下面的解釋中,通過CMD16更改塊大小并不是lock/unlock命令的強制要求。因為在DDR50模式下,塊長度總是偶數(shù),所以CMD42的塊長度應該總是四舍五入到一個偶數(shù)的大小。如果在CMD42之前使用CMD16來設置塊長度,它應該總是指定一個偶數(shù)長度。
強制擦除
在用戶忘記密碼(PWD內(nèi)容)的情況下,可以擦除所有卡數(shù)據(jù)內(nèi)容以及PWD內(nèi)容。此操作稱為強制擦除。選擇一張卡(CMD7),如果之前沒有選擇的話。定義塊長度(CMD16)為1字節(jié)(8位卡鎖定/解鎖命令)。
發(fā)送卡片鎖/解鎖命令,并在數(shù)據(jù)線上發(fā)送相應的一個字節(jié)的數(shù)據(jù)塊,包括16位CRC。數(shù)據(jù)塊應該指示模式ERASE (ERASE位應該是唯一設置的位)。
如果數(shù)據(jù)字段中沒有設置唯一的ERASE位,則在狀態(tài)寄存器中設置LOCK_UNLOCK_FAILED錯誤位,并拒絕擦除請求。
如果該命令被接受,那么所有的卡片內(nèi)容將被擦除,包括PWD和PWD LEN寄存器內(nèi)容,鎖定的卡將被解鎖。在未鎖定的卡上強制擦除將失敗,并且在狀態(tài)寄存器中設置LOCK_UNLOCK_FAILED錯誤位。
強制擦除鎖定卡
強制擦除與寫保護的關系如下表所示。強制擦除不會擦除安全區(qū)域。在擦除過程中,該卡保持鎖定狀態(tài),待所有用戶區(qū)擦除完成后,該卡變?yōu)榻怄i狀態(tài)。同樣,在執(zhí)行擦除時,該卡應保持“臨時寫保護”和“組寫保護”,并在所有用戶區(qū)擦除完成后清除“寫保護”。在擦除錯誤發(fā)生的情況下,如果錯誤扇區(qū)的數(shù)據(jù)被破壞,卡可以繼續(xù)強制擦除。
審核編輯 黃宇
-
存儲
+關注
關注
13文章
4359瀏覽量
86204 -
SD NAND
+關注
關注
0文章
84瀏覽量
1293
發(fā)布評論請先 登錄
相關推薦
國產(chǎn)安路FPGA SD NAND FLASH 初步描述
瀚海微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'>SD</b> 協(xié)議(29)硬件接口](https://file1.elecfans.com/web2/M00/08/89/wKgaombyITSAZrtfAAC4D5Tr7Uw136.png)
瀚海微SD NAND存儲功能描述(28)RCA Registers
![<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'>功能</b><b class='flag-5'>描述</b>(28)RCA Registers](https://file1.elecfans.com/web2/M00/07/60/wKgZombwzrCAQ84zAAGPH88l91g401.png)
瀚海微SD NAND存儲功能描述(26)CSD Registers
![<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'>功能</b><b class='flag-5'>描述</b>(26)CSD Registers](https://file1.elecfans.com/web2/M00/06/B5/wKgZombqN4qADzDSAAB8zptFugs090.png)
瀚海微SD NAND存儲功能描述(25)SD Registers
![<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'>功能</b><b class='flag-5'>描述</b>(25)<b class='flag-5'>SD</b> Registers](https://file1.elecfans.com/web2/M00/07/4F/wKgaombk7E6AE2PuAAFu72IuZ74460.png)
瀚海微SD NAND存儲功能描述(21)數(shù)據(jù)讀寫
![<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'>功能</b><b class='flag-5'>描述</b>(21)數(shù)據(jù)讀寫](https://file1.elecfans.com/web2/M00/05/EE/wKgaombWcGOAaEX3AACUXGVjOPs718.png)
瀚海微SD NAND存儲功能描述(15)命令類b
![<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'>功能</b><b class='flag-5'>描述</b>(15)命令類b](https://file1.elecfans.com//web2/M00/03/8B/wKgZombEXDWAV1EyAABcpIU94z0219.jpg)
瀚海微SD NAND存儲功能描述(14)命令類a
![<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'>功能</b><b class='flag-5'>描述</b>(14)命令類a](https://file1.elecfans.com/web2/M00/03/4C/wKgZombCrQqATUV0AALGY1LP580639.png)
瀚海微SD NAND存儲功能描述(13)讀寫擦除超時
![<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'>功能</b><b class='flag-5'>描述</b>(13)讀寫<b class='flag-5'>擦除</b>超時](https://file1.elecfans.com/web2/M00/03/42/wKgZombBiduAL5f_AAB1DLLcs7E853.png)
瀚海微SD NAND存儲功能描述(11)命令系統(tǒng)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'>功能</b><b class='flag-5'>描述</b>(11)命令系統(tǒng)CMD8](https://file1.elecfans.com/web2/M00/02/09/wKgZoma5wW6ATO2IAAL_tS-2MOo010.png)
瀚海微SD NAND存儲功能描述(9)切換功能
![<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'>功能</b><b class='flag-5'>描述</b>(9)切換<b class='flag-5'>功能</b>](https://file1.elecfans.com/web2/M00/02/59/wKgaoma1e1mAera_AAJjDz23s5k567.png)
瀚海微SD NAND應用之SD協(xié)議存儲功能描述2 初始化命令
![<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'>SD</b>協(xié)議<b class='flag-5'>存儲</b><b class='flag-5'>功能</b><b class='flag-5'>描述</b>2 初始化命令](https://file1.elecfans.com/web2/M00/FD/A2/wKgZomadyY2APOCNAAIGhvObh-4141.png)
評論