《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > USB接口技術(shù)在嵌入式系統(tǒng)中的應(yīng)用研究

USB接口技術(shù)在嵌入式系統(tǒng)中的應(yīng)用研究

2009-04-13
作者:余修武1,2, 劉 嵐2

  摘? 要: 簡單介紹了USB接口技術(shù)的原理及其優(yōu)點。基于嵌入式系統(tǒng)與USB設(shè)備等不能直接傳輸數(shù)據(jù)及嵌入式系統(tǒng)大容量存儲難等問題的現(xiàn)狀,提出了在嵌入式系統(tǒng)中集成USB Host功能以解決這一問題。
  關(guān)鍵詞: USB接口; 嵌入式系統(tǒng); USB—Host;SL811HS

?

  隨著測控技術(shù)及嵌入式系統(tǒng)應(yīng)用的迅速發(fā)展,數(shù)據(jù)量越來越大,對數(shù)據(jù)傳輸速度要求越來越高,并且要求高可靠性、穩(wěn)定性和極好的移動性,能夠方便快捷地將數(shù)據(jù)傳送至處理中心進行處理控制等。而通用串行總線(USB)具有即插即用、熱插拔、易擴展和高傳輸速率等優(yōu)點,人們希望USB能應(yīng)用在移動數(shù)據(jù)交換等沒有PC機的領(lǐng)域中。而在非PC機應(yīng)用領(lǐng)域,這正是USB的一個致命弱點。USB的拓撲結(jié)構(gòu)中居于核心地位的是主機(Host),任何一次USB的數(shù)據(jù)傳輸都必須由主機來發(fā)起和控制,所有的USB設(shè)備都只能和主機建立連接,任何兩個外設(shè)之間或是兩個主機之間都無法直接通信[1]。目前,大量扮演主機角色的是個人電腦(PC),所買到和使用的USB移動設(shè)備都是USB的設(shè)備,如USB的移動硬盤、USB接口的數(shù)碼相機等等。所有這些設(shè)備都只能在PC機上使用,只能通過PC機來進行相互的文件和數(shù)據(jù)交換。沒有PC機,這些設(shè)備就“失靈”了(就數(shù)據(jù)交換的功能而言)。因此,USB接口技術(shù)在嵌入式領(lǐng)域中的應(yīng)用就成了USB領(lǐng)域新的研究焦點。解決這一問題的根本辦法就是在嵌入式系統(tǒng)中集成USB Host功能,使之具有與USB Slave設(shè)備進行數(shù)據(jù)傳輸?shù)哪芰Α>哂兄鳈C功能的嵌入式設(shè)備可讀寫U盤,對于數(shù)據(jù)采集、存儲更加方便,更適合野外設(shè)備或長期運行設(shè)備的數(shù)據(jù)采集。
1 USB接口硬件設(shè)計
1.1 系統(tǒng)硬件的總體結(jié)構(gòu)

  USB技術(shù)規(guī)范將使用USB進行數(shù)據(jù)傳輸?shù)碾p方劃分為兩種角色[2]:Host機和Slave機,并且規(guī)定,數(shù)據(jù)傳輸只能發(fā)生在Host機和Slave機之間。要將實現(xiàn)USB Slave 的USB 接口的數(shù)字設(shè)備應(yīng)用于嵌入式系統(tǒng)中,就要在嵌入式系統(tǒng)中集成USB Host 功能模塊,使之具有與USB Slave 設(shè)備進行數(shù)據(jù)傳輸?shù)哪芰Γ瑘D1所示為系統(tǒng)總體結(jié)構(gòu)。

?

?

1.2 USB Host模塊硬件連接
  USB Host 功能模塊硬件連接如圖2所示。CPU選用與MCS-51系列單片機完全兼容的Dalla 8公司的80C320 單片機,而且運行速度在同樣晶振頻率下比80C32平均高2.5倍,最高工作頻率可達33MHz。USB主機接口芯片選用SL811HS。

?


