emmc 命令協議



所有的命令都是固定的長度48位

所有命令都是以0開始的,緊接着是傳輸的方向(主機發出的就爲1,設備發出的就爲0),接下來的6位是命令的索引,這是一組二進制碼(0~63),設備就是對這六位譯碼,區分是哪種命令,還有一些命令需要arg值(比如地址),這一段的長度爲32位,所有的命令都會被CRC7保護着,所以CRC保護的是之前的40位,最後以1結束。

上升沿採樣,第一個bit爲0爲start位,第二個bit是1代表host發出,後面的6個bit爲011001爲cmd25寫數據指令,後面的32bit爲argument

命令的應答
應答也是由CMD傳輸的,由左邊的位開始傳輸,應答位的長度根據應答的類型而定。應答是以0開始的,緊接着是傳輸的方向(設備 = 0 ),接下來的值根據類型不一樣也不一樣,除了R3以外都會被CRC7保護着,每條命令都是以1結束的。
一共有五種類型的命令應答形式: R1 ,R1b,R2,  R3,  R4,  R5
R1:

該應答的長度爲48位,45:40顯示的是命令的索引,39:38是32位的設備狀態。
R1b和R1的區別只是在DAT0上存在忙信號的傳輸

R2:(CID、CSD寄存器)

該應答的長度爲136位,CID的內容會作爲CMD2和CMD10的應答發送給主機,CSD的內容會作爲CMD9的應答發送給主機,僅僅只有CID和CSD的[127:1]被傳輸,最後一位被應答的結束位所代替。

R3:(OCR寄存器)

該應答的長度爲48位,OCR寄存器的值會作爲CMD1的應答發送給主機。

 R4:(Fast IO)

該應答位的長度48位,ARG部分包括RCA的值、寄存器的值、寄存器的值, 如果操作成功,狀態位就會被置位

R5:(中斷請求)

該應答的長度爲48位,如果應答是主機自己發送的,那麼RCA的值爲0x0000。

注:
無論是單倍數據率模式還是雙倍數據率模式,主機的命令和設備的應答都是在時鐘的上升沿採樣的。



爲了讓大家看的更加直觀,我後面會陸續把各個應答的波形上傳上來,以供參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章