色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SD NAND 的 SDIO在STM32上的應(yīng)用詳解(中篇)

深圳市雷龍發(fā)展有限公司 ? 2022-11-25 09:44 ? 次閱讀

四.SDIO功能框圖(重點)

SDIO包含2個部分:
● SDIO適配器模塊:實現(xiàn)所有MMC/SD/SD I/O卡的相關(guān)功能,如時鐘的產(chǎn)生、命令和數(shù)據(jù)的傳送。
● AHB總線接口:操作SDIO適配器模塊中的寄存器(由STM32控制SDIO外設(shè)),并產(chǎn)生中斷和DMA請求信號

poYBAGN97hGARvZEAAE0m2H1Dxc560.png


復(fù)位后默認情況下SDIO_D0用于數(shù)據(jù)傳輸,初始化后主機可以改變數(shù)據(jù)總線的寬度(SD卡1根或4根數(shù)據(jù)線)。

如果一個SD卡接到了總線上,可以通過主機配置數(shù)據(jù)傳輸使用SDIO_D0或SDIO_D[3:0] (使用一根或四根數(shù)據(jù)線)。所有的數(shù)據(jù)線都工作在復(fù)用推挽模式。

命令線也都工作在復(fù)用推挽模式

時鐘

SDIO使用兩個時鐘信號:
● SDIO適配器時鐘(SDIOCLK=HCLK)
● AHB總線時鐘(HCLK/2)經(jīng)過了分頻

SDIO_CK是卡的時鐘線:每個時鐘周期上升沿在命令和數(shù)據(jù)線上傳輸1位命令或數(shù)據(jù)。對于SD卡,時鐘頻率可以在0MHz至25MHz間變化。

poYBAGN97qqAHv1AAARTUI6ZkGc897.png

引腳定義

poYBAGN97oaAKB_ZAAEqbC8lx80788.png

接下來就是將SDIO框圖拆分研究各個模塊:

1.SDIO適配器

● SDIO適配器模塊:實現(xiàn)所有SD卡的相關(guān)功能,如時鐘的產(chǎn)生、命令和數(shù)據(jù)的傳送,而STM32可以通過AHB接口讀寫適配器寄存器從而控制SDIO外設(shè)讀寫SD卡(發(fā)送命令,接收響應(yīng),數(shù)據(jù)傳輸)。

poYBAGN97rmAC5KBAAFhlPuHxS8554.png

適配器寄存器和FIFO使用AHB總線一側(cè)的時鐘(HCLK/2),控制單元、命令通道和數(shù)據(jù)通道使用SDIO適配器一側(cè)的時鐘(SDIOCLK)

SDIO適配器包含以下5個部分

● 適配器寄存器模塊
● 控制單元
● 命令通道
● 數(shù)據(jù)通道
● 數(shù)據(jù)FIFO

1.適配器寄存器模塊
適配器寄存器模塊包含所有系統(tǒng)寄存器。

2.控制單元

控制單元包含電源管理功能和為存儲器卡提供的時鐘分頻

pYYBAGN97wiAdmevAAFAQ7AxxG4654.png

時鐘管理子單元產(chǎn)生和控制SDIO_CK信號。SDIO_CK輸出可以使用時鐘分頻或時鐘旁路模式。

電源關(guān)閉和電源啟動階段,電源管理子單元會關(guān)閉卡總線上的輸出信號則下述情況下沒有時鐘輸出:
● 復(fù)位后
● 在電源關(guān)閉和電源啟動階段
● 當啟動了省電模式并且卡總線處于空閑狀態(tài)(命令通道和數(shù)據(jù)通道子單元進入空閑階段后的8個時鐘周期)

3.命令通道(重點)

命令通道單元向SD卡發(fā)送命令,并接收SD卡的響應(yīng),命令與響應(yīng)都使用SDIO_CMD(命令線)進行傳輸。

poYBAGN97xqAclLaAAF1P4M6eMs354.png

1.主機(STM32SDIO外設(shè))發(fā)送命令給SD卡

1)命令參數(shù)寄存器

poYBAGN971qATx9eAAHygLEjR_M934.png

2)命令寄存器(命令索引(6位),命令使能位ENCMDcompl)

pYYBAGN973yAaQVmAASBWX31CFs009.png

SD 命令格式固定為 48bit,都是通過 CMD 線連續(xù)傳輸?shù)模〝?shù)據(jù)線不參與)。

poYBAGN_JGiAPG5dAAEwHOJxce8035.png

命令的主體包括:命令號,命令參數(shù)/地址信息,其他的(起始位,傳輸標志,CRC校驗,終止位)不管,后面再講。

pYYBAGN_JHqAHTEVAAHibxuHbt0588.png

如果命令不帶參數(shù),那SDIO參數(shù)寄存器默認為全1就好了

poYBAGN_JIiAfNxIAAJrYdOgASo963.png

2.主機(STM32SDIO外設(shè))接收SD卡的響應(yīng)

1)命令響應(yīng)寄存器

poYBAGN_JKmANVJOAAKmbSTMqpY111.png

2)SDIO相應(yīng)寄存器1~4

poYBAGN_JLiAVJGpAAN-Ljgrj54489.png

SDIO 總共有 7 個響應(yīng)類型(代號:R1~R7),其中 SD 卡沒有 R4、R5 類型響應(yīng),SD 卡的響應(yīng)也是通過 CMD 線連續(xù)傳輸?shù)摹8鶕?jù)響應(yīng)內(nèi)容大小可以分為短響應(yīng)和長響應(yīng)。短響應(yīng)是 48bit 長度,只有 R2 類型是長響應(yīng),其長度為 136bit。(關(guān)于響應(yīng)與命令后面馬上講)

pYYBAGN_JNCAR_QYAAKhnXgMdP8580.png

現(xiàn)在只需要知道,響應(yīng)由SD卡也是通過CMD(命令線)傳輸?shù)絊DIO(響應(yīng)中的命令號存放在SDIO的命令響應(yīng)寄存器中(如果響應(yīng)不帶命令號則不用管就好了),SD卡的狀態(tài)則存放在SDIO 響應(yīng)寄存器1~4)

主機接收SD卡響應(yīng)的流程:

poYBAGN_JNuAYFqSAAJu07XedkQ030.png

