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

基于以太網(wǎng)CAN模塊的總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)設(shè)計(jì)

2018-07-05 03:50:50左登超
關(guān)鍵詞:設(shè)備

左登超 賈 濤

(中車青島四方車輛研究所有限公司,山東青島 266031)

現(xiàn)階段我國(guó)動(dòng)車組數(shù)量龐大、種類繁多,不同車型使用的車體通訊總線也有差異。不同方式的通訊設(shè)備目前尚不能相互兼容。

為使當(dāng)前已有的以太網(wǎng)通訊設(shè)備能夠適應(yīng)CAN車體總線,以減少重新開(kāi)發(fā)軟硬件系統(tǒng)的成本,本文提出基于以太網(wǎng)CAN模塊的總線協(xié)議網(wǎng)關(guān)設(shè)計(jì)。

1 CAN與以太網(wǎng)簡(jiǎn)介

1.1 CAN簡(jiǎn)介

控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN),由德國(guó)BOSCH公司研發(fā)并成為國(guó)際標(biāo)準(zhǔn)——ISO11898[1]。其被廣泛應(yīng)用在計(jì)算機(jī)控制系統(tǒng)、嵌入式控制設(shè)備局域網(wǎng)等領(lǐng)域中[2]。

CAN總線協(xié)議幀格式有兩種類型:CAN標(biāo)準(zhǔn)幀、CAN擴(kuò)展幀[3]。CAN標(biāo)準(zhǔn)幀由11個(gè)字節(jié)組成,包括幀信息、幀數(shù)據(jù)兩部分內(nèi)容。前3個(gè)字節(jié)為幀信息部分,后8個(gè)字節(jié)為幀數(shù)據(jù)部分。CAN協(xié)議標(biāo)準(zhǔn)幀格式如表1所示。

表1 標(biāo)準(zhǔn)幀格式Tab.1 Standard frame format

在表1中,字節(jié)1代表幀信息,其第7位——FF代表幀格式,在CAN協(xié)議標(biāo)準(zhǔn)幀格式中,F(xiàn)F的值為0;其第6位——RTR代表幀類型,RTR=0時(shí)為數(shù)據(jù)幀,RTR=1時(shí)為遠(yuǎn)程幀;其第0~3位表示幀類型為數(shù)據(jù)幀的數(shù)據(jù)部分總長(zhǎng)度。字節(jié)2與字節(jié)3表示幀識(shí)別碼,其低11位有效,高5位則無(wú)效。字節(jié)4到字節(jié)11代表數(shù)據(jù)幀的數(shù)據(jù)部分,幀類型為遠(yuǎn)程幀時(shí),字節(jié)4到字節(jié)11無(wú)效。

CAN擴(kuò)展幀由13個(gè)字節(jié)組成,包括幀信息、幀數(shù)據(jù)兩部分內(nèi)容。前5個(gè)字節(jié)為幀信息部分,后8個(gè)字節(jié)為幀數(shù)據(jù)部分。CAN擴(kuò)展幀格式如表2所示。

表2 擴(kuò)展幀格式Tab.2 Extended frame format

在表2中,字節(jié)1代表幀信息,其第7位——FF代表幀格式,在CAN協(xié)議擴(kuò)展幀格式中,F(xiàn)F的值為1;其第6位——RTR代表幀類型,RTR=0時(shí)為數(shù)據(jù)幀,RTR=1時(shí)為遠(yuǎn)程幀;其第0到3位表示數(shù)據(jù)幀的實(shí)際數(shù)據(jù)部分總長(zhǎng)度。字節(jié)2到字節(jié)5為幀識(shí)別碼,其低29位有效,高3位則無(wú)效。字節(jié)6到字節(jié)13代表數(shù)據(jù)幀的數(shù)據(jù)部分,幀類型為遠(yuǎn)程幀時(shí),字節(jié)6到字節(jié)13無(wú)效。

1.2 以太網(wǎng)

以太網(wǎng)通信協(xié)議中常用UDP 與TCP協(xié)議。

