• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    嵌入式Linux的USB驅(qū)動(dòng)設(shè)計(jì)

    2011-05-21 00:41:08李麗宏郝志剛
    電子設(shè)計(jì)工程 2011年11期
    關(guān)鍵詞:描述符驅(qū)動(dòng)程序端點(diǎn)

    李麗宏,郝志剛

    (太原理工大學(xué) 信息工程學(xué)院,山西 太原 030024)

    隨著計(jì)算機(jī)外圍硬件的擴(kuò)展,各種外圍設(shè)備使用不同的總線接口,導(dǎo)致計(jì)算機(jī)外部各種總線繁多,管理困難,USB總線可以解決這些問題,因此而誕生。USB總線提供統(tǒng)一的外沒的接口方式,并且支持熱插拔,方便了廠商開發(fā)設(shè)備和用戶使用設(shè)備。USB(通用串行總線)是由Microsoft,Compad,Inter和NEC等推出的外圍總線接口,目前已發(fā)展到2.0標(biāo)準(zhǔn)最高支持480 Mb/s的速率,最多可以支持127個(gè)外設(shè)。

    嵌入式Linux是一款源代碼完全免費(fèi)的新興操作系統(tǒng),用戶可以用戶可以通過網(wǎng)絡(luò)等其他途徑免費(fèi)獲得,并可以任意修改其源代碼,這是其他的操作系統(tǒng)做不到的。正是由于這一點(diǎn),Linux得到了廣泛的應(yīng)用。

    1 Linux中USB設(shè)備驅(qū)動(dòng)程序框架及數(shù)據(jù)結(jié)構(gòu)

    1.1 USB的體系結(jié)構(gòu)

    USB接口標(biāo)準(zhǔn)支持外部設(shè)備和主機(jī)之間進(jìn)行數(shù)據(jù)傳送。在USB結(jié)構(gòu)中主機(jī)預(yù)設(shè)各種類型外設(shè)使用的總線寬度。當(dāng)外設(shè)和主機(jī)在運(yùn)行時(shí),USB總線允許使用,設(shè)置,添加和拆除外設(shè)。

    在USB體系結(jié)構(gòu)中一個(gè)USB系統(tǒng)可以分成USB設(shè)備、USB主機(jī)和USB互聯(lián)3個(gè)部分。USB互聯(lián)是USB設(shè)備和USB主機(jī)之間進(jìn)行連接通信的操作[1],主要包括:

    1)總線拓?fù)浣Y(jié)構(gòu):USB主機(jī)和USB設(shè)備之間的連接方式;

    2)數(shù)據(jù)流模式:描述USB通信系統(tǒng)數(shù)據(jù)如何從產(chǎn)生方傳遞到使用方;

    3)USB調(diào)度:USB總線是一個(gè)共享連接,對(duì)可以使用的連按進(jìn)行調(diào)度以支持同步數(shù)據(jù)傳輸,并避兔優(yōu)先級(jí)判斷的開銷。

    圖1 USB體系拓?fù)浣Y(jié)構(gòu)圖Fig.1 USB system topological structure

    USB的物理連接是有層次的星型結(jié)構(gòu),如圖1所示。從圖中可以看出USB集線器在一個(gè)節(jié)點(diǎn)上連接多個(gè)設(shè)備,每條線段都是點(diǎn)點(diǎn)連接,每個(gè)USB集線器在星形的中心。從主機(jī)到設(shè)備或者USB集線器,或USB集線器到設(shè)備都是點(diǎn)點(diǎn)連接。

    1.2 USB驅(qū)動(dòng)程序的結(jié)構(gòu)

    USB總線在技術(shù)層面上是非常簡(jiǎn)單的,它是一個(gè)單主方式實(shí)現(xiàn)的,主機(jī)輪詢各種不同的外圍設(shè)備,USB另外一個(gè)重要的特性是它只擔(dān)當(dāng)設(shè)備和主控制器之間通訊通道的角色,對(duì)所發(fā)送的數(shù)據(jù)沒有任何特殊的內(nèi)容和結(jié)構(gòu)上的要求。

    Linux支持兩種類型的USB驅(qū)動(dòng),宿主系統(tǒng)[2]上的驅(qū)動(dòng)程序和設(shè)備上的驅(qū)動(dòng)程序。宿主USB驅(qū)動(dòng)程序控制插入其中的USB設(shè)備,而USB設(shè)備的驅(qū)動(dòng)程序控制設(shè)備如何作為一個(gè)USB設(shè)備和主機(jī)通訊。這里主要討論設(shè)備驅(qū)動(dòng)。

    圖2 USB驅(qū)動(dòng)程序?qū)哟螆DFig.2 USB driver hierarchical graph

    USB的基本通信的形式基本通過端點(diǎn)的東西。USB端點(diǎn)[3]只能往一個(gè)方向傳輸數(shù)據(jù),從主機(jī)到設(shè)備或從設(shè)備到主機(jī)。USB端點(diǎn)分別具有不同的傳輸數(shù)據(jù)的方式,他們有4種類型,分別是:1)控制端點(diǎn)用來控制對(duì)USB設(shè)備不同部分的訪問。他們用于配置設(shè)備,獲取設(shè)備信息,獲取設(shè)備的狀態(tài)報(bào)告,發(fā)送命令到設(shè)備。它是一種非周期性的可靠的傳輸。2)中斷端點(diǎn)就是設(shè)備傳輸數(shù)據(jù)時(shí)以一個(gè)固定的速率來傳輸少量的數(shù)據(jù)。這些端點(diǎn)是鼠標(biāo)和USB鍵盤所使用的主要傳輸方式。它通常用于發(fā)送數(shù)據(jù)到USB設(shè)備以控制設(shè)備,一般不用來傳輸大量數(shù)據(jù)。USB協(xié)議保證這些傳輸有足夠的保留帶寬來傳輸數(shù)據(jù)。3)等時(shí)端點(diǎn)同樣可以傳輸大批量的數(shù)據(jù),但數(shù)據(jù)是否到達(dá)沒有保障,這些端點(diǎn)用于可以應(yīng)付數(shù)據(jù)丟失的情況,這類設(shè)備更注重于保持一定的恒定的數(shù)據(jù)流,實(shí)時(shí)的數(shù)據(jù)收集都使用這類端點(diǎn)。4)批量端點(diǎn)傳輸大量的數(shù)據(jù)。這些端點(diǎn)通常比中斷端點(diǎn)大的多他們常用于需要確保沒有數(shù)據(jù)丟失的傳輸設(shè)備。USB協(xié)議不保證這些傳輸始終可以在特定的時(shí)間內(nèi)完成。如果總線上的空間不足以發(fā)送整個(gè)批量包。它將被分割為多個(gè)包進(jìn)行傳輸。

    當(dāng)一個(gè)USB設(shè)備連接到主機(jī)時(shí),主機(jī)會(huì)給這個(gè)設(shè)備分配一個(gè)1~127之間的唯一的設(shè)備號(hào)同時(shí)讀取該設(shè)備的描述符,該設(shè)備描述符是描述設(shè)備信息及其屬性的數(shù)據(jù)結(jié)構(gòu),USB以一種層次化的結(jié)構(gòu)定義設(shè)備的描述符,設(shè)備描述符給出了USB設(shè)備的一般信息,包括對(duì)設(shè)備及所有設(shè)備配置起全程作用的信息,一個(gè)USB設(shè)備只能有一個(gè)設(shè)備描述符,配置描述符中的信息與設(shè)備特定的配置相關(guān),一個(gè)USB設(shè)備可以有一個(gè)或多個(gè)配置描述符,每個(gè)配置描述符又由一個(gè)或多個(gè)接口描述符組成,接口描述符的信息是與設(shè)備驅(qū)動(dòng)程序的開發(fā)密切相關(guān),可以一個(gè)接口對(duì)應(yīng)一個(gè)設(shè)備驅(qū)動(dòng)程序也可以多個(gè)接口對(duì)應(yīng)一個(gè)設(shè)備驅(qū)動(dòng)程序,接口描述符由零個(gè)或多個(gè)端點(diǎn)描述符組成,端點(diǎn)描述符定義了在一個(gè)給定的設(shè)備里實(shí)現(xiàn)的實(shí)際寄存器.這些描述符定義了每個(gè)寄存器的功能和特定的信息如端點(diǎn)要求的傳輸類型、傳輸方向、帶寬要求、查詢間隔等。另外,還有一個(gè)可選的字符串描述符,它以UNCOND碼的格式給出了一些可讀的信息,這些信息通常是有關(guān)設(shè)備生產(chǎn)廠商、設(shè)備名設(shè)備序列號(hào)等,通過這些不同層次的描述符.主機(jī)設(shè)備驅(qū)動(dòng)程序就可以知道具體設(shè)備的相關(guān)信息,從而對(duì)設(shè)備進(jìn)行相應(yīng)控制。

    1.3 USB驅(qū)動(dòng)程序框架

    1.3.1 基本數(shù)據(jù)結(jié)構(gòu)

    usb-skel設(shè)備使用自定義結(jié)構(gòu)usb_skel記錄設(shè)備驅(qū)動(dòng)用到的所有描述符,該結(jié)構(gòu)定義如下:struct usb_skel{

    struct usb_device*udev; //USB設(shè)備描述符

    struct usb_interface*interface; //USB接口描述符

    struct semaphore limit_sem; //互斥信號(hào)量

    unsigned char* bulk_in_buffer;//數(shù)據(jù)接收緩沖區(qū)

    size_t bulk_in_size; //數(shù)據(jù)接收緩沖區(qū)大小

    _u8 bulk_in_endpointAddr; //入端點(diǎn)地址

    _u8 bulk_out_endpointAddr;//出端點(diǎn)地址

    struct kref kref;

    };

    1.3.2 驅(qū)動(dòng)程序初始化和注銷

    同其他所有的Linux設(shè)備驅(qū)動(dòng)程序一樣,usb-skel驅(qū)動(dòng)使用 module_init()宏初始化函數(shù),使用 module_exit()宏注銷函數(shù)。usb-skel驅(qū)動(dòng)的初始化函數(shù)usb_skel_init()函數(shù),定義如下:

    static int_init usb_skel_init(void)

    {

    int result;

    result-usb_register(&skel_driver);//注冊(cè) USB 設(shè)備驅(qū)動(dòng)if(result)

    err(“usb_register failed.Error number%d”,result);return result;

    }

    sb_skel_init()函數(shù)調(diào)用內(nèi)核提供的 usb_register()函數(shù)注冊(cè)了一個(gè)usb_driver類型的結(jié)構(gòu)變量,該變量定義如下:static struct usb_driver skel_driver={

    .name= “skeleton”, //USB 設(shè)備名稱

    .probe=skel_probe, //USB設(shè)備初始化函數(shù)

    .disconnect=skel_disconnect,//USB設(shè)備注銷函數(shù)

    .id_table=skel_table, //USB設(shè)備ID映射表};

    其中usb_skel設(shè)備的USB ID映射表定義如下:static struct usb_device_id skel_table[]={

    {USB_DEVICE(USB_SKEL_VENDOR_ID,USB_SKEL_PRODUCT_ID)};

    在USB驅(qū)動(dòng)中調(diào)用usb_deregister()函數(shù)注銷usb-skel設(shè)備驅(qū)動(dòng),函數(shù)定義如下:

    static void_exit usb_skel_exit(void)

    usb_deregister(&skel_driver); //注銷 USB設(shè)備};

    1.3.3 初始化設(shè)備

    從skel_driver結(jié)構(gòu)可以知道usb-skel設(shè)備的初始化函數(shù)是skel_probe()函數(shù),設(shè)備初始化主要是探測(cè)設(shè)備類型,分配USB設(shè)備用到的urb資源[5],注冊(cè)USB設(shè)備操作函數(shù)等。skel_class結(jié)構(gòu)變量記錄了usb-skel設(shè)備信息,定義如下:

    static struct usb_class_driver skel_class={

    .name= “skel%d”, //設(shè)備名稱

    .fops= &skel_fops,//設(shè)備操作函數(shù)

    .minor_base=USB_SKEL_MINOR_BASE,};

    name變量使用%d通配符表示一個(gè)整型變量,當(dāng)一個(gè)usb-skel類型的設(shè)備連接到USB總先后會(huì)2按照子設(shè)備編號(hào)自動(dòng)設(shè)置設(shè)備名稱。Fops設(shè)備操作函數(shù)結(jié)構(gòu)變量,定義如下:

    static struct file_operations skel_fops={

    .owener=THIS_MODULE,

    .read=skel_read, //讀操作

    .write=skel_write, //寫操作

    .open=skel_open, //打開操作

    .release=skel_release, //關(guān)閉操作};

    1.3.4 設(shè)備注銷

    skel_disconnect()函數(shù)在注銷設(shè)備時(shí)被調(diào)用,定義如下:static void skel_disconnect(struct usb_interface*interface){

    struct usb_skel*dev;

    int minor=interface->minor;

    lock_kernel(); //在操作之前加鎖

    dev=usb_get_intfdata(interface);//獲得USB設(shè)備接口描述

    usb_set_intfdata(interface,NULL); //設(shè)置USB設(shè)備接口描述無效

    usb_deregister_dev(interface,&skel_class);//注銷 USB設(shè)備操作描述

    unlock kernel(); //操作完畢解鎖

    kref_put(&dev->kref,skel_delete); //減小引用計(jì)數(shù)

    info(“USB Skeleton#%d now disconnected”,minor);};

    2 USB串口驅(qū)動(dòng)

    2.1 驅(qū)動(dòng)初始化函數(shù)

    usb_serial_init()函數(shù)是一個(gè)典型的USB設(shè)備驅(qū)動(dòng)初始化函數(shù),定義如下:

    static int_int usb_setial_init(viod){

    int i;

    int result;

    usb_tty_driver=alloc_tty_driver(SERIAL_TTY_MINORS);//申請(qǐng)tty設(shè)備驅(qū)動(dòng)描述

    if(!usb_tty_driver)

    return-ENOMEM;

    result=bus_reqister(&usb_serial_bus_type);//注冊(cè)總線

    if(result)

    {

    err(“Regist bus driver failed”);

    qoto exit_bus;

    }

    usb_tty_driver=>owener=THIS_MODULE;

    usb_tty_driver->driver_name= “usbserial”;//串口驅(qū)動(dòng)名稱

    usb_tty_driver->devfs_name= “usb/tts”;//設(shè)備文件系統(tǒng)存放路徑

    usb_tty_driver->name= “ttyUSB”; //串口設(shè)備名稱

    usb_tty_driver->major=SERIAL_TTY_MAJOR;//串口設(shè)備主設(shè)備號(hào)

    usb_tty_driver->minor_start=0;//串口設(shè)備從設(shè)備號(hào)起始ID

    usb_tty_driver->type= TTY_DRIVER_TYPE_SERIAL;//設(shè)備類型

    usb_tty_driver->subtype = SERIAL_TYPE_NORAML;//設(shè)備子類型

    usb_tty_driver->flags=TTY_DREVER_REAL_RAW |TTY_DRIVER_NO_DEVFS;//設(shè)備初始化標(biāo)志

    usb_tty_driver->init_terminos=tty_stb_termios;//串口設(shè)備描述

    usb_tty_driver->init_termios.c_cflag =B9600 |CSB |CREAD|HUPCL|CLOCAL;//串口設(shè)備初始化參數(shù)

    tty_set_operations(usb_tty_driver,&serial_ops); //串口設(shè)備操作函數(shù)

    result=tty_register_driver(usb_tty_driver);//注冊(cè)串口驅(qū)動(dòng)

    if(result)

    {

    err(“Regist tty driver failed”);

    goto exit_reg_driver;

    }

    result=usb_register(&usb_serial_driver);//注冊(cè)USB驅(qū)動(dòng)

    if(result<0)

    {

    err(“Register driver failed”);

    goto exit_tty;

    }return result;exit_generic:

    usb_deregister(&usb_serial_driver);//注銷串口設(shè)備exit_tty:

    tty_unregister_driver(usb_tty_driver);//注銷USB串口設(shè)備exit_reg_driver:

    bus_unregister(&usb_serial_bus_type);//注銷總線exit_bus:

    err(“Error Code:%d”,result);put_tty_driver(usb_tty_driver);return result;

    }

    函數(shù)首先調(diào)用alloc_tty_driver()函數(shù)分配一個(gè)串口驅(qū)動(dòng)描述符;然后設(shè)置串口驅(qū)動(dòng)的屬性,包括驅(qū)動(dòng)的主從設(shè)備號(hào)、設(shè)備類型、串口初始化參數(shù)等;串口驅(qū)動(dòng)描述符設(shè)置完畢后,調(diào)用usb_register()函數(shù)注冊(cè)USB串口設(shè)備。

    2.2 驅(qū)動(dòng)釋放函數(shù)

    static void__exit usb_serial_exit(void){

    usb_serial_console_exit();

    usb_serial_generic_deregister();

    usb_deregister(&usb_serial_driver);//注銷 USB 設(shè)備驅(qū)動(dòng)

    tty_unregister_driver(usb_tty_driver);//注銷串口設(shè)備

    put_tty_driver(usb_tty_driver);//減少引用計(jì)數(shù)

    bus_unregister(&usb_serial_bus_type);//注銷總線}

    2.3 串口操作函數(shù)

    USB串口設(shè)備驅(qū)動(dòng)使用了一個(gè)tty_operations類型的結(jié)構(gòu),該結(jié)構(gòu)包含了串口的所有操作,定義如下:

    static sturct tty_operations serial_ops=

    {

    .open=serial_open, //打開串口

    .close=serial_close, //關(guān)閉串口

    .write=serial_write, //串口寫操作

    .write_room=serial_write_room,

    .ioctl=serial_ioctl, //I/O控制操作

    .set_termios=serial_set_termios, //設(shè)置串口參數(shù)

    .throttle=serial_throttle,

    .unthrottle=serial_unthrottle,

    .break_ctl=serial_break, //break信號(hào)處理

    .chars_in_buffer=serial_chars_in_buffer, //緩沖處理

    .read_pros=serial_read_proc, //串口讀操作

    .tiocmget=serial_tiocmget, //獲取I/O控制參數(shù)

    .tiocmset=serial_tiocmset, //設(shè)置I/O控制參數(shù)};

    按上述的步驟和方法通過Insmod命令成功實(shí)現(xiàn)了USB驅(qū)動(dòng)程序的加載[4],成功的通過USB串口進(jìn)行了數(shù)據(jù)的讀寫。

    3 結(jié)論

    新出的Linux2.6[6]內(nèi)核加入了對(duì)USB2.0[7]的支持,重新定義了usb_class_driver結(jié)構(gòu)體。同時(shí)對(duì)探測(cè)函數(shù)probe和usb_submit_urb做了修改,包含了advanced linux sound Archiecture可以更安全的使用USB設(shè)備。

    [1]弓雷.arm嵌入式linux系統(tǒng)開發(fā)詳解[M].北京:清華大學(xué)出版社,2010.

    [2]Corbet J,Rubini A,Kroah-Hartma.G.Linux 設(shè)備驅(qū)動(dòng)程序[M].魏永明,耿岳,鐘書毅,譯.北京:中國(guó)電力出版社,2006.

    [3]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電大學(xué)出版社,2008.

    [4]楊水清.ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

    [5]季春志.基于Linux平臺(tái)USB視頻設(shè)備驅(qū)動(dòng)技術(shù)的研究與實(shí)現(xiàn)[D].合肥:合肥工業(yè)大學(xué),2009.

    [6]博韋,西斯特.深入分析Linux內(nèi)核[M].陳莉君,張瓊聲,張宏偉,譯.北京:中國(guó)電力,2009.

    [7]熊玉朋,陳興欣,龐俊銳.一種新型移動(dòng)保密存儲(chǔ)設(shè)備[J].現(xiàn)代電子技術(shù),2010(5):89-91.XIONG Yu-peng,CHEN Xing-xin,PANG Jun-rui.New Removable Privacy Storage Equipment[J].Modern Electronics Technique,2010(5):89-91.

    猜你喜歡
    描述符驅(qū)動(dòng)程序端點(diǎn)
    非特征端點(diǎn)條件下PM函數(shù)的迭代根
    基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
    不等式求解過程中端點(diǎn)的確定
    Linux單線程并發(fā)服務(wù)器探索
    參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點(diǎn)估計(jì)
    利用CNN的無人機(jī)遙感影像特征描述符學(xué)習(xí)
    基丁能雖匹配延拓法LMD端點(diǎn)效應(yīng)處理
    基于PDIUSBD12的USB接口設(shè)計(jì)應(yīng)用研究
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    天天影视国产精品| 三级国产精品片| 我的亚洲天堂| 丰满乱子伦码专区| 日韩大片免费观看网站| 亚洲成国产人片在线观看| 日本午夜av视频| 只有这里有精品99| 波野结衣二区三区在线| 久久久亚洲精品成人影院| 久久久亚洲精品成人影院| av网站免费在线观看视频| 久久久久国产网址| 精品人妻在线不人妻| 欧美日韩亚洲高清精品| 亚洲少妇的诱惑av| 精品人妻一区二区三区麻豆| av在线老鸭窝| 午夜福利视频在线观看免费| 国产日韩欧美在线精品| 精品一品国产午夜福利视频| 蜜桃在线观看..| 十八禁网站网址无遮挡| 国产白丝娇喘喷水9色精品| 女人久久www免费人成看片| 久久国产精品大桥未久av| 国产精品麻豆人妻色哟哟久久| av又黄又爽大尺度在线免费看| 最近中文字幕2019免费版| 高清视频免费观看一区二区| 不卡视频在线观看欧美| 久久久久精品人妻al黑| 青春草视频在线免费观看| 日韩制服丝袜自拍偷拍| 日韩中文字幕欧美一区二区 | 三级国产精品片| 亚洲国产色片| 国产精品嫩草影院av在线观看| 国产精品久久久久久精品电影小说| 午夜福利视频精品| 毛片一级片免费看久久久久| 久久精品国产综合久久久| 亚洲国产欧美网| 综合色丁香网| 久久午夜综合久久蜜桃| 伦理电影免费视频| 国产精品一区二区在线不卡| 丝袜人妻中文字幕| 久热久热在线精品观看| 一本大道久久a久久精品| 欧美日韩成人在线一区二区| 免费少妇av软件| 欧美人与性动交α欧美软件| av一本久久久久| 国产精品免费大片| 制服诱惑二区| 亚洲欧洲国产日韩| 可以免费在线观看a视频的电影网站 | 成年女人在线观看亚洲视频| 欧美激情极品国产一区二区三区| 伊人亚洲综合成人网| 精品国产露脸久久av麻豆| 免费观看在线日韩| 纵有疾风起免费观看全集完整版| 亚洲精品美女久久av网站| 久久久a久久爽久久v久久| 美女国产高潮福利片在线看| 久久久久久伊人网av| 一级片免费观看大全| 女人久久www免费人成看片| 男人添女人高潮全过程视频| 超碰97精品在线观看| 亚洲欧美一区二区三区国产| 国语对白做爰xxxⅹ性视频网站| 亚洲色图综合在线观看| 成年人午夜在线观看视频| 亚洲国产成人一精品久久久| 午夜福利一区二区在线看| 成人午夜精彩视频在线观看| 午夜福利一区二区在线看| 久久久久精品人妻al黑| 午夜福利网站1000一区二区三区| 欧美bdsm另类| 高清av免费在线| 国产成人av激情在线播放| 啦啦啦视频在线资源免费观看| 亚洲四区av| av免费在线看不卡| 电影成人av| 大香蕉久久成人网| 一级,二级,三级黄色视频| 99精国产麻豆久久婷婷| 美女高潮到喷水免费观看| 亚洲国产日韩一区二区| 激情视频va一区二区三区| 久久韩国三级中文字幕| 国产男人的电影天堂91| 丝袜人妻中文字幕| 亚洲在久久综合| www.自偷自拍.com| 水蜜桃什么品种好| xxxhd国产人妻xxx| 欧美日韩亚洲国产一区二区在线观看 | 中国三级夫妇交换| 亚洲综合色惰| 国产男人的电影天堂91| 极品人妻少妇av视频| 街头女战士在线观看网站| 最近最新中文字幕大全免费视频 | 美女主播在线视频| 狠狠婷婷综合久久久久久88av| 五月开心婷婷网| 免费少妇av软件| 人妻系列 视频| 久久国产亚洲av麻豆专区| 搡老乐熟女国产| 高清av免费在线| 亚洲av男天堂| 国产精品一国产av| 亚洲国产av新网站| 色哟哟·www| 久久影院123| 91精品伊人久久大香线蕉| 一本—道久久a久久精品蜜桃钙片| 精品国产一区二区久久| 精品国产一区二区久久| 日产精品乱码卡一卡2卡三| 寂寞人妻少妇视频99o| 大话2 男鬼变身卡| 2022亚洲国产成人精品| 国产成人91sexporn| 亚洲av福利一区| 久久国产亚洲av麻豆专区| 一级a爱视频在线免费观看| 黄色 视频免费看| 日韩电影二区| 欧美激情极品国产一区二区三区| 成人毛片a级毛片在线播放| 少妇被粗大猛烈的视频| 视频区图区小说| 免费不卡的大黄色大毛片视频在线观看| 欧美少妇被猛烈插入视频| 日韩欧美精品免费久久| 国产乱来视频区| 国产日韩欧美亚洲二区| 精品酒店卫生间| 这个男人来自地球电影免费观看 | 久久久国产精品麻豆| 精品国产乱码久久久久久男人| 亚洲人成电影观看| 各种免费的搞黄视频| 亚洲精品久久午夜乱码| 国产精品久久久久久精品电影小说| 飞空精品影院首页| 18+在线观看网站| 欧美xxⅹ黑人| 免费播放大片免费观看视频在线观看| 免费av中文字幕在线| 一区二区三区乱码不卡18| 18禁观看日本| 亚洲,欧美,日韩| 中文天堂在线官网| 日韩不卡一区二区三区视频在线| 黄片播放在线免费| 亚洲精品第二区| 日韩精品免费视频一区二区三区| 亚洲av电影在线进入| 视频在线观看一区二区三区| 一本—道久久a久久精品蜜桃钙片| 美女福利国产在线| 在线免费观看不下载黄p国产| 亚洲欧美色中文字幕在线| 女人久久www免费人成看片| 久久精品亚洲av国产电影网| 大片电影免费在线观看免费| 黄色毛片三级朝国网站| 国产精品久久久久久精品古装| 巨乳人妻的诱惑在线观看| 国产成人精品福利久久| 国产精品 国内视频| 日韩中文字幕视频在线看片| 啦啦啦在线免费观看视频4| 九色亚洲精品在线播放| 亚洲三级黄色毛片| 久久精品人人爽人人爽视色| 26uuu在线亚洲综合色| 2022亚洲国产成人精品| 美女主播在线视频| 久久人人爽av亚洲精品天堂| 一级a爱视频在线免费观看| 亚洲国产精品国产精品| 日韩熟女老妇一区二区性免费视频| 国产精品一国产av| av一本久久久久| 色婷婷久久久亚洲欧美| 国产色婷婷99| 亚洲av电影在线进入| 永久免费av网站大全| 免费大片黄手机在线观看| 美女脱内裤让男人舔精品视频| 久久精品国产亚洲av高清一级| 1024视频免费在线观看| 国产麻豆69| 一边亲一边摸免费视频| 青青草视频在线视频观看| 欧美日韩国产mv在线观看视频| 男人爽女人下面视频在线观看| 亚洲精品在线美女| 丝袜喷水一区| 中文字幕人妻丝袜一区二区 | 欧美+日韩+精品| 亚洲成人av在线免费| 亚洲精品自拍成人| 99香蕉大伊视频| 中文精品一卡2卡3卡4更新| 国产成人av激情在线播放| 高清欧美精品videossex| 99热全是精品| 飞空精品影院首页| 午夜影院在线不卡| 亚洲成av片中文字幕在线观看 | 成人手机av| 亚洲欧洲日产国产| 国产日韩欧美视频二区| 亚洲国产精品999| 亚洲美女黄色视频免费看| 777米奇影视久久| 亚洲视频免费观看视频| 老汉色av国产亚洲站长工具| 黄片无遮挡物在线观看| 又大又黄又爽视频免费| 亚洲国产最新在线播放| 国产免费又黄又爽又色| 天天躁夜夜躁狠狠久久av| 国产精品一区二区在线不卡| 一本大道久久a久久精品| 赤兔流量卡办理| 欧美日韩一级在线毛片| 老司机亚洲免费影院| 亚洲,欧美,日韩| 国产97色在线日韩免费| 亚洲国产色片| 久久av网站| 日本vs欧美在线观看视频| 亚洲欧美一区二区三区国产| 亚洲精品美女久久久久99蜜臀 | www.自偷自拍.com| av有码第一页| 国产麻豆69| 免费在线观看视频国产中文字幕亚洲 | 国产精品熟女久久久久浪| 午夜福利一区二区在线看| 久久久久精品久久久久真实原创| 成年人午夜在线观看视频| 在线观看免费视频网站a站| 国产精品国产三级专区第一集| 亚洲精品av麻豆狂野| 国产亚洲av片在线观看秒播厂| 成人毛片a级毛片在线播放| 国产成人精品婷婷| 久久久久网色| 高清视频免费观看一区二区| 少妇人妻久久综合中文| 9191精品国产免费久久| 国产精品香港三级国产av潘金莲 | 狂野欧美激情性bbbbbb| www.av在线官网国产| 国产一区二区在线观看av| 人妻人人澡人人爽人人| tube8黄色片| 亚洲av欧美aⅴ国产| 欧美另类一区| 秋霞在线观看毛片| 国产一区二区三区综合在线观看| 久久久精品国产亚洲av高清涩受| 秋霞在线观看毛片| 成人免费观看视频高清| 亚洲综合色惰| 国产精品99久久99久久久不卡 | 女人久久www免费人成看片| 最黄视频免费看| 亚洲精品国产av成人精品| 在线观看免费视频网站a站| 波多野结衣一区麻豆| 亚洲欧美一区二区三区久久| 午夜影院在线不卡| 亚洲av日韩在线播放| 99久久中文字幕三级久久日本| 狂野欧美激情性bbbbbb| 欧美人与善性xxx| 国产精品成人在线| 午夜福利影视在线免费观看| 精品亚洲成a人片在线观看| 高清视频免费观看一区二区| 中文字幕人妻熟女乱码| 亚洲精品久久久久久婷婷小说| 亚洲精品乱久久久久久| 一级毛片我不卡| 成年av动漫网址| 亚洲精品美女久久av网站| 男的添女的下面高潮视频| 精品第一国产精品| 激情视频va一区二区三区| 久久av网站| 亚洲av成人精品一二三区| 老司机亚洲免费影院| 老鸭窝网址在线观看| 久久ye,这里只有精品| 中文字幕亚洲精品专区| 欧美日韩综合久久久久久| 另类亚洲欧美激情| 男女免费视频国产| 亚洲av.av天堂| 一二三四中文在线观看免费高清| 一边摸一边做爽爽视频免费| 男女无遮挡免费网站观看| 国产免费福利视频在线观看| 777米奇影视久久| av不卡在线播放| videos熟女内射| 最近中文字幕2019免费版| 日韩不卡一区二区三区视频在线| 在线观看美女被高潮喷水网站| 亚洲精品成人av观看孕妇| 日韩电影二区| 狠狠婷婷综合久久久久久88av| 国产精品亚洲av一区麻豆 | 人人妻人人澡人人看| 亚洲四区av| 80岁老熟妇乱子伦牲交| 成人毛片60女人毛片免费| 女人精品久久久久毛片| av卡一久久| 欧美日韩亚洲高清精品| 久久精品国产亚洲av涩爱| 超色免费av| 中国国产av一级| 一二三四在线观看免费中文在| 美女午夜性视频免费| 香蕉丝袜av| 成人国语在线视频| 我要看黄色一级片免费的| 国产在线一区二区三区精| 五月开心婷婷网| 69精品国产乱码久久久| 久久久久久久精品精品| 热re99久久精品国产66热6| 18禁国产床啪视频网站| 国产精品 国内视频| 国产男女内射视频| 成年人午夜在线观看视频| 天天影视国产精品| 免费女性裸体啪啪无遮挡网站| 色吧在线观看| 日韩免费高清中文字幕av| 国产乱人偷精品视频| 亚洲成人av在线免费| 久久久久久伊人网av| 天天躁日日躁夜夜躁夜夜| 精品亚洲乱码少妇综合久久| 久久久国产精品麻豆| 视频区图区小说| 日韩欧美精品免费久久| 高清在线视频一区二区三区| 色94色欧美一区二区| 搡女人真爽免费视频火全软件| 亚洲,一卡二卡三卡| 国产精品久久久久久精品古装| 高清视频免费观看一区二区| 街头女战士在线观看网站| 黄片播放在线免费| 丝袜在线中文字幕| 九草在线视频观看| 26uuu在线亚洲综合色| 中文字幕av电影在线播放| 亚洲精品国产av蜜桃| 国产精品.久久久| 精品一区二区三区四区五区乱码 | 老汉色∧v一级毛片| 久久久久精品人妻al黑| 爱豆传媒免费全集在线观看| 美国免费a级毛片| 久久国产精品男人的天堂亚洲| 久久精品国产亚洲av高清一级| 黑人猛操日本美女一级片| 久久人人97超碰香蕉20202| 国产精品不卡视频一区二区| 91国产中文字幕| 伦理电影免费视频| 一区二区三区激情视频| 精品少妇黑人巨大在线播放| 男人操女人黄网站| 嫩草影院入口| 少妇精品久久久久久久| 满18在线观看网站| 欧美国产精品一级二级三级| 麻豆精品久久久久久蜜桃| 日本黄色日本黄色录像| 欧美bdsm另类| 日韩欧美精品免费久久| 一级爰片在线观看| av网站免费在线观看视频| 欧美精品av麻豆av| 成人二区视频| 久久久久久久久久久免费av| 性少妇av在线| 人妻少妇偷人精品九色| kizo精华| 亚洲色图 男人天堂 中文字幕| 国产成人a∨麻豆精品| 国产乱人偷精品视频| 亚洲欧美精品自产自拍| 亚洲精品国产一区二区精华液| 秋霞在线观看毛片| 99国产精品免费福利视频| 日韩伦理黄色片| 一本大道久久a久久精品| h视频一区二区三区| 成人手机av| 亚洲成人手机| 久久国产精品男人的天堂亚洲| 日韩av不卡免费在线播放| 人人澡人人妻人| 韩国精品一区二区三区| 亚洲第一区二区三区不卡| 制服人妻中文乱码| 999精品在线视频| 老司机影院毛片| 有码 亚洲区| 日韩中文字幕欧美一区二区 | 中文字幕最新亚洲高清| 亚洲精品在线美女| 黑丝袜美女国产一区| 亚洲精品国产色婷婷电影| 成人二区视频| 国产人伦9x9x在线观看 | 日本免费在线观看一区| 日韩中文字幕视频在线看片| 国产精品免费视频内射| 美女脱内裤让男人舔精品视频| 啦啦啦在线观看免费高清www| 激情视频va一区二区三区| www.av在线官网国产| 久久久久视频综合| 人妻系列 视频| 亚洲经典国产精华液单| 一边亲一边摸免费视频| 婷婷色av中文字幕| 精品国产露脸久久av麻豆| 国产人伦9x9x在线观看 | 国产精品偷伦视频观看了| 大片免费播放器 马上看| 精品一区二区三卡| 国产精品一国产av| 夜夜骑夜夜射夜夜干| 国产伦理片在线播放av一区| 精品久久蜜臀av无| 啦啦啦啦在线视频资源| 国产熟女欧美一区二区| av一本久久久久| 久久人人97超碰香蕉20202| 大话2 男鬼变身卡| 国产成人av激情在线播放| 99热网站在线观看| 亚洲国产色片| 老汉色av国产亚洲站长工具| 18禁裸乳无遮挡动漫免费视频| 国产精品国产三级国产专区5o| 狠狠婷婷综合久久久久久88av| 成人漫画全彩无遮挡| 黄片小视频在线播放| 亚洲精品国产色婷婷电影| 国产在线一区二区三区精| 日韩一本色道免费dvd| 一二三四中文在线观看免费高清| 日韩视频在线欧美| 亚洲av福利一区| 国产日韩欧美在线精品| 成人手机av| 超碰成人久久| 久久久久精品人妻al黑| 欧美日韩亚洲国产一区二区在线观看 | 高清黄色对白视频在线免费看| 91精品国产国语对白视频| 成年动漫av网址| 一级毛片 在线播放| 999久久久国产精品视频| 丝袜人妻中文字幕| av电影中文网址| 精品亚洲成a人片在线观看| 在线观看免费日韩欧美大片| 五月天丁香电影| 国产欧美亚洲国产| 国产激情久久老熟女| 伊人久久大香线蕉亚洲五| 亚洲激情五月婷婷啪啪| 免费观看性生交大片5| 少妇被粗大的猛进出69影院| 少妇人妻久久综合中文| 免费看av在线观看网站| 在线看a的网站| 美女福利国产在线| 午夜福利一区二区在线看| 各种免费的搞黄视频| 晚上一个人看的免费电影| 美女大奶头黄色视频| 久久午夜福利片| 考比视频在线观看| av免费在线看不卡| 三上悠亚av全集在线观看| av在线观看视频网站免费| 亚洲国产精品成人久久小说| 国产精品av久久久久免费| 丰满少妇做爰视频| 最近的中文字幕免费完整| 成人免费观看视频高清| 日韩不卡一区二区三区视频在线| 丰满迷人的少妇在线观看| 男人添女人高潮全过程视频| 欧美日韩成人在线一区二区| 国产一区二区 视频在线| 国产又爽黄色视频| 欧美bdsm另类| 亚洲成人手机| kizo精华| 又粗又硬又长又爽又黄的视频| 欧美 日韩 精品 国产| 亚洲精品日韩在线中文字幕| 欧美国产精品va在线观看不卡| 亚洲中文av在线| 国产免费视频播放在线视频| 国产伦理片在线播放av一区| 日本猛色少妇xxxxx猛交久久| 涩涩av久久男人的天堂| 26uuu在线亚洲综合色| 激情视频va一区二区三区| 亚洲一区二区三区欧美精品| 亚洲精品国产av成人精品| 亚洲人成77777在线视频| 天美传媒精品一区二区| av视频免费观看在线观看| 久久久国产一区二区| 十八禁高潮呻吟视频| 日韩制服骚丝袜av| 欧美 日韩 精品 国产| 在线观看免费日韩欧美大片| 狂野欧美激情性bbbbbb| 在线看a的网站| 春色校园在线视频观看| 欧美xxⅹ黑人| 天天躁日日躁夜夜躁夜夜| 欧美激情极品国产一区二区三区| 青春草亚洲视频在线观看| 80岁老熟妇乱子伦牲交| 大片电影免费在线观看免费| 国产一区有黄有色的免费视频| 一本—道久久a久久精品蜜桃钙片| 九九爱精品视频在线观看| 亚洲精品,欧美精品| 久久精品夜色国产| 在线看a的网站| 女性被躁到高潮视频| 国产av精品麻豆| 国产1区2区3区精品| 在线天堂中文资源库| 天美传媒精品一区二区| 深夜精品福利| 中国国产av一级| 熟女av电影| av天堂久久9| 久久精品国产亚洲av涩爱| 久久热在线av| 考比视频在线观看| 亚洲欧洲日产国产| 国产精品香港三级国产av潘金莲 | 尾随美女入室| 久久久久人妻精品一区果冻| 人妻 亚洲 视频| www.精华液| 精品一品国产午夜福利视频| 欧美日韩亚洲国产一区二区在线观看 | 搡女人真爽免费视频火全软件| 晚上一个人看的免费电影| 日韩精品有码人妻一区| 飞空精品影院首页| 五月伊人婷婷丁香| 欧美日韩亚洲高清精品| 精品国产乱码久久久久久小说| 纯流量卡能插随身wifi吗| av免费在线看不卡| 久久婷婷青草| 青青草视频在线视频观看| 国产av精品麻豆| 午夜91福利影院| 在线观看人妻少妇| 大码成人一级视频| 精品一品国产午夜福利视频| 啦啦啦视频在线资源免费观看| 男女下面插进去视频免费观看| 老汉色∧v一级毛片| 少妇的丰满在线观看| 宅男免费午夜| 精品卡一卡二卡四卡免费| 边亲边吃奶的免费视频| 一二三四在线观看免费中文在| 美女主播在线视频| 一级爰片在线观看| 观看美女的网站| 熟女电影av网| 侵犯人妻中文字幕一二三四区| 一区在线观看完整版| 国产一区有黄有色的免费视频| 久久综合国产亚洲精品| 美女脱内裤让男人舔精品视频| 一边摸一边做爽爽视频免费|