1. 前言
- data可以經data線從host發往device,也可以從device發往host
- 數據線以是1線(DATA0),4線(DATA0~DATA3),8線(DATA0~DATA7)
- 對每條數據線,每個時鍾周期可以傳輸1bit(single data rate)和2bits(dual data rate)數據
2. data傳輸
eMMC傳輸是以block為單位,每個block后跟一個CRC,無論是讀或寫都允許單個或多個block傳輸,對於多block傳輸是以host發送一個stop命令為結束。
2.1 多block讀
圖 multiple block read
Host 從 eMMC Device 讀取數據的流程如上圖所示。
如果 Host 發送的是 Single Block Read 的 Command,那么 eMMC Device 只會發送一個 Block 的數據(一個 Block 的數據的字節數由 Host 設定或者為 eMMC Device 的默認值,更多細節請參考 eMMC 工作模式 章節)。
如果 Host 發送的是 Multiple Block Read 的 Command,那么 eMMC Device 會持續發送數據,直到 Host 主動發送 Stop Command。
NOTE:從 eMMC Device 讀數據都是按 Block 讀取的。
2.2.多block寫
圖 multiple block write
Host 向 eMMC Device 寫入數據的流程如上圖所示。
如果 Host 發送的是 Single Block Write Command,那么 eMMC Device 只會將后續第一個 Block 的數據寫入的存儲器中。
如果 Host 發送的是 Multiple Block Write Command,那么 eMMC Device 會持續地將接收到的數據寫入到存儲器中,直到 Host 主動發送 Stop Command。
eMMC Device 在接收到一個 Block 的數據后,會進行 CRC 校驗,然后將校驗結果通過 CRC Token 發送給 Host。
發送完 CRC Token 后,如果 CRC 校驗成功,eMMC Device 會將數據寫入到內部存儲器時,此時 DAT0 信號會拉低,作為 Busy 信號。Host 會持續檢測 DAT0 信號,直到為高電平時,才會接着發送下一個 Block 的數據。如果 CRC 校驗失敗,那么 eMMC Device 不會進行數據寫入,此次傳輸后續的數據都會被忽略。
NOTE:向 eMMC Device 寫數據都是按 Block 寫入的。
2.3 No Data
在 Host 與 eMMC Device 的通信中,有部分交互是不需要進行數據傳輸的,還有部分交互甚至不需要 eMMC Device 的回復 Response。
3.參考文檔
[1]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf