SDIO
SDIO (Input/Output)是一種IO接口規(guī)范。目前,其最主要用途是為帶有SD卡槽的設(shè)備進(jìn)行外設(shè)功能擴(kuò)展。SDIO卡是一種IO外設(shè),而不是Memory。SDIO卡外形與SD卡一致,可直接插入SD卡槽中。
目前市場上有多種SDIO接口的外設(shè),比如SDIO藍(lán)牙,SDIO GPS,SDIO無線網(wǎng)卡,SDIO移動電視卡等。這些卡底部帶有和SD卡外形一致的插頭,可直接插入SDIO卡槽(即為SD卡槽)的智能手機(jī)、PDA中,即可為這些手機(jī)、PDA帶來豐富的擴(kuò)展功能。用戶可根據(jù)實際需要,靈活選擇外設(shè)擴(kuò)展的種類、品牌和性能等級。SDIO已為成為數(shù)碼產(chǎn)品外設(shè)功能擴(kuò)展的標(biāo)準(zhǔn)接口。
SDIO卡插入帶有標(biāo)準(zhǔn)SD卡槽的設(shè)備后,如果該設(shè)備不支持SDIO,SDIO卡不會對SD卡的命令作出響應(yīng),處于非激活狀態(tài),不影響設(shè)備的正常工作;如果該設(shè)備支持SDIO卡,則按照規(guī)范的要求激活SDIO卡。
SDIO卡允許設(shè)備按IO的方式直接對寄存器進(jìn)行訪問,無須執(zhí)行FAT文件結(jié)構(gòu)或數(shù)據(jù)sector等復(fù)雜操作。此外,SDIO卡還能向設(shè)備發(fā)出中斷,這是與SD memory卡的本質(zhì)區(qū)別。SDIO 協(xié)議是由SD卡的協(xié)議演化升級而來的,很多地方保留了SD卡的讀寫協(xié)議,同時SDIO協(xié)議又在SD卡協(xié)議之上添加了CMD52和CMD53命令。由于這個,SDIO和SD卡規(guī)范間的一個重要區(qū)別是增加了低速標(biāo)準(zhǔn),低速卡的目標(biāo)應(yīng)用是以最小的硬件開始來支持低速I/O能力。低速卡支持類似調(diào)制解調(diào)器,條形碼掃描儀和GPS接收器等應(yīng)用。高速卡支持網(wǎng)卡,電視卡還有“組合”卡等,組合卡指的是存儲器+SDIO。
SDIO和SD卡的SPEC間的又一個重要區(qū)別是增加了低速標(biāo)準(zhǔn)。SDIO卡只需要SPI和1位SD傳輸模式。低速卡的目標(biāo)應(yīng)用是以最小的硬件開支來支持低速I/O能力,低速卡支持類似MODEM,條形掃描儀和GPS接收器等應(yīng)用。對組合卡來說,全速和4BIT操作對卡內(nèi)存儲器和SDIO部分都是強(qiáng)制要求的。
在非組合卡的SDIO設(shè)備里,其最高速度要只有達(dá)到25M,而組合卡的最高速度同SD卡的最高速度一樣,要高于25M。
SDIO總線
SDIO總線和USB總線類似,SDIO總線也有兩端,其中一端是主機(jī)(HOST)端,另一端是設(shè)備端(DEVICE),采用HOST- DEVICE這樣的設(shè)計是為了簡化DEVICE的設(shè)計,所有的通信都是由HOST端發(fā)出命令開始的。在DEVICE端只要能解溪HOST的命令,就可以同 HOST進(jìn)行通信了。
SDIO的HOST可以連接多個DEVICE, 這個是同SD的總線一樣的,其中有如下的幾種信號
1. CLK信號:HOST給DEVICE的時鐘信號.
2. CMD信號:雙向的信號,用于傳送命令和反應(yīng)。
3. DAT0-DAT3 信號:四條用于傳送的數(shù)據(jù)線。
4. VDD信號:電源信號。
5. VSS1,VSS2:電源地信號。
在SDIO總線定義中,DAT1信號線復(fù)用為中斷線。在SDIO的1BIT模式下DAT0用來傳輸數(shù)據(jù),DAT1用作中斷線。在SDIO的4BIT模式下DAT0-DAT3用來傳輸數(shù)據(jù),其中DAT1復(fù)用作中斷線。
SDIO命令:
SDIO總線上都是HOST端發(fā)起請求,然后DEVICE端回應(yīng)請求。其中請求和回應(yīng)中會數(shù)據(jù)信息。
1. Command:用于開始傳輸?shù)拿睿怯蒆OST端發(fā)往DEVICE端的。其中命令是通過CMD信號線傳送的。
2. Response:回應(yīng)是DEVICE返回的HOST的命令,作為Command的回應(yīng)。也是通過CMD線傳送的。
3. Data:數(shù)據(jù)是雙向的傳送的??梢栽O(shè)置為1線模式,也可以設(shè)置為4線模式。數(shù)據(jù)是通過DAT0-DAT3信號線傳輸?shù)摹?br> SDIO的每次操作都是由HOST在CMD線上發(fā)起一個CMD,對于有的CMD,DEVICE需要返回Response,有的則不需要。
對于讀命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個握手信號,此時,當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時會跟隨著CRC校驗碼。當(dāng)整個讀傳送完畢后,HOST會再次發(fā)送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應(yīng)。
對于寫命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個握手信號,此時,當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時會跟隨著CRC校驗碼。當(dāng)整個寫傳送完畢后,HOST會再次發(fā)送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應(yīng)。
SDIO的寄存器:
SDIO卡的設(shè)備驅(qū)動80%的任務(wù)就是操作SDIO卡上的有關(guān)寄存器。SDIO卡最多允許有7個功能(function),這個同其功能號是對應(yīng)的(0~7),每個功能都對應(yīng)一個128K字節(jié)大小的寄存器,這個見下面的圖。功能號之所以取值范圍是1~7,而沒有包含0,是因為功能0并不代表真正的功能,而代表CIA寄存器,即Common I/O Area,這個紀(jì)錄著SDIO卡的一些基本信息和特性,并且可以改寫這些寄存器。其中地址0x1000~0x17fff是SDIO卡的CIS區(qū)域,就是基本信息區(qū)域,Common Information Structure。初始化的時候讀取并配對SDIO設(shè)備。
這些寄存器的詳細(xì)分區(qū)已經(jīng)其對應(yīng)的功能,在開發(fā)過程中都是需要仔細(xì)研讀的,這些都在協(xié)議的SPEC中都有詳細(xì)說明,這里就不在羅索了。
基于ARM含SD控制器的SD卡的SDIO模式驅(qū)動解析
SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制。
SD 卡的結(jié)構(gòu)能保證數(shù)字文件傳送的安全性,也很容易重新格式化,因此越來越多的被應(yīng)用的嵌入式系統(tǒng)中。SD卡的使用非常方便,常見的有兩種工作模式:SPI和 SDIO。SPI是串行的工作模式,速度相對較低,但是使用方便,只要MCU含有SPI接口均可使用。SDIO模式,可以最多4線傳輸,因此速度比較快,由于SD卡的普及,越來越多的MCU內(nèi)部集成了SDIO控制器,簡化了我們的工作。本文以三星s3c2410為例介紹。
2. SD卡的協(xié)議
SD卡的控制指令非常強(qiáng)大,支持SPI,SDIO模式,兼容MMC等。而且不同的指令有不同的響應(yīng)(3種),這在我們使用指令是要注意的。
本文轉(zhuǎn)自:http://blog.csdn.net/bluegrey2006/article/details/5908373
聯(lián)系客服