wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12024|回復: 14
收起左側

怎么看時序圖--nand flash的讀操作詳解

  [復制鏈接]
ID:65608 發表于 2014-9-12 01:10 | 顯示全部樓層 |閱讀模式

這篇文章不是介紹 nand flash的物理結構和關于nand flash的一些基本知識的。你需要至少了解 你手上的 nand flash的物理結構和一些諸如讀寫命令

        操作的大概印象,你至少也需要看過 s3c2440中關于nand flash控制寄存器的說明。


        由于本人也沒有專門學過這方面的知識,下面的介紹也是經驗之談。

        這里 我用的 K9F2G08-SCB0 這款nand flash 來介紹時序圖的閱讀。不同的芯片操作時序可能不同,讀的命令也會有一些差別

        當然其實有時候像nand flash這種 s3c2440內部集成了他的控制器的外設。具體到讀寫操作的細節時序(比如 CLE/ALE的建立時間,寫脈沖的寬度。數據的建立和保持時間等),不明白前期也沒有多大的問題。

        因為s3c2440內部的nand flash控制器 做了大部分的工作,你需要做的基本就是設置 幾個時間參數而已。然后nand flash會自動進行這些細節操作。

        當然如果處理器上沒有集成 nand flash的控制器 那么久必須要自己來寫時序操作了。所以了解最底層的時序操作總是好的

         

        但是上層一點的,比如讀寫操作的步驟時序(比如讀操作,你要片選使能,然后發命令,然后發地址,需要的話還需發一個命令,然后需要等待操作完成,然后再讀書數據)。

        是必須要明白的。這都不明白的話,怎么進行器件的操作呢

         

        也就是說 s3c2440 可以說在你設置很少的幾個時間參數后,將每一個步驟中 細微的操作都替你做好了。(比如寫命令,你只要寫個命令到相應寄存器中,cpu內部就會協各個引腳發出

        適應的信號來實現寫命令的操作)。

        而我們所需要做的 就是 把這些寫命令,寫地址,等待操作完成。等步驟組合起來 。從而完成一個 讀操作

         

        就像上面說的,雖然我們不會需要去編寫每個 步驟中的最細微的時序。 但是了解下。會讓你對每個操作步驟的底層細節更加明了

         

        先來看一個命令鎖存的時序。也就是上面說的 讀 nand flash操作中不是有一個 寫命令步驟嗎。那么這個步驟具體是怎么實現的。

        首先 我們肯定是要片選 nand flash。只有選中芯片才能讓他工作啊

        nand flash是通過 ALE/CLE (高電平有效)來區分數據線上的數據時命令(CLE有效),地址(ALE有效)還是數據(CLE/ALE都無效)。

        那么這里既然是寫命令 那么就一定是 CLE有效(高電平) ALE無效(低電平)

        同樣命令既然是寫給nand flash的那么 肯定有一個寫周期。我們需要注意的是,寫是在上升沿有效還是下降沿有效

        時序圖如下:
28852942_13844786813d8s.jpg

        1 這里是命令鎖存是時序,那么我們要注意的其實就只有 CLE 為高電平期間這段時序。(寫命令啊,CLE有效時(高電平)指示現在的數據其實命令)ALE此時一定為低電平我們可以不關心他

        2 所以,CLE為 低電平的時期,其他大部分引腳上都是 灰色的陰影,這代表我們不需要關心這段時期這些引腳的電平

        3 那么 這個數據是什么時候被nand flash讀取到的呢, 注意到 nWE信號 在上升沿有一個貫穿所有其他引腳時序的豎線(這好像是叫生命線?我也不清楚)

               這就是說明,寫入的數據(命令也是數據啊,只是可以通過CLE有效來區分)是在 WE的上升沿有效。

               也就是說,雖然 WE是在低電平有效,但并不是說 WE一變成低電平,命令就被鎖存了(即真正獲得命令)而是在 WE 的上升沿,命令才真正被鎖存。

         

        知道了上面這三點,也就知道了一個大概,那么剩下的圖中也只剩那些 txx 的標號。明顯它指的是時間,但是具體指什么時間呢。

        指的就是箭頭兩邊所指的兩條 豎線之間的時間。(在每個信號的跳變沿,都有小豎線)

         

        剩下的就是這些時間到底是代表什么了。這里沒什么難的,剛接觸的覺得看不懂。是因為之前從來沒接觸過。(就像單片機剛學的時候不也是各種不懂,原因就是我們從沒接觸過)。
