智能車制作相關僅供參考不提供技術支持其他參考s卡詳解_第1頁
智能車制作相關僅供參考不提供技術支持其他參考s卡詳解_第2頁
智能車制作相關僅供參考不提供技術支持其他參考s卡詳解_第3頁
智能車制作相關僅供參考不提供技術支持其他參考s卡詳解_第4頁
智能車制作相關僅供參考不提供技術支持其他參考s卡詳解_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、概述 1、簡介SD 卡操作 一、SD 卡是基于 flash 的卡。SD 卡和 MMC 卡的區(qū)別在于初始化過程不同。SD 卡的通信協(xié)議包括 SD 和 SPI 兩類。SD 卡使用智能模塊進行 FLASH 操作,包括協(xié)議、安全算法、數據存取、ECC 算法、缺陷處理和分析、電源管理、時鐘管理。2、功能介紹 2.1特點1)主機無關的 FLASH 內存擦除和編程讀或寫數據,主機只要一個帶地址令,然后等待命令完成,主機無需關心具體操作的完成。當采用新型的 FLASH 時,主機代碼無需更新。2)3)4)缺陷管理錯誤恢復電源管理Flash 每個扇區(qū)有大約10萬次的寫,讀沒有限制。擦除操作可以寫操作,因為在寫之前

2、會進行擦除。3 SD 總線模式 3.1 Negotiating Operation Conditions當主機定義了 SD 卡不支持的電壓范圍時,SD 卡將處于非活動狀態(tài),將忽略所有的總線傳輸。要非活動狀態(tài)唯一的方法就是重新上電。3.2 SD 卡獲取和識別SD 卡總線采用的是從結構,總線上所有卡共用時鐘和電源線。主機依次分別每個卡,每個卡的 CID 寄存器中已預編程了一個唯一的卡標識號,用來區(qū)分不同的卡。主機通過 READ_CID 命令CID 寄存器。CID 寄存器在 SD 卡生產過程中的測試和格式化時被編程,主機只能該號。DAT3 線上內置的上拉電阻用來偵測卡。在數據傳輸時電阻斷開( 使用A

3、CMD42)。3.3卡狀態(tài)卡狀態(tài)分別存放在下面兩個區(qū)域:卡狀態(tài)(Card Status),存放在一個32位狀態(tài)寄存器,在卡響應主機命令時作為數據傳送給主機。SD 狀態(tài)(SD_Status),當主機使用 SD_STATUS(ACMD13)命令時,512位以一個數據塊的方式給主機。SD_STATUS 還包括了和 BUS_WIDTH、安全相關位和擴展位等的擴展狀態(tài)位。3.4內存組織數據讀寫的基本單元是一個字節(jié),可以按要求組織成不同的塊。Block:塊大小可以固定,也可以改變, 在 CSD 寄存器。Sector:和擦除命令相關,由幾個塊組成。Sector 的大小對每個設備是固定的,的塊大小是實際大小等

4、信息大小信息在 CSD 寄存器。WP Group:寫保護設備大小是固定的,。大小包括幾個 group,寫保護由一位決定,對每個在 CSD 寄存器。3.5讀寫操作Single Block Mode:主機根據事先定義的長度讀寫一個數據塊。由模塊產生一個16位的 CRC,接受端根據進行檢驗。讀操作的塊長度受設備 sector 大小(512 bytes)的限制,但是可以最小為一個字節(jié)。不對是不的,每個數據塊必須位于單個物理 sector 內。寫操作的大小必須為 sector 大小,起始地址必須與 sector 邊界對齊。Multiple Block Mode:主機可以讀寫多個數據塊(相同長度),根據命

5、令中的地址或寫入連續(xù)的內存地址。操作通過一個停止傳輸命令結束。寫操作必須地址對齊。3.6 數據傳輸速率SD 卡可以通過單數據線(DAT0)或四根數據線(DAT0-DAT3)進行數據傳輸。單根數據線傳輸最大傳輸速率為25 Mbit/s,四根數據線最大傳輸速率為100 Mbit/s。3.7 數據保護每個 sector 的數據通過 Error Correction Code (ECC)進行保護。在寫 sector 時生成 ECC,在讀 sector 時檢驗 ECC。如果發(fā)現錯誤,在傳輸前進行糾正。3.8 數據擦除SD 卡數據擦除的最小是 sector。為了擦除操作,多個 sector 可以同時擦除。