1.3 SL811HS
  SL811HS[3]是Cypress公司推出的遵從USB1.1協(xié)議的專用于嵌入式系統(tǒng)USB主控制器(Host /Slave)芯片,由主/從控制器模塊、RAM緩存及控制寄存器模塊、串行接口引擎SIE等模塊組成。其中,SIE模塊負責(zé)完成USB總線與主機之間數(shù)據(jù)的串、并轉(zhuǎn)換等功能;RAM緩存用于數(shù)據(jù)緩存,它和控制寄存器(占前16B)的空間為00H~FFH,共256B。SL811HS的功能框如圖3所示。

?


  該芯片既能與USB低速設(shè)備進行通信,也能與USB高速設(shè)備進行通信[4]。由于提供了8bit 寬數(shù)據(jù)總線及中斷支持,使得該芯片能方便地與一般的單片機、DSP等控制器進行通信,并受到CPU的控制。其特點主要有:能通過硬件設(shè)置或軟件設(shè)置的方法使該芯片工作在Host或Slave模式;自動探測所連接的設(shè)備是低速設(shè)備還是高速設(shè)備;8bit雙向數(shù)據(jù)總線;片上SIE、USB收發(fā)器;自動產(chǎn)生SOF令牌包,以及自動生成令牌包、數(shù)據(jù)包中所需要的CRC5/CRC16數(shù)據(jù);內(nèi)部256B RAM,支持乒乓操作;支持SUSPEND/RESUME、WAKE UP、LOW-POWER模式。
2 USB接口軟件設(shè)計
2.1 接口固件設(shè)計

  USB Host模塊設(shè)計中最困難的就是固件(Firmware)設(shè)計,固件編程要遵循復(fù)雜的USB規(guī)范,所以比硬件設(shè)計工作量大得多。該模塊固件程序主要由如下部分組成:對SL811HS進行設(shè)置的初始化程序,這部分程序在系統(tǒng)復(fù)位后就立刻執(zhí)行;發(fā)現(xiàn)USB設(shè)備接入的子程序,并判斷該設(shè)備是高速還是低速設(shè)備;對該USB設(shè)備進行Enumerate,即枚舉,并指定其USB地址的子程序;其他數(shù)據(jù)通信子程序利用該部分程序完成指定的應(yīng)用要求[5]。USB傳輸函數(shù)usbXfer程序流程如圖4所示。

?


  以包為基礎(chǔ),USB定義的4種數(shù)據(jù)傳輸類型所能達到的傳輸速度、占用USB總線的帶寬、傳輸數(shù)據(jù)的總量和應(yīng)用場合等都是不同的。每種傳輸方式都由很多個事務(wù)來完成。USB事務(wù)處理一般由三個階段組成:令牌階段、數(shù)據(jù)階段和握手階段。令牌階段定義了事務(wù)處理的類型,包括SETUP、IN 和OUT;數(shù)據(jù)階段負責(zé)運送和傳輸相關(guān)的數(shù)據(jù),Data0 和Data1兩種數(shù)據(jù)包交替使用,以支持雙方的傳輸同步;握手階段由接收方向發(fā)送方提供反饋,告知數(shù)據(jù)是否正確接收。
  在USB Host 模塊中,固件的核心部分是USB傳輸函數(shù)usbXfer。usbXfer管理著USB的事務(wù)處理,其入口參數(shù)有:設(shè)備地址UsbAddr 、端點地址Endpoint、令牌包類型PID、端點最大負荷Payload、傳輸數(shù)據(jù)總長度Length 、數(shù)據(jù)緩存區(qū)指針Buffer。
  USB主機檢測到設(shè)備連接好后要對其進行配置,稱為設(shè)備的枚舉,該部分固件的核心是設(shè)備請求函數(shù)VendorCmd。VendorCmd構(gòu)建在usbXfer函數(shù)之上,通過調(diào)用usbXfer進行若干次的控制傳輸來實現(xiàn)。控制傳輸?shù)膶崿F(xiàn)是固件程序中一個比較復(fù)雜的部分。控制傳輸由三個階段組成:建立階段、數(shù)據(jù)階段和狀態(tài)階段。建立階段,主機進行SETUP事務(wù)處理,向目標(biāo)設(shè)備發(fā)送標(biāo)準(zhǔn)設(shè)備請求;數(shù)據(jù)階段,由若干個IN事務(wù)處理或OUT事務(wù)處理組成;狀態(tài)階段,主機則完成與數(shù)據(jù)階段相反的事務(wù)處理,結(jié)束本次控制傳輸。
  設(shè)備的枚舉過程主要包括以下幾個步驟:(1)主機請求設(shè)備控制端點0,以確定缺省管道支持的最大數(shù)據(jù)量;(2)主機給USB設(shè)備分配1個唯一的地址;(3)主機從描述符中讀取配置信息并加以執(zhí)行;(4)主機驗證設(shè)備所需要的資源是否可以獲得;(5)主機USB設(shè)備發(fā)送1個配置值,指出如何使用該設(shè)備。枚舉成功后,主機和設(shè)備就可根據(jù)設(shè)備接口類型,采用相應(yīng)的接口協(xié)議進行數(shù)據(jù)控制和傳輸。USB設(shè)備類型主要劃分為:音頻設(shè)備、顯示設(shè)備、人機接口、海量存儲器等。特定的設(shè)備類型又劃分為若干個子類,它們又有可能采用不同的接口協(xié)議傳輸指令和數(shù)據(jù)。以U盤為例,類代碼08h(海量存儲器類),子類代碼06h(SCSI指令集子類),傳輸協(xié)議50h(Bulk—Only傳輸協(xié)議)。按照這些標(biāo)準(zhǔn),U盤的操作過程可分為:指令、數(shù)據(jù)和狀態(tài)三個階段,也就是主機首先向設(shè)備Bulk—Out端點寫包含SCSI的指令塊(CBW);然后從Bulk—In讀數(shù)據(jù)或向Bulk—Out端點寫數(shù)據(jù);最后從Bulk—In端點讀取傳輸狀態(tài)(CSW)。通過Mass Storage類的子類命令的實現(xiàn),在建立了FAT文件系統(tǒng)后,該文件系統(tǒng)就可以直接調(diào)用子類命令對U盤進行各種操作,以實現(xiàn)對文件的管理。