這些時間標號,在數據手冊的前面都有 說明

         28852942_1384478893vaz5.jpg

        比如  tCLS   tCLH 從數據手冊中我們可以看到 分表代表的 CLE建立時間,和CLE信號保持時間。

        簡單點你可以理解為,我讓 CLE引腳  變成高電平,總得給人間一點時間去變成高電平吧?偛荒芩查g就變成高電平

        不過從 時序圖中我們能看到更多的端倪,之前不是說過 WE 的上升沿上不是有一個最長貫穿其他信號線的 豎線嗎。我們說他指示了,數據(命令也是數據)

        是在上升沿被鎖存的,在 WE 的上升沿,我寫到數據線上的命令數據才真正被鎖存(接收),但是 我們注意到 CLE 信號在WE上升沿之前有就有效了。

        所以我們說, 在命令數據真正被鎖存之前,CLE 有效的那段 tCLS 時間叫做 CLE信號建立時間。

               WE上升沿后。命令已經被接受了,但這時候 CLE 其實可以變為無效了,因為已經獲取到命令了

        但是他并沒有立刻結束,而是 Tclh時間之后才結束。那么我們 稱這段 時間 tCLH CLE 保持時間。

        
那么再根據手冊中的說明  tCS 表示 片選信號建立時間,tCH表示片選信號保持時間

               tDS表示數據建立時間,tDH表示數據保持時間

         

        這里我們看到一個小規律,在數據手冊中 以 S 結尾的時間通常指的是建立時間, 以 H 結尾的時間指的是保持時間

              

              

        這里命令鎖存的時序就分析完了。我們再來看看  地址鎖存時序圖,這個圖有點復雜,

        因為nand flash的 特性是 地址周期通常需要好幾個,就是一個地址是分幾次發送的

         28852942_1384479004vi21.jpg

         

        再給出數據手冊中對應時間標號的說明

         28852942_13844790705NQq.jpg

        
同樣我們按照上面分析的步驟

        1 這里是地址鎖存是時序,那么我們要注意的其實就只有 ALE 為高電平期間這段時序。(寫命令啊,ALE有效時(高電平)指示現在的數據其實是地址)CLE此時一定為低電平,可以不用管

        
2 所以,ALE 為低電平的時期,其他大部分引腳上都是 灰色的陰影,這代表我們不需要關心這段時期這些引腳的電平

        
3 同樣 WE 的上升沿有一個貫穿其他信號線的長豎線,這也是代表數據(這里其實是地址)在上升沿被鎖存

         

        那么剩下的也好理解

        tCLS 這個我們不需要關心,因為 CLE 壓根就是無效的。

        tCS 就像之前分析的,它是指 CE片選信號在 WE上升沿也就是鎖存地址之前的有效時間,也就是 CE 建立時間

        tWC 呢? 不知道? 不知道 看手冊啊,前面也說過這些時間標號在手冊中都會給出。

               從上面手冊的解釋我們看到,它指的是一個寫周期的時間

        tWP 寫脈沖寬度(也就是 WE是低電平有限,twp指低電平持續時間,就是有效時間)

        tWH 好理解了,就是高電平時間

        ALS    這不就是 地址信號  ALE 建立時間嘛

        ALH   ALE信號有效保持時間啊

        TDS TDH 數據建立和保持時間

        就像上面對 命令時序的分析,這里 信號的 建立 保持時間都是以 數據被 鎖存分界點(WE上升沿)

         

        看到這里相信仔細看的人,應該大致該如何看一個時序圖了,但是這里 我們牽涉到的 無非都是一些 上面 建立/保持時間。

        復雜點的呢。

         

        下面就來看一個復雜點的時序圖,其實也不復雜,主要是說明如何在不看手冊就能知道 txx指的是什么時間

         