用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol UDP):是一種無(wú)連接的通信協(xié)議[4]。在OSI模型中,UDP在第四層——傳輸層,是IP協(xié)議的上一層。UDP常用于需要在計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)交互的網(wǎng)絡(luò)應(yīng)用程序中[5]。UDP主要將網(wǎng)絡(luò)應(yīng)用之間傳輸?shù)臄?shù)據(jù)流量壓縮轉(zhuǎn)換成數(shù)據(jù)包[6]。

傳輸控制協(xié)議(Transmission Control Protocol TCP):是一種面向連接、可靠、基于字節(jié)流的通信協(xié)議[7]。在OSI模型中,TCP完成第四層——傳輸層所指定的功能,是與用戶數(shù)據(jù)報(bào)協(xié)議在同一層內(nèi)的另一個(gè)重要傳輸協(xié)議[8]。

2 模塊簡(jiǎn)介、轉(zhuǎn)換原理及配置

2.1 模塊簡(jiǎn)介

以太網(wǎng)CAN模塊如圖2所示。該模塊帶有2路CAN接口和一路RJ45以太網(wǎng)接口,可進(jìn)行雙向數(shù)據(jù)傳送。以太網(wǎng)設(shè)備可以通過(guò)RJ45接口連接一個(gè)標(biāo)準(zhǔn)的CAN網(wǎng)絡(luò)。以太網(wǎng)CAN模塊可以作為一個(gè)標(biāo)準(zhǔn)的CAN節(jié)點(diǎn)。利用該模塊,用戶可以方便快速地開(kāi)發(fā)出CAN總線應(yīng)用軟件產(chǎn)品。

以太網(wǎng)CAN模塊共有3組對(duì)外接口:一個(gè)標(biāo)準(zhǔn)的RJ45以太網(wǎng)接口;一個(gè)7pin接線端子(電源輸入接口),端子定義如表3所示;一個(gè)10pin的接線端子(CAN總線信號(hào)接口),端子定義如表4所示。

圖1 以太網(wǎng)-CAN轉(zhuǎn)換模塊Fig. 1 Ethernet-CAN conversion module

表3 7pin接線端子Tab.3 7pin connection terminal

表4 10pin接線端子Tab.4 10pin connection terminal

該模塊性能如下:

1)以太網(wǎng)與CAN總線協(xié)議轉(zhuǎn)換;

2)具備2路獨(dú)立CAN接口;

3)以太網(wǎng)通訊采用UDP協(xié)議,透明轉(zhuǎn)換;

4)兼容CAN2.0A、CAN2.0B、標(biāo)準(zhǔn)幀、擴(kuò)展幀;

5)可進(jìn)行雙向數(shù)據(jù)交互,CAN發(fā)送與接收;

6)兼容數(shù)據(jù)幀、遠(yuǎn)程幀格式;

7)波特率可調(diào)范圍5 Kbit/s~1 Mbit/s;

8)最大幀轉(zhuǎn)換流量1 200幀/秒;

9)數(shù)據(jù)接收緩沖區(qū)大小可達(dá)100 幀,共1 300 Byte;

10)可檢索、配置模塊網(wǎng)絡(luò)參數(shù);

11)外部直流工作電源7~24 V;

12)隔離模塊絕緣電壓1 000 Vrms;

13)工作溫度為-20~85℃;

14)機(jī)械外殼尺寸100*70 mm,支持DIN導(dǎo)軌安裝。

2.2 協(xié)議轉(zhuǎn)換原理

網(wǎng)絡(luò)設(shè)備將一包或多包CAN幀數(shù)據(jù)填充到UDP包中發(fā)向模塊網(wǎng)口,模塊接收到網(wǎng)絡(luò)數(shù)據(jù)后,將UDP數(shù)據(jù)包中的CAN幀數(shù)據(jù)提取出來(lái),發(fā)向CAN設(shè)備。協(xié)議轉(zhuǎn)換如圖2所示。

圖2 以太網(wǎng)-CAN協(xié)議轉(zhuǎn)換過(guò)程Fig.2 Ethernet-CAN protocol conversion process

1)幀信息

幀信息Frame Info占一個(gè)字節(jié),該字節(jié)的bit定義如表5所示。