6、為了方便選擇,第一個指令包含起始地址,第二個指令包含結束地址,在地址范圍內的所有 sector 將被擦除。3.9寫保護兩種寫保護方式可供選擇,保護和臨時保護,兩種方式都可以通過 PROGRAM_CSD 指令進行設置。保護位一旦設置將無法清除。3.10拷貝位通過 CSD 寄存器中的拷貝位(copy bit)設置 SD 卡中的數據是原始數據還是拷貝數據。拷貝位一旦設置,將無法清除,在測試和格式化時使用。3.11 CSD 寄存器所有 SD 卡的配置信息在 CSD 寄存器。通過 SEND_CSD,PROGRAM_CSD 修改。4 SPI 模式二、SD 卡接口描述 1引腳和寄存器主機通過9個引腳和 SD

7、 卡相連1.1 SD 模式引腳擴展數據線(DAT1-DAT3)上電后為輸入,SET_BUS_WIDTH 命令執(zhí)行后作為數據線。即使只有 DAT0使用,所有數據線都和外部上拉電阻連接,否則 DAT1 & DAT2(如果未被使用)的振蕩輸入將引起非期望的高電流損耗。上電后,數據線輸入50K(+/-20K)歐姆的上拉(用來進行卡偵測和 SPI 模式選擇)。用戶可以在常規(guī)數據傳輸時,通過 SET_CLR_CARD_DETECT (ACMD42)命令分離上拉。1.2 SPI 模式引腳1.3寄存器主機通過重新上電來重置(reset)卡??ㄓ兴陨頇z測上電的電路,當上電后卡狀態(tài)切換到idle 狀態(tài)。

8、也可以通過 GO_IDLE (CMD0)指令來重置。2SD 卡總線拓撲SD 總線有6根通信線和三根電源供應線:名稱寬度描述CID128卡標識號RCA16相對卡地址(Relative card address):中卡的地址,動態(tài)變化,在主機初始化的時候確定*SPI 模式中沒有CSD128卡描述數據:卡操作條件相關的信息數據SCR64SD 配置寄存器:SD 卡特定信息數據OCR32操作條件寄存器²CMD命令線是雙向信號線。主機和卡通過 push pull 模式工作。²DAT0-3數據線是雙向信號線。主機和卡通過 push pull 模式工作。²CLK時鐘是從主機到卡的

9、信號。CLK 通過 push pull 模式操作。²VDDVDD 是所有卡的電源供應線。²VSS1:2VSS 是2根地線。在初始化的時候,向每個卡分別命令,應用檢測卡并給物理槽(physical slot)分配邏輯地址。數據通常分別傳輸給每個卡。然后,為了方便處理卡堆棧,初始化后所有命令同時給所有卡,在命令數據包中包含了操作地址。SD 總線動態(tài)配置數據線數目。上電后默認 SD 卡只用 DAT0作為數據傳輸線。初始化后,主機可以改變總線寬度。這個特性使得在硬件開銷和系統(tǒng)性能間取得平衡。3SPI 總線拓撲 4電氣接口 4.1上電上電后,包括熱,卡進入 idle 狀態(tài)。在該狀態(tài)

10、SD 卡忽略所有總線操作直到接收到 ACMD41命令。ACMD41命令是一個特殊的同步命令,用來協(xié)商操作電壓范圍,并輪詢所有的卡。除了操作電壓信息,ACMD41的響應還包括一個忙標志,表明卡還在 power-up 過程工作,還沒有準備好識別操作,即告訴主機卡還沒有就緒。主機等待(繼續(xù)輪詢)直到忙標志清除。單個卡的最大上電時間不能操作1秒。上電后,主機開始時鐘并在 CMD 線上初始化序列,初始化序列由連續(xù)的邏輯“1”組成。序列長度為最大1毫秒,74個時鐘或 supply-ramp-up 時間。額外的10個時鐘(64個時鐘后卡已準備就緒)用來實現同步。每個總線器必須能執(zhí)行 ACMD41和 CMD1

11、。CMD1要求 MMC 卡操作條件。在任何情況下,ACMD41或 CMD1必須通過各自的 CMD 線分別每個卡。給5寄存器 5.1 OCR(Operating Conditions Register)32位的操作條件寄存器了 VDD 電壓范圍。SD 卡操作電壓范圍為23.6V。然而從內存中數據的電壓是2.73.6V。OCR 顯示了卡數據范圍,結構如下表所示。電壓表3-8 OCR 寄存器定義OCR 位VDD 電壓范圍0-3保留41.61.751.71.861.81.971.92.082.02.192.12.2102.22.3112.32.4122.42.5132.52.6142.62.7152.

