SD卡協(xié)議學(xué)習(xí)點(diǎn)滴(本)_第1頁
SD卡協(xié)議學(xué)習(xí)點(diǎn)滴(本)_第2頁
SD卡協(xié)議學(xué)習(xí)點(diǎn)滴(本)_第3頁
SD卡協(xié)議學(xué)習(xí)點(diǎn)滴(本)_第4頁
SD卡協(xié)議學(xué)習(xí)點(diǎn)滴(本)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、卡協(xié)議學(xué)習(xí)點(diǎn)滴(一)首先卡有所謂操作模式()的概念,每種操作模式又具體對應(yīng)一種或多種狀態(tài),主機(jī)通過發(fā)送命令可以使卡在不同的狀態(tài)間轉(zhuǎn)換,卡則接受命令,并根據(jù)自己現(xiàn)在所處狀態(tài)做出不同的響應(yīng)。CardstateOperationmodIriactiv-eState-inactiveIdleStatecardidenttificalionmodeReadyStateIdentificationStateStand-byStatedatatransfermodeTransferStateSending-dataStateReceive-da怕StateProgrammingStateDisconnect

2、State系統(tǒng)上電時(shí)刻或者搜尋卡時(shí),卡控制器應(yīng)該處于卡識別模式;卡在剛接入系統(tǒng)時(shí)刻也處于這種模式,并且處于此模式下的Id狀態(tài)??ㄗR別模式:在這種模式下,控制器會(huì)檢驗(yàn)卡的工作電壓范圍,識別卡類型,并要求它們發(fā)送各自的相對地址(這些操作在卡各自的線上進(jìn)TOC o 1-5 h z行。所有的操作均使用默認(rèn)的卡識別時(shí)鐘頻率()卡復(fù)位:發(fā)送DJE_S到卡后,除處于非活動(dòng)狀態(tài)()之外的卡都會(huì)進(jìn)入空閑狀態(tài)(/1);在狀態(tài),卡的線處于輸入模式,默認(rèn)相對地址為,默認(rèn)驅(qū)動(dòng)寄存器設(shè)定為最低速度,最大驅(qū)動(dòng)電流能力。工作條件檢測:尸在控制器和卡進(jìn)行任何通信之前,控制器不清楚卡支持的工作電壓范圍,故而控制器首先使用默認(rèn)的電

3、壓發(fā)送一條指令(),緊跟著的指令,用于取得卡支持工作電壓范圍數(shù)據(jù)。卡通過檢測的參數(shù)部分來檢查控制器使用的工作電壓,控制器通過分析回傳的參數(shù)部分來校驗(yàn)卡是否可以在所給電壓下工作。如果卡可以在指定電壓下工作,則它回送的命令響應(yīng)字,其中包含。如果卡不支持所給電壓,則卡不會(huì)給出任何響應(yīng)信息,并繼續(xù)處于狀態(tài)。在下,在首次執(zhí)行之前,必須執(zhí)行指令,用以初始化卡,卡根據(jù)是否接收到指令來鑒別控制器是否支持協(xié)議。使用低電壓的控制器也必須在命令之前發(fā)送,避免可以工作在兩種電壓模式下的卡因?yàn)闆]有接收到,而默認(rèn)工作在高電壓環(huán)境下,被誤認(rèn)為是只支持高電壓工作模式。命令的目的是給予卡控制器一個(gè)識別卡是否可以在所給范圍下工作

