999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的串口實(shí)現(xiàn)

2018-12-20 08:12:08孫列鵬楊化路程宇峰
軟件 2018年11期
關(guān)鍵詞:系統(tǒng)設(shè)計(jì)

張 誠(chéng),孫列鵬,肖 薇,楊化路,程宇峰

?

基于FPGA的串口實(shí)現(xiàn)

張 誠(chéng)1,孫列鵬2,肖 薇1,楊化路1,程宇峰1

(1. 北廣科技股份有限公司,北京 101312;2. 北京航空航天大學(xué),北京 100082)

串口作為一個(gè)簡(jiǎn)單可靠的通訊方式,廣泛的應(yīng)用于現(xiàn)代電子工業(yè)中。目前產(chǎn)品中定時(shí)控制分系統(tǒng)與其它的分系統(tǒng)的通信都是由串口來(lái)完成的,實(shí)現(xiàn)串口的方法大部分是由TI公司的DSP來(lái)實(shí)現(xiàn)的。本文先對(duì)串口協(xié)議進(jìn)行研究,然后介紹串口設(shè)計(jì)中需要注意的幾個(gè)問(wèn)題,最后根據(jù)目前的項(xiàng)目對(duì)基于FPGA的串口設(shè)計(jì)做詳細(xì)的說(shuō)明。

串口;協(xié)議;FPGA;VHDL

0 引言

通常提起串口我們都會(huì)想到計(jì)算機(jī)的串口,在工業(yè)控制和通信當(dāng)中串口通信應(yīng)用也很廣泛。這些領(lǐng)域的串口都是按照計(jì)算機(jī)的串口標(biāo)準(zhǔn)來(lái)做的,這樣極大的方便了用計(jì)算機(jī)來(lái)調(diào)試設(shè)備。

1 串口協(xié)議

目前我們做的串口,都是按照或者參考計(jì)算機(jī)的串口協(xié)議來(lái)做的。用于計(jì)算機(jī)的串口協(xié)議有兩種:一種是RS-232,它是是IBM-PC及其兼容機(jī)上的串行連接標(biāo)準(zhǔn)。我們見(jiàn)到的計(jì)算機(jī)大部分都是采用的這種標(biāo)準(zhǔn),它的外圍電路是由專(zhuān)用芯片(如8251)和電平驅(qū)動(dòng)芯片(如MAX232)來(lái)組成的。串口通信的邏輯主要由專(zhuān)用芯片來(lái)完成(包括信息的發(fā)送和接收和主板總線的通信),電平驅(qū)動(dòng)芯片主要完成電平的轉(zhuǎn)換。另一種標(biāo)準(zhǔn)是RS-422,它是Apple的Macintosh計(jì)算機(jī)的串口連接標(biāo)準(zhǔn),它的組成和RS-232類(lèi)似,有區(qū)別的是RS-422采用了差分線進(jìn)行傳輸,這使得傳輸?shù)目垢蓴_性和傳輸距離大大的提高了。還有一種標(biāo)準(zhǔn)是RS-485,它是RS-422的改進(jìn),如圖1所示。

圖1 串口通信的物理層組成

如圖1所示,物理層由物理介質(zhì)和物理代碼組成,物理介質(zhì)由驅(qū)動(dòng)芯片以及外圍電路和傳輸電纜等用于物理信號(hào)傳輸?shù)慕橘|(zhì)組成,而物理代碼完成了通信的邏輯,它可以是8251這樣的專(zhuān)用芯片,也可以是單片機(jī),DSP,F(xiàn)PGA這樣的可編程器件。我們通常所看到的MAX488,MAX232等驅(qū)動(dòng)芯片和傳輸線都是物理介質(zhì)。一般計(jì)算機(jī)是RS-232標(biāo)準(zhǔn),而我們所設(shè)計(jì)的電路板都采用了RS-422的標(biāo)準(zhǔn),所以我們?cè)诤陀?jì)算機(jī)通信的時(shí)候都會(huì)采用一個(gè)轉(zhuǎn)接頭;而物理代碼則通常用DSP,CPLD/FPGA來(lái)實(shí)現(xiàn)的,這樣DSP,CPLD/FPGA還能完成其他的功能,增加了設(shè)計(jì)的集成度。