3.命令通道狀態(tài)機(CPSM)

當寫入命令寄存器并設(shè)置了使能位,開始發(fā)送命令。命令發(fā)送完成時,命令通道狀態(tài)機(CPSM)設(shè)置狀態(tài)標志并在不需要響應(yīng)時進入空閑狀態(tài)(見下圖)。

pYYBAGN_JOeAHycCAAQbIUKgs8Q646.png

一般發(fā)送命令接收響應(yīng)過程

pYYBAGN_JPWAE8onAARtcvR5qPY208.png

如果命令寄存器中設(shè)置掛起位,CPSM進入掛起(Pend)狀態(tài)并等待數(shù)據(jù)通道子單元發(fā)出的CmdPend信號,在檢測到CmdPend信號時,CPSM進入發(fā)送(Send)狀態(tài),這將觸發(fā)數(shù)據(jù)計數(shù)器發(fā)送停止命令的功能

poYBAGN_JQ6ABp3pAAD8Deyt930317.pngpYYBAGN_JROARru2AAQ9Io9JH7Q455.png

當進入等待(Wait)狀態(tài)時,命令定時器開始運行,當CPSM進入接收(Receive)狀態(tài)之前,產(chǎn)生了超時,則設(shè)置超時標志并進入空閑(Idle)狀態(tài)。
注: 命令超時固定為64個SDIO_CK時鐘周期。

poYBAGN_JSCAMRSAAARNpT-dqZA599.pngpYYBAGN_JSmAV_OiAAHm_dK6UoM962.pngpoYBAGN_JTCAJ8_dAAMnNQjlyVc869.png

然后那些狀態(tài)機CPSM被關(guān)閉,CRC校驗失敗等都會回到空閑狀態(tài)

最后這個發(fā)送命令等待響應(yīng)的過程,有很多狀態(tài)感覺會很復(fù)雜,其實我們只有啟用了CPSM狀態(tài)機可以不用管這些狀態(tài)轉(zhuǎn)化,我們只管發(fā)送命令,CPSM狀態(tài)機會幫我們處理好這些狀態(tài)。

pYYBAGN_JT6AJgqRAAE_Csm2B2k583.png

4.命令通道狀態(tài)標志

pYYBAGN_JU6AblIqAAPnRlYxz7I078.pngpYYBAGN_JVqAYGpOAAFss9-v-Sc273.png

5.CRC校驗
CRC發(fā)生器計算CRC碼之前所有位的CRC校驗和,包括開始位、發(fā)送位、命令索引和命令參數(shù)或卡狀態(tài))。對于長響應(yīng)格式,CRC校驗和計算的是CID或CSD的前120位;注意,長響應(yīng)格式中的開始位、傳輸位和6個保留位不參與CRC計算。

CRC反正不用管,硬件會幫我們自動校驗

4.數(shù)據(jù)通道

poYBAGN_KTaAJ8yVAAFlmQ1A1cs095.png

在時鐘控制寄存器中可以配置卡的數(shù)據(jù)總線寬度。如果選擇了4位總線模式,則每個時鐘周期四條數(shù)據(jù)信號線(SDIO_D[3:0])上將傳輸4位數(shù)據(jù);如果沒有選擇寬總線模式,則每個時鐘周期只在SDIO_D0上傳輸1位數(shù)據(jù)。(數(shù)據(jù)傳輸可以選擇1根或4根數(shù)據(jù)線關(guān)于SD卡)

1.數(shù)據(jù)FIFO

pYYBAGN_KUqAAsZQAAIf_vIn-Ik780.png

數(shù)據(jù)FIFO(先進先出)子單元是一個具有發(fā)送和接收單元的數(shù)據(jù)緩沖區(qū)。

FIFO包含一個每字32位寬、共32個字的數(shù)據(jù)緩沖區(qū),和發(fā)送與接收電路。因為數(shù)據(jù)FIFO工作在AHB時鐘區(qū)域(HCLK/2),所有與SDIO時鐘區(qū)域(SDIOCLK)連接的信號都進行了重新同步。依據(jù)TXACT和RXACT標志,可以關(guān)閉FIFO、使能發(fā)送或使能接收。TXACT和RXACT由數(shù)據(jù)通道子單元設(shè)置而且是互斥的:

─ 當TXACT有效時,發(fā)送FIFO代表發(fā)送電路和數(shù)據(jù)緩沖區(qū)
─ 當RXACT有效時,接收FIFO代表接收電路和數(shù)據(jù)緩沖區(qū)

pYYBAGN_KV-AWXmlAADx6ZiJ-EM195.png

發(fā)送FIFO:當使能了SDIO的發(fā)送功能,數(shù)據(jù)可以通過AHB接口寫入發(fā)送FIFO。

發(fā)送FIFO有32個連續(xù)的地址。發(fā)送FIFO中有一個數(shù)據(jù)輸出寄存器,包含讀指針指向的數(shù)據(jù)字。當數(shù)據(jù)通道子單元裝填了移位寄存器后,它移動讀指針至下個數(shù)據(jù)并傳輸出數(shù)據(jù)。如果未使能發(fā)送FIFO,所有的狀態(tài)標志均處于無效狀態(tài)。當發(fā)送數(shù)據(jù)時,數(shù)據(jù)通道子單元設(shè)置TXACT為有效。

pYYBAGN_KXyALui1AAH9BAjAbU0081.png

接收FIFO:當數(shù)據(jù)通道子單元接收到一個數(shù)據(jù)字,它會把數(shù)據(jù)寫入FIFO。

寫操作結(jié)束后,寫指針自動加一;在另一端,有一個讀指針始終指向FIFO中的當前數(shù)據(jù)。如果關(guān)閉了接收FIFO,所有的狀態(tài)標志會被清除,讀寫指針也被復(fù)位。在接收到數(shù)據(jù)時數(shù)據(jù)通道子單元設(shè)置RXACT。

下表列出了接收FIFO的狀態(tài)標志。通過32個連續(xù)的地址可以訪問接收FIFO。

poYBAGN_KY6ALyRQAAIRFKJ8umI946.png

2.數(shù)據(jù)通道狀態(tài)機(DPSM)