4、的機(jī)制,如果卡無法在指定范圍內(nèi)工作,則它會(huì)進(jìn)入非活動(dòng)狀態(tài)()。要注意的是,是應(yīng)用相關(guān)型命令,因而,每次發(fā)出的命令都必須緊跟在一條()命令之后。在空閑態(tài)()下使用的命令使用默認(rèn)的卡相對地址()。每次控制器發(fā)送復(fù)位卡后,都要重新進(jìn)行系列初始化操作()。如果指令的比特位為0控制器可以查詢各個(gè)卡,并決定它們共同的工作電壓范圍。在作為查詢的指令發(fā)送之后,卡并不會(huì)開始初始化過程,直到控制器重新發(fā)送一條指令。CLD15$型:必bnallstatesexcept(irajcardnetJiBti即arhostomitlecvoltagerangeIfcard:aimotopeateuider&applied旳

5、恰ge.carddoesntreapedandWntoldleStatsItismaidatoyforfretaslccmplianlIoPhysicalSpecVersion2.00toseneCYD6詩oreAO閑1爲(wèi)廿|關(guān)擲1MusibeaMuliMediaCardf(ready;JPoweronACkCll/ilaWulWediaC為(inidalizationpmcsspartingElCMD1JcardswiticonpaiteCMKvoltagerange|ZIderilicatiriUnu&abfeCari;ACMC-1訕Hi壬=0/Liusabe1.,CaCaftlcaris

6、vMnuicomprtitle.rangeadjoestoC-anpacreogeI*Care*jihti即血Mdi咸卩眥川isecnedl詢郵E腳址)1hoJEupprtshigh瓷熾ity.HC3issetto1z、Cariomireedy數(shù)據(jù)傳輸模式:在卡識別模式結(jié)束之前,器可能會(huì)使用(CsrdrdiTiCSnACMXffllhH=Csr1Cardneluirdrsacf1-arcsviitFicxNupElUereltajerang?I;wireoiffrcespznsorxsIwcjb/fJCaidis、”Unu&abfcreac;C-ari數(shù)據(jù)傳輸模式,控制和卡寄存器orEer頻率

7、??刂破靼l(fā)送一條亠j怦疏恤、宀且壬*皿)里面的描述值,譬如,塊長度,卡容量信息等。:廣播命令)為各個(gè)已識別的SD配置驅(qū)動(dòng)階段(它會(huì)向D卡的dSr存器寫入相關(guān)命令是可選的。轉(zhuǎn)到F2n狀態(tài),在指定時(shí)間段內(nèi),只有一個(gè)狀態(tài)的卡接收到的信息。控制器的時(shí)鐘頻率也在這個(gè)命令用來選擇某個(gè)卡,使其進(jìn)入卡能處于狀態(tài)。當(dāng)某個(gè)先前被選中的處于一會(huì)釋放與控制器的連接,并進(jìn)入狀態(tài)。當(dāng),M使用保留地址卡都會(huì)進(jìn)入狀態(tài)。|I之后,時(shí),所有的數(shù)據(jù)傳輸模式下各個(gè)狀態(tài)的轉(zhuǎn)換關(guān)系總結(jié)如下:所有的數(shù)據(jù)讀命令都可以被停止命令()在任意時(shí)刻終止。數(shù)據(jù)傳輸會(huì)終止,卡返回狀態(tài)。讀命令有:塊讀操作()、多塊讀操作()、發(fā)送寫保TOC o 1-5

8、h z護(hù)()、發(fā)送()以及讀模式下的普通命令()所有的數(shù)據(jù)寫命令都可以被停止命令()在任意時(shí)刻終止。寫命令也會(huì)在取消選擇命令()之前停止。寫命令有:塊寫操作(,)、編程命令()、鎖定解鎖命令()以及寫模式下的普通命令()數(shù)據(jù)傳輸一旦完成,卡會(huì)退出數(shù)據(jù)寫狀態(tài),進(jìn)入狀態(tài)(傳輸失敗)如果塊寫操作被叫停,但是寫操作包含的最終塊其長度和Fla?s)h意思是前次寫入塊在編程到狀態(tài)(傳輸成功)或者校驗(yàn)是正確的話,數(shù)據(jù)會(huì)被編程到卡(從緩存寫入到卡可能會(huì)提供緩存模式,著發(fā)送下一塊的數(shù)據(jù)當(dāng)寫緩存為滿時(shí)刻,并且表明其為忙狀態(tài)的時(shí)刻,控制器可以接卡處于狀態(tài),會(huì)保持為低電平(寫,寫保護(hù),擦除這些操作沒有緩存的功能,當(dāng)卡

9、正在處理這些命令的時(shí)候,其余的數(shù)據(jù)傳輸命令會(huì)被忽略。當(dāng)卡為忙,并且處于狀態(tài)的時(shí)候,會(huì)被卡拉低,在卡處于狀態(tài)時(shí)候,不允許控制器發(fā)送設(shè)置參數(shù)命令。設(shè)置塊長度()、擦除塊開始()以及擦除塊結(jié)束(m)卡編程時(shí)刻,讀命令也是不允許的當(dāng)把另一個(gè)卡從狀態(tài)轉(zhuǎn)換為狀態(tài)的時(shí)候,正處于、a和狀態(tài)的卡其操作不會(huì)終止,它會(huì)自動(dòng)進(jìn)入狀態(tài),釋放數(shù)據(jù)線。處于狀態(tài)的卡可以通過發(fā)送命令使其脫離此狀態(tài),并進(jìn)入狀態(tài),并重新激活忙標(biāo)識符/復(fù)位卡(使用或者這可能會(huì)損毀卡的數(shù)據(jù)保留作。r-amnuni4TrawferSta:e(tw)SendingStat?JdataVCMMe.32,3?W2CMD6.17J13056ACMDh.22.5

10、1CMD15cardidenjficationmodedataIransFermcdefReceiveJaLaSlate(rcvlDimoonriEKCf/D7fStandby卜、泄y)丿)會(huì)終止任何等待中或正在進(jìn)行的寬總線()模式可以通過選擇取消選擇,默認(rèn)工作模式為模式。為了改變總線寬度,以下兩個(gè)條件須滿足:卡處于狀態(tài)卡未被鎖定卡:為使用的卡,()參數(shù)須設(shè)置為b但是,由設(shè)置的須為,從而可與最大僅可使用的卡相兼容讀數(shù)據(jù):線上沒有數(shù)據(jù)傳輸時(shí),由外部上拉電阻保持為高電平。傳輸數(shù)據(jù)塊由一個(gè)起始比特(1或者4個(gè)比特的低電平),以及緊跟著的連續(xù)數(shù)據(jù)流組成。數(shù)據(jù)流包含有效載荷數(shù)據(jù)(以及錯(cuò)誤校驗(yàn)比特,如果有

11、使用到)。數(shù)據(jù)流以數(shù)據(jù)結(jié)束標(biāo)識符結(jié)束(或者比特的高電平)。數(shù)據(jù)傳輸和時(shí)鐘信號是同步的。有效載荷數(shù)據(jù)后緊跟著比特或者比特的校驗(yàn)碼讀命令在出現(xiàn)下,不會(huì)發(fā)生數(shù)據(jù)傳輸過程或者塊讀操作塊傳輸下,基本的數(shù)據(jù)傳輸單位是塊,它最大為如果它指向的內(nèi)容其地址范圍處于以字節(jié)為邊界的某塊內(nèi)(的情況下可以被否決,這種情況些的塊傳輸也是可以的,口地址范圍為的傳輸是可以的,但是地址范圍為因?yàn)榈刂窓M跨了兩個(gè)塊,則不可行)參數(shù)最大可為y而與的大小無關(guān)校驗(yàn)碼,用以保證傳輸數(shù)據(jù)的完整性。發(fā)起單次的塊傳輸,傳輸結(jié)束后,卡返回狀態(tài),)開始多個(gè)連續(xù)塊的數(shù)據(jù)傳輸。塊傳輸會(huì)一直持續(xù)下去,除非收到命令(命由設(shè)置的塊數(shù)據(jù)的結(jié)尾都附加有一條傳輸?shù)?/p>

12、,數(shù)據(jù)傳輸會(huì)在。停止傳輸命令會(huì)有執(zhí)行上的延遲,因?yàn)樗谴形恢蠼Y(jié)束CSDvalueCurrentBlccklenReadCMDStartAddressMaxblocksizeREADBILLENMisalignPartial512Bytes3|Disabe)1(Enable)1-512b/tesAnyaddressisaccepted.IkBytesOlDisabe)1(Enable)1-512tastesAnyaddressisaccepted.2kByiesO(Disabe)1(Enable)1-512b/l.esAnyaddressisaccepted.1:CurrenlBbctien

