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

    嵌入式Linux的時(shí)鐘語(yǔ)音芯片YF017驅(qū)動(dòng)設(shè)計(jì)※

    2016-01-26 08:18:20王吉豪崔建明
    關(guān)鍵詞:驅(qū)動(dòng)程序

    王吉豪,崔建明

    (山東科技大學(xué) 電子通信與物理學(xué)院,青島 266590)

    ?

    嵌入式Linux的時(shí)鐘語(yǔ)音芯片YF017驅(qū)動(dòng)設(shè)計(jì)※

    王吉豪,崔建明

    (山東科技大學(xué) 電子通信與物理學(xué)院,青島 266590)

    摘要:將低成本的時(shí)鐘語(yǔ)音芯片融入到嵌入式Linux系統(tǒng)中,不但可以豐富嵌入式設(shè)備的功能,而且可以降低開(kāi)發(fā)成本。本文以ARM架構(gòu)芯片S3C2440結(jié)合Linux2.6.22內(nèi)核作為實(shí)例,開(kāi)發(fā)出語(yǔ)音報(bào)時(shí)芯片YF017的驅(qū)動(dòng)程序,并寫(xiě)出該驅(qū)動(dòng)程序的上層應(yīng)用程序。測(cè)試結(jié)果表明,通過(guò)上層應(yīng)用程序可以準(zhǔn)確地調(diào)用驅(qū)動(dòng)程序,并使語(yǔ)音芯片發(fā)出相應(yīng)的語(yǔ)音。

    關(guān)鍵詞:嵌入式Linux;驅(qū)動(dòng)程序;S3C2440;時(shí)鐘語(yǔ)音芯片;YF017

    引言

    在嵌入式Linux系統(tǒng)中加入語(yǔ)音功能,傳統(tǒng)方式是采用聲卡芯片,但是對(duì)于僅需簡(jiǎn)單語(yǔ)音的場(chǎng)合,使用聲卡芯片作為發(fā)音設(shè)備在功能上顯得多余,在成本上也大大提高。

    YF017系列語(yǔ)音芯片是針對(duì)市場(chǎng)推出的一款具有PWM輸出的OTP語(yǔ)音標(biāo)準(zhǔn)芯片,共有3個(gè)I/O口,該芯片可以直接驅(qū)動(dòng)喇叭,無(wú)需再設(shè)計(jì)音頻放大電路,外圍最少僅需要一個(gè)0.1 μF電容就可以穩(wěn)定工作,把該芯片用到簡(jiǎn)單的語(yǔ)音場(chǎng)合可大大節(jié)約開(kāi)發(fā)時(shí)間,降低開(kāi)發(fā)成本。

    在嵌入式Linux系統(tǒng)中實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)音功能,YF017系列語(yǔ)音芯片成為首選之一。但是現(xiàn)成的Linux內(nèi)核中并沒(méi)有集成YF017系列語(yǔ)音芯片的驅(qū)動(dòng),因此,本文將著重實(shí)現(xiàn)YF017語(yǔ)音芯片的Linux驅(qū)動(dòng)程序,并實(shí)現(xiàn)上層應(yīng)用程序以驗(yàn)證驅(qū)動(dòng)程序的正確性。

    1YF017芯片介紹

    1.1芯片引腳介紹

    圖1 YF017芯片引腳圖

    YF017語(yǔ)音芯片有8個(gè)引腳,如圖1所示。其中:VDD、GND為電源引腳,工作電壓為2.2~6 V,適用范圍很寬。PWM1、PWM2為PWM輸出引腳,用于驅(qū)動(dòng)8~16 Ω范圍內(nèi)的任何喇叭(建議0.25~1 W)。Vreg為調(diào)節(jié)引腳,在外接電壓大于4.5 V時(shí),需要在Vreg和GND之間接0.1 μF電容,用于減少電源噪聲,外接電壓小于4.5 V時(shí)可不接電容。BSY、DAT、RST為數(shù)字I/O引腳,可以與控制芯片連接。

    BSY:芯片播放聲音時(shí)輸出低電平,待機(jī)時(shí)保持高電平。

    DAT:用于控制芯片內(nèi)播放指針,收到幾個(gè)上升沿脈沖,就播放第幾個(gè)地址的聲音內(nèi)容。

    RST:用于復(fù)位芯片內(nèi)播放指針,當(dāng)該引腳收到一個(gè)上升沿脈沖時(shí),可以使芯片的播放指針歸零,同時(shí),芯片進(jìn)入待機(jī)狀態(tài)。

    1.2芯片語(yǔ)音內(nèi)容

    主控芯片通過(guò)發(fā)送相應(yīng)數(shù)量的上升沿脈沖到DAT引腳,語(yǔ)音芯片可以播放相應(yīng)的聲音,脈沖數(shù)量與播放聲音的對(duì)應(yīng)關(guān)系如表1所列。

    表1 對(duì)應(yīng)關(guān)系

    1.3芯片控制時(shí)序

    主控芯片上電時(shí),需要先將語(yǔ)音芯片的DAT引腳和RST引腳分別置于低電平。如果需要播放第25段聲音,先將RST引腳拉高,過(guò)1 ms再拉低,使播放指針復(fù)位。接著連續(xù)發(fā)送25個(gè)上升沿脈沖到DATA引腳,芯片即可播放第25段的聲音。如果接下來(lái)需要播放第22段的聲音,主控芯片需要檢測(cè)語(yǔ)音芯片的BSY引腳是否為高電平,如果BSY為低電平,則表示語(yǔ)音芯片正忙,主控芯片需要等待,直到BSY引腳為高電平時(shí),可按照之前的步驟,先發(fā)送上升沿脈沖給RST,再發(fā)送22個(gè)上升沿脈沖給DAT引腳,這樣可播放語(yǔ)音芯片中的任意語(yǔ)音。RST和DAT脈沖寬度至少為0.2 ms,建議1 ms。

    2YF017驅(qū)動(dòng)程序設(shè)計(jì)

    2.1硬件原理圖

    將語(yǔ)音芯片接入主控芯片為S3C2440的嵌入式Linux的開(kāi)發(fā)板中,S3C2440芯片的GPIO引腳GPG5、GPG6、GPG7分別接語(yǔ)音芯片的RST、DAT、BSY引腳,如圖2所示。

    2.2驅(qū)動(dòng)程序設(shè)計(jì)

    2.2.1入口函數(shù)speak_init

    入口函數(shù)speak_init使用register_chrdev函數(shù)向內(nèi)核申請(qǐng)主設(shè)備號(hào),把設(shè)備的操作函數(shù)結(jié)構(gòu)體speak_ops向內(nèi)核注冊(cè),并使用class_create函數(shù)和class_device_create函數(shù)在Linux文件系統(tǒng)的/sys/目錄下生成設(shè)備信息,調(diào)用mdev應(yīng)用程序。 mdev應(yīng)用程序根據(jù)/sys/目錄下生成的設(shè)備信息在/dev/目錄下創(chuàng)建設(shè)備節(jié)點(diǎn),該程序的設(shè)備節(jié)點(diǎn)為/dev/speak。

    2.2.2出口函數(shù)speak_exit

    圖2 硬件原理圖

    出口函數(shù)speak_exit使用unregister_chrdev函數(shù)釋放之前向內(nèi)核申請(qǐng)的主設(shè)備號(hào),并使用class_device_destroy函數(shù)和class_destroy函數(shù)把之前在文件系統(tǒng)/sys/目錄下生成的設(shè)備信息刪除,并調(diào)用mdev應(yīng)用程序。 mdev應(yīng)用程序根據(jù)/sys/目錄下設(shè)備信息的變動(dòng),將/dev/目錄下創(chuàng)建的設(shè)備節(jié)點(diǎn)speak刪除。

    2.2.3底層操作函數(shù)

    把設(shè)備的底層操作函數(shù)都指向操作函數(shù)結(jié)構(gòu)體speak_ops,以便使用register_chrdev函數(shù)向內(nèi)核注冊(cè)。speak_ops結(jié)構(gòu)體定義如下:

    static struct file_operations speak_ops = {

    .owner = THIS_MODULE,

    .open = speak_open,

    .read = speak_read,

    .write = speak_write,

    };

    (1) speak_open函數(shù)

    該函數(shù)用于配置S3C3440的GPIO引腳,將GPG5、GPG6用作輸出,GPG7用作輸入,并將GPG5、GPG6初始化為低電平。當(dāng)上層應(yīng)用程序調(diào)用open(“/dev/speak”)函數(shù)時(shí),將調(diào)用到speak_open函數(shù)。實(shí)現(xiàn)程序代碼如下:

    #define GPIO_RESETS3C2410_GPG5

    #define GPIO_DATA S3C2410_GPG6

    #define GPIO_BUSY S3C2410_GPG7

    static int speak_open(struct inode *inode, struct file *file){

    /* 1. 將GPG5、GPG6用作輸出,GPG7用作輸入*/

    s3c2410_gpio_cfgpin(GPIO_RESET, S3C2410_GPIO_OUTPUT);

    s3c2410_gpio_cfgpin(GPIO_DATA, S3C2410_GPIO_OUTPUT);

    s3c2410_gpio_cfgpin(GPIO_BUSY, S3C2410_GPIO_INPUT);

    /* 2.將GPG5、GPG6初始化為低電平 */

    s3c2410_gpio_setpin(GPIO_RESET, 0);

    s3c2410_gpio_setpin(GPIO_DATA, 0);

    return 0;

    }

    (2) speak_read函數(shù)

    該函數(shù)用于讀取語(yǔ)音芯片的BSY引腳并返回1字節(jié)狀態(tài),返回1代表BSY引腳為高電平,返回0代表BSY引腳為低電平。當(dāng)上層應(yīng)用程序調(diào)用read()函數(shù)時(shí)將調(diào)用到speak_read函數(shù)。實(shí)現(xiàn)代碼如下:

    ssize_t speak_read (struct file *file, char __user *buf, size_t len, loff_t *pos){

    unsigned char val;

    /* 1.讀取BSY引腳的狀態(tài) */

    val = (s3c2410_gpio_getpin(GPIO_BUSY)) ?1:0;

    /* 2.將BSY的狀態(tài)從內(nèi)核空間復(fù)制到用戶空間 */

    if(copy_to_user(buf, &val, 1)){

    return -EFAULT;

    }

    return 1;

    }

    (3) speak_write函數(shù)

    該函數(shù)把用戶空間發(fā)過(guò)來(lái)的語(yǔ)音地址指針序號(hào)轉(zhuǎn)化為控制語(yǔ)音芯片的脈沖。當(dāng)上層應(yīng)用程序調(diào)用write()函數(shù)時(shí)將調(diào)用到speak_write函數(shù)。實(shí)現(xiàn)代碼如下:

    static ssize_t speak_write (struct file *file, const char __user *buf, size_t len, loff_t *pos){

    int i;

    unsigned char val;

    /* 1. 把用戶數(shù)據(jù)從用戶空間復(fù)制到內(nèi)核空間 */

    if(copy_from_user(&val, buf, 1)){

    return -EFAULT;

    }

    /* 2.判斷語(yǔ)音地址指針是否越界,越界返回錯(cuò)誤*/

    if (val > 32){

    printk(KERN_NOTICE VERSION"out of band ! ");

    printk(KERN_NOTICE VERSION"val = %d ", val);

    return -ENXIO;

    }

    /*3.根據(jù)時(shí)序要求,先發(fā)復(fù)位脈沖信號(hào)到語(yǔ)音芯片 */

    s3c2410_gpio_setpin(GPIO_RESET, 1);

    udelay(1000);

    s3c2410_gpio_setpin(GPIO_RESET, 0);

    /* 4.根據(jù)用戶傳過(guò)來(lái)的數(shù)據(jù)設(shè)置語(yǔ)音地址指針,讓語(yǔ)音芯片發(fā)出相應(yīng)聲音 */

    for (i = 0; i < val; i++){

    s3c2410_gpio_setpin(GPIO_DATA, 1);

    udelay(1000);

    s3c2410_gpio_setpin(GPIO_DATA, 0);

    udelay(1000);

    }

    return 0;

    }

    2.3驅(qū)動(dòng)程序編譯

    寫(xiě)Makefile并在程序所在的目錄執(zhí)行make命令,將編譯生成drv_speak.ko文件。

    Makefile內(nèi)容如下:

    #用于指定內(nèi)核源碼目錄

    KERN_DIR = /work/system/Linux-2.6.22.6

    all:

    make-C $(KERN_DIR) M=`pwd` modules

    clean:

    make-C $(KERN_DIR) M=`pwd` modules clean

    rm-rf Module.symvers

    #指定驅(qū)動(dòng)源程序文件

    obj-m += drv_speak.o

    2.4驅(qū)動(dòng)程序安裝與卸載

    將編譯生成的drv_speak.ko文件,復(fù)制到嵌入式Linux文件系統(tǒng)中,執(zhí)行命令insmod drv_speak.ko將把該驅(qū)動(dòng)模塊加載到內(nèi)核中。通過(guò)rmmod drv_speak命令可將驅(qū)動(dòng)卸載,insmod和rmmod命令的執(zhí)行將分別調(diào)用驅(qū)動(dòng)中的speak_init 和speak_exit函數(shù)。

    可以通過(guò)命令 cat /proc/devices 查看speak設(shè)備的存在,也可以在/dev/目錄下查看speak設(shè)備節(jié)點(diǎn),在/sys/目錄下查看生成的設(shè)備信息。

    3YF017應(yīng)用程序設(shè)計(jì)

    3.1應(yīng)用程序設(shè)計(jì)

    應(yīng)用程序通過(guò)讀取本地時(shí)間并控制/dev/speak發(fā)出相應(yīng)的聲音來(lái)驗(yàn)證驅(qū)動(dòng)程序的正確性。

    3.1.1主函數(shù)main

    int main(int argc, char* argv[]){

    int fd;

    time_t t;

    struct tm* time_now;

    /* 1.打開(kāi)語(yǔ)音報(bào)時(shí)設(shè)備 */

    fd = open("/dev/speak", O_RDWR);

    if (fd < 0){

    printf("can't open /dev/speak ");

    return -1;

    }

    /* 2.獲取時(shí)間 */

    time(&t);

    time_now = localtime(&t);

    /* 3.報(bào)時(shí) */

    speak_time(fd, time_now);

    return 0;

    }

    3.1.2報(bào)時(shí)函數(shù)speak_time

    void speak_time(int fd, struct tm* t){

    unsigned int month, day, week, hour, min;

    /*1. 獲取日期和時(shí)間 */

    month = t->tm_mon + 1;

    ……

    min = t->tm_min;

    /*2. 將報(bào)時(shí)分單字段 */

    speak_segment(fd, SPK_NUM_2, month);

    speak_segment(fd, SPK_MONTH, 0);

    speak_segment(fd, SPK_NUM_2, day);

    speak_segment(fd, SPK_DAY, 0);

    ……

    }

    3.1.3單字段報(bào)音函數(shù)speak_segment

    void speak_segment(int fd, unsigned int which, unsigned int val){

    unsigned char addr;

    /* 根據(jù)傳入的命令值which和val分別調(diào)用write_and_wait函數(shù) */

    switch (which){

    case SPK_MONTH:

    case SPK_DAY:

    ……

    case SPK_HOUR:

    case SPK_MIN:

    case SPK_TIDY:

    addr = which;

    write_and_wait(fd, &addr, 1);

    break;

    ……

    }

    }

    3.1.4寫(xiě)等待函數(shù)write_and_wait

    該函數(shù)將用戶傳來(lái)的指令寫(xiě)到/dev/speak設(shè)備中,并用睡眠方式等待/dev/speak設(shè)備空閑。程序?qū)崿F(xiàn)代碼如下:

    void write_and_wait(int fd, void* buf, int cnt){

    unsigned char busy;

    write(fd, buf, cnt);

    do {

    read(fd, &busy, 1);

    usleep(1000);

    }while(!busy);

    }

    3.2應(yīng)用程序編譯

    使用交叉編譯工具編譯,執(zhí)行命令“arm-Linux-gcc-o app_speak app_speak.c”將生成app_speak可執(zhí)行文件。

    3.3應(yīng)用程序運(yùn)行

    將可執(zhí)行文件app_speak復(fù)制到嵌入式Linux文件系統(tǒng)中,運(yùn)行前確保drv_speak.ko已經(jīng)安裝到內(nèi)核中。在app_speak所在目錄執(zhí)行./app_speak命令,將聽(tīng)到語(yǔ)音芯片發(fā)出報(bào)時(shí)聲音。語(yǔ)音報(bào)時(shí)時(shí)間和執(zhí)行date命令顯示的時(shí)間一致。

    結(jié)語(yǔ)

    通過(guò)編寫(xiě)對(duì)/dev/speak進(jìn)行控制的上層應(yīng)用程序并運(yùn)行,可以正確發(fā)出報(bào)時(shí)聲音,表明驅(qū)動(dòng)程序已成功加載進(jìn)內(nèi)核并能正常地工作。

    參考文獻(xiàn)

    [1] 宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2008.

    [2] 倪繼利.Linux內(nèi)核分析及編程[M].北京:電子工業(yè)出版社,2007.

    [3] 何永琪.嵌入式Linux系統(tǒng)實(shí)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2010.

    [4] 孫瓊.嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2006.

    王吉豪(研究生),研究方向?yàn)榍度胧较到y(tǒng)及應(yīng)用;崔建明(副教授),從事集成電路設(shè)計(jì)教學(xué)與研究。

    Voice Chip YF017 Driver Design Based on Linux※

    Wang Jihao,Cui Jianming

    (College of Electronic,Communication and Physics,Shandong University of Science and Technology,Qingdao 266590,China)

    Abstract:Taking the low cost voice chip into the embedded Linux system,it is not only can enrich the function of embedded system,but also can reduce the cost of development.This paper develops the voice chip YF107 driver and the upper application program,using ARM chip S3C2440 with Linux2.6.22 kernel as an example.The test results shows that the program can accurately call the driver through the upper application,and the voice chip can send out the corresponding voice.

    Key words:embedded Linux;driver;S3C2440;voice chip;YF017

    收稿日期:(責(zé)任編輯:楊迪娜2015-05-07)

    中圖分類號(hào):TP311

    文獻(xiàn)標(biāo)識(shí)碼:A

    猜你喜歡
    驅(qū)動(dòng)程序
    計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
    電子制作(2018年17期)2018-09-28 01:56:58
    基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動(dòng)程序設(shè)計(jì)
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    如何為老顯卡安裝Windows7驅(qū)動(dòng)程序? 等
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    體驗(yàn)VIA平臺(tái)超級(jí)加速路
    中文精品一卡2卡3卡4更新| 男女无遮挡免费网站观看| 亚洲精品美女久久av网站| 久久免费观看电影| 成人国产av品久久久| 在线观看三级黄色| 久久国产亚洲av麻豆专区| 性色av一级| 午夜福利乱码中文字幕| 亚洲精品aⅴ在线观看| 十分钟在线观看高清视频www| 亚洲精品av麻豆狂野| 亚洲精品成人av观看孕妇| 高清在线视频一区二区三区| 成人免费观看视频高清| 国产一区二区在线观看av| 亚洲 欧美一区二区三区| 建设人人有责人人尽责人人享有的| 巨乳人妻的诱惑在线观看| 久久久久久久久久人人人人人人| 免费播放大片免费观看视频在线观看| xxxhd国产人妻xxx| 久热久热在线精品观看| www.av在线官网国产| 国产精品一国产av| 黄色毛片三级朝国网站| 久久久久久久国产电影| videosex国产| 久久这里只有精品19| 久久97久久精品| 三级国产精品片| 少妇被粗大的猛进出69影院| 大香蕉久久成人网| 黄片播放在线免费| 如何舔出高潮| videosex国产| 国产精品国产三级专区第一集| 久久99一区二区三区| 日本免费在线观看一区| 国产精品.久久久| 欧美激情极品国产一区二区三区| 精品酒店卫生间| av不卡在线播放| 久久久久人妻精品一区果冻| 国产人伦9x9x在线观看 | 亚洲精品一区蜜桃| 国产精品久久久久久精品电影小说| 夜夜骑夜夜射夜夜干| 99久久精品国产国产毛片| 亚洲四区av| 一边摸一边做爽爽视频免费| 欧美亚洲日本最大视频资源| 久久精品熟女亚洲av麻豆精品| 免费观看在线日韩| 性少妇av在线| 咕卡用的链子| 男人添女人高潮全过程视频| 日韩人妻精品一区2区三区| 国产精品免费大片| 三级国产精品片| 赤兔流量卡办理| 日韩一本色道免费dvd| 一级片'在线观看视频| 在现免费观看毛片| 两个人免费观看高清视频| 久久久久久久久久久久大奶| 我的亚洲天堂| www.自偷自拍.com| 亚洲人成77777在线视频| 日韩不卡一区二区三区视频在线| 午夜老司机福利剧场| 亚洲国产精品国产精品| 久久人妻熟女aⅴ| 十分钟在线观看高清视频www| 最近手机中文字幕大全| 精品国产一区二区三区四区第35| 日韩一本色道免费dvd| 搡老乐熟女国产| 一级a爱视频在线免费观看| 日韩电影二区| 国产精品偷伦视频观看了| 久久久久人妻精品一区果冻| 欧美成人午夜精品| 国产在线视频一区二区| 波多野结衣一区麻豆| 亚洲精品久久午夜乱码| 女人高潮潮喷娇喘18禁视频| 人妻 亚洲 视频| 九九爱精品视频在线观看| 国产精品一二三区在线看| 天天躁夜夜躁狠狠躁躁| 国产日韩欧美在线精品| 精品人妻在线不人妻| 成年女人在线观看亚洲视频| 80岁老熟妇乱子伦牲交| 巨乳人妻的诱惑在线观看| 久热这里只有精品99| 夫妻性生交免费视频一级片| 亚洲一区二区三区欧美精品| 免费少妇av软件| 人妻系列 视频| 久久狼人影院| 制服丝袜香蕉在线| 少妇人妻久久综合中文| 黑人欧美特级aaaaaa片| 水蜜桃什么品种好| 乱人伦中国视频| 久久久精品免费免费高清| 精品少妇黑人巨大在线播放| 免费女性裸体啪啪无遮挡网站| 日本免费在线观看一区| 久久久久久久久久久久大奶| 青草久久国产| 美女主播在线视频| 视频在线观看一区二区三区| 亚洲精品,欧美精品| 两性夫妻黄色片| 亚洲天堂av无毛| 观看av在线不卡| 国产麻豆69| 亚洲国产精品一区三区| 老汉色∧v一级毛片| 人人妻人人爽人人添夜夜欢视频| 菩萨蛮人人尽说江南好唐韦庄| 亚洲国产最新在线播放| 欧美97在线视频| 男女啪啪激烈高潮av片| 中文字幕av电影在线播放| 久久人人97超碰香蕉20202| 99精国产麻豆久久婷婷| av一本久久久久| 97人妻天天添夜夜摸| 欧美老熟妇乱子伦牲交| 69精品国产乱码久久久| 老司机亚洲免费影院| 少妇被粗大的猛进出69影院| 最新中文字幕久久久久| 国产精品熟女久久久久浪| 人妻 亚洲 视频| 青草久久国产| 国产在视频线精品| 国产精品二区激情视频| 最黄视频免费看| 丝袜美足系列| 美女午夜性视频免费| 久久免费观看电影| 国产精品久久久久久av不卡| 国产精品香港三级国产av潘金莲 | 亚洲少妇的诱惑av| 久久久亚洲精品成人影院| 成人漫画全彩无遮挡| 女的被弄到高潮叫床怎么办| 亚洲一码二码三码区别大吗| 久久ye,这里只有精品| 丝袜在线中文字幕| 中文天堂在线官网| 男男h啪啪无遮挡| 国产免费又黄又爽又色| 一区二区三区精品91| 少妇猛男粗大的猛烈进出视频| 免费黄频网站在线观看国产| 青草久久国产| 久久久久网色| 国产成人精品福利久久| 97在线视频观看| 一边摸一边做爽爽视频免费| 午夜福利视频在线观看免费| 亚洲精品视频女| 看免费av毛片| 日韩精品免费视频一区二区三区| 国产精品成人在线| 欧美日韩亚洲国产一区二区在线观看 | 80岁老熟妇乱子伦牲交| 99精国产麻豆久久婷婷| 亚洲天堂av无毛| 我的亚洲天堂| 最近的中文字幕免费完整| 国产一级毛片在线| 亚洲国产精品国产精品| 十八禁网站网址无遮挡| 精品人妻偷拍中文字幕| 成年女人毛片免费观看观看9 | av天堂久久9| 精品第一国产精品| 久久午夜综合久久蜜桃| 一本大道久久a久久精品| 国产黄色视频一区二区在线观看| 少妇熟女欧美另类| 涩涩av久久男人的天堂| 久久久a久久爽久久v久久| 国产xxxxx性猛交| 人妻一区二区av| 国产成人精品在线电影| 美女大奶头黄色视频| 中文欧美无线码| 丰满乱子伦码专区| 精品国产国语对白av| 多毛熟女@视频| 久久这里只有精品19| 我的亚洲天堂| 欧美人与性动交α欧美软件| 国产一区亚洲一区在线观看| 国产成人精品久久久久久| 黄片无遮挡物在线观看| 国产亚洲午夜精品一区二区久久| 欧美日韩一区二区视频在线观看视频在线| 岛国毛片在线播放| 在线天堂最新版资源| 一级片免费观看大全| 精品国产乱码久久久久久小说| 国产成人精品婷婷| 国产精品女同一区二区软件| 亚洲精品国产av成人精品| 一级黄片播放器| 亚洲成人一二三区av| 国产精品麻豆人妻色哟哟久久| 人妻一区二区av| 国产av码专区亚洲av| 街头女战士在线观看网站| 免费久久久久久久精品成人欧美视频| av电影中文网址| 新久久久久国产一级毛片| 欧美精品一区二区大全| 在线观看美女被高潮喷水网站| 成年av动漫网址| 高清黄色对白视频在线免费看| 国产亚洲最大av| 久久久久久久大尺度免费视频| 日本免费在线观看一区| 日本爱情动作片www.在线观看| 高清在线视频一区二区三区| 91国产中文字幕| 国产成人a∨麻豆精品| 午夜免费观看性视频| freevideosex欧美| 2021少妇久久久久久久久久久| 久久毛片免费看一区二区三区| 哪个播放器可以免费观看大片| 国产在视频线精品| 在线精品无人区一区二区三| 色婷婷av一区二区三区视频| 国产亚洲一区二区精品| 国产成人精品久久久久久| 校园人妻丝袜中文字幕| 欧美在线黄色| 日韩中字成人| 国产黄色视频一区二区在线观看| 国产男女超爽视频在线观看| 制服人妻中文乱码| 国产精品麻豆人妻色哟哟久久| 亚洲精品,欧美精品| 午夜91福利影院| 秋霞伦理黄片| 十分钟在线观看高清视频www| 麻豆乱淫一区二区| 香蕉丝袜av| 黑人欧美特级aaaaaa片| 欧美97在线视频| 香蕉国产在线看| 99久久精品国产国产毛片| a级片在线免费高清观看视频| 色婷婷av一区二区三区视频| 性色av一级| 老司机影院毛片| 久久热在线av| 秋霞伦理黄片| 午夜激情久久久久久久| 日日啪夜夜爽| 国产国语露脸激情在线看| 最近2019中文字幕mv第一页| 人人妻人人澡人人爽人人夜夜| av天堂久久9| tube8黄色片| 日本色播在线视频| 一区二区三区激情视频| 精品人妻偷拍中文字幕| 中文乱码字字幕精品一区二区三区| 女性生殖器流出的白浆| 黄片播放在线免费| 尾随美女入室| √禁漫天堂资源中文www| 日日啪夜夜爽| 亚洲欧洲国产日韩| 在线亚洲精品国产二区图片欧美| 日韩av在线免费看完整版不卡| 丰满少妇做爰视频| 国产白丝娇喘喷水9色精品| 男女国产视频网站| 美女午夜性视频免费| 国产一区亚洲一区在线观看| 黄色 视频免费看| 一级片免费观看大全| 性色avwww在线观看| 精品少妇黑人巨大在线播放| 亚洲国产精品一区三区| 免费看不卡的av| 国产一区亚洲一区在线观看| 精品亚洲成a人片在线观看| 国产精品成人在线| 午夜91福利影院| 80岁老熟妇乱子伦牲交| 2018国产大陆天天弄谢| 国产一级毛片在线| 满18在线观看网站| 色婷婷久久久亚洲欧美| 你懂的网址亚洲精品在线观看| 日日爽夜夜爽网站| 欧美人与善性xxx| 91久久精品国产一区二区三区| 久久久国产欧美日韩av| 日日撸夜夜添| 欧美成人午夜免费资源| 欧美bdsm另类| 熟妇人妻不卡中文字幕| 日本午夜av视频| 九色亚洲精品在线播放| 满18在线观看网站| 在现免费观看毛片| 国产福利在线免费观看视频| 最近手机中文字幕大全| 免费女性裸体啪啪无遮挡网站| 午夜福利视频精品| av有码第一页| 亚洲 欧美一区二区三区| 一本一本久久a久久精品综合妖精 国产伦在线观看视频一区 | 国产成人免费无遮挡视频| 黄片小视频在线播放| 亚洲欧洲日产国产| 国产精品香港三级国产av潘金莲 | 精品国产乱码久久久久久小说| 一边摸一边做爽爽视频免费| 午夜日本视频在线| 在线免费观看不下载黄p国产| 亚洲欧美精品自产自拍| 欧美人与性动交α欧美软件| 欧美激情高清一区二区三区 | 久久久久久人妻| 国产精品偷伦视频观看了| 日韩 亚洲 欧美在线| 亚洲精品aⅴ在线观看| 最近手机中文字幕大全| 午夜福利在线观看免费完整高清在| 卡戴珊不雅视频在线播放| 国产探花极品一区二区| 免费观看性生交大片5| 国产成人午夜福利电影在线观看| www.熟女人妻精品国产| 久久婷婷青草| 久久久精品94久久精品| 一区二区日韩欧美中文字幕| 高清av免费在线| 国产又爽黄色视频| 日韩中文字幕视频在线看片| 国产日韩欧美在线精品| 亚洲av福利一区| 97在线人人人人妻| 少妇的丰满在线观看| 精品人妻一区二区三区麻豆| 18禁裸乳无遮挡动漫免费视频| 性色av一级| 天堂中文最新版在线下载| 有码 亚洲区| 精品国产超薄肉色丝袜足j| 大香蕉久久网| 亚洲伊人久久精品综合| 下体分泌物呈黄色| 亚洲成av片中文字幕在线观看 | 国产成人免费无遮挡视频| 亚洲欧美色中文字幕在线| 一区二区三区精品91| 午夜日韩欧美国产| 国产精品香港三级国产av潘金莲 | tube8黄色片| 欧美日韩成人在线一区二区| 午夜福利视频精品| 男女无遮挡免费网站观看| 日本av免费视频播放| 日韩免费高清中文字幕av| 日韩熟女老妇一区二区性免费视频| 亚洲 欧美一区二区三区| 精品人妻熟女毛片av久久网站| 久久综合国产亚洲精品| 在线精品无人区一区二区三| 久久青草综合色| 免费大片黄手机在线观看| 91在线精品国自产拍蜜月| 欧美+日韩+精品| 国产视频首页在线观看| 免费在线观看完整版高清| 人人澡人人妻人| 熟女av电影| 成人漫画全彩无遮挡| 欧美激情 高清一区二区三区| 久久久久人妻精品一区果冻| 国产探花极品一区二区| 校园人妻丝袜中文字幕| 久久精品人人爽人人爽视色| 午夜老司机福利剧场| 你懂的网址亚洲精品在线观看| 日韩欧美精品免费久久| 久久久久久久久久人人人人人人| 99久久精品国产国产毛片| 日本-黄色视频高清免费观看| 99久久精品国产国产毛片| 黄频高清免费视频| 久久久久精品性色| 1024视频免费在线观看| 亚洲欧美精品综合一区二区三区 | 大片免费播放器 马上看| 波野结衣二区三区在线| 美国免费a级毛片| 精品国产一区二区三区久久久樱花| 亚洲国产最新在线播放| 亚洲欧美一区二区三区黑人 | 天堂中文最新版在线下载| 国产成人a∨麻豆精品| 国产无遮挡羞羞视频在线观看| 亚洲欧美日韩另类电影网站| 亚洲,欧美精品.| 欧美精品一区二区免费开放| 午夜91福利影院| 赤兔流量卡办理| 少妇人妻久久综合中文| 亚洲欧美一区二区三区国产| 国产白丝娇喘喷水9色精品| 国产激情久久老熟女| 18禁观看日本| 天天操日日干夜夜撸| 男男h啪啪无遮挡| 国产成人午夜福利电影在线观看| 日韩精品有码人妻一区| 日韩一区二区三区影片| 国产日韩欧美在线精品| 人妻系列 视频| 满18在线观看网站| 看免费av毛片| 免费看不卡的av| 久久久精品免费免费高清| 精品人妻偷拍中文字幕| 嫩草影院入口| 青春草国产在线视频| 久久国产精品男人的天堂亚洲| 99热国产这里只有精品6| 国产日韩欧美视频二区| 日韩一本色道免费dvd| 亚洲精品日本国产第一区| 久久女婷五月综合色啪小说| 美女xxoo啪啪120秒动态图| 少妇精品久久久久久久| 国产 一区精品| 春色校园在线视频观看| 美女中出高潮动态图| kizo精华| av网站在线播放免费| 十八禁高潮呻吟视频| 国产欧美日韩综合在线一区二区| 激情视频va一区二区三区| 亚洲av电影在线进入| 日韩av不卡免费在线播放| 欧美最新免费一区二区三区| 少妇人妻 视频| 国产精品一二三区在线看| 国产成人精品无人区| 王馨瑶露胸无遮挡在线观看| 免费大片黄手机在线观看| 成人漫画全彩无遮挡| 热99久久久久精品小说推荐| 亚洲欧洲日产国产| 欧美变态另类bdsm刘玥| 国产精品三级大全| 一级毛片我不卡| 久久亚洲国产成人精品v| 一级毛片电影观看| 少妇精品久久久久久久| 国产一区二区在线观看av| 晚上一个人看的免费电影| 如日韩欧美国产精品一区二区三区| 99热全是精品| 男女啪啪激烈高潮av片| 中文乱码字字幕精品一区二区三区| www.av在线官网国产| 久久久久久伊人网av| 国产爽快片一区二区三区| 两性夫妻黄色片| 最近的中文字幕免费完整| 在线天堂最新版资源| 一本久久精品| 国产av精品麻豆| 精品久久久精品久久久| 亚洲欧美精品自产自拍| 国产精品熟女久久久久浪| 欧美精品一区二区大全| a 毛片基地| 麻豆av在线久日| 麻豆精品久久久久久蜜桃| 婷婷色麻豆天堂久久| 一级a爱视频在线免费观看| 电影成人av| 一级a爱视频在线免费观看| 亚洲av中文av极速乱| 亚洲欧美中文字幕日韩二区| 天天操日日干夜夜撸| 亚洲欧美中文字幕日韩二区| 久久久久久久久久久久大奶| 国产精品免费视频内射| av网站免费在线观看视频| 欧美 亚洲 国产 日韩一| 午夜福利,免费看| 国产麻豆69| 欧美精品亚洲一区二区| 欧美精品一区二区大全| 一本大道久久a久久精品| 亚洲中文av在线| 国产1区2区3区精品| 国产精品二区激情视频| 在线观看国产h片| 亚洲国产看品久久| 久久久久视频综合| 在线观看人妻少妇| 美女国产视频在线观看| 亚洲美女搞黄在线观看| 亚洲美女黄色视频免费看| 美女国产高潮福利片在线看| 99re6热这里在线精品视频| 成年女人毛片免费观看观看9 | 亚洲成色77777| 午夜久久久在线观看| 飞空精品影院首页| av.在线天堂| 黄片播放在线免费| 国产亚洲精品第一综合不卡| 麻豆av在线久日| 亚洲国产欧美网| 欧美成人午夜免费资源| 久久精品国产亚洲av高清一级| 久久久久人妻精品一区果冻| 女人高潮潮喷娇喘18禁视频| 2022亚洲国产成人精品| 久久精品国产综合久久久| 人妻 亚洲 视频| 国产一区二区在线观看av| 亚洲精品第二区| 欧美日韩综合久久久久久| 男女国产视频网站| 精品亚洲乱码少妇综合久久| 亚洲av国产av综合av卡| 午夜老司机福利剧场| 国产伦理片在线播放av一区| 日韩大片免费观看网站| 啦啦啦啦在线视频资源| 你懂的网址亚洲精品在线观看| 久久人人爽av亚洲精品天堂| 91成人精品电影| 亚洲熟女精品中文字幕| 日本欧美国产在线视频| 久久鲁丝午夜福利片| 亚洲欧洲日产国产| 久久精品国产鲁丝片午夜精品| 丝袜人妻中文字幕| 高清欧美精品videossex| www.av在线官网国产| 成人影院久久| 亚洲国产看品久久| 99热网站在线观看| 欧美日韩亚洲高清精品| 2022亚洲国产成人精品| 又黄又粗又硬又大视频| 亚洲精品美女久久久久99蜜臀 | 丝袜在线中文字幕| 一级片免费观看大全| 一区二区三区乱码不卡18| 高清视频免费观看一区二区| 国产亚洲欧美精品永久| 亚洲美女搞黄在线观看| av在线观看视频网站免费| 日本欧美国产在线视频| 亚洲中文av在线| 成人漫画全彩无遮挡| 美女中出高潮动态图| av片东京热男人的天堂| 超碰97精品在线观看| 天天躁夜夜躁狠狠久久av| 最近手机中文字幕大全| 国产在线免费精品| av天堂久久9| 日韩视频在线欧美| 国产成人91sexporn| 熟妇人妻不卡中文字幕| 国产精品无大码| 一二三四在线观看免费中文在| 高清黄色对白视频在线免费看| 亚洲国产欧美网| 黄色配什么色好看| 久久综合国产亚洲精品| 一区二区日韩欧美中文字幕| 国产精品亚洲av一区麻豆 | 九色亚洲精品在线播放| 国产有黄有色有爽视频| 午夜福利视频精品| 91久久精品国产一区二区三区| 日韩在线高清观看一区二区三区| 久久影院123| 成年人免费黄色播放视频| 卡戴珊不雅视频在线播放| 你懂的网址亚洲精品在线观看| 水蜜桃什么品种好| 欧美亚洲 丝袜 人妻 在线| 亚洲国产欧美日韩在线播放| 亚洲欧美成人综合另类久久久| 韩国av在线不卡| 亚洲第一区二区三区不卡| 九色亚洲精品在线播放| 香蕉国产在线看| 久久久久久久国产电影| 18禁裸乳无遮挡动漫免费视频|