12、71.8162.82.9172.93.0183.03.1193.13.2203.23.3213.33.4223.43.5233.53.6OCR 結構如下圖所示。如果第32位(busy bit)置位,表明卡上電過程已結束。5.2 CID(Card Identification)CID 寄存器長度為16個字節(jié)的卡唯一標識號,該號在卡生產廠家編程后無法修改。SD 和 MMC 卡的 CID 寄存器結構不一樣。名稱類型寬度CID 位內容CID 值廠商 IDBinary8127:120SD 卡管理和分配0x03OEM/Appli cation ID(OID)ASCII16119:104識別卡的OEM 或卡

13、內容,由制造商分配0x53,0x44名(PNM)ASCII40103:645 個 ASCII字符SD128版本 (PRV)BCD865:562 個二進制編碼的十進制數版本 (30)1序 列 號(PSN)Binary3255:2432位無符號整數序列號保留423:20生成日期 (MDT)BCD1219:8yym ( 從2000年的偏移量)如:Apr 2001=0x014CRC7 校驗 和(CRC)Binary77:1CRCCRC724-30保留31卡上電狀態(tài)位(忙)1、格式為“n.m”,如“6.2”表示為0110 00105.3 CSD(Card Specific Data)CSD 寄存器包含卡

14、數據所需的配置信息。SD 卡和 MMC 卡的 CSD 不同。6數據交互格式和卡容量通常,SD 卡分為2個區(qū):² 用戶區(qū)用戶通過讀寫命令安全和非安全數據。² 安全保護區(qū)(Security Protected Area)保護應用程序用來保存安全相關數據,通過 SD 安全規(guī)范中定義的條件驗證后,由主機使用安全的讀寫指令完成操作。安全保護區(qū)的大小大概是總大小的1%。三、SD 卡協(xié)議1 SD 總線協(xié)議SD 總線通信是基于命令和數據位流方式的,由一個起始位開始,以一個停Calculation: G(x)=x7+3+1 M(x)=(MID-MSB)*x119+.+(C IN-LSB)*x

15、0 CRC6.0=Remainder( M(x)*x7)/G( x)未用10:0止位結束:命令命令是開始開始操作的標記。命令從主機一個卡(尋址命令)或所有連接的卡(廣播命令)。命令在 CMD 線上串行傳送。響應響應是從尋址卡或所有連接的卡(同步)給主機用來響應接受到令的標記。命令在 CMD 線上串行傳送。數據數據可以通過數據線在卡和主機間雙向傳送??▽ぶ吠ㄟ^會話地址方式實現,地址在初始化的時候分配給卡。SD 總線上的基本操作是 command/response。數據傳送采用塊方式,數據塊后接 CRC 校驗位,操作包括單數據塊和多數據塊。多數據塊更適合快速寫操作,多數據塊傳輸當在 CMD 線出現

16、停止命令時結束。數據傳輸可以在主機端設置采用單數據線或多數據線方式。塊寫操作在 DAT0數據線寫操作期間使用忙信號,無論用來傳輸的信號線數目是多少。命令格式如下所示:響應標記(token)根據內容不同具有四種格式,標記長度。長度為48位或136位。數據塊的 CRC 算法采用16位的 CCITT 多項式。在命令行中,MSB 位首先傳送,LSB 位最后傳送。當使用寬總線模式時,數據同時在4根數據線上傳輸。開始位、結束位和 CRC在每根數據線上傳送。CRC 對每根數據線單獨計算。CRC 狀態(tài)響應和 Busy 信號只通過 DAT0由卡給主機。2協(xié)議功能描述所有主機和 SD 卡間的通信由主機。主機下述兩

17、類命令:l廣播命令廣播命令給所有 SD 卡,有些命令需要響應。l尋址(點對點)命令尋址命令只給具有相應地址的卡,并需要從卡返回一個響應。對卡而言也有兩類操作:l卡識別模式在重置(reset)后當主機查找總線上的新卡時,處于卡識別模式。重置后 SD 卡將始終處于該模式,直到收到 SEND_RCA 命令(CMD3)。l數據傳輸模式一旦卡的 REC 發(fā)布后,將進入數據傳輸模式。主機一旦識別了所有總線上的卡后,將進入數據傳輸模式。操作模式與卡狀態(tài)關系:3卡識別模式在卡識別模式,主機重置所有處于卡識別模式的 SD 卡,檢驗操作電壓范圍,識別卡并請求卡相對卡地址 RCA。操作對每個卡在各自的 CMD 線上