13、sizeisseiorchangedby6lvalue-餛1:TurnertBoctiensizeisseiorchangedtyCMDIS.lbaLieislessthanorequal512bytes上面一段講的是lmisaisilgardWHFSMn,,直接貼英文了.寫數(shù)據(jù)i-:i:-:=7:7::?:.-::-.::數(shù)據(jù)寫傳輸類似讀傳輸,塊數(shù)據(jù)傳輸?shù)脑?,在每塊數(shù)據(jù)后面附加有校驗(yàn)碼me丫TO3ur.TiecardwiI駅M:ADDRESS_ERRGRon把rextwnmEiidresponse.HastMMissueCMD12tcreo?/er.當(dāng)出現(xiàn)或者時(shí),寫命令會(huì)被拒絕,并不會(huì)發(fā)生

14、實(shí)際的數(shù)據(jù)傳輸寫數(shù)據(jù)塊寫數(shù)據(jù)塊命令()會(huì)將一塊或多塊數(shù)據(jù)寫入卡,支持塊寫入操作的卡要求由命令設(shè)定的塊長度為,而不管是還是下表給出了部分寫入禁止()情況下卡的寫入行為CSDvalueCurrentBlocklenWriteCMDStartAddressMaxblocksizeWRITE_BL_LENMisalignPartial512Bytes0(Disable)0(Disable)512bytesJn*512bytesInteger!1kBytes0(Dsable)0(Disable)512bytes=Jn*512bytes(nInteger)ZkEyt已s0(Dsable)0(Disable

15、)512bytes=n*512bytBS(n:nteger)TJ:,:CurenlBlocklenrsize5setorchangedbyCMD16.Ifvaueisessthan512bytes(therearenorelalmswitiMisalignandPartialoption),itissetwthnoerror.And恤1(uteMBlockensizeis如果WRlTEi_Brr_E則更小塊數(shù)據(jù)的寫入精度可以為是可以進(jìn)行的。如果CRC驗(yàn)失敗,Sn卡會(huì)在hDl線上給出相應(yīng)的指示,已傳輸數(shù)據(jù)會(huì)被丟棄,并且這其后所傳輸?shù)臄?shù):據(jù)塊(在多塊寫入模式下)也會(huì)被忽略編程寄存器并不需要先前設(shè)定

