• <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í)加速路
    波多野结衣一区麻豆| 中文字幕高清在线视频| 欧美亚洲日本最大视频资源| 人妻一区二区av| 日韩人妻精品一区2区三区| 国产区一区二久久| 精品卡一卡二卡四卡免费| 女同久久另类99精品国产91| 一区二区日韩欧美中文字幕| a级毛片在线看网站| 少妇的丰满在线观看| 中文字幕高清在线视频| 国产男靠女视频免费网站| 人妻一区二区av| 午夜福利在线观看吧| 99久久综合精品五月天人人| 一边摸一边抽搐一进一出视频| 色在线成人网| 国产亚洲精品久久久久5区| 午夜老司机福利片| 国产1区2区3区精品| 久久久久久免费高清国产稀缺| 精品一区二区三卡| 精品福利永久在线观看| 免费av中文字幕在线| 成年人午夜在线观看视频| 91成人精品电影| 午夜福利免费观看在线| 国产成人av教育| 亚洲 欧美一区二区三区| 成人特级黄色片久久久久久久| 日韩欧美一区视频在线观看| 欧美在线一区亚洲| 一区二区三区精品91| 亚洲综合色网址| 好看av亚洲va欧美ⅴa在| 三上悠亚av全集在线观看| 美女高潮喷水抽搐中文字幕| 交换朋友夫妻互换小说| 日本一区二区免费在线视频| a级毛片在线看网站| 亚洲专区国产一区二区| 999精品在线视频| 久久久精品免费免费高清| 女人久久www免费人成看片| 亚洲九九香蕉| 成人手机av| 大片电影免费在线观看免费| 人人澡人人妻人| 国产精品国产高清国产av | 午夜精品国产一区二区电影| 亚洲欧美色中文字幕在线| 国产91精品成人一区二区三区| 丁香欧美五月| 一本一本久久a久久精品综合妖精| 欧美黄色片欧美黄色片| 男女床上黄色一级片免费看| 他把我摸到了高潮在线观看| 啦啦啦 在线观看视频| 黄频高清免费视频| 成年人黄色毛片网站| 很黄的视频免费| 国产成人啪精品午夜网站| 人人妻人人添人人爽欧美一区卜| 天天躁日日躁夜夜躁夜夜| 亚洲欧美精品综合一区二区三区| 国产精品综合久久久久久久免费 | 日本一区二区免费在线视频| 成人影院久久| 动漫黄色视频在线观看| 欧美日韩瑟瑟在线播放| 亚洲精品乱久久久久久| 久久久久国产一级毛片高清牌| 精品欧美一区二区三区在线| 精品第一国产精品| 一级毛片高清免费大全| 欧美日韩av久久| 欧美 亚洲 国产 日韩一| 国产精品99久久99久久久不卡| 丝瓜视频免费看黄片| 亚洲美女黄片视频| 乱人伦中国视频| 他把我摸到了高潮在线观看| 日韩熟女老妇一区二区性免费视频| 成人亚洲精品一区在线观看| 亚洲一码二码三码区别大吗| 热re99久久国产66热| 在线国产一区二区在线| 99国产精品一区二区三区| 亚洲av成人不卡在线观看播放网| 国产蜜桃级精品一区二区三区 | 麻豆av在线久日| 99香蕉大伊视频| 精品国产一区二区久久| 久久久精品国产亚洲av高清涩受| 搡老乐熟女国产| 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲,欧美精品.| 日韩制服丝袜自拍偷拍| 久久香蕉精品热| 十八禁高潮呻吟视频| av有码第一页| 在线观看午夜福利视频| 欧美乱妇无乱码| 女人精品久久久久毛片| 在线av久久热| 校园春色视频在线观看| 最近最新中文字幕大全电影3 | xxx96com| 又黄又爽又免费观看的视频| 亚洲 国产 在线| 另类亚洲欧美激情| 久久中文字幕一级| 男人操女人黄网站| 黄色丝袜av网址大全| 搡老熟女国产l中国老女人| 极品少妇高潮喷水抽搐| 亚洲黑人精品在线| 国产成人免费无遮挡视频| 18禁观看日本| 亚洲aⅴ乱码一区二区在线播放 | 天天躁夜夜躁狠狠躁躁| 51午夜福利影视在线观看| 欧美中文综合在线视频| 欧美亚洲日本最大视频资源| а√天堂www在线а√下载 | 欧美激情高清一区二区三区| 两个人看的免费小视频| 涩涩av久久男人的天堂| 嫁个100分男人电影在线观看| 高潮久久久久久久久久久不卡| 伊人久久大香线蕉亚洲五| 亚洲第一青青草原| 在线永久观看黄色视频| 黑人欧美特级aaaaaa片| 精品少妇久久久久久888优播| 老熟妇乱子伦视频在线观看| 国产精品综合久久久久久久免费 | 国产成人精品在线电影| 日韩熟女老妇一区二区性免费视频| 美女国产高潮福利片在线看| netflix在线观看网站| 手机成人av网站| 国产亚洲精品第一综合不卡| 国产一区二区三区在线臀色熟女 | 国产精品av久久久久免费| 欧美亚洲 丝袜 人妻 在线| 亚洲精品乱久久久久久| 老司机福利观看| netflix在线观看网站| 老司机靠b影院| 在线永久观看黄色视频| 69av精品久久久久久| 很黄的视频免费| 亚洲 欧美一区二区三区| 在线观看www视频免费| 国产免费av片在线观看野外av| 久久精品国产亚洲av高清一级| aaaaa片日本免费| 精品高清国产在线一区| 精品国产超薄肉色丝袜足j| 久久久精品免费免费高清| 十八禁网站免费在线| 午夜福利在线免费观看网站| 校园春色视频在线观看| 午夜精品国产一区二区电影| 老鸭窝网址在线观看| 久久人妻av系列| 亚洲专区中文字幕在线| 69av精品久久久久久| 丰满人妻熟妇乱又伦精品不卡| 日本黄色视频三级网站网址 | 99国产精品一区二区三区| 日韩欧美一区二区三区在线观看 | 亚洲七黄色美女视频| 国产日韩一区二区三区精品不卡| 十分钟在线观看高清视频www| 国产人伦9x9x在线观看| 黑人欧美特级aaaaaa片| 欧美 亚洲 国产 日韩一| 亚洲中文日韩欧美视频| 人人妻人人添人人爽欧美一区卜| 天天躁日日躁夜夜躁夜夜| 欧美成人午夜精品| 成人av一区二区三区在线看| a级片在线免费高清观看视频| 日本黄色日本黄色录像| а√天堂www在线а√下载 | x7x7x7水蜜桃| 中出人妻视频一区二区| 国产精品 欧美亚洲| 91大片在线观看| 中文字幕av电影在线播放| 亚洲欧美精品综合一区二区三区| 国产无遮挡羞羞视频在线观看| 一级a爱片免费观看的视频| 久久天堂一区二区三区四区| 波多野结衣av一区二区av| 热99久久久久精品小说推荐| 在线天堂中文资源库| 中文字幕人妻丝袜一区二区| 成年人免费黄色播放视频| 一夜夜www| 久久九九热精品免费| 久久久国产成人免费| 一进一出好大好爽视频| 一区福利在线观看| 一进一出好大好爽视频| 精品一区二区三卡| 激情视频va一区二区三区| 香蕉久久夜色| 欧美乱码精品一区二区三区| 国产成人欧美| 久久中文看片网| 亚洲av日韩在线播放| 精品久久久久久电影网| 热99re8久久精品国产| 欧美成狂野欧美在线观看| 国产伦人伦偷精品视频| 久久人妻熟女aⅴ| 国产有黄有色有爽视频| 一夜夜www| 电影成人av| 精品国产一区二区三区久久久樱花| 亚洲男人天堂网一区| 久久亚洲精品不卡| 黄色视频不卡| 黄频高清免费视频| 青草久久国产| e午夜精品久久久久久久| 最近最新中文字幕大全电影3 | 国产成人免费观看mmmm| 怎么达到女性高潮| 国产精品久久久久久精品古装| 亚洲男人天堂网一区| 国产av又大| 又黄又粗又硬又大视频| 在线天堂中文资源库| 国产精品久久电影中文字幕 | 欧美精品一区二区免费开放| 亚洲色图av天堂| 国产精品一区二区在线观看99| 多毛熟女@视频| 99久久人妻综合| 亚洲精华国产精华精| 亚洲中文日韩欧美视频| 99在线人妻在线中文字幕 | 99国产精品免费福利视频| 狂野欧美激情性xxxx| 欧美不卡视频在线免费观看 | 国产一卡二卡三卡精品| 日韩人妻精品一区2区三区| 大片电影免费在线观看免费| 99久久99久久久精品蜜桃| 欧美 日韩 精品 国产| 宅男免费午夜| 久久人妻熟女aⅴ| 在线av久久热| 精品卡一卡二卡四卡免费| 悠悠久久av| 日本精品一区二区三区蜜桃| 欧美在线一区亚洲| 男女高潮啪啪啪动态图| 99国产精品一区二区三区| 精品久久久久久,| 人人妻人人澡人人爽人人夜夜| а√天堂www在线а√下载 | 动漫黄色视频在线观看| 午夜影院日韩av| 99精国产麻豆久久婷婷| 国产极品粉嫩免费观看在线| 黑人猛操日本美女一级片| 欧美人与性动交α欧美软件| 国产男靠女视频免费网站| 精品人妻熟女毛片av久久网站| 亚洲熟女精品中文字幕| 亚洲精品国产色婷婷电影| 激情在线观看视频在线高清 | 色综合欧美亚洲国产小说| 欧美日韩瑟瑟在线播放| 高潮久久久久久久久久久不卡| 国产99白浆流出| 亚洲中文av在线| 18禁裸乳无遮挡动漫免费视频| 99国产精品一区二区三区| 国产av一区二区精品久久| 亚洲熟女精品中文字幕| 免费观看精品视频网站| 日韩制服丝袜自拍偷拍| 高清黄色对白视频在线免费看| 国产精品 欧美亚洲| 建设人人有责人人尽责人人享有的| 精品视频人人做人人爽| a在线观看视频网站| 怎么达到女性高潮| 亚洲精品中文字幕在线视频| 免费高清在线观看日韩| 夜夜夜夜夜久久久久| 免费一级毛片在线播放高清视频 | 两人在一起打扑克的视频| 99国产精品一区二区三区| 美女午夜性视频免费| 亚洲一区二区三区欧美精品| 看免费av毛片| 婷婷精品国产亚洲av在线 | 色婷婷久久久亚洲欧美| 国产av一区二区精品久久| 99香蕉大伊视频| 午夜福利影视在线免费观看| 欧美黑人精品巨大| 亚洲色图 男人天堂 中文字幕| 免费观看精品视频网站| 99精品欧美一区二区三区四区| 国产精品久久电影中文字幕 | 无人区码免费观看不卡| 999久久久国产精品视频| 国产av又大| 午夜两性在线视频| 一边摸一边抽搐一进一小说 | 中文字幕色久视频| 国产高清视频在线播放一区| 在线观看日韩欧美| 超碰97精品在线观看| 日韩视频一区二区在线观看| 亚洲在线自拍视频| 日韩精品免费视频一区二区三区| 18禁裸乳无遮挡动漫免费视频| 亚洲伊人色综图| 国产精品美女特级片免费视频播放器 | 久久久国产一区二区| 新久久久久国产一级毛片| 操出白浆在线播放| 久久久久久免费高清国产稀缺| 亚洲精华国产精华精| 在线观看舔阴道视频| 日韩三级视频一区二区三区| 久久影院123| 精品视频人人做人人爽| 18禁黄网站禁片午夜丰满| 建设人人有责人人尽责人人享有的| 国产精品久久久久久人妻精品电影| 在线国产一区二区在线| 人人妻人人澡人人爽人人夜夜| 欧美最黄视频在线播放免费 | 免费高清在线观看日韩| 精品卡一卡二卡四卡免费| 19禁男女啪啪无遮挡网站| 国产aⅴ精品一区二区三区波| 亚洲国产看品久久| 欧美一级毛片孕妇| 波多野结衣av一区二区av| 亚洲欧美激情综合另类| av中文乱码字幕在线| 99精品久久久久人妻精品| 亚洲精品在线美女| 两性夫妻黄色片| 亚洲成人免费电影在线观看| 久久久久国内视频| 精品福利观看| 亚洲国产精品一区二区三区在线| 91九色精品人成在线观看| 五月开心婷婷网| av国产精品久久久久影院| 欧美黄色片欧美黄色片| 国产成人av激情在线播放| 他把我摸到了高潮在线观看| av天堂久久9| 80岁老熟妇乱子伦牲交| 男女高潮啪啪啪动态图| 亚洲精品一二三| 黑人猛操日本美女一级片| 精品一品国产午夜福利视频| 校园春色视频在线观看| 午夜福利乱码中文字幕| 法律面前人人平等表现在哪些方面| 国产精品久久久av美女十八| 中文字幕色久视频| 日韩 欧美 亚洲 中文字幕| 亚洲第一欧美日韩一区二区三区| 欧美精品高潮呻吟av久久| 日韩有码中文字幕| 天天躁夜夜躁狠狠躁躁| 久久这里只有精品19| 中文字幕制服av| 久9热在线精品视频| 动漫黄色视频在线观看| 欧美乱妇无乱码| 国产99白浆流出| 久久久国产成人免费| 纯流量卡能插随身wifi吗| 国产国语露脸激情在线看| 99久久人妻综合| e午夜精品久久久久久久| 亚洲美女黄片视频| 亚洲精品国产一区二区精华液| 久久精品aⅴ一区二区三区四区| 成人18禁在线播放| 亚洲av美国av| 夜夜躁狠狠躁天天躁| 欧美日本中文国产一区发布| 热re99久久国产66热| 午夜福利在线免费观看网站| 无限看片的www在线观看| 国产精品av久久久久免费| 日韩免费高清中文字幕av| 俄罗斯特黄特色一大片| 欧美性长视频在线观看| 亚洲黑人精品在线| 国产精品亚洲一级av第二区| 如日韩欧美国产精品一区二区三区| 又紧又爽又黄一区二区| 桃红色精品国产亚洲av| 不卡一级毛片| 国产熟女午夜一区二区三区| av中文乱码字幕在线| 十分钟在线观看高清视频www| 国产又爽黄色视频| 成人18禁在线播放| 高清视频免费观看一区二区| 黄色毛片三级朝国网站| 黄频高清免费视频| 亚洲五月色婷婷综合| 香蕉国产在线看| 纯流量卡能插随身wifi吗| 精品久久久久久电影网| 久久狼人影院| 人人澡人人妻人| 国产三级黄色录像| 好看av亚洲va欧美ⅴa在| 久久人妻熟女aⅴ| 午夜激情av网站| 日韩大码丰满熟妇| 国产精品久久久久久精品古装| 国产极品粉嫩免费观看在线| 国产一区有黄有色的免费视频| 老司机福利观看| 精品国产美女av久久久久小说| 亚洲中文日韩欧美视频| 中文字幕人妻丝袜制服| 老司机在亚洲福利影院| 高清毛片免费观看视频网站 | 亚洲国产精品sss在线观看 | 精品国内亚洲2022精品成人 | 日日夜夜操网爽| 成人亚洲精品一区在线观看| 色婷婷久久久亚洲欧美| 桃红色精品国产亚洲av| 日韩制服丝袜自拍偷拍| 一级片'在线观看视频| 丰满的人妻完整版| 黄色a级毛片大全视频| 国产免费现黄频在线看| av不卡在线播放| 久久精品成人免费网站| 18禁观看日本| 成人三级做爰电影| 人人妻人人爽人人添夜夜欢视频| 美女福利国产在线| 99国产精品一区二区蜜桃av | 精品久久久久久电影网| 成年动漫av网址| 国产aⅴ精品一区二区三区波| 欧美激情极品国产一区二区三区| 一本大道久久a久久精品| 国产成人精品无人区| 亚洲五月色婷婷综合| 午夜精品久久久久久毛片777| 精品人妻1区二区| 美女扒开内裤让男人捅视频| 99热只有精品国产| 午夜91福利影院| 亚洲av欧美aⅴ国产| 热re99久久精品国产66热6| 视频区图区小说| tube8黄色片| 欧美精品av麻豆av| 久久香蕉国产精品| 欧美日韩瑟瑟在线播放| 成人手机av| 欧美+亚洲+日韩+国产| 久久精品国产99精品国产亚洲性色 | 50天的宝宝边吃奶边哭怎么回事| 99精国产麻豆久久婷婷| 在线观看66精品国产| av福利片在线| 99re在线观看精品视频| 高潮久久久久久久久久久不卡| 俄罗斯特黄特色一大片| 亚洲五月色婷婷综合| 国产精品美女特级片免费视频播放器 | 中文字幕制服av| 少妇的丰满在线观看| 久久精品国产清高在天天线| 一级毛片高清免费大全| cao死你这个sao货| 12—13女人毛片做爰片一| 欧美黄色淫秽网站| 18禁国产床啪视频网站| 亚洲av片天天在线观看| 国产成人精品无人区| 超碰97精品在线观看| 女人精品久久久久毛片| 国产91精品成人一区二区三区| 午夜日韩欧美国产| 亚洲av熟女| 999精品在线视频| 18禁裸乳无遮挡动漫免费视频| 1024香蕉在线观看| 在线观看舔阴道视频| 视频在线观看一区二区三区| 好男人电影高清在线观看| 99久久综合精品五月天人人| 一二三四社区在线视频社区8| 中文字幕精品免费在线观看视频| 亚洲五月婷婷丁香| 婷婷精品国产亚洲av在线 | 日韩熟女老妇一区二区性免费视频| 亚洲国产精品合色在线| 久久香蕉激情| 精品视频人人做人人爽| 中文字幕av电影在线播放| 99国产精品一区二区蜜桃av | 老司机午夜福利在线观看视频| 99热只有精品国产| 又黄又粗又硬又大视频| 久久午夜亚洲精品久久| 欧美av亚洲av综合av国产av| 50天的宝宝边吃奶边哭怎么回事| 亚洲欧美一区二区三区黑人| 国产精品久久久久久精品古装| 亚洲精品乱久久久久久| 亚洲久久久国产精品| 欧美 亚洲 国产 日韩一| 香蕉国产在线看| 天天影视国产精品| 99精品在免费线老司机午夜| 精品福利永久在线观看| 好男人电影高清在线观看| 国产精品欧美亚洲77777| 视频区欧美日本亚洲| 黄色成人免费大全| 美女 人体艺术 gogo| 国产主播在线观看一区二区| 国产成人精品久久二区二区免费| 亚洲一区二区三区欧美精品| av中文乱码字幕在线| 搡老乐熟女国产| 国内毛片毛片毛片毛片毛片| 亚洲中文字幕日韩| 夜夜夜夜夜久久久久| 深夜精品福利| 超碰成人久久| 午夜精品久久久久久毛片777| 午夜福利欧美成人| 在线观看免费高清a一片| 最近最新免费中文字幕在线| 亚洲全国av大片| 亚洲国产中文字幕在线视频| 欧美日韩中文字幕国产精品一区二区三区 | 久久精品亚洲av国产电影网| 亚洲国产毛片av蜜桃av| 欧美最黄视频在线播放免费 | 在线观看免费午夜福利视频| 80岁老熟妇乱子伦牲交| 精品久久久精品久久久| 制服诱惑二区| 成年动漫av网址| 在线国产一区二区在线| 欧美日韩成人在线一区二区| 国产在线观看jvid| 亚洲精品久久午夜乱码| 母亲3免费完整高清在线观看| 乱人伦中国视频| 欧美久久黑人一区二区| 中文字幕人妻丝袜制服| 午夜视频精品福利| 黑人猛操日本美女一级片| 精品国产一区二区三区久久久樱花| 妹子高潮喷水视频| 精品欧美一区二区三区在线| 女人久久www免费人成看片| 亚洲五月色婷婷综合| 18禁裸乳无遮挡动漫免费视频| 国产一区二区三区综合在线观看| 欧美日韩av久久| 日本撒尿小便嘘嘘汇集6| 亚洲,欧美精品.| 欧美日韩瑟瑟在线播放| 久久这里只有精品19| 亚洲av美国av| 欧美不卡视频在线免费观看 | 老司机深夜福利视频在线观看| 欧美人与性动交α欧美精品济南到| 久热这里只有精品99| 香蕉久久夜色| 99香蕉大伊视频| 国产不卡av网站在线观看| av不卡在线播放| bbb黄色大片| 黄片小视频在线播放| 岛国在线观看网站| 女警被强在线播放| 精品乱码久久久久久99久播| 国产精品国产高清国产av | 他把我摸到了高潮在线观看| 国产精品久久久久成人av| 免费观看a级毛片全部| 另类亚洲欧美激情| 午夜日韩欧美国产| 亚洲人成电影观看| 精品视频人人做人人爽| 亚洲欧美一区二区三区久久| 国产熟女午夜一区二区三区| 欧美午夜高清在线| 99国产精品99久久久久|