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

    Android系統(tǒng)下CAN總線驅(qū)動(dòng)程序的設(shè)計(jì)與實(shí)現(xiàn)

    2013-09-14 04:08:56李玉潔朱維杰
    電子科技 2013年2期
    關(guān)鍵詞:驅(qū)動(dòng)程序調(diào)用中斷

    李玉潔,朱維杰

    (1.武警工程大學(xué)研究生管理大隊(duì),陜西西安710086;2.武警工程大學(xué)通信工程系,陜西西安 710086)

    Android是指“機(jī)器人”,由Google公司于2007年11月5日發(fā)布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng),是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。Android是一個(gè)開(kāi)放平臺(tái),在嵌入式移動(dòng)設(shè)備領(lǐng)域里具有良好的應(yīng)用前景,但在不同的設(shè)備上往往有不同的硬件支持,要在Android中添加這些硬件應(yīng)用,不是單純地在Linux內(nèi)核中添加驅(qū)動(dòng)模塊,還必須在用戶(hù)空間和應(yīng)用框架中添加對(duì)應(yīng)的支持[1]。

    控制器局域網(wǎng)絡(luò)(Control Area Network,CAN),屬于現(xiàn)場(chǎng)總線的范疇,是德國(guó)Bosch公司在20世紀(jì)80年代初,為解決現(xiàn)代汽車(chē)中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信總線[2]。由于CAN總線的數(shù)據(jù)通信具有良好的可靠性、實(shí)時(shí)性和靈活性,CAN已經(jīng)在汽車(chē)工業(yè)、航空工業(yè)、工業(yè)控制等領(lǐng)域中得到了廣泛應(yīng)用。文中以S5PV210微處理器為硬件平臺(tái),通過(guò)擴(kuò)展其SPI接口,實(shí)現(xiàn)了CAN控制器MCP2515在Android操作系統(tǒng)下的驅(qū)動(dòng)程序開(kāi)發(fā)。

    1 系統(tǒng)硬件結(jié)構(gòu)

    系統(tǒng)數(shù)據(jù)的收發(fā)都要通過(guò)CAN總線模塊,CAN總線模塊設(shè)計(jì)框圖如圖1所示,S5PV210通過(guò)SPI接口實(shí)現(xiàn)與MCP2515的連接,MCP2515的CAN輸入輸出引腳和CAN總線收發(fā)器MCP2551接在一起,構(gòu)成一個(gè)完整的CAN總線收發(fā)模塊。

    圖1 CAN總線模塊設(shè)計(jì)框圖

    1.1 S5PV210的SPI接口

    接口協(xié)議 (Serial Peripheral Interface,SPI)是Motorola公司推出的一種使用時(shí)鐘線和2根數(shù)據(jù)線傳輸數(shù)據(jù)的同步串行協(xié)議,即串行外設(shè)接口[3]。S5PV210提供的SPI接口主要用于S5PV210與外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,可以實(shí)現(xiàn)全雙工通信,傳輸速度最高可達(dá)5 Mbit·s-1。SPI總線接口主要用于主從分布式的通信網(wǎng)絡(luò),由4根線即可完成主從之間的數(shù)據(jù)通信,這 4根線分別為:時(shí)鐘線(SCLK)、數(shù)據(jù)輸入線(SI)、數(shù)據(jù)輸出線(SO)和片選線(CS),其中CS的有效與否完全由主控制器決定,時(shí)鐘信號(hào)也由主控制器發(fā)出。

    1.2 CAN控制器MCP2515

    MCP2515是Microchip生產(chǎn)的一款獨(dú)立CAN協(xié)議控制器。MCP2515支持CAN1.2、CAN2.0A、主動(dòng)和被動(dòng)CAN2.0B等版本的協(xié)議,能夠發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展報(bào)文,它還同時(shí)具備驗(yàn)收過(guò)濾以及報(bào)文管理功能。圖2為MCP2515的結(jié)構(gòu)框圖。該器件主要由3個(gè)部分組成[4]:(1)CAN協(xié)議引擎。(2)為器件及其運(yùn)行進(jìn)行配置的控制邏輯和SRAM寄存器。(3)SPI協(xié)議模塊。

    圖2 MCP2515的結(jié)構(gòu)框圖

    1.3 CAN收發(fā)器MCP2551

    MCP2551是一個(gè)可容錯(cuò)的高速CAN器件,可作為CAN協(xié)議控制器和物理總線接口。MCP2551可為CAN協(xié)議控制器提供差分收發(fā)能力,它完全符合ISO-11898標(biāo)準(zhǔn),且滿足24 V電壓要求。它的工作速率達(dá) 1 Mbit·s-1。

    2 CAN總線驅(qū)動(dòng)程序的設(shè)計(jì)

    2.1 Android操作系統(tǒng)驅(qū)動(dòng)原理

    Android雖然使用了Linux內(nèi)核,但應(yīng)用程序是用Java語(yǔ)言開(kāi)發(fā)的,所以應(yīng)用程序在調(diào)用設(shè)備驅(qū)動(dòng)不能像Linux應(yīng)用程序那樣使用系統(tǒng)調(diào)用,必須用Java虛擬機(jī)的JNI的本地(Native)方法。另一方面,Android要成為一個(gè)通用性強(qiáng)的平臺(tái),必須加強(qiáng)它的可移植性,這也是在Android架構(gòu)添加一個(gè)(HAL)硬件抽象層的原因,目的是為設(shè)備的調(diào)用提供一個(gè)更高級(jí)的封裝[5]。圖3所示為Android驅(qū)動(dòng)程序的技術(shù)結(jié)構(gòu)。

    HAL Stub以*.so庫(kù)的形式存在,在整個(gè)驅(qū)動(dòng)架構(gòu)中,它是驅(qū)動(dòng)運(yùn)行在用戶(hù)空間的一部分,它往上為Dalvik虛擬機(jī)提供硬件設(shè)備的抽象接口,往下通過(guò)系統(tǒng)調(diào)用與Linux內(nèi)核中的驅(qū)動(dòng)程序交互數(shù)據(jù),在這個(gè)過(guò)程中HAL可以對(duì)驅(qū)動(dòng)程序的數(shù)據(jù)進(jìn)行處理,即在Linux內(nèi)核中的驅(qū)動(dòng)程序只需提供一個(gè)與硬件設(shè)備傳輸數(shù)據(jù)的功能,而具體的操作可以由 HAL完成。Android下CAN總線驅(qū)動(dòng)程序的實(shí)現(xiàn),不但要在Linux內(nèi)核中添加CAN驅(qū)動(dòng)模塊,還必須在用戶(hù)空間和應(yīng)用框架中添加對(duì)應(yīng)的支持。

    圖3 Android驅(qū)動(dòng)程序的技術(shù)結(jié)構(gòu)

    2.2 CAN驅(qū)動(dòng)程序?qū)崿F(xiàn)流程

    主控制器S5PV210通過(guò)其自身的SPI接口實(shí)現(xiàn)與MCP2515的連接,若要使平臺(tái)正常工作,軟件的實(shí)現(xiàn)是必需的。首先要確保S5PV210的SPI口可以正常收發(fā)數(shù)據(jù),然后利用SPI口對(duì)MCP2515的寄存器進(jìn)行設(shè)置。CAN驅(qū)動(dòng)程序流程圖如圖4所示,第一步是實(shí)現(xiàn)S5PV210的SPI總線的加載和聲明;第二步是Linux kernel中CAN驅(qū)動(dòng)的實(shí)現(xiàn),包括MCP2515的初始化、MCP2515的讀寫(xiě)、CAN驅(qū)動(dòng)的加載。第三步是Android HAL層的調(diào)用。

    圖4 CAN驅(qū)動(dòng)程序流程圖

    3 CAN總線驅(qū)動(dòng)程序的實(shí)現(xiàn)

    3.1 SPI總線加載和聲明

    系統(tǒng)的CAN總線設(shè)備通過(guò)S5PV210的SPI總線連接,因此,需要設(shè)計(jì)SPI線驅(qū)動(dòng)完成數(shù)據(jù)接收與發(fā)送。關(guān)于SPI總線驅(qū)動(dòng)在Linux內(nèi)核中已有良好的支持,加載并聲明SPI總線就可以直接使用。Linux內(nèi)核使用包裝后的抽象設(shè)備驅(qū)動(dòng)spi_driver,間接與原始設(shè)備驅(qū)動(dòng)建立聯(lián)系,并最終通過(guò)調(diào)用driver_register來(lái)注冊(cè)原始設(shè)備驅(qū)動(dòng),即只需要在內(nèi)核提供的spi_driver上修改調(diào)試,大幅提高了程序效率和可移植性。

    這樣在結(jié)構(gòu)體 mcp2515_driver里完成了對(duì)MCP2515驅(qū)動(dòng)函數(shù)probe,remove的賦值。然后就可以通過(guò)SPI對(duì)MCP2515的寄存器進(jìn)行設(shè)置來(lái)實(shí)現(xiàn)CAN總線驅(qū)動(dòng)程序。

    3.2 Linux中CAN驅(qū)動(dòng)程序?qū)崿F(xiàn)

    針對(duì)MCP2515控制器,在Linux kernel設(shè)計(jì)中采用字符設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的形式。驅(qū)動(dòng)初始化函數(shù)static int_init MCP2515_init(),首先通過(guò)ioremap()函數(shù)將S5PV210的SPI寄存器的物理地址映射到內(nèi)核空間,這樣才可以在驅(qū)動(dòng)程序中訪問(wèn)和配置S5PV210的SPI寄存器。在正確配置S5PV210的SPI寄存器后,通過(guò)register_chrdev()函數(shù)為MCP2515注冊(cè)設(shè)備驅(qū)動(dòng),分配主設(shè)備號(hào),這樣在設(shè)備文件目錄中創(chuàng)建對(duì)應(yīng)的設(shè)備文件后,就可以用 Linux的系統(tǒng)函數(shù)操作MCP2515了。而分配內(nèi)存部分放在probe()函數(shù)中完成,分配空間包括為設(shè)備數(shù)據(jù)結(jié)構(gòu)以及其內(nèi)部的接收發(fā)送緩沖區(qū)動(dòng)態(tài)分配空間。同時(shí)在probe()還需要完成申請(qǐng)中斷工作,并初始化中斷處理隊(duì)列,在中斷處理隊(duì)列中讀取CANINTF寄存器,判斷是接收/發(fā)送中斷的哪一個(gè)緩沖器,或者說(shuō)是錯(cuò)誤中斷最后通過(guò)enable_irq()函數(shù)使能S5PV210相應(yīng)的中斷引腳[6]。

    (1)MCP2515初始化。在實(shí)現(xiàn)了SPI的加載和聲明后,就可以利用SPI寫(xiě)命令對(duì)MCP2515進(jìn)行初始化。MCP2515的初始化過(guò)程為:首先將CAN控制寄存器CANCTRL的REQOP<2:O>位設(shè)置為‘100’進(jìn)入配置模式,所有錯(cuò)誤計(jì)數(shù)器被清零,進(jìn)入配置模式后設(shè)置波特率,禁止所有中斷,設(shè)置濾波器,清除發(fā)送接收緩存,打開(kāi)中斷,完成MCP2515的初始化。MCP2515初始化過(guò)程如圖5所示。

    圖5 MCP2515初始化流程圖

    (2)MCP2515中斷方式。由于CAN總線接收數(shù)據(jù)時(shí)必須與系統(tǒng)以中斷方式交換數(shù)據(jù),所以必須注冊(cè)中斷。使用的中斷函數(shù)有request_irq(),free_irq(),enable_irq()和disable_irq(),其中函數(shù)request_irq()是給定的中斷源裝載中斷處理程序;enable_irq()調(diào)用中斷控制函數(shù)使給定的中斷鏈有效;free_irq()釋放分配給已定中斷的內(nèi)存;disable_irq()使定義中斷鏈?zhǔn)?。具體代碼為request_irq(irq_EINT0,mcp2515_int,IRQF_DISABLED,device_name,NULL);其中函數(shù)request_irq()的第1個(gè)參數(shù)是設(shè)備申請(qǐng)的中斷號(hào);第2個(gè)參數(shù)是向系統(tǒng)注冊(cè)的中斷處理函數(shù);第3個(gè)參數(shù)是中斷處理的屬性,IRQF_DISABLED表示中斷處理程序是一個(gè)快速中斷處理程序,被調(diào)用時(shí)屏蔽所有中斷;第4個(gè)參數(shù)是中斷的設(shè)備名稱(chēng);第5個(gè)參數(shù)是申請(qǐng)時(shí)通知系統(tǒng)的設(shè)備標(biāo)志,該函數(shù)返回值為0表示申請(qǐng)成功,返回負(fù)數(shù)表示失敗,這樣當(dāng)中斷發(fā)生時(shí),在中斷處理函數(shù)mcp2515_int()中讀取CAN狀態(tài)寄存器CANSTAT,判斷RXB0是否裝入報(bào)文,如果是則把報(bào)文通過(guò)SPI接收數(shù)據(jù)寄存器讀取到buffer中,等待系統(tǒng)函數(shù)CAN_Read()讀取。

    (3)MCP2515驅(qū)動(dòng)程序的核心文件結(jié)構(gòu) file_operations。CAN總線應(yīng)用程序通過(guò)file_operations數(shù)據(jù)結(jié)構(gòu)訪問(wèn)CAN設(shè)備驅(qū)動(dòng)函數(shù),</kernel/linux/fs.h>對(duì)file_operations數(shù)據(jù)結(jié)構(gòu)中的各個(gè)變量做了詳解。內(nèi)核可以通過(guò)文件結(jié)構(gòu)來(lái)訪問(wèn)驅(qū)動(dòng)程序的函數(shù)[6],實(shí)現(xiàn)系統(tǒng)調(diào)用。

    CAN應(yīng)用程序可以通過(guò)系統(tǒng)函數(shù)read()和write()實(shí)現(xiàn)讀取和寫(xiě)入相應(yīng)的數(shù)據(jù),open()函數(shù)中完成設(shè)備的打開(kāi),close()函數(shù)中完成注銷(xiāo)設(shè)備的工作,ioctl()函數(shù)中需要完成MCP2515控制器的初始化工作:設(shè)置控制器的工作模式、設(shè)置控制總線的波特率、清空發(fā)送緩沖區(qū)和接收緩沖區(qū)等。

    3.3 CAN驅(qū)動(dòng)編譯

    (1)將寫(xiě)好的驅(qū)動(dòng)源文件拷貝到/kernel/drivers/char/下,并打開(kāi)Kconfig添加如下代碼:

    (2)在/kernel/drivers/char/Makefile文件的適當(dāng)位置添加如下代碼:

    obj-$(CONFIG_S5pv210_CAN)+=S5pv210-can.o

    (3)添加can功能。在/kernel/下 make menuconfig DeviceDrivers→Characterdevices→ <M > S5pv210 can controller driver動(dòng)態(tài)加載CAN驅(qū)動(dòng)并保存退出。

    (4)重新編譯內(nèi)核。在終端進(jìn)入/kernel/目錄,執(zhí)行make命令后在/kernel/drivers/char/下找到S5pv210_can.o,此為L(zhǎng)inux kernel層生成的CAN設(shè)備驅(qū)動(dòng)文件,kernel層驅(qū)動(dòng)向下直接操作硬件,向上層也就是HAL層,提供/dev/can設(shè)備節(jié)點(diǎn)文件,提供驅(qū)動(dòng)接口unclocked_ioctl()函數(shù)。

    4 Android HAL層的調(diào)用

    CAN驅(qū)動(dòng)程序在Android系統(tǒng)下的實(shí)現(xiàn),硬件抽象層(HAL)的調(diào)用是關(guān)鍵。將Android系統(tǒng)移植到其他硬件平臺(tái)或在Android系統(tǒng)中添加新硬件支持時(shí),都需要對(duì)Android HAL層進(jìn)行移植或?qū)崿F(xiàn)在libhardware接口的頭文件hardware.h中,定義了HAL實(shí)現(xiàn)過(guò)程中的3個(gè)通用結(jié)構(gòu)體struct hw_module_t、struct hw_module_methods_t 和 struct hw_device_t。struct hw modules_methods_t用來(lái)表示一個(gè)模塊表示方法,結(jié)構(gòu)體中只包含了打開(kāi)模塊的函數(shù)指針。struct hw_module_t用來(lái)定義一個(gè)硬件模塊的信息,具體的硬件模塊中,需要“繼承”這個(gè)結(jié)構(gòu)體。struct hw_device_t用來(lái)表示一個(gè)硬件設(shè)備,在一個(gè)硬件模塊中可以同時(shí)包含多個(gè)硬件設(shè)備。在一個(gè)模塊的HAL層開(kāi)發(fā)中,具體的硬件調(diào)用流程為[7]:(1)通過(guò)ID得到硬件模塊。(2)從硬件模塊得到hw—modules—t,打開(kāi)得到硬件設(shè)備hw-device-t。(3)調(diào)用hw-device-t中的各個(gè)方法。(4)通過(guò)hw-device-t的close關(guān)閉設(shè)備。

    Android系統(tǒng)下CAN模塊的實(shí)現(xiàn)在完成SPI總線和MCP2515控制器的驅(qū)動(dòng)后必須實(shí)現(xiàn)Android HAL層的調(diào)用。CAN總線的HAL層調(diào)用流程如圖6所示。

    圖6 CAN總線的HAL層調(diào)用流程圖

    編寫(xiě)HAL層使用 struct hw_module_t、struct hw_module_methods_t和struct hw_device_t 3個(gè)結(jié)構(gòu)體來(lái)設(shè)置對(duì)CAN模塊的操作方法;JNI層主要完成對(duì)HAL層提供的硬件操作方法的注冊(cè),JNI通過(guò) CAN_HARDWARE_MODULE_ID找到對(duì)應(yīng)的stub,使Framework層可以使用這些方法;Service層主要聲明了JNI可以提供的方法,加載libcan_runtime.so,加載時(shí)會(huì)調(diào)用JNI層的 JNI_OnLoad,這樣 JNI中的方法可以被Service調(diào)用;編寫(xiě) App應(yīng)用程序,使 App直接調(diào)用service,完成Android HAL層的調(diào)用。之后將can文件夾放到系統(tǒng)development目錄下。

    配置環(huán)境變量執(zhí)行../build/envsetup.sh。然后執(zhí)行mmm development/can編譯文件。最后,重新編譯內(nèi)核,生成鏡像文件,下載并運(yùn)行操作系統(tǒng)。此時(shí),CAN總線驅(qū)動(dòng)程序?qū)?huì)加載,這樣就實(shí)現(xiàn)了Android系統(tǒng)下CAN控制器MCP2515驅(qū)動(dòng)程序的開(kāi)發(fā)。

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

    在分析Android驅(qū)動(dòng)原理的基礎(chǔ)上,介紹了CAN總線在Android下的實(shí)現(xiàn)流程,并添加了CAN驅(qū)動(dòng)程序在嵌入式操作系統(tǒng)Android中,對(duì)其他Android平臺(tái)非標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)有一定的借鑒作用。

    [1]葉炳發(fā).Android操作系統(tǒng)移植及關(guān)鍵技術(shù)研究[D].廣州:暨南大學(xué),2010.

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

    [3]Samsung Conpration.S5PV210[EB/OL].(2011-05-18)[2012 - 08 - 04]http://baike.baidu.com/view/8123492.htm.

    [4]Microchip Conpration.帶有SPI接口的獨(dú)立CAN控制器MCP2515[M].USA:Microchip Technology Inc,2005.

    [5]岳傳真.Android系統(tǒng)移植和應(yīng)用程序開(kāi)發(fā)[D].上海:復(fù)旦大學(xué),2010.

    [6]楊波,徐成,李仁發(fā).嵌入式Linux上CAN設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2004,12(4):1019-1023.

    [7]孟小華,黃宗軒.Android系統(tǒng)非標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2011,30(14):7-12.

    猜你喜歡
    驅(qū)動(dòng)程序調(diào)用中斷
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    跟蹤導(dǎo)練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
    AT89C51與中斷有關(guān)的寄存器功能表解
    FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    青草久久国产| 成人免费观看视频高清| 日韩av在线大香蕉| 欧美另类亚洲清纯唯美| 色老头精品视频在线观看| ponron亚洲| 亚洲视频免费观看视频| 久久精品成人免费网站| 精品日产1卡2卡| 91九色精品人成在线观看| 国产99白浆流出| 亚洲激情在线av| 电影成人av| 99久久综合精品五月天人人| www日本在线高清视频| 久久人人97超碰香蕉20202| 中文字幕人妻丝袜一区二区| 久久香蕉激情| 看黄色毛片网站| 午夜视频精品福利| 久久久久久久午夜电影| 日韩一卡2卡3卡4卡2021年| 中文字幕av电影在线播放| 身体一侧抽搐| 国产欧美日韩一区二区三| 欧美在线一区亚洲| 亚洲精品国产色婷婷电影| 97人妻天天添夜夜摸| 搡老岳熟女国产| 欧美日韩乱码在线| 国产精品久久电影中文字幕| 一二三四在线观看免费中文在| 久久国产精品男人的天堂亚洲| 欧美激情高清一区二区三区| 成人三级做爰电影| 国产亚洲av高清不卡| 国产av一区二区精品久久| 亚洲国产精品成人综合色| 亚洲第一欧美日韩一区二区三区| 美女国产高潮福利片在线看| 日韩欧美一区二区三区在线观看| 两性夫妻黄色片| 久久人妻av系列| 国产视频一区二区在线看| 在线永久观看黄色视频| a在线观看视频网站| 国产片内射在线| 黄色成人免费大全| www.999成人在线观看| 在线观看免费日韩欧美大片| 麻豆一二三区av精品| 精品电影一区二区在线| 香蕉丝袜av| 精品国产一区二区久久| 国产亚洲精品一区二区www| av天堂在线播放| 亚洲性夜色夜夜综合| 日本vs欧美在线观看视频| netflix在线观看网站| 亚洲伊人色综图| 一个人免费在线观看的高清视频| 成年女人毛片免费观看观看9| 无限看片的www在线观看| 欧美av亚洲av综合av国产av| av超薄肉色丝袜交足视频| 亚洲男人的天堂狠狠| 一边摸一边抽搐一进一出视频| 在线观看一区二区三区| 嫁个100分男人电影在线观看| 在线播放国产精品三级| 国产高清视频在线播放一区| 国产一区二区激情短视频| 国产欧美日韩综合在线一区二区| 欧美绝顶高潮抽搐喷水| 两个人免费观看高清视频| 久久精品成人免费网站| 国产1区2区3区精品| 好男人电影高清在线观看| 久久久久久久午夜电影| 两人在一起打扑克的视频| 好看av亚洲va欧美ⅴa在| 亚洲自拍偷在线| 男女做爰动态图高潮gif福利片 | 亚洲国产中文字幕在线视频| 又紧又爽又黄一区二区| 99在线人妻在线中文字幕| 波多野结衣一区麻豆| 一级毛片女人18水好多| 亚洲精品在线观看二区| 国产精品久久久久久人妻精品电影| 色尼玛亚洲综合影院| 国产亚洲精品久久久久久毛片| 免费在线观看完整版高清| 国产亚洲av嫩草精品影院| 国产精品电影一区二区三区| 午夜福利18| 女性生殖器流出的白浆| a级毛片在线看网站| 如日韩欧美国产精品一区二区三区| 两人在一起打扑克的视频| 亚洲第一电影网av| 男男h啪啪无遮挡| 国产精品乱码一区二三区的特点 | 高清毛片免费观看视频网站| 久久这里只有精品19| 成人亚洲精品av一区二区| 亚洲欧美日韩高清在线视频| 午夜福利影视在线免费观看| 色老头精品视频在线观看| 国产一区二区三区视频了| 人人妻,人人澡人人爽秒播| 亚洲精品久久成人aⅴ小说| 99在线人妻在线中文字幕| 国产精品久久视频播放| 人人妻人人澡人人看| 亚洲少妇的诱惑av| 中文字幕高清在线视频| 9热在线视频观看99| 中文字幕人成人乱码亚洲影| 俄罗斯特黄特色一大片| 麻豆国产av国片精品| 欧美成人免费av一区二区三区| 超碰成人久久| 男女床上黄色一级片免费看| 久久这里只有精品19| 日韩国内少妇激情av| 久久精品aⅴ一区二区三区四区| 十八禁人妻一区二区| 怎么达到女性高潮| 欧美av亚洲av综合av国产av| 亚洲成av人片免费观看| 亚洲国产日韩欧美精品在线观看 | 亚洲熟妇中文字幕五十中出| 成年女人毛片免费观看观看9| 亚洲精品一卡2卡三卡4卡5卡| 精品乱码久久久久久99久播| 无人区码免费观看不卡| 色老头精品视频在线观看| 欧美老熟妇乱子伦牲交| 精品无人区乱码1区二区| 天天一区二区日本电影三级 | 午夜免费鲁丝| 9热在线视频观看99| 午夜福利欧美成人| 嫩草影院精品99| 日韩有码中文字幕| 精品久久久久久久久久免费视频| 欧美日韩精品网址| 巨乳人妻的诱惑在线观看| 一夜夜www| 精品午夜福利视频在线观看一区| 欧美日本视频| 嫩草影视91久久| 免费在线观看完整版高清| 18禁美女被吸乳视频| 欧美日韩福利视频一区二区| 成人三级做爰电影| 亚洲 欧美一区二区三区| 黄片播放在线免费| 真人做人爱边吃奶动态| 啦啦啦观看免费观看视频高清 | 国产精品久久视频播放| 桃色一区二区三区在线观看| 亚洲精品av麻豆狂野| 九色亚洲精品在线播放| 中文字幕人成人乱码亚洲影| 免费观看人在逋| 别揉我奶头~嗯~啊~动态视频| 亚洲一区二区三区不卡视频| 亚洲,欧美精品.| 午夜老司机福利片| 久久香蕉精品热| 精品久久久久久久毛片微露脸| 日韩欧美在线二视频| 亚洲成人久久性| 欧美日韩乱码在线| 丁香六月欧美| 国产不卡一卡二| 男人操女人黄网站| 亚洲av五月六月丁香网| or卡值多少钱| 久久人人爽av亚洲精品天堂| 亚洲国产毛片av蜜桃av| 国产精华一区二区三区| 亚洲专区字幕在线| av有码第一页| 久久影院123| av中文乱码字幕在线| 老鸭窝网址在线观看| 久久热在线av| 999久久久精品免费观看国产| 99久久综合精品五月天人人| 国产区一区二久久| 日日夜夜操网爽| 久久人人97超碰香蕉20202| 国产精品日韩av在线免费观看 | 久久午夜综合久久蜜桃| 日韩国内少妇激情av| 午夜精品国产一区二区电影| 亚洲成人国产一区在线观看| 天天添夜夜摸| 久久九九热精品免费| 午夜久久久久精精品| 国产精品亚洲一级av第二区| 国产精品久久久人人做人人爽| 日本精品一区二区三区蜜桃| 黑丝袜美女国产一区| 国产欧美日韩综合在线一区二区| 久久国产精品人妻蜜桃| 欧美精品亚洲一区二区| 精品人妻在线不人妻| 桃红色精品国产亚洲av| 亚洲一区高清亚洲精品| 欧美国产日韩亚洲一区| 99国产精品99久久久久| 日韩精品中文字幕看吧| 日韩 欧美 亚洲 中文字幕| 变态另类丝袜制服| 在线观看免费视频日本深夜| 婷婷六月久久综合丁香| 欧美在线一区亚洲| 国产aⅴ精品一区二区三区波| 在线观看66精品国产| 他把我摸到了高潮在线观看| 亚洲色图 男人天堂 中文字幕| 91精品国产国语对白视频| 亚洲国产精品999在线| 亚洲国产精品成人综合色| 午夜成年电影在线免费观看| 身体一侧抽搐| 美女高潮到喷水免费观看| 中文字幕色久视频| 精品不卡国产一区二区三区| 国产一卡二卡三卡精品| 中文字幕人妻熟女乱码| 国产精品亚洲美女久久久| 久久婷婷人人爽人人干人人爱 | 国产99久久九九免费精品| 亚洲少妇的诱惑av| 69av精品久久久久久| 成人18禁在线播放| 国产亚洲精品久久久久久毛片| 欧美黑人欧美精品刺激| 久99久视频精品免费| 欧美精品啪啪一区二区三区| 亚洲,欧美精品.| 午夜免费激情av| 在线播放国产精品三级| 精品国产超薄肉色丝袜足j| 亚洲久久久国产精品| 久久久久久免费高清国产稀缺| 色哟哟哟哟哟哟| 亚洲精品久久成人aⅴ小说| 国产高清有码在线观看视频 | 侵犯人妻中文字幕一二三四区| 88av欧美| tocl精华| 一级a爱视频在线免费观看| 国产成人精品在线电影| 久久青草综合色| av视频免费观看在线观看| 两人在一起打扑克的视频| 麻豆久久精品国产亚洲av| 啪啪无遮挡十八禁网站| 色婷婷久久久亚洲欧美| 中文字幕另类日韩欧美亚洲嫩草| 在线观看舔阴道视频| 亚洲久久久国产精品| √禁漫天堂资源中文www| 婷婷精品国产亚洲av在线| 久久九九热精品免费| 午夜激情av网站| 免费看美女性在线毛片视频| 国产亚洲精品av在线| 国产欧美日韩精品亚洲av| 免费久久久久久久精品成人欧美视频| 久久国产乱子伦精品免费另类| 99精品久久久久人妻精品| 精品不卡国产一区二区三区| 免费人成视频x8x8入口观看| 欧美日韩瑟瑟在线播放| 制服丝袜大香蕉在线| 国产1区2区3区精品| 黄片小视频在线播放| 欧美另类亚洲清纯唯美| 中文字幕人成人乱码亚洲影| 91麻豆av在线| 99国产极品粉嫩在线观看| 午夜精品久久久久久毛片777| 在线观看66精品国产| 精品国产乱码久久久久久男人| 一卡2卡三卡四卡精品乱码亚洲| 亚洲 欧美 日韩 在线 免费| 亚洲国产看品久久| 久久 成人 亚洲| 精品一区二区三区视频在线观看免费| 欧美老熟妇乱子伦牲交| av视频在线观看入口| 国产精品一区二区免费欧美| 久久欧美精品欧美久久欧美| 免费搜索国产男女视频| 欧美日韩亚洲国产一区二区在线观看| 精品不卡国产一区二区三区| 成人亚洲精品一区在线观看| 色av中文字幕| 在线观看66精品国产| av在线播放免费不卡| 久久九九热精品免费| 成人精品一区二区免费| 日本五十路高清| 欧美在线一区亚洲| 成人18禁在线播放| 国产一区二区三区视频了| cao死你这个sao货| 免费无遮挡裸体视频| а√天堂www在线а√下载| 好看av亚洲va欧美ⅴa在| videosex国产| 亚洲av成人一区二区三| 亚洲狠狠婷婷综合久久图片| 91在线观看av| av在线天堂中文字幕| 成人精品一区二区免费| or卡值多少钱| 国产亚洲精品av在线| 亚洲av日韩精品久久久久久密| 脱女人内裤的视频| 久久久久久国产a免费观看| 免费观看精品视频网站| 19禁男女啪啪无遮挡网站| 两个人看的免费小视频| 亚洲男人天堂网一区| 黄色丝袜av网址大全| 女人高潮潮喷娇喘18禁视频| 1024视频免费在线观看| 欧美色视频一区免费| 欧美在线一区亚洲| 9色porny在线观看| 韩国精品一区二区三区| av视频在线观看入口| 大香蕉久久成人网| 久久 成人 亚洲| 国产三级在线视频| 母亲3免费完整高清在线观看| 最近最新中文字幕大全电影3 | 人妻丰满熟妇av一区二区三区| 91字幕亚洲| 桃红色精品国产亚洲av| 亚洲欧美激情在线| 久久天躁狠狠躁夜夜2o2o| 中文字幕色久视频| 国产精品久久久久久亚洲av鲁大| aaaaa片日本免费| 波多野结衣高清无吗| 18禁黄网站禁片午夜丰满| 午夜视频精品福利| 女警被强在线播放| 人人妻,人人澡人人爽秒播| 久久这里只有精品19| 韩国精品一区二区三区| 久久久久久亚洲精品国产蜜桃av| 国产在线观看jvid| 国产激情久久老熟女| av欧美777| 亚洲国产中文字幕在线视频| 欧美午夜高清在线| 伦理电影免费视频| 亚洲av美国av| 啦啦啦韩国在线观看视频| 国产欧美日韩精品亚洲av| 看免费av毛片| 淫秽高清视频在线观看| 欧美乱色亚洲激情| 久久人妻熟女aⅴ| 超碰成人久久| 老鸭窝网址在线观看| 国产精品1区2区在线观看.| 电影成人av| 侵犯人妻中文字幕一二三四区| 亚洲精品久久国产高清桃花| 亚洲精品在线美女| 在线观看日韩欧美| 乱人伦中国视频| 女人精品久久久久毛片| 女人被躁到高潮嗷嗷叫费观| 欧美在线一区亚洲| e午夜精品久久久久久久| 精品日产1卡2卡| 久久精品91蜜桃| 欧美av亚洲av综合av国产av| 两性夫妻黄色片| 成人精品一区二区免费| 在线观看一区二区三区| 午夜精品久久久久久毛片777| 又黄又爽又免费观看的视频| 免费高清视频大片| 亚洲成国产人片在线观看| 成年版毛片免费区| 国产成人精品无人区| 亚洲av五月六月丁香网| 国产精华一区二区三区| 精品电影一区二区在线| 成人国语在线视频| 一区二区日韩欧美中文字幕| 九色国产91popny在线| 亚洲精品美女久久久久99蜜臀| 国产精品电影一区二区三区| 嫩草影院精品99| 国产伦一二天堂av在线观看| 国产精品久久久久久人妻精品电影| 亚洲欧美精品综合一区二区三区| 高清毛片免费观看视频网站| 一进一出抽搐gif免费好疼| 美女 人体艺术 gogo| 人人妻人人澡欧美一区二区 | 国产av在哪里看| 可以免费在线观看a视频的电影网站| 巨乳人妻的诱惑在线观看| 多毛熟女@视频| 亚洲激情在线av| 亚洲欧美日韩高清在线视频| 一个人免费在线观看的高清视频| 在线十欧美十亚洲十日本专区| 国产精品 国内视频| 亚洲人成网站在线播放欧美日韩| 精品熟女少妇八av免费久了| 精品久久久久久,| 亚洲av电影不卡..在线观看| 欧美老熟妇乱子伦牲交| 免费在线观看日本一区| 亚洲性夜色夜夜综合| 在线十欧美十亚洲十日本专区| a级毛片在线看网站| 亚洲人成网站在线播放欧美日韩| 国产欧美日韩综合在线一区二区| 天天躁狠狠躁夜夜躁狠狠躁| 色尼玛亚洲综合影院| 国产成年人精品一区二区| 可以在线观看毛片的网站| 国产一区二区三区在线臀色熟女| 757午夜福利合集在线观看| av超薄肉色丝袜交足视频| 精品国产超薄肉色丝袜足j| 日本一区二区免费在线视频| 美女免费视频网站| av天堂久久9| 19禁男女啪啪无遮挡网站| 女人爽到高潮嗷嗷叫在线视频| 69av精品久久久久久| 亚洲熟女毛片儿| 午夜精品久久久久久毛片777| av中文乱码字幕在线| 欧美日韩亚洲国产一区二区在线观看| 亚洲男人天堂网一区| 亚洲中文日韩欧美视频| 欧美在线一区亚洲| 91精品三级在线观看| 在线观看一区二区三区| 国产片内射在线| 一二三四社区在线视频社区8| 成人精品一区二区免费| 亚洲av熟女| 国产精品亚洲一级av第二区| 人人妻人人澡人人看| 搡老岳熟女国产| svipshipincom国产片| 免费高清视频大片| 无限看片的www在线观看| 国产精品久久视频播放| 亚洲专区中文字幕在线| 中文字幕色久视频| 免费在线观看完整版高清| 男男h啪啪无遮挡| 久久精品国产亚洲av高清一级| 国产视频一区二区在线看| 99香蕉大伊视频| 色在线成人网| 91大片在线观看| 久久精品人人爽人人爽视色| 老熟妇乱子伦视频在线观看| 欧美色视频一区免费| 91成人精品电影| 欧美国产日韩亚洲一区| 国产精品日韩av在线免费观看 | 国产精品av久久久久免费| 亚洲精品一卡2卡三卡4卡5卡| 国产欧美日韩一区二区精品| 国产三级在线视频| 日韩欧美国产在线观看| 亚洲精品国产精品久久久不卡| 又黄又粗又硬又大视频| 黄片大片在线免费观看| 人人妻,人人澡人人爽秒播| 国产成人啪精品午夜网站| 亚洲视频免费观看视频| 欧美大码av| 免费在线观看完整版高清| 日本精品一区二区三区蜜桃| 黄色丝袜av网址大全| 国产精品香港三级国产av潘金莲| 狂野欧美激情性xxxx| 精品人妻1区二区| 国产麻豆69| 国产野战对白在线观看| 欧美丝袜亚洲另类 | 多毛熟女@视频| 女生性感内裤真人,穿戴方法视频| 欧美国产精品va在线观看不卡| 青草久久国产| 91成人精品电影| 国产精品一区二区在线不卡| 亚洲狠狠婷婷综合久久图片| 高清毛片免费观看视频网站| 18禁观看日本| 亚洲精品国产一区二区精华液| www.999成人在线观看| 熟妇人妻久久中文字幕3abv| 欧美乱妇无乱码| 午夜福利18| 9色porny在线观看| 免费女性裸体啪啪无遮挡网站| 亚洲 欧美 日韩 在线 免费| 亚洲成国产人片在线观看| 午夜福利,免费看| 咕卡用的链子| 国产精华一区二区三区| 欧美av亚洲av综合av国产av| 欧美一级a爱片免费观看看 | 黑丝袜美女国产一区| 亚洲五月色婷婷综合| 极品人妻少妇av视频| 免费av毛片视频| 91在线观看av| 国产精华一区二区三区| 国产精品久久久av美女十八| 中文字幕久久专区| cao死你这个sao货| 伊人久久大香线蕉亚洲五| 亚洲国产中文字幕在线视频| 久久久国产精品麻豆| 亚洲专区国产一区二区| 操美女的视频在线观看| 亚洲av美国av| 少妇熟女aⅴ在线视频| 一级作爱视频免费观看| 男女下面进入的视频免费午夜 | 亚洲午夜精品一区,二区,三区| 久久久国产成人免费| 91成人精品电影| 婷婷丁香在线五月| 一区二区日韩欧美中文字幕| 91成年电影在线观看| 国产片内射在线| 亚洲第一青青草原| 国产aⅴ精品一区二区三区波| 亚洲av美国av| 亚洲色图综合在线观看| 午夜福利免费观看在线| netflix在线观看网站| 亚洲精品中文字幕一二三四区| 午夜激情av网站| 禁无遮挡网站| 久久久久久人人人人人| 亚洲免费av在线视频| 日韩成人在线观看一区二区三区| 成熟少妇高潮喷水视频| 一区福利在线观看| 久久午夜综合久久蜜桃| 免费高清视频大片| 国产精品亚洲美女久久久| 精品欧美国产一区二区三| 久久狼人影院| 亚洲av片天天在线观看| 日韩大码丰满熟妇| 一级a爱片免费观看的视频| 啦啦啦韩国在线观看视频| 亚洲国产欧美一区二区综合| 亚洲少妇的诱惑av| 国内精品久久久久精免费| 免费搜索国产男女视频| 国产av在哪里看| 我的亚洲天堂| av网站免费在线观看视频| 乱人伦中国视频| 黑人欧美特级aaaaaa片| 男女下面插进去视频免费观看| 好男人电影高清在线观看| 久久午夜综合久久蜜桃| 日日干狠狠操夜夜爽| 韩国精品一区二区三区| 黑人欧美特级aaaaaa片| cao死你这个sao货| 国产av在哪里看| 日韩大尺度精品在线看网址 | 欧美不卡视频在线免费观看 | 欧美日韩一级在线毛片| 在线永久观看黄色视频| 超碰成人久久| 无人区码免费观看不卡| 亚洲男人天堂网一区| 老熟妇乱子伦视频在线观看| 日本撒尿小便嘘嘘汇集6| 免费高清视频大片| 亚洲专区国产一区二区| www国产在线视频色| 琪琪午夜伦伦电影理论片6080| 亚洲熟女毛片儿| 校园春色视频在线观看| 极品教师在线免费播放| 少妇粗大呻吟视频| 中文字幕最新亚洲高清| 狠狠狠狠99中文字幕| 日韩欧美国产一区二区入口| 久久久久久久久免费视频了| 久久久久久久精品吃奶|