我想看一级黄色视频-我想看中国的1级日逼片-国产一级婬片A片AAA情欲王朝-黄色片一级AAA-韩日一级免费在线-黃色一级毛片APP-欧美老人一级特黄A片免费-成人一级免费在线观看-一级大黄免费网站大全

┃新聞中心
SD卡協議學習點滴
來源:作者:點擊數:$arr['hits']

  SD卡有所謂操作模式(operation mode)的概念,每種操作模式又具體對應一種或多種狀態,主機通過發送命令可以使SD卡在不同的狀態間轉換,SD卡則接受命令,并根據自己現在所處狀態做出不同的響應。
  系統上電時刻或者搜尋SD卡時,SD卡控制器應該處于SD卡識別模式;SD卡在剛接入系統時刻也處于這種模式,并且處于此模式下的Idle狀態。
  SD卡識別模式:在這種模式下,控制器會檢驗SD卡的工作電壓范圍,識別SD卡類型,并要求它們發送各自的相對地址(Relative Card Address);這些操作在SD卡各自的CMD線上進行。所有的操作均使用默認的 SD卡識別時鐘頻率(identification clock rate)
  SD卡復位:發送GO_IDLE_STATE(CMD0)到SD卡后,除處于非活動狀態(Inactive state)之外的SD卡都會進入空閑狀態(Idle state);在Idle狀態,SD卡的CMD線處于輸入模式,默認相對地址為0x0000,默認驅動寄存器設定為低速度,大驅動電流能力。
  工作條件檢測
  在控制器和SD卡進行任何通信之前,控制器不清楚SD卡支持的工作電壓范圍,故而控制器使用默認的電壓發送一條reset指令(CMD0),緊跟著的CMD8指令,用于取得SD卡支持工作電壓范圍數據。SD卡通過檢測CMD8的參數部分來檢查控制器使用的工作電壓,控制器通過分析回傳的CMD8參數部分來校驗SD卡是否可以在所給電壓下工作。如果SD卡可以在指定電壓下工作,則它回送CMD8的命令響應字,其中包含check voltage, check pattern。如果SD卡不支持所給電壓,則SD卡不會給出任何響應信息,并繼續處于Idle狀態。在PLV2.0(physical layer version2.0)下,在一次執行ACMD41之前,執行CMD8指令,用以初始化SDHC卡,SDHC卡根據是否接收到CMD8指令來鑒別控制器是否支持PLV2.0協議。使用低電壓的控制器也在ACMD41命令之前發送CMD8,避免可以工作在兩種電壓模式下的SD卡因為沒有接收到CMD8, 而默認工作在高電壓環境下,被誤認為是只支持高電壓工作模式。 
  SD_SEND_OP_COND(ACMD41)命令的目的是給予SD卡控制器一個識別SD卡是否可以在所給Vdd范圍下工作的機制,如果SD卡無法在指定Vdd范圍內工作,則它會進入非活動狀態(Inactive state)。要注意的是,ACMD41是應用相關型命令,因而,每次發出的ACMD41命令都緊跟在一條APP_CMD(CMD55)命令之后。在空閑態(Idle State)下使用的CMD55命令使用默認的卡相對地址(RCA)0x0000。
  每次控制器發送CMD0復位SD卡后,都要重新進行系列初始化操作(CMD8,ACMD41...)。
  如果ACMD41指令的OCR比特位為0,控制器可以查詢各個SD卡,并決定它們共同的工作電壓范圍。在作為查詢的ACMD41指令發送之后,SD卡并不會開始初始化過程,直到控制器重新發送一條ACMD41指令。
  SD卡初始化和識別過程:
  在CMD8命令發送之后的ACMD41指令其功能有所擴展,在參數里多了HCS部分,在響應里面多了CCS(Card Capacity Status)部分。HCS參數會被不響應CMD8命令的SD卡所拋棄。控制器向不響應CMD8的卡發送ACMD41指令時,HCS位應該設置為零0。如果向SDHC卡發送HCS位為0的ACMD41命令,SDHC卡返回的響應,其busy標識位永遠為0,代表忙狀態。HCS標識位用來表明SD卡是否已經完成初始化,如果未完成,HCS為零,否則為1,如果HCS為0,控制器會重復發送ACMD41指令,SD卡只檢查一次接收到的ACMD41指令的HCS位。
  響應CMD8的SD卡發送的對于ACMD41指令響應會包含CCS部分,控制器只檢查HCS標志位為1的響應所包含的CCS位。CCS=1表明其為SDHC卡,否則為標準SD卡。
  控制器隨后發送ALL_SEND_CID(CMD2)命令,查詢各個卡的CID(unique card identification)值,還沒有被識別的SD卡(處于Ready狀態)會發送CID值作為響應,發送完CID值之后,SD卡進入識別狀態(Identification state),然后控制器發送CMD3(SEND_RELATIVE_ADDR)命令,要求各個SD卡發送一個新的相對地址(RCA),RCA在之后的數據傳輸模式中用于尋址。RCA發送完之后。SD卡進入Stand-by狀態,在這個狀態,如果控制器想要給SD卡分配一個新的RCA,它可以發送另一條CMD3命令給SD卡。一后發布的RCA為SD卡的真實RCA。
  數據傳輸模式:
  在SD卡識別模式結束之前,控制器使用的時鐘頻率均為Fod。在數據傳輸模式,控制器可能會使用Fpp頻率。控制器發送一條SSEND_CSD(CMD9)命令來獲取SD卡CSD寄存器(Card Specific Data)里面的描述值,譬如,塊長度,卡容量信息等。廣播命令SET_DSR(CMD4)為各個已識別的SD卡配置驅動階段(??)。它會向SD卡的DSR寄存器寫入相關的信息。控制器的時鐘頻率也在這個時刻從Fod轉到Fpp。SET_DSR命令是可選的。
  CMD7命令用來選擇某個SD卡,使其進入Transfer狀態,在指定時間段內,只有一個卡能處于Transfer狀態。當某個先前被選中的處于Transfer狀態的SD卡接收到CMD7之后,會釋放與控制器的連接,并進入Stand-by狀態。當CMD7使用保留地址0x0000時,所有的SD卡都會進入Stand-by狀態。
  數據傳輸模式下各個狀態的轉換關系總結如下:
  所有的數據讀命令都可以被停止命令(CMD12)在任意時刻終止。數據傳輸會終止,SD卡返回Transfer狀態。讀命令有:塊讀操作(CMD17)、多塊讀操作(CMD18)、發送寫保護(CMD30)、發送scr(ACMD51)以及讀模式下的普通命令(CMD56)
  所有的數據寫命令都可以被停止命令(CMD12)在任意時刻終止。寫命令也會在取消選擇命令(CMD7)之前停止。寫命令有:塊寫操作(CMD24,CMD25)、編程命令(CMD27)、鎖定/解鎖命令(CMD42)以及寫模式下的普通命令(CMD56)數據傳輸一旦完成,SD卡會退出數據寫狀態,進入Programming狀態(傳輸成功)或者Transfer狀態(傳輸失敗)如果塊寫操作被叫停,但是寫操作包含的其長度和CRC校驗是正確的話,數據會被編程到SD卡(從緩存寫入到Flash?)
  SD卡可能會提供緩存模式,意思是前次寫入塊在編程到Flash的時刻,控制器可以接著發送下一塊的數據當寫緩存為滿時刻,并且SD卡處于Programming狀態,DAT0會保持為低電平(BUSY),表明其為忙狀態
  寫CSD,寫保護,擦除這些操作沒有緩存的功能,當SD卡正在處理這些命令的時候,其余的數據傳輸命令會被忽略。當SD卡為忙,并且處于Programming狀態的時候,DAT0也會被SD卡拉低,在SD卡處于Programming狀態時候,不允許控制器發送設置參數命令。設置參數命令有:設置塊長度(CMD16)、擦除塊開始(CMD32)以及擦除塊結束(CMD33)