2.2? 驅(qū)動程序設(shè)計
  主機控制器驅(qū)動程序設(shè)計主要包括四個部分:主機控制器的初始化和管理、傳輸執(zhí)行和資源的調(diào)配、中斷處理以及根集線器操作和控制。主機控制器為USB總線驅(qū)動屏蔽了硬件操作,完成USB底層數(shù)據(jù)傳輸,它為上層驅(qū)動提供了簡單的軟件接口,定義了usb_ operation函數(shù)結(jié)構(gòu)體供USB總線調(diào)度調(diào)用。
  Struct usb_ operations {
  int ( * allocate) (struct usb_device * );? ?
???? ??????????????? // 分配USB設(shè)備資源
  int ( * deallocae) (struct usb_device * );
?????? ????????????? // 收回USB設(shè)備資源
  int ( * get_frame_number)(struct usb_device * usb_dev);?
????????????????????? // 獲得當(dāng)前幀號
  int ( * submit_urb) (struct urb * purb);
????????????????????? // 提交URB請求塊
  int ( * unlink_urb) (struct urb * purb);
????????????????????? // 撤銷URB請求塊
?  };
  函數(shù)調(diào)用涉及兩個不同數(shù)據(jù)結(jié)構(gòu)的變量,其中,usb_device包含了對設(shè)備地址、描述表、配置、端點等基本設(shè)備信息;urb說明了USB總線請求的基本信息,包括USB通道信息、數(shù)據(jù)緩沖區(qū)、帶寬和完成處理函數(shù)等。USB總線上所有的交易都是由函數(shù)submit_urb( )發(fā)起的。主機控制器驅(qū)動程序基本流程如圖5所示。

