亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

FPGA驅(qū)動(dòng)串口屏USART_HMI:從協(xié)議到調(diào)試全解析

FPGA驅(qū)動(dòng)串口屏USART_HMI:從協(xié)議到調(diào)試全解析 寫這個(gè)系列之前我一直覺得FPGA搞顯示是很勸退的一件事。數(shù)字邏輯寫到能跑UART、能收發(fā)字符串已經(jīng)算入門了結(jié)果一看需求要把采集到的電壓、溫度、狀態(tài)幀值顯示在屏幕上還得有幾個(gè)按鈕能切頁面——很多人在這一步直接轉(zhuǎn)投ARM了。直到我把USART_HMI串口屏引入項(xiàng)目才發(fā)現(xiàn)FPGA做交互界面也可以這么省心。這篇是FPGA串口收發(fā)字符串系列的第四篇專門把串口屏USART_HMI這塊講透包括協(xié)議幀格式、FPGA側(cè)指令發(fā)送模塊怎么寫、聯(lián)調(diào)時(shí)會(huì)遇到哪些坑以及后續(xù)可以往雙向交互延伸的方向。手里已經(jīng)跑通UART收發(fā)模塊的朋友這一章可以直接落地就算前面幾篇沒讀只要懂串口字節(jié)怎么發(fā)也能跟上。1. 為什么FPGA項(xiàng)目里我會(huì)選串口屏來顯示1.1 顯示方案的選型對(duì)比很多FPGA工程師第一次面對(duì)要給項(xiàng)目加顯示這個(gè)問題時(shí)列出的候選方案大概跟我當(dāng)年差不多數(shù)碼管、LCD1602/COG12864、SPI或者RGB接口的TFT屏最后才輪到串口屏。我把實(shí)際對(duì)比結(jié)果放在一張表里大家感受一下差異。方案顯示能力人機(jī)交互開發(fā)工作量FPGA資源占用適合場(chǎng)景數(shù)碼管數(shù)字和少量字母內(nèi)容有限基本無低動(dòng)態(tài)掃描即可低電壓、計(jì)數(shù)、狀態(tài)指示LCD1602/COG12864字符或簡單圖形需自己取模無或按鍵擴(kuò)展中初始化時(shí)序和字庫都要處理中簡單文本顯示SPI/RGB接口TFT色彩豐富像素級(jí)控制需要自己寫觸摸和GUI高顯存、字庫、GUI框架全自己做高RGB屏還得外掛SRAM/SDRAM對(duì)顯示刷新速度要求極高的場(chǎng)合USART_HMI串口屏彩色顯示文字、圖形、曲線、圖片均可自帶觸摸事件上報(bào)低上位機(jī)做界面FPGA只發(fā)指令極低占兩個(gè)IO和一個(gè)UART設(shè)備狀態(tài)顯示、參數(shù)面板、人機(jī)交互這里不是說數(shù)碼管和TFT不好而是工程上有性價(jià)比的考量。數(shù)碼管適合那種看一眼就夠的數(shù)據(jù)TFT屏適合需要高頻刷新畫面的場(chǎng)景但代價(jià)是FPGA里要維護(hù)一整套路顯存和繪圖庫開發(fā)周期以周為單位。串口屏把這塊全包了它內(nèi)部有一顆主控芯片專門負(fù)責(zé)解析指令、刷新LCD、掃描觸摸FPGA要做的只是按協(xié)議把字符串或者數(shù)值幀發(fā)過去。1.2 USART_HMI解決的核心問題用一句話概括串口屏的本質(zhì)它不是一塊普通顯示屏而是一個(gè)帶GUI引擎的UART從設(shè)備。你在上位機(jī)軟件里畫好界面拖好文本控件、數(shù)字控件、按鈕分配好變量地址燒錄到屏幕里然后FPGA這邊只需要通過串口告訴它把變量0x0001的內(nèi)容改成多少多少屏幕上對(duì)應(yīng)的控件就會(huì)自動(dòng)刷新。這和傳統(tǒng)TFT方案完全是兩種思維方式。以前是FPGA逐像素去畫現(xiàn)在是FPGA只發(fā)命令畫面怎么渲染、字體怎么顯示、按鈕怎么響應(yīng)都是串口屏自己去處理。就像一個(gè)是自己調(diào)油漆刷墻另一個(gè)是打電話讓裝修隊(duì)干活活一樣能干完但工作量根本不是一個(gè)量級(jí)。我用串口屏之后最直觀的感受是FPGA側(cè)的邏輯可以專注在信號(hào)采集、算法處理、狀態(tài)控制這些真正核心的事情上界面交互只是偶爾發(fā)一串字節(jié)的事。開發(fā)周期從幾周縮短到一兩天而且改界面布局不用重新綜合FPGA工程只改串口屏上位機(jī)的工程再燒錄就行這在項(xiàng)目調(diào)試階段非常救命。1.3 什么場(chǎng)景不適合串口屏串口屏不是銀彈它的短板也很明顯我這里把丑話說在前面。首先是刷新速度以115200波特率為例理論上一秒只能傳約11520字節(jié)一條簡單的寫變量指令大概10字節(jié)左右也就是說一秒最多發(fā)一千多次但實(shí)際考慮幀間隙和串口屏內(nèi)部處理時(shí)間穩(wěn)定跑到幾十赫茲就到頭了。所以它適合展示狀態(tài)數(shù)據(jù)和參數(shù)不適合做高速波形輸出之類需要像素級(jí)實(shí)時(shí)更新的界面。其次是成本串口屏的單價(jià)明顯高于同等尺寸的裸屏加驅(qū)動(dòng)方案如果產(chǎn)品已經(jīng)確定要大規(guī)模量產(chǎn)而且顯示內(nèi)容極其固定那還是老老實(shí)實(shí)自己驅(qū)動(dòng)屏幕更劃算。最后還有一點(diǎn)容易忽略串口屏是帶固件的黑盒一旦遇到官方固件不支持的協(xié)議細(xì)節(jié)你沒法繞過它直接操作像素靈活度確實(shí)比不上自己寫驅(qū)動(dòng)。理解了這個(gè)邊界你才知道什么時(shí)候該用它什么時(shí)候不該用。2. USART_HMI協(xié)議先看懂再動(dòng)手2.1 指令幀的基本結(jié)構(gòu)串口屏雖然界面華麗但通信協(xié)議其實(shí)相當(dāng)簡潔核心就是一幀一指令。USART_HMI的指令幀通常由幀頭、數(shù)據(jù)長度、指令碼、數(shù)據(jù)區(qū)和校驗(yàn)字段組成大致是這個(gè)樣子字段長度說明幀頭1字節(jié)固定值0xA5表示一幀的開始數(shù)據(jù)長度1字節(jié)從指令碼到校驗(yàn)之前的字節(jié)數(shù)用于接收端分幀指令碼1字節(jié)標(biāo)識(shí)這條指令要做什么比如寫變量、讀變量、跳頁面數(shù)據(jù)區(qū)N字節(jié)變量地址、數(shù)據(jù)類型、具體的數(shù)據(jù)內(nèi)容校驗(yàn)1字節(jié)通常是對(duì)前面數(shù)據(jù)區(qū)做異或和用于驗(yàn)證幀沒有傳錯(cuò)做FPGA的人看到這種結(jié)構(gòu)應(yīng)該很親切它跟我們的UART狀態(tài)機(jī)是天然匹配的。接收端先等幀頭0xA5收到之后再讀數(shù)據(jù)長度然后按長度把剩下的字節(jié)收滿最后做一遍校驗(yàn)幀就完整還原了。這也是為什么串口屏特別適合跟FPGA配合——協(xié)議本身就對(duì)硬件邏輯友好不需要PC上那種復(fù)雜的緩沖解析。不同品牌和固件版本在字段定義細(xì)節(jié)上有差異比如淘晶馳TJC系列、Nextion系列和迪文DGUS系列就是三套不同的體系甚至同一品牌不同批次固件對(duì)長度字段的計(jì)數(shù)方式都可能不一樣。我在項(xiàng)目里固定用淘晶馳的USART_HMI協(xié)議本文也以它為例。動(dòng)手之前一定要把自己手上屏的協(xié)議手冊(cè)打印出來對(duì)照別拿網(wǎng)上例程的幀直接抄。2.2 最常用的幾條指令用串口屏控制界面絕大多數(shù)時(shí)間就三條指令寫變量、讀變量、跳頁面。所謂變量就是你在上位機(jī)里給每個(gè)控件綁定的數(shù)據(jù)通道比如文本控件t0綁定了變量v0數(shù)字控件n0綁定了變量n0這些變量在屏的內(nèi)部存儲(chǔ)里都有固定地址FPGA只要往對(duì)應(yīng)地址寫數(shù)據(jù)控件就會(huì)刷新。寫變量指令的語義是往地址X寫入數(shù)據(jù)Y。數(shù)據(jù)Y可以是字符串也可以是二進(jìn)制數(shù)值具體是哪一種由數(shù)據(jù)類型字段區(qū)分。舉個(gè)例子如果要在文本控件里顯示OK兩個(gè)字指令幀的數(shù)據(jù)區(qū)就包含控件地址、字符串類型標(biāo)識(shí)、以及字符O和K的ASCII碼。FPGA要做的事情并不復(fù)雜地址、類型、ASCII碼都是確定的算好長度和校驗(yàn)把整幀發(fā)出去即可。讀變量指令是反過來FPGA向屏請(qǐng)求讀取某地址的數(shù)據(jù)屏收到后會(huì)把當(dāng)前值回傳。這條指令在做雙向交互時(shí)很有用比如FPGA上電后要讀取屏上保存的參數(shù)。跳頁面指令就更直白了告訴屏切換到某個(gè)頁面ID適合做多菜單、多界面切換。在FPGA里設(shè)計(jì)發(fā)送模塊的時(shí)候我建議把這些指令統(tǒng)一封裝成一個(gè)指令序列器每條指令是一個(gè)固定模板需要變化的只是地址和數(shù)據(jù)區(qū)。模板加上動(dòng)態(tài)參數(shù)拼成一幀再送到UART模塊發(fā)出去。這樣代碼結(jié)構(gòu)清晰后面要加新指令只是加一個(gè)模板的事。2.3 控件變量地址與數(shù)據(jù)類型的坑用串口屏上位機(jī)拖控件的時(shí)候很多人會(huì)忽略地址分配這件事。上位機(jī)軟件的變量控件列表里每個(gè)變量都有一個(gè)地址一般是按創(chuàng)建順序從0x0000開始編號(hào)。FPGA側(cè)寫指令時(shí)用的就是這些地址。如果你只記得控件名字不記得地址那寫指令時(shí)就會(huì)對(duì)不上。我一般會(huì)在上位機(jī)里把變量名和地址做成一張對(duì)照表和FPGA代碼放同一個(gè)工程目錄下改一次同步一次不然調(diào)試時(shí)極容易暈。數(shù)據(jù)類型字段是另一個(gè)容易出岔子的地方。字符串和數(shù)值的編碼方式不一樣字符串直接用ASCII碼字節(jié)流數(shù)值可以用二進(jìn)制直接傳輸也可以轉(zhuǎn)成ASCII形式的數(shù)字字符。串口屏接收不同數(shù)據(jù)類型時(shí)解析邏輯完全不同一旦類型標(biāo)識(shí)傳錯(cuò)屏上顯示的就是亂碼或者0。這個(gè)字段在上位機(jī)協(xié)議文檔里有明確的取值表寫代碼前要確認(rèn)好。還有一個(gè)細(xì)節(jié)容易被新手忽略字符串長度和控件顯示區(qū)域的關(guān)系。文本控件如果設(shè)置了最多顯示4個(gè)字符你一幀發(fā)8個(gè)字符進(jìn)去要么被截?cái)嘁窗雅赃厓?nèi)容擠亂。所以FPGA側(cè)發(fā)送字符串之前要么自己做好截?cái)嘁丛谏衔粰C(jī)里把控件長度放寬。我自己寫模塊時(shí)會(huì)在指令序列器里加一個(gè)最大長度寄存器配合控件屬性一起設(shè)置避免指令本身沒問題但顯示效果稀碎。3. FPGA端串口指令發(fā)送模塊怎么設(shè)計(jì)3.1 模塊劃分思路FPGA端驅(qū)動(dòng)串口屏不需要一個(gè)萬能協(xié)議棧那反而把事情搞復(fù)雜了。我習(xí)慣把邏輯拆成三塊指令序列器、字節(jié)發(fā)送器、參數(shù)生成邏輯。字節(jié)發(fā)送器說白了就是系列前幾章寫的UART TX模塊負(fù)責(zé)把一個(gè)字節(jié)變成串行波形發(fā)出去帶busy或者done信號(hào)。參數(shù)生成邏輯負(fù)責(zé)算地址、算長度、做校驗(yàn)比如數(shù)值轉(zhuǎn)ASCII、字符串拼接。指令序列器是大腦負(fù)責(zé)按順序把一幀里的字節(jié)逐個(gè)送給字節(jié)發(fā)送器中間控制節(jié)奏保證幀內(nèi)字節(jié)連續(xù)、幀間留出間隔。這個(gè)劃分的好處是每一塊都能單獨(dú)測(cè)試。UART TX單獨(dú)連電腦驗(yàn)證過參數(shù)生成邏輯可以用Modelsim仿真對(duì)比輸出字節(jié)流指令序列器只要狀態(tài)機(jī)不跑飛整幀順序就不會(huì)亂。等到最后聯(lián)調(diào)時(shí)問題范圍能快速鎖定到某一小塊不會(huì)滿工程找bug。3.2 狀態(tài)機(jī)加FIFO的設(shè)計(jì)方式指令序列器我一律采用先組裝到發(fā)送FIFO再自動(dòng)發(fā)送的方式而不是一字節(jié)一狀態(tài)地硬憋。為什么因?yàn)橹噶顜囱b過程中可能要插入動(dòng)態(tài)參數(shù)如果整個(gè)幀的字節(jié)都是一個(gè)時(shí)鐘一個(gè)時(shí)鐘地直接塞給UART中間一旦被更高優(yōu)先級(jí)的邏輯打斷幀就殘了。用FIFO緩沖一層組裝過程可以分步完成組裝完畢后UART模塊從FIFO里連續(xù)取字節(jié)發(fā)送幀的原子性就有保證。核心狀態(tài)機(jī)示意代碼大致是這樣// 指令序列器核心狀態(tài)機(jī)節(jié)選 localparam IDLE 3d0; localparam ASSEMBLE 3d1; localparam WAIT_EMPTY 3d2; always (posedge clk or negedge rst_n) begin if (!rst_n) begin state IDLE; end else begin case (state) IDLE: if (tx_start) begin byte_cnt 0; state ASSEMBLE; end ASSEMBLE: begin // 每個(gè)時(shí)鐘寫一個(gè)字節(jié)到FIFO // 先寫幀頭0xA5再寫長度、指令碼、數(shù)據(jù)區(qū)、校驗(yàn) fifo_wr_en 1b1; fifo_wr_data frame_byte_gen(byte_cnt); if (byte_cnt frame_total_len - 1) begin fifo_wr_en 1b0; state WAIT_EMPTY; end else begin byte_cnt byte_cnt 1b1; end end WAIT_EMPTY: if (fifo_empty) begin // 整幀發(fā)送完成 tx_done 1b1; state IDLE; end endcase end end實(shí)際工程里frame_byte_gen不會(huì)是一個(gè)簡單函數(shù)而是根據(jù)byte_cnt查表0號(hào)字節(jié)固定是0xA51號(hào)字節(jié)是長度2號(hào)字節(jié)是指令碼后面的字節(jié)可能是變量地址、數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容最后是校驗(yàn)字節(jié)。動(dòng)態(tài)參數(shù)部分在上層邏輯觸發(fā)tx_start之前就預(yù)先算好放在參數(shù)寄存器里組裝階段只是把它們按順序搬進(jìn)FIFO。UART模塊那邊從FIFO讀字節(jié)、逐字節(jié)發(fā)送發(fā)送完成信號(hào)把FIFO讀指針推進(jìn)。這個(gè)方案的妙處在于FIFO天然隔離了兩個(gè)時(shí)鐘域如果有的話和兩級(jí)邏輯組裝過程不占用UART發(fā)送時(shí)間幀與幀之間還能方便地插入任意延時(shí)。3.3 長度和校驗(yàn)的計(jì)算時(shí)機(jī)長度和校驗(yàn)是FPGA工程師最容易寫錯(cuò)的地方。長度字段指的是從這個(gè)字段自身后面開始、直到數(shù)據(jù)區(qū)結(jié)束的字節(jié)數(shù)。校驗(yàn)字段通常是對(duì)長度、指令碼和數(shù)據(jù)區(qū)做異或幀頭0xA5不參與校驗(yàn)。這兩者的計(jì)算必須放在組裝階段的開頭算出結(jié)果存進(jìn)寄存器隨幀一起寫入FIFO而不是在UART發(fā)送過程中臨時(shí)去算。為什么強(qiáng)調(diào)時(shí)機(jī)因?yàn)楹芏嘈率謺?huì)在發(fā)送每一字節(jié)的組合邏輯里去動(dòng)態(tài)計(jì)算校驗(yàn)結(jié)果綜合出來的電路出現(xiàn)奇怪的時(shí)序問題幀內(nèi)容對(duì)了但校驗(yàn)總不對(duì)。我現(xiàn)在的做法是先算后發(fā)。幀長如果固定長度字段就直接是一個(gè)常量校驗(yàn)則在PREPARE階段用組合邏輯異或樹算好或者更省事——因?yàn)橐粠止?jié)數(shù)不多完全可以在寫入FIFO的時(shí)候同步計(jì)算校驗(yàn)最后一個(gè)字節(jié)寫進(jìn)去時(shí)校驗(yàn)值也已經(jīng)算出來直接跟著寫進(jìn)去。這里還有個(gè)工程上的建議第一版盡量把所有指令設(shè)計(jì)成定長幀。定長幀的長度字段是常量地址偏移是常量校驗(yàn)樹也可以預(yù)先確定結(jié)構(gòu)調(diào)試難度會(huì)低很多。等定長幀跑通了再改成變長幀處理動(dòng)態(tài)字符串就會(huì)從容很多。4. FPGA變量如何變成屏幕上的數(shù)字和字符串4.1 數(shù)值轉(zhuǎn)ASCII的處理FPGA內(nèi)部處理的數(shù)據(jù)是二進(jìn)制數(shù)但串口屏要顯示的是人類能讀的十進(jìn)制數(shù)字。所以中間必須有一個(gè)數(shù)值轉(zhuǎn)ASCII的過程。最基礎(chǔ)的方法是把二進(jìn)制數(shù)轉(zhuǎn)成BCD碼然后把每一位BCD碼加上0x30就得到對(duì)應(yīng)數(shù)字的ASCII碼。比如二進(jìn)制數(shù)27轉(zhuǎn)成BCD碼是0010 0111即十位2、個(gè)位7加上0x30后得到0x32和0x37對(duì)應(yīng)字符2和7。二進(jìn)制轉(zhuǎn)BCD常用的是加3移位算法也叫移位加3法一段循環(huán)邏輯就能實(shí)現(xiàn)不需要除法器非常適合FPGA。對(duì)于0到9999范圍的數(shù)值移位16次就可以完成轉(zhuǎn)換占用資源很少。如果你要顯示的是有符號(hào)數(shù)還得先處理符號(hào)位在前面加一個(gè)負(fù)號(hào)0x2D。我看到有些人在FPGA里直接用取模和除法運(yùn)算符去轉(zhuǎn)ASCII仿真沒問題但綜合出的除法器吃資源比較多而且路徑延遲大。在小規(guī)模顯示應(yīng)用里加3移位法既省資源又容易控制時(shí)序是我比較推薦的方案。4.2 字符串指令幀的拼接實(shí)例舉個(gè)實(shí)際例子假設(shè)要把溫度值27度顯示在屏上的文本控件控件地址是0x0001。FPGA側(cè)要發(fā)出的指令幀大致是這樣的先幀頭0xA5然后是長度、寫變量指令碼、地址高字節(jié)、地址低字節(jié)、數(shù)據(jù)類型標(biāo)識(shí)接著是2和7兩個(gè)ASCII字節(jié)最后是校驗(yàn)。整個(gè)過程在指令序列器里就是按byte_cnt依次輸出這些字節(jié)。數(shù)值轉(zhuǎn)ASCII的結(jié)果怎么和固定幀頭拼接呢我一般用一個(gè)可變長度移位寄存器組方式把固定部分、動(dòng)態(tài)部分、校驗(yàn)部分分別存到三個(gè)小寄存器區(qū)組裝時(shí)按順序選通。如果幀長固定動(dòng)態(tài)部分也只是長度固定那整個(gè)幀甚至可以定義成一個(gè)寄存器數(shù)組ASSEMBLE狀態(tài)里按地址查表輸出即可。調(diào)試的時(shí)候有一個(gè)很實(shí)用的技巧在UART TX的輸出引腳上接邏輯分析儀或者直接在FPGA里把那路信號(hào)引到一個(gè)空閑引腳用示波器看波形。整幀字節(jié)的時(shí)序波形一目了然哪里的字節(jié)不對(duì)對(duì)照協(xié)議文檔一比對(duì)就能定位到是拼接邏輯還是數(shù)值轉(zhuǎn)換的問題。4.3 顯示刷新節(jié)奏與帶寬估算串口屏能接受的顯示刷新速度沒有你想象的那么高。我實(shí)測(cè)下來狀態(tài)類數(shù)據(jù)10到20Hz刷新就已經(jīng)非常平滑了沒必要每毫秒無腦刷。原因有兩個(gè)一是串口帶寬有限115200波特率一秒鐘才能傳一萬多字節(jié)一條指令就是十幾字節(jié)刷新頻率越高留給其他指令的帶寬就越少二是串口屏內(nèi)部解析幀、刷新LCD也需要時(shí)間指令過來太密會(huì)出現(xiàn)排隊(duì)甚至丟幀。所以我一般在FPGA里給串口屏發(fā)送加一個(gè)節(jié)流器比如用一個(gè)計(jì)數(shù)器產(chǎn)生10ms或50ms的周期脈沖每個(gè)脈沖最多觸發(fā)一幀顯示指令。這樣既保證了人眼看起來連續(xù)又不會(huì)把串口屏和串口帶寬壓到極限。我在做多通道數(shù)據(jù)采集顯示時(shí)用5ms周期更新一個(gè)頁面同時(shí)還要處理觸摸事件上報(bào)沒有出現(xiàn)過串口擁堵的問題。記住一個(gè)原則顯示類的數(shù)據(jù)寧可少刷不要暴刷。5. 聯(lián)調(diào)實(shí)錄這幾個(gè)坑我替你們踩過了5.1 波特率誤差帶來的隱性故障FPGA和串口屏之間的波特率如果對(duì)不上表現(xiàn)不是完全不通而是時(shí)好時(shí)壞尤其當(dāng)誤差積累到采樣的臨界點(diǎn)時(shí)會(huì)隨機(jī)出亂碼。這個(gè)坑隱蔽性很高因?yàn)樗环€(wěn)定復(fù)現(xiàn)很容易讓人懷疑是屏壞了或者代碼邏輯錯(cuò)了。正確的做法是先用頻率計(jì)確認(rèn)FPGA系統(tǒng)的基準(zhǔn)時(shí)鐘頻率再算波特率分頻值。比如50MHz系統(tǒng)時(shí)鐘跑115200波特率分頻值是50_000_000/115200約等于434取整后誤差不到0.01%基本可以忽略。但如果你的板子用的是24MHz或者12MHz晶振分頻后的誤差就可能超過1%這時(shí)候就要考慮換一個(gè)更合適的波特率或者用小數(shù)分頻器來處理。我的習(xí)慣是FPGA側(cè)和串口屏都固定用115200這幾乎是兩者之間最穩(wěn)的一個(gè)平衡點(diǎn)。9600雖然更抗干擾但顯示刷新有明顯的打字機(jī)感不太適合做界面。另外要注意串口屏模塊的默認(rèn)波特率可能和它實(shí)際跑的波特率不一致收到屏之后第一次通電就要用串口助手確認(rèn)屏的配置。5.2 幀被切斷和指令被吞的問題聯(lián)調(diào)時(shí)最常遇到的現(xiàn)象是屏上偶爾顯示一次正確內(nèi)容然后連續(xù)發(fā)好幾條指令都沒反應(yīng)或者顯示出來的是殘缺數(shù)據(jù)。排查下來的典型原因是FPGA側(cè)的指令序列器在多幀連續(xù)發(fā)送時(shí)幀間隙控制不好或者處理器邏輯在發(fā)送過程中搶占了串口發(fā)送的優(yōu)先級(jí)導(dǎo)致幀頭后面的數(shù)據(jù)沒跟上。解決思路就是我前面說的FIFO緩沖方案讓整幀組裝成一個(gè)不可分割的整體。發(fā)送期間絕不允許其他邏輯往UART模塊里插入字節(jié)必須等當(dāng)前幀的最后一個(gè)字節(jié)發(fā)完、FIFO清空之后才允許下一幀開始組裝。這個(gè)原子性設(shè)計(jì)不是可選項(xiàng)而是必須項(xiàng)。另外幀與幀之間要留出足夠的間隔讓串口屏來得及解析上一幀。我實(shí)測(cè)淘晶馳系列的屏處理一幀普通指令大概需要幾毫秒到十幾毫秒不等取決于指令類型。所以我在指令序列器里配置了一個(gè)幀間隔計(jì)數(shù)器一般取5ms到10ms如果連續(xù)快速切換頁面時(shí)發(fā)現(xiàn)偶發(fā)不響應(yīng)就把這個(gè)間隔再拉大一些。5.3 上電時(shí)序和初始化等待FPGA和串口屏有一個(gè)很容易被忽略的時(shí)序關(guān)系上電瞬間誰先就緒。串口屏內(nèi)部有操作系統(tǒng)和GUI引擎上電后需要幾百毫秒甚至更長時(shí)間初始化如果FPGA在這個(gè)窗口期就往外發(fā)指令屏根本收不到。我見過最頭疼的問題就是FPGA啟動(dòng)后立刻發(fā)初始化指令配置界面結(jié)果指令被吞界面停留在默認(rèn)狀態(tài)但單獨(dú)用串口助手手動(dòng)發(fā)指令又一切正常。解決方案很簡單也很粗暴FPGA的串口屏初始化流程必須在一個(gè)延時(shí)后才開始。我在頂層狀態(tài)機(jī)里加了一個(gè)上電等待計(jì)數(shù)器一般取500ms到1秒。先讓串口屏初始化完再發(fā)第一條寫變量或跳頁面指令。如果有條件更穩(wěn)妥的做法是先用串口助手上電觀察屏的返回信息確認(rèn)屏完全就緒后再讓FPGA發(fā)指令。如果做出來的產(chǎn)品還有休眠喚醒這類需求那上電時(shí)序就更要謹(jǐn)慎了。串口屏進(jìn)入休眠后不代表串口還能照常收數(shù)據(jù)喚醒時(shí)序也得按手冊(cè)來不能默認(rèn)它一直在線。5.4 先用串口助手驗(yàn)證再上FPGA這個(gè)經(jīng)驗(yàn)我每次帶人都要強(qiáng)調(diào)一遍不要一上來就拿FPGA和串口屏對(duì)調(diào)先用USB轉(zhuǎn)串口模塊接電腦用串口調(diào)試助手手工發(fā)指令確認(rèn)屏的界面和協(xié)議沒問題。這個(gè)操作能幫你把問題分成兩個(gè)階段非常省時(shí)間。具體操作流程是第一步用串口助手連接屏幕把上位機(jī)生成的指令示例逐條發(fā)過去觀察屏幕反應(yīng)確認(rèn)地址、長度、校驗(yàn)都對(duì)第二步把電腦斷開把FPGA的UART TX引腳接到串口屏的RX引腳先用FPGA發(fā)一條最簡單的指令用邏輯分析儀抓UART TX的波形和串口助手里發(fā)過的指令字節(jié)流做對(duì)比第三步確認(rèn)波形一致后再讓FPGA跑完整邏輯。這三步看起來多花了一點(diǎn)時(shí)間但實(shí)際上能省掉大量無頭緒的排查。我遇到過很多人把問題定位在FPGA側(cè)結(jié)果是串口屏上位機(jī)工程里控件地址沒分配對(duì)也有人懷疑屏壞了結(jié)果根本原因是FPGA的引腳電平不匹配。先驗(yàn)證屏自身沒問題是從源頭排除故障面的好習(xí)慣。6. 從這一章還能往哪走雙向交互與進(jìn)階玩法6.1 觸摸事件上報(bào)與FPGA接收解析串口屏不光是顯示設(shè)備它還是一個(gè)完整的人機(jī)交互終端。當(dāng)你用手指按下屏上的按鈕時(shí)串口屏?xí)鲃?dòng)向主機(jī)發(fā)送一條事件上報(bào)幀里面通常包含頁面ID、控件ID和事件類型。這就意味著FPGA不光要發(fā)還要收。接收側(cè)的核心也是那個(gè)熟悉的套路狀態(tài)機(jī)檢測(cè)幀頭0xA5然后讀長度字段按長度收完整幀做校驗(yàn)。解析到是一個(gè)觸摸事件后根據(jù)控件ID跳轉(zhuǎn)到對(duì)應(yīng)的處理邏輯。比如一個(gè)啟動(dòng)/停止按鈕FPGA接收到按下事件后置位或清除一個(gè)控制寄存器進(jìn)而控制外設(shè)狀態(tài)。我建議接收和發(fā)送共用同一個(gè)FIFO緩沖思路只不過方向反過來。串口屏發(fā)來的字節(jié)流被UART RX模塊接收后先寫進(jìn)接收FIFOFPGA主邏輯空閑時(shí)再去解析。這樣即使一幀事件在接收過程中被其他邏輯打斷也不會(huì)丟字節(jié)。等這一塊跑通你的FPGA系統(tǒng)就真正有了面板操作的能力而不只是單方向顯示。6.2 頁面切換、曲線顯示與后續(xù)擴(kuò)展USART_HMI協(xié)議里還有很多值得玩的功能。頁面切換指令可以讓你的FPGA設(shè)備實(shí)現(xiàn)菜單層級(jí)跳轉(zhuǎn)按下設(shè)置進(jìn)入設(shè)置頁按下返回回到主頁面。曲線控件可以把采集到的連續(xù)數(shù)據(jù)流動(dòng)態(tài)畫出來雖然刷新率不如直接驅(qū)動(dòng)屏幕高但做溫濕度歷史曲線這類低頻波形完全夠用。圖片推送功能甚至可以把FPGA采集的圖像數(shù)據(jù)一幀一幀推到串口屏上顯示配合SD卡存儲(chǔ)可以做一個(gè)很輕量的數(shù)據(jù)記錄儀。如果項(xiàng)目到了一定規(guī)模我建議把串口屏通信封裝成一個(gè)獨(dú)立模塊對(duì)外只留寫字符串變量寫數(shù)值變量注冊(cè)觸摸回調(diào)這幾個(gè)接口。上層邏輯永遠(yuǎn)不直接拼幀所有協(xié)議細(xì)節(jié)都隔離在模塊內(nèi)部。這樣以后換屏幕品牌、升級(jí)協(xié)議版本只需要替換這一個(gè)模塊頂層控制邏輯一行都不用改。我現(xiàn)在項(xiàng)目里的分工基本是FPGA專心做信號(hào)采集和算法處理串口屏專心做人機(jī)界面兩者之間只有一組UART連接。這種把“界面”從“邏輯”里剝離開的思路其實(shí)是FPGA工程成熟之后很自然的演進(jìn)方向。串口收發(fā)字符串本身只是基本功接上一個(gè)像USART_HMI串口屏這樣真正能出活的終端它才變成生產(chǎn)力。這大概是我寫這個(gè)系列到現(xiàn)在最想留給你的東西。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色婷婷成人综合| 91精品人妻偷情| 五月丁香色婷婷| 偷拍偷窥与盗摄视频专区| 青青欧洲黑| www黄片免费看com| 国产精品高潮久久久无码| 99色骚| 国产精品一二三免费网站| 国产婷婷综合在线观看| 91美女片在线| 亚精品无码毛片一区二区三区| 亚洲另类在线观看| 99热只有这里有精品| 自拍偷拍草一草| 久久久无码精品人妻二区| 亚洲国产欧美日韩人妻日中文| 国内精品久久人妻性色av| 久久精品超碰| 91精品国| 超碰97综合网| 色综合1991| 久久久久久久久久久久黄色| 人妻精品综合中文字幕在线 | 激情看片网站| 欧美性爱第1 页| 18禁久久| 亚洲欧洲偷拍一区| 欧美中出1| 大香蕉乱级| www欧美91| 亚洲熟妇AV日韩熟妇在线| 国产精品熟女AV中文字幕在线播放| 日韩一级特黄av毛片| 精品无码欧美三级| 东京热一区二区中文字幕| 香港久久久| 久久久久久免费电影| 亚洲天堂电影网| B049AV在线播放| 亚洲 欧美 另类 日韩 人妻一区| 麻豆福利视频导航| 啊啊啊啊一区| julia ann久久| 大香蕉综合| 国产人伦精品一区二区三区| 老女人综合| 久久久一区二区三区麻豆| 青青草女人天天干| 欧美亚州综合网图片| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 国产精品久久久久久久久久久久久久吹| 色狠人在线99| 一区中文字幕二区日韩| 97精品第3页| 天天狠| 免费观看欧美日韩操逼视频| 天天影视色香色欲| 亚洲色图欧美色图制服丝袜| 天天干美少妇一区| 日本熟妇熟色97一本在线观看| 久久久九97| 91碰碰| 在线观看精品国产免费| 岛国成人av在线播放网址| 欧洲一级性爱视频在线观看| 久久久久密| 超碰亚洲97| 顶级少妇BT天堂| 高凊专区人人操| 爽爽淫人网| 亚洲男人bt天堂| www.狠狠干.coom| 亚洲一区二区三区麻豆传媒| 欧美精品久久96人妻无码| 久操高青| 91精品国| 18禁的网站在线| 人人透人人操| 亚洲 欧美 手机在线观看| 欧美精品1区2区3区| 色色香蕉| 色婷婷狠狠| 国产精品情侣啪啪| 精品一区二区三区四区外站| 果冻传媒A片麻豆熟妇人妻| 亚洲欧美999| 国产无马在线| 亚洲天堂 视频你懂的| 丁香五月激情五月| 欧美在线55555| 蜜桃臀久久| 久久人妻熟女一区二区| 天堂v无码免费视频| 探花视频免费观看国产专区| 看日韩操逼| 玖玖爱免费观看视频| 1禁看欧美黄片免费看| 日本日皮视频逼| 国产亚洲人妻综合日韩 久久| 精品然女一区二区| 中文字幕片| 97视频7| 是还免费视频1727我| 加勒比99999| 性爱视频免费网址| 69人妻精品一区二区绯色| 天天日日日射| 久久精品99久久久久久| 最新无码国产| 亚洲国产精品久久久久久久久久| www.成人无码| 中文字幕片| 99热色精品| 大香蕉97久久| 欧美与日韩97| 欧美精品在线观看| 日本熟妇精品九九| 亚洲视频一二区| 日韩成人人妻网站| 丁香婷婷色五月| 欧美人妻制服| 欧美色性情| 日韩欧美女优电影| 亚洲综人| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲黄色视频在线观看视频| 人妻人人澡人人爽人人| 久久精品国产亚洲AV高级北京| 午夜福利成人免费视频| 色色色网站| 嗯啊不要啊啊在线观看视频| 精品v1区| 欧美顶级黄色大片免费| 色爽——AV| 欧美色亚洲| 色yeye成人免费视频| 久jiu久神马影院| 蜜臀va69| 国产白嫩漂亮KTV在线| 天天操女人| 青草一区二区| 人人扣人人操| 欧美精品偷拍| 无码动漫av中文字幕| 日本三级久| 色97干| 日韩黄色一区二区三区| 91AV天堂| 午夜久久无码1000合集| 国产精品久久久久久夜夜夜| 无码聚合| 欧美论理片| 欧美传媒| 少妇三P| 中文一区二区| 成人av在线播放| 日韩 欧美 校园一区| 乱伦一二三| 操九九九九九九| 极品五月天噜噜| 99爱久久视频频| 亚洲精品成人| 日本精品无码三级网站| yazhououmeizongya| 密臀在线视频| 国产999精品久久久久久| 精品一区96| 逼操网站| 亚洲天堂少妇| 人人操天天爽| 色老汉色| 日韩在线76| 91啪啪| 国产最新小视频在线播放下载| 久久中文字幕人妻熟av女蜜柚| 亚洲aV性爱| 日韩有码免费视频| 亚洲成a人片在线观看中文!!!| 色男人色天堂东京热| 久久久久久99AV无码免费网站| 亚洲美女AV无码| 91在线秘 男同| 国产欧美第五页| 澳门成人网站久国产日韩| 中文熟女五十乱码在线| 欧美劲爆第一页| 狠久久| 丁香五月婷婷啪啪| 久久久久亚洲三级电影| 色香伊人| 不卡九肏| 国产小炒后入式| 精品久热| 色在线综合| 人人妻人人澡人人爽久久av| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 素人伊尹大香蕉免费下载视频| 蜜区区视频79| 麻豆精品久久久久久久| 成人线上超碰| 特级大荫道BBwBBwBBW| 欧美日韩99精品麻豆传媒| 日本午夜精品理论片A级APP发布| 欧美黄色手机在线观看| 超碰人妻中文在线| AV男人天堂网| 97视频7| 人妻色偷色噜| 精品人妻一区二区三区四区| 国产精品久久久久久久久久久久久久久久 | 91色图| 91少妇香蕉久久精品| 天综合网| 久久精品国产免费观看99| 亚州综合色| 国产AB视频| 97中文字幕色| 熟妇人妻一区二区| 日韩啪啪啪啪啪| 手机在线看片免费人成视频| 上海一级黄片| 黄色成人网久久久久久| 日本不卡免费二区| 蜜臀th| 青青草日韩无码| 91性高朝久久久久久久久| 99这里都是精品| 国产按摩一区二区三区| 五月婷久久| 婷婷五月天激情网| 亚洲无码一区二区三区三州| 一本一道vs波多野结衣| 亚洲欧美日韩精品久久久一区二区| 国产午夜精品理论片a大结局| 欧美人妻制服| 欧美手机在线综合| 激情文学小说一区二区| 亚洲中字幕日本一区二区三区| 69久久久久久久久久久久久| 91路www| 色娱乐色呦呦夜夜夜夜av| 久久欧美按摩999| a网站免费观看| 日韩av乱伦| 九九色婷婷| 人人摸人人干人人拍97| 亚洲色堂免费视频| 91伊人大香蕉| 久久超碰98| 玖玖爱一区在线| 欧美激情一区二区| 欧美啪啪天堂| 97超碰色色| 亚洲大色堂| 国产成人亚洲精品自产在线| 日本久操视频| 日韩久射综合| 国产精品无码久久久久2028| 日本理论在线| 99无码视频| 青青草中文-久久青草精品一区二区三| 97香蕉碰碰人妻国产欧美| 中文字幕性感少妇av| 尤物一级在线免费观看| 日韩三四五区| 中文字幕第23区| 99这里都是精品| 伊色久人大在线| 欧美国产精品久久九九| 青青草在线视频播放器| 国产精品高朝久久久久久久| 97在线视频网站| 国产亚洲福利第一页丝袜| 蜜乳Av成人片网站| 日韩另类| 日韩情色AV| 国外91| 中文字幕青青草| 美女裸体无遮挡永久免费观看网站| 久久青青草原免费视频| 丝袜AV一二三区| 是还免费视频1727我| 国产乱码久久久| 五月丁香激情四射| 激情综合网五月婷婷| 性色高清在线| 欧美日韩亚洲天堂| 一区二区精品日韩欧美在线观看| 久久精品性| 日韩精品9999| 夜夜嗨视频| 黄片无码在线制服| 伦理弟一页| 亚洲国产97| 日韩三级天堂在线观看| 一区麻豆 高清中文字幕| 天堂亚洲精品| 国内精品久久久久影院亚洲| 免费网站观看www在线观| 一级特级aaaa毛片免费观看| 亚洲情色五月天 | 校园春色欧美| 久久黄片国产一区二区| 超碰资源亚洲97| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 人妻AV在线| 99操| 人人操人人爽人人操人人| 五月激情视频| 99精品综合久久久久五月天| 国产精品99精品视频网站| 人人艹亚洲| 美国一区二区三区视频| www.一本大99| 偷拍偷窥与盗摄视频专区| 日韩欧美aⅴ综合网站发布| 少妇国产不卡| 老鸭窝成人| 欧美激情另类一区二区| 婷婷成人久久久精品| 91美女视频。| 91人妻最真实刺激绿帽| 婷婷情色五月天| 97色伦97色伦国产欧美| 精品久久久中文字幕不| 凹凸视频在线一区二区| 91草草草| 欧美日韩国产中文精品字幕自在自线| 久久久男人的天堂| 密桃99999| 乱人乱色一区二区三区免费| 天天天天操| 无码人妻一区二区三区四区老鸭窝| 亚洲一区日韩| 干超碰碰熟女| 欧美少妇第一页| J?P?NESEHD熟女熟妇伦| 熟女一区二区三区| 精品人人插人人操| 搡老女人911熟妇老熟女| 麻豆黄色五月天| 久久国产AⅤ| 天天澡天天爽日日av| 国产美女mm131爽爽爽爽| 人人操人人摸人人看人人插| 伊人九九| 色色色综合| 日韩肏逼视频| 最新中文字幕av| 黄色欧美性爱视频| 偷拍视频青青草在线视频| 九九视品黄色| 在线视频免费播放一区| 床戏久久久av一区二区麻豆| 日欧美色| 国模不卡| 久久久久亚洲Av无码专区老牛影视| 一区二区三区网站日日骚| 日韩操p| 日本1区2区不卡视频| 久无码| 国产大学生口爆吞精合集| 亚洲欧美综合图片| 久久色一区二区| 亚洲高清无码AAA久久久精品| 好吊色综合| 色噜噜狠狠色综无码久久合欧美| 日韩91网| 久久亚洲色图中文字幕| 91狠婷| 深夜国产一区二区三区在线看| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 综合色图区| 亚洲阿v天堂在线| 色香91| 国产原创自拍| 神马久久久久久伦理片| 97色碰| 老鸭窝成人| 老司机免费视频在线91| 国产不卡片| 国产亚洲色婷婷久久99精品91葵花宝典| 欧美成人国产精品| 五月婷婷基地| 色五月激情网| 欧亚性爱视频免费看| 婷婷色色五月天福利| 91四海无码日韩欧美| 99色悠悠| 爱丝福利| 欧美日韩人妻婷婷一区| 日日夜夜青青草母狗| 伊人影院中文字幕| 欧美性天天影视| www.国产高潮精品| 国产熟女免费观看久久| 性爱乱伦视频免费| 涩综合导航| 国产老太乱伦一区| 在线观看一级α片刺激高潮视频| 亚洲精品少妇| 日韩免费簧片| 精品人妻视频入口| 20cm女自慰在线日韩欧美| 97亚洲在线| 18+91网站| 欧美日韩国产精品久久色婷婷| 噜噜噜亚洲精品| 五十路熟女工口 | 亚洲AV无码AV吞精久久久久| 天天日天天操天天射河南省| 欧美色综合| 精品对白久久不卡| 内射老妇BBWX0C0CK| 日本爽爽爽爽爽爽免费视频| 美女天天干| 20cm女自慰在线日韩欧美| 欧美精品精品一区二区| www亚洲免费| 中文字幕在线观看永久| 动漫av中文| 久久国产精品视频| 精品欧美乱码久| 91 亚洲 欧美 日韩 国产 综合| 综合网91| 国产又粗又大硬免费色网视频| 欧美劲爆第一页| 亚洲情色综合| 岛国色情视频在线观看| 91在线精品| 视频国产精品未满十八禁止在线观看| 亚洲综合一区二区| 色女网日韩| 伊人久久大香蕉线AV五月天| 国产偷人妻精品一区二区在线| 亚洲和欧美裸体美女双飞视频| 国产精品免费视频不卡| 9Ⅰ超碰| 亚洲免费成人在线高清无码视频| 激情抓乳插进去啪啪啪日韩| 亚洲国产一级精品毛一级精品看免费视频 | 麻豆人妻精品一区二区| 99操逼| 躁躁日曰躁2020| 成人午夜高潮av猛片| 欧美97网| 久热在线精品免费观看| 老熟女乱子伦中文字幕一区二区| 91超级碰碰| 精品久久久av| av橘色网站| 天天综合网日韩| 强奸乱伦亚洲第一页| 最新日韩黄片| wwe 天天干.com| 99精品综合久久久久五月天| 国产 日韩,欧美 自拍| 久久久久久国产精品免费网站| 丁香六月综合激情| 亚洲综合色在线| 婷婷婷婷婷婷久久久久| 国产一区二区三区影片| 亚洲图片欧美制度| BBBBB97COM| 免费av在线播放二区| 在线99热| 台湾佬中文娱乐网久久久久久久久久com| 熟女少妇视频| 久久欧美性爱视频| 亚洲精品一卡二卡三卡福利视频网站| 精品欧美乱码久| 伊人网综合在线视频| 九九九网站| 欧差乱伦二三| 五月婷婷丁香| 精品人妻高清麻豆av| 特级毛片特黄久久免费看 | 欧美日韩国产成人高清| 亚洲九区| 久久精品99久久久久久| 日韩成人精品| 精彩国产视频播放1区2区| 91精品国产一区三一| 色官网在线| 国产成人精品一区| JIZZJIZZ国产精品喷水| 亚洲999综合| 久久亚洲AV无码专区首页| 色999偷自拍拍| 人妻丝袜美腿中文字幕| 超碰97精品在线| 久久久久久999| 亚洲九区| 久热伊人| 日韩在线视频1234| 热思思免费视频| 夜夜肏2021| 日本道不卡| 大香蕉伊利av| 欧美一二三级精品在线| 欧美亚洲美少妇一区二区| 韩国三级一线观看久| 亚洲色图20p| A级片日韩欧美国产欧美视频精选观看 | 免费岛国一级片| 久操B网| 大香蕉亚洲中文| 日韩性色| 99热超碰| 国产乱伦亚洲| 97欧美色| 尹人大香蕉视频在线| 美女十八禁| 精品夜夜澡人妻无码| 超碰色综合| 99亚洲人人| 极品尤物自安慰| 老熟妇一区二区三区| 91干熟女| AVE乱伦| 先锋音影AV| 人人操人人大香蕉| 超碰欧美97| 国产av波波国产精品| 欧美图片偷拍| 91精品成人| 99热日本| 欧美视频一| 欧美女同在线| 欧美性特| 性久久久| 日韩久久超碰色| 视频黄色国产一级| 老熟女综合| 日本不卡二三区| 性爱精品一区| 欧美18老人禁| 蜜臀一二三区| 国产传媒一区日韩| 久久久中文| 台湾一区国产高清在线| 999国产精品999久久久久久| 好看的91视频| 可以免费观看的AV| 精品一啪| 99这里只有精品国产| 中文字幕精品三级久久久| 91男女啊啊啊| 亚洲乱码尤物193YW| 人人干黄色| 欧日韩一二三f区| 91丝袜激情在线| 99色热| 超碰78| 在线洲亚线| 色在线视频导航| 在线小说视频一区| 日本一天色道久久久精品视频| 国产免费一区二区在线A片视频| 日婷婷| 欧美少妇人妻| 夜夜性| 偷拍亚洲情色| 精吧天堂| 日本免费一区二区不卡| 精品97精品97| 熟妇人妻一区二区三区| oumeisetu综合| 久久久久久AⅤ无码免费肉站| 免费αV在线视频| 啊啊啊啊啊啊啊啊在线观看| 欧美日综合| 中日992视频| 97精品久久久久中文字幕| 97这里都是精品| 久久久久9久久久久| 久久婷婷五月| 久操大香蕉手机视频在线看| 五月色网| 亚洲 一区二区 自拍| 国产精品麻豆视频网站| 思思热在线cao| 国产精品久久成人免费| 手机在线人成免费视频| 奇米狠999| 亚洲九月丁香| 亚洲成?V人片在线观看福利| 免费一级欧美片片线观看| 精品一区二区成人动漫| 久久婷五月天| 超碰79人人乐| 精产国品一区二三产品| 亚洲欧美国产中文字幕| 制服诱惑亚洲一区二区三区在线观看| 九久久九精品视频| 又黄又粗又硬又长又大| 美女大乳久久久久久久女人18| 久久男人网| 国产精品电影推荐| 97在线欧| 亚州综合在线| 国产Av超碰| 亚洲九月丁香| 亚洲男人的天堂亚洲| 中文字幕福利视频一区二区三区在线观看| 91精品久久久久| 91丝袜美女视频| 啊啊啊啊好多水| 久热精品在线国产| JIZZJIZZ国产精品喷水| 99在线免费视频| 偷窥自拍亚洲色图| 1024午夜激情男人的天堂| 曰本道人妻久久久在线不卡色视频| 91插B网站| 亚洲?V高清一区二区三区尤物| 欧美综合国产精品久久丁香| 国产女性无套 免费观看| 亚码激情| 秋霞福利网| 国产一二三在线视频五十路| 凹凸视频在线观看伊人| 玖玖视频在线资源一区二区三区| 青青草伊人久久| 9 1超碰九色| 精品人妻一区二区免费蜜桃视频| 国产精品女生av| 九九碰九九爱97| 黄网站黄视频网站进入口| 欧美96交| 家庭乱伦国产| 天美传媒国产原创中文字幕亚洲欧美另类 | 熟女激情综合网| 天天干天天狼在线视频| 免費人妻夜夜爽天天爽爽一区| www被窝色com| 国产精品免费1区2区视频| 天天操天天舔| 狠狠色一区二区中文字幕| 啊v在线观看视频| 成人性爱视频在线看| 婷婷成人久久久精品| 欧美第五页| 精品国产av一区二区三区四区入口| 婷婷色婷婷| 97欧美久久久久久久| 黄片视频观看| 九九九网页| 人人操人人摸超碰| 大香网站| 97超碰在线资源网站| 日韩免费在线观看不卡| 婷婷五月天小说| 亚洲系列欧美| 天天摸夜夜添无码小视频| 免费视频在线观看啊啊啊啊啊| 麻豆色99999| 激情抓乳插进去啪啪啪日韩 | 国产午夜在线观看| 国产在线视视频有精品| 亚洲精品1区| 综合av社区| 蜜桃久久久久久| 91A欧美电影网站| 国产成人精品日本亚洲语言| 精国久久一区二区三区98| 九九热九九| 五月天开心网| 青青操国产夫妻| 在线可观看的黄色网址| 天天插天天操天天摸天天射天天看| 自拍偷拍 日韩欧美| 蜜臀精品1区2区| 少妇久久久久久| 超碰人人妻| 97超碰色情| 狠狠狠狠狠| 狠狠爱大香蕉| 91婷婷伊人狠人| 久久久亚洲| 99久久久久| 亚洲天堂欧美| 国产性刺激| 日韩精品一区二区高清| 欧美成人色| 日本天天操| 大屁股熟女一区二区三区| 久久精品中文字幕无码l| 中文在线视频| 亚洲偷拍自拍在线视频| 久久粉色| 精品免费一区二区三区在线亚洲人成| 亚洲天天综合| 自拍二页| 日本精品不卡一二三区| 国产伦精品| 色呦呦、国产精品| 九九综合久久中文字幕| 国产91丝袜在线播放蜜月| 国产乱伦性爱AV| 成人精品无码| 久干网| 综合一区中亚洲国产成人综合精品 | 欧美精品丝袜久久久中文字幕| 久久精品久久久久久久久| 国产性爱欧美性爱在线| 婷婷久久网| 久久精品国产亚洲粉嫩| 殴洲老熟女| 日本3级一区二区免费| 97视频免费播放| 欧美色图天堂网m| 温婉少妇玩3p| 麻豆精品一区二区三区四区免费观看| 色天堂综合| 九九色图| AV天堂国产| 97超级久久| 国产午夜福利视频在线| 亚洲最大的黄色电影网站。| 操逼999| 一级性爱aaaa| 欧美一区二区男人天堂| 天堂亚洲精品久久老牛| 久jiu久神马影院| 天天干人人干天天日97| 日韩在线电影| 中文字幕免费看| 116美女午夜| 亚洲一区中文字幕一区| 午夜激情成人在线观看| AV中文字幕三四五| 久久人人爽爽爽人久久久| 婷婷五月影院| 日人妻视频91| 日韩欧美性爱电影在线观看| 久久久精品视频欧州站| 嗯嗯啊啊操死我| 国产精品色色| 五月天婷精品激情| 国产av波波国产精品| 99re免费| 亚91网| 国产人妻精品一区二区三区秋霞 | 蜜桃天美传媒AV一区二区三区| 人妻在线大香蕉| 国产精品青青草| 欧美视频边做饭边橾| 操婢日韩| a片自拍直播视频| 色九久| 夜夜骑日日| 亚洲熟女偷拍在线观看| 91爱做| 99热导航| 91撸色网 玖玖网 欧美| 91在线欧色| 亚洲图片 91| 男人的天堂2010| 新视频sss国产| 欧插网站| 99999久久久久9国产精品| www.zbzhongsen.com| 日本 欧美 国产一区| 日韩 欧美 另类 人妻| 国产成人午夜视频网址| 亚洲色图尤物视频| 欧美探花网| 国产精品成人无码a v毛片| 好吊色青靑草| 午夜男女爽爽爽影院视频| 国产精品 视频| 天天综合网网欲色| 日韩性爱啪啪视频| 国产无吗在线播放| 免费观看性欧美一级| 少妇一线天久久久久久| 国产隔壁老王影院在线| 97欧美资源| 亚洲第一男人天堂| 欧美78P| 91麻豆天美| 成人性爱av.com| 日韩无码黄色片| 天天日天天插| 99热免费| 色噜噜狠狠色综无码久久合欧美| 国产亚洲在线| 91国产精品熟女| a男人的天堂| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 久久有码| 久久久精品一区二区| 国产精品禁久久久精品| 中文字幕熟女人妻丝袜| 大香久久| 无码高清国产AV| 无码乱人伦中文视频| 六月激情婷婷| 手机av天堂久久久久| laoshunv91| 97爱爱官网| 中文久久| 欧美人妻久久精品二区三区| 九九色色| 欧美精品另类人妖xxxx| 亚洲综合色在线| 97啪啪| 人人操人人插人人摸人人干| 日本欧美国内在线| 好湿好紧好爽 视频| 超碰97首页| 91色图| 国产99久久99热这里只有精品15| 91无码中出人妻视频| 久久精品高清无码一区| 黑人综合网| 免费看A片毛毛片在线播| 99在线精品视频| 欧美青青视频| 亚洲欧美首页| 国产自偷自拍一区| 色天天野狼综合社区| 最新亚洲黄色免费电影| 中文字幕成人理论在线| 欧美少妇一区二区三区| 人伦四五区| 亚洲日本激情| 精品妇女一区二区三区| 精品欧美日韩在线观看| 97精品一区二区视频| 九九99精品视频在线观看| 中文字幕88av在线| 亚洲 在线| 日韩欧美俄罗斯A片| 日日AV加勒比| 国产精品美女| 婷婷综合在线| 四虎国产成人精品免费一女五男| 久久久亚洲熟妇熟女| 婷婷六月色| 欧美性天天影院| 91亚洲色人| 天堂日本亚洲欧美| 久久高潮妇女视频| 成人三级片无码| 国产精品九9| 肏逼视频日本| 97视频网站在线观看| 大香蕉人妻久久| 国产呦精品一区二区三区下载| 青青久日| 青青草九九九九九| 精品人妻15区| 久久人人爽人人爽人人片Ⅴ| 久久亚洲人妻| 丝袜亚洲综合| 成人精品电影| 亚洲无992tv| 天天日天天色| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 欧美韩日精品99综合| 天天做日日做天天欢。| 日本天天人人狠狠在线日美女 | 日本一区三级韩国| 国产 日韩,欧美 自拍| www.97在线| 天天日夜干| 亚洲欧洲小说图片视频| 国产久久久久久| 日韩av女优在线免费一区| 91麻豆天美传媒在线| 五月天社区| 亚洲日韩在线a不卡99精品| 影音综合网| 国产一区二区成人av在线播放| 打av高清| 香蕉久久AⅤ...| 成人久久久精品| 大香蕉免费乱伦视频| 91中出在线| 91在线美女| 国产探花日韩援交| 久久久免费懂色| 日本www操操操| 人妻熟妇一区二区三区| 久久九九99| 人妻一区二区三区四区视频| 69综合网| 五月天久久综合网| 偷拍综合亚洲| 操人无码| 国产综合日韩伦理| 91无摭挡| 激情五月婷婷| 五十路六十路七十路熟婆| 最新加勒比丝袜在线| 国产av强奸美女| 一本色道久久综合狠狠操| 在线观看一卡二卡| 三级精品三级在线观看| 色综合久久夜色精品国产天堂| 午夜视频好爽啊| 欧美高潮| 国产suv精品一区二区四| 北约熟女超碰| 日本操逼视频免费| 青青三级视频| 一本道综合色图| 成人无码电影在线观看网| 一二三卡欧美日韩人妻免费精品| 黑丝少妇| 大香蕉专区| 偷拍亚洲情色| 日本黄色裸日本黄色裸体| 人妻AV在线| 高清无码一区二区三区| 啊啊啊水好多| 韩日精品福利视频一区不卡在线免| 99视频在线| 777AV电影| 久久免费99精品久久久久久| 中文字幕欧美精品亚洲日韩蜜臀| 大香蕉天天看妹子| 在线播放中文字幕| 蜜乳av一区二区| 无码78| 国产一| 熟妇精品juliaannAV| 男人的天堂啪啪| 国产激情在线| 国产91会所女技师在线观看| 91亚洲欧美激情| 色欧洲97| 亚洲免费日韩在线一区二区| 91精品国产麻豆国产自产在| 秋霞免费无码视频日韩A片| 性色综合网| 中文字幕欧美精品亚洲日韩蜜臀| 啊操爽品善一区二区三区| 天天欧美欧美亚洲网| 美女自卫慰黄网站免费| 日韩视频精品在线观看| 青春草莓视频在线观看网址| 欧洲亚洲人妻无码高清久久三区四区| 熟女高潮合集-永久久久-成人AV | 九九久精品| 久久久九九九九| 91殴美大片| 一区二区三区 丝袜 高跟 美腿| 久久综合激情| 久久国内| 成人97人人超碰人人| 你懂的在线观看区国产| 国产一级内射高清视频| 日韩性色| 91精品丝袜久久久久久| 51一区二区三区| 精人妻无码一区二区三区伊人直播| 亚洲天堂女优在线| 白丝少妇一区二区| 日韩99神马视频片| 97香蕉人人乳| 欧美精品另类人妖xxxx| 超碰碰97| 97天天操天天干| 久久亚洲不卡一区二区三区| 亚洲淫乱骚妇AV| 伊人精品视频| 媚薬在线视频麻豆| 嗯嗯嗯啊啊在线观看| 精品美女少妇一区二区| 日韩欧美三级| 欧美色图综合网| 久久久久久久久999| 美女被啪到深处抽搐视频| 99国产女人| 777超碰| 一起草高清无码| 97综合在线| 看免费一级在线播放毛片| 中文字幕五月婷婷免费| 96久久久久久久| 另类在线| 综合激情婷婷| 五月婷丁香| 中文字幕日韩人妻视频一区二区三区| 国模无码人体一区二区三| 亚洲在线网站| 免费伦费视频在线观看| 亚洲精品a人片在线观看视| 日韩性爱小视频在线观看| 亚洲欧美中文日韩视频中国语| 91大学精品激情戏| 午夜天堂精品久久| 欧洲精品一二三在线| A啊啊在线观看| 南澳成人一级片在线播放| 国产三级片在线观看| 日韩字幕一区| www.色婷婷色综合| 亚洲欧洲小说图片视频| 2017大香蕉国产精品久久| 香蕉av一区二区三区| 东京太热男人的天堂久久久| 久久伊人最新网址视频| 一,爱啪啪,在线免费视频| 丁香五月成人| 东北女人| 国产人妻久久精品一区二区三区| 啊啊啊啊网站| 欧成人精品一区二区三区| 国产欧美精品日韩区二区麻豆天美| 亚洲日本成人动漫| 丝袜视频一区二区在线播放国产中文| 激情四射婷婷六月天| 色逼综合| 亚州操逼图| 厕所偷拍在线| 国产熟女高潮一区二区三区| www.av家庭乱伦| 97欧美性爱| 2019AV天堂| 亚洲熟久久| 91精品人妻偷情| 久久香蕉影院| 麻豆成人av| 色激情综合网站| 女人爽到高潮潮喷18禁网站| 神马午夜久久久| 国产精品视屏| 中国东北熟女老太婆内谢| 亚洲精品色| 青青青青青手机视频| 激情网色| 后入人妻一区| 女生久久网| 伊人久久大香蕉线AV五月天| 亚洲第一二区另类图| 国产婷婷综合在线观看| 涩五月婷婷| 亚洲欧美91√| 嗯啊抽插大香蕉网页| 色噜噜人妻av 中文字幕| 成人一级二级| 日美免费黄片| 国产乱码精品久久久久久| 翔田千里AV无码秘 三区| 国产 码在线成人网站| 天天天堂影视日韩亚洲91| 欧美中文字幕日韩在线| 色妺妺在线视频| 不卡二三区人妻少妇| 日欧操屄视频| 久久青娱乐| 国产午夜福利专区综合| 日韩99神马视频片| 黑人免费福利视频| 欧美日韩国产中文超碰| 91熟女丨老女人| 婷婷综合激情| 热热色综合网| 欧洲熟妇xxXx欧美老妇裸体 | 大香蕉一线视频| 中字一区| 亚洲av综合色区无码一| 嗯嗯啊好大| 小视频玖玖| 91麻豆天美国产| 精品午夜福利国产一区二区在线观看| 亚洲影院小综合| 亚洲一区中文精品| 东京热一区二区三区四区五区六区| 一区二区乱码福利| 久9久| 欧美精品三级黄片| 亚洲AO在线| 青青青国产手线观看视频2| 久久亚洲不卡一区二区三区| 国产精品白领在线观看| baiduhicn.com。| 多毛小伙内射老太婆| 美女丝袜激情小说| 国内毛片无码一级毛片| 啊啊啊啊好疼视频| 青青草操逼逼视频| 国产精品免费久久久久久久久久| 欧美超碰9798| 日本精品网站在线中文| 伊人aaa| 九九热在线视频| 激情小说在线视频| 欧美情色男人的天堂| 国产女人操逼视频| 中国少妇啪啪视频| 欧美页片| 夜夜欢天天干| 性色av大全| 国产视频第2页| 男男H黄动漫啪啪无遮挡网站| 天堂av最新电影网| 女优视频第10页| 国产丝袜美女在线一区| 97视频在线视频| 丁香色婷婷| 天天射天天操天天干天天吃2018| 综合91网| 日韩精品中文字幕二区| 一起草三级AV电影在线观看| 在线观看视频91| 夜夜草网站| 人人搞人人插人人操| 日韩射图| 日韩一区二区熟女| 精品人妻美妇91job| 国产粉嫩蜜臀av一区二区三区| 国产精品电影推荐| 久久国色天香香蕉| 久草视频在线视频在线视频在线观看| 夜夜夜爽www精品视频| 99re8超碰| 成人午夜无码视频| 激情网色| 久久伊人最新网址视频| 97中文超碰| 欧美AAAA黄片| 亚洲日韩97| 亚洲日韩青青草色月| 99久久久er直播网址| 欧美丝袜91| 五十路人妻在线| 大鸡吧尹人在线| 国内精品伊人久久久久影院会| 五月天亚洲色图| 亚州 综合 色图| 国产精品久久9| 婷婷尹人大香蕉免费| 免费超碰97在线观看| 成人一二| 亚洲欧美在线综合| 夜夜福利| 中文字幕精品丝袜| 婷婷五月影院| 欧美一区二区亚洲天堂| 操逼无码操逼| 97色网| 自拍啪啪视频| 另类专区加勒比| 大香蕉中文aV在线| 国产不卡中文字幕免费avi| 国产女人高潮视频| 三级片网站在线播放| xxx0国产在线播放| 亚洲无码精品AV久久久| 亚洲中文字幕在线视频一区二区| avav青青草久久夜| 制服中出中文人人精品| 97色色,97综合| 91久久18禁|