色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

SD NAND 的 SDIO在STM32上的應用詳解(上篇)

深圳市雷龍發展有限公司 ? 2022-11-15 17:08 ? 次閱讀

目錄

上篇:

一.SDIO簡介

二.SD卡簡介/內部結構

1.SD卡/SD NAND引腳

2.SD卡寄存器

3.FLASH存儲器

三.SDIO總線拓撲

中篇:

四.SDIO功能框圖(重點)

1.SDIO適配器

2.控制單元

3.命令通道(重點)

4.數據通道

五.命令與響應

1.命令格式

2.命令類型

3.命令描述

4.響應類型

六.SD卡/SD NAND功能描述(重重點)

1.操作條件確認

2.卡識別模式

3.數據傳輸模式

下篇:

七.SDIO外設結構體

1.SDIO初始化結構體

2.SDIO命令初始化結構體

3.SDIO數據初始化結構體

八.SD卡讀寫測試實驗

1.硬件設計

2.代碼講解

3.實驗結果

一.SDIO簡介

SDIO (Secure Digital Input and Output)全稱安全數字輸入/輸出接口,在AHB外設總線和多媒體卡(MMC)、SD存儲卡、SDIO卡和CE-ATA設備間提供了操作接口。

多媒體卡(MMC)

MMC(MultiMedia Card)卡由西門子公司和首推CF的SanDisk于1997年推出多媒體卡(MMC)是一種小型(24x32或18x1.4mm)可擦除固態存儲卡,其全稱為Multi-Media Card,特別應用于移動電話和數字影像及其他移動終端中。

SD卡:(Secure Digital Memory Card)

SD卡是一種基于半導體快閃記憶器的新一代記憶設備。SD卡由日本松下東芝及美國SanDisk公司于1999年8月共同開發研制。
SD卡數據傳送和物理規范由MMC發展而來,大小和MMC差不多,但是容納更大容量的存貯單元。SD卡與MMC卡保持著向上兼容,也就是說,MMC可以被新的SD設備存取,兼容性則取決于應用軟件,但SD卡卻不可以被MMC設備存取。**

應用:SD卡的結構能保證數字文件傳送的安全性,也很容易重新格式化,所以有著廣泛的應用領域,音樂、電影、新聞等多媒體文件都可以方便地保存到SD卡中。因此不少數碼相機也開始支持SD卡。

SD I/O 卡

本身不是用于存儲的卡,它是指利用 SDIO 傳輸協議的一種外設。比如 Wi-Fi Card,它主要是提供 Wi-Fi 功能,有些 Wi-Fi 模塊是使用串口或者 SPI 接口進行通信的,但 Wi-Fi SDIO Card 是使用 SDIO 接口進行通信的,一般設計 SD I/O 卡是可以插入到 SD 的插槽

CE-ATA設備

CE-ATA 一種基于為了節省接口IO數量,專為輕薄 筆記本硬盤 設計的筆記本硬盤高速通訊接口。 一種使用MMC接口界面,ATA指令集的筆記本電腦 硬盤接口

poYBAGNzN42AcmqnAAHrs5DQNw4424.png

結論:MMC卡是SD卡的前身,也就是說SD將取代MMC卡的地位,MMC卡也用的越來越少,所以我們后面只講SD卡.

SDIO的主要功能:
(關于不是SD卡的就不介紹了)
1.與SD存儲卡規格版本2.0全兼容(向前兼容)
2.數據和命令輸出使能信號,用于控制外部雙向驅動器

SDIO外設掛載在STM32的AHB總線。

pYYBAGNzN76AKNLEAAIaf8ihjIo759.png


這樣一來,STM32(主機),就可以通過AHB總線,控制SDIO外設的寄存器進而控制SDIO外設讀/寫SD卡,SDIO外設向SD卡傳輸數據,或者向SD卡接收數據可以使用DMA進行傳輸(這樣可以省去很多繁瑣的步驟后面再講)

當前版本的SDIO在同一時間里只能支持一個SD卡(這是ST公司限制的)

二.SD卡簡介/內部結構

SD卡是一種基于半導體快閃記憶器的新一代記憶設備。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發研制。
SD卡數據傳送和物理規范由MMC發展而來,大小和MMC差不多,但是容納更大容量的存貯單元。SD卡與MMC卡保持著向上兼容,也就是說,MMC可以被新的SD設備存取,兼容性則取決于應用軟件,但SD卡卻不可以被MMC設備存取。**