根據(jù)傳輸?shù)姆较?發(fā)送或接收),使能時數(shù)據(jù)通道狀態(tài)機(DPSM)將進入Wait_S或Wait_R狀態(tài):
● 發(fā)送:DPSM進入Wait_S狀態(tài)。如果發(fā)送FIFO中有數(shù)據(jù),則DPSM進入發(fā)送狀態(tài),同時數(shù)據(jù)通道子單元開始向卡發(fā)送數(shù)據(jù)。

pYYBAGN_KZ2AKjLkAAIUVSXPHDE029.png

接收:DPSM進入Wait_R狀態(tài)并等待開始位;當收到開始位時,DPSM進入接收狀態(tài),同時數(shù)據(jù)通道子單元開始從卡接收數(shù)據(jù)

pYYBAGN_KaiAeMTSAAIpkcy1_Yo934.png

DPSM工作在SDIO_CK頻率,卡總線信號與SDIO_CK的上升沿同步。DPSM有6個狀態(tài)(這下有的看了),如下圖所示:

poYBAGN_KbOARIxHAAQ7Gpl3big955.png

數(shù)據(jù)控制寄存器

poYBAGN_Kb-AUHWtAAX7c8aJHtY288.png

● 空閑(Idle):數(shù)據(jù)通道不工作,SDIO_D[7:0]輸出處于高阻狀態(tài)。當寫入數(shù)據(jù)控制寄存器并設(shè)置使能位時,DPSM為數(shù)據(jù)計數(shù)器加載新的數(shù)值,并依據(jù)數(shù)據(jù)方向位進入Wait_S或Wait_R狀態(tài)。

pYYBAGN_Kc-ABEiLAAMBRGWgPBk461.png

● Wait_R:如果數(shù)據(jù)計數(shù)器等于0,當接收FIFO為空時DPSM進入到空閑(Idle)狀態(tài)。如果數(shù)據(jù)計數(shù)器不等于0,DPSM等待SDIO_D上的開始位。如果DPSM在超時之前接收到一個開始位,它會進入接收(Receive)狀態(tài)并加載數(shù)據(jù)塊計數(shù)器。如果DPSM在檢測到一個開始位前出現(xiàn)超時,或發(fā)生開始位錯誤,DPSM將進入空閑狀態(tài)并設(shè)置超時狀態(tài)標志。

poYBAGN_KduAGpuWAATZ2VksRKo601.png

下面數(shù)據(jù)長度寄存器與數(shù)據(jù)計數(shù)寄存器詳情看圖就不在贅述了,關(guān)于這些寄存器會在最后的結(jié)構(gòu)章節(jié)詳細講解。

poYBAGN_Ke2AAbUGAAX2enWlSRo535.png

● 接收(Receive):接收到的串行數(shù)據(jù)被組合為字節(jié)并寫入數(shù)FIFO。根據(jù)數(shù)據(jù)控制寄存器中傳輸模式位的設(shè)置,數(shù)據(jù)傳輸模式可以是塊傳輸或流傳輸:
─ 在數(shù)據(jù)塊傳輸模式下,當數(shù)據(jù)塊計數(shù)器達到0時,DPSM等待接收CRC碼,如果接收到的代碼與內(nèi)部產(chǎn)生的CRC碼匹配,則DPSM進入Wait_R狀態(tài),否則設(shè)置CRC失敗狀態(tài)標志同時DPSM進入到空閑狀態(tài)。

pYYBAGN_Kf2AEJFGAAUZmDXkpns598.pngpoYBAGN_KgaAE-GTAALKgqWdJNU005.png

● Wait_S:如果數(shù)據(jù)計數(shù)器為0,DPSM進入空閑狀態(tài);否則DPSM等待數(shù)據(jù)FIFO空標志消失后,進入發(fā)送狀態(tài)

● 發(fā)送(Send):DPSM開始發(fā)送數(shù)據(jù)到卡設(shè)備。根據(jù)數(shù)據(jù)控制寄存器中傳輸模式位的設(shè)置,數(shù)據(jù)傳輸模式可以是塊傳輸或流傳輸:
─ 在塊模式下,當數(shù)據(jù)塊計數(shù)器達到0時,DPSM發(fā)送內(nèi)部產(chǎn)生的CRC碼,然后是結(jié)束位,并進入繁忙狀態(tài)

pYYBAGN_Kh2AbmvlAAULgTmKV1g957.png

● 繁忙(Busy):DPSM等待CRC狀態(tài)標志:

─ 如果沒有接收到正確的CRC狀態(tài),則DPSM進入空閑狀態(tài)并設(shè)置CRC失敗狀態(tài)標志。

─ 如果接收到正確的CRC狀態(tài),則當SDIO_D0不為低時(SD卡不繁忙)DPSM進入Wait_S狀態(tài)。(一般情況)

poYBAGN_Ki-AN2GDAAWFM8UZ5cU978.png

當DPSM處于繁忙狀態(tài)時發(fā)生了超時,DPSM則設(shè)置數(shù)據(jù)超時標志并進入空閑狀態(tài)。

當DPSM處于Wait_R或繁忙狀態(tài)時,數(shù)據(jù)定時器被使能,并能夠產(chǎn)生數(shù)據(jù)超時錯誤:
─ 發(fā)送數(shù)據(jù)時,如果DPSM處于繁忙狀態(tài)超過程序設(shè)置的超時間隔,則產(chǎn)生超時。
─ 接收數(shù)據(jù)時,如果未收完所有數(shù)據(jù),并且DPSM處于Wait_R狀態(tài)超過程序設(shè)置的超時間隔,則產(chǎn)生超時

pYYBAGN_Kj2AbRTOAAR7uUYczKk920.png

數(shù)據(jù)可以從主機傳送到卡,也可以反向傳輸。數(shù)據(jù)在數(shù)據(jù)線上傳輸。數(shù)據(jù)存儲在一個32字的FIFO中,每個字為32位寬,SD卡可以拉低SDIO_D0數(shù)據(jù)線表示卡正在忙碌.

最后反正數(shù)據(jù)傳輸中的狀態(tài)怎么復(fù)雜,其實數(shù)據(jù)通道狀態(tài)機(DPSM)會幫我們處理好這些狀態(tài)的轉(zhuǎn)換,我們只需要準備好發(fā)送和接收數(shù)據(jù)就好了

