<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux SDIO總線驅(qū)動(dòng)

          Linux SDIO總線驅(qū)動(dòng)

          作者: 時(shí)間:2016-12-15 來(lái)源:網(wǎng)絡(luò) 收藏
          SDIO卡

          SDIO卡是在SD內(nèi)存卡接口的基礎(chǔ)上發(fā)展起來(lái)的接口,SDIO接口兼容以前的SD內(nèi)存卡,并且可以連接SDIO接口的設(shè)備,目前根據(jù)SDIO協(xié)議的SPEC,SDIO接口支持的設(shè)備總類有藍(lán)牙,網(wǎng)卡,電視卡等。

          本文引用地址:http://www.ex-cimer.com/article/201612/330449.htm

          SDIO協(xié)議是由SD卡的協(xié)議演化升級(jí)而來(lái)的,很多地方保留了SD卡的讀寫協(xié)議,同時(shí)SDIO協(xié)議又在SD卡協(xié)議之上添加了CMD52和CMD53命令。由于這個(gè),SDIO和SD卡規(guī)范間的一個(gè)重要區(qū)別是增加了低速標(biāo)準(zhǔn),低速卡的目標(biāo)應(yīng)用是以最小的硬件開(kāi)始來(lái)支持低速I/O能力。低速卡支持類似調(diào)制解調(diào)器,條形碼掃描儀和GPS接收器等應(yīng)用。高速卡支持網(wǎng)卡,電視卡還有“組合”卡等,組合卡指的是存儲(chǔ)器+SDIO。

          SDIO和SD卡的SPEC間的又一個(gè)重要區(qū)別是增加了低速標(biāo)準(zhǔn)。SDIO卡只需要SPI和1位SD傳輸模式。低速卡的目標(biāo)應(yīng)用是以最小的硬件開(kāi)支來(lái)支持低速I/O能力,低速卡支持類似MODEM,條形掃描儀和GPS接收器等應(yīng)用。對(duì)組合卡來(lái)說(shuō),全速和4BIT操作對(duì)卡內(nèi)存儲(chǔ)器和SDIO部分都是強(qiáng)制要求的。

          在非組合卡的SDIO設(shè)備里,其最高速度要只有達(dá)到25M,而組合卡的最高速度同SD卡的最高速度一樣,要高于25M。

          SDIO總線

          SDIO總線和USB總線類似,SDIO總線也有兩端,其中一端是主機(jī)(HOST)端,另一端是設(shè)備端(DEVICE),采用HOST- DEVICE這樣的設(shè)計(jì)是為了簡(jiǎn)化DEVICE的設(shè)計(jì),所有的通信都是由HOST端發(fā)出命令開(kāi)始的。在DEVICE端只要能解溪HOST的命令,就可以同HOST進(jìn)行通信了。

          SDIO的HOST可以連接多個(gè)DEVICE,如下圖所示:

          這個(gè)是同SD的總線一樣的,其中有如下的幾種信號(hào)

          1.CLK信號(hào):HOST給DEVICE的時(shí)鐘信號(hào).

          2.CMD信號(hào):雙向的信號(hào),用于傳送命令和反應(yīng)。

          3.DAT0-DAT3信號(hào):四條用于傳送的數(shù)據(jù)線。

          4.VDD信號(hào):電源信號(hào)。

          5.VSS1,VSS2:電源地信號(hào)。

          在SDIO總線定義中,DAT1信號(hào)線復(fù)用為中斷線。在SDIO的1BIT模式下DAT0用來(lái)傳輸數(shù)據(jù),DAT1用作中斷線。在SDIO的4BIT模式下DAT0-DAT3用來(lái)傳輸數(shù)據(jù),其中DAT1復(fù)用作中斷線。

          SDIO命令:

          SDIO總線上都是HOST端發(fā)起請(qǐng)求,然后DEVICE端回應(yīng)請(qǐng)求。其中請(qǐng)求和回應(yīng)中會(huì)數(shù)據(jù)信息。

          1.Command:用于開(kāi)始傳輸?shù)拿睿怯蒆OST端發(fā)往DEVICE端的。其中命令是通過(guò)CMD信號(hào)線傳送的。

          2.Response:回應(yīng)是DEVICE返回的HOST的命令,作為Command的回應(yīng)。也是通過(guò)

          CMD線傳送的。

          3.Data:數(shù)據(jù)是雙向的傳送的??梢栽O(shè)置為1線模式,也可以設(shè)置為4線模式。數(shù)據(jù)是通過(guò)DAT0-DAT3信號(hào)線傳輸?shù)摹?/p>

          SDIO的每次操作都是由HOST在CMD線上發(fā)起一個(gè)CMD,對(duì)于有的CMD,DEVICE需要返回Response,有的則不需要。

          對(duì)于讀命令,首先HOST會(huì)向DEVICE發(fā)送命令,緊接著DEVICE會(huì)返回一個(gè)握手信號(hào),此時(shí),當(dāng)HOST收到回應(yīng)的握手信號(hào)后,會(huì)將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時(shí)會(huì)跟隨著CRC校驗(yàn)碼。當(dāng)整個(gè)讀傳送完畢后,HOST會(huì)再次發(fā)送一個(gè)命令,通知DEVICE操作完畢,DEVICE同時(shí)會(huì)返回一個(gè)響應(yīng)。

          對(duì)于寫命令,首先HOST會(huì)向DEVICE發(fā)送命令,緊接著DEVICE會(huì)返回一個(gè)握手信號(hào),此時(shí),當(dāng)HOST收到回應(yīng)的握手信號(hào)后,會(huì)將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時(shí)會(huì)跟隨著CRC校驗(yàn)碼。當(dāng)整個(gè)寫傳送完畢后,HOST會(huì)再次發(fā)送一個(gè)命令,通知DEVICE操作完畢,DEVICE同時(shí)會(huì)返回一個(gè)響應(yīng)。

          SDIO的寄存器:

          SDIO卡的設(shè)備驅(qū)動(dòng)80%的任務(wù)就是操作SDIO卡上的有關(guān)寄存器。SDIO卡最多允許有7個(gè)功能(function),這個(gè)同其功能號(hào)是對(duì)應(yīng)的(0~7),每個(gè)功能都對(duì)應(yīng)一個(gè)128K字節(jié)大小的寄存器,這個(gè)見(jiàn)下面的圖。功能號(hào)之所以取值范圍是1~7,而沒(méi)有包含0,是因?yàn)楣δ?并不代表真正的功能,而代表CIA寄存器,即Common I/O Area,這個(gè)紀(jì)錄著SDIO卡的一些基本信息和特性,并且可以改寫這些寄存器。其中地址0x1000~0x17fff是SDIO卡的CIS區(qū)域,就是基本信息區(qū)域,Common Information Structure。初始化的時(shí)候讀取并配對(duì)SDIO設(shè)備。

          這些寄存器的詳細(xì)分區(qū)已經(jīng)其對(duì)應(yīng)的功能,在開(kāi)發(fā)過(guò)程中都是需要仔細(xì)研讀的,這些都在協(xié)議的SPEC中都有詳細(xì)說(shuō)明,這里就不在羅索了。

          CMD52命令:

          SDIO設(shè)備為了和SD內(nèi)存卡兼容,SD卡所有Command和Response完全兼容,同時(shí)加入了一些新的Command和Response。例如,初始化SD內(nèi)存卡使用ACMD41,而SDIO卡設(shè)備則用CMD5通知DEVICE進(jìn)行初始化。

          但二者最重要的區(qū)別是,SDIO卡比SD內(nèi)存卡多了CMD52和CMD53命令,這兩個(gè)命令可以方便的訪問(wèn)某個(gè)功能的某個(gè)地址寄存器。

          CMD52命令是IO_RW_DIRECT命令的簡(jiǎn)稱,其命令格式如下

          首先第一位為0,表明是起始位,第二位為傳輸方向,這里為1,代表方向?yàn)镠OST向DEVICE設(shè)備傳送,其后6位為命令號(hào),這里是110100b,用十進(jìn)制表示為52,CMD52的名字也由此而來(lái)。緊接著是讀寫標(biāo)志位。

          然后是操作的功能號(hào)。也就是functionnumber。如果為0則指示為CCCR寄存器組。

          緊接著是寄存器地址,用17指示,由于功能寄存器有128K地址,17位正好能尋址。

          再下來(lái)8位Write data or Staff Bits的意思是說(shuō),如果當(dāng)前為寫操作,則為數(shù)據(jù),否則8位為填充位。無(wú)意義。

          最后7位為CRC校驗(yàn)碼。最后一位為結(jié)束位0。

          對(duì)于CMD52的Response是48位,命令格式如下:

          總結(jié)下,CMD52是由HOST發(fā)往DEVICE的,它必須有DEVICE返回來(lái)的Response。CMD52不需要占用DAT線,讀寫的數(shù)據(jù)是通過(guò)CMD52或者Response來(lái)傳送。每次CMD52只能讀或者寫一個(gè)byte.


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: LinuxSDIO總線驅(qū)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();