應用:SD卡的結構能保證數字文件傳送的安全性,也很容易重新格式化,所以有著廣泛的應用領域,音樂、電影、新聞等多媒體文件都可以方便地保存到SD卡中。因此不少數碼相機也開始支持SD卡。

SD卡采用的是采用了NandFlash存儲器,稍后解釋NandFlash與NorFlash的區別。

pYYBAGNzOBaAHBMqAAC_Cknu150506.png


poYBAGNzOB6AJ-m_AAQAGUMH8iU249.pngpYYBAGNzOCmAYXT3AA6Kpz3aMOU060.png

1.卡容量

標準容量 SD 卡,支持最大 2GB 的容量。所有的物理規格文檔都會定義這種。

高容量 SD 卡(SDHC),支持超過 2GB 的容量。本文檔解釋的規格最大為 32GB 容量。只有 SDIO支持 2.0 協議才能夠識別這種高容量 SD 卡(而SDIO外設正好最高支持到2.0協議)。

STM32F10x 系列控制器只支持 SD 卡規范版本 2.0,即只支持標準容量 SD 和高容量SDHC 標準卡,不支持超大容量 (大于32GB)SDXC 標準卡,所以STM32可以支持的最高卡容量是 32GB。

2.速度等級
我們定義了 4 個速度等級,來表示卡的最小速率:(實際上目前最高 Class10)
● Class 0 – 這種卡不定義具體性能,代表了這個規范出來之前的所有卡
● Class 2 – 最小 2MB/s 的性能
● Class 4 – 最小 4MB/s 的性能
● Class 6 – 最小 6MB/s 的性能
● Class 8 – 最小 8MB/s 的性能
● Class 10 – 最小 10MB/s 的性

SD卡的內部構造:

pYYBAGNzODiACqRMAAJy3JpGRqY347.png

電源檢測單元保證 SD 卡工作在合適的電壓下,如出現掉電或上狀態時,它會使控制單元和存儲單元接口復位;

1.SD卡/SD NAND引腳

1)SD卡引腳

pYYBAGNzOFiAQUxmAAD2PpCc630814.pngpYYBAGNzOGGADguLAAH0lOx9V8U985.png


SD 卡使用 9-pin 接口通信,其中 3 根電源線、1 根時鐘線、1 根命令線和 4 根數據線,具體說明如下:

CLK:時鐘線,由 SDIO 主機產生,即由 STM32 控制器輸出,最高 25MB/s 的接口速度(使用4條并行數據線);

CMD:命令控制線,SDIO 主機通過該線發送命令控制 SD 卡,如果命令要求 SD 卡提供應答(響應),SD 卡也是通過該線傳輸應答信息(即命令響應都是通過CMD命令控制線來串行傳輸的);

D0-3:數據線,傳輸讀寫數據;SD 卡可將 D0 拉低表示忙狀態; VDD、VSS1、VSS2:電源和地信號。

2.SD卡寄存器

卡控制單元控制 SD 卡的運行狀態,它包括有 8 個寄存器,接口驅動器控制 SD 卡引腳的輸入輸出

SD 卡總共有 8 個寄存器,用于設定或表示 SD 卡信息,這些寄存器只能通過對應的命令訪問(STM32主機通過驅動SDIO外設通過CMD命令線向從機SD卡發送命令),SDIO 定義了 64 個命令,每個命令都有特殊意義,可以實現某一特定功能,SD 卡接收到命令后,根據命令要求對 SD 卡內部寄存器進行修改,程序控制中只需要發送組合命令就可以實現 SD 卡的控制以及讀寫操作。

poYBAGNzOHKAZHjUAAQvLgVgJME127.png

1.CID 寄存器(重點了解)
卡識別(CID)寄存器是一個 128 位的寄存器。包含了卡的識別信息,用于卡識別解析(具有唯一性)。每個讀/寫卡都有一個特殊的識別號。CID 寄存器的結構如下:

poYBAGNzOHqAa2_4AAGGAtGtjvc450.png

2.RCA 寄存器(重點了解)
可寫的 16 位SD卡相對地址寄存器,在SD卡的初始化期間,由SD卡向外發布的卡地址。這個地址用于卡初始化進程之后,主機同卡之間的交互尋址。(在主機向SD卡讀寫數據時,就是發送CMD7選擇/取消選擇 RCA 地址卡,就是靠RCA來確定主機與哪張卡通信)
為啥不用上面的CID呢 ?
答:因為它太長了128位呢,僅此而已

3.CSD 寄存器(2.0)
CSD V2.0 只適用于高容量

poYBAGNzOIOAcvKMAAbanRPPcRY193.png