?


  由于USB總線的通用操作如USB設(shè)備枚舉、具體數(shù)據(jù)傳輸?shù)纫呀?jīng)由主機控制器驅(qū)動程序完成了,所以主機端設(shè)備驅(qū)動程序這部分的驅(qū)動程序只需要完成與具體設(shè)備相關(guān)的操作即可。USB設(shè)備驅(qū)動程序首先要做的是向Linux內(nèi)核注冊它自己,并告訴系統(tǒng)它所支持的設(shè)備類型以及它所支持的操作。這些信息通過usb_driver結(jié)構(gòu)來傳遞。
  struct usb_driver usb_storage_driver = {
  name:? “usb-storage”,?? ?????? ? // 驅(qū)動程序的名字
  probe: storage_probe,?? ???    // 函數(shù)指針
  disconnect:? storage_disconnect,?? // 函數(shù)指針
  id_table:? storage_usb_ids,???? ?? // 保存設(shè)備廠商ID和產(chǎn)品ID
  };
  usb_device是程序中一個重要的數(shù)據(jù)結(jié)構(gòu),驅(qū)動程序在設(shè)備探測階段可通過它獲得設(shè)備的相關(guān)配置信息。當(dāng)一個設(shè)備插入USB總線時,主機對設(shè)備進行總線枚舉,完成對設(shè)備的配置并讀入設(shè)備屬性。相關(guān)屬性如設(shè)備描述符、配置描述符等信息被主機控制器保存在usb_device結(jié)構(gòu)中。然后,內(nèi)核根據(jù)設(shè)備標(biāo)志找到對應(yīng)的驅(qū)動程序,并調(diào)用該驅(qū)動程序的storage_probe( )函數(shù)。usb_device結(jié)構(gòu)被作為參數(shù)傳入該函數(shù)。驅(qū)動函數(shù)的注冊和注銷都比較簡單,注冊時只需要將usb_storage_driver結(jié)構(gòu)作為參數(shù)傳遞給usb_register( )函數(shù)即可,usb_register(&usb_storage_driver)注銷類usb_deregister(&usb_storage_driver)、Storage_disconnect( )在設(shè)備被卸載時被調(diào)用。
2.3 用戶程序設(shè)計
  用戶程序是系統(tǒng)與用戶的接口,通過通用驅(qū)動程序來完成對外設(shè)的控制和通信。在編寫用戶程序時,首先建立與外設(shè)的連接,然后再實施數(shù)據(jù)的傳輸。本設(shè)計使用VisualC++6.0編譯環(huán)境,將API函數(shù)包裝成一個USB.DLL連接庫程序文件,其編程方法與串口編程類似:首先查找設(shè)備,打開設(shè)備的句柄,然后進行讀寫和控制操作,最后關(guān)閉設(shè)備句柄。在VC動態(tài)鏈接庫中需將以下函數(shù)進行封裝:
  __declspec(dllexport)int__stdcall? EzBulk_ DataOut(uns?I gned? char*DataOut,int? DataOutLen);
  __declspec(dllexport)int__stdcall? EzBulk_DataIn(unsig ned? char*DataIn,int *lpDataInLen);
  __declspec(dllexport)int__stdcall? EzOpenDevice();
  __declspec(dllexport)int__stdcall? EzClose Device();
  然后在VB中調(diào)用此USB.DLL做以下聲明。這樣就可以直接在VB中調(diào)用這些函數(shù)作相應(yīng)的開發(fā)了。
  Private Declare Function EzInit Lib “USB.DLL” (ByVal PipeIn As Byte, ByVal PipeOut As Byte, ByRef lpVoid As Any)As Long
  Private Declare Function EzBulk_ DataOut Lib “USB.DLL”(ByRef DataOut As Byte, ByVal DataOutLen As Long)As Long
  Private Declare Function EzBulk_ DataIn Lib “USB.DLL” (ByRef DataIn As Byte, ByRef DataInLen As Long)As Long
  有了嵌入式主機后,脫離PC機的數(shù)據(jù)傳輸不再是夢想了。在MP3播放器、數(shù)碼相機里嵌入USB主機模塊,使其由傳統(tǒng)的USB外設(shè)成為USB主機。這樣,這些嵌入式的主機就可以直接與移動硬盤、打印機等USB設(shè)備相連接,實現(xiàn)特定的功能。例如:江蘇某企業(yè)生產(chǎn)的提花毛皮機控制系統(tǒng)中就實現(xiàn)了USB Host模塊功能,用戶系統(tǒng)可以直接讀寫作為Slave的U盤,將花型準(zhǔn)備系統(tǒng)設(shè)計的花型以文件的方式存儲到U盤中,在用戶需要時,可讀取U盤中的花型文件進行分析、處理,效果良好。
  目前USB主機的研究與應(yīng)用已得到國內(nèi)外的廣泛重視和迅速發(fā)展,正在推廣使用的USB3.0標(biāo)準(zhǔn)能提供4.8Gb/s的高速數(shù)據(jù)傳輸性能(USB1.1和USB2.0分別是12Mb/s和480Mb/s),甚至支持光纖連接。這樣其峰值速度就可達到20Gb/s,如此就可實現(xiàn)USB高速組網(wǎng)或廣播電視節(jié)目信號在USB設(shè)備上的傳輸。USB3.0標(biāo)準(zhǔn)還可解決因USB2.0供電不足而無法支持大功耗USB移動設(shè)備的問題。隨著移動數(shù)碼產(chǎn)品的發(fā)展趨勢,提出了USB2.0協(xié)議的補充協(xié)議USB OTG和無線USB傳輸規(guī)范,同時具備主從機功能的高速USB OTG設(shè)備和無線USB的應(yīng)用將是未來開發(fā)者們研究的方向。充分利用USB簡便的特性以及高速數(shù)據(jù)傳輸性能,擴大其支持設(shè)備的種類,這將給USB的應(yīng)用帶來廣闊的市場,也將給人們的生產(chǎn)生活帶來巨大的便利。