串口通信分為同步通信和異步通信。同步通信比異步通信傳輸信息的質(zhì)量要好,但是同步通信的硬件電路比異步通信的電路電路要復(fù)雜的多,需要硬件連線數(shù)增多。如果設(shè)計(jì)的系統(tǒng)比較復(fù)雜,所需要的連線數(shù)會(huì)成倍的增加。終端定時(shí)控制分系統(tǒng)和其他分系統(tǒng)的串口有10-20多個(gè),如果每個(gè)串口增加了兩根握手信號(hào),我們需要的連線就會(huì)有20-40多個(gè)。這大大的增加了連線的困難。所以在一般應(yīng)用中都會(huì)采用異步串口通信,因?yàn)楫惒酵ㄐ胖恍枰€(收,發(fā),地),雖然異步通信比同步通信傳輸?shù)男畔⑸倭?0%,但是由于其硬件結(jié)構(gòu)比較簡(jiǎn)單所以在很多設(shè)計(jì)中都用了異步通信的方式。本文所討論以及實(shí)現(xiàn)的都是異步串口通信。

2 異步串口通信

2.1 監(jiān)聽(tīng)機(jī)制

異步通信的時(shí)候,通信雙方都不知道什么時(shí)候通信開(kāi)始,什么時(shí)候通信結(jié)束。這樣就需要在傳輸線上有信號(hào)位來(lái)標(biāo)志通信的發(fā)起和結(jié)束。串口通信中所采用的是在發(fā)送信息前先發(fā)送一個(gè)起始位,在信息結(jié)束的時(shí)候發(fā)送一個(gè)結(jié)束位。這樣本來(lái)傳送8位的信息就會(huì)傳送10位,這樣信息的傳送率為80%。因?yàn)榇谕ㄐ疟緛?lái)就是慢速的通信,所以這種損失是允許的。在具體的信號(hào)線上,當(dāng)沒(méi)有信息發(fā)送的時(shí)候,信號(hào)線上的信號(hào)是‘1’,當(dāng)有信號(hào)發(fā)送的時(shí)候有一位‘0’;當(dāng)接收信息結(jié)束的時(shí)候,在結(jié)束位會(huì)出現(xiàn)信號(hào)‘1’,如圖2所示。

圖2 異步通信的傳送位關(guān)系

2.2 時(shí)鐘與定時(shí)

異步通信是相對(duì)于同步通信來(lái)說(shuō)的,異步通信之間數(shù)據(jù)的傳輸率是相同的,由通信雙方規(guī)定好。也就是說(shuō)數(shù)據(jù)位的速率是相同的,異步接收的時(shí)候通過(guò)監(jiān)聽(tīng)機(jī)制監(jiān)聽(tīng)到起始位后開(kāi)始定時(shí)接收,如圖3所示。為了保證通信的可靠性,系統(tǒng)工作的時(shí)鐘要高于數(shù)據(jù)率的時(shí)鐘。8251要求系統(tǒng)的工作時(shí)鐘為數(shù)據(jù)率的4-6倍,如果數(shù)據(jù)時(shí)鐘是9600,那么系統(tǒng)的工作時(shí)鐘就是38.4 k-57.6 k1。圖3是以數(shù)據(jù)位的五倍時(shí)鐘來(lái)說(shuō)明的,當(dāng)開(kāi)始定時(shí)接收的時(shí)候,定時(shí)器開(kāi)始循環(huán)計(jì)數(shù),當(dāng)計(jì)到三的時(shí)候,把數(shù)據(jù)鎖存起來(lái),這樣保證鎖存的數(shù)據(jù)前后有一定的時(shí)間間隔,比較穩(wěn)定。當(dāng)遇到停止位的時(shí)候,計(jì)數(shù)停止。系統(tǒng)工作的時(shí)鐘也可以高于數(shù)據(jù)率的4-6倍,比如16倍,這樣計(jì)數(shù)器就是模16計(jì)數(shù),鎖存的時(shí)候可以在計(jì)數(shù)器為8的時(shí)候鎖存,也可以在4的時(shí)候鎖存,所以很多串口通信中可以設(shè)置結(jié)束位為四分之一,或者二分之一位。

圖3 異步通信的接收定時(shí)時(shí)序

異步通信所傳送的數(shù)據(jù)位數(shù)也是事先規(guī)定好的,至少為10位(8位信息加上一位起始位和一位結(jié)束位),如果還有奇偶校驗(yàn)位,那就11位了。具體的位數(shù)要看實(shí)際中的應(yīng)用,但是一定要保證通信雙方一致[3]。