表5 幀信息定義Tab.5 Definition of frame information

FF:標(biāo)準(zhǔn)幀和擴(kuò)展幀的標(biāo)識(shí),0為標(biāo)準(zhǔn)幀,1為擴(kuò)展幀。

RTR:遠(yuǎn)程幀和數(shù)據(jù)幀的標(biāo)識(shí),0為數(shù)據(jù)幀,1為遠(yuǎn)程幀。除非特殊應(yīng)用,一般客戶都是用數(shù)據(jù)幀,填0即可。

DLC3~DLC0:標(biāo)識(shí)該CAN消息幀中的有效數(shù)據(jù)長(zhǎng)度,最多8個(gè)。

2)ID域

CAN消息幀的ID填充域共4個(gè)字節(jié),如表6所示。

表6 幀ID定義Tab.6 Definition of frame ID

當(dāng)為標(biāo)準(zhǔn)幀時(shí),占用后2個(gè)字節(jié)。ID2的高5位無(wú)效,補(bǔ)0。例:當(dāng)ID=0x03FF時(shí),按表7方式填充。

表7 標(biāo)準(zhǔn)幀ID實(shí)例Tab.7 Example of standard frame ID

當(dāng)為擴(kuò)展幀時(shí),占用4個(gè)字節(jié)。ID0的高3位無(wú)效,補(bǔ)0。例:當(dāng)ID=0x12345678時(shí),按表8方式填充

表8 擴(kuò)展幀ID實(shí)例Tab.8 Example of extended frame ID

3)數(shù)據(jù)域

根據(jù)CAN消息的定義,一個(gè)CAN幀中,最多可以包含8個(gè)字節(jié)的數(shù)據(jù)。當(dāng)該CAN幀不需要8個(gè)字節(jié)時(shí),余下的字節(jié)補(bǔ)0。注意:需要在FrameInfo字節(jié)中指明有效數(shù)據(jù)個(gè)數(shù)。例:FrameInfo中的DLC3~DLC0=8,表明有8個(gè)數(shù)據(jù)有效,如表9所示。

表9 數(shù)據(jù)域?qū)嵗齌ab.9 Example of data domain

4)CAN消息幀舉例

如表10所示,是一個(gè)標(biāo)準(zhǔn)數(shù)據(jù)幀,ID為0x3ff,包含6個(gè)數(shù)據(jù)字節(jié),為11h,22h,33h,44h,55h,66h的CAN幀的表示方式。

表10 標(biāo)準(zhǔn)數(shù)據(jù)幀實(shí)例Tab.10 Example of standard data frame

2.3 模塊配置

該模塊可人工配置參數(shù),配置步驟如下。

1)修改模塊網(wǎng)口一側(cè)設(shè)備的IP地址為192.168.0.55,子網(wǎng)掩碼255.255.255.0,默認(rèn)網(wǎng)關(guān)192.168.0.1。

2)將R+與R-用導(dǎo)線短接,接入終端電阻,并打開(kāi)參數(shù)配置軟件,如圖3所示。

圖3 以太網(wǎng)-CAN模塊參數(shù)配置界面Fig.3 Interface of Ethernet-CAN module parameters configuration

3)點(diǎn)擊“設(shè)備型號(hào)”,選擇NET-CAN200,然后點(diǎn)擊“設(shè)備操作”→“啟動(dòng)設(shè)備”,會(huì)在彈出的窗口將網(wǎng)絡(luò)中NET-CAN設(shè)備列表顯示。顯示信息包括該設(shè)備的主機(jī)IP,主機(jī)端口,設(shè)備IP和設(shè)備端口。運(yùn)行菜單“設(shè)置”→“獲取NET-CAN信息”,得到當(dāng)前模塊的參數(shù),并可以進(jìn)行修改,如圖4所示。

主要參數(shù)含義如下:

1)主機(jī)IP:用于通訊轉(zhuǎn)發(fā)的主機(jī)IP地址;

圖4 設(shè)備參數(shù)配置界面Fig.4 Interface of equipment parameters configuration

