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

    Windows下I2C總線的GPIO模擬

    2017-03-24 06:35:35鄒應(yīng)雙
    電腦知識(shí)與技術(shù) 2017年1期

    鄒應(yīng)雙

    摘要:簡(jiǎn)要介紹了I2C總線操作和基于Windows內(nèi)核模式驅(qū)動(dòng)的用戶態(tài)I/O端口訪問,分析了Windows平臺(tái)下GPIO管腳模擬I2C總線的可行性,講解了編程實(shí)現(xiàn)過程,連接I2C接口的安全芯片進(jìn)行了驗(yàn)證。

    關(guān)鍵詞:I2C總線;GPIO管腳;Windows;內(nèi)核模式驅(qū)動(dòng)

    中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)01-0100-04

    Abstract: I2C bus operations and user-mode I/O port access using Windows kernel mode driver are briefly introduced in this paper. And a feasibility analysis on simulating I2C bus with GPIO pins under Windows is made. Then we do a programming impelmentation to the simulating method, and verify the software by accessing an I2C-interfaced security chip.

    Key words: I2C bus; GPIO pins; Windows; kernel mode driver

    1 背景

    I2C總線是Philips公司推出的兩線式串行總線,用于嵌入式系統(tǒng)連接各種低速外圍設(shè)備,如RTC、EEPROM、傳感器、安全芯片等。許多單片機(jī)、嵌入式芯片等都帶有I2C主控器,其采用的操作系統(tǒng)如嵌入式Linux等均帶有I2C驅(qū)動(dòng)程序,編程中可直接使用。對(duì)于不含I2C主控器的芯片,為了滿足定制系統(tǒng)設(shè)計(jì)需求,一般也有大量的GPIO管腳,可用于軟件模擬I2C總線。

    Intel公司的X86系列CPU和配套的橋接芯片,除了用于桌面PC,還廣泛用于網(wǎng)關(guān)、收銀、視頻等各種嵌入式服務(wù)器。這類服務(wù)器一般采用Windows Server操作系統(tǒng),不帶有I2C主控器或不提供I2C驅(qū)動(dòng)程序。為了實(shí)現(xiàn)軟件授權(quán)和保護(hù),這類嵌入式服務(wù)器首先會(huì)選擇管腳少、性價(jià)比高的I2C接口的安全芯片。為了滿足這種需求,一種方法是采用USB轉(zhuǎn)I2C的專用芯片,但這將增加硬件成本和軟件復(fù)雜度。

    基于I2C總線的簡(jiǎn)單性,可選用橋接芯片的GPIO管腳來模擬I2C主控器。GPIO管腳通過X86的I/O指令即可完全控制;但普通應(yīng)用程序在Windows下無法直接訪問I/O端口,可通過內(nèi)核模式驅(qū)動(dòng)程序來實(shí)現(xiàn)。在Windows平臺(tái)下通過GPIO管腳模擬I2C總線,將是一種簡(jiǎn)單有效、低成本的解決方法。本文就這個(gè)模擬過程進(jìn)行探討。

    2 I2C總線的讀寫

    I2C總線通過時(shí)鐘和數(shù)據(jù)兩根線即可實(shí)現(xiàn)完善的同步數(shù)據(jù)傳輸。當(dāng)發(fā)送數(shù)據(jù)時(shí),一個(gè)設(shè)備作為主機(jī),另一個(gè)設(shè)備作為從機(jī)。主設(shè)備為數(shù)據(jù)傳輸產(chǎn)生時(shí)鐘信號(hào)。I2C通訊協(xié)議要求在時(shí)鐘線(SCL, Serial Clock Line)處于低電平時(shí),數(shù)據(jù)線(SDA, Serial Data Line)才能變化。協(xié)議中每個(gè)從設(shè)備都有一個(gè)地址,會(huì)一直監(jiān)視總線上的主設(shè)備要初始化數(shù)據(jù)傳輸時(shí)發(fā)出的地址并匹配。

    總線的工作流程如下:

    空閑:當(dāng)總線上沒有數(shù)據(jù)通訊發(fā)生時(shí),SCL和SDA通過上拉電阻呈高電平。

    開始:SCL為高時(shí),SDA由高變低,這時(shí)數(shù)據(jù)傳輸開始。

    地址:主設(shè)備發(fā)送地址信息,包含7位的從設(shè)備地址和1位的讀寫位(表明數(shù)據(jù)流的方向)。發(fā)送完一個(gè)字節(jié)后,從設(shè)備會(huì)發(fā)送一位的認(rèn)可位(ACK)。

    數(shù)據(jù):根據(jù)方向位,數(shù)據(jù)在主設(shè)備和從設(shè)備之間傳輸。數(shù)據(jù)一般以8位傳輸,高位在前。接收器上用一位的ACK表明一個(gè)字節(jié)收到了。傳輸可被終止或重新開始。

    停止:當(dāng)SCL為高時(shí),SDA由低變高,這時(shí)數(shù)據(jù)傳輸結(jié)束,總線重新進(jìn)入空閑狀態(tài)。

    一次完整的數(shù)據(jù)傳輸時(shí)序如圖1所示。

    標(biāo)準(zhǔn)I2C總線的傳輸速率是100KHz,通過線與邏輯實(shí)現(xiàn)慢速設(shè)備等待。I2C總線的這些特性允許主設(shè)備的功能通過兩個(gè)GPIO管腳模擬而實(shí)現(xiàn)。

    3 Windows下的I/O端口訪問

    端口I/O指令允許X86 CPU與系統(tǒng)中的其他硬件設(shè)備通信。對(duì)于硬件設(shè)備的低層次直接控制,C函數(shù)_inp()和_outp()(用X86處理器的IN和OUT指令實(shí)現(xiàn))允許從端口讀入或向一個(gè)端口寫。但在Windows應(yīng)用程序中插入_inp()或者_(dá)outp(),將導(dǎo)致特權(quán)指令異常消息,并給出終止或調(diào)試出錯(cuò)應(yīng)用程序的選擇。Windows的體系結(jié)構(gòu)決定了應(yīng)用程序不能直接通過IN和OUT指令訪問硬件。否則,應(yīng)用程序可以關(guān)閉中斷、破壞顯示或驅(qū)動(dòng)器等硬件設(shè)備,危及系統(tǒng)的穩(wěn)定性。所以,通過內(nèi)核模式驅(qū)動(dòng)程序間接訪問I/O端口是Windows下訪問硬件資源的唯一途徑。

    實(shí)現(xiàn)對(duì)I2C主控器的模擬,只需要簡(jiǎn)單的I/O訪問即可實(shí)現(xiàn)。如果編寫完整的內(nèi)核模式的I2C驅(qū)動(dòng)程序,將涉及復(fù)雜的、花費(fèi)大量時(shí)間的Windows內(nèi)核模式驅(qū)動(dòng)驅(qū)動(dòng)程序的開發(fā)和調(diào)試工作。編寫最簡(jiǎn)驅(qū)動(dòng)實(shí)現(xiàn)I/O端口訪問,封裝好用戶態(tài)訪問的接口,將I2C實(shí)現(xiàn)代碼放在用戶態(tài),將極大地簡(jiǎn)化開發(fā)工作,同時(shí)增加二次開發(fā)利用的靈活性。

    這樣通過內(nèi)核模式驅(qū)動(dòng)程序?qū)崿F(xiàn)I/O訪問的副作用是每一次I/O操作都要通過Windows的I/O子系統(tǒng)發(fā)送請(qǐng)求,需要花費(fèi)數(shù)千個(gè)時(shí)鐘周期。但這個(gè)時(shí)間成本和100KHz的慢速I2C的一個(gè)位周期相當(dāng),對(duì)于數(shù)據(jù)傳輸量不大的應(yīng)用,在性能上可接受。

    4 編程實(shí)現(xiàn)

    本文的目標(biāo)硬件平臺(tái)為Intel Core i3-4330 CPU、Intel DH82H81橋接芯片、Maxim DS28C22安全芯片。橋片和安全芯片的連接如圖2所示。

    本文的目標(biāo)軟件平臺(tái)是64位的Windows Server 2008,開發(fā)平臺(tái)是Windows 10 專業(yè)版,選用WDK(Windows Driver Kit) 7.1和Visual Studio 2015專業(yè)版。通過查詢方式實(shí)現(xiàn)I2C讀寫,驅(qū)動(dòng)層提供I/O端口訪問功能,pioctl.dll庫(kù)封裝驅(qū)動(dòng)成類似于IN/OUT指令的接口,i2c.dll實(shí)現(xiàn)I2C讀寫函數(shù),提供給上層做應(yīng)用開發(fā)。軟件層次結(jié)構(gòu)如圖3所示。

    下面按自底向上的順序簡(jiǎn)單介紹各層次的實(shí)現(xiàn)源碼。

    4.1 內(nèi)核模式驅(qū)動(dòng)

    和Linux驅(qū)動(dòng)的開發(fā)相比,Windows驅(qū)動(dòng)開發(fā)的門檻要高一些,首先需安裝WDK,了解其中的核心態(tài)函數(shù),熟悉WDM、WDF等驅(qū)動(dòng)程序框架。

    WDK中提供了大量的樣例驅(qū)動(dòng)供驅(qū)動(dòng)開發(fā)者參考。考慮到我們的驅(qū)動(dòng)只需提供X86的IN和OUT指令的訪問接口,特選擇WDK樣例中源碼最簡(jiǎn)單的src/general/ioctl/wdm為基礎(chǔ),命名為pioctl,并對(duì)驅(qū)動(dòng)源碼中的函數(shù)名等做適當(dāng)重命名,添加上I/O端口訪問的代碼,即實(shí)現(xiàn)了本驅(qū)動(dòng)。這個(gè)開發(fā)過程不需要對(duì)Windows驅(qū)動(dòng)開發(fā)有較深入的了解。

    本驅(qū)動(dòng)程序的驅(qū)動(dòng)加載和卸載、設(shè)備打開和關(guān)閉等例程無新加代碼,不是本文的重點(diǎn),下面僅對(duì)I/O端口操作相關(guān)的代碼做說明。

    NTSTATUS PioctlDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)

    {

    PIO_STACK_LOCATION irpSp;

    NTSTATUS ntStatus = STATUS_SUCCESS;

    ULONG inBufLength, outBufLength;

    ULONG dataBufSize;

    PULONG pIOBuffer;

    ULONG nPort;

    irpSp = IoGetCurrentIrpStackLocation(Irp);

    inBufLength = irpSp->Parameters.DeviceIoControl.InputBufferLength;

    outBufLength = irpSp->Parameters.DeviceIoControl.OutputBufferLength;

    switch (irpSp->Parameters.DeviceIoControl.IoControlCode)

    { // 檢查用戶態(tài)參數(shù)

    case IOCTL_PIOCTL_WRITE_PORT_ULONG:

    dataBufSize = sizeof(ULONG);

    if (inBufLength < (sizeof(ULONG) + dataBufSize)) {

    ntStatus = STATUS_INVALID_PARAMETER;

    goto End;

    }

    break;

    case IOCTL_PIOCTL_READ_PORT_ULONG:

    dataBufSize = sizeof(ULONG);

    if (inBufLength != sizeof(ULONG) || outBufLength < dataBufSize) {

    ntStatus = STATUS_INVALID_PARAMETER;

    goto End;

    }

    break;

    default:

    ntStatus = STATUS_INVALID_PARAMETER;

    goto End;

    }

    pIOBuffer = (PULONG)Irp->AssociatedIrp.SystemBuffer;

    nPort = *pIOBuffer; // I/O端口號(hào)

    switch ( irpSp->Parameters.DeviceIoControl.IoControlCode )

    { // 判定I/O控制碼

    case IOCTL_PIOCTL_READ_PORT_ULONG: // IND

    *(PULONG)pIOBuffer = READ_PORT_ULONG((PULONG)((ULONG_PTR)nPort));

    pIrp->IoStatus.Information = dataBufSize; // 讀取的字節(jié)數(shù)

    break;

    case IOCTL_PIOCTL_WRITE_PORT_ULONG: // OUTD

    pIOBuffer++;

    WRITE_PORT_ULONG((PULONG)((ULONG_PTR)nPort), *(PULONG)pIOBuffer);

    Irp->IoStatus.Information = dataBufSize; // 寫的字節(jié)數(shù)

    break;

    default:

    Irp->IoStatus.Information = 0;

    ntStatus = STATUS_INVALID_DEVICE_REQUEST;

    break;

    }

    End:

    Irp->IoStatus.Status = ntStatus;

    IoCompleteRequest(Irp, IO_NO_INCREMENT);

    return ntStatus;

    }

    4.2 用戶態(tài)I/O端口讀寫接口

    為了應(yīng)用程序的開發(fā)方便,實(shí)現(xiàn)了pioctl.dll庫(kù),以負(fù)責(zé)自動(dòng)動(dòng)態(tài)加載卸載驅(qū)動(dòng)程序、提供I/O端口的用戶態(tài)訪問接口。

    1)DLL入口函數(shù)

    BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID)

    {

    switch (ul_reason_for_call)

    {

    case DLL_PROCESS_ATTACH:

    if (pioctl_init() < 0) // 利用SCM函數(shù)加載驅(qū)動(dòng); 打開設(shè)備文件

    return FALSE;

    break;

    case DLL_PROCESS_DETACH:

    pioctl_deinit(); // 關(guān)閉設(shè)備文件; 利用SCM函數(shù)卸載驅(qū)動(dòng)

    break;

    }

    return TRUE;

    }

    2)端口訪問函數(shù)

    PIOCTL_API unsigned long pioctl_inpd(unsigned short port)

    {

    ULONG PortNumber = (ULONG)port;

    ULONG Data;

    ULONG bytesReturned;

    BOOL bRc;

    bRc = DeviceIoControl(s_hDevice, (DWORD)IOCTL_PIOCTL_READ_PORT_ULONG,

    &PortNumber, sizeof(PortNumber), &Data, sizeof(Data), &bytesReturned, NULL);

    if (!bRc) {

    fprintf(stderr, "Error in DeviceIoControl : %d\n", GetLastError());

    return -1;

    }

    return Data;

    }

    pioctl_outpd()類似,不再列舉出。

    4.3 I2C讀寫函數(shù)

    本文采用查詢方式實(shí)現(xiàn)I2C讀寫函數(shù)。硬件上用DH82H81的GPIO8模擬SCL、GPIO15模擬SDA,封裝成i2c.dll庫(kù)。這兩個(gè)管腳為專用GPIO腳,通過GP_IO_SEL和GP_LVL兩個(gè)端口即可控制其I/O方向和電平值。下面以I2C操作中的啟動(dòng)和發(fā)送字節(jié)為例,講解其實(shí)現(xiàn)。其他操作的實(shí)現(xiàn)過程類似,不再贅述。

    1)初始化函數(shù)

    #define SCL GPIO8

    #define SDA GPIO15

    void i2c_init(void)

    {

    gpioDir = pioctl_inpd(GP_IO_SEL) & ~((1 << SCL) | (1 << SDA)); // 0:OUTPUT

    pioctl_outpd(GP_IO_SEL, gpioDir); // 設(shè)置GPIOs的I/O方向

    gpioVal = pioctl_inpd(GP_LVL) | ((1 << SCL) | (1 << SDA));

    pioctl_outpd(GP_LVL, gpioVal); // 設(shè)置GPIOs的電平

    }

    2)端口的位操作函數(shù)

    int gpio_in(int gpio_num)

    { // 讀取GPIOs輸入腳

    if ((gpioDir & (1<

    gpioDir |= (1<

    pioctl_outpd(GP_IO_SEL, gpioDir);

    }

    return (pioctl_inpd(GP_LVL) & (1<

    }

    void gpio_out(int gpio_num, int level)

    { // 寫GPIOs輸出腳

    if ( gpioDir & (1<

    gpioDir &= ~(1<

    pioctl_outpd(GP_IO_SEL, gpioDir);

    }

    gpioVal = pioctl_inpd(GP_LVL) & ~(1<

    if (level)

    gpioVal |= 1<

    pioctl_outpd(GP_LVL, gpioVal); // 設(shè)置GPIO的電平

    }

    3)I2C讀寫函數(shù)

    #define i2c_scl(level) gpio_out(SCL, level)

    #define i2c_sda(level) gpio_out(SDA, level)

    #define i2c_sda_in() gpio_in(SDA)

    void i2c_start(void)

    { // 當(dāng)SCL為高電平時(shí),SDA發(fā)生由高到低的跳變

    i2c_scl(1);

    i2c_sda(0);

    i2c_scl(0);

    }

    int i2c_send_data(unsigned char octet)

    { // 發(fā)送一個(gè)字節(jié)

    int i, ack;

    for(i=0x80; i>0; i>>=1) {

    i2c_sda(octet & i ? 1 : 0);

    i2c_scl(1);

    i2c_scl(0);

    }

    i2c_sda(1); // 發(fā)送器件釋放SDA線

    i2c_scl(1);

    ack = i2c_sda_in(); // 讀取低電平有效的ACK位

    scl(0); // 實(shí)現(xiàn)了了ACK

    return (ack); // 返回ACK位

    }

    4.4 驅(qū)動(dòng)加載和調(diào)試

    由于目標(biāo)軟件平臺(tái)為64位系統(tǒng),pioctl.sys驅(qū)動(dòng)相應(yīng)編譯成64位,需要禁用Windows Server 2008的數(shù)字簽名,編譯的驅(qū)動(dòng)才能加載。

    在pioctl.sys驅(qū)動(dòng)中通過KdPrint()宏輸出調(diào)試信息,通過WinDbg工具捕獲調(diào)試信息,以和printf函數(shù)類似的方式調(diào)試代碼。

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

    本文基于GPIO管腳的I2C操作模擬方法,在圖2所示的采用Windows Server 2008的目標(biāo)平臺(tái)上做測(cè)試,實(shí)現(xiàn)了和D28C22安全芯片的可靠通信,驗(yàn)證了本方法的正確性。該方法的原理可供類似的采用Intel X86方案的產(chǎn)品設(shè)計(jì)參考,以有效節(jié)省采用轉(zhuǎn)接芯片的成本、降低軟件開發(fā)的難度。

    這種用戶態(tài)I/O端口訪問的硬件模擬,花費(fèi)較高的CPU時(shí)間成本,對(duì)于高速的簡(jiǎn)單I/O設(shè)備訪問,有較大的局限性。但基于本方法,可在用戶態(tài)將硬件操作代碼調(diào)試好,再直接封裝到內(nèi)核模式驅(qū)動(dòng)程序中,將極大地降低開發(fā)特定Windows設(shè)備驅(qū)動(dòng)的難度。

    參考文獻(xiàn):

    [1] 田磊, 宋圓方. 基于Windows CE的IIC設(shè)備驅(qū)動(dòng)的實(shí)現(xiàn)[J]. 西安郵電學(xué)院學(xué)報(bào), 2008(1): 126-128.

    [2] 蔡純潔, 邢武. PIC 16/17 單片機(jī)原理與實(shí)現(xiàn)[M]. 合肥: 中國(guó)科學(xué)技術(shù)大學(xué)出版社, 1997.

    [3] 保拉?湯姆林森. Windows NT/2000編程實(shí)踐[M]. 北京: 中國(guó)電力出版社, 2001.

    [4] 張佩, 馬勇, 董鑒源. 竹林蹊徑——深入淺出Windows驅(qū)動(dòng)開發(fā)[M]. 北京: 電子工業(yè)出版社, 2011.

    又紧又爽又黄一区二区| 在线十欧美十亚洲十日本专区| 又爽又黄无遮挡网站| 亚洲五月天丁香| or卡值多少钱| av欧美777| 999久久久国产精品视频| 三级男女做爰猛烈吃奶摸视频| 久久久精品大字幕| 日韩欧美在线二视频| 两性夫妻黄色片| 国产高清有码在线观看视频 | 国产三级黄色录像| 一个人观看的视频www高清免费观看 | 国产一区二区三区视频了| 美女午夜性视频免费| 变态另类丝袜制服| 好男人在线观看高清免费视频| 国产精品永久免费网站| 激情在线观看视频在线高清| 亚洲国产精品sss在线观看| 淫秽高清视频在线观看| 精品无人区乱码1区二区| 国内精品久久久久精免费| 精品不卡国产一区二区三区| 免费电影在线观看免费观看| 色播亚洲综合网| 精品久久蜜臀av无| 国产伦在线观看视频一区| 99久久久亚洲精品蜜臀av| 久久精品国产清高在天天线| 桃红色精品国产亚洲av| 久久久久久亚洲精品国产蜜桃av| 日韩国内少妇激情av| 亚洲自拍偷在线| 国产精品爽爽va在线观看网站| 久久香蕉激情| 国产亚洲精品av在线| 999久久久国产精品视频| АⅤ资源中文在线天堂| 在线观看免费日韩欧美大片| 人妻久久中文字幕网| 91九色精品人成在线观看| 色哟哟哟哟哟哟| 日韩欧美三级三区| 中国美女看黄片| 熟女少妇亚洲综合色aaa.| 亚洲自偷自拍图片 自拍| 国产男靠女视频免费网站| 男女床上黄色一级片免费看| 一本一本综合久久| 成人一区二区视频在线观看| 亚洲一区二区三区色噜噜| 亚洲,欧美精品.| 国产成人精品无人区| 欧美黄色淫秽网站| www日本在线高清视频| 国产精品影院久久| 欧美日韩乱码在线| 欧美日韩亚洲国产一区二区在线观看| 99国产精品一区二区三区| 亚洲成人精品中文字幕电影| 国产高清有码在线观看视频 | 91字幕亚洲| 亚洲精品粉嫩美女一区| 日本一区二区免费在线视频| 国产熟女xx| 欧美又色又爽又黄视频| 国产伦人伦偷精品视频| 日韩欧美在线二视频| av免费在线观看网站| avwww免费| 69av精品久久久久久| 亚洲欧美激情综合另类| 久久精品亚洲精品国产色婷小说| 亚洲成人中文字幕在线播放| 亚洲aⅴ乱码一区二区在线播放 | 久久久久久久久久黄片| 日韩有码中文字幕| 亚洲一区二区三区不卡视频| 99国产极品粉嫩在线观看| 久久中文看片网| 国产一区二区激情短视频| 婷婷六月久久综合丁香| 欧美日本视频| 一级毛片高清免费大全| 成人一区二区视频在线观看| 欧美成人免费av一区二区三区| 青草久久国产| 久久香蕉国产精品| 国产精品日韩av在线免费观看| 国产精品av久久久久免费| 亚洲欧美一区二区三区黑人| 午夜精品久久久久久毛片777| 在线观看免费午夜福利视频| 淫妇啪啪啪对白视频| 不卡一级毛片| 天天添夜夜摸| 午夜精品在线福利| 99riav亚洲国产免费| 亚洲欧美日韩无卡精品| 国产一区二区在线观看日韩 | 久久天堂一区二区三区四区| 90打野战视频偷拍视频| 欧美在线一区亚洲| 亚洲欧美激情综合另类| 国产亚洲精品综合一区在线观看 | 香蕉国产在线看| 国产精品永久免费网站| 精品不卡国产一区二区三区| 国产蜜桃级精品一区二区三区| 欧美在线一区亚洲| 桃色一区二区三区在线观看| 国产精品野战在线观看| 午夜福利高清视频| 亚洲成人国产一区在线观看| 精品国产乱码久久久久久男人| 久久性视频一级片| 国产单亲对白刺激| 天堂av国产一区二区熟女人妻 | 免费av毛片视频| 亚洲无线在线观看| 国产精品久久久久久人妻精品电影| 一本一本综合久久| www国产在线视频色| 精品久久久久久久人妻蜜臀av| 黑人巨大精品欧美一区二区mp4| 亚洲国产精品sss在线观看| 免费高清视频大片| 亚洲国产欧美一区二区综合| 精品久久蜜臀av无| 真人做人爱边吃奶动态| 三级国产精品欧美在线观看 | 变态另类成人亚洲欧美熟女| 悠悠久久av| 国产免费av片在线观看野外av| 大型av网站在线播放| 精品一区二区三区四区五区乱码| 精品国产乱子伦一区二区三区| 国产乱人伦免费视频| 日韩欧美精品v在线| 黄色视频,在线免费观看| 老司机午夜十八禁免费视频| 人人妻人人看人人澡| 悠悠久久av| 中文字幕人妻丝袜一区二区| 久久久精品欧美日韩精品| 两个人视频免费观看高清| 大型av网站在线播放| 国产一区二区激情短视频| 日本黄大片高清| 我的老师免费观看完整版| 此物有八面人人有两片| 中文字幕人成人乱码亚洲影| 美女大奶头视频| 亚洲 国产 在线| 亚洲片人在线观看| 亚洲激情在线av| 制服丝袜大香蕉在线| 两性夫妻黄色片| 亚洲欧美精品综合久久99| 91大片在线观看| 搞女人的毛片| 欧美三级亚洲精品| 国产在线观看jvid| 久久久水蜜桃国产精品网| 久久亚洲真实| 久久精品国产99精品国产亚洲性色| 啦啦啦韩国在线观看视频| av福利片在线观看| 国产真人三级小视频在线观看| 亚洲中文av在线| www.www免费av| 母亲3免费完整高清在线观看| 国产真人三级小视频在线观看| 国产av在哪里看| 午夜免费观看网址| 国产高清视频在线观看网站| 亚洲欧美一区二区三区黑人| 桃色一区二区三区在线观看| 国产99久久九九免费精品| 成人国产综合亚洲| 最好的美女福利视频网| 亚洲精品美女久久av网站| 色精品久久人妻99蜜桃| 成熟少妇高潮喷水视频| 国产午夜精品论理片| 全区人妻精品视频| 91字幕亚洲| 美女午夜性视频免费| 岛国视频午夜一区免费看| 叶爱在线成人免费视频播放| 亚洲成av人片免费观看| 精品久久蜜臀av无| 黄色丝袜av网址大全| 熟妇人妻久久中文字幕3abv| 亚洲一区二区三区色噜噜| 99久久精品热视频| 亚洲一码二码三码区别大吗| 亚洲免费av在线视频| 免费一级毛片在线播放高清视频| 不卡av一区二区三区| 999精品在线视频| av中文乱码字幕在线| 久久人人精品亚洲av| 18禁黄网站禁片免费观看直播| 免费高清视频大片| 亚洲人成电影免费在线| 欧美日韩亚洲国产一区二区在线观看| 国产97色在线日韩免费| 午夜精品一区二区三区免费看| 在线观看66精品国产| 18禁黄网站禁片免费观看直播| 国产精品精品国产色婷婷| 久久久精品国产亚洲av高清涩受| 亚洲精品av麻豆狂野| 人人妻,人人澡人人爽秒播| 俄罗斯特黄特色一大片| 精品一区二区三区四区五区乱码| 99热这里只有是精品50| 麻豆成人av在线观看| 久久国产乱子伦精品免费另类| 日日干狠狠操夜夜爽| 亚洲国产中文字幕在线视频| 国产精品免费视频内射| 亚洲男人天堂网一区| 十八禁人妻一区二区| av片东京热男人的天堂| 精品久久久久久久久久久久久| 人人妻人人看人人澡| av天堂在线播放| 黄片小视频在线播放| 欧美性猛交╳xxx乱大交人| 国产欧美日韩一区二区精品| 级片在线观看| 女同久久另类99精品国产91| 国产精品av视频在线免费观看| 日韩av在线大香蕉| 亚洲国产精品久久男人天堂| 精品不卡国产一区二区三区| 岛国在线免费视频观看| 亚洲午夜理论影院| 亚洲熟妇中文字幕五十中出| 国产av一区在线观看免费| 亚洲av成人不卡在线观看播放网| 两性夫妻黄色片| 久久久久国产精品人妻aⅴ院| 变态另类丝袜制服| 黑人欧美特级aaaaaa片| 身体一侧抽搐| videosex国产| 最近在线观看免费完整版| 成人一区二区视频在线观看| 激情在线观看视频在线高清| 老汉色∧v一级毛片| 少妇粗大呻吟视频| 欧美日韩中文字幕国产精品一区二区三区| 中文字幕精品亚洲无线码一区| 国产精品电影一区二区三区| 日本黄大片高清| 日韩三级视频一区二区三区| 可以在线观看的亚洲视频| 精品久久久久久久久久免费视频| 三级国产精品欧美在线观看 | 国产精品久久久av美女十八| 欧美日韩亚洲综合一区二区三区_| 桃色一区二区三区在线观看| 亚洲欧美日韩东京热| 少妇粗大呻吟视频| 巨乳人妻的诱惑在线观看| 欧美黄色片欧美黄色片| 一夜夜www| 国产精品久久电影中文字幕| 一二三四在线观看免费中文在| 一a级毛片在线观看| 黄频高清免费视频| 亚洲人成伊人成综合网2020| 又黄又爽又免费观看的视频| 午夜亚洲福利在线播放| 久久久久免费精品人妻一区二区| 欧美性猛交黑人性爽| 精品久久久久久成人av| 一边摸一边做爽爽视频免费| 国产欧美日韩精品亚洲av| 亚洲成av人片免费观看| 国产激情偷乱视频一区二区| 999精品在线视频| 国产男靠女视频免费网站| 老汉色av国产亚洲站长工具| 99国产精品一区二区蜜桃av| 久久久久国产一级毛片高清牌| 欧美绝顶高潮抽搐喷水| 天天躁狠狠躁夜夜躁狠狠躁| 99国产综合亚洲精品| av片东京热男人的天堂| 成人国产综合亚洲| 国产蜜桃级精品一区二区三区| av在线天堂中文字幕| tocl精华| 精品国内亚洲2022精品成人| 亚洲专区国产一区二区| 色在线成人网| 亚洲国产欧美一区二区综合| 久久精品国产99精品国产亚洲性色| 曰老女人黄片| 午夜a级毛片| 亚洲成av人片免费观看| 精品福利观看| 欧美日韩乱码在线| 特级一级黄色大片| 一个人免费在线观看的高清视频| 一区二区三区国产精品乱码| 亚洲乱码一区二区免费版| 午夜福利在线观看吧| 欧美最黄视频在线播放免费| av免费在线观看网站| 亚洲熟女毛片儿| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲aⅴ乱码一区二区在线播放 | 亚洲一区二区三区色噜噜| 久久天堂一区二区三区四区| 成人av在线播放网站| 麻豆一二三区av精品| 日韩成人在线观看一区二区三区| 精品久久久久久久末码| 欧美日本视频| 九九热线精品视视频播放| 精品国内亚洲2022精品成人| 亚洲精品美女久久av网站| 久久热在线av| 午夜免费观看网址| e午夜精品久久久久久久| 又黄又爽又免费观看的视频| 久久久水蜜桃国产精品网| 国产单亲对白刺激| 色老头精品视频在线观看| 草草在线视频免费看| 搡老妇女老女人老熟妇| 成人国语在线视频| 成人欧美大片| 亚洲精品一区av在线观看| 成人午夜高清在线视频| 丰满人妻熟妇乱又伦精品不卡| 日本黄大片高清| 一个人免费在线观看的高清视频| 亚洲免费av在线视频| 国产视频一区二区在线看| 一个人免费在线观看的高清视频| 久久久久精品国产欧美久久久| 日韩欧美 国产精品| 成在线人永久免费视频| www.精华液| 精品福利观看| 国产成年人精品一区二区| 成人午夜高清在线视频| 免费看日本二区| 婷婷精品国产亚洲av| 亚洲av美国av| 国产亚洲av嫩草精品影院| 黄色毛片三级朝国网站| 欧美日本亚洲视频在线播放| 久久久久国内视频| 成人高潮视频无遮挡免费网站| 亚洲性夜色夜夜综合| 国产精品野战在线观看| 精品久久久久久久毛片微露脸| 看黄色毛片网站| 丰满的人妻完整版| 欧美日韩亚洲国产一区二区在线观看| 久久这里只有精品中国| 中文字幕最新亚洲高清| 香蕉av资源在线| 97超级碰碰碰精品色视频在线观看| 又粗又爽又猛毛片免费看| 别揉我奶头~嗯~啊~动态视频| 一边摸一边做爽爽视频免费| 男人的好看免费观看在线视频 | or卡值多少钱| 久久国产精品人妻蜜桃| 欧美av亚洲av综合av国产av| 制服诱惑二区| 精品不卡国产一区二区三区| 亚洲一码二码三码区别大吗| 成人一区二区视频在线观看| 精品国产美女av久久久久小说| 亚洲欧美激情综合另类| 免费在线观看影片大全网站| 丝袜人妻中文字幕| 99国产精品一区二区三区| 久久久久久大精品| 亚洲 欧美一区二区三区| 久久久久久久久久黄片| 亚洲第一电影网av| 精品久久久久久,| 午夜精品久久久久久毛片777| 中文字幕高清在线视频| av在线播放免费不卡| 桃色一区二区三区在线观看| 91字幕亚洲| 欧美色视频一区免费| 少妇熟女aⅴ在线视频| АⅤ资源中文在线天堂| 亚洲avbb在线观看| 亚洲国产日韩欧美精品在线观看 | 无限看片的www在线观看| 日韩欧美三级三区| 欧美中文综合在线视频| 日韩欧美精品v在线| www.www免费av| 婷婷精品国产亚洲av| 国产精品日韩av在线免费观看| 国产单亲对白刺激| 婷婷亚洲欧美| or卡值多少钱| 黄色a级毛片大全视频| 国产欧美日韩精品亚洲av| 国产精品野战在线观看| 久久中文字幕一级| 成年版毛片免费区| 最近最新中文字幕大全免费视频| 又紧又爽又黄一区二区| 久久九九热精品免费| 身体一侧抽搐| 国产成人一区二区三区免费视频网站| 在线视频色国产色| 色尼玛亚洲综合影院| 黄片小视频在线播放| 免费在线观看日本一区| 久久久国产精品麻豆| 亚洲国产欧美网| 一个人免费在线观看电影 | 搡老岳熟女国产| 成人三级做爰电影| 国产精品免费一区二区三区在线| 久久午夜综合久久蜜桃| 哪里可以看免费的av片| 黄色a级毛片大全视频| 欧美黑人欧美精品刺激| 亚洲av中文字字幕乱码综合| 丝袜美腿诱惑在线| 亚洲最大成人中文| 熟女电影av网| 亚洲av第一区精品v没综合| 精品福利观看| 午夜福利视频1000在线观看| 又粗又爽又猛毛片免费看| 国产日本99.免费观看| 日韩欧美精品v在线| 亚洲国产中文字幕在线视频| 男女床上黄色一级片免费看| 日日爽夜夜爽网站| 欧美日韩亚洲综合一区二区三区_| 国产伦在线观看视频一区| 日韩av在线大香蕉| 在线观看免费视频日本深夜| 亚洲一卡2卡3卡4卡5卡精品中文| 成人国产一区最新在线观看| 国内精品久久久久久久电影| 男人舔女人下体高潮全视频| svipshipincom国产片| 丰满人妻一区二区三区视频av | 在线观看美女被高潮喷水网站 | 色综合站精品国产| 国产精品野战在线观看| 舔av片在线| 国产精品一区二区三区四区免费观看 | 一进一出抽搐动态| 久久国产乱子伦精品免费另类| 18禁黄网站禁片午夜丰满| 三级男女做爰猛烈吃奶摸视频| 免费看十八禁软件| 日韩欧美 国产精品| 亚洲人成伊人成综合网2020| 亚洲精品久久成人aⅴ小说| 久久久久久久久免费视频了| 亚洲中文av在线| 搞女人的毛片| 国产免费av片在线观看野外av| 在线免费观看的www视频| 精品日产1卡2卡| 午夜影院日韩av| 亚洲人与动物交配视频| 亚洲中文字幕一区二区三区有码在线看 | 国内少妇人妻偷人精品xxx网站 | 欧美人与性动交α欧美精品济南到| 一级黄色大片毛片| cao死你这个sao货| 欧美日韩瑟瑟在线播放| 国产一区二区三区在线臀色熟女| 精品久久久久久久人妻蜜臀av| 波多野结衣高清作品| 中文在线观看免费www的网站 | 蜜桃久久精品国产亚洲av| 神马国产精品三级电影在线观看 | 国产成年人精品一区二区| 国产1区2区3区精品| а√天堂www在线а√下载| 日韩中文字幕欧美一区二区| 后天国语完整版免费观看| 午夜视频精品福利| www国产在线视频色| 宅男免费午夜| 在线国产一区二区在线| 日日干狠狠操夜夜爽| 精品一区二区三区视频在线观看免费| 成人av在线播放网站| 亚洲自拍偷在线| 亚洲第一电影网av| 久久久久久大精品| 国产精品一区二区精品视频观看| 国产熟女午夜一区二区三区| 日韩成人在线观看一区二区三区| 一本精品99久久精品77| 久久香蕉国产精品| 一级毛片高清免费大全| cao死你这个sao货| 三级国产精品欧美在线观看 | 亚洲国产日韩欧美精品在线观看 | 久久中文字幕人妻熟女| 变态另类成人亚洲欧美熟女| 久久久国产成人免费| 亚洲自拍偷在线| 欧美大码av| 国产一区二区激情短视频| 欧美乱码精品一区二区三区| av视频在线观看入口| 久久久久久免费高清国产稀缺| 亚洲一卡2卡3卡4卡5卡精品中文| 国产一区在线观看成人免费| 男女那种视频在线观看| 91av网站免费观看| 一区二区三区激情视频| av片东京热男人的天堂| 国产欧美日韩一区二区三| 成人精品一区二区免费| 麻豆av在线久日| 一进一出抽搐gif免费好疼| 久久久久久亚洲精品国产蜜桃av| 国产精品av视频在线免费观看| 男女那种视频在线观看| 日韩欧美免费精品| 国产精品久久久久久久电影 | 亚洲人成77777在线视频| 又黄又爽又免费观看的视频| 1024手机看黄色片| 久久国产乱子伦精品免费另类| 亚洲人成网站高清观看| а√天堂www在线а√下载| 999久久久精品免费观看国产| www国产在线视频色| av在线播放免费不卡| 精品国内亚洲2022精品成人| 日日干狠狠操夜夜爽| 999精品在线视频| 精品午夜福利视频在线观看一区| 亚洲精品美女久久久久99蜜臀| 搡老熟女国产l中国老女人| 色精品久久人妻99蜜桃| 亚洲真实伦在线观看| svipshipincom国产片| or卡值多少钱| 国产精品久久久久久久电影 | 亚洲欧美日韩高清专用| 97人妻精品一区二区三区麻豆| 看免费av毛片| av视频在线观看入口| 12—13女人毛片做爰片一| 国产激情久久老熟女| 国产av不卡久久| 国内精品一区二区在线观看| 久9热在线精品视频| 美女大奶头视频| 一级毛片精品| cao死你这个sao货| 神马国产精品三级电影在线观看 | 久久精品综合一区二区三区| 日韩精品中文字幕看吧| 欧美日韩福利视频一区二区| 中文字幕人成人乱码亚洲影| 日日夜夜操网爽| 精品久久久久久久末码| 欧美+亚洲+日韩+国产| www.熟女人妻精品国产| 成在线人永久免费视频| 999久久久精品免费观看国产| 特大巨黑吊av在线直播| 国产黄a三级三级三级人| 免费无遮挡裸体视频| 无人区码免费观看不卡| 婷婷六月久久综合丁香| 欧美高清成人免费视频www| 国产精华一区二区三区| 久久人人精品亚洲av| 精品久久久久久久久久免费视频| 精品免费久久久久久久清纯| 999久久久国产精品视频| svipshipincom国产片| 嫩草影院精品99| 亚洲精品中文字幕在线视频| 久久久久久亚洲精品国产蜜桃av| 国产一区在线观看成人免费| 亚洲欧洲精品一区二区精品久久久| 日韩精品免费视频一区二区三区| 我要搜黄色片| 婷婷亚洲欧美| 亚洲av第一区精品v没综合| 亚洲色图av天堂| 禁无遮挡网站| 亚洲av成人不卡在线观看播放网| 欧美色欧美亚洲另类二区| 美女午夜性视频免费| 国产人伦9x9x在线观看| 床上黄色一级片| 国产午夜精品论理片| 老鸭窝网址在线观看|