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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

5、恰ge.carddoesntreapedandWntoldleStatsItismaidatoyforfretaslccmplianlIoPhysicalSpecVersion2.00toseneCYD6詩oreAO閑1爲廿|關擲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ù)傳輸模式:在卡識別模式結束之前,器可能會使用(CsrdrdiTiCSnACMXffllhH=Csr1Cardneluirdrsacf1-arcsviitFicxNupElUereltajerang?I;wireoiffrcespznsorxsIwcjb/fJCaidis、”Unu&abfcreac;C-ari數(shù)據(jù)傳輸模式,控制和卡寄存器orEer頻率

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

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

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

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

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

12、,數(shù)據(jù)傳輸會在。停止傳輸命令會有執(zhí)行上的延遲,因為它是串行位之后結束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ù)后面附加有校驗碼me丫TO3ur.TiecardwiI駅M:ADDRESS_ERRGRon把rextwnmEiidresponse.HastMMissueCMD12tcreo?/er.當出現(xiàn)或者時,寫命令會被拒絕,并不會發(fā)生

14、實際的數(shù)據(jù)傳輸寫數(shù)據(jù)塊寫數(shù)據(jù)塊命令()會將一塊或多塊數(shù)據(jù)寫入卡,支持塊寫入操作的卡要求由命令設定的塊長度為,而不管是還是下表給出了部分寫入禁止()情況下卡的寫入行為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ù)的寫入精度可以為是可以進行的。如果CRC驗失敗,Sn卡會在hDl線上給出相應的指示,已傳輸數(shù)據(jù)會被丟棄,并且這其后所傳輸?shù)臄?shù):據(jù)塊(在多塊寫入模式下)也會被忽略編程寄存器并不需要先前設定

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

溫馨提示

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

評論

0/150

提交評論