日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SDIO接口_gmac接口是什么意思

發布時間:2023/12/15 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 SDIO接口_gmac接口是什么意思 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jetbrains全系列IDE穩定放心使用

SDIO,全稱:Secure Digital Input and Output ,即安全數字輸入輸出接口。 SDIO卡是在SD內存卡接口的基礎上發展起來的接口,SDIO接口兼容以前的SD內存卡,并且可以連接SDIO接口的設備,目前根據SDIO協議的SPEC,SDIO接口支持的設備總類有藍牙,網卡,電視卡等。支持三種不同的數據總線模式:1位(默認)、4位和8位。
SDIO協議是由SD卡的協議演化升級而來的,很多地方保留了SD卡的讀寫協議,同時SDIO協議又在SD卡協議之上添加了CMD52和CMD53命令。由于這個,SDIO和SD卡規范間的一個重要區別是增加了低速標準,低速卡的目標應用是以最小的硬件開始來支持低速I/O能力。低速卡支持類似調制解調器,條形碼掃描儀和GPS接收器等應用。高速卡支持網卡,電視卡還有“組合”卡等,組合卡指的是存儲器+SDIO。
SDIO總線和USB總線類似,SDIO總線也有兩端,其中一端是主機(HOST)端,另一端是設備端(DEVICE),采用HOST- DEVICE這樣的設計是為了簡化DEVICE的設計,所有的通信都是由HOST端發出命令開始的。在DEVICE端只要能解溪HOST的命令,就可以同HOST進行通信了。SDIO的HOST可以連接多個DEVICE。

SDIO信號和接口

復位后SDIO_D0用于數據傳輸。初始化后主機可以改變數據總線的寬度(通過ACMD6命令設置)。 如果一個多媒體卡接到了總線上,則SDIO_D0、SDIO_D[3:0]或SDIO_D[7:0]可以用于數據傳輸。

1. CLK信號:HOST給DEVICE的時鐘信號.

  2.  CMD信號:雙向的信號,用于傳送命令和反應。

  3.  DAT0-DAT3 信號:四條用于傳送的數據線。

  4.  VDD信號:電源信號。

  5.  VSS1,VSS2:電源地信號。

在SDIO總線定義中,DAT1信號線復用為中斷線。在SDIO的1BIT模式下DAT0用來傳輸數據,DAT1用作中斷線。在SDIO的4BIT模式下DAT0-DAT3用來傳輸數據,其中DAT1復用作中斷線

SDIO命令流程

SDIO總線上都是HOST端發起請求,然后DEVICE端回應請求。其中請求和回應中會數據信息。

  1. Command:用于開始傳輸的命令,是由HOST端發往DEVICE端的。其中命令是通過CMD信號線傳送的。

  2. Response:回應是DEVICE返回的HOST的命令,作為Command的回應。也是通過CMD線傳送的。

  3. Data:數據是雙向的傳送的。可以設置為1線模式,也可以設置為4線模式。數據是通過DAT0-DAT3信號線傳輸的。

SDIO的每次操作都是由HOST在CMD線上發起一個CMD,對于有的CMD,DEVICE需要返回Response,有的則不需要。

對于讀命令,首先HOST會向DEVICE發送命令,緊接著DEVICE會返回一個握手信號,此時,當HOST收到回應的握手信號后,會將數據放在4位的數據線上,在傳送數據的同時會跟隨著CRC校驗碼。當整個讀傳送完畢后,HOST會再次發送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應。

對于寫命令,首先HOST會向DEVICE發送命令,緊接著DEVICE會返回一個握手信號,此時,當HOST收到回應的握手信號后,會將數據放在4位的數據線上,在傳送數據的同時會跟隨著CRC校驗碼。當整個寫傳送完畢后,HOST會再次發送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應。

SDIO寄存器

SDIO命令寄存器 SDIO_CMD
SDIO電源控制寄存器 SDIO_POWER

該寄存器只有最低2位(PWRCTRL[1:0])有效,其他都是保留位,STM32復位以后,PWRCTRL=00,處于掉電狀態。所以,我們首先要給SDIO上電,設置這兩個位為:11。
SDIO時鐘控制寄存器 SDIO_CLKCR

注意:當SDIO_CK頻率過快時,可能導致SD卡通信失敗,此時,建議降低SDIO_CK試試。
一般位10設置為0 禁止旁路
????????
SDIO參數寄存器 SDIO_ARG

該寄存器用于存儲命令參數。注意:參數必須先于命令寫入????
SDIO命令寄存器 SDIO_CMD

低6位為命令索引,即要發送的命令索引號(如發送CMD1,其值為1,索引就設置為1)。位[7:6],用于設置等待響應位,用于指示CPSM是否需要等待,以及等待類型等。CPSM:即命令通道狀態機,請參考《STM32中文參考手冊》相關章節。命令通道狀態機我們一般都是開啟的,所以位10要設置為1。
SDIO命令響應寄存器 SDIO_RESPCMD