4.SCR 寄存器
作為 CSD 寄存器的補充,另一個配置寄存器稱為 SD 卡配置寄存器(SCR)。SCR 提供了 SD 卡的特殊功能的信息。SCR 是一個 64bit 的寄存器,這個寄存器應該由 SD 廠家設置。

poYBAGNzOI6AeMMzAAHOl8BnimQ723.png

5.OCR 寄存器(重點了解)

32 位的操作條件寄存器(OCR)存儲了卡的 VDD 電壓描述。另外,還包括了狀態信息位。如果卡的上電程序完成,一個狀態位會被設置。寄存器還包括另一個狀態位,在設置上電狀態位后,用來表明卡的容量狀態。

Bit31 – 卡上電狀態位(busy),這個狀態位在卡的上電流程完成后設置。
Bit30 – 卡容量狀態位(CCS),如果是高容量卡,設置為 1,如果是標準卡,設置為 0。

卡容量狀態位只有在上電流程完成,且 Bit31 設置為 1 之后才有效。主機可以讀取這個狀態位來判斷卡的種類

上面這些寄存器的只要了解即可,后面用的不多,等后面用到再講這樣就能有個更深刻的認識。

3.FLASH存儲器

1)FLASH簡介
FLSAH 存儲器又稱閃存,它與 EEPROM 都是掉電后數據不丟失的存儲器,但 FLASH存儲器容量普遍大于 EEPROM,現在基本取代了它的地位。我們生活中常用的 U 盤、SD卡、SSD 固態硬盤以及我們STM32 芯片內部用于存儲程序的設備,都是 FLASH 類型的存儲器。在存儲控制上,最主要的區別是 FLASH 芯片只能一大片一大片地擦寫,而在“I2C章節”中我們了解到 EEPROM 可以單個字節擦寫。

2)NOR FLASH 和 NAND FLASH的區別
FLASH 存儲器又分為 NOR FLASH 和 NAND FLASH

pYYBAGNzOOCACbcJAALPZiZAGOM982.png

NOR 與 NAND 的共性是在數據寫入前都需要有擦除操作,而擦除操作一般是以“扇區/塊”為單位的。

而 NOR 與 NAND 特性的差別,主要是由于其內部“地址/數據線”是否分開導致的。由于 NOR 的地址線和數據線分開,它可以按“字節”讀寫數據,符合 CPU 的指令譯碼執行要求,而由于 NAND 的數據和地址線共用,只能按“塊”來讀寫數據,所以不符合CPU指令譯碼要求。

所以NOR FLASH 一般應用在代碼存儲的場合,如嵌入式控制器內部的程序存儲空間。

而 NAND FLASH 一般應用在大數據量存儲的場合,包括SD 卡、U 盤以及固態硬盤等,都是 NAND FLASH 類型的。

總結一句話:NOR FLASH貴而精,NAND FLASH大而便宜

所以我們的SD卡用 NAND FLASH 作為存儲單元

存儲單元是存儲數據部件,存儲單元通過存儲單元接口與卡控制
單元進行數據傳輸

三.SDIO總線拓撲

總線上的通信是通過傳送命令和數據實現。
在SD卡總線上的基本操作是命令/響應結構(主機發送命令給SD卡,SD卡是否進行響應,主機發生命令和SD卡響應都是通過命令線(CMD)傳輸的(有一個響應例外等下說)),這樣的總線操作在命令或總線機制下實現信息交換。

在SD/SDIO存儲器卡上傳送的數據是以數據塊的形式傳輸;在MMC上傳送的數據是以數據塊或數據流的形式傳輸;

pYYBAGNzOfmAJx0LAAHS2qWukGE839.png


SD 卡總線有一個主機,多個SD卡,時鐘線(CLK),電源(VDD)和地信號(VSS)是所以卡共用。命令線(CMD)和數據線(DAT0-3)信號是根據每張卡的。

理論上主機可以與多張卡進行數據交互,雖然可以共用總線,但不推薦多卡槽共用總線信號,要求一個單獨 SD 總線應該連接一個單獨的 SD 卡。
即STM32只能接一張SD卡

SDIO 不管是從主機控制器向 SD 卡傳輸,還是 SD 卡向主機控制器傳輸都只以 CLK 時鐘線的上升沿為有效。SD 卡操作過程會使用兩種不同頻率的時鐘同步數據:
識別卡階段:時鐘頻率 FOD,最高為 400kHz
數據傳輸模式:時鐘頻率FPP,默認最高為 25MHz
如果通過相關寄存器配置使 SDIO 工作在高速模式,此時數據
傳輸模式最高頻率為 50MHz