實在理不清清楚就了解一下,大概知道用那些寄存器位控制。

五.命令與響應(yīng)

SD 命令由主機發(fā)出,以廣播命令和尋址命令為例,廣播命令是針對與 SD 主機總線連接的所有從設(shè)備(SD卡)發(fā)送的,尋址命令是指定某個地址設(shè)備進行命令傳輸。

1.命令格式

SD 命令格式固定為 48bit,都是通過 CMD 線連續(xù)傳輸?shù)模〝?shù)據(jù)線不參與)

poYBAGN_KlCAMadGAAFTv0Dk0L0169.png

1.起始位和終止位:命令的主體包含在起始位與終止位之間,它們都只包含一個數(shù)據(jù)位,起始位為 0,終止位為 1。

2.傳輸標志:用于區(qū)分傳輸方向,該位為 1 時表示命令,方向為主機傳輸?shù)?SD 卡,該位為 0 時表示響應(yīng),方向為 SD 卡傳輸?shù)街鳈C。

3.命令主體內(nèi)容包括命令、地址信息/參數(shù)和 CRC 校驗三個部分。
命令號:它固定占用 6bit,所以總共有 64 個命令(代號:CMD0~CMD63),每個命令都有特定的用途,部分命令不適用于 SD 卡操作,只是專門用于 MMC 卡或者SD I/O 卡。(有些命令具有參數(shù)有些命令沒有參數(shù))

地址/參數(shù):每個命令有 32bit 地址信息/參數(shù)用于命令附加內(nèi)容,例如,廣播命令沒有地址信息,這 32bit 用于指定參數(shù),而尋址命令這 32bit 用于指定目標 SD 卡的地址。

CRC7 校驗:長度為 7bit 的校驗位用于驗證命令傳輸內(nèi)容正確性,如果發(fā)生外部干擾導(dǎo)致傳輸數(shù)據(jù)個別位狀態(tài)改變將導(dǎo)致校準失敗,也意味著命令傳輸失敗,SD卡不執(zhí)行命令。

2.命令類型

SD 命令有 4 種類型:

1.廣播命令(bc),無響應(yīng) — 廣播命令只有當所有的 CMD 線都一起連到主機上時才會用。如果是分開的,那么每張卡單獨處理命令。

2.廣播命令,帶響應(yīng)(bcr) — 所有卡同時響應(yīng),既然 SD 卡沒有開漏模式,這種命令應(yīng)該是所有的命令線都是分開的,命令也會每張卡分開接收和響應(yīng)。

3.尋址命令(ac,點對點) — 沒有數(shù)據(jù)在 DAT 線上

4.尋址數(shù)據(jù)傳輸命令(adtc) — 有數(shù)據(jù)在 DAT 線上

所有命令和響應(yīng)都是通過 SD 卡的 CMD 線發(fā)送的。命令的發(fā)送總是從最左邊的那一位開始

另外,SD 卡主機模塊系統(tǒng)旨在為各種應(yīng)用程序類型提供一個標準接口。在此環(huán)境中,需要有特定的客戶/應(yīng)用程序功能。為實現(xiàn)這些功能,在標準中定義了兩種類型的通用命令:
特定應(yīng)用命令(ACMD)和常規(guī)命令(GEN_CMD)。要使用 SD 卡制造商特定的 ACMD 命令如ACMD6,需要在發(fā)送該命令之前無發(fā)送 CMD55 命令,告知 SD 卡接下來的命令為特定應(yīng)用命令(因為特定應(yīng)用命令A(yù)CMD6與CMD6都表示為 000110 所以要區(qū)別的話發(fā)送特定命令之前先發(fā)送CMD55表示后面的 000110 表示ACMD6 )。
CMD55 命令只對緊接的第一個命令有效,SD 卡如果檢測到 CMD55 之后的第一條命令為 ACMD 則執(zhí)行其特定應(yīng)用功能,如果檢測發(fā)現(xiàn)不是 ACMD 命令,則執(zhí)行標準命令。

3.命令描述

反正下面的命名基本上用的到,這里記也記不住,先熟悉一下,后面講SD卡識別模式,SD傳輸模式,以及后面寫代碼的時候,用到的命令在提及。

pYYBAGN_KmeAA8n6AAsPDjmZIlc250.png

4.響應(yīng)類型

命令寄存器包含命令索引(發(fā)至卡的6位)和命令類型;命令本身決定了是否需要響應(yīng)和響應(yīng)的類型、48位還是136位。

poYBAGN_KnKAcUZPAAKd83Hal8g541.png

應(yīng)由 SD 卡向主機發(fā)出,部分命令要求 SD 卡作出響應(yīng),這些響應(yīng)多用于反饋 SD 卡的狀態(tài)。SDIO 總共有 7 個響應(yīng)類型(代號:R1~R7),其中 SD 卡沒有 R4、R5 類型響應(yīng)。特定的命令對應(yīng)有特定的響應(yīng)類型,比如當主機發(fā)送 CMD3 命令時,可以得到響應(yīng) R6。與命令一樣,SD 卡的響應(yīng)也是通過 CMD 線連續(xù)傳輸?shù)?。根?jù)響應(yīng)內(nèi)容大小可以分為短響應(yīng)和長響應(yīng)。短響應(yīng)是 48bit 長度,只有 R2 類型是長響應(yīng),其長度為 136bit。

R1(正常命令響應(yīng))

長度 48bit。bit [45:40]代表響應(yīng)的命令號(什么命令造成的響應(yīng))??ǖ臓顟B(tài)存儲在 bit [39:8]。很多命令基本是R1類型的響應(yīng)。

pYYBAGN_Kn-AQfltAADM2HSHYH4455.png

R1b響應(yīng):
R1b 就是 R1 響應(yīng)命令,同時數(shù)據(jù)線上有busy信號(SDIO_D0被拉低)。卡在收到這些命令后可能會變?yōu)閎usy。主機應(yīng)該在響應(yīng)中檢查 busy。

R2(CID,CSD 寄存器)長響應(yīng)

pYYBAGN_Ko2ALfBbAAEhRRhgLUA741.png