在SD卡編程時刻,讀命令也是不允許的當把另一個卡從Stand-by狀態轉換為Transfer狀態的時候,正處于erase和Programming狀態的卡其操作不會終止,它會自動進入Disconnect狀態,釋放數據線。
  處于Disconnect狀態的卡可以通過發送CMD7命令使其脫離此狀態,并進入Programming狀態,并重新激活標識符復位SD卡(使用CMD0或者CMD15)會終止任何等待中或正在進行的Programming操作。這可能會損毀SD卡的數據CMD34-37 CMD50,CMD57保留。

上一篇:什么是SD卡?
下一篇:電子連接器制作的四個基本階段

傳 真:+86-755-23117612
聯系人:袁小姐 13560761757
郵 箱:yuanhaiying@huakaie.com
一廠:中國深圳市寶安區沙井鎮大王山第三工業區1棟8號
二廠:中國江西省上饒市鄱陽縣鄱陽鎮城北工業園區

如果您對我們的產品有任何的意見或建議,都可
以給我們留言,我們會第一時間給您回復!
If you have any questions or suggestion with our product
please don’t hesitate to leave us a message
we will get back to you as soon as possible. Sdfa
我們擁有專業的技術團隊,我們也真誠期待新的
血液的注入,我們竭誠邀您加入!