2)主機(jī)端口:用于通訊轉(zhuǎn)發(fā)的主機(jī)IP端口;適配器只有接收到從這個(gè)IP地址和端口發(fā)來(lái)的數(shù)據(jù),才能轉(zhuǎn)發(fā)到CAN總線;同時(shí),CAN總線端過(guò)來(lái)的數(shù)據(jù),將通過(guò)以太網(wǎng)UDP方式發(fā)到這個(gè)IP地址和端口;

3)設(shè)備IP:模塊的IP地址;

4)設(shè)備端口:模塊用于UDP通訊的端口號(hào)。主機(jī)必須通過(guò)UDP協(xié)議發(fā)送數(shù)據(jù)到這個(gè)IP地址和端口,設(shè)備才能接收到;

5)波特率:CAN總線的波特率,支持5k~1Mbit/s的15種常規(guī)速率供選擇;

6)自接收使能:在使能方式下,設(shè)備向CAN總線發(fā)送的消息都可以被收回,該模式用于設(shè)備的自測(cè)試。

3 軟件實(shí)現(xiàn)

采用Windows操作系統(tǒng)下的vc6.0集成開(kāi)發(fā)環(huán)境編寫(xiě)通訊代碼,步驟如下。

3.1 初始化網(wǎng)絡(luò)套接字

1)定義網(wǎng)絡(luò)套接字及相關(guān)變量

SOCKET socket1,socket2;

SOCKADDR_IN sockDest,sockDest2,sockDest3;

SOCKADDR_IN sockFrom;

SOCKADDR_IN sockSrc;

CString strDevIpAddress;

int SockAddrlen=sizeof(SOCKADDR);

2)綁定主機(jī)IP和端口

socket1=socket(AF_INET, SOCK_DGRAM, 0);

SOCKADDR_IN sockSrc;

sockSrc.sin_family=AF_INET;

sockSrc.sin_port=htons(4060);

sockSrc.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

bind(socket1,(SOCKADDR *)&sockSrc,sizeof(SOCKADDR));

3)生成SockDest用于連接測(cè)試

sockDest.sin_family=AF_INET;

sockDest.sin_port=htons(3000);

sockDest.sin_addr.S_un.S_addr=inet_addr(“192.168.0.101”);

4)生成SockDest2通訊用CAN0通道

sockDest2.sin_family=AF_INET;

sockDest2.sin_port=htons(4001);

sockDest2.sin_addr.S_un.S_addr=inet_addr(“192.168.0.101”);

5)生成SockDest3 通訊用CAN1通道

sockDest3.sin_family=AF_INET;

sockDest3.sin_port=htons(4002);

sockDest3.sin_addr.S_un.S_addr=inet_addr(“192.168.0.101”);

3.2 設(shè)備連接測(cè)試

為便于用戶進(jìn)行通信前測(cè)試,以太網(wǎng)CAN模塊提供了一組連接測(cè)試的命令字CDh,0Dh。當(dāng)模塊收到這個(gè)命令后,將回送當(dāng)前設(shè)備中的DevIP 和HostIP等網(wǎng)絡(luò)參數(shù)。

1)定義并賦值相關(guān)變量

char SendData[15];

char rbuf[100];

BYTE rbuf2[100];

SendData[0]=0xCD;//連接測(cè)試命令字

SendData[1]=0x0D;//連接測(cè)試命令字

2)發(fā)送連接測(cè)試請(qǐng)求

if(send to(socket1, Send Data,2,0,(SOCKADDR*)&sockDest,sizeof(SOCKADDR))==SOCKET_ERROR)

{

MessageBox(“udp發(fā)送失敗");

return;

}

3)接收數(shù)據(jù),連接成功

int datalen=recvfrom(socket1, rbuf, 1024,0, (SOCKADDR*)&sockFrom,&SockAddrlen);

if(datalen!=13) return;

for(i=0;i

rbuf2[i]=rbuf[i];//格式轉(zhuǎn)換

for(i=0;i<4;i++)

DevIP[i]=rbuf2[1+i];//設(shè)備IP地址

for(i=0;i<4;i++)

HostIP[i]=rbuf2[5+i];//主機(jī)IP地址

DevUdpPort=rbuf2[9]*256+rbuf2[10];//設(shè)備UDP 端口號(hào)

HostUdpPort=rbuf2[11]*256+rbuf2[12];//主機(jī)UDP端口號(hào)

3.3 CAN數(shù)據(jù)發(fā)送

1)定義并賦值相關(guān)變量