18、單獨進行,所有的數據傳送只使用 CMD 線。3.1重置GO_IDLE_STATE(CMD0)是軟件重置命令,設置每個 SD 卡進入 Idle 狀態(tài)。處于 Inactive 狀態(tài)的卡不受此命令影響。主機上電后,所有 SD 卡進入 Idle 狀態(tài),包括處于 Inactive 狀態(tài)的卡。至少74個時鐘周期后才能開始總線傳輸。上電或 CMD0(重置)后,所有 SD 卡令線處于輸入模式,等待下一個命令的起始位??ㄍㄟ^一個默認的相對卡地址 RCA(RCA=0x0000)和默認驅動寄存器設置(最低速,最高驅動電流)初始化。3.2操作電壓范圍驗證SD 的物理規(guī)范標準要求所有 SD 卡能通過最小和最大供電電壓間

19、的任何電壓和主機建立通信。然而,數據傳輸時的最小和最大電壓值在操作條件寄存器OCR 中定義,可能并不能覆蓋所有的電壓范圍。SD 卡主機希望通過OCR 寄存器獲取合適的電壓值或彈出卡。SD 卡卡的3.3卡識別過程在識別時鐘速率 fOD 下主機開始卡識別過程。SD 卡的 CMD 線輸出驅動是push-pull 驅動。總線激活后,主機要求卡它們的有效操作條件(ACMD41 preceding withAPP_CMDCMD55 with RCA=0x0000)。ACMD41命令的響應是卡的操作條件令將給系統(tǒng)中所有的卡。不兼容的卡將進入 Inactive 狀態(tài)。命令 ALL_SEND_CID(CMD2)

20、到每個卡以獲取每個卡的唯一標寄存器。相同主機然后識 CID 號。未識別的卡通過 CMD 線CID 號作為響應。當卡CID 號后,CMD3進 入 識 別 狀 態(tài) ( IdentificationState )。 此 后 , 主 機(SEND_RELATIVE_ADDR)要求卡發(fā)布一個新的相對卡地址 RCA,地址比 CID短,在以后的數據傳輸模式中用來尋址卡。一旦獲得 RCA 后,卡狀態(tài)變成就緒狀態(tài)(Stand-by state)。此時,如果主機要求卡換成其他的 RCA 號,可以通過發(fā)送另一個 SEND_RELATIVE_ADDR 命令給卡,要求發(fā)布一個新的 RCA,最后發(fā)布的 RCA 是實際使用

21、的 RCA。主機對系統(tǒng)中的每個卡重復識別過程。所有的 SD 卡初始化完以后,系統(tǒng)將開始初始化 MMC 卡(如果有的話),使用 MMC 卡的 CMD2和 CMD3。4數據傳輸模式直到主機知道所有 CSD 寄存器的內容,fpp 時鐘速率必須保持在 fOD,因為SEND_CSD(CMD9)獲取卡定義數據(Card一些卡有操作頻率限制。主機Specific Data,CSD 寄存器),如塊大小、卡容量、最大時鐘速率等。CMD7用來選擇一個卡并將它置于傳輸狀態(tài)(Transfer state),在任何時間只能有一個卡處于傳輸狀態(tài)。如果已有一個卡處于傳輸狀態(tài),它和主機的連接將釋放,并返回到 Stand-by

22、 狀態(tài)。當 CMD7以保留相對地址“0x0000”有卡將返回到 Stand-by 狀態(tài)。這可以用來識別新的卡而不重置其他已時,所的卡。在 這 種 狀 態(tài) 下 已 有 一 個 RCA地 址 的 卡 不 響 應 識別 命 令(ACMD41,CMD2,CMD3)。注意:當卡接收到一個帶有不匹配 RCA 的 CMD7時,卡將取消選中。在公用 CMD 線時,選中一個卡時將自動不選中其他機具有如下功能:此,在 SD 卡系統(tǒng)中,主ll初始化完成后,在公用 CMD 線時,不選中卡是自動完成的。如果使用單獨的 CMD 線,需要關注不選中卡的操作在主機和選擇的 SD 卡之間的所有數據通信是點對點的方式。所有尋址命