版權所有??  鄱陽縣華凱電子科技有限公司  贛ICP備14000094號-1  技術支持:logo b.png

鄱陽縣華凱電子科技有限公司

    SD卡協議學習點滴


      SD卡有所謂操作模式(operation mode)的概念,每種操作模式又具體對應一種或多種狀態,主機通過發送命令可以使SD卡在不同的狀態間轉換,SD卡則接受命令,并根據自己現在所處狀態做出不同的響應。
      系統上電時刻或者搜尋SD卡時,SD卡控制器應該處于SD卡識別模式;SD卡在剛接入系統時刻也處于這種模式,并且處于此模式下的Idle狀態。
      SD卡識別模式:在這種模式下,控制器會檢驗SD卡的工作電壓范圍,識別SD卡類型,并要求它們發送各自的相對地址(Relative Card Address);這些操作在SD卡各自的CMD線上進行。所有的操作均使用默認的 SD卡識別時鐘頻率(identification clock rate)
      SD卡復位:發送GO_IDLE_STATE(CMD0)到SD卡后,除處于非活動狀態(Inactive state)之外的SD卡都會進入空閑狀態(Idle state);在Idle狀態,SD卡的CMD線處于輸入模式,默認相對地址為0x0000,默認驅動寄存器設定為低速度,大驅動電流能力。
      工作條件檢測
      在控制器和SD卡進行任何通信之前,控制器不清楚SD卡支持的工作電壓范圍,故而控制器使用默認的電壓發送一條reset指令(CMD0),緊跟著的CMD8指令,用于取得SD卡支持工作電壓范圍數據。SD卡通過檢測CMD8的參數部分來檢查控制器使用的工作電壓,控制器通過分析回傳的CMD8參數部分來校驗SD卡是否可以在所給電壓下工作。如果SD卡可以在指定電壓下工作,則它回送CMD8的命令響應字,其中包含check voltage, check pattern。如果SD卡不支持所給電壓,則SD卡不會給出任何響應信息,并繼續處于Idle狀態。在PLV2.0(physical layer version2.0)下,在一次執行ACMD41之前,執行CMD8指令,用以初始化SDHC卡,SDHC卡根據是否接收到CMD8指令來鑒別控制器是否支持PLV2.0協議。使用低電壓的控制器也在ACMD41命令之前發送CMD8,避免可以工作在兩種電壓模式下的SD卡因為沒有接收到CMD8, 而默認工作在高電壓環境下,被誤認為是只支持高電壓工作模式。 
      SD_SEND_OP_COND(ACMD41)命令的目的是給予SD卡控制器一個識別SD卡是否可以在所給Vdd范圍下工作的機制,如果SD卡無法在指定Vdd范圍內工作,則它會進入非活動狀態(Inactive state)。要注意的是,ACMD41是應用相關型命令,因而,每次發出的ACMD41命令都緊跟在一條APP_CMD(CMD55)命令之后。在空閑態(Idle State)下使用的CMD55命令使用默認的卡相對地址(RCA)0x0000。
      每次控制器發送CMD0復位SD卡后,都要重新進行系列初始化操作(CMD8,ACMD41...)。
      如果ACMD41指令的OCR比特位為0,控制器可以查詢各個SD卡,并決定它們共同的工作電壓范圍。在作為查詢的ACMD41指令發送之后,SD卡并不會開始初始化過程,直到控制器重新發送一條ACMD41指令。
      SD卡初始化和識別過程:
      在CMD8命令發送之后的ACMD41指令其功能有所擴展,在參數里多了HCS部分,在響應里面多了CCS(Card Capacity Status)部分。HCS參數會被不響應CMD8命令的SD卡所拋棄。控制器向不響應CMD8的卡發送ACMD41指令時,HCS位應該設置為零0。如果向SDHC卡發送HCS位為0的ACMD41命令,SDHC卡返回的響應,其busy標識位永遠為0,代表忙狀態。HCS標識位用來表明SD卡是否已經完成初始化,如果未完成,HCS為零,否則為1,如果HCS為0,控制器會重復發送ACMD41指令,SD卡只檢查一次接收到的ACMD41指令的HCS位。
      響應CMD8的SD卡發送的對于ACMD41指令響應會包含CCS部分,控制器只檢查HCS標志位為1的響應所包含的CCS位。CCS=1表明其為SDHC卡,否則為標準SD卡。
      控制器隨后發送ALL_SEND_CID(CMD2)命令,查詢各個卡的CID(unique card identification)值,還沒有被識別的SD卡(處于Ready狀態)會發送CID值作為響應,發送完CID值之后,SD卡進入識別狀態(Identification state),然后控制器發送CMD3(SEND_RELATIVE_ADDR)命令,要求各個SD卡發送一個新的相對地址(RCA),RCA在之后的數據傳輸模式中用于尋址。RCA發送完之后。SD卡進入Stand-by狀態,在這個狀態,如果控制器想要給SD卡分配一個新的RCA,它可以發送另一條CMD3命令給SD卡。一后發布的RCA為SD卡的真實RCA。
      數據傳輸模式:
      在SD卡識別模式結束之前,控制器使用的時鐘頻率均為Fod。在數據傳輸模式,控制器可能會使用Fpp頻率。控制器發送一條SSEND_CSD(CMD9)命令來獲取SD卡CSD寄存器(Card Specific Data)里面的描述值,譬如,塊長度,卡容量信息等。廣播命令SET_DSR(CMD4)為各個已識別的SD卡配置驅動階段(??)。它會向SD卡的DSR寄存器寫入相關的信息。控制器的時鐘頻率也在這個時刻從Fod轉到Fpp。SET_DSR命令是可選的。
      CMD7命令用來選擇某個SD卡,使其進入Transfer狀態,在指定時間段內,只有一個卡能處于Transfer狀態。當某個先前被選中的處于Transfer狀態的SD卡接收到CMD7之后,會釋放與控制器的連接,并進入Stand-by狀態。當CMD7使用保留地址0x0000時,所有的SD卡都會進入Stand-by狀態。
      數據傳輸模式下各個狀態的轉換關系總結如下:
      所有的數據讀命令都可以被停止命令(CMD12)在任意時刻終止。數據傳輸會終止,SD卡返回Transfer狀態。讀命令有:塊讀操作(CMD17)、多塊讀操作(CMD18)、發送寫保護(CMD30)、發送scr(ACMD51)以及讀模式下的普通命令(CMD56)
      所有的數據寫命令都可以被停止命令(CMD12)在任意時刻終止。寫命令也會在取消選擇命令(CMD7)之前停止。寫命令有:塊寫操作(CMD24,CMD25)、編程命令(CMD27)、鎖定/解鎖命令(CMD42)以及寫模式下的普通命令(CMD56)數據傳輸一旦完成,SD卡會退出數據寫狀態,進入Programming狀態(傳輸成功)或者Transfer狀態(傳輸失敗)如果塊寫操作被叫停,但是寫操作包含的其長度和CRC校驗是正確的話,數據會被編程到SD卡(從緩存寫入到Flash?)
      SD卡可能會提供緩存模式,意思是前次寫入塊在編程到Flash的時刻,控制器可以接著發送下一塊的數據當寫緩存為滿時刻,并且SD卡處于Programming狀態,DAT0會保持為低電平(BUSY),表明其為忙狀態
      寫CSD,寫保護,擦除這些操作沒有緩存的功能,當SD卡正在處理這些命令的時候,其余的數據傳輸命令會被忽略。當SD卡為忙,并且處于Programming狀態的時候,DAT0也會被SD卡拉低,在SD卡處于Programming狀態時候,不允許控制器發送設置參數命令。設置參數命令有:設置塊長度(CMD16)、擦除塊開始(CMD32)以及擦除塊結束(CMD33)
    在SD卡編程時刻,讀命令也是不允許的當把另一個卡從Stand-by狀態轉換為Transfer狀態的時候,正處于erase和Programming狀態的卡其操作不會終止,它會自動進入Disconnect狀態,釋放數據線。
      處于Disconnect狀態的卡可以通過發送CMD7命令使其脫離此狀態,并進入Programming狀態,并重新激活標識符復位SD卡(使用CMD0或者CMD15)會終止任何等待中或正在進行的Programming操作。這可能會損毀SD卡的數據CMD34-37 CMD50,CMD57保留。