28852942_1384479197sig8.jpg


        

         

        這個時序其實并不復雜,只是他不是像上面分析的那樣都是一些 建立時間和保持時間。這里牽涉到跟多的時間標號

        不過就像前面說的. 看手冊! 手冊里對每個時間參數都有說明。不過初學者通常即使看手冊,對這些時間參數也是不知道是什么意思。

        這里我們看手冊前,先來自己分析下。方法會了,手冊就成了驗證你對不對的東西了,而不是你尋找答案的東西。

         

        TRC 這個參數有點簡單?此姆秶 是 一個 RE周期 的時間,那么就跟前面的 tWC 應該是一樣的。那它應該代表的就是 RE信號的一個周期時間(讀信號的一個周期)

        TREA 呢? 看標號看不出所以然,那么我們就看他的起始和結束時間 從時序圖能看到,這個指的是從 RE有效(變低) 到數據出現之間的時間。

        那么tREA 可想而知就應該是 讀信號有效到數據被讀之間的時間

        后面的都是這個同樣的分析方法

        比如最后的那個 tRHZ 是從 RE 無效(高電平)到數據線變成高阻態 之間的時間(數據線畫在中間表示的是高阻態)

        看下手冊中的解釋 也基本就是這個意思

         28852942_1384479375d757.jpg

         

        到這里 對于時序圖怎么看,相信大家都應該能理解了。甚至可能連手冊都不用看,就知道他是什么意思了。因為我們能從 時間的起始地址來推測時間標號的意思

         

         

        上面這些分析,都是很底層的操作,如果我們使用 s3c2440 這種高級的處理器 這些時序操作我們根本不需要去實現,頂多也就往幾個寄存器中

        設置一下上面說的一些時間 然后,CPU 中的 nand flash控制器會自動完成上面所的所有操作。但是還需要了解的原因是,如果你碰到一個沒有

        nand flash 控制器的處理器 怎么辦,那你只能親自實現這些 具體的 寫命令,寫地址。等等 單元操作。

        然后才能將這些單元操作組合成 讀數據,寫數據等操作(上面說過 比如讀操作 他并不是一個簡單的命令而是一系列操作,你要片選使能,然后發命令(讀命令),

        然后發地址(要讀的數據的地址),需要的話還需發一個命令,然后需要等待操作完成,然后讀書數據)

         

        說完了 這些具體的單元操作,那么我們再來看看一個 讀操作 具體需要哪些步驟。也就是我們需要真正必須掌握的時序操作

        對于我這款 nand flash 讀操作時序如下

         28852942_1384479444fYZf.jpg

        我們要注意的主要是 最下面一行 即 I/Ox 信號線的狀態,他指示了 讀操作需要哪些,單元步驟。

        1 首先 我們看到 有一個 0x00 是什么?數據?地址?命令? ALE/CLE線啊,這兩根線不是決定了現在的數據的類型嘛

        順著往上看,我們知道0x00是在 CLE有效期間的數據那么它就是一個命令

        2 然后是 address(5Cycle) 即五個地址序列(這款nand flash 指定讀數據的地址時要發送五個地址序列),往上看,是在ALE有效期間的數據,那么應該就是地址了

               (對于這五個地址,前面兩個是列地址,后面三個是行地址。在nand flash的物理結構中 行地址對應的某一頁,列地址就對應這一頁中的某一列)

         

        3 接著又是 0x30,此時 CLE有效,那么就是命令了(也就是說這款nand flash的讀操作需要兩個命令)。

               但是之后數據并未立刻出來,我們看到在到 DATA Output即數據輸出之前還有一段時間,為什么有這段時間?

               往上看 R/nB 這個數據線上說明了原因,這段時間內它是低電平 即指示現在 處于 忙碌狀態,還未準備好數據輸出。為什么會這樣?

               因為你 寫了 一個命令,寫了要讀數據的地址,又寫了一個命令。 你總要給 cpu一些時間去處理這些命令吧,

               R/nB為低電平這段時間就是 在處理這些命令(實際上是根據命令將你定位的那一頁數據讀到內部寄存器中),

         R/nB變成高電平了,就指示命令處理完畢,現在數據也就可以讀出來了。

         

        綜上我們從手冊中我們就知道了讀操作的具體步驟,

        1 首先nand flash 也是一個外設,要訪問他就需要片選它,所以在執行時序圖上的步驟之前需要片選nand flash.

        2 看后面就是安裝時序圖來了,看時序圖! 第一步先是發送一個命令 0x00.

        3 看時序圖! 然后發送五個地址序列(先發送兩個列地址,在發送三個行地址(即頁地址))

        4 看時序圖! 接著再是一個命令 0x30.

        5 看時序圖!  R/nB 引腳為低表示現在正忙,正在處理這些命令,那就要等待 R/nB 引腳變為高電平

        6 看時序圖! 這個時候就可以讀數據了

        7 一次讀操作結束了 nand flash 暫時是不需要使用了,那么別忘了應該 取消片選信號。

         

        至于這每一個步驟中具體的時序,cpu中的nand flash控制器會幫我們完成。我們要做就是設置幾個時間參數

         

        這里我們反復強調了要看時序圖。其實學嵌入式前期對數據手冊一定要多看,看多了你就回知道,什么東西的你重點要看的,什么是和你的編程操作無關的你不需要關心。這樣后面你才能,拿到一個外設 就能寫出他的操作。而不用跟著書背步驟。只要手冊在就行了。

         

        上面的步驟,是一個具體的讀操作的步驟,不過在使用一個器件之前我們需要初始化一下它。至于初始化也就是設置我們上面多次提到的

        我們說過 s3c2440已經幫我做了很多底層的單元操作,我們只需設置幾個時間參數 片內的 nand flash就會自動發出相應操作的時序操作

        那么到底設置那幾個時間呢。

        s3c2440 手冊上給出了 需要我們設置的幾個參數。

         28852942_1384479583xNnp.jpg


        

          28852942_1384479615V14Z.jpg

        從中我們可以看出 第一幅時序圖是 命令和地址鎖存的時序,第二幅是 數據讀取和寫入的時序。
