一、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的每個腳位在不同信号模式下的定義如下圖:

引腳号 | SD卡 | TF卡(SD模式) | TF卡(SPI模式) |
1 | Data3 | Data2 | Rsv |
2 | Cmd | Cs | |
3 | Vss | Di | |
4 | Vdd | ||
5 | Clk | Sclk | |
6 | |||
7 | Data0 | Do | |
8 | Data1 | ||
9 | —— |
三、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同時會傳回一個響應。