該寄存器只有低6位有效,比較簡單,用于存儲最后收到的命令響應中的命令索引。如果傳輸的命令響應不包含命令索引,則該寄存器的內容不可預知。
SDIO命令響應1~4寄存器 SDIO_RESPx,x=1~4

命令響應寄存器組,總共包含4個32位寄存器組成,用于存放接收到的卡響應部分的信息。如果收到短響應,則數據存放在SDIO_RESP1寄存器里面,其他三個寄存器沒有用到。而如果收到長響應,則依次存放在SDIO_RESP1~SDIO_RESP4里面
SDIO數據定時器寄存器 SDIO_DTIMER

寄存器用于存儲以卡總線時鐘(SDIO_CK)為周期的數據超時時間,一個計數器將從SDIO_DTIMER寄存器加載數值,并在數據通道狀態機(DPSM)進入Wait_R或繁忙狀態時進行遞減計數,當DPSM處在這些狀態時,如果計數器減為0,則設置超時標志。DPSM:即數據通道狀態機,類似CPSM,詳見《STM32中文參考手冊》相關章節。
注意:在寫入數據控制寄存器(SDIO_DCTRL),進行數據傳輸之前,須先寫入該寄存器(SDIO_DTIMER)和數據長度寄存器(SDIO_DLEN)!?
SDIO數據長度寄存器 SDIO_DLEN

該寄存器低25位有效,用于設置需要傳輸的數據字節長度。對于塊數據傳輸,該寄存器的數值,必須是數據塊長度(通過SDIO_DCTRL設置)的倍數。
即:假定數據塊大小為512字節,那么SDIO_DLEN的設置,必須是512的整數倍,最大可以設置讀取65535個數據塊。
SDIO數據控制寄存器 SDIO_DCTRL

該寄存器,用于控制數據通道狀態機(DPSM),包括數據傳輸使能、傳輸方向、傳輸模式、DMA使能、數據塊長度等信息的設置。
我們需要根據自己的實際情況,來配置該寄存器,才可正常實現數據收發。
SDIO狀態寄存器 SDIO_STA

另外,SDIO的清除中斷寄存器(SDIO_ICR)和中斷屏蔽寄存器(SDIO_MASK),這兩個寄存器和狀態寄存器(SDIO_STA)每個位的定義都相同,只是功能各有不同。請參考著學習。
狀態寄存器可以用來查詢SDIO控制器的當前狀態,以便處理各種事務。比如SDIO_STA的位2表示命令響應超時,說明SDIO的命令響應出了問題。我們通過設置SDIO_ICR的位2則可以清除這個超時標志。

卡檢測

檢測卡的插入,當卡插入時,某管腳電平變化,讀取卡控制器卡檢測寄存器判斷卡是否插入。

卡識別

識別卡類型;即 SD, MMC 或 SDIO。
a) 首先發送 CMD5。如果收到一個響應,那么該卡是 SDIO。
b) 否則發送 ACMD41;如果收到一個響應,那么該卡是 SD。
c) 否則,該卡是 MMC。

卡常用命令

對不同的卡類型發送不同的卡信息交互序列:
a) SD 卡 – 發送 CMD0, ACMD41, CMD2, CMD3。
b) SDIO – 發送 CMD5;如果 function 個數合法,再發送 CMD3。對于 SDIO 存
儲部分,遵循和 SD 卡相同的命令。
c) MMC – 發送 CMD0, CMD1, CMD2, CMD3。

不同的SDd卡,主控根據其功能,支持不同的命令集 如下:

Class0 :(卡的識別、初始化等基本命令集)

CMD0:復位SD 卡.

CMD1:讀OCR寄存器.

CMD9:讀CSD寄存器.

CMD10:讀CID寄存器.

CMD12:停止讀多塊時的數據傳輸

CMD13:讀 Card_Status 寄存器

Class2 (讀卡命令集):

CMD16:設置塊的長度

CMD17:讀單塊.

CMD18:讀多塊,直至主機發送CMD12為止 .

Class4(寫卡命令集) :

CMD24:寫單塊.

CMD25:寫多塊.

CMD27:寫CSD寄存器 .

Class5 (擦除卡命令集):

CMD32:設置擦除塊的起始地址.

CMD33:設置擦除塊的終止地址.

CMD38: 擦除所選擇的塊.

Class6(寫保護命令集):

CMD28:設置寫保護塊的地址.

CMD29:擦除寫保護塊的地址.

CMD30: Ask the card for the status of the write protection bits

class7:卡的鎖定,解鎖功能命令集

class8:申請特定命令集 。

class10 -11 :保留

參考:https://blog.csdn.net/qq_25538145/article/details/77252933

https://blog.csdn.net/g_salamander/article/details/14167055?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

https://blog.csdn.net/FA99999/article/details/61196435?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3

https://www.cnblogs.com/aaronLinux/p/7298327.html

總結

以上是生活随笔為你收集整理的SDIO接口_gmac接口是什么意思的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。