長度為 136bit。CID 寄存器的內(nèi)容作為 CMD2 和 CMD10 的響應(yīng)發(fā)送。CSD 寄存器的內(nèi)容作為 CMD9 的響應(yīng)發(fā)送。只傳輸 CID 和 CSD 寄存器的[127:1]位,這些寄存器的第[0]位被響應(yīng)的結(jié)束位替代了

pYYBAGN_KpiALQcxAADd03KeI5s408.png

R3(OCR 寄存器

長度 48bit,OCR 寄存器的值作為 ACMD41 的響應(yīng)發(fā)送

pYYBAGN_Kq6ASHd1AAEsXBROA9Q270.pngpoYBAGN_KruAR9yGAAD4OgEDVGA043.png

5 R6(發(fā)布的 RCA 寄存器響應(yīng))

長度 48bit。[45:40]是響應(yīng)的命令號,這里就是‘000011’,即 CMD3。參數(shù)中的 16 位MSB 用于產(chǎn)生 RCA 號

在這里插入圖片描述pYYBAGN_KsiAdKxmAAEZRy2Frxk527.png

R7(卡接口條件)
長度 48bit??ㄖС值碾妷盒畔⑼ㄟ^ CMD8 的響應(yīng)發(fā)送。Bit[19:16]表明卡支持的電壓范圍。卡接受提供的電壓范圍就返回 R7 響應(yīng)??〞陧憫?yīng)的參數(shù)中返回電壓范圍和檢查模式。

poYBAGN_KteALIpDAAHEEdDPZn4285.png

總結(jié):
1.命令本身決定了是否需要響應(yīng)和響應(yīng)的類型
2.響應(yīng)中除了 R3 類型之外,其他響應(yīng)都使用 CRC7 校驗來校驗,對于 R2 類型是使用 CID 和CSD 寄存器內(nèi)部 CRC7(如果響應(yīng)不包含CRC(如CMD1的響應(yīng)),設(shè)備驅(qū)動應(yīng)該忽略CRC失敗狀態(tài))。
3.有些響應(yīng)不一定返回命令號

六.SD卡/SD NAND功能描述(重重點)

SD 卡系統(tǒng)定義了兩種操作模式:
● 卡識別模式
在復(fù)位后,查找總線上的新卡的時候,主機會處于“卡識別模式”。卡在復(fù)位后會處于識別模式,直到收到 SEND_RCA(CMD3)命令.
● 數(shù)據(jù)傳輸模式
當 RCA (相當于SD卡的ID號)第一次發(fā)布后,卡會處于“數(shù)據(jù)傳輸模式”。主機會在總線上所有的卡都被識別后進入這個模式

pYYBAGN_KuyABODdAAMuyHgdoFA847.png

上面看不懂不要緊,接著往下看

1.操作條件確認

在主機和卡交互之初,主機可能不知道卡支持的電壓,卡也可能不知道是否支持當前的電壓。主機會先假設(shè) SD 卡支持某個電壓,并以這個電壓發(fā)送一個復(fù)位命令 CMD0。為了驗證電壓,“Physical Layer Specification V2.0”又定義了一個新的命令 CMD8。

在這里插入圖片描述


CMD8(發(fā)送接口條件命令)是用來依照 SD2.0 標準初始化 SD 卡的。CMD8 要在 SD 卡處于“idle”狀態(tài)下使用。
此命令有兩個功能:

1.電壓檢測:

檢測卡是否能在主機提供的電壓下工作。

2.使能已存在命令的擴展和響應(yīng):

恢復(fù) CMD8 就能夠通過從定義之前預(yù)留的 bit,為一些已存在的命令擴展新的功能。

pYYBAGN_KvyAeT1QAAHKlZlfai8567.png

當卡在“idle”狀態(tài)時,主機應(yīng)該先發(fā)送 CMD8,再發(fā)送 ACMD41。參數(shù)中“電壓支持”bit 被設(shè)置為主機支持的電壓,而“檢測模式”bit 被設(shè)置為任意的 8bit 模式(推薦使用‘10101010b) b代表位的意思。

pYYBAGN_KwWAAhHvAAHoylHTlFM486.png

①:這里是卡實際返回的內(nèi)容(響應(yīng)傳輸中不包含錯誤)
②:匹配意思是同時滿足下面的 a)和 b)。不匹配是其他情況。
a) VHS(支持的電壓)中只有 1 個 bit 被設(shè)置了
b)卡支持主機提供的電壓

CMD8用于驗證 SD 卡接口操作條件。SD卡會通過分析 CMD8 的參數(shù)來檢測操作條件的正確性,而主機會通過分析 CMD8 的響應(yīng)來檢查正確性,支持的電壓是由參數(shù)里的 VHS 區(qū)指定的。SD卡會假設(shè) VHS 里面指定的電壓是當前支持的電壓。每一次命令VHS 里面只有 1 位能被設(shè)置為 1。主機會通過 CRC 和檢查模式來確認通信的有效性。

如果卡能夠在支持電壓下操作,響應(yīng)會傳回命令參數(shù)里設(shè)置的支持的電壓和檢測模式。

如果卡不能在支持電壓下操作,就不會發(fā)送響應(yīng),并保持在“空閑(idle)”狀態(tài)。

強制要求:
在發(fā)送第一個 ACMD41 之前要先發(fā)送 CMD8,以便初始化高容量 SD 卡。SD 卡如果收到 CMD8,就會知道主機支持 V2.0,就可以使能新的功能。

總結(jié)一句話:CMD8用來識別不同版本的卡和檢測卡是否能在主機提供的電壓下工作。

如果發(fā)送CMD8無響應(yīng):

1.電壓不匹配的 2.0 以上 SD 卡
2.1.0 的 SD 卡
3.不是 SD 卡

如果發(fā)送CMD8有響應(yīng):
電壓匹配的 2.0 以上 SD 卡(就是我們即將要使用的SD卡)

ACMD41是用來提供給主機一種機制來識別和拒絕那些不匹配它期望的 VDD 范圍的卡,主機通過發(fā)送需求的 VDD 電壓范圍來完成這個命令,這個范圍作為命令的參數(shù)。不能支持指定電壓范圍的卡應(yīng)該自動放棄后續(xù)的總線操作,并且進入無效狀態(tài)。OCR 寄存器里面的標準應(yīng)該響應(yīng)的定義。
注意:ACMD41 是應(yīng)用特定命令,在發(fā)送 ACMD41 之前需要發(fā)送CMD55。