為什么卡識別階段的頻率低?
卡識別的時候為了兼容識別不同版本的SD卡

SD 總線通信是基于命令和數據傳輸的。通訊由一個起始位(“0”),由一個停止位(“1”)終止,SD 通信一般是主機發送一個命令(Command),從設備在接收到命令后作出響應(Response),如有需要會有數據(Data)傳輸參與。

pYYBAGNzOgGAEUItAARQeQO3254240.png


SD 數據是以塊形式傳輸的,SDHC 卡數據塊長度一般為 512 字節,數據可以從主機到卡,也可以是從卡到主機。數據塊需要 CRC 位來校驗數據。CRC 位由 SD卡系統硬件生成。STM32 控制器可以控制使用單線或 4 線傳輸(D0-D3)。

poYBAGNzOgyAK4_AAAM4mRh5yz4182.pngpYYBAGNzOhCAaZVHAAJ_k_d-fCk296.png


SD 數據傳輸支持單塊和多塊讀寫,它們分別對應不同的操作命令,多塊寫入還需要使用命令來停止整個寫入操作。數據寫入前需要檢測 SD 卡忙狀態,因為 SD 卡在接收到數據后存儲到存儲區(NandFlash)過程需要一定操作時間。SD 卡忙狀態通過把 D0 線拉低表示。

數據傳輸:

使用 4 數據線(D0~D3)傳輸時,每次傳輸 4bit 數據,每根數據線都必須有起始位、終止位以及CRC 位,CRC 位每根數據線都要分別檢查,并把檢查結果匯總然后在數據傳輸完后通過D0 線反饋給主機。
SD 卡有兩種數據包格式。

1.常規數據(8bit 寬):常規數據發送是先低字節,再高字節的順序,但是每個字節則是先高位后低位

pYYBAGNzOhyABP2VAAKDfXyZEKI082.png


數據位在四線順序排列發送,DAT3 數據線發較高位,DAT0 數據線發較低位。

2.寬位數據(SD 存儲寄存器):寬位數據從高位開始傳輸。

對 SD 卡而言寬位數據包發送方式是針對 SD 卡 SSR(SD 狀態)寄存器內容發送的,SSR 寄存器總共有 512bit,在主機發出ACMD13 命令后(當然在發送ACMD13 之前需要發送CMD55 ) SD 卡將 SSR 寄存器內容通過數據線發送給主機。

poYBAGNzPgSAYWrDAAFe-DsCFgA727.png

【本文轉載自CSDN,作者:rivencode】

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50886

    瀏覽量

    424158
  • 貼片
    +關注

    關注

    10

    文章

    875

    瀏覽量

    36943
  • SDIO接口
    +關注

    關注

    0

    文章

    8

    瀏覽量

    2312