參考文獻
[1]? 王田苗. 嵌入式系統(tǒng)設(shè)計與實例開發(fā)[M]. 第二版. 北京: 清華大學(xué)出版社, 2003:141-145.
[2]? 馬偉.計算機USB系統(tǒng)原理及其主/從機設(shè)計[M].北京: 北京航空航天大學(xué)出版社, 2004: 93-98.
[3] Cypress Semiconductor Corporation. SL811HS? Datasheet?[EB/OL]. http://www.uclinux.org/, 2005-02-05.
[4] ?陳啟美,丁傳鎖.計算機USB接口技術(shù)[M]. 南京:南京大學(xué)出版社,2003:73-89.
[5] ?鄭智.嵌入式Linux下USB驅(qū)動程序開發(fā)研究[J].武漢理工大學(xué)學(xué)報. 信息與管理工程版,2006,28(7):
?117-120.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
老巨人导航500精品| 国产精品swag| 亚洲一区二区在线看| 亚洲欧洲精品一区二区| 久久aⅴ乱码一区二区三区| 亚洲嫩草精品久久| 亚洲午夜黄色| 国产精品99久久久久久白浆小说| 亚洲精品日韩精品| 亚洲激情婷婷| 亚洲欧洲在线看| 亚洲国产1区| 亚洲电影免费在线观看| 在线看片第一页欧美| 一区二区三区在线视频观看| 激情欧美日韩| 永久免费毛片在线播放不卡| 激情综合电影网| 一区二区在线视频播放| 亚洲第一视频网站| 亚洲日本中文字幕区| 亚洲免费观看| 亚洲香蕉成视频在线观看| 亚洲一区二区三区精品视频| 亚洲影音一区| 午夜精品免费视频| 久久国产婷婷国产香蕉| 91久久国产精品91久久性色| 亚洲开发第一视频在线播放| 一本色道久久88综合亚洲精品ⅰ| 亚洲婷婷综合色高清在线| 亚洲一区久久| 久久精品国产77777蜜臀| 久久免费的精品国产v∧| 毛片精品免费在线观看| 欧美国产视频一区二区| 欧美日韩免费观看一区二区三区| 国产精品成人免费| 国产视频一区在线| 亚洲成人原创| 一区二区日韩| 欧美亚洲在线| 亚洲日本免费| 亚洲欧美国产精品桃花| 久久久久久久999精品视频| 欧美xxx在线观看| 欧美视频日韩视频在线观看| 国产欧美日本| 亚洲国产91色在线| 亚洲午夜视频在线| 欧美资源在线观看| 亚洲精品在线观| 亚洲欧美在线x视频| 久久亚洲精选| 欧美午夜女人视频在线| 国产日产精品一区二区三区四区的观看方式 | 欧美日韩三级电影在线| 国产人成一区二区三区影院| 在线观看国产精品网站| 亚洲视频欧美在线| 亚洲第一色中文字幕| 亚洲一区二区三区777| 久久午夜视频| 欧美午夜在线视频| 依依成人综合视频| 正在播放日韩| 亚洲精品久久| 欧美一区二区私人影院日本 | 亚洲一品av免费观看| 久久久久久一区二区| 欧美日韩系列| 一区视频在线播放| 亚洲一区视频在线| 亚洲理伦电影| 久久免费视频观看| 欧美亚州一区二区三区| 在线观看日韩一区| 午夜精品久久久久久久99水蜜桃| 日韩亚洲欧美综合| 久久亚洲高清| 国产精品日本一区二区 | 亚洲女女女同性video| 亚洲精品日韩综合观看成人91| 午夜在线精品| 欧美日韩ab| 一区二区三区在线观看国产| 亚洲一区二区三区在线看| 日韩一级黄色片| 另类激情亚洲| 国产一区亚洲| 亚洲欧美另类中文字幕| 亚洲午夜激情网页| 欧美韩日一区二区| 精品88久久久久88久久久| 午夜电影亚洲| 午夜一区二区三区在线观看| 欧美日韩国产成人高清视频| 亚洲高清不卡一区| 久久精品成人欧美大片古装| 欧美在线亚洲一区| 国产精品免费区二区三区观看| 亚洲美女电影在线| 亚洲精品一区二区三区在线观看| 久久裸体艺术| 国产综合视频| 欧美在线观看一区| 性色av香蕉一区二区| 国产精品久久97| 一本色道久久| 中文av一区二区| 欧美日韩99| 亚洲免费精品| 国产精品99久久久久久宅男| 欧美不卡在线视频| 在线成人国产| 亚洲人成在线观看网站高清| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区我不卡| 亚洲高清网站| 狂野欧美性猛交xxxx巴西| 狠狠色狠狠色综合日日小说| 欧美一区二区三区四区视频| 久久精品中文字幕一区二区三区| 国产精品视频自拍| 亚洲欧美日韩中文视频| 欧美中在线观看| 国产亚洲欧美日韩美女| 欧美一区二区三区久久精品茉莉花 | 欧美日韩亚洲激情| 99亚洲一区二区| 国产精品99久久久久久久久久久久| 欧美日韩精品在线视频| aⅴ色国产欧美| 午夜日本精品| 国产日韩精品一区二区三区在线| 亚洲女女做受ⅹxx高潮| 久久riav二区三区| 国产在线成人| 亚洲日韩欧美视频一区| 欧美日韩成人激情| aⅴ色国产欧美| 午夜在线观看欧美| 国产一区二区三区在线免费观看 | 久久精品视频导航| 欧美国产亚洲另类动漫| 99精品欧美一区二区三区| 午夜欧美不卡精品aaaaa| 国产亚洲欧美另类中文| 亚洲欧洲日产国产综合网| 欧美日韩免费观看一区二区三区 | 亚洲欧洲一二三| 亚洲一区精品电影| 国产亚洲女人久久久久毛片| 亚洲第一综合天堂另类专| 欧美成人综合| 亚洲视频你懂的| 久久久91精品国产| 亚洲激情综合| 亚洲欧美日韩专区| 国际精品欧美精品| 一区二区免费在线视频| 国产免费一区二区三区香蕉精| 久久精品噜噜噜成人av农村| 欧美激情91| 亚洲一区日韩| 欧美 亚欧 日韩视频在线| 一区二区日韩| 老司机成人在线视频| 99国内精品久久| 久久久久久一区| 99re这里只有精品6| 久久国产视频网站| 亚洲三级电影全部在线观看高清| 午夜精品一区二区三区在线播放 | 激情文学综合丁香| 亚洲视频1区| 国产一区高清视频| 一本色道久久综合精品竹菊| 国产色婷婷国产综合在线理论片a| 亚洲国产精品福利| 国产精品狼人久久影院观看方式| 久久激情婷婷| 国产精品sm| 亚洲娇小video精品| 国产精品黄页免费高清在线观看| 亚洲福利视频免费观看| 欧美性事免费在线观看| 亚洲电影下载| 国产精品无人区| 99热精品在线| 狠狠噜噜久久| 欧美一级片久久久久久久| 亚洲日本成人女熟在线观看| 久久er99精品| 99热这里只有成人精品国产| 米奇777超碰欧美日韩亚洲| 亚洲欧美日韩电影| 欧美日韩在线免费视频| 亚洲国产综合视频在线观看| 国产日本欧美一区二区三区在线|