23、令都需要響應。不同數據傳輸模式的關系如圖4-8所示,使用如下步驟:l所有讀數據命令可以在任何時候通過停止命令( stop command,CMD12)中止。數據傳輸將中止,卡回到傳輸狀態(tài)(TransferState)。讀命令有:塊讀命令(CMD17),多塊讀命令(CMD18),讀保護(CMD30)scr(ACMD51),以及讀模式的通用命令(CMD56)。l所有寫數據命令可以在任何時候通過停止命令( stop command,CMD12)中止。在不選中卡命令 CMD7前寫命令必須停止。寫命令有: 塊寫命令(CMD24 and CMD25), 寫 CID (CMD26), 寫CSD(CMD27)

24、, lock/unlock 命令(CMD42)以及寫模式通用命令(CMD56)。一旦數據傳輸完成,卡將數據寫狀態(tài)并進入Programming State(傳l輸)或 Transfer State(傳輸失?。如果一個快寫操作停止,而且最后一塊塊長度和 CRC 是有效的,那么數據可以作(programmed)。l卡可能提供塊寫緩沖。這意味著在前一塊數據作時,下一塊數據可以傳送給卡。如果所有卡寫緩沖已滿,只要卡在 Programming State,DAT0將保持低電平(BUSY)。l寫 CSD、CID、寫保護和擦除時沒有緩沖。這表明在這些命令而處于忙時,不再接收其他數據傳輸命令。在卡忙時 DA

25、T0保持低電平,并處于 Programming State。實際上如果 CMD 和 DAT0線分離,而且主機占有的忙 DAT0線和其他 DAT0線問其他卡。,那么在卡忙時,主機可以訪l在卡被編程(programming)時,參數設置命令。參數設置命令包括: 設置塊長度( CMD16 ), 擦除塊開始(CMD32) 和擦除塊結束(CMD33)。ll卡在操作時不讀命令。使用CMD7指令把另一個卡從Stand-by 狀態(tài)轉移到Transfer 狀態(tài)中止擦除和編程(programming)操作。卡將切換到 Disconnect 狀態(tài)并DAT 線。使用 CMD7指令可以不選中處于 Disconnect

26、狀態(tài)的卡??▽⑦M入Programming 狀態(tài),重新激活忙指示。使用 CMD0 或 CMD15 重置卡將中止所有掛起和活動的編程(programming)操作。這可能會破壞卡上的數據內容,需要主機保證避免這樣的操作。ll4.1 寬總線選擇/不選擇寬總線(4位總線寬度)操作模式通過 ACMD6選擇和不選擇。在上電后或GO_IDLE(CMD0)命令后默認的總線寬度是1位。ACMD6命令只在“tran state” 有效,即只有在卡選中后(CMD7)總線寬度才能修改。4.2 讀數據格式DAT 總線在沒有數據傳輸時處于高電平。一個傳輸數據塊包含一個起始位(LOW),接著連續(xù)的數據流。數據流包含有效數據

27、(如果使用了 ECC 了還包括錯誤糾正位)。數據流以一個結束位(HIGH)結束。數據傳輸和時鐘信號同步。以塊傳輸的有效數據包含 CRC 校驗和。產生多項式是標準 CCITT 多項式。采用了縮短的 BCH 碼,d=4,有效數據長度最長為2048字節(jié)。CRC 校驗和對每個 DAT 線單獨計算并附加在每個數據塊后。 在寬總線模式操作(DAT0-DAT3)中,16位的 CRC 校驗對每個 DAT 分別計算。數據塊讀傳輸的基本是數據塊,最大在 CSD 中定義(READ_BL_LEN)。開始和結束地址完全包含在一個物理數據快(如 READ_BL_LEN 定義)中的較小的塊也可以傳遞。CRC 附加在每個數據

28、塊的尾部用來保證數據傳輸的完整性。CMD17(READ_SINGLE_BLOCK)開始一個塊讀操作,然后傳輸完成后進入Transfer 狀態(tài)。CMD18(READ_MULTIPLE_BLOCK)開始連續(xù)的塊傳輸,直到停止命令。停止命令有一個執(zhí)行延遲。在停止命令最后一位完以后數據傳輸停止。如果主機使用累計長度不是塊對部分塊,在第一個不對齊塊的開始,卡會發(fā)現一個塊未對齊錯誤,在狀態(tài)寄存器中設置 ADDRESS_ERR 錯誤,中止傳輸并等待(在 Data 狀態(tài))停止命令。4.3數據寫格式數據寫傳輸格式類似于讀格式。對于以塊為的寫數據傳輸,CRC 檢驗位附加到每個數據塊。卡的每根數據線在接收到數據并在

29、寫操作前,執(zhí)行 CRC校驗。數據塊寫數據塊寫(CMD24-27,42,56(W)),一個或多個數據塊從主機給卡,主機在每個數據塊后附加 CRC 校驗。數據塊長度 WRITE_BL_LEN(512B)。如果 CRC 校驗失敗,卡將在 DAT 數據線上指示錯誤。傳輸的數據將被拋棄,而且后續(xù)傳輸的數據塊(在多數據塊寫模式)也都會被忽略。多數據塊寫命令比連續(xù)的單數據塊寫命令速度快。不部分塊寫(小于512B)。當主機試圖在寫保護區(qū)域寫數據時寫操作將中止。在這種情況下,卡在狀態(tài)寄存器設置 WP_VIOLATION 位,并忽略所有后續(xù)數據傳輸,并在 Receive-data狀態(tài)下等待停止命令。對 CID 和

30、 CSD 寄存器進行編程操作不需要實現設置塊長度,傳輸的數據也是 CRC 保護的。如果 CSD 或 CID 寄存器一部分于 ROM 中,那么不可改變部分必須和接收緩沖中的相應部分內容保持一致。如果匹配失敗,卡將報告一個錯誤,而且不改變任何寄存器內容。接收到一個數據塊并完成 CRC 校驗后,卡將開始寫,如果寫緩沖滿而且不能從一個新的 WRITE_BLOCK 命令接收新數據時,DAT0線保持為低電平。任何時候主機都可以通過 SEND_STATUS(CMD13) 命令獲取卡的狀態(tài)。狀態(tài)位READY_FOR_DATA 指示卡是否可以接收新數據或寫操作還在進行中。主機通過 CMD7(選中另一個卡)不選中

31、卡,這個操作可以把卡的狀態(tài)編程 DisconnectDAT 線而不中斷寫操作。當不選中卡時,如果編程還在進行而且寫緩沖并不可用時,將通過下拉 DAT 為低電平來重新激活忙信號。實際上,主機通過interleaving 可以實現多個卡同時寫操作,interleaving 過程可以通過在卡忙時其他卡實現。預擦除設置優(yōu)先于多數據塊寫操作設置多個寫數據塊的預擦除(ACMD23)可以使得接下來的多個數據塊寫操作比沒有預先執(zhí)行 ACMD23的相同操作更快。主機可以通過該命令設置多少個數據塊將在接下來的寫操作中。如果在所有數據塊給卡時中止了寫操作(使用停止傳輸命令),殘余寫數據塊的內容(指要寫入新內容的數據

32、塊?)將變得不確定(可能已擦除或還是原來的數據)。如果主機了超過 ACMD23中定義的數據塊數目的數據,卡將逐個擦除數據塊(在收到新數據時)。多數據塊寫操作完成后值將重新設置為默認值1。建議在 CMD25命令前使用該命令以寫操作。如果需要預擦除主機在寫ACMD23。如果不ACMD23命令,設置的預擦除數將在其他指命令前令執(zhí)行時自動清除。寫數據塊數目系統(tǒng)使用管道機制進行數據緩沖管理,有時候在多數據塊寫操作過程中發(fā)生錯誤,使得無法確定哪一個數據塊是最后寫入的數據塊??梢园颜懭氲臄祿K數(the number of well-written blocks)作為對命令 ACMD22的響應。擦除同

33、 時 擦 除 多 個 寫 數 據 塊 可 以 提 高 數 據 吞 吐 量 。 通 過ERASE_WR_BLK_START(CMD32) 和 ERASE_WR_BLK_END(CMD33) 實現寫數據塊的識別。令操作順序: ERASE_WR_BLK_START ,主機必須嚴格按照下列RASE_WR_BLK_END,and ERASE (CMD38)。如果不按順序接收到擦除指令(CMD38)或地址設置指令(CMD32,33),卡將在狀態(tài)寄存器中設置 ERASE_SEQ_ERROR 位,并重置整個順序(sequence)。令(除了 SEND_STATUS),卡將在狀態(tài)寄存器如果接收到一個不順序設置

34、ERASE_RESET 狀態(tài)位,重置擦除順序和執(zhí)行最后令。如果擦除范圍包括寫保護扇區(qū),將不被擦除,擦除命令只擦除無保護的扇區(qū)。狀態(tài)寄存器的 WP_ERASE_SKIP 位將設置。地址設置命令中的地址是以字節(jié)為的塊寫地址??▽⒑雎运行∮赪RITE_BLK_LEN(CSD)LSB(最低有效位)。如上所述的塊寫操作,卡通過保持DAT0為低電平指示擦除操作正在進行中。實際的擦除操作時間可能會很長,主機可以通過 CMD7不選中卡或執(zhí)行卡斷開操作??ㄉ喜脸僮骱蟮臄祿椤?”或“1”,由卡制造商確定。SCR 寄存器的DATA_STAT_AFTER_ERASE(bit55)定義了是“0”或“1”。4.4寫

35、保護管理寫保護方法如下:l機械寫保護開關(由主機負責)l部寫保護(由卡負責)l保護鎖操作4.4.1機械寫保護開關4.4.2部寫保護4.4.3密碼保護鎖操作5時鐘SD 卡主機可以使用 SD 卡總線時鐘信號設置卡進入節(jié)能模式或總線上的數據流。主機可以降低時鐘頻率或直接關閉。SD 卡主機必須遵循下列約束:l總線頻率可以在任何時候改變(滿足最大和最小值的約束)。lACMD41(SD_APP_OP_COND)是一個例外。ACMD41命令后,主機將執(zhí)行下面步驟1和步驟2直到卡進入就緒狀態(tài):1)持續(xù)100KHZ-400KHZ 之間的時鐘頻率。2)如果主機要停止時鐘,通過 ACMD41命令以小于50ms 的間

