一文搞懂SDIO
SDIO總線簡介
SDIO(Secure Digital Input and Output),即安全數字輸入輸出接口。它是在SD卡接口的基礎上發展而來,它可以兼容之前的SD卡,并可以連接SDIO接口設備,比如:藍牙、WIFI、GPS等。
什么是SDIO卡
SDIO卡,是使用SD總線以及SD指令的IO設備。SDIO卡的外形和接口和SD卡是兼容的,但是實現的不只是存儲功能,還能實現其它的功能,如藍牙、WIFI等。比如下面的就是一個實現了WIFI功能,而且外形和接口與SD卡兼容的SDIO卡。
什么是組合卡
組合卡指帶有memory(存儲器)的SDIO卡(memory+SDIO)。
SDIO卡類型
全速卡: 傳輸速率超過100Mbps,時鐘范圍0-25MHz。
低速卡:時鐘范圍0-400KHz。
低速卡支持類似調制解調器, 條形碼掃描儀和GPS接收器等應用。高速卡支持網卡,組合卡等。
SDIO卡模式
SDIO卡有三種總線模式:
-
SPI模式
-
1-bit SD傳輸模式
-
4-bit SD傳輸模式
SDIO接口定義
-
CLK: HOST給DEVICE的時鐘信號
-
CMD: 雙向的信號,用于傳送命令和應答
-
DAT0-DAT3: 用于傳輸的數據線
不同模式下的引腳定義:
引腳 | 4bit模式 | 1bit模式 | SPI模式 | |||
1 | DAT3 | 數據線3 | CD | 卡偵測 | CS | 片選 |
2 | CMD | 命令/應答 | CMD | 命令/應答 | DI | 串行輸入(MOSI) |
3 | VSS1 | 地線 | VSS1 | 地線 | VSS | 地線 |
4 | VDD | 電源線 | VDD | 電源線 | VDD | 電源線 |
5 | CLK | 時鐘線 | CLK | 時鐘線 | CLK | SPI時鐘 |
6 | VSS2 | 地線 | VSS2 | 地線 | VSS | 地線 |
7 | DAT0 | 數據線0 | DAT0 | 數據線0 | DO | 串行輸出(MISO) |
8 | DAT1 | 數據線1/中斷 | NC/IRQ | 中斷 | NC/IRQ | 中斷 |
9 | DAT2 | 數據線2 | NC | NC | ||
SDIO命令
SDIO總線上的設置和控制都是通過命令來實現,SDIO總線上都是HOST端發起請求,然后DEVICE端回應請求,其中請求和應答中會包含數據信息:
Command: 用于開始傳輸的命令,是由HOST端發往DEVICE端的,其中命令是通過CMD信號線傳送的。
Response: DEVICE返回的應答。也是通過CMD線傳送的;
Data: 數據是雙向傳送的。可以設置為1線模式,也可以設置為4線模式。數據是通過DAT0-DAT3信號線傳輸的。
命令格式:
-
Start: 起始位,值固定為0。
-
Transmission:傳輸方向,值為1表示host發出, 0則表示device發出。
-
Command Index: 代表命令索引,例如CMD0 這項值為0 ,CMD5則這項值為5,它的范圍是0-63。
-
Argument:CMD所附帶的一些參數,不同的CMD,這32bit每一位所代表的含義是不一樣的。
-
CRC7:7位CRC校驗值
-
End:結束位,值固定為1
應答格式:
SD內存卡支持五種response type:R1,R1b,R2,R3,R6
SDIO卡額外支持2種response type:R4,R5
- R1(正常應答命令)
- R2(CID,CSD寄存器)
- R3(OCR寄存器)
- R6(Published RCA應答)
- R7(卡接口條件)
- R4
用來回復CMD5,該CMD是給SDIO card專用的,用來查詢card中支持的電壓域。
- R5
用來回復CMD52,該CMD是給SDIO card專用的。
不同的外設使用的命令會有差異,具體命令要查看Spec。
更多詳細命令介紹請參考:
《Physical Layer Simplified Specification Version8.00》
《SDIO_Simplified_Specification_Ver3.00》
總結
SDIO卡和SD存儲卡的命令上是有差異的,里面的寄存器也是有差異的。所以具體命令需要查看官方文檔,對于初始化流程,哪條命令對應哪個應答等都有詳細的描述。
總結
- 上一篇: css display: grid属性g
- 下一篇: hadoop fsck命令分析 + 源码