2.3 糾錯(cuò)機(jī)制

在通信中糾錯(cuò)是重要的指標(biāo)之一,一個(gè)好的通信系統(tǒng)不僅要知道傳輸?shù)臄?shù)據(jù)錯(cuò)誤,而且還要對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行糾錯(cuò)[4]。在異步串口通信當(dāng)中,在傳輸?shù)氖且粋€(gè)字節(jié)時(shí),一般采用奇偶校驗(yàn)的方法,在8個(gè)數(shù)據(jù)位后多一個(gè)奇偶校驗(yàn)位,在接收的時(shí)候?qū)ζ溥M(jìn)行檢驗(yàn),如果正確則存儲(chǔ),如果錯(cuò)誤,則采用相應(yīng)的機(jī)制來(lái)糾錯(cuò)。當(dāng)異步傳輸?shù)氖呛芏嘧止?jié)組成的數(shù)據(jù)包時(shí),會(huì)在數(shù)據(jù)包后面加上冗余碼,一般為CRC碼,這種碼是固定的多項(xiàng)式,通過(guò)計(jì)算可以對(duì)錯(cuò)誤的數(shù)據(jù)進(jìn)行糾錯(cuò)[1]。

采用的檢測(cè)方法是將數(shù)據(jù)包里的數(shù)據(jù)進(jìn)行累加,發(fā)送的時(shí)候?qū)⒗奂拥闹捣旁跀?shù)據(jù)包相應(yīng)的位置,接收的時(shí)候?qū)鬏數(shù)臄?shù)據(jù)包的數(shù)據(jù)也進(jìn)行累加,兩者進(jìn)行比較后,向發(fā)送端反饋相應(yīng)的數(shù)據(jù)包。發(fā)送端檢測(cè)數(shù)據(jù)包,如果是正確的數(shù)據(jù)包則不作處理,如果是錯(cuò)誤的則重新發(fā)送相應(yīng)的數(shù)據(jù)包。

這種檢測(cè)方法要求通信的基本單位是數(shù)據(jù)包,糾錯(cuò)的手段是重發(fā)機(jī)制。因?yàn)楫a(chǎn)品中串口所發(fā)送的都是命令協(xié)議,時(shí)間多為一秒以上,所以這種糾錯(cuò)機(jī)制是很適用的[5]。

FPGA作為一種可編程器件已經(jīng)為大家所熟悉了,這里就VHDL語(yǔ)言編寫(xiě)的收發(fā)程序給大家介紹一下。[6-7]這部分主要包括發(fā)送程序(物理層),接收程序(物理層),以及發(fā)送處理(頂層,主要對(duì)反饋后的數(shù)據(jù)包進(jìn)行處理),接收處理(頂層,對(duì)接收的數(shù)據(jù)包進(jìn)行處理)[2]。

3 程序設(shè)計(jì)

3.1 發(fā)送程序

發(fā)送的過(guò)程如下:發(fā)送器檢測(cè)到發(fā)送處理程序發(fā)送有效標(biāo)號(hào)后,發(fā)送計(jì)數(shù)器和分頻計(jì)數(shù)器開(kāi)始計(jì)數(shù),同時(shí)根據(jù)發(fā)送的數(shù)據(jù)產(chǎn)生奇偶校驗(yàn)位,根據(jù)發(fā)送計(jì)數(shù)器的狀態(tài),進(jìn)行串并轉(zhuǎn)換,進(jìn)行發(fā)送。[8]

PROCESS(CLK48K,T_CO)

BEGIN