收藏 人收藏

    評論

    相關推薦

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導致系統穩定性和數據完整性受損。我們將STM32F407與
    的頭像 發表于 12-11 10:51 ?356次閱讀
    <b class='flag-5'>STM32</b>F407 MCU使用<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>?不斷電初始化失效解決方案

    關于SD NAND 的概述

    SD NAND是一種小型、可表面貼裝的存儲解決方案,適用于各種嵌入式系統和便攜式設備。SD NAND技術是近年來存儲領域內的一項創新,它結
    發表于 12-06 11:22

    SD NAND 概述

    SD NAND是一種小型、可表面貼裝的存儲解決方案,適用于各種嵌入式系統和便攜式設備。SD NAND技術是近年來存儲領域內的一項創新,它結
    的頭像 發表于 12-06 11:21 ?185次閱讀

    SD NAND技術簡介

    SD NAND是一種基于NAND Flash技術的嵌入式存儲解決方案,具備SD卡協議兼容性。它結合了NAND存儲的高密度特性和
    的頭像 發表于 12-05 15:32 ?179次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>技術簡介

    SD NAND大數據時代的應用場景

    SD NAND是一種結合了SD卡接口和NAND閃存技術的存儲解決方案。它通常指的是使用NAND閃存芯片并通過
    的頭像 發表于 10-29 15:49 ?244次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>在</b>大數據時代的應用場景

    SD NAND智能眼鏡的怎么應用

    接口和NAND閃存技術的存儲解決方案,它通常被用在需要高容量、小尺寸和低功耗存儲的設備智能眼鏡的應用中,SD NAND可以扮演以下角色
    的頭像 發表于 09-14 09:55 ?362次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>在</b>智能眼鏡<b class='flag-5'>上</b>的怎么應用

    MK米客方德SD NANDSTM32平臺的存儲方案

    STM32平臺SD卡的重要性不言而喻,它為嵌入式系統提供了必要的數據存儲和讀寫能力。MK米客方德SD作為市場上的一種選擇,因其耐用性、
    的頭像 發表于 08-26 10:23 ?692次閱讀
    MK米客方德<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>:<b class='flag-5'>STM32</b>平臺<b class='flag-5'>上</b>的存儲方案

    SD NAND芯片的測評與使用 基于卷積神經網絡的數字識別

    和32gbit的SD NAND FLASH芯片以及一份測試板卡。 簡介: 根據官方文檔的描述,這款芯片采用LGA-8封裝,具有標準SDIO接口,并同時兼容SPI和SD接口。因此,可以直
    的頭像 發表于 07-24 18:08 ?1426次閱讀

    淺談SD NAND

    SD NAND內部主要由NAND Flash和Flash Controller組成,大多數人把NAND FLASH 叫做閃存,是一種長壽命的非易失性的存儲器,即使
    的頭像 發表于 06-25 14:20 ?904次閱讀
    淺談<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    SD NAND和SPI NAND的區別

    SD NAND和SPI NAND各有優缺點,適用于不同的應用場景。SD NAND提供更高的讀寫速度和大容量存儲,適合需要高性能和大容量存儲的
    的頭像 發表于 06-04 14:26 ?2083次閱讀

    NAND Flash(貼片式TF卡)存儲新突破,基礎示例

    需求也日益增長。在這個信息爆炸的時代,一款高效、穩定、便攜的存儲設備顯得尤為重要。新品SD卡——SD NAND,應運而生,為我們的數據存儲帶來了新的革命。   
    發表于 05-21 17:13

    STM32F412使用SD卡,SDIO,FATFS系統,SD卡掛載文件系統失敗的原因?

    求助,STM32F412RET6 使用SD卡,使用SDIO接口,FATFS系統,SD卡掛載文件系統失敗。返回錯誤代碼3: 網上查到信息 \"FR_NOT_READY:物理驅動沒有工作
    發表于 04-11 07:15

    stm32 CubeMx 怎么實現SD卡/sd nand FATFS讀寫測試

    本實驗僅用于記錄和分享技術經驗若涉及侵權請聯系我刪除。   stm32 CubeMx 實現SD卡/sd nand FATFS讀寫測試。   材料:s
    發表于 01-09 17:37

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

    什么是SD NAND?它俗稱貼片式T卡,貼片式TF卡,貼片式SD卡,貼片式內存卡,貼片式閃存卡,貼片式卡...等等。雖然SD NAND 和T
    的頭像 發表于 01-06 14:35 ?1812次閱讀
    什么是<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卡的區別

    什么是SD NAND存儲芯片?

    前言   大家好,我們一般STM32項目開發中或者在其他嵌入式開發中,經常會用到存儲芯片存儲數據。今天我和大家來介紹一款存儲芯片,我這里采用(雷龍) CS創世 SD NAND
    發表于 01-05 17:54
    主站蜘蛛池模板: 精品人妻一区二区三区视频53 | 狠狠狠狠狠狠干| 迅雷哥在线观看高清| 精品午夜寂寞影院在线观看| 18禁三级黄| 日本无码人妻丰满熟妇5G影院 | 亚洲精品天堂在线| 免费国产在线观看| 国产精品久久久久久人妻精品蜜桃| 亚洲 自拍 偷拍 另类综合图区 | 与邻居换娶妻子2在线观看| 嫩草影院永久在线一二三四| 丰满少妇69激情啪啪无码| 亚洲色大成网站www久久九九| 男人扒开添女人屁股| 国产精品69人妻无码久久久| 一本之道高清在线观看免费| 日本阿v直播在线| 精品夜夜澡人妻无码AV| 成人在线视频网站| 伊人久久综在合线亚洲| 色婷婷亚洲五月| 麻豆免费观看高清完整视频在线 | 精品国产美女AV久久久久 | 国产视频精品在线偷拍| 5g天天奭视频| 亚洲成人99| 日本xxxxx按摩19| 快播萝莉影院| 国产中文字幕一区| 俄罗斯破处| 99精品观看| 伊人久久天堂| 亚洲AV午夜精品麻豆AV| 青青草原成人| 美女扒开屁股让男人桶| 国产在线精品亚洲一品区| 成人 迅雷下载| 99视频精品国产在线视频| 亚洲一级毛片免费在线观看| 神马电影我不卡4k手机在线观看|