char SendData[1500];

char rbuf[1000];

BYTE rbuf2[1000];

for(int i=0;i<40;i++)//UDP攜 帶40個(gè)CAN數(shù)據(jù)

{

SendData[i*13]=0x08;//幀信息

SendData[i*13+1]=0x00;//ID0

SendData[i*13+2]=0x00;//ID1

SendData[i*13+3]=0x02;//ID2

SendData[i*13+4]=0x15;//ID3

SendData[i*13+5]=i*8;//數(shù)據(jù)1

SendData[i*13+6]=i*8+1;//數(shù)據(jù)2

SendData[i*13+7]=i*8+2;//數(shù)據(jù)3

SendData[i*13+8]=i*8+3;//數(shù)據(jù)4

SendData[i*13+9]=i*8+4;//數(shù)據(jù)5

SendData[i*13+10]=i*8+5;//數(shù)據(jù)6

SendData[i*13+11]=i*8+6;//數(shù)據(jù)7

SendData[i*13+12]=i*8+7;//數(shù)據(jù)8

}

2)發(fā)送攜帶CAN數(shù)據(jù)的UDP包

if(sendto(socket1,SendData,40*13,0,(SOCKADDR*)&sockDest2,

sizeof(SOCKADDR))==SOCKET_ERROR)

{

MessageBox(“udp 發(fā)送失敗”);

return;

}

3.4 CAN接收

1)開(kāi)啟線程處理UDP數(shù)據(jù)接收

AfxBeginThread(ReceiveThread,0);

2)定義相關(guān)變量

char rbuf[1000];

int datalen;

3)接收攜帶CAN數(shù)據(jù)的UDP包

datalen=recvfrom(socket1, rbuf, 1024, 0,(SOCKADDR*)&sockFrom, &SockAddrlen);

4)CAN數(shù)據(jù)解析與處理

if((datalen%13)==0)//如果該字節(jié)數(shù)是13 的整數(shù)倍,表示UDP包字節(jié)完整。

{

//CAN消息都在rbuf[datalen]數(shù)組中

//該部分進(jìn)行處理或顯示收到的CAN消息

}

4 結(jié)束語(yǔ)

使用以太網(wǎng)CAN模塊作為以太網(wǎng)通訊設(shè)備和CAN總線設(shè)備的網(wǎng)關(guān)進(jìn)行實(shí)時(shí)協(xié)議轉(zhuǎn)換,使以太網(wǎng)通訊設(shè)備能夠兼容通訊方式不同的 CAN車體總線。減少開(kāi)發(fā)成本,滿足功能需求,增強(qiáng)設(shè)備的可移植性與兼容性,實(shí)用性較強(qiáng)。

[1]付亮,李偉.CAN總線技術(shù)及其在現(xiàn)代汽車中的應(yīng)用[J].中國(guó)汽車制造,2006 (1):23-26.Fu Liang,Li Wei.CAN bus technology and its application in modern automobile[J].China Automotive Manufacturing.2006 (1):23-26.

[2]葉加青,李軍.CAN總線與Ethernet互連嵌入式研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2010(9):45-47.Ye Jiaqing, Li Jun.Embedded research and implementation of CAN bus and Ethernet interconnection[J].Computer and Modernization. 2010(9):45-47.

[3]李加升,李寧,曾哲.基于CAN總線與以太網(wǎng)的嵌入式網(wǎng)關(guān)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(14):69-71.Li Jiasheng,Li Ning,Zeng Zhe.Design of Embedded Gateway Based on CAN bus and Ethernet[J].Modern Electronics Technique,2009(14):69-71.

