0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

瀚海微SD NAND之SD 協(xié)議(37)SPI總線保護和讀寫

呂輝 ? 來源:jf_40298777 ? 作者:jf_40298777 ? 2024-10-09 10:29 ? 次閱讀

總線傳輸保護

總線上傳輸?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字段)都是常量,不需要在運行時計算。

有效的復(fù)位命令為: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),參考下圖。

在標(biāo)準(zhǔn)容量卡的情況下,數(shù)據(jù)令牌中的大小由set BLOCKLEN (CMD16)設(shè)置的塊長度決定。

對于SDHC和SDXC卡,無論cmd16設(shè)置的塊長度如何,塊長度都固定為512字節(jié)。

wKgaomcF6iyAAa-bAABwzBmzE3I594.png

最大塊長度為512字節(jié),與CSD中定義的READ_BL_LEN無關(guān)。

如果在標(biāo)準(zhǔ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ù)讀取操作。

wKgZomcF6kWASRDFAADodlS3Etc553.png

數(shù)據(jù)寫入

SPI模式支持單塊和多塊寫命令。在接收到有效的寫命令(SD存儲卡協(xié)議中的CMD24或CMD25)后,卡將使用響應(yīng)令牌進行響應(yīng),并等待主機發(fā)送數(shù)據(jù)塊。

CRC后綴、塊長度和起始地址限制(CSD參數(shù)WRITE BL PARTIAL控制部分塊寫選項和WRITE_BL_LEN除外)與讀操作相同,參考下圖

wKgZomcF6l6ANb0PAABrbTB5Vlc941.png

每個數(shù)據(jù)塊都有一個“開始塊”標(biāo)記的前綴(一個字節(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ù)量。

wKgaomcF6m-AFCqBAABpymRye3g152.png

當(dāng)卡忙時,重置CS信號不會終止編程過程。卡將釋放數(shù)據(jù)輸出線(三狀態(tài))并繼續(xù)編程。

如果在編程完成之前重新選擇卡,則DataOut線將被強制返回低電平,并且所有命令將被拒絕。

重置存儲卡(使用CMDO用于SD存儲卡)將終止任何掛起的或正在進行的編程。這可能會破壞卡上的數(shù)據(jù)格式。預(yù)防是主機的責(zé)任

擦寫保護管理

SPI模式的擦寫保護管理過程與SD模式的擦寫保護管理過程相同。

當(dāng)卡擦除或更改預(yù)定義扇區(qū)列表的寫保護位時,它將處于忙狀態(tài)并使DataOut線保持低電平。

下圖說明了使用和不使用忙信令的“無數(shù)據(jù)”總線事務(wù)。

wKgaomcF6oGAP-p6AABOFd1W64o130.png



審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1688

    瀏覽量

    91174
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2857

    瀏覽量

    87893
  • SD NAND
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    1200
收藏 人收藏

    評論

    相關(guān)推薦

    Arduino程序:實現(xiàn)SD NAND(貼片sd卡)的讀寫功能

      單片機上傳程序的時候,有時候感覺它的rom和 ram有時直接限制了他的使用,之前使用eeprom,和sd卡模塊. []()   然后最近看到了出的SD NAND 就是下面這個
    發(fā)表于 11-07 17:45

    瀚海SD NANDSD 協(xié)議(42)SPI總線時序

    SPI總線時序圖 所有時序圖使用以下原理圖和縮寫: 所有定時值的定義如表所示。 主機在收到卡響應(yīng)后,應(yīng)保持時鐘運行至少NcR時鐘周期。此限制適用于命令和數(shù)據(jù)響應(yīng)令牌。 命令/響應(yīng) 主機對卡的命令響應(yīng)
    的頭像 發(fā)表于 10-21 10:19 ?146次閱讀
    <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>時序

    瀚海SD NANDSD 協(xié)議(40)SPI模式CMD8的操作

    )和b)的AND。 “不匹配”是其他情況。 a) vhs中只有1位設(shè)置為“1”。 b)卡支持主機電源電壓。 響應(yīng) 響應(yīng)令牌有幾種類型。和SD模式一樣,所有的都先傳輸MSB。 在SPI模式下定義了多個
    的頭像 發(fā)表于 10-14 10:00 ?185次閱讀
    <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的操作

    瀚海SD NANDSD 協(xié)議(39)SPI模式 Transaction Packets

    命令格式 所有SD Memory Card命令長度為6字節(jié)。 命令傳輸總是從與命令碼字對應(yīng)的位串的最左位開始。 所有的命令都受到CRC的保護。 命令和參數(shù)如下方第3個圖表所示。 命令分類 SD模式下
    的頭像 發(fā)表于 10-12 11:11 ?215次閱讀
    <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

    瀚海SD NANDSD 協(xié)議(38)寄存器&amp;復(fù)位&amp;開解鎖

    讀取CID/CSD寄存器 類似SD存儲卡協(xié)議(其中寄存器內(nèi)容作為命令響應(yīng)發(fā)送)。在SPI模式下讀取CSD和CID寄存器的內(nèi)容是一個簡單的讀塊事務(wù)。該卡將響應(yīng)一個標(biāo)準(zhǔn)的響應(yīng)令牌,后跟一個16字節(jié)的數(shù)據(jù)
    的頭像 發(fā)表于 10-10 09:28 ?200次閱讀

    瀚海SD NANDSD 協(xié)議(36)SPI模式

    簡介 SPI模式由基于flash的SD存儲卡提供的輔助通信協(xié)議組成。 這種模式是SD存儲卡協(xié)議的一個子集,設(shè)計用于與
    的頭像 發(fā)表于 10-08 10:13 ?213次閱讀
    <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>模式

    瀚海SD NANDSD 協(xié)議(32)1.8V信令的驅(qū)動強度和總線時序

    輸出驅(qū)動強度 4級驅(qū)動強度為了保持主機系統(tǒng)的靈活設(shè)計,輸出驅(qū)動可以看到大范圍的主機負載。 4?種可選驅(qū)動強度使主機系統(tǒng)能夠調(diào)整驅(qū)動強度,以優(yōu)化特定的主機負載。 這使SD卡能夠靈活地支持不同的系統(tǒng)負載
    的頭像 發(fā)表于 09-26 10:31 ?190次閱讀
    <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>(32)1.8V信令的驅(qū)動強度和<b class='flag-5'>總線</b>時序

    瀚海SD NANDSD 協(xié)議(29)硬件接口

    SD存儲卡硬件接口 SD存儲卡有6條通信線路和3條供電線路: CMD:命令是雙向信號。主機和卡驅(qū)動以推拉方式工作。 DAT0-3:數(shù)據(jù)線是雙向信號。主機和卡驅(qū)動在推拉模式下運行 CLK:時鐘是主機到
    的頭像 發(fā)表于 09-24 10:19 ?232次閱讀
    <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)硬件接口

    SD NAND SPI模式:如何實現(xiàn)低功耗運行

    最近,收到客戶反饋,使用我們SD NAND過程中,使用SPI模式,對SD完成操作后,SD沒有進入低功耗模式,未對
    的頭像 發(fā)表于 09-02 11:06 ?363次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b> <b class='flag-5'>SPI</b>模式:如何實現(xiàn)低功耗運行

    瀚海SD NAND應(yīng)用之SD協(xié)議系統(tǒng)功能和概念 1 基礎(chǔ)知識

    (SDXC): 32GB以上,不超過2TB 工作電壓范圍:2.7 V ~ 3.6 V專為只讀和讀寫卡設(shè)計。 總線速度模式(使用4條并行數(shù)據(jù)線) (1)默認速度模式:3.3V信令,頻率最高可達25mhz,最高
    的頭像 發(fā)表于 07-19 11:47 ?475次閱讀
    <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ǔ)知識

    SD NAND、SPI NAND和eMMC的區(qū)別對比分析

    SPI NAND、SD NAND和eMMC是三種不同類型的嵌入式存儲技術(shù),它們各自具有獨特的特點和應(yīng)用場景。以下是這三種存儲技術(shù)的主要區(qū)別:
    的頭像 發(fā)表于 07-02 11:31 ?975次閱讀
    <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ū)別對比分析

    Verilog:【8】基于FPGA實現(xiàn)SD NAND FLASH的SPI協(xié)議讀寫

    的硬件電路連接,下一步就是根據(jù)SD卡的讀寫時序講通信方式初始化為SPI模式,并按照SD協(xié)議進行讀寫
    發(fā)表于 06-21 17:58

    SD NANDSPI NAND的區(qū)別

    SD NANDSPI NAND各有優(yōu)缺點,適用于不同的應(yīng)用場景。SD NAND提供更高的
    的頭像 發(fā)表于 06-04 14:26 ?1705次閱讀

    什么是SD NAND存儲芯片? SD NAND與TF卡的區(qū)別

    什么是SD NAND?它俗稱貼片式T卡,貼片式TF卡,貼片式SD卡,貼片式內(nèi)存卡,貼片式閃存卡,貼片式卡...等等。雖然SD NAND 和T
    的頭像 發(fā)表于 01-06 14:35 ?1609次閱讀
    什么是<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>存儲芯片? <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>與TF卡的區(qū)別

    什么是SD NAND存儲芯片?

    NAND閃存芯片,支持 ECC (Error Correcting Code) 算法和壞塊管理,能有效地降低數(shù)據(jù)丟失的風(fēng)險。   高速讀寫SD NAND
    發(fā)表于 01-05 17:54