SD3 0協議解讀四

2021-08-30 19:22:37 字數 1983 閱讀 1220

前面的文章提到過sd卡主要分為兩個操作模式,一是初始化和識別操作模式,另一種就是這篇文章需要分析的資料傳輸模式啦。

資料傳輸模式:

資料傳輸模式主要有六種狀態,分別是stand-by狀態、transfer狀態、sending-data狀態、receive-data狀態、programming狀態、disconnect狀態。這六種狀態通過不同的command就可以切換到某種狀態,換句話說,這六種狀態貫穿了整個資料傳輸模式。

要理解資料傳輸模式的流程,老衲認為除了理解這六種狀態,還需要對commands有一定的了解,越熟悉越好,當然,這並不是叫你去背commands。好了,我們來看看資料傳輸模式的流程框圖:

資料傳輸模式(翻譯):

在sd卡識別模式結束之前,控制器使用的時鐘頻率均為fod。在資料傳輸模式,控制器可能會使用fpp頻率。控制器傳送一條ssend_csd(cmd9)命令來獲取sd卡csd暫存器(card specific data)裡面的描述值,譬如,塊長度,卡容量資訊等。廣播命令set_dsr(cmd4)配置所有識別卡的驅動段。對應於應用匯流排layout(長度),卡的數量和資料傳輸頻率,這個命令設定dsr暫存器。時鐘頻率在那個點上也應該從fod切換fpp。set_dsr命令對host和卡都是可選的。

cmd7 用來選擇乙個卡並將它置於傳輸狀態(transfer  state),在任何時間只能有乙個卡處於傳輸狀態。 如果已有乙個卡處於傳輸狀態, 它和主機的連線將釋放,並返回到 stand-by狀態。當 cmd7 以保留相對位址「0x0000」傳送時,所有卡將返回到 stand-by 狀態。這可以用來識別新的卡而不重置其他已註冊的卡。 在這種狀態下已有乙個 rca 位址的卡不響應識別命令(acmd41,cmd2,cmd3)

資料傳輸模式下各個狀態的轉換關係總結如下:

·所有的資料讀命令都可以被停止命令(cmd12)在任意時刻終止。資料傳輸會終止,sd卡返回transfer狀態。讀命令有:塊讀操作(cmd17)、多塊讀操作(cmd18)、傳送寫保護(cmd30)、傳送scr(acmd51)以及讀模式下的普通命令(cmd56)。

·所有的資料寫命令都可以被停止命令(cmd12)在任意時刻終止。寫命令也會在取消選擇命令(cmd7)之前停止。寫命令有:塊寫操作(cmd24,cmd25)、程式設計命令(cmd27)、鎖定/解鎖命令(cmd42)以及寫模式下的普通命令(cmd56)。

·資料傳輸一旦完成,sd卡會退出資料寫狀態,進入programming狀態(傳輸成功)或者transfer狀態(傳輸失敗)如果塊寫操作被叫停,但是寫操作包含的最終塊其長度和crc校驗是正確的話,資料會被程式設計到sd卡(從快取寫入到flash)。

·卡可能提供塊寫緩衝。 這意味著在前一塊資料被操作時,下一塊資料可以傳送給卡。如果所有卡寫緩衝已滿, 只要卡在 programming state, dat0 將保持低電平(busy)。

·寫csd、cid、寫保護和擦除時沒有緩衝。這表明在卡因這些命令而處於忙時,不再接收其他資料傳輸命令。 在卡忙時 dat0 保持低電平, 並處於 programming state。實際上如果 cmd 和 dat0 線分離,而且主機占有的忙 dat0 線和其他 dat0 線分開,那麼在卡忙時,主機可以訪問其他卡。

·在卡被程式設計(programming)時,禁止引數設定命令。引數設定命令包括:設定塊長度(cmd16),擦除塊開始(cmd32)和擦除塊結束(cmd33)。卡在操作時不允許讀命令。

·使用 cmd7 指令把另乙個卡從 stand-by 狀態轉移到 transfer 狀態不會中止擦除和程式設計(programming)操作。卡將切換到 disconnect 狀態並釋放 dat 線。

·使用 cmd7 指令可以不選中處於 disconnect 狀態的卡。卡將進入 programming 狀態,重新啟用忙指示。

·使用 cmd0 或 cmd15 重置卡將中止所有掛起和活動的程式設計(programming)操作。這可能會破壞卡上的資料內容,需要主機保證避免這樣的操作。cmd34-37 cmd50,cmd57保留。

-

SD3 0協議解讀一

前言 老衲我近期研究的是sd mmc卡驅動,研究過的sd mmc驅動的貧僧們都應該知道sd mmc協議是必不可少的一部分,除非你不想研究透sd mmc驅動,那你大可只研究driver mmc host目錄下的檔案即可。說到sd mmc協議,網上一搜,sd3.0的協議只有英文版的資料,要想真正理解協議...

SD3 0協議解讀三

sd卡功能描述 所有主機和sd卡間的通訊都是由主機控制的,這和usb是一致的,例如 u盤並沒有主動通知usb控制器的能力,usb滑鼠也沒有主動通知usb控制器的能力,當然,sd卡也是沒有主動通知sd控制器的能力的。主機傳送的命令有兩種,一種是一對多,另一種自然是一對一了,他們分別是 1.廣播命令 廣...

STEP協議解讀

step協議解讀 liyayawodeai 163.com 0.step協議是什麼?step securities trading exchangeprotocol,是中國金融行業資料通訊標準jr t0022 2004,目前被深圳交易所採用,作為leveii資料向資訊服務商分發的資料的標準協議。本文...