36、隔設置 busy 位。6 CRC 7錯誤條件 7.1 CRC 和命令8命令 8.1卡類型共有四類用來SD 卡令:l廣播命令(bc),無響應廣播命令只有在所有 CMD 線一起連接到主機時才能使用。如果連接,那么每個卡將單獨接收命令。l帶響應的廣播命令(bcr)所有卡同時響應。因為 SD 卡沒有開漏模式,這個命令只有在所有的 CMD 線時采用使用。該命令將被每個卡分別接收和響應。(OPEN DRAIN 輸出只能做輸出口,當外部無上拉電阻時,該口為高阻狀態(tài)。只有外部有上拉電阻時,才有可能輸出高或低的電平。)l尋址(點對點)命令(ac)DAT 上沒有數據傳輸。l尋址(點對點)數據傳輸命令(adtc)D

37、AT 上傳輸數據。所有令和響應通過 CMD 線傳輸。8.2命令格式命令長度48位,1.92us25MHZ7-bit CRC 計算: G(x) = x7 + x3 + 1M(x) = (start bit)*x39 + (host bit)*x38 +.+ (last bit before CRC)*x0CRC6.0 =余數(M(x)*x7)/G(x)01bit 5.bit 0bit31.bit 0bit 6.bit 01起始位host命令參數CRC7end bit8.3命令分類SD 卡命令集分為幾個類,每個類支持一個卡功能集合操作。0123456789-11支持命令基本保留讀塊保留寫塊擦除寫保