poYBAGN_KzKAQh_aAAFKM9VZxGA386.pngpYYBAGN_KzeAeNJCAAMEXsFMCZ4625.png

2.卡識別模式

在卡識別模式,主機復(fù)位所有的卡、檢測操作電壓范圍、識別卡并為總線上每個卡設(shè)置相對地址(RCA(Relative Card Address):靠這個地址確認與主機與哪個SD卡通信)。在卡識別模式下,所有數(shù)據(jù)通信只使用命令信號線(CMD)。

pYYBAGN_K3KAfORTAAB1AQ20tIE425.png

在卡識別過程中,卡應(yīng)該在識別時鐘頻率 FOD (400KHZ)下的 SD 時鐘頻率中工作,在數(shù)據(jù)傳輸模式時鐘頻率為Fpp(最大25MHZ),所以在卡識別模式完成之后進入數(shù)據(jù)傳輸模式需要轉(zhuǎn)換頻率。

在卡識別模式期間,主機應(yīng)該保持在 Fod 頻率,因為某些卡可能在卡識別模式中有頻率限制。在數(shù)據(jù)傳輸模式,主機可以在 Fpp 頻率范圍操作卡

卡會檢查自己能不能在主機提供的電壓下工作。如果能夠,就會返回 R7 響應(yīng)。響應(yīng)參數(shù)中卡反饋了電壓范圍和檢測模式設(shè)置。

pYYBAGN_K36AEEXbAAD4rEQ0nck872.png

SD_SEND_OP_COND(ACMD41)作為開始,通過設(shè)置操作條件和 OCR 的 HCS 位來進行。

HCS(HighCapacity Support)位為 1,表示主機支持高容量 SD 卡。

HCS(HighCapacity Support)位為 0,表示主機不支持高容量 SD 卡。

pYYBAGN_K4-AL8TeAAIhyg-dpsw162.png

HCS 會被不回應(yīng) CMD8 的卡忽視掉。然而,如果卡不回應(yīng) CMD8,主機應(yīng)該設(shè)置 HCS 為 0。標準容量卡會忽略 HCS。如果 HCS 設(shè)置為 0,那么高容量 SD 卡永遠都不會返回 ready 狀態(tài)(保持 busy 位為 0)。

卡通過 OCR 的 busy 位來通知主機 ACMD41 的初始化完成了。
設(shè)置 busy 位為 0 表示卡仍然在初始化。
設(shè)置 busy 位為 1,表示已經(jīng)完成初始化。主機會重復(fù)發(fā)送 ACMD41,直到 busy 為被設(shè)置

R3作為ACMD41命令的響應(yīng)返回,OCR寄存器的值

pYYBAGN_K52AJrwMAAFg1RAXrU8463.png

OCR 寄存器

32 位的操作條件寄存器(OCR)存儲了卡的 VDD 電壓描述。另外,還包括了狀態(tài)信息位。如果卡的上電程序完成,一個狀態(tài)位會被設(shè)置。寄存器還包括另一個狀態(tài)位,在設(shè)置上電狀態(tài)位后,用來表明卡的容量狀態(tài)。

Bit31(busy位) – 卡上電狀態(tài)位,這個狀態(tài)位在卡的上電流程完成后設(shè)置。

Bit30(CCS位) – 卡容量狀態(tài)位,如果是高容量卡,設(shè)置為 1,如果是標準卡,設(shè)置為 0。

卡容量狀態(tài)位只有在上電流程完成,且 Bit31 設(shè)置為 1 之后才有效。
主機可以讀取這個狀態(tài)位來判斷卡的種類。

pYYBAGN_K6mAE48PAAHcLX2WykA485.png

如果卡響應(yīng)了 CMD8,那么 ACMD41 的響應(yīng)就包括了 CCS 字段信息。當卡返回“ready”的時候,CCS 是有效的(busy 位設(shè)置為 1)。
CCS=1 表示卡是高容量 SD 卡;CCS=0 表示卡是普通 SD 卡

總結(jié):ACMD41命令,是用來SD卡的工作電壓是否匹配,確定SD的容量(是標準卡還是高容量的卡)。

在系統(tǒng)中,主機遵照相同的初始化順序來初始化所有的新卡。不兼容的卡會進入“Inactive(無效)”狀態(tài)。

主機接著就會發(fā)送命令 CMD2給每一個卡,來得到他們的 CID 號,未識別的卡(處于 Ready 狀態(tài)的)發(fā)送自己的 CID 作為響應(yīng)。當卡發(fā)送了 CID 之后,它就進入“Identification(識別狀態(tài))”狀態(tài)。

在這里插入圖片描述

之后主機發(fā)送CMD3命令,通知卡發(fā)布一個新的相對地址(RCA),這個地址比 CID 短,用于作為將來數(shù)據(jù)傳輸模式的地址。一旦收到 RCA,卡就會變?yōu)椤癝tand-by(待機狀態(tài))”狀態(tài)。
這時,如果主機想要分配另一個 RCA 號,它可以再發(fā)送一個 CMD3,通知卡重新發(fā)布一個 RCA 號。最后一個產(chǎn)生的 RCA 才是有效的。

在這里插入圖片描述

卡識別模式流程圖(重點重點)

poYBAGN_K7uAW4dIAAI7zj71hu0185.png

一定一定要結(jié)合圖去理解上面的文字敘述,卡的識別過程就豁然開朗了

3.數(shù)據(jù)傳輸模式

pYYBAGN_K8aATnDcAADrQWmtAXA119.pngpYYBAGN_K8qALqMHAAKE7o2Ervs528.png

在卡識別模式期間,主機應(yīng)該保持在 Fod (400KHZ)頻率,因為某些卡可能在卡識別模式中有頻率限制。在數(shù)據(jù)傳輸模式,主機可以在 Fpp (最高25MHZ)頻率范圍操作卡

pYYBAGN_K36AEEXbAAD4rEQ0nck872.png