16、好的塊長度。傳輸數(shù)據(jù)同樣附加有校驗(yàn),如果卜的某部分存儲(chǔ)在里面,這個(gè)不可改變的部分同樣會(huì)映射到數(shù)據(jù)緩存的相應(yīng)部分(但是這部分?jǐn)?shù)據(jù)不會(huì)寫入),如果這個(gè)匹配條件不滿足,卡會(huì)回報(bào)一個(gè)錯(cuò)誤信息,并且此次寫入無效某些卡會(huì)需要比較長并且不可預(yù)期的寫入時(shí)間。如果卡的緩存為滿,則其在接收完塊數(shù)據(jù)并完成校驗(yàn)后,卡會(huì)開始數(shù)據(jù)的寫入,并拉低。任何時(shí)刻,控制器可以通過命令()主動(dòng)查詢卡的狀態(tài),卡對應(yīng)的響應(yīng)其標(biāo)志位表明其是否可以接收新數(shù)據(jù)。多塊寫操作之前的預(yù)擦除指令使用預(yù)擦除命令(M)設(shè)定多個(gè)寫入塊的預(yù)擦除會(huì)讓隨后的多塊寫入更快完成??刂破饕话銜?huì)使用這個(gè)值(擦除多少塊)來決定隨后的多塊數(shù)據(jù)寫入的塊數(shù)。如果控制器在寫入多塊數(shù)據(jù)之前使用名林終止數(shù)據(jù)傳輸,那么,余下的數(shù)據(jù)塊里面的值是未知的,可能是舊的值,也可能是擦除后的空白值(全)。如果控制器傳輸?shù)臄?shù)據(jù)塊數(shù)多于預(yù)擦除指定的塊數(shù)卡會(huì)以一次擦除一塊的操作方式來擦除數(shù)據(jù)(當(dāng)收到新數(shù)據(jù)的時(shí)候)。所定義的擦除塊數(shù)會(huì)在多塊數(shù)據(jù)寫入完成后復(fù)位為默認(rèn)值()建議在每次使用之前使用此命令。注意必須在剛好要使用寫入命令之前使用,否則,如果中間穿插了別的命令,可能或把所設(shè)定的值自動(dòng)清除發(fā)送可寫入塊數(shù)在使用流水線機(jī)制的系統(tǒng)里面,控制器可能在某些情況下不清楚哪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論