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

    基于STM32的多串口并行傳輸系統(tǒng)設(shè)計

    2019-01-30 01:55:00,
    計算機(jī)測量與控制 2019年1期
    關(guān)鍵詞:讀卡線程字節(jié)

    ,

    (1.武漢紡織大學(xué) 數(shù)學(xué)與計算機(jī)學(xué)院,武漢 430200; 2.湖北大學(xué) 教育學(xué)院,武漢 430062)

    0 引言

    串口作為一種常用的串行通訊接口,由于其標(biāo)準(zhǔn)發(fā)布時間早、使用簡單,使其在工控和測量設(shè)備以及部分通信設(shè)備中有著廣泛的應(yīng)用。很多模塊設(shè)備提供一個串口來進(jìn)行通訊,如導(dǎo)航定位模塊、讀卡器模塊、打印模塊和無線通信模塊等。當(dāng)一些應(yīng)用需要同時接有多個串口模塊時,如果系統(tǒng)串口有限,可以使用分時方式與各個模塊進(jìn)行通訊,但是在一些實(shí)時突發(fā)傳輸?shù)膱龊?,這種分時傳輸方式顯然不能夠滿足使用要求,于是對系統(tǒng)的物理串口數(shù)目需求越來越多。在嵌入式應(yīng)用系統(tǒng)中,很多嵌入式處理器的串口數(shù)目通常只有1-3個,如果有更多串口需求就需要使用軟件或外部電路擴(kuò)充串口。

    串口擴(kuò)充方法很多,對實(shí)時突發(fā)性沒有要求時,可以通過模擬開關(guān)切換來分時使用串口[1];節(jié)約成本可以使用通用IO口來模擬串口[2];追求穩(wěn)定性和控制簡單可以使用一些專用的串口擴(kuò)展芯片[3-4];高速和更靈活的應(yīng)用可利用FPGA芯片來實(shí)現(xiàn)[5]。

    一些嵌入式處理器廠商也意識到多串口的需求,在處理器中提供了多個串口功能,相對于其他串口擴(kuò)充的方式,在處理器中提供多串口的方式具有可靠性高、傳輸速率快和實(shí)現(xiàn)容易的特點(diǎn),且外圍電路結(jié)構(gòu)簡單。如ST公司的STM32F427/429就是其中之一。該系列芯片基于ARM Cortex-M4內(nèi)核,最高主頻能達(dá)到180 Mhz,擁有256K SRAM和512 K以上的FLASH,最多能同時提供8個串口、一個USB接口和一個以太網(wǎng)MII/RMII接口[6]。

    系統(tǒng)要求采集7路讀卡信息,上位機(jī)不可用時可獨(dú)立工作,讀卡后對比已錄入的卡號給出相應(yīng)的提示和控制動作,并記錄相應(yīng)的信息。在有上位機(jī)時,可通過網(wǎng)絡(luò)或串口將相關(guān)信息上傳到上位機(jī),并預(yù)留了USB接口。

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

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

    由于要求同時接收7路讀卡信息,可選一個串口或網(wǎng)口與上位機(jī)通信,一共需要8個串口和一個網(wǎng)絡(luò)接口。系統(tǒng)選用STM32F429VIT6芯片,由于傳輸距離有數(shù)十米左右,采用RS485接口傳輸,每個串口前面都接有RS485轉(zhuǎn)換芯片,各由一個GPIO端口控制轉(zhuǎn)換芯片的收發(fā),RS485轉(zhuǎn)換芯片可選max3485等芯片,需要隔離功能時可選ADM2582等芯片。STM32F429VIT6只有MII/RMII接口并沒有PHY(物理層)接口,需要外接PHY網(wǎng)絡(luò)接口芯片,可選LAN8742、DP83848等芯片,這里選用的是DP83848。USB接口作為備選上位機(jī)通信方案,使用全速模式,無需外接接口芯片。系統(tǒng)另外外接了一片大容量SPI FLASH,用于保存卡號和記錄讀卡等信息。系統(tǒng)結(jié)構(gòu)和8個二線串口的引腳分配見圖1所示。

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

    1.2 系統(tǒng)軟件結(jié)構(gòu)

    STM32F429各個模塊的初始化配置代碼使用圖形化軟件配置工具STM32CubeMX生成,該軟件可用圖形化向?qū)ё詣由沙跏蓟a[7],庫版本是STM32Cube_FW_F4_V1.16.0。網(wǎng)絡(luò)功能選用了輕量級TCP/IP協(xié)議棧lwIP,由于系統(tǒng)需要多任務(wù)和消息隊(duì)列等功能,使用了FREERTOS操作系統(tǒng)[8],編譯環(huán)境為MDK-Arm 5.23。4個線程分配如下:網(wǎng)絡(luò)通信用一個線程;7個串口接收使用DMA方式,共用一個線程;與PC通信串口收發(fā)各用一個線程。

    2 軟件設(shè)計

    2.1 串口程序設(shè)計

    STM32F429的串口在其波特率的16倍采樣率下,最大波特率可達(dá)5.62 Mbit/s,在8倍采樣率下最大波特率可達(dá)11.25 Mbit/s,而且串口沒有硬件FIFO,每個串口只有一個接收和一個發(fā)送寄存器[9],中斷接收方式已經(jīng)不能保證數(shù)據(jù)的可靠接收。即使在低波特率下,微控制器每接收一個字符都要進(jìn)入一次中斷處理程序,會使微控制器的處理時間大量浪費(fèi),再加上8個串口可能同時接收,這時就需要用到微控制器的DMA串口接收功能。串口發(fā)送一個字時,會存入到發(fā)送數(shù)據(jù)寄存器TDR,然后由串口硬件逐位發(fā)送,此時跟控制器的處理時間沒有關(guān)系;而串口發(fā)送字的字間間隔時間一般沒有明顯的時序要求,所以串口發(fā)送可以不采用DMA方式。

    2.1.1 DMA配置

    STM32F429擁有2個DMA控制器,每個控制器可與8個數(shù)據(jù)流中的一個連接,每個數(shù)據(jù)流可達(dá)8個通道(請求),從其DMA請求映射表上可知8個串口的接收可以配置到2個DMA控制器的不同通道上,表1為8個串口接收功能的DMA配置。如果發(fā)送也要使用DMA方式,在表1配置的基礎(chǔ)上,只有4個串口可以使用DMA發(fā)送功能,見表2。

    表1 8個串口接收功能的DMA配置

    表2 在表1基礎(chǔ)上4個串口發(fā)送功能的DMA配置

    每個串口接收DMA請求的配置如下:

    DMA模式是循環(huán)方式,DMA源地址是串口接收數(shù)據(jù)寄存器RDR,屬于外圍設(shè)備,總是從該地址讀,源地址不知遞增,DMA目的地址是SRAM存儲器,從RDR讀取后依次存放,所以目的地址要遞增。數(shù)據(jù)寬度根據(jù)串口設(shè)置選擇,如果數(shù)據(jù)和校驗(yàn)位一起不超過8位則選一個字節(jié),否則選半字長。

    2.1.2 循環(huán)隊(duì)列

    在串口和DMA初始化之后,運(yùn)行HAL_UART_Receive_DMA函數(shù)多次開啟多個串口的DMA接收,其形參分別為各串口句柄、接收緩存區(qū)和待接收的數(shù)據(jù)長度。該函數(shù)非阻塞,運(yùn)行后立即返回。隨后開始DMA自動接收,接收的串口數(shù)據(jù)依次存放在接收緩存區(qū)中,超過待接收的長度后,循環(huán)覆蓋接收緩存區(qū)。如果實(shí)現(xiàn)HAL_UART_RxHalfCpltCallback回調(diào)函數(shù),會在收到待收數(shù)據(jù)的一半時調(diào)用,實(shí)現(xiàn)HAL_UART_RxCpltCallback回調(diào)函數(shù),會在收到所有數(shù)據(jù)后調(diào)用。要獲取其他接收到的數(shù)據(jù)長度時要使用__HAL_DMA_GET_COUNTER (__HANDLE__)宏,該宏返回DMA中剩余要傳輸?shù)拈L度,因此接收到的長度等于待接收的數(shù)據(jù)長度減去該宏返回的值,當(dāng)接收到所有待接收長度的數(shù)據(jù)后,該宏返回0,此時處理不當(dāng)會丟失數(shù)據(jù)。

    可以把串口接收DMA緩存看作一個循環(huán)隊(duì)列,寫該緩存由DMA控制,用戶無法干預(yù),寫滿后自動從頭開始,同時更新剩余要傳輸?shù)拈L度。如果用戶無法在緩存循環(huán)覆蓋前讀取數(shù)據(jù),數(shù)據(jù)就會丟失,可根據(jù)情況調(diào)整DMA緩存長度UART_SIZE,即使發(fā)生覆蓋,最近的長度為UART_SIZE的數(shù)據(jù)是可讀取的,這跟普通循環(huán)隊(duì)列有所不同。一次DMA已傳輸?shù)臄?shù)據(jù)長度為len=UART_SIZE-_HAL_DMA_GET_COUNTER,用戶維護(hù)已讀數(shù)據(jù)長度read和已接收到的數(shù)據(jù)總長度total,初始都賦值為0,在UART_RxCpltCallback中更新接收到的數(shù)據(jù)總長度total+= UART_SIZE,而該回調(diào)函數(shù)只在DMA接收完數(shù)據(jù)后調(diào)用。實(shí)現(xiàn)ReadFromDMA函數(shù)從指定串口DMA緩存區(qū)讀取指定長度數(shù)據(jù),并返回實(shí)際讀取的數(shù)據(jù)長度,該函數(shù)非阻塞。

    圖2為循環(huán)接收緩存示意,表3列舉了UART_SIZE=8時DMA接收緩存處理實(shí)例。ReadFromDMA函數(shù)首先判斷總長度total和已讀長度read的大小,如read大于等于total,說明本次DMA接收數(shù)據(jù)長度還沒到UART_SIZE,可讀數(shù)據(jù)緩存區(qū)從read Mod UART_SIZE開始,長度為len-(read Mod UART_SIZE),如表3中第1和第2數(shù)據(jù)行。如果read小于total,要判斷接收數(shù)據(jù)總的長度(total+len)-read與緩存長度的大小,如果前者大,說明上次讀后發(fā)生循環(huán)覆蓋,說明有數(shù)據(jù)沒有及時讀取,已經(jīng)覆蓋了部分?jǐn)?shù)據(jù),可讀數(shù)據(jù)緩存區(qū)從len后面開始,可能的數(shù)據(jù)長度就是UART_SIZE,如表3中第4和第5數(shù)據(jù)行;如前者小于等于后者,可讀數(shù)據(jù)緩存區(qū)從read Mod UART_SIZE開始,長度為UART_SIZE -(read Mod UART_SIZE)+ len,如表3中第3數(shù)據(jù)行。實(shí)際UART_SIZE可取128、256等,這樣上述的Mod在C語言中的操作read%UART_SIZE可替換為read&(UART_SIZE-1)。

    圖2 DMA接收緩存

    totalreadlen接收總長可讀起始地址可讀長度數(shù)據(jù)丟失024422否81161433否161111736否161172378是802058558是

    2.1.3 超時處理

    串口接收的數(shù)據(jù)幀可能是不定長或定長的,不定長的數(shù)據(jù)幀需要解析其協(xié)議,得到該幀數(shù)據(jù)長度,從而讀取完整的一幀數(shù)據(jù),定長的數(shù)據(jù)幀直接接收定長數(shù)據(jù)即可。不論定長或不定長的數(shù)據(jù)幀,當(dāng)接收到一個不完整的數(shù)據(jù)幀時,如果沒有幀的超時處理,會把后面一幀部分?jǐn)?shù)據(jù)當(dāng)作前面幀的一部分,會導(dǎo)致大量后續(xù)幀數(shù)據(jù)錯誤,甚至可能一直無法接收到一個正確的完整數(shù)據(jù)幀。

    串口超時接收可以利用HAL_GetTick函數(shù)實(shí)現(xiàn),該函數(shù)返回系統(tǒng)運(yùn)行的ticks數(shù)(1毫秒),通過接收前后調(diào)用獲取時間差以及待接收和實(shí)際接收的數(shù)據(jù)長度來判斷是否超時。

    2.1.4 幀協(xié)議處理

    一般工程中的串口協(xié)議相對簡單,但是在實(shí)際中經(jīng)常會遇到一些問題。如首次收發(fā)失敗,后續(xù)正常;收發(fā)失敗后重試多次才能成功,甚至不可恢復(fù);RS485需要多發(fā)一個字節(jié)等等,這些問題很大部分都是軟件引起的。如串口初始化不當(dāng)可能導(dǎo)致首次收發(fā)失敗,對RS485收發(fā)芯片的收發(fā)引腳控制時機(jī)不當(dāng)導(dǎo)致需多發(fā)數(shù)據(jù)。下面通過工程中遇到的兩個典型幀協(xié)議說明接收的處理方法,這里只討論數(shù)據(jù)的完整接收,并不涉及到數(shù)據(jù)的校驗(yàn),校驗(yàn)信息可以包含在數(shù)據(jù)中。

    當(dāng)數(shù)據(jù)幀是定長時,例如如表4所示的一種讀卡器的協(xié)議,可以直接一次接收18個字節(jié),然后判斷結(jié)束標(biāo)記字符。不加超時功能時,一旦有非18個字節(jié)數(shù)據(jù),例如只收到16字節(jié),數(shù)據(jù)不足,會用接收的下一幀數(shù)據(jù)的前2字節(jié)補(bǔ)入,這樣導(dǎo)致后續(xù)讀到的數(shù)據(jù)都有誤。增加接收18個字節(jié)的超時功能后,如只收到部分?jǐn)?shù)據(jù),超時時間到會放棄該次接收的數(shù)據(jù),后一幀數(shù)據(jù)正常則能恢復(fù)正常接收。這種方法啟動超時的時刻需要保證是在接收到第一個字節(jié)后,如果不是,例如啟動接收就開始超時計時,數(shù)據(jù)可能在超時結(jié)束的時候才收到部分?jǐn)?shù)據(jù),另外一部分?jǐn)?shù)據(jù)就丟失了,如圖3所示。如果某種情況下收到的數(shù)據(jù)多于18字節(jié),如果前18字節(jié)不是完整數(shù)據(jù),也會導(dǎo)致數(shù)據(jù)丟失。這些異常一般情況下出現(xiàn)的機(jī)率不大,但在收發(fā)方調(diào)試的情況下經(jīng)常出現(xiàn)。

    表4 定長數(shù)據(jù)幀示例

    圖3 數(shù)據(jù)在超時即將結(jié)束時出現(xiàn)

    系統(tǒng)采用的接收方法流程如圖4所示,就是每接收到18個字節(jié)判斷最后兩個字節(jié)是否是0D 0A,是則為接收到完整一幀,否則丟棄前面一個字節(jié),再接收一個字節(jié),然后判斷最后兩個字節(jié)是否是0D 0A,如此循環(huán)。每接收一個字節(jié)后判斷是否超時,超時后丟棄所有接收的內(nèi)容。算法保存最近接收的18個字節(jié)內(nèi)容,沒有使用循環(huán)隊(duì)列,所以當(dāng)收到的18個字節(jié)不是完整幀時,丟棄前面一字節(jié),然后后面字節(jié)依次左移一字節(jié)??梢姳?這種幀標(biāo)記在數(shù)據(jù)后面的協(xié)議并不方便接收處理。

    圖4 定長協(xié)議幀接收處理流程

    當(dāng)數(shù)據(jù)幀是不定長時,例如表5所示的協(xié)議,則處理流程如圖5所示。比較定長和不定長數(shù)據(jù)幀的處理流程,可以發(fā)現(xiàn)并不是串口通信協(xié)議簡單,處理就簡單,一個好的串口協(xié)議才能簡化程序的處理流程。

    表5 不定長數(shù)據(jù)幀示例

    圖5 不定長協(xié)議幀接收處理流程

    2.2 上位機(jī)通信串口

    系統(tǒng)工作時,要求隨時可以接收上位機(jī)的命令,所以單獨(dú)使用一個線程接收上位機(jī)命令并處理。在接收到讀卡信息后,有可能設(shè)置讀卡信息實(shí)時上傳,如果加上上位機(jī)的通信應(yīng)答,可能有多條串口數(shù)據(jù)要發(fā)送,這些發(fā)送的動作可能在不同的線程中,而與上位機(jī)通信串口只有一個,由于線程的調(diào)度可能會導(dǎo)致一條數(shù)據(jù)發(fā)送了部分然后切換到另外一個線程發(fā)送數(shù)據(jù),從而導(dǎo)致接收的數(shù)據(jù)混亂。這就要求串口發(fā)送必需保證一個數(shù)據(jù)幀完全發(fā)送完后才能發(fā)送另外一幀,這里采用一個獨(dú)立的線程單獨(dú)處理與向上位機(jī)發(fā)送數(shù)據(jù),發(fā)送的數(shù)據(jù)通過消息隊(duì)列排隊(duì),串口向上位機(jī)發(fā)送流程圖如圖6所示。

    圖6 串口向上位機(jī)發(fā)送流程圖

    雖然7個串口可能同時接收數(shù)據(jù),然后與上位機(jī)通信,但是每個串口的接收間隔卻較長(刷卡間隔一般為秒級),在此間隔內(nèi)所有數(shù)據(jù)都可以上傳到上位機(jī),對于8個串口,消息隊(duì)列長度不小于8即可。消息隊(duì)列中帶的是數(shù)據(jù)對象的地址,入隊(duì)列時需要各個串口使用不同的發(fā)送緩存區(qū),在此使用了動態(tài)內(nèi)存分配,消息取出后再釋放。

    2.3 網(wǎng)絡(luò)傳輸設(shè)計

    網(wǎng)絡(luò)協(xié)議棧使用STM32CubeMX自帶的輕量級TCP/IP協(xié)議棧lwIP,是一個小型的開源協(xié)議棧,實(shí)現(xiàn)的重點(diǎn)是保持TCP主要功能的基礎(chǔ)上減小對系統(tǒng)資源的占用,它需要的RAM和ROM在幾十K以下[10]。lwIP有3種編程接口,分別是RAW、NETCONN和SOCKET。RAW使用回調(diào)機(jī)制,編程接口不需要操作系統(tǒng)的支持,但其編程接口稍復(fù)雜;NETCONN接口相對SOCKET接口來說更底層,SOCKET接口被廣泛熟知,使用更方便,這兩種編程接口都需要有操作系統(tǒng)的支持。

    這里使用SOCKET方式編程,采用UDP協(xié)議傳輸,網(wǎng)絡(luò)通信線程流程如圖7所示。網(wǎng)絡(luò)通信速度相比串口要快很多,只用了一個線程來處理數(shù)據(jù)收發(fā),多個串口讀卡信息同樣通過消息隊(duì)列排隊(duì),再經(jīng)過網(wǎng)絡(luò)接口發(fā)送至上位機(jī)。

    圖7 網(wǎng)絡(luò)通信線程流程圖

    3 系統(tǒng)測試與分析

    網(wǎng)絡(luò)測試中發(fā)現(xiàn)如上電時不插網(wǎng)線,系統(tǒng)啟動后再插入網(wǎng)線,網(wǎng)絡(luò)功能無法使用。從現(xiàn)象看可能是網(wǎng)絡(luò)狀態(tài)改變時協(xié)議棧沒有得到通知,通過下面步驟解決了這個問題。實(shí)現(xiàn)網(wǎng)絡(luò)狀態(tài)發(fā)生改變時的回調(diào)函數(shù)ethernetif_notify_conn_ changed,在該函數(shù)中判斷連接標(biāo)記,如果不是UP狀態(tài),首先調(diào)用netif_set_link_up函數(shù),再更改連接標(biāo)記。

    解決上述問題后發(fā)現(xiàn)在運(yùn)行中插拔網(wǎng)線后,網(wǎng)絡(luò)也無法正常工作。當(dāng)插拔網(wǎng)線的時候,PHY芯片會產(chǎn)生外部中斷,在這個中斷中重新初始化網(wǎng)絡(luò),外部中斷要手工增加。首先將DP83848的第7腳PWR_DOWN/INT配置為中斷輸出,當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生改變時,該引腳電平會被拉低,配置微控制器對應(yīng)的引腳為下降沿觸發(fā)中斷,在中斷處理函數(shù)中后讀DP83848的中斷狀態(tài)寄存器,確定是網(wǎng)絡(luò)狀態(tài)發(fā)生改變時再調(diào)用ETH_MACDMAConfig和HAL_ETH_Init函數(shù),重新初始化網(wǎng)絡(luò)。

    本系統(tǒng)接收特點(diǎn)之一是7路串口數(shù)據(jù)可能同時到達(dá),在這種情況下,DMA接收方式可以及時讀取并保存每個串口RDR中的數(shù)據(jù)。另一個特點(diǎn)是讀卡都有一個秒級的間隔時間,每路讀卡數(shù)據(jù)經(jīng)波特率為115200 b/s的串口上傳至上位機(jī)需要2毫秒不到的時間,另外由于發(fā)送隊(duì)列的存在,不論多路讀卡信息何時到,讀卡間隔時間也足以滿足數(shù)據(jù)上傳。

    讀卡器波特率為9600 b/s,系統(tǒng)7路串口也設(shè)為該速率。測試方案一為7路同時讀卡,手工刷卡很難做到這一點(diǎn),采用模擬讀卡的方式,直接向讀卡串口同時發(fā)送卡信息,間隔2秒,測試中7路讀卡接收無數(shù)據(jù)丟失。測試方案二為等間隔讀卡,依次輪流向7路串口發(fā)送卡信息,每次發(fā)送間隔280 ms,上傳到上位機(jī)的數(shù)據(jù)無丟失。測試方案三為隨機(jī)多次模擬和人工刷卡,模擬讀卡要設(shè)置好每路發(fā)送間隔時間大于2秒,多次測試7路讀卡串口無數(shù)據(jù)丟失,上傳到上位機(jī)的數(shù)據(jù)無丟失。

    4 結(jié)束語

    利用STM32F429片內(nèi)的多串口和網(wǎng)絡(luò)接口功能,設(shè)計了多串口并發(fā)通信系統(tǒng),接收多路同時到達(dá)的數(shù)據(jù),相對于其他串口擴(kuò)充的方法,無外擴(kuò)電路,速度高且各串口可工作于不同的速率,測試表明多并發(fā)串口傳輸無數(shù)據(jù)幀丟失。受限于了讀卡器波特率和要求一路串口上傳至上位機(jī),并沒有測試更高的傳輸速率,STM32F429的DMA模塊每通道有一個16字節(jié)的FIFO,更高的串口傳輸速率可以考慮使用。該設(shè)計可供相似應(yīng)用參考,也可作為網(wǎng)絡(luò)多串口服務(wù)器和USB多串口采集系統(tǒng)參考。

    猜你喜歡
    讀卡線程字節(jié)
    煤礦井下車輛乘人防漏識別讀卡基站設(shè)計
    煤礦安全(2022年8期)2022-08-16 03:00:24
    No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
    智能會議預(yù)約終端內(nèi)置讀卡器性能的改善*
    No.10 “字節(jié)跳動手機(jī)”要來了?
    簡談MC7字節(jié)碼
    淺談linux多線程協(xié)作
    基于LINUX的PBOC3.0關(guān)鍵讀卡技術(shù)的研究與應(yīng)用
    Linux線程實(shí)現(xiàn)技術(shù)研究
    停車場系統(tǒng)存在的中遠(yuǎn)距離讀卡干擾問題
    人類進(jìn)入“澤它時代”
    三上悠亚av全集在线观看| 国产精品国产三级国产专区5o| 9色porny在线观看| 夫妻午夜视频| 日韩伦理黄色片| 欧美日韩一区二区视频在线观看视频在线| av视频免费观看在线观看| 黑人巨大精品欧美一区二区蜜桃| 久久国内精品自在自线图片| 久久久久人妻精品一区果冻| 国产成人精品婷婷| 中文精品一卡2卡3卡4更新| 99热国产这里只有精品6| 亚洲av中文av极速乱| 伊人亚洲综合成人网| 少妇 在线观看| 9色porny在线观看| 国产精品 欧美亚洲| 菩萨蛮人人尽说江南好唐韦庄| 日本色播在线视频| 只有这里有精品99| 国产福利在线免费观看视频| 亚洲熟女精品中文字幕| 久久久久久伊人网av| 亚洲欧洲日产国产| 最近中文字幕高清免费大全6| 国产精品久久久久成人av| 丰满少妇做爰视频| 色婷婷久久久亚洲欧美| 亚洲av综合色区一区| 丝袜喷水一区| 亚洲精品美女久久久久99蜜臀 | 亚洲经典国产精华液单| 男女无遮挡免费网站观看| 国产精品久久久av美女十八| 亚洲欧美色中文字幕在线| 九九爱精品视频在线观看| 97人妻天天添夜夜摸| 亚洲国产欧美网| 国产高清国产精品国产三级| 国产男女内射视频| 在线观看三级黄色| 国产成人精品婷婷| 久久精品国产自在天天线| 成人手机av| 亚洲精品久久久久久婷婷小说| 国产成人精品久久久久久| 丝袜美腿诱惑在线| 狠狠婷婷综合久久久久久88av| 九草在线视频观看| 国产精品不卡视频一区二区| 久久毛片免费看一区二区三区| 国产成人精品一,二区| 伊人久久国产一区二区| 男女午夜视频在线观看| 高清欧美精品videossex| 大话2 男鬼变身卡| 男女无遮挡免费网站观看| 啦啦啦啦在线视频资源| 秋霞在线观看毛片| av电影中文网址| www日本在线高清视频| 久久精品久久精品一区二区三区| 久久久久人妻精品一区果冻| 中文字幕最新亚洲高清| 久久久久人妻精品一区果冻| 国产亚洲午夜精品一区二区久久| 久久久久久伊人网av| 日韩中文字幕视频在线看片| 久久久精品国产亚洲av高清涩受| 欧美精品一区二区免费开放| 亚洲精品日韩在线中文字幕| 视频在线观看一区二区三区| 亚洲国产精品一区二区三区在线| 国产免费福利视频在线观看| 母亲3免费完整高清在线观看 | 亚洲精品视频女| 你懂的网址亚洲精品在线观看| 国产免费福利视频在线观看| 免费观看在线日韩| 亚洲,欧美精品.| 久久久欧美国产精品| 国产淫语在线视频| 成年女人在线观看亚洲视频| 少妇被粗大的猛进出69影院| 18+在线观看网站| 熟女av电影| 国产免费现黄频在线看| 国产高清不卡午夜福利| 久久国产精品大桥未久av| 岛国毛片在线播放| 黄片小视频在线播放| 国产成人午夜福利电影在线观看| 少妇被粗大的猛进出69影院| 日韩在线高清观看一区二区三区| 欧美老熟妇乱子伦牲交| 久久久久国产网址| 秋霞伦理黄片| 国产精品香港三级国产av潘金莲 | 久久久久久人人人人人| 亚洲精品成人av观看孕妇| 亚洲国产精品成人久久小说| 欧美精品亚洲一区二区| 免费黄色在线免费观看| 侵犯人妻中文字幕一二三四区| 亚洲精品成人av观看孕妇| 老汉色∧v一级毛片| 999精品在线视频| 飞空精品影院首页| 欧美成人午夜免费资源| 国产亚洲精品第一综合不卡| 国产午夜精品一二区理论片| 亚洲男人天堂网一区| 久久精品国产亚洲av涩爱| 午夜福利在线免费观看网站| 美女脱内裤让男人舔精品视频| 午夜福利网站1000一区二区三区| av.在线天堂| 香蕉丝袜av| 高清黄色对白视频在线免费看| 天天躁夜夜躁狠狠久久av| 久久精品国产亚洲av高清一级| 最近最新中文字幕大全免费视频 | 亚洲欧美一区二区三区久久| 人妻人人澡人人爽人人| 午夜日韩欧美国产| 99久国产av精品国产电影| 午夜激情av网站| 久久久久久免费高清国产稀缺| 国产成人欧美| 久久精品国产a三级三级三级| 亚洲国产毛片av蜜桃av| 欧美在线黄色| 久久这里有精品视频免费| 国产精品二区激情视频| 岛国毛片在线播放| 亚洲,欧美,日韩| 一本一本久久a久久精品综合妖精 国产伦在线观看视频一区 | 捣出白浆h1v1| 免费女性裸体啪啪无遮挡网站| 汤姆久久久久久久影院中文字幕| 国产av码专区亚洲av| a级片在线免费高清观看视频| 国产毛片在线视频| 夫妻性生交免费视频一级片| 精品人妻偷拍中文字幕| av福利片在线| av又黄又爽大尺度在线免费看| 亚洲情色 制服丝袜| 久久韩国三级中文字幕| 午夜日韩欧美国产| 午夜91福利影院| 97精品久久久久久久久久精品| 飞空精品影院首页| 考比视频在线观看| 国产在线视频一区二区| 人人妻人人澡人人爽人人夜夜| av网站免费在线观看视频| 欧美日韩精品成人综合77777| 精品一区二区三区四区五区乱码 | 狠狠精品人妻久久久久久综合| 久久国产精品男人的天堂亚洲| 深夜精品福利| 香蕉丝袜av| 男女啪啪激烈高潮av片| 国产精品无大码| 日日撸夜夜添| 久久影院123| 2021少妇久久久久久久久久久| 97人妻天天添夜夜摸| 成人二区视频| 国产日韩欧美亚洲二区| 亚洲第一av免费看| 精品少妇黑人巨大在线播放| 99精国产麻豆久久婷婷| 欧美精品一区二区免费开放| 国产一区二区在线观看av| 午夜激情久久久久久久| 卡戴珊不雅视频在线播放| 不卡av一区二区三区| 亚洲三区欧美一区| 自线自在国产av| 亚洲视频免费观看视频| 精品国产乱码久久久久久男人| 免费高清在线观看视频在线观看| 性少妇av在线| 一级片'在线观看视频| 我的亚洲天堂| 欧美国产精品va在线观看不卡| 蜜桃国产av成人99| av在线老鸭窝| 亚洲成av片中文字幕在线观看 | 少妇被粗大猛烈的视频| 欧美日韩亚洲国产一区二区在线观看 | 亚洲精品国产av蜜桃| 男人舔女人的私密视频| 亚洲三级黄色毛片| 欧美日本中文国产一区发布| 久久精品国产亚洲av高清一级| 婷婷色综合大香蕉| 大码成人一级视频| 午夜福利视频精品| 99热全是精品| 精品一区二区三卡| 90打野战视频偷拍视频| 亚洲av中文av极速乱| 美女国产视频在线观看| 午夜免费鲁丝| 国产精品久久久久久精品电影小说| 在线亚洲精品国产二区图片欧美| 欧美变态另类bdsm刘玥| 性高湖久久久久久久久免费观看| 91午夜精品亚洲一区二区三区| 人人妻人人澡人人看| 日本猛色少妇xxxxx猛交久久| 日本爱情动作片www.在线观看| 国产精品熟女久久久久浪| 亚洲欧美日韩另类电影网站| 中文字幕亚洲精品专区| 午夜免费男女啪啪视频观看| 久久人妻熟女aⅴ| 成人国产麻豆网| 亚洲国产精品一区三区| 在线 av 中文字幕| 久久精品国产鲁丝片午夜精品| 秋霞伦理黄片| 精品国产乱码久久久久久男人| 欧美日韩视频精品一区| 夫妻午夜视频| 又黄又粗又硬又大视频| 精品亚洲乱码少妇综合久久| 精品少妇黑人巨大在线播放| 人成视频在线观看免费观看| 精品国产一区二区久久| 欧美精品av麻豆av| 久久久国产一区二区| 男男h啪啪无遮挡| 好男人视频免费观看在线| 久久久久精品性色| 在线观看人妻少妇| 精品酒店卫生间| 18在线观看网站| 久久久久视频综合| 精品卡一卡二卡四卡免费| 国产精品久久久久久精品古装| 亚洲人成网站在线观看播放| 男女下面插进去视频免费观看| 久久这里只有精品19| 制服人妻中文乱码| 曰老女人黄片| 丁香六月天网| 国产毛片在线视频| 男女下面插进去视频免费观看| 精品国产一区二区久久| 精品第一国产精品| 国产精品熟女久久久久浪| 国产亚洲av片在线观看秒播厂| 黄色配什么色好看| 一区二区三区精品91| 一级片'在线观看视频| av国产久精品久网站免费入址| 天堂俺去俺来也www色官网| 精品视频人人做人人爽| 制服丝袜香蕉在线| 久久久久久伊人网av| 一二三四中文在线观看免费高清| 纯流量卡能插随身wifi吗| 91精品三级在线观看| 国产精品 国内视频| 日韩三级伦理在线观看| 一级毛片我不卡| 国产无遮挡羞羞视频在线观看| h视频一区二区三区| 母亲3免费完整高清在线观看 | 国产在视频线精品| av在线app专区| 久久精品人人爽人人爽视色| 成人国产麻豆网| 一二三四中文在线观看免费高清| 国产精品蜜桃在线观看| 国产在线免费精品| 亚洲天堂av无毛| 中国国产av一级| 9热在线视频观看99| 国产日韩欧美亚洲二区| videosex国产| 日本午夜av视频| 日本av手机在线免费观看| 久久人人爽人人片av| 久久狼人影院| 交换朋友夫妻互换小说| 午夜久久久在线观看| 免费日韩欧美在线观看| av在线app专区| 99国产综合亚洲精品| 色吧在线观看| 亚洲欧美清纯卡通| 美女午夜性视频免费| 这个男人来自地球电影免费观看 | 2018国产大陆天天弄谢| 中文字幕精品免费在线观看视频| 晚上一个人看的免费电影| 国产精品二区激情视频| 国产黄色免费在线视频| 国产亚洲午夜精品一区二区久久| 国产精品久久久久久精品电影小说| 亚洲国产看品久久| 精品国产乱码久久久久久男人| 精品国产乱码久久久久久小说| 精品少妇久久久久久888优播| 一区二区三区激情视频| 99久久综合免费| 性色av一级| 欧美黄色片欧美黄色片| 搡女人真爽免费视频火全软件| a 毛片基地| 老汉色av国产亚洲站长工具| 免费不卡的大黄色大毛片视频在线观看| 99九九在线精品视频| 久久久久久久大尺度免费视频| 亚洲国产精品999| 如日韩欧美国产精品一区二区三区| 久久人人爽av亚洲精品天堂| 欧美日韩亚洲高清精品| 人人妻人人澡人人爽人人夜夜| 七月丁香在线播放| 免费在线观看视频国产中文字幕亚洲 | 观看美女的网站| 另类精品久久| 国产毛片在线视频| 亚洲精品自拍成人| 国产日韩一区二区三区精品不卡| 一边摸一边做爽爽视频免费| 欧美人与善性xxx| 国产国语露脸激情在线看| 热re99久久国产66热| 熟妇人妻不卡中文字幕| 久久久久久久久久久免费av| 亚洲av男天堂| 日韩免费高清中文字幕av| av在线老鸭窝| 纵有疾风起免费观看全集完整版| 中文字幕色久视频| 五月天丁香电影| 日韩电影二区| 最近最新中文字幕大全免费视频 | 巨乳人妻的诱惑在线观看| 亚洲精品aⅴ在线观看| av一本久久久久| 晚上一个人看的免费电影| 99国产精品免费福利视频| 欧美bdsm另类| 黄色毛片三级朝国网站| 女人被躁到高潮嗷嗷叫费观| 国产在线免费精品| 人人妻人人澡人人看| 一级毛片我不卡| 国产免费又黄又爽又色| 国产精品 国内视频| 青春草亚洲视频在线观看| 建设人人有责人人尽责人人享有的| 不卡视频在线观看欧美| av免费在线看不卡| 女性被躁到高潮视频| 日本欧美视频一区| 亚洲av欧美aⅴ国产| 色哟哟·www| 一级黄片播放器| 高清视频免费观看一区二区| 精品国产乱码久久久久久小说| 卡戴珊不雅视频在线播放| 亚洲av在线观看美女高潮| 狠狠婷婷综合久久久久久88av| 亚洲精品国产一区二区精华液| 国产精品一二三区在线看| 大香蕉久久网| 中文字幕色久视频| 一二三四在线观看免费中文在| 高清视频免费观看一区二区| 最黄视频免费看| 精品国产国语对白av| 一个人免费看片子| 日韩av不卡免费在线播放| 日本爱情动作片www.在线观看| 黑人巨大精品欧美一区二区蜜桃| 美女脱内裤让男人舔精品视频| 亚洲精品国产一区二区精华液| 日韩中文字幕欧美一区二区 | 欧美国产精品一级二级三级| 老汉色∧v一级毛片| 国产白丝娇喘喷水9色精品| 大码成人一级视频| 性色av一级| 免费高清在线观看日韩| 午夜久久久在线观看| 九九爱精品视频在线观看| 久久免费观看电影| 国精品久久久久久国模美| 97在线人人人人妻| 欧美精品人与动牲交sv欧美| 精品少妇久久久久久888优播| 日日啪夜夜爽| 日产精品乱码卡一卡2卡三| 国产av国产精品国产| 高清在线视频一区二区三区| 日韩av在线免费看完整版不卡| 日日摸夜夜添夜夜爱| 日韩一区二区视频免费看| 街头女战士在线观看网站| 热re99久久国产66热| 人妻 亚洲 视频| 久久这里只有精品19| 国产老妇伦熟女老妇高清| 国产又色又爽无遮挡免| 日韩一卡2卡3卡4卡2021年| 97精品久久久久久久久久精品| 看免费成人av毛片| 国产男人的电影天堂91| 免费看av在线观看网站| 黄频高清免费视频| 国产日韩一区二区三区精品不卡| 纯流量卡能插随身wifi吗| 久久久久久久久久久久大奶| 黄片播放在线免费| 亚洲图色成人| 国产女主播在线喷水免费视频网站| 日韩成人av中文字幕在线观看| av在线老鸭窝| 2022亚洲国产成人精品| 亚洲国产欧美网| 少妇的逼水好多| 日韩制服骚丝袜av| 在线免费观看不下载黄p国产| 国产成人精品在线电影| 欧美少妇被猛烈插入视频| 中文字幕亚洲精品专区| 午夜福利在线观看免费完整高清在| 亚洲av电影在线观看一区二区三区| 欧美日韩亚洲国产一区二区在线观看 | 久热这里只有精品99| 午夜av观看不卡| 99久久精品国产国产毛片| 亚洲,欧美精品.| 精品久久久久久电影网| 韩国av在线不卡| 老司机影院毛片| 久久影院123| 一级爰片在线观看| 久久精品国产自在天天线| 在现免费观看毛片| 国产一区二区激情短视频 | 国产精品亚洲av一区麻豆 | 一区二区三区激情视频| 国产高清不卡午夜福利| 国产成人av激情在线播放| 国产日韩欧美在线精品| av福利片在线| 精品少妇一区二区三区视频日本电影 | 黑人欧美特级aaaaaa片| 一级爰片在线观看| 最新中文字幕久久久久| a 毛片基地| 看十八女毛片水多多多| 成人18禁高潮啪啪吃奶动态图| 波多野结衣av一区二区av| 婷婷色麻豆天堂久久| 咕卡用的链子| 亚洲,欧美,日韩| 国产精品免费大片| 少妇精品久久久久久久| 最新中文字幕久久久久| 激情视频va一区二区三区| 亚洲av日韩在线播放| 免费观看性生交大片5| 午夜免费男女啪啪视频观看| 18禁裸乳无遮挡动漫免费视频| 国产精品久久久久久久久免| 国产福利在线免费观看视频| 大片免费播放器 马上看| 99re6热这里在线精品视频| 熟女少妇亚洲综合色aaa.| 男女午夜视频在线观看| 欧美人与性动交α欧美精品济南到 | 色播在线永久视频| 人人妻人人爽人人添夜夜欢视频| 大片电影免费在线观看免费| 日日啪夜夜爽| 免费播放大片免费观看视频在线观看| 国产精品一二三区在线看| 成人毛片60女人毛片免费| 丝袜美足系列| av视频免费观看在线观看| 最近最新中文字幕免费大全7| 晚上一个人看的免费电影| 久久久久久久久久久久大奶| 日韩欧美精品免费久久| 在线天堂中文资源库| 亚洲欧洲精品一区二区精品久久久 | 日韩三级伦理在线观看| 天天躁夜夜躁狠狠躁躁| 国产精品偷伦视频观看了| 亚洲欧美日韩另类电影网站| 制服丝袜香蕉在线| 咕卡用的链子| 90打野战视频偷拍视频| 伦理电影免费视频| 亚洲精品久久成人aⅴ小说| 99久久中文字幕三级久久日本| 欧美 日韩 精品 国产| 免费人妻精品一区二区三区视频| 亚洲四区av| 日本免费在线观看一区| 大片免费播放器 马上看| www.av在线官网国产| 午夜免费鲁丝| 亚洲国产精品999| 搡老乐熟女国产| 国产淫语在线视频| 久久久久视频综合| 天天躁狠狠躁夜夜躁狠狠躁| 精品国产一区二区久久| 久久久久久久大尺度免费视频| 大香蕉久久成人网| 黄网站色视频无遮挡免费观看| 伊人亚洲综合成人网| 9热在线视频观看99| 免费女性裸体啪啪无遮挡网站| 咕卡用的链子| 国产av精品麻豆| 国产免费一区二区三区四区乱码| 在线天堂中文资源库| 最近中文字幕高清免费大全6| 欧美激情 高清一区二区三区| 欧美少妇被猛烈插入视频| h视频一区二区三区| 亚洲国产av影院在线观看| 久久精品久久久久久久性| 免费人妻精品一区二区三区视频| 美女国产高潮福利片在线看| 免费观看av网站的网址| 亚洲国产最新在线播放| 久久久久久久久久久免费av| 一二三四中文在线观看免费高清| 99re6热这里在线精品视频| 成人18禁高潮啪啪吃奶动态图| 亚洲精品一二三| 一级片'在线观看视频| 男人添女人高潮全过程视频| 国产亚洲欧美精品永久| 天天影视国产精品| 可以免费在线观看a视频的电影网站 | 黄色毛片三级朝国网站| 精品酒店卫生间| 色播在线永久视频| 亚洲成色77777| 午夜福利视频精品| 女人久久www免费人成看片| 啦啦啦中文免费视频观看日本| 亚洲精品美女久久av网站| 日本爱情动作片www.在线观看| 亚洲成av片中文字幕在线观看 | 麻豆乱淫一区二区| 中文欧美无线码| 超碰97精品在线观看| 欧美人与性动交α欧美精品济南到 | 中文字幕精品免费在线观看视频| 中文字幕另类日韩欧美亚洲嫩草| 99久久综合免费| 美女脱内裤让男人舔精品视频| 日韩免费高清中文字幕av| 欧美激情高清一区二区三区 | 日韩欧美精品免费久久| 午夜福利网站1000一区二区三区| 亚洲欧美日韩另类电影网站| 免费高清在线观看视频在线观看| 国产精品国产三级国产专区5o| 麻豆av在线久日| 久久久久国产精品人妻一区二区| av网站免费在线观看视频| 久久久久精品性色| 亚洲精品视频女| 青春草国产在线视频| 日本av免费视频播放| 丝瓜视频免费看黄片| 爱豆传媒免费全集在线观看| tube8黄色片| 欧美日韩亚洲国产一区二区在线观看 | 日韩伦理黄色片| 亚洲av综合色区一区| 少妇被粗大猛烈的视频| 成年av动漫网址| 少妇人妻久久综合中文| 老女人水多毛片| av网站在线播放免费| 两个人免费观看高清视频| 伦理电影免费视频| 高清视频免费观看一区二区| 久久久久久久精品精品| 九草在线视频观看| 久久午夜福利片| 大话2 男鬼变身卡| 九色亚洲精品在线播放| 亚洲一区二区三区欧美精品| 天堂俺去俺来也www色官网| 日本av免费视频播放| 狠狠精品人妻久久久久久综合| 少妇被粗大猛烈的视频| 丝瓜视频免费看黄片| 十分钟在线观看高清视频www| 97在线人人人人妻| 国产男人的电影天堂91| 宅男免费午夜| 啦啦啦中文免费视频观看日本| 成人亚洲欧美一区二区av| 色婷婷久久久亚洲欧美|