cmd0帶引數0xf0f0f0f0,go_pre_idle_state是軟體reset命令,使得裝置進入pre_idle狀態
cmd0帶引數0xfffffffa,該命令使得device進入boot operation mode,device將主動傳送資料到匯流排上,資料區域和大小由ecsd暫存器控制。
cmd0帶引數0x00000000, go_idle_state,reset 裝置,使得裝置進入idle狀態。
為了相容,如果裝置收到cmd0,並且引數不是0xfffffffa或者0xf0f0f0f0,那麼該命令會被看做reset命令
cmd1 如果裝置不支援boot mode,或者boot_partition_enable位被清除,power up後裝置會立刻進入idle狀態。在idle狀態,除非收到cmd1,裝置會忽略所有傳輸。對於emmc4.2之前的版本,device在上電後會立刻進入idle狀態。
cmd1是乙個特定的同步命令,用來協商操作電壓範圍以及檢視裝置是否仍處在power-up序列。cmd1的響應除了包含操作電壓profile,還包含乙個busy標記,用來指明裝置是否仍然處在power-up序列,沒有準備號identification
裝置應該在收到cmd1 1s內完成初始化,
cmd1 帶引數0x00ff8000或者0x00000800,表示host要使用的電壓值。
host傳送cmd1後,會從device收到r3,如果r3中busy bit為0,表示device還沒準備好。host重**送cmd1,接收r3這個過程。
cmd2 all_send_cid 用來從device獲取cid,r2用來用來返回device's cid。
cmd3 set_relative_addr 用來給設定裝置的relative device address(rca),裝置收到cmd3後,會立刻從identification mode進入stand-by state,並且不會再響應任何identification。
cmd4 用來設定device的dsr(device stage register)暫存器
cmd5 sleep/awake
用來切換裝置到sleep state或者standby state。裝置在sleep state的電源消耗是最小的,在這個狀態下裝置僅響應reset命令(cmd0 引數為0x00000000或者0xf0f0f0f0)和sleep/awake命令(cmd5),其他命令都會被忽略。
sleep command: cmd5 引數bit15為1; awake command: cmd引數bit15為0
cmd6 switch
切換裝置的操作模式或者修改ext_csd暫存器,switch命令可以用來寫ext_csd或者改變命令集。如果switch命令用來改變命令集,那麼index和value被忽略不會修改ext_csd; 如果switch用來寫ext_csd暫存器,cmd set被忽略。
cmd6引數
[31:26] set to 0
[25:24] access, 00 切換command set; 01 設定value中指定的位; 10 清除value中指定的位; 11 寫入value指定的值。
[23:16] index, ext_csd的索引值,index值為0~255,但是僅僅0~191為有效索引值。
[15:8] value,
[7:3] set to 0
[2:0] cmd set ,要切換的command set
cmd7 select/deselect_card
當裝置處在stand-by狀態,cmd7把裝置從stand-by state切換到transfer state;也可以把裝置從transfer state切換回stand-by state.
當裝置處在disconnect狀態,cmd7把裝置從disconnect state切換到programming state
在以上兩種情況下,使用當前的rca會選擇裝置,任何其他rca 位址都會取消選擇。使用rca 0x0000表示取消選擇。
cmd8 send_ext_csd
請求裝置傳送它的ext_csd暫存器,通過資料塊的方式傳送。
cmd9 send_csd
引數指定裝置的rca [31:16] rca
請求裝置傳送它的device-specific data(csd)到cmd line上。
cmd10 send_cid
引數指定裝置的rca [31:16] rca
請求裝置傳送它的device identification(cid)到cmd line上
cmd12 stop_transmission
引數指定裝置的rca [31:16]
所有的read commands: cmd17 cmd18 cmd21 cmd30,都可以在任意時刻被cmd12打斷。裝置會返回到transfer state
所有的write commands: cmd24 cmd25 cmd26 cmd27,都可以被cmd12中止,但是要求在傳送cmd7之前傳送。
cmd13 send_status
引數 [31:16] 裝置的rca, [0] hpi flags。
請求裝置傳送它的狀態暫存器,如果設定了hpi flag,那麼裝置會在乙個定義良好的時間內中斷。
cmd14 bustest_r
主機從裝置端讀取測試模式資料
cmd15 go_inactive_state
引數[31:16]指定裝置的rca
設定裝置狀態為inactive
cmd19 bustest_w
host傳送匯流排測試模式資料到device
cmd16 set_blocklen
引數[31:0] block長度
設定接下來所有block命令(讀和寫)的block尺寸。預設的塊長度在csd中指定。
cmd17 read_single_block
引數[31:0] data block位址
讀取引數指定位址的資料塊,塊長度是cmd16設定的(或者使用預設block size)
cmd18 read_multiple_block
引數[31:0] data block的首位址
連續從裝置讀取資料塊到host,直到被stop命令中斷,或者已經達到請求的資料塊數量
cmd21 send_tuning_block
hs200模式專用,用來優化host取樣點,host傳送cmd21命令,device傳送tuning模式資料塊。host會在不同取樣點採集資料,找到最佳取樣點。
cmd23 set_block_count
引數:[30] '0' non-packed '1' packed
[24] forced programming, 設定為1,強迫資料直接寫入儲存介質,而不是僅寫入cache
[15:0] number of blocks,
定義讀寫塊數目
cmd24 write_block
引數[31:0] 資料塊位址
協議個資料塊到裝置中,尺寸由之前的cmd16 set_blocklen定義
cmd25 write_multiple_block
引數[31:0] 資料塊起始位址
連續資料塊,直到stop_transmission或者已經寫完了請求的資料塊。
cmd26 program_cid
寫裝置cid暫存器。這個命令只能燒寫一次,正常情況下是製造商使用這個命令。
cmd27 program_csd
更改csd中的可程式設計位
cmd49 set_time
設定device的real time clock,device使用這個時鐘做一些內部維護工作。
這個命令類似cmd24 write_block,會傳送乙個rtc information 資料塊。
cmd28 set_write_prot
引數 [31:0] 資料塊位址
如果裝置支援寫保護功能,這個命令設定指定位址組的寫保護位
cmd29 clr_write_prot
引數[31:0] 資料塊位址
如果裝置提供了寫保護功能,這個命令清除指定位址組的寫保護位
cmd30 send_write_prot
引數 [31:0] 寫保護資料位址
class_6_ctrl=0x00: 如果裝置支援寫保護功能,這個命令請求裝置傳送寫保護位狀態
class_6_ctrl=0x01: 命令用來請求裝置傳送released組狀態,0表示給定的組有效可訪問,1表示給定組被released無法使用。
cmd31 send_write_prot_type
引數[31:0] 寫保護起始位址
class_6_ctrl=0x00: 請求裝置傳送不同寫保護組的寫保護型別,64個寫保護位(代表32個寫保護組),通過資料線傳遞。如果組的有效位址已經在有效範圍之外,那麼被填充為0
class_6_ctrl=0x01:
cmd35 erase_group_start
引數[31:0] 對於=<2g的介質,表示32bits byte位址,對於》2gb介質,是32bits sector位址,會按照erase group對齊。
該命令設定erase操作的首earse group位址。
cmd36 erase_group_end
引數[31:0]對於=<2g的介質,表示32bits byte位址,對於》2gb介質,是32bits sector位址,會按照erase group對齊。
該命令設定erase操作的最後乙個erase group位址。
cmd38 erase
刪除前面選擇的所有earse block
cmd39 fast_io
引數[31:16] rca,
[15:15] 暫存器寫標誌
[14:8] 暫存器位址
[7:0] 暫存器值
這個命令用來讀寫8bit暫存器資料,r4響應用來返回讀資料。這個命令訪問應用特定的暫存器(未在emmc標準中定義的)
cmd40 go_irq_state
設定裝置進入中斷模式
eMMC 原理 2 eMMC 簡介
emmc 是 embedded card 的簡稱。card,即 mmc,是一種快閃儲存器卡 flash memory card 標準,它定義了 mmc 的架構以及訪問 flash memory 的介面和協議。而 emmc 則是對 mmc 的乙個拓展,以滿足更高標準的效能 成本 體積 穩定 易用等的需...
eMMC效能分析
emmc embedded multi media card 為mmc協會所訂立的 主要是針對手機產品為主的內嵌式儲存器標準規格。emmc的乙個明顯優勢是在封裝中整合了乙個控制器,它提供標準介面並管理快閃儲存器,使得手機廠商就能專注於產品開發的其它部分,並縮短向市場推出產品的時間。對其效能的評定,主...
eMMC協議概述
原文 emmc協議概述 it利刃出鞘的部落格 csdn部落格 專案 位置備註 速度模式 5.3.2 bus speed modes 裝置狀態與操作模式 6.1 e mmc overview table 5 cmd line modes overview boot id等流程 6.3 boot ope...