久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

FPGA實(shí)現(xiàn)SPI通信:從協(xié)議細(xì)節(jié)到上板調(diào)試全攻略

FPGA實(shí)現(xiàn)SPI通信:從協(xié)議細(xì)節(jié)到上板調(diào)試全攻略 SPI接口在嵌入式系統(tǒng)里幾乎是無處不在但真要把SPI通信用FPGA做扎實(shí)很多人一開始容易掉進(jìn)代碼能跑就行的誤區(qū)。波形亂、時(shí)序不滿足、跑著跑著丟數(shù)據(jù)這些問題多半不是FPGA本身的問題而是對(duì)SPI協(xié)議的理解還停在大概這么回事的層面。這篇文章我結(jié)合自己實(shí)際做過的項(xiàng)目把FPGA實(shí)現(xiàn)SPI的關(guān)鍵點(diǎn)拆開講清楚從協(xié)議細(xì)節(jié)到代碼結(jié)構(gòu)從仿真到上板調(diào)試盡量把常見的坑都給你指出來。1. 為什么要在FPGA里自己寫SPI很多人的第一反應(yīng)是SPI這么簡(jiǎn)單的協(xié)議單片機(jī)上有現(xiàn)成的硬件外設(shè)配置一下寄存器就能用為什么還要在FPGA里費(fèi)勁去寫這個(gè)問題的答案直接決定你要不要看下去。在我做過的項(xiàng)目里遇到FPGA需要SPI的場(chǎng)景主要有這么幾類第一類是用FPGA做主控需要跟多個(gè)SPI從設(shè)備通信。比如同時(shí)掛一個(gè)ADC、一個(gè)Flash、一個(gè)SD卡如果都用IO口模擬或者用邏輯去拼狀態(tài)機(jī)會(huì)變得非常復(fù)雜。SPI協(xié)議的時(shí)序容限其實(shí)很寬松FPGA用狀態(tài)機(jī)實(shí)現(xiàn)SPI主模式代碼量不大但換來的靈活性非常高——你可以隨意控制時(shí)鐘極性、相位、速率、片選時(shí)序甚至可以做多從機(jī)輪詢、連續(xù)突發(fā)讀。第二類是接口轉(zhuǎn)換。比如STM32H743這類MCU跟FPGA通過FMC總線通信FPGA內(nèi)部需要把FMC接口的數(shù)據(jù)轉(zhuǎn)成SPI去控制外設(shè)或者是FPGA作為SPI從設(shè)備接收MCU下發(fā)的配置命令這時(shí)候你不可能去用別人的IP核自己實(shí)現(xiàn)一個(gè)SPI Slave往往是更好的選擇。第三類是因?yàn)樗俾驶蛘邥r(shí)序的苛刻要求。SPI的極限速率不低但MCU的硬件SPI有時(shí)鐘分頻檔位限制未必能剛好滿足某個(gè)傳感器要求的時(shí)序窗口而FPGA則可以直接用PLL輸出一個(gè)剛好滿足要求的時(shí)鐘用任意波特率來做。還有一個(gè)很現(xiàn)實(shí)的原因FPGA開發(fā)中SPI經(jīng)常是學(xué)習(xí)狀態(tài)機(jī)、時(shí)鐘域、數(shù)據(jù)流設(shè)計(jì)的絕佳練手項(xiàng)目。搞懂SPI的FPGA實(shí)現(xiàn)等于打通了FPGA邏輯設(shè)計(jì)的任督二脈。2. SPI協(xié)議里容易被忽略的細(xì)節(jié)2.1 SPI的四根線和兩種角色SPI的全稱是Serial Peripheral Interface串行外設(shè)接口通常由四根線組成SCLK串行時(shí)鐘由主設(shè)備產(chǎn)生MOSI主出從入Master Output Slave InputMISO主入從出Master Input Slave OutputCS/SS片選信號(hào)低電平有效由主設(shè)備控制這個(gè)接口的架構(gòu)決定了它的一個(gè)核心特點(diǎn)全雙工。在每一個(gè)時(shí)鐘周期主設(shè)備通過MOSI發(fā)送一位數(shù)據(jù)同時(shí)從設(shè)備通過MISO回送一位數(shù)據(jù)。這在寫Flash、讀ADC這些場(chǎng)景主設(shè)備在發(fā)送命令字節(jié)的同時(shí)就能收到從設(shè)備返回的狀態(tài)字節(jié)效率很高。全雙工意味著只要時(shí)鐘在跑兩邊都在采樣都在移位。這一點(diǎn)用Verilog寫狀態(tài)機(jī)時(shí)非常關(guān)鍵你不可能只發(fā)不收也不可能只收不發(fā)。所以設(shè)計(jì)時(shí)既要有發(fā)送移位寄存器又要有接收移位寄存器發(fā)送和接收是同時(shí)完成的只是你關(guān)心不關(guān)心接收到的內(nèi)容而已。2.2 四種工作模式是怎么來的SPI的四種模式由CPOLClock Polarity時(shí)鐘極性和CPHAClock Phase時(shí)鐘相位兩個(gè)參數(shù)組合而來這是實(shí)現(xiàn)時(shí)最容易出錯(cuò)的地方也是調(diào)板子時(shí)和外部芯片對(duì)齊的最關(guān)鍵參數(shù)。CPOL決定空閑狀態(tài)時(shí)SCLK的電平CPOL 0空閑時(shí)SCLK為低電平CPOL 1空閑時(shí)SCLK為高電平CPHA決定數(shù)據(jù)采樣發(fā)生在哪個(gè)邊沿CPHA 0在第一個(gè)邊沿采樣第一個(gè)邊沿可能是上升沿也可能是下降沿取決于CPOLCPHA 1在第二個(gè)邊沿采樣組合起來就是大家常說的SPI Mode 0、1、2、3。Mode 0CPOL0, CPHA0是最常見的模式空閑低電平上升沿采樣下降沿切換數(shù)據(jù)Mode 3CPOL1, CPHA1也很常見很多Flash芯片默認(rèn)支持Mode 0和Mode 3。這里我強(qiáng)烈建議在寫FPGA代碼之前先畫一張時(shí)序圖把CPOL、CPHA對(duì)應(yīng)的采樣邊沿和切換邊沿都標(biāo)清楚。不要憑感覺寫因?yàn)橥獠啃酒臄?shù)據(jù)手冊(cè)通常會(huì)用Data setup time、Data hold time、Valid edge這類描述你需要把手冊(cè)上的時(shí)序圖翻譯成你狀態(tài)機(jī)的邊沿動(dòng)作。2.3 SPI和IIC到底差在哪熱搜詞里有不少人搜spi和iic的區(qū)別我在調(diào)試中也經(jīng)常被問到。簡(jiǎn)單說SPI是全雙工、四線、無尋址、無應(yīng)答IIC是半雙工、兩線、帶地址、帶應(yīng)答。SPI適合高速、大塊、連續(xù)的數(shù)據(jù)傳輸IIC適合低速率、簡(jiǎn)單控制、多設(shè)備掛總線。FPGA項(xiàng)目里的傳感器數(shù)據(jù)采集、Flash讀寫、LCD驅(qū)動(dòng)SPI出現(xiàn)頻率明顯更高IIC更多用在EEPROM、溫濕度傳感器這些低速場(chǎng)合。說實(shí)話我個(gè)人的體會(huì)是如果你已經(jīng)掌握SPI再用FPGA實(shí)現(xiàn)IIC的核心難點(diǎn)只剩下應(yīng)答時(shí)序這一塊。邏輯設(shè)計(jì)的基本套路是相通的。2.4 數(shù)據(jù)格式和字節(jié)序SPI協(xié)議本身沒有規(guī)定數(shù)據(jù)的位序是MSB first還是LSB first也沒有規(guī)定一次傳輸?shù)奈粚捯欢ㄊ?位。協(xié)議只是定義了怎么把位送出去和什么時(shí)候采樣。因此FPGA里的SPI實(shí)現(xiàn)必須要有位寬參數(shù)化和位序可配置的思維方式。我經(jīng)??吹接腥藢懰?位結(jié)果換了一個(gè)12位的ADC整個(gè)狀態(tài)機(jī)都要改。在RTL設(shè)計(jì)里把數(shù)據(jù)位寬定義成參數(shù)把移位的順序定義成變量這種靈活性在SPI實(shí)現(xiàn)里太重要了。特別是ADC芯片12位、16位、24位都很常見你不可能每一次都重寫一遍SPI邏輯。3. 整體架構(gòu)設(shè)計(jì)先定需求再寫代碼3.1 明確你的SPI是主還是從這是設(shè)計(jì)開始前必須先回答的問題。主模式和從模式的代碼差別非常巨大。主模式的特點(diǎn)由FPGA自己產(chǎn)生SCLK時(shí)序主動(dòng)權(quán)在自己手上。你做設(shè)計(jì)時(shí)可以控制SCLK什么時(shí)候翻轉(zhuǎn)、數(shù)據(jù)什么時(shí)候更新、什么時(shí)候采樣。難點(diǎn)在于你要保證輸出給外部設(shè)備的時(shí)序符合它的要求。從模式的特點(diǎn)SCLK和CS都是外部輸入的。這時(shí)候你的FPGA邏輯處于被動(dòng)地位要跟隨時(shí)鐘的節(jié)奏難點(diǎn)在于跨時(shí)鐘域和異步信號(hào)處理。因?yàn)镾CLK是在FPGA外部產(chǎn)生的它和FPGA的內(nèi)部時(shí)鐘是異步關(guān)系你接收到的數(shù)據(jù)和時(shí)鐘天然存在相位不固定的問題。從我自己的經(jīng)驗(yàn)來看如果項(xiàng)目允許盡量把FPGA設(shè)計(jì)成SPI主模式。主模式簡(jiǎn)單得多調(diào)試也直觀邏輯分析儀一抓波形就能看出問題而從模式尤其是高速從模式光是一個(gè)異步信號(hào)同步化就要費(fèi)不少功夫而且容易出現(xiàn)亞穩(wěn)態(tài)問題。3.2 確定時(shí)序參數(shù)在你寫代碼前把下面這個(gè)表格填清楚這張表就是你的設(shè)計(jì)規(guī)格參數(shù)說明示例值設(shè)計(jì)依據(jù)SCLK頻率主模式時(shí)由FPGA產(chǎn)生10MHz外部從設(shè)備支持的最大SCLKCPOL空閑電平極性0外部從設(shè)備手冊(cè)CPHA數(shù)據(jù)采樣相位0外部從設(shè)備手冊(cè)數(shù)據(jù)位寬一次傳輸?shù)奈粩?shù)8/16/24從設(shè)備寄存器或命令長(zhǎng)度CS有效電平片選極性低有效從設(shè)備手冊(cè)CS建立時(shí)間CS拉低到第一個(gè)SCLK邊沿的時(shí)間t_setup 20ns從設(shè)備手冊(cè)中的CS setup timeCS保持時(shí)間最后一個(gè)SCLK邊沿到CS釋放的時(shí)間t_hold 20ns從設(shè)備手冊(cè)中的CS hold time這些參數(shù)里CS建立時(shí)間、保持時(shí)間經(jīng)常被人忽略。很多外部設(shè)備對(duì)CS到SCLK的時(shí)序是有要求的你如果CS剛拉低就出時(shí)鐘可能第一個(gè)字節(jié)就會(huì)出錯(cuò)。稍微有一點(diǎn)冗余的建立時(shí)間反而更穩(wěn)妥。3.3 寄存器配置還是狀態(tài)機(jī)FPGA里實(shí)現(xiàn)SPI有兩種常見的做法一種是使用FPGA廠商提供SPI IP核。Xilinx有AXI Quad SPIIntel有SPI Core。優(yōu)點(diǎn)是穩(wěn)定、經(jīng)過驗(yàn)證缺點(diǎn)是配置復(fù)雜、資源占用大、不夠靈活。如果你只是想把SPI掛上總線用IP核是省事的但如果你的SPI需要做特殊時(shí)序比如中途切換模式、多從機(jī)動(dòng)態(tài)切換、和某個(gè)非標(biāo)準(zhǔn)外設(shè)對(duì)接IP核反而礙手礙腳。另一種是我今天主要講的做法用狀態(tài)機(jī)自己寫。SPI協(xié)議本身的時(shí)序并不復(fù)雜用Verilog寫一個(gè)可參數(shù)化的SPI Master通常也就100多行核心邏輯。自己寫的優(yōu)勢(shì)是你可以完全掌控時(shí)序每一個(gè)邊沿出了問題看波形就知道是自己哪一步寫錯(cuò)了調(diào)試體驗(yàn)特別好。對(duì)于FPGA學(xué)習(xí)者來說自己寫一遍SPI對(duì)狀態(tài)機(jī)如何控制時(shí)序這個(gè)核心概念的理解會(huì)深入非常多。4. 可復(fù)用的SPI Master核心代碼實(shí)現(xiàn)4.1 接口定義和模塊劃分我自己用的SPI Master模塊接口設(shè)計(jì)是分成兩層的外層是簡(jiǎn)單的讀寫請(qǐng)求接口內(nèi)層是處理具體時(shí)序的SCLK生成和移位邏輯。module spi_master #( parameter CLK_FREQ 50_000_000, // FPGA系統(tǒng)時(shí)鐘頻率 parameter SCLK_FREQ 10_000_000, // SPI時(shí)鐘頻率 parameter DATA_WIDTH 8, // 數(shù)據(jù)位寬 parameter CPOL 0, // 時(shí)鐘極性 parameter CPHA 0, // 時(shí)鐘相位 parameter MSB_FIRST 1 // 1MSB先發(fā)送0LSB先發(fā)送 )( input wire clk, // 系統(tǒng)時(shí)鐘 input wire rst_n, // 異步復(fù)位低有效 // CPU/用戶邏輯側(cè)接口 input wire start, // 啟動(dòng)一次傳輸脈沖信號(hào) input wire [DATA_WIDTH-1:0] tx_data, // 要發(fā)送的數(shù)據(jù) input wire [7:0] clk_div, // 時(shí)鐘分頻系數(shù)可動(dòng)態(tài)調(diào)整 output reg busy, // 忙指示高電平表示正在傳輸 // SPI物理接口 output reg sclk, // 串行時(shí)鐘 output reg cs_n, // 片選低有效 output reg mosi, // 主出從入 input wire miso // 主入從出 );端口劃分上有個(gè)經(jīng)驗(yàn)把clk_div設(shè)計(jì)成可配置的寄存器而不是固定參數(shù)。這樣在同一個(gè)工程里你可以用軟件動(dòng)態(tài)調(diào)整SPI速率適配不同從設(shè)備。比如FPGA和STM32連接時(shí)STM32這邊可能就有好幾路SPI設(shè)備需要不同的速率。4.2 狀態(tài)機(jī)的三種狀態(tài)設(shè)計(jì)SPI主模式的發(fā)送流程可以抽象成三個(gè)狀態(tài)IDLE、TRANSFER、DONE。核心思想是在TRANSFER狀態(tài)下用一個(gè)計(jì)數(shù)器來產(chǎn)生SCLK用另一個(gè)計(jì)數(shù)器記錄已發(fā)送的位數(shù)。localparam IDLE 2d0; localparam TRANSFER 2d1; localparam DONE 2d2; reg [1:0] state; reg [7:0] clk_cnt; // 時(shí)鐘分頻計(jì)數(shù)器 reg [7:0] bit_cnt; // 位計(jì)數(shù)器 reg [DATA_WIDTH-1:0] shift_reg; // 移位寄存器 reg sclk_r; // SCLK的寄存器版本這個(gè)狀態(tài)機(jī)的關(guān)鍵設(shè)計(jì)思路是不直接用一個(gè)高頻時(shí)鐘去產(chǎn)生邊沿而是用分頻計(jì)數(shù)器產(chǎn)生SCLK的翻轉(zhuǎn)事件。每數(shù)到分頻系數(shù)的一半翻轉(zhuǎn)一次SCLK。采樣的時(shí)候通過判定SCLK的當(dāng)前電平和CPOL/CPHA的關(guān)系來決定是更新數(shù)據(jù)還是采樣數(shù)據(jù)。4.3 移位和數(shù)據(jù)采樣的正確姿勢(shì)在SPI主模式下數(shù)據(jù)發(fā)送相對(duì)簡(jiǎn)單每次SCLK的數(shù)據(jù)切換邊沿到來時(shí)移位寄存器移出一位輸出到MOSI。數(shù)據(jù)接收則恰恰相反在SCLK的采樣邊沿到來時(shí)把MISO上的電平打進(jìn)來。這里有個(gè)很核心的模塊技巧邊沿檢測(cè)。你需要在FPGA的主時(shí)鐘域里檢測(cè)SCLK的邊沿。最常見的做法是把SCLK寄存兩拍然后做異或邏輯reg sclk_d1; reg sclk_d2; always (posedge clk or negedge rst_n) begin if (!rst_n) begin sclk_d1 1b0; sclk_d2 1b0; end else begin sclk_d1 sclk; sclk_d2 sclk_d1; end end wire sclk_rising sclk_d1 ~sclk_d2; wire sclk_falling ~sclk_d1 sclk_d2;這個(gè)兩拍寄存的做法既完成了邊沿檢測(cè)也把SCLK信號(hào)同步到了系統(tǒng)時(shí)鐘域避免亞穩(wěn)態(tài)。很多人寫SPI主模式直接用sclk去做時(shí)鐘觸發(fā)always塊這在低速時(shí)問題不大但在復(fù)雜工程里容易出很多時(shí)序問題。用系統(tǒng)時(shí)鐘打兩拍檢測(cè)邊沿可以避免跨時(shí)鐘域分析也方便在狀態(tài)機(jī)里處理。采樣時(shí)需要根據(jù)CPHA配置決定是上升沿采樣還是下降沿采樣wire sclk_sample_edge (CPHA 0) ? sclk_rising : sclk_falling; wire sclk_shift_edge (CPHA 0) ? sclk_falling : sclk_rising;CPHA0時(shí)第一個(gè)邊沿采樣第二個(gè)邊沿切換CPHA1時(shí)反過來。再加上CPOL決定空閑電平這樣一個(gè)通用驅(qū)動(dòng)就出來了。4.4 完整狀態(tài)機(jī)邏輯關(guān)鍵的核心狀態(tài)機(jī)代碼如下always (posedge clk or negedge rst_n) begin if (!rst_n) begin state IDLE; sclk CPOL; cs_n 1b1; mosi 1b0; busy 1b0; clk_cnt 8d0; bit_cnt 8d0; shift_reg {DATA_WIDTH{1b0}}; end else begin case (state) IDLE: begin cs_n 1b1; sclk CPOL; busy 1b0; if (start) begin cs_n 1b0; // 拉低片選 state TRANSFER; bit_cnt 0; clk_cnt 0; shift_reg tx_data; busy 1b1; end end TRANSFER: begin // SCLK生成邏輯計(jì)數(shù)到分頻系數(shù)的一半時(shí)間翻轉(zhuǎn)一次 if (clk_cnt (clk_div/2 - 1)) begin clk_cnt 0; sclk ~sclk; end else begin clk_cnt clk_cnt 1; end // 數(shù)據(jù)移位在數(shù)據(jù)切換邊沿 if (sclk_shift_edge) begin if (MSB_FIRST) begin mosi shift_reg[DATA_WIDTH-1]; shift_reg {shift_reg[DATA_WIDTH-2:0], 1b0}; end else begin mosi shift_reg[0]; shift_reg {1b0, shift_reg[DATA_WIDTH-1:1]}; end bit_cnt bit_cnt 1; end // 數(shù)據(jù)采樣在采樣邊沿 if (sclk_sample_edge) begin if (MSB_FIRST) begin shift_reg {shift_reg[DATA_WIDTH-2:0], miso}; end else begin shift_reg {miso, shift_reg[DATA_WIDTH-1:1]}; end end if (bit_cnt DATA_WIDTH sclk_shift_edge) begin state DONE; end end DONE: begin cs_n 1b1; // 釋放片選 state IDLE; busy 1b0; end endcase end end assign rx_data shift_reg; // 實(shí)時(shí)透出接收移位寄存器方便用戶在IDLE后讀取這里有三個(gè)細(xì)節(jié)要注意第一我在TRANSFER里同時(shí)檢測(cè)了移位邊沿和采樣邊沿這兩個(gè)邊沿是交替出現(xiàn)的。當(dāng)你用系統(tǒng)時(shí)鐘去驅(qū)動(dòng)時(shí)上升沿和下降沿間隔了半個(gè)SCLK周期所以它們不會(huì)沖突因?yàn)橐粋€(gè)always塊里是順序執(zhí)行的完美避開了競(jìng)爭(zhēng)。第二判斷發(fā)完最后一位的時(shí)機(jī)很關(guān)鍵。我是在bit_cnt等于DATA_WIDTH并且最后一個(gè)移位邊沿到來時(shí)才跳轉(zhuǎn)到DONE。這樣保證SCLK完整走完最后一位CS釋放時(shí)不會(huì)截?cái)嘧詈笠粋€(gè)數(shù)據(jù)。很多人CS拉早了最后一個(gè)bit直接被切掉就是從設(shè)備收不到完整字節(jié)的原因。第三從設(shè)備返回的數(shù)據(jù)在最后一個(gè)采樣邊沿就已經(jīng)全部在shift_reg里了所以從DONE回到IDLE之后rx_data已經(jīng)是完整的數(shù)據(jù)了。不需要額外等一拍。4.5 從模式設(shè)計(jì)提示如果你的場(chǎng)景是FPGA做從設(shè)備接收MCU的命令設(shè)計(jì)思路需要做幾處調(diào)整。從模式的核心是SCLK和CS都是從外部進(jìn)來的必須先在FPGA內(nèi)部做兩級(jí)同步然后檢測(cè)SCLK的邊沿。因?yàn)橥獠繒r(shí)鐘和FPGA內(nèi)部時(shí)鐘是異步的直接使用外部時(shí)鐘做觸發(fā)是不安全的尤其在系統(tǒng)時(shí)鐘頻率和SCLK頻率可比的場(chǎng)景。采樣數(shù)據(jù)也建議用系統(tǒng)時(shí)鐘打拍后采樣而不是直接用SCLK作為寄存器的時(shí)鐘。因?yàn)镕PGA內(nèi)部走線的時(shí)鐘樹需要統(tǒng)一分散的時(shí)鐘會(huì)導(dǎo)致布局布線的時(shí)序問題容易出現(xiàn)物理層面不可復(fù)現(xiàn)的bug。5. 硬件片選與軟件片選的抉擇5.1 硬件片選的優(yōu)勢(shì)硬件片選是指CS信號(hào)直接由SPI模塊在傳輸開始/結(jié)束時(shí)自動(dòng)控制用戶只需要發(fā)出start信號(hào)模塊自己完成CS拉低、發(fā)送、釋放。這種方式的好處是時(shí)序可控性最好你可以精確控制CS拉低到第一個(gè)SCLK邊沿的時(shí)間保證滿足從設(shè)備的建立時(shí)間要求不需要用戶軟件介入避免用戶在CS拉低之后、啟動(dòng)傳輸之前的一段窗口期里受到干擾方便實(shí)現(xiàn)連續(xù)傳輸模式在Flash的連續(xù)讀、連續(xù)寫場(chǎng)景硬件片選可以自動(dòng)維持CS為低直到整塊數(shù)據(jù)搬完我在W25Q128這類Flash芯片上硬件片選體驗(yàn)非常好時(shí)序干凈讀出來的數(shù)據(jù)基本不需要做額外的毛刺處理。5.2 軟件片選的靈活之處軟件片選是把CS信號(hào)作為一個(gè)普通的GPIO由用戶邏輯或軟件在SPI傳輸之前手動(dòng)拉低傳輸結(jié)束后再手動(dòng)拉高。這適合什么場(chǎng)景呢第一個(gè)是SPI總線上掛了多個(gè)從設(shè)備你需要?jiǎng)討B(tài)選擇比如一個(gè)ADC、一個(gè)Flash、一個(gè)SD卡它們各自有獨(dú)立的CS。第二個(gè)是從設(shè)備的CS時(shí)序有特殊要求需要在中間人為地制造一些縫隙比如某些傳感器要求CS低電平保持時(shí)間大于某個(gè)值。第三個(gè)是調(diào)試階段你還沒有完全掌握從設(shè)備的CS時(shí)序要求先用軟件片選手動(dòng)測(cè)出窗口再固化到硬件控制里。5.3 我的選擇經(jīng)驗(yàn)我的習(xí)慣是默認(rèn)用硬件片選因?yàn)榭煽啃愿郀顟B(tài)機(jī)自己知道什么時(shí)候該拉CS、什么時(shí)候該釋放不會(huì)出現(xiàn)軟件延時(shí)抖動(dòng)導(dǎo)致CS時(shí)序漂移的問題只有遇到多個(gè)從設(shè)備需要同時(shí)掛在回應(yīng)件場(chǎng)景下才用軟件映射把CS信號(hào)做成一個(gè)Memory Map的寄存器。另外有些芯片對(duì)CS的要求比較嬌氣。比如AFE4490這類高精度模擬前端它的SPI接口對(duì)CS時(shí)序非常敏感CS釋放過早會(huì)導(dǎo)致寄存器寫入失敗。這類芯片我建議哪怕是FPGA環(huán)境也做一次芯片手冊(cè)的時(shí)序核對(duì)確認(rèn)CS建立/保持時(shí)間滿足之后再?zèng)Q定方案。6. 仿真驗(yàn)證實(shí)戰(zhàn)經(jīng)驗(yàn)分享6.1 搭建一個(gè)可復(fù)現(xiàn)的testbench在我自己的開發(fā)流程里SPI模塊寫完之后第一件事不是直接上板而是先在仿真環(huán)境里跑一遍。仿真可以快速確認(rèn)字節(jié)順序是否正確MSB first還是LSB firstCPOL和CPHA是否按預(yù)期工作CS時(shí)序是否滿足發(fā)送的數(shù)據(jù)和接收的數(shù)據(jù)是否能對(duì)上一個(gè)基本的testbench包含兩部分時(shí)鐘生成和激勵(lì)產(chǎn)生。timescale 1ns/1ps module tb_spi_master; reg clk 0; reg rst_n 0; reg start 0; reg [7:0] tx_data 8hA5; wire [7:0] rx_data; wire busy; wire sclk; wire cs_n; wire mosi; reg miso 0; // 25MHz系統(tǒng)時(shí)鐘50MHz也可以這里為了看得清楚用的25MHz always #20 clk ~clk; spi_master #( .CLK_FREQ (25_000_000), .SCLK_FREQ ( 5_000_000), .DATA_WIDTH (8), .CPOL (0), .CPHA (0), .MSB_FIRST (1) ) dut ( .clk (clk), .rst_n (rst_n), .start (start), .tx_data(tx_data), .busy (busy), .sclk (sclk), .cs_n (cs_n), .mosi (mosi), .miso (miso) ); // 模擬一個(gè)假從設(shè)備把MISO回應(yīng)為固定值或者回環(huán)到MOSI always (posedge sclk) begin miso mosi; // 回環(huán)模式方便檢查 end initial begin rst_n 0; #100; rst_n 1; #50; (negedge clk); start 1; tx_data 8hA5; #20; start 0; // 等待傳輸完成 wait (!busy); $display(Transfer done, rx_data %02x, rx_data); #100; $finish; end endmodule上面這個(gè)testbench我加了一個(gè)回環(huán)邏輯把MOSI直接回送到MISO這樣仿真環(huán)境里就能看到收發(fā)數(shù)據(jù)是否一致。如果tx_data A5rx_data也應(yīng)該是A5說明整個(gè)數(shù)據(jù)通路沒有問題。6.2 仿真波形里到底要看什么波形打開之后不要只盯著最后結(jié)果需要逐個(gè)窗口核對(duì)第一段看CS拉低之后到第一個(gè)SCLK上升沿的時(shí)間間隔??此欠駶M足你設(shè)計(jì)的cs_setup時(shí)間要求。這段如果在仿真里都太短說明狀態(tài)機(jī)的CS拉低時(shí)機(jī)需要調(diào)整比如可以單獨(dú)加一拍CS_Setup狀態(tài)。第二段看SCLK是不是均勻的方波有沒有脈寬不對(duì)稱的情況。我之前用分頻計(jì)數(shù)器的時(shí)候計(jì)數(shù)初值沒設(shè)對(duì)導(dǎo)致SCLK高電平時(shí)間比低電平時(shí)間長(zhǎng)了1拍波形看起來不錯(cuò)但實(shí)際從設(shè)備對(duì)占空比敏感時(shí)就會(huì)出錯(cuò)。第三段看MOSI在SCLK的哪個(gè)位置翻轉(zhuǎn)。這個(gè)是最能檢驗(yàn)CPOL/CPHA有沒有配錯(cuò)的地方CPHA0時(shí)MOSI應(yīng)該在SCLK的下升沿后立刻更新然后在上升沿采樣數(shù)據(jù)在采樣窗口內(nèi)保持穩(wěn)定如果觀察到的現(xiàn)象恰好相反說明CPHA配反了。第四段看CS釋放的時(shí)機(jī)。CS從低變高的那一刻必須要等到最后一個(gè)SCLK邊沿完成之后。如果CS和SCLK同時(shí)動(dòng)作多半是有問題的。6.3 仿真中踩過的典型坑仿真里最常見的坑一個(gè)是沿和電平搞混。SPI協(xié)議是邊沿觸發(fā)但仿真波形會(huì)因?yàn)檠訒r(shí)設(shè)置導(dǎo)致邊沿和采樣窗口邊界模糊。建議在testbench里加$monitor或者$display打印關(guān)鍵寄存器的變化不要光看波形有時(shí)候波形縮得太小邊沿錯(cuò)位肉眼根本看不出來。另一個(gè)坑是起始條件沒給夠。像SPI這種有片選的協(xié)議如果rst_n釋放后沒有等足夠長(zhǎng)時(shí)間就啟動(dòng)傳輸可能出現(xiàn)一些奇怪行為。我個(gè)人習(xí)慣是復(fù)位后至少等系統(tǒng)時(shí)鐘10拍以上再拉start保證狀態(tài)機(jī)和內(nèi)部寄存器都回到確定的初始狀態(tài)。7. 上板調(diào)試中的常見故障與排查實(shí)錄7.1 波形看著沒問題設(shè)備就是不響應(yīng)這是最氣人的一種情況。用邏輯分析儀抓波形SCLK正常MOSI也按時(shí)翻轉(zhuǎn)但外設(shè)始終沒有任何回應(yīng)。這種時(shí)候第一件事是把數(shù)據(jù)手冊(cè)翻出來核對(duì)CPOL和CPHA配置。有一次我做STM32和FPGA通過SPI對(duì)接兩邊都以為自己是標(biāo)準(zhǔn)模式結(jié)果一個(gè)默認(rèn)Mode 0一個(gè)默認(rèn)Mode 3看起來好像標(biāo)準(zhǔn)其實(shí)完全不同。SPI有4種模式必須兩邊都核對(duì)清楚這是最常見的配置錯(cuò)誤。其次檢查是否有從設(shè)備的時(shí)鐘速率上限。如果FPGA主時(shí)鐘很高分頻系數(shù)取了一個(gè)比較激進(jìn)的值SCLK超過了從設(shè)備的額定值設(shè)備也會(huì)不響應(yīng)。再有一個(gè)隱藏問題MISO信號(hào)沒有上拉或下拉。MISO通常是推挽輸出但有些從設(shè)備在CS拉高時(shí)釋放總線變成高阻態(tài)。如果FPGA引腳沒有啟用內(nèi)部上拉MISO在總線空閑時(shí)就是浮空狀態(tài)一旦有一點(diǎn)點(diǎn)干擾采樣回來的數(shù)據(jù)就是亂的。7.2 數(shù)據(jù)錯(cuò)位、串位數(shù)據(jù)錯(cuò)位但波形看起來正常這是SPI調(diào)試?yán)镒铍[蔽的問題。第一個(gè)可能的原因是采樣邊沿和切換邊沿沒對(duì)準(zhǔn)。如果CPHA配置不對(duì)數(shù)據(jù)在采樣瞬間剛好處于切換過渡階段采回來的就是毛刺值。這種問題在仿真里不容易發(fā)現(xiàn)因?yàn)榉抡姝h(huán)境里信號(hào)切換是瞬時(shí)的而真實(shí)電路中MOSI上存在傳播延時(shí)和上升沿時(shí)間。解決方法下降沿發(fā)數(shù)據(jù)、上升沿采樣是Mode 0的標(biāo)準(zhǔn)做法。如果你發(fā)現(xiàn)數(shù)據(jù)錯(cuò)位可以嘗試把數(shù)據(jù)發(fā)送邊沿往前提半個(gè)SCLK周期給數(shù)據(jù)穩(wěn)定留出余量也就是用在SCLK下沿之后的某個(gè)時(shí)刻更新MOSI保證上升沿前數(shù)據(jù)已經(jīng)穩(wěn)定這個(gè)思路調(diào)整。第二個(gè)可能的原因是時(shí)鐘邊沿檢測(cè)失敗。我之前說過要用兩級(jí)同步檢測(cè)邊沿如果你圖省事直接用sclk作為觸發(fā)時(shí)鐘的always塊在FPGA布局布線后偶爾會(huì)出現(xiàn)偶爾丟一拍時(shí)鐘的怪問題。這種問題非常難查最好在一開始就按同步設(shè)計(jì)的方法來寫。7.3 CS釋放導(dǎo)致最后一個(gè)字節(jié)丟失這是Flash和ADC類設(shè)備上非常典型的問題。最后一個(gè)字節(jié)的數(shù)據(jù)在最后一個(gè)SCLK邊沿才有效如果你的狀態(tài)機(jī)檢測(cè)到位計(jì)數(shù)達(dá)到數(shù)據(jù)寬度就立刻釋放CS很可能會(huì)把最后一位數(shù)據(jù)截掉。我建議在狀態(tài)機(jī)里設(shè)置一個(gè)尾巴狀態(tài)或者延后一拍釋放CS。也就是說即使最后一比特已經(jīng)發(fā)送完成也要把CS維持低電平至少半個(gè)SCLK周期再釋放。為從設(shè)備的數(shù)據(jù)鎖存提供時(shí)間窗口。這也是為什么我前面的代碼里DONE狀態(tài)單獨(dú)占了狀態(tài)機(jī)的一拍時(shí)間目的就是為了讓CS晚于SCLK釋放。7.4 FPGA和STM32通過FMC/SPI通信時(shí)容易犯的錯(cuò)STM32H743這類高端MCU跟FPGA的接口方式很多FMC靈活的存儲(chǔ)控制器是很多人選用的方式。FMC把FPGA當(dāng)作外部存儲(chǔ)器來訪問FPGA這邊則會(huì)做一個(gè)總線轉(zhuǎn)SPI的橋接邏輯。這種情況下有一個(gè)很大的坑FMC寫入的數(shù)據(jù)位寬和SPI實(shí)際發(fā)送的位寬可能不一致。比如FMC總線是16位的而某個(gè)SPI從設(shè)備的寄存器只有8位。如果FPGA這邊沒有做高位屏蔽或者數(shù)據(jù)拼接就會(huì)出現(xiàn)寫一次命令SPI發(fā)出的是兩個(gè)字節(jié)從設(shè)備收到多余的數(shù)據(jù)。解決的辦法是解析FMC的地址線讓每個(gè)寄存器地址精確映射到一次SPI傳輸而不是讓數(shù)據(jù)總線直接對(duì)接SPI的發(fā)送寄存器。另外FMC接口寫入的時(shí)序比較快而SPI本身相對(duì)慢。如果MCU側(cè)連續(xù)寫入多個(gè)寄存器FPGA這邊如果還沒有處理完上一筆事務(wù)新的請(qǐng)求就會(huì)丟失或者覆蓋。所以務(wù)必要在FMC接口和SPI模塊之間加FIFO做緩沖并且提供滿標(biāo)志給MCU讀取。這個(gè)細(xì)節(jié)我踩過太多次了不加FIFOMCU寫太快FPGA就會(huì)漏命令。7.5 調(diào)試工具推薦SPI調(diào)試建議使用邏輯分析儀不要只依賴示波器。SPI是數(shù)字協(xié)議邏輯分析儀可以把CS、SCLK、MOSI、MISO四根線一起抓下來還帶協(xié)議解析直接看你發(fā)的是什么數(shù)據(jù)、收的是什么數(shù)據(jù)極其直觀。我用的是那種幾十塊錢的8通道邏輯分析儀配合開源軟件日常SPI調(diào)試完全夠用。如果現(xiàn)場(chǎng)沒有邏輯分析儀用示波器至少同時(shí)看兩路一路SCLK一路MOSI或CS。用余輝模式可以看到信號(hào)翻轉(zhuǎn)的瞬態(tài)過程判斷時(shí)序余量。8. 代碼可維護(hù)性參數(shù)化與通用化8.1 參數(shù)化才是一次寫好處處復(fù)用我見過不少同學(xué)寫的SPI模塊數(shù)據(jù)和時(shí)鐘都寫死在代碼里。一旦換芯片整段代碼改得面目全非。真正好用的SPI模塊應(yīng)該參數(shù)化到改幾個(gè)parameter就能適配不同外設(shè)的程度。我自己的參數(shù)表一般是這樣的DATA_WIDTH支持8、12、16、24、32位MSB_FIRST可切換CPOL、CPHA可配置CLK_DIV可在運(yùn)行時(shí)通過寄存器調(diào)整分頻系數(shù)有了這些參數(shù)換一個(gè)ADC、換一個(gè)Flash基本就是改初始值的事狀態(tài)機(jī)的骨架完全不用動(dòng)。8.2 異步FIFO隔離時(shí)鐘域如果在設(shè)計(jì)中SPI的時(shí)鐘域和系統(tǒng)時(shí)鐘域不同比如SPI SCLK來自PLL的獨(dú)立時(shí)鐘域建議在SPI模塊外面包一層異步FIFO。發(fā)送側(cè)寫FIFO用系統(tǒng)時(shí)鐘讀FIFO送進(jìn)SPI模塊用SCLK時(shí)鐘域接收側(cè)反過來。這樣能有效避免跨時(shí)鐘域?qū)е碌臄?shù)據(jù)錯(cuò)亂。我實(shí)際的項(xiàng)目中經(jīng)常遇到MCU通過FMC總線訪問FPGAFPGA再通過SPI控制ADCFMC側(cè)和SPI側(cè)的時(shí)鐘不同步FIFO幾乎是必選項(xiàng)。而且FIFO深度建議不小于16能緩沖Burst寫入的峰值。8.3 添加可讀的狀態(tài)寄存器最后一條經(jīng)驗(yàn)在SPI模塊里增加一個(gè)狀態(tài)寄存器把busy、error、當(dāng)前狀態(tài)、最近一次傳輸?shù)腷it數(shù)暴露出來。上板調(diào)試時(shí)通過JTAG或者UART把這些寄存器讀回來能極大縮短排查時(shí)間。很多看似玄學(xué)的問題其實(shí)只要看寄存器狀態(tài)就能定位到具體環(huán)節(jié)。我調(diào)試SPI從模式的時(shí)候就把最近一次SCLK邊沿檢測(cè)計(jì)數(shù)寫進(jìn)狀態(tài)寄存器一旦MCU那邊的時(shí)鐘極性配置詭異我通過寄存器看到的計(jì)數(shù)異常就能反向定位MCU的配置錯(cuò)誤。9. 速率評(píng)估與極限設(shè)計(jì)經(jīng)驗(yàn)9.1 能跑多快取決于什么SPI的極限速率不光是SCLK頻率本身還取決于FPGA內(nèi)部邏輯的時(shí)序收斂情況。對(duì)于50MHz的SCLK方波的上升沿和下降沿都快信號(hào)完整性的要求隨之提高PCB上如果有長(zhǎng)的走線反射可能導(dǎo)致采樣錯(cuò)誤。我自己的經(jīng)驗(yàn)是在FPGA的普通IO上SPI頻率跑到50MHz以上就要開始關(guān)注IO走線長(zhǎng)度、是否加了串聯(lián)電阻、板廠的阻抗控制是否精確了。對(duì)于一般的低速外設(shè)ADC、Flash、屏幕10~30MHz是完全夠用的區(qū)間也是邏輯最容易做到穩(wěn)定可靠的區(qū)間。9.2 如何優(yōu)化速率如果你確實(shí)需要更高的SPI速率優(yōu)化的重點(diǎn)有兩個(gè)一個(gè)是減少SCLK產(chǎn)生邏輯的組合邏輯延時(shí)。把分頻計(jì)數(shù)器的比較邏輯做簡(jiǎn)化比如計(jì)數(shù)到0比計(jì)數(shù)到某個(gè)任意值邏輯更快。一個(gè)是盡量把MOSI更新的邏輯靠后保證數(shù)據(jù)在采樣窗口內(nèi)的建立時(shí)間盡可能長(zhǎng)。還有一個(gè)小技巧在SCLK每個(gè)翻轉(zhuǎn)沿之前一拍就把MOSI更新好。這意味著你沒有完全按SCLK的邊沿來發(fā)數(shù)據(jù)而是提前一點(diǎn)更新。這在FPGA內(nèi)部實(shí)現(xiàn)上等效于把數(shù)據(jù)切換和時(shí)鐘翻轉(zhuǎn)解耦數(shù)據(jù)穩(wěn)定窗口變寬。這也是很多優(yōu)秀SPI驅(qū)動(dòng)性能更好的原因。10. 個(gè)人踩坑總結(jié)幾個(gè)值得反復(fù)咀嚼的教訓(xùn)做了這么多年FPGA開發(fā)SPI這個(gè)接口我前前后后寫過不下十版每次都有新的理解。有幾條個(gè)人體會(huì)分享給大家參考。第一永遠(yuǎn)不要相信標(biāo)準(zhǔn)SPI這種說法。不同的外設(shè)時(shí)序定義千差萬別。接到一個(gè)新芯片第一件事一定是把手冊(cè)里的時(shí)序圖翻譯成自己狀態(tài)機(jī)的四個(gè)關(guān)鍵節(jié)點(diǎn)CS拉低位置、第一個(gè)采樣邊沿位置、最后一個(gè)采樣邊沿位置、CS釋放位置。翻譯完了再寫代碼成功率能翻一倍。第二仿真和上板截然不同。仿真解決的是邏輯對(duì)不對(duì)的問題上板解決的是物理世界怎么匹配的問題。很多問題仿真里根本不存在因?yàn)榉抡胬餂]有傳播延時(shí)、沒有信號(hào)完整性問題、沒有IO電平判定的模糊區(qū)。所以仿真過了只是開始不是結(jié)束。第三看波形要看出趨勢(shì)而不是瞬間。SPI調(diào)試中單次觸發(fā)能抓到問題但更隱蔽的問題是間歇性的。我建議邏輯分析儀用連續(xù)觸發(fā)或者長(zhǎng)時(shí)間抓取模式看看很長(zhǎng)時(shí)間內(nèi)有沒有偶發(fā)的錯(cuò)位因?yàn)檫@種問題往往是片選時(shí)序邊緣抖動(dòng)或者外部干擾引起的。第四代碼的可讀性和可維護(hù)性極其重要。SPI模塊雖然代碼量不大但至少要在文件頭部把時(shí)序參數(shù)、狀態(tài)定義、使用方式寫清楚。因?yàn)槿齻€(gè)月后你自己都未必記得當(dāng)初為什么CPHA要這樣配置。寫設(shè)計(jì)筆記是FPGA工程師職業(yè)素養(yǎng)的一部分。第五實(shí)在調(diào)不通的時(shí)候把SCLK降速試試。很多時(shí)候硬件就在那里只是你的時(shí)序余量不足。把SCLK降一半很多問題會(huì)暴露得更清楚——如果降速后依然出錯(cuò)說明問題不在速率而在協(xié)議配置或者接線本身。這一步能幫你迅速縮小排查范圍。如果你打算把SPI接到非標(biāo)的設(shè)備上我建議先把標(biāo)準(zhǔn)的SPI主模式調(diào)通再做定制化修改。把基礎(chǔ)模塊驗(yàn)證扎實(shí)后面加什么花活都容易。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
黄人人操人人操| 国产精品经典一卡久久久| 97超级久久| 九九九午夜| 被体育老师抱着c到高潮| 欧美日韩精品久久久久久久久东北老熟妇| wwe 天天干.com| 女人双腿搬开让男人桶| 自怕偷自怕亚洲精品| 超碰97伊人| 亚洲欧洲无码一区夜| 婷婷色综合| 激情综合网五月婷婷五月天| 91在线免费精品视频| 龙兴卡官方查询| 日本一级真人黄色性爱视频| 超碰久草| 久久久99999久网站| 婷婷五月天成人| 少妇啪啪自拍| 久久久久亚洲AV无码专区少妇| 高清孕妇孕交 交| 国产一区二区三区久久精品太古里| 99热啪啪| 五月婷婷激情网| 午夜精品探花| 国模精品娜娜一二三区| 在线观看亚洲专区| 国产精品黄色三级av| 秋霞一级鲁丝片A片| 综合色好色| 超碰97男女| 欧美91网| 可乐操亚洲蜜911| 欧美天天搞| 躁躁躁日日躁2020| 日韩乱伦AⅤ| 亚洲婷婷丁香在线| 人人搞人人插人人操| 精品国产乱码久久久久久久久久毛片| 新怡红院| 亚洲日韩天堂| 亚洲中字幕日本一区二区三区| 日韩乱码av| 发朗少妇买婬全视频中文| 亚洲高清在线| 丁香五月成人| 麻豆区99999| 亚洲人妻一区二区三区| 少妇与黑人高潮在线| 久久超碰、| 欧美精品偷拍| 加勒比综合a∨| 女人的天堂大香蕉网| 欧洲一区二区三区免费| 国产丸一视频| 亚洲熟女综合一区二区| 懂色Av| 人人摸人人入| 操逼逼福利视频| 99热精品免费| 91亚洲欧美色图| 九九国产| 极品色| 美女视频尤物网在线看| 狠狠操天天干| 免费看污网址| 久9综合在线| 国产精品视频在线观看| 久久久99免费| 日夜伊人网| 中文字幕在线免费观看2| 国产日韩手机视频在线| 婷婷综合久久| 91性高| 国产精品另类一区大香蕉| 久久久亚洲精品中文字幕人妻| 国产女同在线观看视频| 激情看片网站| 日日躁狠狠躁天天躁精品| 一区二区乱码福利| 狠狠色婷婷7777久| 狠插 制服 自拍| 99rre在线精品99re8| 美国日韩黄片| 精品超碰中文在线| 大乔未久88一区| 久久久久国色αv免费观看| 无码久久亚洲高清,| 性色av网站| 激情文学 国产一二三aV| 加勒比东京热五月天天堂网| 久久AV无码AV| 激情综合五月婷婷| 一起草三级AV电影在线观看 | 伊人综合色网| 亚洲综合另类色图| 色婷婷导航| 日韩无码AB| 亚洲另类春色| 人人天天欧洲| 啪啪视频免费在线观看| 婷婷五月天成人网| 国产精品伦理| 人妻在线视频| 91天天爱| 成人av影院在线观看| 婷婷久久综合| 96国产精品| 亚乱色| 97精品久久久久久久| 久久日韩肥臀| 六月丁香婷| 亚洲不卡一| 欧美精品日韩久久久九| 精品网站99999| 人人搞人人插人人操| 丰满人妻一区二区三区四| 欧美色图另类图片| 色婷婷久久| 亚洲欧美日韩不卡人妻| 91色综| 校园春色五月天| 97电影院超碰| 熟女人妻精品一区二区视频| 中文字幕一区 二区三四五 区日 日骚| 易易A毛视频| 婷婷综合久久| 天美传媒婬乱| 天天摸天天舔天天操| 精品999日本| 日韩欧美大力操| 欧美色图成人网一区二区 | 98一区二区精品| 东北老熟女| 97人人草| 色网站导航大全| 国产日本熟女顶级一区二区三区视频 | 欧美91在线| 五月丁香久久| 无码一区免费在线不卡| av草草在线电影| 欧美色婷婷| 91亚洲综合| 97色欧州| 99久久综合网| 国产精品久久久久久久AV大片| 蜜臀久久99精品| 黄片免费久久久久久久| 久久久青青草| 伊人国产视频| 台湾佬激情综合| 中国一级特黄大片护士| 97chaopengongkai| 欧美影音在线| 四月丁香婷婷| 99热最新| 国产亚洲日韩在线三区黑人| 久久婷婷成人综合色怡春院| 亚州 综合 色图| 免费操逼视频下载| 亚洲中文字幕熟女| 日韩91网站| 夜夜嗷嗷一区二区| 69精品少妇一区二区三区蜜桃| 亚洲无码国产探花在线观看| 91丨九色丨43老版熟女| 国产日韩精品无码去免费专区国产| 亚洲精品 欧美精品| 午夜福利视频在线一区| 另类图片综合| 玖玖综合网| 啊啊啊97视频| 久久久久久亚洲精品中文字幕人妻| 三级精品三级在线观看| 99在线精品视频| 国产噜噜噜噜噜久久久久久久久| 人妻久久久| 91九色蝌蚪在线观看| 亚洲性刺激| 是还免费视频1727我| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 欧洲一区二区三区四区在线观看| 丝袜综合| 久久九七| 日韩影片中文字幕一区二区三区| 亚殴在线| 亚洲天堂综合AV| 国内毛片免费h片在线| 午夜超爽| 少妇厨房愉情理伦片bd在线观看| 96久久久久| 玖玖资源视频一区二区三区| 五毛骚逼极品美女怕怕| 91激情国产| 九9热伊人| 红桃视频高潮| 午夜欧美神马久久久久| 色天使大香蕉| 97色97好| 国产污视频麻豆传媒一区二区| 人妻嗯啊啊在线播放| 蜜乳性色无码专日粉嫩骚逼AV| 一级二级三级黑人无码| 91人精品妻入口| 蜜臀无码视频在线观看| 亚洲av青草久久一区二区| 久9爱精品| 九九九只有精品| 婷婷九月国产| 另类图片五月天| 久草成人影片| 日本亚洲嫩草影院啪啪| 久一区久久蜜桃| 天天干18禁| 97免费在线观看视频| 成人性生活高清视频在线播放| 精品美女少妇一区二区| 人人妻人人爱人人玩| 酒色综合网| 亚洲欧美不卡线| 男人的天堂2019| 国产成人拍国产亚洲精品| 美国日韩黄片| 精品无码不卡视频| 91啪啪| 97色在线观看| 天天摸天天舔天天操| 天天日骚逼熟女| 后入综合久久| 日本熟妇浓毛hdsex| 女沟厕偷窥piss小便| 伊人网免费视频| 日韩无码黄色片| 人妻乱仑一区二区三区| 亚洲中文字幕噜噜噜久久久| 18岁禁 茉莉成人久久| 久久久久9999妇女| 国产精品九九九| 国产精品视频自拍在线| 久久久九九网站| 色久综合| 玖玖爱伊人玖玖爱| 男人天堂新| 九九九九国产| 97人人操人人摸人人爱| 婷婷情色综合网| 大香蕉欧美国产日韩高潮| 青青青草原| 国产97在线视频| 国产亲戚伦亲在线| 欧美色图私拍91| 麻豆a'v电影| 欧美激情一区| 中文字幕精品区先锋资源| 天堂精品在线| 男人的天堂日韩| 欧美日韩在线小说 | 97爱亚洲| 91精品久久综合熟女| 大香蕉伊人在线成人AV在线观看| 强乱老妇中文字幕| 久久91视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 97 九色| 欧美 亚洲精品首页| 成人无码在线超碰网| 中字乱伦AV| 日韩人妻无码精品系列| 91亚洲情色| 天天色播亚洲综合网站| 夜夜福利| 美国精品国产精品| 欧美曰韩国产精品| 天天草天天日| 成人贴图日韩欧美| 日本不卡在线二区三区| 久热无码| 婷婷丁香人妻| 玖玖婷婷五月天| 久久亚洲天堂| 日本操大逼| 国产精品。| 女沟厕偷窥piss小便| 9l视频自拍9l九色成人| 久9综合在线| 黄片直播三级黄片两女一男| 色呦色呦色精品| 国产AV色黄看到爽| 日韩精品电影| 成人亚欧免费视频| 青草视频人妻在线观看| 久久久精品视频免费观看| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 亚洲午夜蜜臀| 九九人人操| 精品成人久久久人人亚洲| 亚洲 一区二区 自拍| 天天日美女的B| 久久精品毛片免费不卡| 国产乱子伦一区二区三区免看| 天天躁日日躁AAAAXXXX国产 | 国产精品女生av| 欧美熟女妇同| 色乱二区| 超碰欧美97| 精品射1999| 天天做天天爱夜夜爽毛片试看| 99在线精品视频| 性色A∨91| 欧美啪啪色吧在线| 口爆综合网| 日本不卡在线二区三区| 美国美女AV在线| 久久啊啊| 嗯嗯嗯啊啊啊在线免费观看| 色婷婷六月丁香七月婷婷| 蜜桃久久久久久| 超碰免费人妻人人| 久久是精品| 久久老子无码午夜伦不卡| 91久久久久| 亚洲中文字幕97久久精品少妇| 亚洲熟女综合一区二区| 欧美久久人妻少妇一区二区| 日日狠狠久久偷偷色综合免费| 国语精品av| 天美av在线观看| 少妇被c 黄 免费观看| 国产性刺激| 777AV电影| 51一区二区三区| 久久久一级| A级在线视频| 加勒比色99999| 五月激情天| 97在线免费观看| 99999精品成人| 日欧操屄| 100啪啪视频大全| 久久国产精品91| 欧美不卡五十路| 9999亚洲电影| www.av在线观看| 乱操9999| 九月丁香婷婷| 亚洲综合精品国产一区| 国产呦精品系列在线观看| 国产精品网站免费| 日韩成人综合网| 精品免费视频国产一区| 肉丝中文无码高清| 91夜夜蜜桃臀1区2区3区| 中文字幕乱码人妻二区三区| 欧美日韩国产色五月综合在线| 五月天激情综合网| 高清国产性猛交xxxx乱大交| 超碰97极品9| 久久99国产综合精品女同| 大学生口爆吞精| 欧美性91| 无码九九| 午夜福利区| 五月天开心网| 国产免费久久久久| 八戒无码国产午夜福利| 97超碰欧美| 玖玖爱综合网| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲国产精品成人无码久久久| 熟妇熟女一区二区三区| 亚洲 欧美 综合 91| 久久久啊啊| 激情综合色| 免费A V在线播放| 五十路熟女工口 | 99日视频在线免费| 极品内射| 天天操av懂色| www国产无码| 大香蕉丝袜一级片| 一区二区三区 日韩欧美| 东北毛片| 中文视频在线观看| 天天躁狠狠躁av| 九九九九欧美| 日韩av熟女一区二区三区成人| 日韩精品一区二区三区色欲| 中国亚洲呦女专区| 午夜精品视频777| 激情综合网五月婷婷五月天| 乱伦一区二区三区‘| 蜜臀一区二区三区在线 | 无码高清专| 亚洲国产精品99久久久| 亚洲精品成人动漫在线| 国产成人精品无码久久| av天堂精品久久| 免费看黄片现成| 欧美精品宗合| 亚洲中文一区二区三区| 男啪女色黄无遮挡免费观看| 十八禁的黄污污免费网站| A 天堂| 日韩免费a级毛片无码a∨ | 蜜臀一区二区三区在线| 26uuu最新| 日韩欧美日韩| 豆花视频操逼网址| 国产精品久久久无码AV网站| 91精品无码人妻系列| 国产剧情AV不卡在线观看| 国精精品无码一二三区水多多| 国产精品久久久无码aV去| 国产超碰AV在线精品| 一区二区三区美女超清| av在线观看不卡网站| 92一区二区| 欧美精品久久久久久久丰满| 91香蕉视频在线观看免费| 十八禁av无码免费网站APP| 日韩 欧美 另类 人妻| 啊v视频在线观看| 96AV精品| 天天插夜夜爽| 天天操夜夜操| 日韩强奸av| 操逼片国产| 国产激情在线| 后X久久| 9精品在线| 日韩精品亚洲一二三| 在线亚洲欧美| 国产精品一级毛片不卡视| 激情五月综合| 久久99草| 蜜臀AV秘一区翔田千里| 欧美日韩中文字幕人妻| 色臀av| 国产亚洲99久久精品熟| 亚洲av影音先锋| 精品少妇人妻av久久免费| 综合色色婷婷| 欧美综合色站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 亚洲毛片久久| 亚洲第一无码播放立川理惠| 91久热这里只有精品| 亚州熟妇精品| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 99∨VTV| 91丝袜激情在线| 97视频在线免费观看| 国产欧美岛国精品一区| 操人91| 日韩亚洲97| 天天综合网日韩| 日本一区二区三区四区免费观看| 99热精品免费| 国产夫妻性生活视频| 巨爆乳一区二区爆乳区| 亚洲欲色9532548967一区| 91 亚欧| 九九干| 国产精品2020| 亚洲欧洲成人在线电影| 97香焦色区| 久久精品国产97欧美精品亚洲| 澳门黄片一香蕉视频| 欧美操逼一二三区| 特污精品女优骚货黄色视频在线免费观看| 黄色激情电影在线观看| 射丝袜高跟鞋99| 久久黄人人爽视频| 五月婷婷影院| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 免费男人的天堂| 99色网| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 中文字幕艹艹| 欧美视频一| 爆乳免费黄网站| 久久东京热久久| 精品一区二区成人动漫| 欧美性高潮| 欧亚免费视频| 秘书高跟黑色丝袜国产91在线| 亚洲欧美日韩中文播放| 亚洲色图加勒比| 日韩成年人性爱视频| 天天操狠狠日夜夜干超碰撸com视频在线观看| 91美女看B| 久久亚洲AV成人精品无码| 久久女同性恋一二区| 亚洲蜜乳av| 夜夜操夜夜高潮夜夜爽国产精品区| 欧美,日韩综合久久| 欧美日韩国产人人| 人人操人人摸人| 综合五月天| 日韩乱码Av| 亚洲成人激情小说视频| 曰本熟女视频| 色婷亚洲五月在线观看| 一本久道久久综合狠狠爱一密臀精| 日本大片日本一区二区免费高清| 97欧美资源| 久久久精品国产亚洲伊人| 国产在线播放成人免费| 自拍欧美| 99热综合| 蜜乳AV.COM| 亚洲s色图| 婷婷五月成人| 婷婷去俺也去六月色| 人妻少妇精品无码专区二区密桃| 激情综合网激情五月天| 双插性欧美一二三区| 久久久久深夜无码| 中文字幕视频一区视频二区| 久久高清欧美国产| 成年人黄色视频免费| 加勒比伊人综合| 91丨九色丨大屁股| 蜜乳AV一区二区三区四| 亚洲天天综合| 久久无码电影| 欧美性爱伊人| 国产欧美日韩一区二区三区| 久操视频在线| 99热啪啪| 三级精品三级在线观看| 久久成人精品| 撸撸成人在线视频| 床上啊啊啊一区二区三区| 91精品久久久久五月天精品 | 国产五码丝袜屁眼| 亚洲欧洲美腿丝袜| 国产欧美亚洲精品a第2页| 国产无吗在线播放| 日韩精品人妻一区二区| 情色大香蕉| 操逼内射干逼白丝91| 婷婷伊人| 亚洲日韩美女中文字幕乱| 秋霞网无码| 变态综合色| 人妻少妇久久中文| 亚洲素人网| 亚洲综合888| 免费看毛片操穴| 久久婷婷伊人| 国产又粗又长又爽又色| 人妻中文字幕精品无码| 久久精品国产亚洲妲己影视| 伊人一级免费黄片| 另类图片天天影视| 91丝袜视频在线观看| 97超级久久| 夜夜操夜夜高潮夜夜爽国产精品区| 中国黑人三级片网站上区| 欧插网站| 9超碰免费| 日韩一级二级在线| 女人一区| 成人欧美日超碰| 精品一区二区三区四区女| 精品久久久久黄少妇| 国产精品色色| 久久亚洲不卡| 超碰超碰95| 91精品电影18| 久久久久ab| 天美传媒在线一区| 天美传媒AV国产在线| 污电影在线观看| 麻豆区久久久久亚| 风间由美日韩欧美久久| 日韩国产十八禁| 天天综合网入口~91| 丝袜无码a片| 精品久久九| 欧美在线干| 欧美色蜜桃97| 日韩欧美加勒比| 欧美真人抽搐一进一出gif | 26uuu国产| 四虎AV在线观看| 曰本精品久久久| 今日头条成人一区二区三区四虎精品| m欧洲一级午老| 少妇人妻在线| 伊人影院日本| 色天使亚洲综合在线观看| 无码人妻一区二区三区色欲aⅴ| 久久日韩精品一区二区| 免费操逼视频下载| 97色碰| 日韩ab网| 校园春色美腿丝袜 | 日本欧美国内在线| 熟妇最新先锋一二三区| 麻豆a'v电影| 成人乱人伦一区二区| 国产精品无码久久久久2028| 色综合尤物| 91 国产丝袜在线放观看 | 国产丝袜视频| 中文字幕人妻色偷偷久久皮 | 一本色道久久综合熟妇| 丰满人妻-区二区三区免费看 | 97超碰总站| 国产精品久久久久久久久久久久久久吹 | 懂色中文一区二区三区 | 欧美性天天影视| 亚洲限制级| 色妇综合网| 丰满岳乱妇一区二区三区| 伊人久久婷婷| 欧美黄色大片在线观看 | 中日韩熟女| 九九久久九九久久| 蜜桃久久久久久久| 欧美手机在线综合| 一区二区三区美女超清| 国产精品久久久久无码AV会牛| 国产av青草| 久久国产精品视频| 亚洲 日本 国产 综合| 狠狠狠一区二区三区| 欧美色日| 精品国产72| 丝袜美腿诱惑亚洲欧美视频在线观看| 人妻熟女午夜精品在线| 91综合网| 99超级碰免费视频| 99久久婷婷国产综合精品草原| 91蜜臀熟女| 四虎影视 亚洲无码| 日日噜噜夜夜狠狠视频无| 亚欧精品久久久久久久久久久| 欧美少妇色综合| 久久99热这里只频精品6学生| 久久久久久久久久久久黄色 | 久久中日麻豆| 欧美亚洲自拍另类人妻| 99激情| 亚洲女人91| 婷婷丁香久久| 久久九九精品一区二区| 亚洲偷拍自拍在线视频| 97在线观视频免费观看| 国产高清免费不卡av| 国产精品女同| 老女人综合网| 看日韩美女二区三区免费操逼视频| 欧美在线色| 操逼天美3区| 久久九九一区二区三区成人| 日本一区二区亚洲综合| 欧洲Au麻豆| 在线视频亚洲无码| 日本精品人妻少妇一区二区| 久久超碰国产一区二区三区| 嗯嗯,啊啊,国产精品| 试看60秒 爽| 国产精品青青草| 天天爽爽爽爽| 草草草草视频| 97爱爱爱综合| 内射小黄片| 夜夜骑天天燥| 精品一区二区成人| 怡红院久久老司机| 亚洲av在线免费观看| 国产精品诱惑| 九九九免费视频| 天天日天天舔| 可免费观看的av毛片中日美韩| 好爽,再快点啊哈嗯嗯嗯嗯| A一区片| 很很很很操| 亚洲成人综合在线| 亚洲日韩国产精品| 在线黄色污污网站| 91精品久久久久久77777| 色97干| 欧美嗯啊……在线观看视频免费| 免费观看性欧美一级| 蜜桃色院一区久久 | 韩三级a视频在线观看| 日韩午夜国产| 色婷婷色99国产综合精品| 日韩一级欧美一级国产一级台湾| 欧美白嫩女HD| av一区二区三区 中文| 欧美色图综合| 一二三卡欧美日韩人妻免费精品| 99久久久久| 成人无遮挡毛片免费看| 亚洲青青草| 欧美毛片在线网| 亚洲成人无码影院| 蜜臀久久99精品久久久久久酒店 | 亚洲成人妻日韩在线| 91黑人无码激情在线| 青草精品视频-日本久久久久网站| 伊人网在线观看| 欧美亚洲日本视频久久久| 97超碰大| 精品少妇一区二区三区| 亚洲熟女国产综合另类| 美国aaaaa一级黄片| 啪啪视频免费在线观看| 亚洲青青草| 欧美色图亚洲色图成人在在线| 大色综合网| 免费在线看黄片av| 日本幼女18+| 久久久一区二区| 日韩内射视频| 激情四射五月天| 顶级丝袜熟女一区二区三区| av激情亚洲五月天| 黑人精品欧美一区二区蜜桃| 色哟哟AV| 久久久久96| 久久久性少妇| 久热精品色情| 99久久无色码| 激情四射五月天| 男男H黄动漫啪啪无遮挡网站| 91精品国产91久久青草| 99精品无码| 欧美亚洲se91| 超碰精品| 久久精品亚洲婷婷| 欧美有码激情视频一区二区三区| 成人性爱全视频观看| 国产二区视频在线观看电影| 无码不卡八戒| 欧美91精品国产自产| WWW美腿丝袜香蕉中文| 五十路熟女工口| 啊a一区在线| 日韩成人色图| 最新加勒比丝袜在线| 日本福利二区视频| 五月激情啪啪| 91啪啪视频| 久久婷婷综合国际产色怕| 蜜乳AV网址| 国产懂色精品国产av| 亚洲在线网站| 成人无码在线超碰网| 操操操五月天婷婷丁香影院| 国产一区二区免费福利片| 中文字幕97| a亚洲欧美色欲| 免费一级性爱久久| 91丨豆花丨熟女| 国产女人和拘做爰视频| 伊人五月天激情| 国产精品久久成人免费| 一级A啪啪啪啪| 色综合色| 日韩精彩免费| 天天操天天看| 亚洲日本大香蕉1| 五月天亚洲网| 亚洲色电影在线| 亚洲色图欧美| 牛牛操视频逼| 夜夜天天噜狠狠爱2021| 乱伦3P视频| 97九色人妻| 天天综合香 ld视频| 国产成人+综合亚洲+天堂| 碰碰在线视频| 欧美狠狠操| 精品视频久久区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久久久国产三级黄色片| 天天综合精品| 国产精品suv一区| 操死我了啊啊啊| 天天欲望网| 五月婷婷丁香六月丁香| 18禁的网站在线| 我爱大香蕉| 91九九九小逼| 亚洲精品 欧美97色色| TS人妖另类精品视频系列| 欧美性爱第一区| 一区二区娱乐网站| 啊啊啊97视频| 国产又粗又长的视频| 激情黄色片在线观看| 午夜福利视频在线一区| 日韩av女优在线免费一区| 欧美国产成人在线| 99热销国产这里有精品| 欧亚日韩中文在线| 日操粉逼逼| baisiav| 国产又大又粗又长视频| 久草在线| 无码乱人伦中文视频| 亚洲色欲一区二区三区| 999热日韩精品| 伊人久久综合精品欧美| 免费观看欧美日韩操逼视频| 亚洲自拍欧美国产首页网曝| 999久久久九九九九| 韩日性爱av| 五月天黄色av| 亚洲a色| AV污污污污| 日日夜夜青青草母狗| 自拍六区| 亚洲色五月| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 干B| 日本精品五区| 日本国产高清色www视频在线| 人妻天天爽夜夜爽爽| 亚洲欧美国产精品久久久久久久| 亚洲图片婷婷五月天| 丝袜美腿诱惑亚洲欧美视频在线观看| 久草资源欧美在线视频| 国产97在线 | 亚洲| 性色av网站| 欧美暴力猛交| 99操碰| 色牛aV| 色综合久| 208天天久久九九九| AV不卡在线| 超碰地址97| 久久久久亚洲av综合波多野制衣| 高潮内射在线| 嗯嗯不要视频| 91麻豆天美国产欧美日| 日韩精品午夜操呦呦不卡影院| 91free福利| 国产三级中文字幕粉嫩| 欧美福利视频啊啊啊啊| 日本一片一区| 嫩草美女久久| 国产第二页| 岛国毛片手机在线观看| A一级色女| 91操人| 碰人碰碰人人开房人肉| 国产自偷自拍一区| 91操熟女视频| 色一射色一射| 88xx成人精品视频| 中文字幕av久久爽Av| 欧美伊人久久综合网| 激情综合av| 男女激情黄色网址| 青青草综合在线| 亚洲91极品| 欧美性爽xyxOOOO| 久偷拍| 亚洲色图亚洲无码强奸乱伦| 亚洲午夜蜜臀| 九九九九久久久| 性色AV网站| 美女干逼2| 91精品伊人久久久大香线蕉91| 激情文学小说一区二区 | 亚洲色吧网| 免费成人在线观看91| 插入粉嫩少妇视频| 无码伊人久久大杳蕉中文无码| 人妻激情视频| 国产精品一区二区在钱播放| 亚洲一区二区久久久久| 69av一区二区三区| 中亚av| 国产一区二区在线播放量| 色男人色天堂东京热| 久久五月综合| 免费成人在线观看91| 97超碰中文| 插入综合网| 免费1级a做爰片观看| 亚洲情色 自拍| av一区二区三区四区| 香蕉免费一区二区三区不读 | 97精品熟女少妇一区| 蜜臀99久久国产| 国产视频一区二区三区久久亚洲天堂| 少妇无码av专区线| 九九九九免费| 色综合99999| 五月天黄色av| 在线观看国产黄色| 人妻无一区二区三区| 玖玖草久草99蜜月一区二区三区| 玖玖视频在线资源一区二区三区| 国产精品久久久视频| 97超碰人操| 91精品电影18| 丁香六月东京热| 亚洲黄片免费在线播放| 人妻少妇无码| 成人综合久久精品色婷婷| 26uuu成人影片| 精品夜夜澡人妻无码AV| 亚av顶级裸体一区二区三区四区五区 | 亚洲蜜臀精品视频久久| 和协无码影院| 久久精品国产精品一区| 99热aaa| 97精品综合久久| A 在线网址| 男人的天堂2019| 欧美九九九九九| 色在线69堂| 日本九九久久99| 91亚洲不卡一区| 亚洲国男人的天堂| 亚洲欧美日韩综合在线尤物 | 午夜激情床戏激情| 爽 好舒服 无码刺激久久| 国产精品自拍xxxx| 黄页| 99精品无码| 91在线一起| 啊嗯嗯啊好大好爽| 天天草AV| 夜夜嗨绯色| 老熟女熟妇| 欧美人妻精品| 99这里都是精品| 熟妇在线视频一区二区| 91狼人| 人妻熟女av国产网站| 十八禁成人网站在线观看| 国产精品久久久久久无码红治院| 一起草三级AV电影在线观看| 麻豆久久一区二区三区| 狠狠爱大香蕉| 中文字幕三四区| 超碰97欧美| 91男女| 欧美一级二级三级| 欧美欧美少妇| 久久久一区二区三区四区五区| 啊啊啊啊免费视频| 精品午夜福利| 凹凸视频在线一区二区| 国产又猛又粗又爽又黄| 老熟女乱伦片| 两性色网| 中文字幕av亚洲在线| 日韩精品一区的| 色999亚洲人成色| 久久久久久久 九九九九九九九| 香蕉在线一区二区三区| 亚洲激情 欧美色图| 欧美日韩一干二干| 东京热一区二区三区四区五区六区| 亚欧美色图| 另类av天堂| 97在线观视频免费观看| 欧美少妇第一页| 久久精品亚洲婷婷| 东北女人av| 97在线观看| 观看视频图片一区二区三区| 欧美少妇高潮| 无码78| 日语五十路和六十路亚洲国产精品| 亚洲91网| 国产成人自拍视频在线| 蜜臀久久久国产| 麻豆av一区二区| 91人人操| 久久久久熟女| a啊啊啊啊啊啊啊啊一区二区| 亚州操操穴网| 欧美97视频| 91情色在线| 91n处女在线观看| 女人香蕉久久毛毛片精品| A片大香蕉在线| 中文字幕一区av| 人人澡人人爽人人精品| 舔人妻中文免费视频| 日韩情色一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 欧美色图20p| 亚洲精品久久久久毛片A片拉屎| 九九九九九精品十六| 99视频精品| 白 大 人妻 区 在线| 男人天堂网手机版婷婷| 色欲天天综合久久久无码网中文| 日本天天操| 夜夜操老骚逼视频网站| 综合一区二区影视| 天天影视色香欲综合网小说| 婷婷五月天激情网| 亚洲97P| 少妇九九九九| 日韩国产不卡在线视频| 丁香六月啪啪| 大香蕉色欲AV| 免费AV中文网在线观看| 99久久久久| 91N综合在线| 婷婷伊人五月| 色色色网站| 亚洲不卡一| 一级日本牲交大片好爽在线看| 人人天天欧洲| 97超碰影音| 久久精品国产亚洲AV高级北京| 亚洲精品97在线| 婷婷久月| 丁香五月婷婷基地| 亚洲一区制服诱惑| 在线综合 亚洲 欧美中文字幕| 亚洲精品久| 欧美九九九| 午夜色婷婷| 美国三级日本三级久久99| 亚洲精美粉嫩嫩泬在线观看| 中文字幕精品丝袜| 91色图| 久久香蕉国产传媒一区剧情天美| 国产97在线播放| 精品亚洲国产成人av网站| 天天舔九色婷婷| 黄片www视频免费| 殴美牲| julia国产在线 | 艹精品| 天堂国产AV| 国产精品蜜臀久久久久无码AV| 99久久久无码| 激情婷婷综合久久| 天天看综合网| 美女裸体无遮挡永久免费观看网站| 五月天激情国产综合婷婷婷| 麻豆一区二区AV天美| 极品色www影院| 999热日韩精品| av片在线观看免费播放| 超碰在线日韩一区| 9久久精品| 五月婷亚洲精品天堂| 日韩亚洲美州欧洲综三区一品在线| 91欧美亚洲| 97干com| 成人av福利在线观看| 久草新免费| 国产 无码 一区二区| 亚洲成人精品久久久| 伊人久久综合影院| 久久久久久久久久久久久久久性生活视频 | AV无码久久久精品| 欧美综合777| 91九色网| 亚洲色图一区二区三区| 欧美性,亚州色| 91精品久久久久五月天精品| 屁股久久久久久久久| 国产精品无码在线| 国产精品不卡少妇白| 狠狠躁AV| 隔壁邻居波多野结衣中文字幕| 亭亭丁香激情| 色嗨嗨在线| 精品9999| 天堂岛av| 丰满人妻一区二区三区四区| 狠狠爱AV| 伊人影院中文字幕| 久久国产逼| 久久久91福利姬| 久久午夜伦| av天堂精品久久| 午夜操操操| 嗯嗯嗯不要不要免费视频| 无码精品久久久久久亚洲| 日韩无码AB| 国产精品成人无码av无码免费| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 国产强奸无码乱伦| 亚洲国内精品成人不卡| 思思热在线观看| 可以免费看黄片的视频| 成人区人妻精品一| 久久久久久久久久久久久9999| 中文字幕精品一区二区精| 女人香蕉久久毛毛片精品| 在线观看A啊啊啊| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 五月婷婷啪啪| 国产精品96| 一二区在线观看视频| 日日夜夜青青草母狗| 日韩不卡一二三四| 本道在线| 精品人人| 小情侣高清国产在线视频| 97国产人人| 素人伊尹大香蕉免费下载视频| 精品久久久九九九孕妇| 欧美性爱系列| 日本孕妇一区二区视频操逼免费看 | 传媒免费一区二区三区| 天无日色综合| 日韩人妻有码免费视频| 大香蕉78| 午夜一区| 亚洲欧洲激情| 欧美 亚洲 综合 制服 另类| 91在线|亚| 五月婷婷深深爱| 黄片免费久久久久久久| 精品久久久久久中文字幕三区| 午夜操一视频一区| 国产乱人妻精品入口| 欧美在线色图| 三级三级三级日本99| 欧美日韩第一页| 性色av蜜臀av色欲aV| 午夜福利一区二区影院| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 欧美精品亚洲精品日韩传电影| 精品久久久久久久久久久久| 国产999精品久久久久久| 99久久久久| 国产一区二区免费福利片| 亚洲色婷婷久久91| 91美女网站| 97在线视频免费看| 亚洲情色 自拍| 无码九九| 日韩有码回春沙龙第一页| 国产无遮挡| 最新亚洲风情电影| 人妻无码后入| 久久久久久大| 少妇天堂网络| JULIA人妻风俗店中出电影| 精品无吗久久| 青青草日本中文字幕| 刺激性视频黄页| 99国产精品免费| 日韩精品熟妇| 日影院久久婷婷夜夜网| 精品人妻夜夜草|