38、護鎖應用保留CMD0+CMD2+CMD3+CMD4+CMD7+CMD9+CMD10+CMD12+CMD13+CMD15+CMD16+CMD17+CMD18+CMD24+CMD25+CMD27+CMD28+CMD29+CMD30+8.4詳細命令描述*所有無用位必須填入,但是值 irrelevant表4-3基本命令(類0和類1)命令索引類型參數響應縮寫描述CMD0bc31:0無用GO_IDLE_STATE重置所有卡到 Idle狀態(tài)CMD1保留CMD2bcr31:0無用R2ALL_SEND_CID要求所有卡CID 號CMD3Bcr31:0無用R6SEND_RELATIVE_ADDR要求所有卡發(fā)布一個

39、新的相對地址RCACMD32+CMD33+CMD38+CMD42+CMD55+CMD56+ACMD6+ACMD13+ACMD22+ACMD23+ACMD41+ACMD42+ACMD51+CMD4不支持CMD5保留CMD6保留CMD7ac31:16RCA 15:0無用R1(只來自選中的卡)選中/不選中卡Command toggles a card between the Stand-by and Transfer states or between the Programming and Disconnect state. In both cases the card is selected b

40、y its own relative address and deselected by any other address; address 0 deselects all. When the RCA equals 0, the host may do one of the following:use other RCA number to perform card deselectionOrre-send CMD3 to change its RCA number to otherthen 0 and then use表4-4塊讀操作命令(類2)命令索引類型參數響應縮寫描述CMD16ac3