IF(CLK48K'EVENT AND CLK48K='1')THEN

CASE T_ST IS--狀態(tài)表,S0表示無(wú)發(fā)送;S1表示發(fā)送狀態(tài)。

WHEN S0=>

T_COUNT<="000";

IF(T_CO='1')THEN

T_COU<="0110";

T_ST<=S1;

T_TEMP1(7 DOWNTO 0)<= T_TEMP;--T_TEMP1

ELSE

T_COU<="0000";

END IF;

WHEN S1=>

IF(T_COUNT="100")THEN T_COUNT<="000";

ELSE

T_ST<=S1;

END IF;

END CASE;

END IF;

END PROCESS;

3.2 接收程序

接收過(guò)程如下:接收器探測(cè)到起始位,定時(shí)計(jì)數(shù)器和分頻計(jì)數(shù)器開(kāi)始工作,當(dāng)分頻計(jì)數(shù)器等于2的時(shí)候,將接收的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,當(dāng)接收滿(mǎn)8位并且探測(cè)到停止位的時(shí)候,接收停止,并將接收的結(jié)果發(fā)送到接收處理程序中去。

PROCESS(CLK48K)

BEGIN

IF(CLK48K'EVENT AND CLK48K='1')THEN

CASE R_ST IS

WHEN S0=>

R_DOUT<=(OTHERS=>'1'); R_TEMP<=(OTHERS=>'1');

R_EN<='0';

IF(R_DATA='0')THEN

R_COUNT<="0110000";

R_ST<=S1;

ELSE

R_ST<=S0;

R_COUNT<=(OTHERS=>'0');

END IF;

IF (R_COUNT(6 DOWNTO 3)>= "0110" AND R_COUNT(2 DOWNTO 0)="010")THEN

END IF;

END PROCESS;

3.3 接收處理

接收處理的過(guò)程如下:接收處理程序接收到接收程序發(fā)送的有效信號(hào)和數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),并對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行檢驗(yàn),將檢驗(yàn)后的結(jié)果發(fā)送到發(fā)送處理程序中去。

PROCESS(RE_STEN,R_EN)

VARIABLE RE_ST : STD_LOGIC_ VECTOR (2 DOWNTO 0);

BEGIN

IF(RE_STEN='1')THEN

RE_ST:="000";

ELSIF(R_EN'EVENT AND R_EN='1')THEN

CASE RE_ST IS

WHEN "000"=>

RE_ST:="001"; RE_ST:="001";

RE_FLAG<='0';

WHEN "001"=> RE_ST:="010";

RE_FLAG<='0';

WHEN "010"=> RE_ST:="011";

RE_FLAG<='0';

WHEN "011"=> RE_TEMP1<=RE_TEMP; RE_ST:="100";

RE_FLAG<='0';

WHEN "100"=> RE_ST:="101";

RE_FLAG<='1';

WHEN "101"=>

RE_TEMP2<=RE_TEMP; RE_ST:="110";

RE_FLAG<='0';

WHEN "110"=>

RE_TEMP3<=RE_TEMP;

RE_ST:="000";

RE_FLAG<='0'; WHEN OTHERS=>

RE_FLAG<='0'; RE_ST:="000";

END CASE;

END IF;

END PROCESS;

PROCESS(RE_TEMP1,RE_TEMP2,RE_TEMP3)

—檢測(cè)數(shù)據(jù)偵的結(jié)果正確發(fā)送正確標(biāo)志,錯(cuò)誤發(fā)送錯(cuò)誤標(biāo)志

BEGIN

IF(RE_TEMP1+RE_TEMP2+X"76"=RE_TEMP3)THEN

RE_ERROR_FLAG<='0';

RE_RIGHT_FLAG<='1';

ELSE

RE_ERROR_FLAG<='1';

RE_RIGHT_FLAG<='0';

END IF;

END PROCESS;

3.4 發(fā)送處理

發(fā)送處理的過(guò)程如下:發(fā)送處理程序接收到接收處理程序的檢驗(yàn)結(jié)果,根據(jù)結(jié)果,發(fā)送處理程序向發(fā)送程序發(fā)送有效標(biāo)志和數(shù)據(jù)包(按字節(jié)發(fā)送),并且在數(shù)據(jù)包相應(yīng)的位置加入正確或錯(cuò)誤字節(jié)。[9-10]

PROCESS(RE_FLAG,CLK48K,RESET)

VARIABLE TR_COUNT : INTE-GER R-A-N-GE 0 TO 100;

VARIABLE TR_ST : STD_LOGIC_ VECTOR(4 DOWNTO 0);

BEGIN

IF(RESET='0')THEN

TR_ST:="01011";

ELSIF(RE_FLAG='1')THEN

TR_ST:="00000";

TR_COUNT:=0;

ELSIF(CLK48K'EVENT AND CLK-48K='1')THEN

IF(TR_COUNT=450)THEN

TR_COUNT:=0;

TR_EN<='0';

TR_DATA<=X"FF";

ELSIF(TR_COUNT=2)THEN

CASE TR_ST IS

WHEN "00000"=>

TR_EN<='0';

TR_DATA<=X"FF";

TR_ST:="00001";

WHEN "00001"=>

TR_EN<='0'; TR_DATA<=X"FF";

TR_ST:="00010";

WHEN "00010"=>

TR_EN<='0'; TR_DATA<=X"FF";

IF(RE_EN='1' AND RE_RIGHT= '0')THEN

TR_ST:="00011";

ELSIF(RE_EN='0' AND RE_ RIGHT='1')THEN

TR_ST:="10001";

ELSE TR_ST:="00010";

END IF;

WHEN "00011"=>-- 發(fā)送反饋正確數(shù)據(jù)包

TR_EN<='1';

TR_ST:="00100"; TR_DATA<=X"7E";

WHEN "00100"=>

TR_EN<='1';

TR_ST:="00101";

TR_DATA<=X"15";

WHEN "00101"=>

TR_EN<='1';

TR_ST:="00110";

TR_DATA<=X"61";

WHEN "00110"=>

TR_EN<='1';

TR_ST:="00111";

TR_DATA<=X"9E";

WHEN "00111"=>

TR_EN<='1';

TR_ST:="01000";

TR_DATA<=X"04";

WHEN "01000"=>

TR_EN<='1';

TR_ST:="01001";

TR_DATA<=TR_TEMP;

WHEN "01001"=>

TR_EN<='1';

TR_ST:="01010"; TR_DATA<=X"14"+TR_TEMP;

WHEN "01010"=>

TR_EN<='1';

TR_ST:="01011";

TR_DATA<=X"7E";

WHEN "01011"=>

TR_EN<='0';

TR_ST:="01011";

TR_DATA<=X"FF"; WHEN "10001"=>-- 發(fā)送反饋錯(cuò)誤數(shù)據(jù)包

TR_EN<='1';

4 結(jié)論

本文重點(diǎn)討論了串口通信的物理層協(xié)議,給出了基于FPGA的實(shí)現(xiàn)方法。本文的程序?qū)⒐饫w接收單元和終端定時(shí)與控制單元的串口通信中。本程序已經(jīng)在試驗(yàn)階段通過(guò)。

[1] 鄔寬明《單片機(jī)外圍器件實(shí)用手冊(cè)數(shù)據(jù)傳輸接口器件分冊(cè)》, 北京航天航空大學(xué)出版社. 2001: 100-113.

[2] 李新兵《兼容ARM9的軟核處理器設(shè)計(jì)基于FPGA》, 機(jī)械工業(yè)出版社. 20012: 20-30.

[3] 謝顯中, 王新梅. 第三代移動(dòng)通信系統(tǒng)的空中接口方案[J]. 移動(dòng)通信. 1999(01).

[4] 謝顯中, 苗洪雷, 李穎, 王新梅. 分層空時(shí)碼的模型、譯碼接收及其性能仿真[J]. 通信學(xué)報(bào). 2001(08).

[5] 葛利嘉, 路鳴. 蜂窩通信的空分多址: 概念、算法和性能[J]. 通信學(xué)報(bào). 1999(08).

[6] 王蕾, 韓立峰. 基于Artix-7 FPGA的異步高速串行通信IP設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2018, 41(19): 6-10.

[7] 王蕾, 李淑婧. 一種基于FPGA+DSP的高速串口通信設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2018, 41(15): 22-25+30.

[8] 徐巧玉, 周新穩(wěn), 王軍委, 朱佩. 一種ARM+FPGA的可裁剪以太網(wǎng)串口服務(wù)器設(shè)計(jì)[J]. 河南科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2018, 39(06): 24-29+34+5.

[9] 甘康, 蔡錦達(dá), 鄒億, 劉倩. 基于ARM和FPGA的LED標(biāo)準(zhǔn)光源電路設(shè)計(jì)[J]. 光學(xué)儀器, 2018, 40(03): 38-45.

[10] 白曉. 基于FPGA的狀態(tài)采集與快保護(hù)系統(tǒng)子板設(shè)計(jì)[D]. 中國(guó)科學(xué)院大學(xué)(中國(guó)科學(xué)院近代物理研究所), 2018.

Implementation of Serial Port Based on FPGA

ZHANG Cheng1, SUN Lie-peng2, XIAO Wei1, YANG Hua-lu1, CHENG Yu-feng1

(1. Beijing BBEF Science & Technology Co., Ltd, Beijing 101312, China; 2. Beihang University Beijing 100082, China)

As a simple and reliable communication method, serial port is widely used in modern electronics industry. At present, the product communication between the timing control subsystem and other subsystems is completed by serial ports. Most of the methods for serial ports are implemented by the DSP of TI company. Firstly, this paper studies the serial port protocol, then introduces several problems that need attention in the serial port design. Finally, according to the current project, the FPGA-based serial port design is described in detail.

Serial port; Protocol; FPGA; VHDL

TN79

B

10.3969/j.issn.1003-6970.2018.11.046

張誠(chéng)(1980-),男,碩士,高級(jí)工程師,研究方向:為射頻微波系統(tǒng)設(shè)計(jì)、電子技術(shù);程宇峰(1970-),男,本科,高級(jí)工程師,研究方向:高頻系統(tǒng)設(shè)計(jì)開(kāi)發(fā)技術(shù)方向;孫列鵬(1979-),男,博士,職稱(chēng):高級(jí)工程師,研究方向:高頻系統(tǒng)設(shè)計(jì)開(kāi)發(fā)技術(shù)方向;楊化路(1965-),男,碩士,職稱(chēng):高級(jí)工程師,研究方向:高頻系統(tǒng)設(shè)計(jì)開(kāi)發(fā)技術(shù)方向;肖薇(1971-),男,碩士,職稱(chēng):高級(jí)工程師,研究方向:結(jié)構(gòu)系統(tǒng)設(shè)計(jì)與工藝。

張誠(chéng),孫列鵬,肖薇,等. 基于FPGA的串口實(shí)現(xiàn)[J]. 軟件,2018,39(11):219-223

猜你喜歡
系統(tǒng)設(shè)計(jì)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
瞞天過(guò)海——仿生設(shè)計(jì)萌到家
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 国产在线自在拍91精品黑人| 毛片卡一卡二| 99视频在线免费| 久久婷婷六月| 国产女人在线| 国产色婷婷| 亚洲天堂视频在线观看| 中美日韩在线网免费毛片视频 | 中文字幕丝袜一区二区| 狠狠ⅴ日韩v欧美v天堂| 国产人成在线观看| 孕妇高潮太爽了在线观看免费| 三上悠亚在线精品二区| 一区二区理伦视频| 欧美在线天堂| 国禁国产you女视频网站| 亚洲精品中文字幕无乱码| 日本精品中文字幕在线不卡| 视频一本大道香蕉久在线播放| 国产原创自拍不卡第一页| 特级毛片8级毛片免费观看| 久久精品丝袜| 国产成人福利在线| 茄子视频毛片免费观看| 国产亚洲欧美在线专区| 亚洲日韩高清在线亚洲专区| 亚洲无线一二三四区男男| 97狠狠操| 国产91在线免费视频| 亚洲第一成年网| 國產尤物AV尤物在線觀看| 午夜小视频在线| 黄色在线不卡| 美女高潮全身流白浆福利区| 色九九视频| 毛片视频网址| 福利姬国产精品一区在线| 国产精品福利尤物youwu| 99视频在线免费看| 国产成人精品高清不卡在线| 国产精品欧美在线观看| 午夜精品久久久久久久99热下载| 亚洲视频无码| 久久99国产精品成人欧美| 992Tv视频国产精品| 一级不卡毛片| 国产精品亚欧美一区二区| 狠狠色噜噜狠狠狠狠色综合久 | 亚洲无码高清一区二区| 国产福利免费视频| 色偷偷男人的天堂亚洲av| 色首页AV在线| 人人看人人鲁狠狠高清| a级毛片在线免费观看| 91成人在线观看视频| 成人在线天堂| 欧美人人干| 无码日韩人妻精品久久蜜桃| 五月婷婷丁香综合| 色悠久久综合| 人妻精品全国免费视频| 1024你懂的国产精品| 日韩欧美成人高清在线观看| 亚洲成人高清无码| 欧美日本在线观看| 特级欧美视频aaaaaa| 丁香五月亚洲综合在线| 五月天婷婷网亚洲综合在线| 欧美一区国产| 99久久这里只精品麻豆| 国产欧美在线| 四虎免费视频网站| 国产精品无码影视久久久久久久 | 婷婷午夜天| 亚洲欧美成aⅴ人在线观看| 国产精品免费入口视频| 五月天丁香婷婷综合久久| 波多野结衣二区| 一级香蕉人体视频| 少妇高潮惨叫久久久久久| 91久久性奴调教国产免费| 一级香蕉人体视频|