可以看出,他們要設置的時間都是一樣的。前面分析了那么多,這里應該不難 看出

        
1 TACLS 很明表示的是 CLE/ALE 的建立時間(這里并不準確,其實是 CLE/ALE有效到 WE 變成低電平之間的時間,但 WE 卻是在上升沿才鎖存命令/地址)

        2 TWRPH0 代表的是 WE 的脈沖寬度,即有效時間

        3 TWRPH1 代表的是 CLE/ALE 的保持時間

        
那到底設置成什么數字呢。既然 上圖中讀/寫/命令/地址 操作需要的時間參數都是一樣的

        那么我們從 nand flash中隨便找一個 命令時序來對照不就行了

        就拿上面我們說過的 命令鎖存時序來對比

         28852942_13844797244mq8.jpg

        
那么我們就能得到下面的關系

        TWRPH0 = tWP

        TWRPH1 = tCLH

        TACLS  = tCLS - tWP

         
然后設置成多少呢? 看手冊啊,手冊中對 tWP  tCLH  tCLS 都會至少給出 需要的最小時間

        
這款芯片nand flash手冊中這三個參數要求是

          28852942_138447989082M6.jpg

        所以 TWRPH0 = tWP  >=12ns

                TWRPH1 = tCLH >=5ns

                TACLS  = tCLS - tWP >=0;

        而這三個參數在s3c2440的數據手冊中說明為

          28852942_1384479983jvUz.jpg

        當然這里的時間都是以 HCLK 為單位的,這幾個參數 是在 nand flash控制寄存器中的 NFCONF中設置的

        這里我沒用使用MPLL 所以HCLK是 12MHZ

         

        所以 TWRPH0 = 0 TWRPH1 =0 TACLS =0; (如果你的時鐘頻率比較高,那就要設別的數了。當然有是有你真不知道,設置大點總沒錯,只不過速度可能會慢點。)

               所以 NFCONF =0;(NOFCONF其他位數據手冊中有說明,這里只是簡單讀操作,其他位可以不設置)

         

        然后是初始化一下 ECC 使能nand flash控制器(我們只是設置了幾個時間參數,時序的具體操作就是靠他來完成的,所以要使能他)

        然后先 取消片選nand flash 因為我們現在還沒有操作它啊,只是初始化一下。所以還是應該先取消片選,等真正讀的時候再使能片選信號

         

        NFCONT = (1<<4) | (1<<1) (1<<0);

        (數據手冊中有對應位的說明)

        最后,第一次使用nand flash 我們需要復位操作一下。

        綜上,nand flash 的初始化代碼如下

        void nand_init(void){

                NFCONF =0;

                NFCONT = (1<<4) | (1<<1) | (1<<0);

                nand_reset();  //nand reset代碼在后面

        }

         

        下面代碼一些地址的寫法是與 nand flash 型號有關的。具體需要參考芯片手冊

              

         

        void select_chip(void){

                NFCONT  &= (~(1<<1)) ;   

                int i;

                for(i=10;i>0;i--);

        }

        void deselect_chip(void){

                NFCONT |= (1<<1);

                int i;

                for(i=10;i>0;i--);

        }

         

        void write_command(unsigned char command){

                NFCMMD = command;

                int i;

                for(i=10;i>0;i--);

        }

         

        /*

               這款nand flash 的頁大小是 2K

               五個地址周期  (2個列地址 和3和行地址(頁地址))

        */

        void write_address(unsigned int address){

                unsigned int page = address/2048;

                unsigned int col  = address&2048;

         

                int i;

                NFADDR = col & 0xff;

                for(i=5;i>0;i--);

                NFADDR = (col >>8) & 0x0f;

                for(i=5;i>0;i--);

                NFADDR = page & 0xff;

                for(i=5;i>0;i--);

                NFADDR = (page >>8)& 0xff;

                for(i=5;i>0;i--);

                NFADDR = (page >>16)&0x01;

                for(i=5;i>0;i--);

        }

         

        unsigned char read_one_data(void){

                return NFDATA;

                int i;

                for(i=10;i>0;i--);

        }

         

        void wait_ready(void){

                while(!(NFSTAT & 1));

                int i;

                for(i=10;i>0;i--);

        }

         

         

        static void nand_reset(void){

                select_chip();

                write_command(0xff);

                wait_ready();

                deselect_chip();

        }

        void nand_init(void){

                NFCONF =0;

                NFCONT = (1<<4) | (1<<1) | (1<<0);

         

                nand_reset();

        }

         

        /*

        nand flash 的讀操作是以頁為單位的。

         des: nand flash中讀出的數據放到哪

         start_addr: 從哪里開始讀

         size: 讀多大

        */

        void nand_read(unsigned char *des,unsigned int start_addr,unsigned int size){

                unsigned int col  = start_addr & 2048;

         

                select_chip();

                unsigned int start = start_addr;

                unsigned int end   = start_addr + size;

                while(start < end){                             //每讀一頁需要發一次命令

                        write_command(0x00);

                        write_address(start);

                        write_command(0x30);

                        wait_ready();

         

                        while((col<2048) && (start<end)){ 在一頁中讀,我用的型號一頁大小為2k[="" font][="" color][="" p][p="26," null,="" left]="" *des="read_one_data();

[p=26," des++;[="" col++;[="" start++;[="" }[="" col="0;
[p=26," deselect_chip();[="" p]

評分

參與人數 1黑幣 +5 收起 理由
zhangli019 + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:23978 發表于 2014-9-15 10:34 | 顯示全部樓層
太好了,受教了!
回復

使用道具 舉報

ID:70371 發表于 2014-12-18 22:39 來自觸屏版 | 顯示全部樓層
學習 學習 學習
回復

使用道具 舉報

ID:70104 發表于 2014-12-19 14:15 | 顯示全部樓層
有你,才有我們這些學員啊
回復

使用道具 舉報

ID:70104 發表于 2014-12-19 14:15 | 顯示全部樓層
謝謝了。。學習
回復

使用道具 舉報

ID:29438 發表于 2015-2-6 13:14 | 顯示全部樓層
多謝!
回復

使用道具 舉報

ID:75332 發表于 2015-4-12 13:06 | 顯示全部樓層
學習 學習 學習
回復

使用道具 舉報

ID:75332 發表于 2015-4-12 14:55 | 顯示全部樓層
太好了,受教了!
回復

使用道具 舉報

ID:72611 發表于 2015-4-13 09:36 | 顯示全部樓層
很詳細學習了
回復

使用道具 舉報

ID:90900 發表于 2016-1-17 17:00 | 顯示全部樓層
太好了,這個問題已經困擾我好長時間了,真心感謝
回復

使用道具 舉報

ID:63815 發表于 2016-2-22 15:56 | 顯示全部樓層
好東西,學習了
回復

使用道具 舉報

ID:152324 發表于 2016-12-5 16:40 | 顯示全部樓層
通俗易懂
回復

使用道具 舉報

ID:611584 發表于 2019-9-21 11:36 來自觸屏版 | 顯示全部樓層
講的太好了,受教受益了,謝謝。
回復

使用道具 舉報

ID:611584 發表于 2019-9-21 11:37 來自觸屏版 | 顯示全部樓層
真心好,受益不淺。
回復

使用道具 舉報

ID:491589 發表于 2020-1-6 10:43 | 顯示全部樓層
感謝樓主非常詳細的分析,比其他書上清晰多了!受教!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产亚洲欧美精品久久久www| 久久精品国产免费看久久精品| 国产精品福利在线观看播放| 一本色道久久综合亚洲精品不卡| 国产毛片精品视频| 亚洲色图清纯唯美| 91精品国产乱| 美日韩精品视频免费看| 国产精品久久一区| 亚洲在线欧美| 国产精品嫩草69影院| 成人免费毛片东京热| 亚洲黄色在线播放| 天天操天天碰| 日本视频在线播放| 综合视频一区| 首页欧美精品中文字幕| 亚洲欧洲av在线| 精品国产青草久久久久福利| 91精品国产免费久久久久久 | 日韩美女一级视频| 姬川优奈av一区二区在线电影| 人人狠狠综合久久亚洲婷| 精品在线亚洲视频| 亚洲国产精品久久人人爱| 亚洲成人中文字幕| 国产精品老女人视频| 大桥未久一区二区| 亚洲精品视频大全| 国产孕妇孕交大片孕| 免费av大全| 色网在线免费观看| 欧美.日韩.国产.一区.二区| 91婷婷韩国欧美一区二区| 欧美日韩国产在线观看| 欧美专区日韩视频| 国产91视频一区| 中国女人特级毛片| 蜜臀久久精品久久久久| 最全影音av资源中文字幕在线| 成人免费黄色| 丝袜美腿亚洲一区二区图片| 亚洲韩国一区二区三区| 久久精品99无色码中文字幕 | 欧美日韩中文字幕在线观看| 最近2018年中文字幕在线| 天堂av在线资源| 99久热这里只有精品视频免费观看| 久久久精品网| 欧美日韩国产在线播放| 色综合久久88色综合天天看泰| 欧美三级华人主播| 无码任你躁久久久久久老妇| 精品久久国产视频| 在线视频国产三级| 国产另类在线| 不卡电影一区二区三区| 亚洲第一天堂av| 国产精品一区二区在线观看| 亚洲三级在线观看视频| 羞羞色院91蜜桃| 免费免费啪视频在线观看| 色婷婷成人网| 老司机精品视频一区二区三区| 色婷婷综合久色| 日本不卡免费高清视频| 激情婷婷综合网| 午夜一区二区三区四区| 91精品久久久久久9s密挑| 亚洲精品在线a| 白白色 亚洲乱淫| 亚洲激情国产精品| 日韩精品极品视频在线观看免费| 成人黄色免费网址| 欧美超强性xxxxx| 鲁鲁在线中文| 日本va欧美va瓶| 欧美一区二区三区不卡| 成人免费视频观看视频| 国产精品无码在线| 人xxxx性xxxxx欧美| www.综合| 激情成人午夜视频| 亚洲精品福利资源站| 丝袜美腿玉足3d专区一区| wwwav国产| 四虎最新网站| 日韩三级视频| 亚洲女同一区二区| 青青久久aⅴ北条麻妃| 亚洲a级黄色片| 免费看av毛片| 丰满大乳少妇在线观看网站| 美女视频一区免费观看| 欧美一级理论性理论a| 久久久99爱| 国产日韩欧美在线观看视频| 成人嫩草影院免费观看| 丝袜美腿一区二区三区动态图| 国产精品私人自拍| 7777免费精品视频| 久久精品一卡二卡| 九九久久九九| 最新日韩一区| 91在线你懂得| 欧美激情一级欧美精品| 亚洲一区二区偷拍| 天天操中文字幕视频| 亚洲黄色中文字幕| 不卡的av在线| 欧美日本啪啪无遮挡网站| 成人免费无码av| 性猛交xxxx| 日韩不卡在线| 久久久久久久久97黄色工厂| 97精品国产91久久久久久| 国产精品igao网网址不卡| 午夜国产福利| 高清一区二区| 综合久久国产九一剧情麻豆| 国产精品第一区| 中国美女乱淫免费看视频| 国内一卡2卡三卡四卡在线| 天天躁日日躁狠狠躁欧美巨大小说| 亚洲人成电影网站色mp4| 国产噜噜噜噜噜久久久久久久久| 精品无码人妻一区二区免费蜜桃| 欧美狂欢多p性派对| 91精品二区| 日韩精品一区二区三区视频| 国产成人艳妇aa视频在线| 精品国产av鲁一鲁一区| 忘忧草在线日韩www影院| 91视频在线观看免费| 韩剧1988在线观看免费完整版| 亚洲AV成人精品| 福利视频网站导航| 日韩中文在线电影| 日韩欧美国产三级| 91九色在线观看视频| 一区二区三区免费视频网站| 人人玩人人添人人澡欧美| 亚洲嫩草精品久久| 精品1区2区| 啪啪小视频网站| 成人bbav| 国产精品久久久久久久久免费相片 | 国产一二三四五| 国产精品无码白浆高潮| 日韩精品一区二区三区| 中文字幕在线观看一区| 国产精品免费一区二区三区| 国产黄色免费观看| 美足av综合网| 国产日韩欧美不卡| 成人精品一区二区三区电影黑人| 加勒比av在线播放| 欧美日韩欧美| 久久综合久久综合久久综合| 91在线免费观看网站| 日本一区二区三区精品| 黄色在线网站噜噜噜| 国产精品久久久久久一区二区三区| 97在线电影| 成人公开免费视频| 伊人久久精品一区二区三区| 亚洲精品国产一区二区精华液| 欧美精品久久| 人人妻人人澡人人爽人人欧美一区 | 国产xxxxx18| 免费视频一区二区三区在线观看| 久久精品国产成人精品| 久久精品成人av| 日韩二区三区| 成人午夜看片网址| 国产免费一区二区三区在线能观看 | 最新在线中文字幕| 精品肉辣文txt下载| 午夜av一区二区三区| 400部精品国偷自产在线观看| 久色视频在线观看| 成人高清电影网站| 亚洲欧美综合区自拍另类| av漫画在线观看| 亚洲а∨精品天堂在线| 国产成人免费视频精品含羞草妖精| 国产精品视频一| 成人免费视频国产免费| 亚洲精品tv| 制服丝袜激情欧洲亚洲| 热久久久久久久久| 中文字幕在线中文字幕二区| 不卡的av在线| 精品欧美一区二区三区久久久| 亚洲精品国产片| 国产日产一区| 色哟哟入口国产精品| 激情五月激情综合| 91超碰在线免费| 大桥未久av一区二区三区| 国产中文字幕视频在线观看| 麻豆视频入口| 国产精品一区二区三区乱码| 99精彩视频在线观看免费| 精品国产av 无码一区二区三区| 一区三区在线欧| 中文字幕av一区二区| 亚洲黄色网址大全| 538在线观看| 色噜噜狠狠成人网p站| 午夜宅男在线视频| 色视频在线观看福利| 久久久精品国产免大香伊| 色综合久久久久久久久五月| 国产伦精品一区二区三区高清版禁 | 欧美日韩在线电影| 涩涩网站在线看| 国产在线你懂得| 亚洲欧美日韩久久| av免费观看一区二区| 国产熟妇久久777777| 国产mv免费观看入口亚洲| 日韩av片网站| 中文字幕黄色片| 国产午夜精品一区在线观看| 欧美一区二区三区四区视频 | 91精品福利在线一区二区三区| 亚洲天堂av一区二区三区| 国内精品在线视频| 亚洲人成人一区二区在线观看| 久久国产午夜精品理论片最新版本| av先锋影音少妇| 成人午夜在线播放| 一区二区冒白浆视频| 能看av的网址| 91啪亚洲精品| 91.com在线| eeuss在线观看| 日韩美女视频一区二区| 六月丁香婷婷激情| 日韩一二三四| 亚洲高清一区二区三区| 天天看片天天操| 国产激情视频在线观看| 欧洲av一区二区嗯嗯嗯啊| 性欧美18—19sex性高清| 24小时免费看片在线观看| 欧美精品第1页| 极品蜜桃臀肥臀-x88av| 欧美成人毛片| 国产一区二区三区丝袜| 国产成人亚洲精品自产在线 | 97超碰在线视| 四色成人av永久网址| 亚洲精品国产第一综合99久久 | 成年人黄国产| 国产成人免费在线观看| 黄色网址在线免费看| 午夜免费性福利| 一区二区在线观看免费视频播放| 日韩在线一区视频| 日韩精品分区| 欧美r级电影在线观看| 九九视频在线免费观看| 亚洲人成网亚洲欧洲无码| 2018国产精品视频| a中文字幕www| 国产精品18久久久久久久网站| 午夜探花在线观看| 欧美性孕妇孕交| 在线视频一区二区三| 日韩精品无码一区二区三区久久久| 69堂精品视频在线播放| 日韩在线视频导航| 国产女人18毛片水真多| 乱码第一页成人| 日韩理论片在线观看| 动漫黄在线观看| 欧美色另类天堂2015| 亚洲а∨天堂久久精品2021| 在线高清一区| 国产综合色视频| 亚洲精品国产一区| 性色av一区二区| 亚洲五月六月丁香激情| 白丝校花扒腿让我c| 亚洲精品一级二级| 久久精品国产清自在天天线| www.97av| 国产一区二区女| 色欲色香天天天综合网www| 一级毛片视频在线观看| 日韩欧美aaaaaa| 午夜精品久久久久久久蜜桃| 99精品视频免费| 三年中文高清在线观看第6集| 免费在线观看污视频| 欧美日韩日本视频| 日韩欧美三级在线观看| 韩国自拍一区| 亚洲一区二区三区色| 国产在线视频网| 亚洲国产免费看| 免费在线一区二区| 中文字幕在线二区| 欧美日韩一区 二区 三区 久久精品| 男女做暖暖视频| 国产精品二区不卡| 欧美午夜免费| 男操女在线观看| 亚洲高清久久网| 91中文字幕在线视频| 久久精品国产99久久6| 黄色动漫网站入口| 亚洲涩涩在线| 国内精品久久久久久| 中国女人一级毛片| 亚洲无线码一区二区三区| 91精品国产高清一区二区三蜜臀| 欧美成熟视频| 国产成人免费高清视频| 黄页网站在线观看免费| 欧美美最猛性xxxxxx| 老司机福利在线观看| 欧美黄色录像片| 色播五月综合| 成人ww免费完整版在线观看| 日韩在线国产精品| 精品入口蜜桃| 亚洲一区二区视频在线| 青青操国产视频| 国产精品亚洲综合久久| 日韩中文字幕在线视频观看 | 欧美日韩视频不卡| 中文天堂在线资源| 国产高清成人在线| 无码国产69精品久久久久网站| 一本色道久久综合亚洲精品酒店| 免费在线成人av电影| 亚洲91av| 久久久在线视频| 中文字幕免费中文| 欧美一区二区福利在线| 国产高清在线免费| 国产日韩亚洲欧美综合| 网爆门在线观看| 国产精品美女久久久| 日日碰狠狠躁久久躁婷婷| 亚洲1区在线观看| 久久精品一二三区| av电影免费在线观看| 高清欧美性猛交xxxx黑人猛交| 福利网站av| 日韩久久精品一区| 男女视频免费网站| 亚洲高清中文字幕| 亚洲毛片一区二区三区| 久久久免费人体| 国产精品视频久久久久| 小水嫩精品福利视频导航| 这里只有精品丝袜| 黄色的网站免费| 欧美成人a视频| 中文xxx视频| 欧美性猛交xxxx黑人猛交| 国产精品国产av| 中文字幕一区二区三区蜜月 | a天堂在线视频| 欧美经典一区二区| 久久久精品91| 国产成人av影院| 美女av免费看| 麻豆国产精品777777在线| 无码人妻精品一区二区三区99不卡| 亚洲成av人电影| 国产成人久久777777| 国产精品亚洲二区| 日韩视频免费播放| 欧美三级电影在线| 国产女人18毛片| 91免费精品国偷自产在线在线| 欧美不卡在线一区二区三区| 在线免费av资源| 痴汉一区二区三区| √最新版天堂资源网在线| 91精品在线看| 日韩另类在线| 91在线色戒在线| 久久亚洲导航| 91免费观看网站| 成人免费一区二区三区牛牛| 91欧美精品午夜性色福利在线| 国产激情在线| 国产日韩在线观看av| 成人直播在线| 成人乱人伦精品视频在线观看| av在线免费观看网址| 91在线高清视频| 亚洲美女炮图| 青青成人在线|