41、1:0塊長度R1SET_BLOCKLEN為接下來的塊操作指令設置塊長度CMD17adtc31:0數據R1READ_SINGLE_BLOCK一個塊CMD7 with RCA=0 for cardde-selection.CMD8保留CMD9ac31:16RCA 15:0無用R2SEND_CSD尋址卡并讓其卡定義數據 CSDCMD10ac31:16 RCA15:0無用R2SEND_CID尋址卡并讓其 卡識別號 CIDCMD11adtc31:0數據地址R1READ_DAT_UNTIL_STO P從卡數據流,從給定地址開始,知道停止傳輸命令結束CMD12ac31:0無用R1bSTOP中止多個塊的讀/寫

42、操作CMD13ac31:16 RCA15:0無用R1SEND_STATUS尋址卡并卡狀態(tài)寄存器CMD14保留CMD15ac31:16 RCA15:0無用_GO_INACTIVE_STATE設置卡到inactive 狀態(tài)表4-5塊寫操作命令(類4)表4-6寫保護(類6)命令索引類型參數響應縮寫描述CMD28ac31:0數據地址R1bSET_WRITE_PROT設址組保護位。寫保護由卡配置數據的WP_GRP_SIZE 指定CMD29ac31:0數據地址R1bCLR_WRITE_PROT清除保護位CMD30adtc31:0寫保護R1SEND_WRITE_PROT要求卡寫保護位狀態(tài)命令索引類型參數響應

43、縮寫描述CMD24adtc31:0數據地址R1WRITE_BLOCK寫一個長度由SET_BLOCKLEN 指定的塊CMD25adtc31:0數據地址R1WRITE_ MULTIPLE_BLOCK連續(xù)寫多個塊直到STOP_TRANSMISSION命令CMD26不支持CMD27adtc31:0無用R1PROGRAM_CSD編輯 CSD 位地址CMD18adtc31:0數據地址R1READ_MULTIPLE_BLOCK連續(xù)多個塊,直到停止命令CMD19-23保留表4-7擦除命令(類5)表4-7擦除命令(類5)命令索引類型參數響應縮寫描述CMD32ac31:0數據地址R1ERASE_WR_BLK_ST

44、AR T設置要擦除的第一個寫數據塊地址CMD32ac31:0數據地R1ERASE_WR_BLK_END設置要擦除的最后一個寫數據塊地址命令索引類型參數響應縮寫描述CMD32ac31:0數據地址R1ERASE_WR_BLK_STAR T設置要擦除的第一個寫數據塊地址CMD32ac31:0數據地址R1ERASE_WR_BLK_END設置要擦除的最后一個寫數據塊地址CMD34 CMD37保留CMD38ac31:0無用R1bERASE擦除所有選中的寫數據塊CMD39 CMD41保留數據地址CMD31保留表4-8卡鎖命令(類7)表4-9應用相關(Application Specific)命令(類8)命令

45、索引類型參數響應縮寫描述CMD55ac31:16 RCA15:0填充位R1APP_CMD告訴卡接下來令是應用相關命令,而非標準命令。CMD56adtc31:1填充位0:RD/WR,1讀,0寫R1GEN_CMD應用相關(通用目的)的數據塊讀寫命令CMD57保留命令索引類型參數響應縮寫描述CMD42.CMD54SDA 可選命令址CMD34 CMD37保留CMD38ac31:0無用R1bERASE擦除所有選中的寫數據塊CMD39 CMD41保留*命令相關命令,可能指 SD 卡命令所有應用相關命令之前必須先執(zhí)行 APP_CMD(CMD55)。表4-10 SD 卡使用/保留的應用相關命令ACMD索引類型參數響應縮寫描述ACMD6ac31:2填充位1:0總線寬度R1SET_BUS_WIDTH00:1bit 10:4bitACMD13adtc31:0填充位R1SD_STATUS設置 SD 卡狀態(tài)ACMD17保留ACMD18-保留作為 SD 安全應用ACMD1

溫馨提示

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

評論

0/150

提交評論