[4]劉濱,耿雪貞.CAN與以太網(wǎng)數(shù)據(jù)交換的研究與分析[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(12):16-18.Liu Bin,Geng Xuezhen.Research and analysis of data exchange between CAN and Ethernet[J].Microcontroller&Embedded Systems. 2003(12):16-18.

[5]李正軍.現(xiàn)場(chǎng)總線及其應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2005.

[6]劉曉莉,高軍,趙延明.基于ARM的以太網(wǎng)與CAN總線互聯(lián)網(wǎng)關(guān)的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī), 2007(4):15-16.Liu Xiaoli,Gao Jun,Zhao Yanming.Design of Ethernet-CAN Gateway Based on ARM[J].Industrial Control Computer,2007(4):15-16.

[7]陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[M].北京: 清華大學(xué)出版社,1999.

[8]林士兵,袁焱,楊煜普.TCP/IP網(wǎng)絡(luò)與CAN網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程.2007(3):243-244.Lin Shibing,Yuan Yan,Yang Yupu.Design and Realization of Gateway Between TCP/IP Network and CAN Network[J].Computer Engineering,2007(3):243-244.

猜你喜歡
設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
調(diào)試新設(shè)備
基于VB6.0+Access2010開(kāi)發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
電子制作(2018年10期)2018-08-04 03:24:48
食之無(wú)味,棄之可惜 那些槽點(diǎn)滿滿的可穿戴智能設(shè)備
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
HTC斥資千萬(wàn)美元入股虛擬現(xiàn)實(shí)設(shè)備商WEVR
Automechanika Shanghai 2014 之“看” 汽保設(shè)備篇
如何在設(shè)備采購(gòu)中節(jié)省成本
主站蜘蛛池模板: 亚洲国产综合自在线另类| 欧美69视频在线| 亚洲国产中文欧美在线人成大黄瓜 | 色婷婷丁香| 热热久久狠狠偷偷色男同| 精品国产免费观看| 亚洲日韩欧美在线观看| 亚洲成在人线av品善网好看| 国产免费精彩视频| 国产浮力第一页永久地址| 无码AV高清毛片中国一级毛片| 国产成人精品视频一区视频二区| 日韩精品无码一级毛片免费| 91亚洲视频下载| 任我操在线视频| 青青青国产视频| 国产黄色免费看| 婷婷六月综合网| 国产亚洲精品97在线观看| 综合色在线| 欧美在线综合视频| 福利片91| 国产丝袜91| 欧美精品亚洲二区| 国产成人免费高清AⅤ| 少妇露出福利视频| 国产福利2021最新在线观看| 久久国产亚洲偷自| 国产av剧情无码精品色午夜| 亚洲日本一本dvd高清| 久久免费观看视频| 国产美女精品一区二区| 99伊人精品| 永久在线播放| 欧美成人a∨视频免费观看 | 国产91全国探花系列在线播放| 亚洲综合香蕉| 69精品在线观看| 国产丝袜精品| 亚洲精品成人片在线观看| 久久熟女AV| 亚洲综合九九| 91久久国产成人免费观看| 日本不卡在线| 人妻免费无码不卡视频| 国产在线拍偷自揄观看视频网站| 国产精品福利在线观看无码卡| 欧美无专区| 久久青草热| 亚洲国产天堂久久综合| 国产无遮挡裸体免费视频| 精品亚洲欧美中文字幕在线看| 亚洲一区精品视频在线| 99视频精品在线观看| 欧美人与动牲交a欧美精品| 欧美成人二区| 小蝌蚪亚洲精品国产| 国产一区二区影院| 免费a级毛片视频| 亚洲综合欧美在线一区在线播放| 日韩精品免费一线在线观看| 国产高清免费午夜在线视频| 综合色在线| 日本一区高清| 国产 在线视频无码| 日本精品中文字幕在线不卡| 精品欧美一区二区三区久久久| 免费一级无码在线网站| 国产青青草视频| 特级精品毛片免费观看| 亚洲精品麻豆| 亚洲国产无码有码| 午夜在线不卡| 亚洲国产综合第一精品小说| 欧美激情第一欧美在线| 国产情侣一区二区三区| 国产一级α片| 国产97公开成人免费视频| 丝袜美女被出水视频一区| 国产91精品久久| 国产高清在线丝袜精品一区| 在线精品视频成人网|