一、SDIO簡介
SDIO接口是在SD內存卡接口的基礎上發展起來的接口,SDIO接口兼容以前的SD內存卡,並且可以連接SDIO接口的設備。
SDIO1.0標准定義了兩種類型的SDIO卡:
1.全速的SDIO卡,傳輸率可以超過100Mbps;
2.低速的SDIO卡,支援的時脈速率在0至400KHz之間。
SDIO協議是由SD卡的協議演化升級而來的,很多地方保留了SD卡的讀寫協議,同時SDIO協議又在SD卡協議之上添加了CMD52和CMD53命令。由於這個,SDIO和SD卡規范間的一個重要區別是增加了低速標准,低速卡的目標應用是以最小的硬件開支來支持低速I/O能力。低速卡支持類似調制解調器,條形碼掃描儀和GPS接收器等應用。高速卡支持網卡,電視卡以及組合卡等。組合卡指的是存儲器+SDIO,對組合卡來操作需要全速和4BIT的傳輸模式,這是SDIO1.0標准規定的。
二、SDIO總線
SDIO總線和USB總線類似,SDIO總線也有兩端,其中一端是主機(HOST)端,另一端是設備端(DEVICE),采用HOST- DEVICE這樣的設計是為了簡化DEVICE的設計,所有的通信都是由HOST端發出命令開始的。在DEVICE端只要能解析HOST的命令,就可以同HOST進行通信了,SDIO的HOST可以連接多個DEVICE。
SDIO的信號傳輸模式有SPI、1-bit、4-bit三種。在SPI模式中,第8腳位被當成中斷信號。其它腳位的功能和通信協定與SD記憶卡的標准規范一樣。在SDIO總線定義中,DAT1信號線復用為中斷線。在SDIO的1BIT模式下DAT0用來傳輸數據,DAT1用作中斷線。在SDIO的4BIT模式下DAT0-DAT3用來傳輸數據,其中DAT1復用作中斷線。
SDIO的每個腳位在不同信號模式下的定義如下圖:
Micro SD Card,原名Trans-flash Card(TF卡)。2004年正式更名為Micro SD Card,由SanDisk(閃迪)公司發明。SD卡的管腳定義和Micro SD(TF)卡的管腳定義是不一樣的。
圖二 SD卡和Micro SD(TF)卡的管腳定義
引腳號 |
SD卡 |
TF卡(SD模式) |
TF卡(SPI模式) |
1 |
Data3 |
Data2 |
Rsv |
2 |
Cmd |
Data3 |
Cs |
3 |
Vss |
Cmd |
Di |
4 |
Vdd |
Vdd |
Vdd |
5 |
Clk |
Clk |
Sclk |
6 |
Vss |
Vss |
Vss |
7 |
Data0 |
Data0 |
Do |
8 |
Data1 |
Data1 |
Rsv |
9 |
Data2 |
—— |
—— |
三、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同時會返回一個響應。
參考: https://blog.csdn.net/u011570492/article/details/55214465
wifi-sdio接口:https://www.cnblogs.com/oracleloyal/p/5624339.html