主機發(fā)送命令CMD9來獲得“SD卡具體數(shù)據(jù)(Card Specific Data)”,比如“塊長度”,“存儲容量”數(shù)據(jù)傳輸模式所有狀態(tài)等(這些數(shù)據(jù)會用于后面對SD卡的讀寫操作)。

廣播命令 CMD4會配置所有已識別卡的驅(qū)動范圍(電壓)。它會根據(jù)應(yīng)用總線布局(長度)、總線上卡的數(shù)量以及數(shù)據(jù)傳輸頻率來配置它們的 DSR 寄存器。

CMD7 的作用是選擇一張SD卡,然后把它從卡識別模式切換到數(shù)據(jù)傳輸模式,每次只能有一張卡處于傳輸模式,如果一張?zhí)幱趥鬏斈J降腟D卡同主機的連接被釋放,那么它會回到“Stand-by(待機)”狀態(tài)。當 CMD7 帶著參數(shù)RCA=0x0000 發(fā)送的時候,所有的卡都會回到“Stand-by(待機)狀態(tài)。

在這里插入圖片描述pYYBAGN_LR-AXf9mAAGyGXLsSLM415.png

主機讀數(shù)據(jù)(SD卡處于發(fā)送數(shù)據(jù)狀態(tài))

所有數(shù)據(jù)讀命令可以在任何情況下通過停止命令(CMD12)來中止。數(shù)據(jù)傳輸會中止,卡會回到傳輸狀態(tài)。讀命令有:塊讀(CMD17),多塊讀(CMD18),發(fā)送寫保護(CMD30),發(fā)送SCR(ACMD51)以及讀模式的通用命令(CMD56)

一般就用CMD17塊讀,多塊讀(CMD18)

pYYBAGN_LbuALSPsAAJyWGBIJsw437.pngpYYBAGN_LcCAeNcoAAEQAZ-HA9U082.png

主機寫數(shù)據(jù)(SD卡處于接收數(shù)據(jù)狀態(tài))

所有數(shù)據(jù)寫命令同樣也可以通過 CMD12 來中止。在發(fā)送 CMD7 取消選定卡之前,應(yīng)該先停止寫命令。寫命令有:塊寫(CMD24,CMD25),編程 CSD(CMD27),鎖定/解鎖命令(CMD42)。

CMD24:
1.對于標準卡寫入寫入 SEL_BLOCK_LEN長度字節(jié)的塊。
2.對于 SDHC卡(高容量SD卡>2GB),寫入512 字節(jié)的塊。

CMD25:
連續(xù)寫入數(shù)據(jù),直到被CMD12命令打斷。

pYYBAGN_Lc-AV7WzAAIwGwSU2ac966.pngpoYBAGN_LdWAPOsbAABuIudiklI842.png

● 一旦數(shù)據(jù)傳輸完成,卡會退出寫狀態(tài),并且進入編程狀態(tài)(傳輸成功)或者傳輸狀態(tài)(傳輸失敗)

pYYBAGN_Ld-AMsH0AAF4X-213ko031.png

卡可能會提供緩存給“塊寫”:這就意味著當前一個塊正在處理的時候,就可以發(fā)送后一個塊了。如果緩存都慢了,那么卡就會處于編程狀態(tài)則SDIO_D0會被拉低(表示busy)

擦除SD卡數(shù)據(jù)
擦除命令有三條:
CMD32:設(shè)置擦除的起始地址
CMD33:設(shè)置擦除的結(jié)束地址
CMD38:開始擦除

poYBAGN_LfuAPlpwAAGQa3Yf3IY789.png

擦除數(shù)據(jù),相當于將要擦除的區(qū)域的位都設(shè)置為1,擦除過程中,SD卡也將處于編程狀態(tài):SDIO_D0會被拉低(表示busy)

● 將另一張卡從 Stand-by (待機)模式轉(zhuǎn)換到 Transfer (傳輸)模式(CMD7)不會終止擦除和編程操作。正在操作的SD卡會切換到 Disconnect 狀態(tài)并且釋放 SDIO_D0線。
● 處于 Disconnect 狀態(tài)的卡可以通過 CMD7 的命令重新被選定。這時,卡會進入Programming 模式,并且重新使能 busy 。

pYYBAGN_LhCASlhPAAFvTFBATB8841.png

復(fù)位卡(CMD0 或者 CMD15)會中止任何等候或者執(zhí)行的編程操作。這可能會損壞卡的內(nèi)容(但是盡量不要怎么做)。

pYYBAGN_Lh2AR0QoAABWbKibuWQ595.png

總結(jié)
至此整個數(shù)據(jù)傳輸流程就全部講完,到這里肯定要心中有點數(shù)了,其實后面的代碼:卡的識別模式與數(shù)據(jù)傳輸模式 代碼實現(xiàn)完完全全是按照上述流程來編寫的。

【本文轉(zhuǎn)載自CSDN,作者:rivencode】

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51154

    瀏覽量

    426212
  • SD卡
    +關(guān)注

    關(guān)注

    2

    文章

    566

    瀏覽量

    64045
  • 存儲芯片
    +關(guān)注

    關(guān)注

    11

    文章

    901

    瀏覽量

    43231
  • TF卡
    +關(guān)注

    關(guān)注

    2

    文章

    81

    瀏覽量

    12200
收藏 人收藏

    評論

    相關(guān)推薦

    雷龍SD NAND試用

    、CSNP32GCR01-AOW分別為8GB、4GB雷龍二代SD NAND.前者樣片幫焊接在轉(zhuǎn)接板,后者單芯片可以需要SD
    發(fā)表于 01-19 13:26

    SD NAND、SPI NAND 和 Raw NAND 的定義與比較

    SD nand,貼片式SD卡,使用起來和SD卡一致,不同的是采用,通常采用LGA-8封裝,尺寸為8mm x 6mm x 0.75mm,重點是采用貼片封裝,可以直接貼在板卡
    的頭像 發(fā)表于 01-15 18:16 ?109次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、SPI <b class='flag-5'>NAND</b> 和 Raw <b class='flag-5'>NAND</b> 的定義與比較

    SD NAND、SPI NAND 和 Raw NAND 的定義與比較

    SD nand,貼片式SD卡,使用起來和SD卡一致,不同的是采用,通常采用LGA-8封裝,尺寸為8mm x 6mm x 0.75mm,重點是采用貼片封裝,可以直接貼在板卡
    發(fā)表于 01-15 18:15

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導(dǎo)致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與
    的頭像 發(fā)表于 12-11 10:51 ?421次閱讀
    <b class='flag-5'>STM32</b>F407 MCU使用<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>?不斷電初始化失效解決方案

    關(guān)于SD NAND 的概述

    SD NAND是一種小型、可表面貼裝的存儲解決方案,適用于各種嵌入式系統(tǒng)和便攜式設(shè)備。SD NAND技術(shù)是近年來存儲領(lǐng)域內(nèi)的一項創(chuàng)新,它結(jié)
    發(fā)表于 12-06 11:22

    SD NAND 概述

    SD NAND是一種小型、可表面貼裝的存儲解決方案,適用于各種嵌入式系統(tǒng)和便攜式設(shè)備。SD NAND技術(shù)是近年來存儲領(lǐng)域內(nèi)的一項創(chuàng)新,它結(jié)
    的頭像 發(fā)表于 12-06 11:21 ?230次閱讀

    SD NAND技術(shù)簡介

    SD NAND是一種基于NAND Flash技術(shù)的嵌入式存儲解決方案,具備SD卡協(xié)議兼容性。它結(jié)合了NAND存儲的高密度特性和
    的頭像 發(fā)表于 12-05 15:32 ?230次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>技術(shù)簡介

    SD NAND大數(shù)據(jù)時代的應(yīng)用場景

    SD NAND是一種結(jié)合了SD卡接口和NAND閃存技術(shù)的存儲解決方案。它通常指的是使用NAND閃存芯片并通過
    的頭像 發(fā)表于 10-29 15:49 ?305次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>在</b>大數(shù)據(jù)時代的應(yīng)用場景

    SD NAND智能眼鏡的怎么應(yīng)用

    接口和NAND閃存技術(shù)的存儲解決方案,它通常被用在需要高容量、小尺寸和低功耗存儲的設(shè)備。智能眼鏡的應(yīng)用中,SD NAND可以扮演以下角色
    的頭像 發(fā)表于 09-14 09:55 ?392次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>在</b>智能眼鏡<b class='flag-5'>上</b>的怎么應(yīng)用

    MK米客方德SD NANDSTM32平臺的存儲方案

    STM32平臺SD卡的重要性不言而喻,它為嵌入式系統(tǒng)提供了必要的數(shù)據(jù)存儲和讀寫能力。MK米客方德SD作為市場上的一種選擇,因其耐用性、
    的頭像 發(fā)表于 08-26 10:23 ?740次閱讀
    MK米客方德<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>:<b class='flag-5'>STM32</b>平臺<b class='flag-5'>上</b>的存儲方案

    SD NAND芯片的測評與使用 基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)字識別

    和32gbit的SD NAND FLASH芯片以及一份測試板卡。 簡介: 根據(jù)官方文檔的描述,這款芯片采用LGA-8封裝,具有標準SDIO接口,并同時兼容SPI和SD接口。因此,可以直
    的頭像 發(fā)表于 07-24 18:08 ?1462次閱讀

    淺談SD NAND

    SD NAND內(nèi)部主要由NAND Flash和Flash Controller組成,大多數(shù)人把NAND FLASH 叫做閃存,是一種長壽命的非易失性的存儲器,即使
    的頭像 發(fā)表于 06-25 14:20 ?962次閱讀
    淺談<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    SD NAND和SPI NAND的區(qū)別

    SD NAND和SPI NAND各有優(yōu)缺點,適用于不同的應(yīng)用場景。SD NAND提供更高的讀寫速度和大容量存儲,適合需要高性能和大容量存儲的
    的頭像 發(fā)表于 06-04 14:26 ?2165次閱讀

    NAND Flash(貼片式TF卡)存儲新突破,基礎(chǔ)示例

    需求也日益增長。在這個信息爆炸的時代,一款高效、穩(wěn)定、便攜的存儲設(shè)備顯得尤為重要。新品SD卡——SD NAND,應(yīng)運而生,為我們的數(shù)據(jù)存儲帶來了新的革命。   
    發(fā)表于 05-21 17:13

    STM32F412使用SD卡,SDIO,FATFS系統(tǒng),SD卡掛載文件系統(tǒng)失敗的原因?

    求助,STM32F412RET6 使用SD卡,使用SDIO接口,FATFS系統(tǒng),SD卡掛載文件系統(tǒng)失敗。返回錯誤代碼3: 網(wǎng)上查到信息 \"FR_NOT_READY:物理驅(qū)動沒有工作
    發(fā)表于 04-11 07:15
    主站蜘蛛池模板: 70岁妇女牲交色牲片 | 热巴两次用约老师屁股发底线球 | 日本色高清 | 超清无码波多野吉衣与黑人 | 中文字幕不卡免费高清视频 | 甜宠溺H宝贝嗯撞PLAY啊 | 成人精品视频在线 | 亚洲a视频在线观看 | 办公室沙发口爆12P 办公室日本肉丝OL在线 | 久久精品无码一区二区日韩av | 污文啊好棒棒啊好了 | 嗯呐啊唔高H兽交 | 18美女腿打开无遮软件 | 国产系列在线亚洲视频 | 佐山爱痴汉theav| 久久高清一本无码 | 女人张开腿让男人添 | 日本高清免费一本视频在线观看 | 免费高清毛片 | 伊人久久综合热青草 | 野花高清影视免费观看 | 久久亚洲电影www电影网 | 芳草地在线观看免费观看 | 精品无人区麻豆乱码1区2 | 亚洲无AV在线中文字幕 | 成人毛片一区二区三区 | 尿孔 调教 扩张 | 好男人视频免费高清在线观看www | 啊轻点啊再深点视频免费 | 亚洲免费在线观看 | 思思久99久女女精品 | 中文字幕在线观看亚洲 | 精品AV亚洲乱码一区二区 | 奇米狠狠一区二区三区 | 99爱视频在线观看 | 牛牛在线精品视频 | proburn中文破解版下载 | 国产成人啪精品视频免费网 | 国产亚洲视频在线 | 国内外成人免费在线视频 | 先锋影音av最新资源网 |