久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

ZYNQ PL與PS通信:從AXI寄存器設(shè)計到LwIP TCP數(shù)據(jù)上傳

ZYNQ PL與PS通信:從AXI寄存器設(shè)計到LwIP TCP數(shù)據(jù)上傳 簡介面向需要實現(xiàn)PL與PS協(xié)同工作的FPGA開發(fā)者、嵌入式工程師和高校學(xué)生這份資源圍繞Xilinx ZYNQ平臺以網(wǎng)口TCP/IP協(xié)議為數(shù)據(jù)出口系統(tǒng)梳理了從硬件架構(gòu)、總線通信到上位機(jī)收發(fā)的工程方案。內(nèi)容基于AXI、LWIP、以太網(wǎng)MAC與DMA等關(guān)鍵環(huán)節(jié)覆蓋接口選型、協(xié)議棧配置、數(shù)據(jù)通路搭建、實時性與帶寬優(yōu)化以及調(diào)試測試方法可幫助讀者建立起清晰的設(shè)計與排錯思路。壓縮包整體約56.6MB文件清單與類型明細(xì)暫未提供但方案說明與關(guān)鍵步驟的銜接仍可作為完整項目參考。該資源已有10883人學(xué)習(xí)適合需要從整體理解PL/PS通信鏈路并通過TCP完成網(wǎng)絡(luò)數(shù)據(jù)傳輸實踐的工程師也可為ZYNQ網(wǎng)口通信類設(shè)計提供直接借鑒。1. 把 ZYNQ PL 與 PS 通信講透TCP 上行數(shù)據(jù)的關(guān)鍵在于寄存器接口設(shè)計用 ZYNQ 做數(shù)據(jù)采集然后通過網(wǎng)口把數(shù)據(jù)送到上位機(jī)這個需求在項目里出現(xiàn)的頻率比想象中高得多。很多開發(fā)者第一次接觸 ZYNQ 時都有同樣的困惑PL 和 PS 到底怎么交換數(shù)據(jù)TCP 協(xié)議棧跑在哪一端實際做下來你會發(fā)現(xiàn)TCP 協(xié)議本身是現(xiàn)成的LwIP 協(xié)議棧一掛就能跑真正的難點在于 PL 端的寄存器讀寫接口設(shè)計以及數(shù)據(jù)從 PL 到 PS 再到網(wǎng)口的這條鏈路怎么打通。這份資源的價值就在于此它不只是一個 TCP 例程而是把 PL 與 PS 通信的完整鏈路拆開從 AXI 接口設(shè)計到 LwIP 網(wǎng)絡(luò)發(fā)送每一步都有可落地的代碼和驗證方法。2. AXI 接口選型與寄存器映射PL 與 PS 通信的第一步是定數(shù)據(jù)通道2.1 四種 AXI 接口模式的適用邊界ZYNQ 的 PS 端通過 AXI 總線訪問 PL 端的邏輯資源常見的有 AXI4、AXI4-Lite、AXI4-Stream 和 AXI-Full 四種接口類型。初學(xué)者最容易犯的錯誤是一上來就選 AXI4-Stream 做寄存器讀寫結(jié)果數(shù)據(jù)通路建立不起來卡在握手信號上。選型之前先明確一個原則控制面用 AXI4-Lite數(shù)據(jù)面用 AXI4-Stream兩頭都要走就用 AXI-Full。AXI4-Lite 的特點是一次只傳一筆數(shù)據(jù)地址和數(shù)據(jù)通道獨立時序簡單非常適合讀寫 PL 端的寄存器。比如你要配置采集模塊的采樣率、啟動停止標(biāo)志位、查詢狀態(tài)寄存器這些都屬于低頻控制操作用 AXI4-Lite 就夠了。AXI4-Stream 走的是流式數(shù)據(jù)傳輸沒有地址階段數(shù)據(jù)像流水線一樣連續(xù)往外送適用于 ADC 采集數(shù)據(jù)、DMA 搬運這種高吞吐場景。AXI-Full 則同時支持突發(fā)傳輸和地址映射適合需要 PS 端頻繁讀寫 PL 端大塊存儲空間的場景但是在 ZYNQ 上實現(xiàn)起來復(fù)雜度明顯更高。加上中斷機(jī)制后AXI4-Lite 加 AXI4-Stream 的組合在絕大多數(shù)數(shù)據(jù)采集上傳項目中夠用了。中斷在 ZYNQ 里的實現(xiàn)不復(fù)雜PL 端拉高一個中斷信號PS 端注冊中斷處理函數(shù)就能做到數(shù)據(jù)到達(dá)即通知 CPU。很多人在這里有個誤區(qū)以為 PS 輪詢 PL 寄存器更簡單實際項目里數(shù)據(jù)量一大輪詢會拖垮 CPU 占用率。2.2 寄存器映射的地址分配策略用 AXI4-Lite 實現(xiàn)寄存器讀寫時地址分配要做長遠(yuǎn)規(guī)劃。通常的做法是把一個自定義 IP 核的寄存器空間劃分為四個段控制寄存器區(qū)偏移 0x00 - 0x0F、狀態(tài)寄存器區(qū)偏移 0x10 - 0x1F、數(shù)據(jù)緩沖描述區(qū)偏移 0x20 - 0x2F、擴(kuò)展保留區(qū)偏移 0x30 以上。拿一個典型的 ADC 采集上傳項目舉例寄存器映射可以做這樣的分配偏移地址讀/寫功能說明0x00寫控制寄存器bit0 啟動采集bit1 復(fù)位bit2 開啟 FIFO 寫使能0x04寫采樣率配置寫入分頻系數(shù)實際采樣率 時鐘頻率 / (分頻系數(shù) 1)0x10讀狀態(tài)寄存器bit0 FIFO 空標(biāo)志bit1 FIFO 滿標(biāo)志bit2 采集忙標(biāo)志0x14讀數(shù)據(jù)計數(shù)寄存器當(dāng)前 FIFO 中積累的數(shù)據(jù)字節(jié)數(shù)0x20讀數(shù)據(jù)讀取寄存器每讀一次FIFO 出一個數(shù)據(jù)Vivado 中自定義 IP 核時會默認(rèn)生成頂層模塊和 AXI 接口的示例代碼。建議在自動生成的模板基礎(chǔ)上修改保留 AXI 接口部分把用戶邏輯區(qū)域換成自己的設(shè)計。我一般會把地址解碼邏輯全部放在top_module中用一個reg [31:0] reg_file [N]數(shù)組做寄存器陣列這樣后續(xù)擴(kuò)展寄存器方便維護(hù)成本低。module adc_ctrl_ip # ( parameter integer C_S_AXI_DATA_WIDTH 32, parameter integer C_S_AXI_ADDR_WIDTH 8 ) ( // 自定義端口 —— 采集數(shù)據(jù)輸入 input wire [31:0] adc_data_in, input wire adc_data_valid, // 自定義端口 —— 中斷輸出 output wire irq_out, // AXI-Lite 接口端口自動生成部分略 ... ); // 寄存器文件定義 reg [31:0] reg_ctrl; // 偏移 0x00 控制寄存器 reg [31:0] reg_samp_cfg; // 偏移 0x04 采樣率配置 reg [31:0] reg_status; // 偏移 0x10 狀態(tài)寄存器 reg [31:0] reg_data_cnt; // 偏移 0x14 數(shù)據(jù)計數(shù) reg [31:0] reg_fifo_data; // 偏移 0x20 數(shù)據(jù)讀取 // 狀態(tài)寄存器 bit1FIFO 滿標(biāo)志 wire fifo_full (fifo_wr_count FIFO_DEPTH); assign reg_status[1] fifo_full; assign reg_status[2] adc_run_flag; // 本地 FIFO 寫控制 always (posedge clk or negedge rst_n) begin if (!rst_n) begin fifo_wr_en 1b0; end else if (adc_data_valid reg_ctrl[0]) begin fifo_wr_en 1b1; end end ... endmodule這里有幾個參數(shù)需要重點理解C_S_AXI_ADDR_WIDTH 8表示地址寬度 8 位尋址空間 256 字節(jié)按 32 位寄存器對齊后最多支持 64 個寄存器一般項目夠用了。adc_data_valid是外部 ADC 模塊送來的數(shù)據(jù)有效標(biāo)志這個信號被拉高時FIFO 的寫使能才有效。注意代碼中把reg_ctrl[0]作為采集總開關(guān)這是典型的設(shè)計模式——所有模塊的啟動、停止都由統(tǒng)一的控制寄存器管理后續(xù)上位機(jī)命令分發(fā)時只需往一個地址寫數(shù)據(jù)避免多個寄存器協(xié)同操作帶來的時序問題。2.3 FIFO 深度的工程權(quán)衡PL 端 FIFO 深度的選擇直接決定數(shù)據(jù)傳輸鏈路會不會因為瞬間阻塞而丟數(shù)據(jù)。FIFO 深度太小PS 來不及讀數(shù)據(jù)時就會溢出FIFO 深度太大占用 BRAM 資源影響其他邏輯的綜合布局。從工程經(jīng)驗上看FIFO 深度至少為 PS 端 DMA 突發(fā)長度的兩倍。如果 PS 端 DMA 配置的突發(fā)長度是 64 個 32 位字那么 FIFO 深度建議 128 以上。這個參數(shù)怎么推導(dǎo)的DMA 讀數(shù)據(jù)時總線協(xié)議要求一次突發(fā)傳輸中間不能被中斷如果 FIFO 中的數(shù)據(jù)少于突發(fā)長度DMA 就要等待 FIFO 攢夠數(shù)據(jù)等待期間總線處于閑置狀態(tài)。FIFO 深度大于兩倍突發(fā)長度就能保證 DMA 連續(xù)讀取時幾乎不需要等待。另外還要考慮 FIFO 數(shù)據(jù)寬度與 DMA 數(shù)據(jù)寬度的匹配問題。如果 PL 端每拍產(chǎn)生 16 位數(shù)據(jù)而 PS 端 DMA 的讀寫位寬是 32 位中間需要做位寬轉(zhuǎn)換。一種方式是直接用 Xilinx FIFO IP 核的位寬轉(zhuǎn)換功能輸入 16 位、輸出 32 位另一種方式是用兩個 16 位 FIFO 交替存儲讀出時拼接。前者簡單后者可以節(jié)省資源但代碼復(fù)雜度上升。如果數(shù)據(jù)速率不高我通常選擇 Xilinx FIFO IP 核自帶的標(biāo)準(zhǔn)模式轉(zhuǎn)化功能設(shè)置好讀寫位寬就能用。3. PS 端工程配置與 LwIP 網(wǎng)絡(luò)發(fā)送數(shù)據(jù)到 PS 之后誰來接管3.1 SDK 工程的 BSP 配置與 GIC 中斷初始化Vivado 硬件導(dǎo)出到 SDK 后工程模板會自動生成 BSP 包但是 LwIP 協(xié)議棧默認(rèn)不是開啟的。在 SDK 環(huán)境下進(jìn)入 BSP 設(shè)置窗口找到lwip141庫選項把lwip勾上。這里有個版本兼容的坑Vivado 2018.3 之前的版本對應(yīng)的 LwIP 版本是 141Vivado 2020.1 之后的版本 LwIP 升級到 211兩者的 API 接口有細(xì)微差異后續(xù)代碼編譯報錯時優(yōu)先檢查這里。GIC 中斷控制器初始化是另一個核心點。PS 端要接收 PL 發(fā)來的中斷信號就必須在 GIC 里注冊中斷服務(wù)函數(shù)。GIC 有 SPID 和 PPID 兩個中斷源組PL 端的中斷一般連接到 GIC 的 SPI 中斷號上。在 ZYNQ-7000 系列中PL 到 PS 的中斷線有 16 條對應(yīng) GIC 的中斷號從 61 開始遞增。#include xscugic.h static XScuGic Gic; static XScuGic_Config *GicConfig; int Gic_Init(void) { GicConfig XScuGic_LookupConfig(0); if (GicConfig NULL) { return XST_FAILURE; } XScuGic_CfgInitialize(Gic, GicConfig, GicConfig-CpuBaseAddress); // 初始化異常處理必須在 GIC 初始化之后、中斷注冊之前完成 Xil_ExceptionInit(); Xil_ExceptionRegisterHandler( XIL_EXCEPTION_ID_INT, (Xil_ExceptionHandler)XScuGic_InterruptHandler, Gic ); Xil_ExceptionEnable(); return XST_SUCCESS; }這段代碼里最容易被忽略的是Xil_ExceptionInit()調(diào)用的位置。很多人把異常初始化放在系統(tǒng)啟動階段最先處理但在 ZYNQ 上正確的順序是先初始化 GIC 控制器再把 CPU 的異常處理函數(shù)指向 GIC 的中斷分發(fā)入口。如果順序搞反了中斷信號到了 CPU 側(cè)沒有一個統(tǒng)一的入口去查找中斷號程序就會跑飛。3.2 LwIP 協(xié)議棧的移植與網(wǎng)絡(luò)接口配置LwIP 在 ZYNQ PS 端的移植已經(jīng)比較成熟BSP 包里包含了 AXI Ethernet 驅(qū)動但我們這里用的是 PS 自帶的千兆以太網(wǎng)控制器BSP 生成時會自動加入相應(yīng)驅(qū)動。需要手動調(diào)整的是lwipopts.h文件中幾個全局配置宏#define MEM_SIZE (8 * 1024 * 1024) // 內(nèi)存堆大小 #define MEMP_NUM_PBUF 64 // PBUF 結(jié)構(gòu)體數(shù)量 #define MEMP_NUM_TCP_SEG 128 // TCP 報文段緩沖區(qū)數(shù)量 #define TCP_SND_BUF_DEFAULT (16 * 1024) // 發(fā)送緩沖 #define TCP_WND_DEFAULT (16 * 1024) // 接收窗口 #define LWIP_DHCP 0 // 關(guān)掉 DHCP用靜態(tài) IP #define LWIP_NETCONN 1 // 啟用中斷/輪詢模式 APIMEM_SIZE決定整個 LwIP 協(xié)議棧運行時能夠使用的內(nèi)存總量如果這個值太小TCP 連接建立時可能出現(xiàn)內(nèi)存分配失敗表現(xiàn)為上位機(jī)連接后立即斷開。TCP_SND_BUF_DEFAULT 直接影響單次發(fā)送的數(shù)據(jù)包大小這個值可以按 MTU 的整數(shù)倍來配置常見取 16KB 是因為 TCP 窗口和 MTU 協(xié)商后16KB 的緩沖空間可以容納約 10 個 MSS最大分段大小的數(shù)據(jù)量。網(wǎng)絡(luò)接口初始化的代碼固定框架其中關(guān)鍵在網(wǎng)絡(luò)參數(shù)的結(jié)構(gòu)體填充。我們是設(shè)備端服務(wù)器上位機(jī)是客戶端主動連過來所以本地 IP、端口配置好后只需開啟監(jiān)聽。#include lwip/init.h #include lwip/netif.h #include lwip/tcp.h #include xparameters.h #include xil_printf.h // 靜態(tài) IP 配置 #define TCP_SERVER_PORT 8080 #define DEVICE_IP_ADDR 192.168.1.100 #define DEVICE_NETMASK 255.255.255.0 #define DEVICE_GATEWAY 192.168.1.1 static struct tcp_pcb *server_pcb; static struct netif eth0_netif; void Network_Init(void) { struct ip_addr ipaddr, netmask, gw; IP4_ADDR(ipaddr, 192, 168, 1, 100); IP4_ADDR(netmask, 255, 255, 255, 0); IP4_ADDR(gw, 192, 168, 1, 1); lwip_init(); netif_add(eth0_netif, ipaddr, netmask, gw, NULL, ethernetif_init, ethernet_input); netif_set_default(eth0_netif); netif_set_up(eth0_netif); // 創(chuàng)建 TCP 控制塊并綁定到監(jiān)聽端口 server_pcb tcp_new(); if (server_pcb NULL) { xil_printf(TCP PCB create error\r\n); return; } tcp_bind(server_pcb, IP_ADDR_ANY, TCP_SERVER_PORT); server_pcb tcp_listen(server_pcb); tcp_accept(server_pcb, Server_Accept_Callback); }這里有一個關(guān)鍵的設(shè)計選擇netif_add的最后一個參數(shù)ethernet_input是 LwIP 的網(wǎng)卡數(shù)據(jù)輸入函數(shù)這個函數(shù)在 ZYNQ 的裸機(jī) BSP 環(huán)境中對應(yīng)的是emacps_rx_thread之類的回調(diào)。務(wù)必確認(rèn) BSP 中以太網(wǎng)驅(qū)動的接收中斷已經(jīng)打開否則ethernet_input永遠(yuǎn)收不到數(shù)據(jù)TCP 就建立不起連接。3.3 數(shù)據(jù)發(fā)送的阻塞與非阻塞選擇數(shù)據(jù)從 PL 讀到 PS 后通過 TCP 發(fā)送給上位機(jī)。發(fā)送路徑上有兩種思路阻塞發(fā)送和回調(diào)發(fā)送。阻塞發(fā)送最簡單——直接調(diào)用tcp_write加tcp_output數(shù)據(jù)就能發(fā)出去。問題在于tcp_write只是把數(shù)據(jù)拷貝到內(nèi)核緩沖真正的網(wǎng)絡(luò)發(fā)送發(fā)生在tcp_output之后如果緩沖區(qū)滿tcp_write會返回ERR_MEM。很多初學(xué)者的程序在這里出現(xiàn)偶發(fā)丟包。正確做法是利用 LwIP 的發(fā)送完成回調(diào)機(jī)制。給 TCP 控制塊注冊一個sent回調(diào)函數(shù)當(dāng)系統(tǒng)確認(rèn)數(shù)據(jù)已經(jīng)發(fā)送并得到對端 ACK 后才釋放標(biāo)志位允許下一批數(shù)據(jù)寫入。static uint32_t tx_busy_flag; static uint8_t send_buffer[8192]; void Send_Data_To_Host(uint8_t *data, uint16_t len) { err_t err; // 等待上次數(shù)據(jù)發(fā)送完成 while (tx_busy_flag) { // 非阻塞等待發(fā)送完成回調(diào)會清除標(biāo)志位 } memcpy(send_buffer, data, len); err tcp_write(server_pcb, send_buffer, len, TCP_WRITE_FLAG_COPY); if (err ERR_OK) { err tcp_output(server_pcb); if (err ERR_OK) { tx_busy_flag 1; } } } static err_t Server_Sent_Callback(void *arg, struct tcp_pcb *tpcb, u16_t len) { tx_busy_flag 0; return ERR_OK; }這段代碼的邏輯亮點在TCP_WRITE_FLAG_COPY標(biāo)志。不使用這個標(biāo)志時tcp_write只是把指針存到待發(fā)送隊列如果上層緩沖在 TCP 報文段真正發(fā)出前被修改會產(chǎn)生錯誤數(shù)據(jù)。使用 COPY 標(biāo)志后LwIP 會先將數(shù)據(jù)拷貝到內(nèi)部 PBUF函數(shù)返回后就可以安全地重用本地緩沖區(qū)。代價是多了一次內(nèi)存拷貝但在千兆網(wǎng)口下這個開銷可以接受。需要注意tx_busy_flag的等待循環(huán)不是嚴(yán)格意義上的阻塞因為 LwIP 協(xié)議棧需要持續(xù)調(diào)用tcp_tmr來處理定時器事件。在裸機(jī)環(huán)境下通常的做法是在主循環(huán)中刷新 LwIP 的定時器否則 TCP 的 ACK 超時重傳機(jī)制無法工作while (1) { tcp_tmr(); // 刷新 LwIP 定時器處理重傳、超時邏輯 // 檢查 FIFO 數(shù)據(jù)計數(shù)寄存器有數(shù)據(jù)則讀取并發(fā)送 if (Data_Is_Ready()) { Read_FIFO_And_Send(); } }4. 上位機(jī) TCP 客戶端與數(shù)據(jù)對齊鏈接建好了數(shù)據(jù)格式才是下一道關(guān)卡4.1 上位機(jī)的 TCP 接收實現(xiàn)要點上位機(jī)端推薦直接使用 Python 的 socket 模塊快速驗證先確認(rèn)鏈路通不通再去做復(fù)雜的界面封裝。很多開發(fā)者在這個項目上的做法是邊寫 Qt 界面邊調(diào)試網(wǎng)絡(luò)問題排查起來非常痛苦——網(wǎng)絡(luò)不同時你很難判斷是 PL 端邏輯壞了還是界面線程阻塞了。先用一個純命令行腳本驗證收發(fā)再把網(wǎng)絡(luò)模塊移植到圖形界面中調(diào)通概率高很多。import socket import struct import time def recv_tcp_data(port: int, timeout: float 5.0) - None: TCP 客戶端接收上位機(jī)數(shù)據(jù)按固定幀格式解析 client socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.settimeout(timeout) server_addr (192.168.1.100, port) try: client.connect(server_addr) print(f[INFO] connected to {server_addr}) # 數(shù)據(jù)接收緩沖區(qū)避免一次 recv 零散切割造成解析錯誤 buffer b while True: try: chunk client.recv(4096) if not chunk: print([WARN] connection closed by device) break buffer chunk # 按幀頭 0xAA55 長度字段協(xié)議解析 while len(buffer) 6: if buffer[0] 0xAA and buffer[1] 0x55: frame_len struct.unpack(H, buffer[2:4])[0] if len(buffer) 4 frame_len: break # 數(shù)據(jù)不完整繼續(xù)等待 # 提取一幀有效數(shù)據(jù) payload buffer[4:4 frame_len] print(f[INFO] received frame len{frame_len}, fdata_head{payload[:16].hex()}) buffer buffer[4 frame_len:] else: buffer buffer[1:] # 丟一個字節(jié)重新找?guī)^ except socket.timeout: print([WARN] recv timeout, no data in last period) break except ConnectionRefusedError: print([ERROR] device not listening, check IP and port) finally: client.close() if __name__ __main__: recv_tcp_data(port8080)這個腳本同時演示了 TCP 流式協(xié)議的拆包處理。TCP 是字節(jié)流協(xié)議兩次send的數(shù)據(jù)可能在一次recv中混在一起也可能一次send被拆成多次recv。如果沒有幀結(jié)構(gòu)設(shè)計上位機(jī)收到的數(shù)據(jù)就是亂序的。代碼中0xAA55幀頭加長度字段的方案是工程最常用的做法先找?guī)^再按長度解幀能有效對抗粘包和半包問題。4.2 大小端與數(shù)據(jù)對齊的隱性戰(zhàn)爭PL 端是 ARM 架構(gòu)的 ZYNQ 雙核上位機(jī)通常跑在 X86 架構(gòu)上ARM 默認(rèn)小端序X86 也是小端序很多情況下不用考慮大小端轉(zhuǎn)換問題。但問題是數(shù)據(jù)從 PL 硬件 FPGA 出來時開發(fā)者習(xí)慣整理成大端格式。一個 32 位的數(shù)據(jù)在 PL 端被拆成 4 個字節(jié)發(fā)送如果上位機(jī)按小端序解析數(shù)字就完全對不上。import struct # PL 端以特定字節(jié)序發(fā)送 4 字節(jié)數(shù)據(jù) # 場景1PL 端按小端發(fā)送上位機(jī)用 符號解析 raw_small b\x01\x00\x00\x00 value struct.unpack(I, raw_small)[0] print(f小端解析結(jié)果: {value}) # 輸出 1 # 場景2PL 端按大端發(fā)送上位機(jī)必須用 符號解析否則出錯 raw_big b\x00\x00\x00\x01 value_wrong struct.unpack(I, raw_big)[0] value_right struct.unpack(I, raw_big)[0] print(f錯誤解析: {value_wrong}) # 輸出 16777216 print(f正確解析: {value_right}) # 輸出 1處理字節(jié)序最穩(wěn)妥的做法是 PL 端發(fā)送時遵循固定的網(wǎng)絡(luò)字節(jié)序大端上位機(jī)統(tǒng)一用!或符號解析。網(wǎng)絡(luò)協(xié)議棧內(nèi)部的 IP 頭、TCP 頭都是網(wǎng)絡(luò)字節(jié)序如果應(yīng)用層數(shù)據(jù)也統(tǒng)一用大端整個鏈路的數(shù)據(jù)格式就一致了。另外一種做法是 PL 端發(fā)送數(shù)據(jù)前把各字節(jié)按照上位機(jī)的預(yù)期存儲順序排列好上位機(jī)不做任何轉(zhuǎn)換直接解析。這種方式效率最高但沒有通用性一旦上位機(jī)換了平臺所有解析邏輯都要改。我建議應(yīng)用層還是定義大端格式協(xié)議頭統(tǒng)一用struct.pack(!I, value)打包雖然多花幾行代碼但未來換上位機(jī)平臺時不會翻車。5. 避坑與排查從連接失敗到數(shù)據(jù)錯亂的五個典型問題5.1 TCP 連接建立不了網(wǎng)絡(luò)一直 ping 不通抓包軟件看不到設(shè)備發(fā)出的 ARP 請求。排查發(fā)現(xiàn) BSP 配置時沒有正確生成xemacps_g.c驅(qū)動文件導(dǎo)致 PS 端以太網(wǎng)控制器根本沒有初始化。原因是 SDK 中 BSP 包生成時沒有勾選 Standalone 的emacps驅(qū)動或者勾選了但 BSP 沒有重新生成。解決方法是右鍵點擊 BSP 工程選擇BSP Settings查找drivers分支下的ps7_ethernet_0是否為emacps不是則改為emacps然后重新生成 BSP。5.2 數(shù)據(jù)突發(fā)丟包TCP 連接正常但數(shù)據(jù)不完整現(xiàn)象是上位機(jī)連接正常但是數(shù)據(jù)每隔幾秒會有一批缺失丟包數(shù)量沒有規(guī)律。用 Wireshark 抓包發(fā)現(xiàn) TCP 報文段重復(fù) ACK 頻繁出現(xiàn)。原因大概率在 PS 到 PL 的數(shù)據(jù)讀取路徑上。PS 讀取 FIFO 數(shù)據(jù)時如果采用輪詢方式但輪詢間隔太長FIFO 溢出就會丟數(shù)據(jù)。此外LwIP 的tcp_write緩沖區(qū)設(shè)置太小發(fā)送緩沖滿后新數(shù)據(jù)被丟棄。解決辦法是把 FIFO 讀取從輪詢模式改成中斷模式讓 PL 端在 FIFO 半滿時觸發(fā)中斷PS 立即響應(yīng)讀取。LwIP 參數(shù)調(diào)整同時把TCP_SND_BUF_DEFAULT從 4KB 提到 16KB給發(fā)送鏈路更多緩沖余量。5.3 AXI 讀寫寄存器一直返回錯誤值在 Vivado 的 Hardware Manager 里通過 JTAG 讀 IP 核的寄存器狀態(tài)寄存器一直顯示 0xFFFFFFFF。檢查 AXI 地址映射發(fā)現(xiàn)IP 核的基地址配置成了 0x40000000但 vivado 中地址編輯器的段分配把寄存器起始地址設(shè)在了 0x40001000兩者錯位導(dǎo)致訪問落到了未實現(xiàn)的空間上。解決方法是打開 Address Editor確認(rèn)adc_ctrl_ip的偏移地址是否從 0x0 開始建議把 Base Address 固定為 0x40000000Range 設(shè)為 64KB這樣簡單干凈。類似問題在多個 IP 掛在同一個 AXI 總線上時更容易出現(xiàn)排查時要逐個確認(rèn)地址段沒有重疊。5.4 上位機(jī)收到的數(shù)據(jù)是反的幀頭識別成功數(shù)據(jù)長度也對但是數(shù)值完全不對。比如理論上應(yīng)該收到 10000實際收到 2055208960十六進(jìn)制 0x7A690000??酥谱∪ゼm結(jié) LwIP 代碼的沖動先檢查字節(jié)序。這是最典型的字節(jié)序問題。PL 端 Verilog 代碼里把 32 位數(shù)據(jù){data[31:16], data[15:0]}做了拼接發(fā)送相當(dāng)于整體交換了兩個 16 位半字實際就是大小端處理混亂。統(tǒng)一按大端處理后問題不再出現(xiàn)。5.5 開發(fā)板偶爾死機(jī)復(fù)位后恢復(fù)設(shè)備運行一段時間后網(wǎng)口 ping 不通串口也輸出不了任何信息。檢查時鐘配置和復(fù)位序列發(fā)現(xiàn) PL 端使用了獨立的 MMCM 時鐘域但 FIFO IP 核的復(fù)位引腳連接的是 AXI 接口的 rst 信號兩個時鐘域的復(fù)位時序不一致。解決方法是把 PL 端所有模塊的復(fù)位信號統(tǒng)一使用proc_sys_resetIP 生成的interconnect_aresetn并檢查 FIFO IP 的reset_pol設(shè)置是否與復(fù)位模塊輸出極性一致。在開發(fā)板上加一個看門狗復(fù)位超時自動重啟整個系統(tǒng)也能規(guī)避偶發(fā)的死機(jī)問題。6. 進(jìn)階從千兆帶寬利用到雙通道設(shè)計實戰(zhàn)性能再翻倍TCP 上傳數(shù)據(jù)鏈路打通之后可以往下做兩件縮小系統(tǒng)瓶頸的事一是吞吐量調(diào)優(yōu)二是多路復(fù)用擴(kuò)展。吞吐量調(diào)優(yōu)的核心指標(biāo)是計算實際有效帶寬。ZYNQ PS 網(wǎng)口硬件理論帶寬是 1000Mbps但是應(yīng)用層實測通常只有 300 到 500Mbps原因在于 LwIP 裸機(jī)協(xié)議棧的運行機(jī)制限制以及 TCP ACK 往返時延帶來的窗口占用。網(wǎng)絡(luò)帶寬利用率的計算公式為有效帶寬 發(fā)送數(shù)據(jù)量 / 總耗時。在嵌入式設(shè)備上還會有一個額外限制LwIP 的tcp_write每調(diào)一次都要經(jīng)歷和本地內(nèi)存系統(tǒng)打交道大量交互會消耗 CPU 時間。有一個簡單有效的優(yōu)化是加大單次發(fā)送包長。把TCP_SND_BUF_DEFAULT提升到 64KB同時在應(yīng)用層使用tcp_write連續(xù)發(fā)送多個待發(fā)塊配合tcp_output做一次集中刷出。這種策略下即使單塊數(shù)據(jù)包較小協(xié)議棧也會積攢到足夠數(shù)據(jù)后一次性發(fā)出有效降低網(wǎng)口 TX 中斷觸發(fā)頻率。雙通道設(shè)計適合需要同時上傳兩路數(shù)據(jù)的場景。做一個 AXI-Stream 到 AXI4-Lite 的橋接模塊將兩路 ADC 數(shù)據(jù)交替寫入同一個 DMA 描述符環(huán)。上位機(jī)按幀號區(qū)分兩路數(shù)據(jù)幀格式中前三字節(jié)固定為數(shù)據(jù)通道標(biāo)識。這種設(shè)計比雙 TCP 連接簡潔PS 端只需維護(hù)一個tcp_pcb數(shù)據(jù)到達(dá)后按照既定的幀號交錯發(fā)送即可。實踐中的驗證方法也很直接先用開發(fā)板配置一個固定數(shù)據(jù)源比如計數(shù)器計數(shù)值替代真實采集數(shù)據(jù)上位機(jī)統(tǒng)計接收總數(shù)和發(fā)送端計數(shù)對比。兩端計數(shù)值一致說明鏈路無損不一致就對中間過程進(jìn)行逐段 debug先看 PL FIFO 讀寫指針差值再看 PS 讀出的數(shù)據(jù)累計值最后看 LwIP 發(fā)送字節(jié)統(tǒng)計量哪個環(huán)節(jié)對不上就重點檢查哪個環(huán)節(jié)。那次調(diào)通雙通道方案后我給自己立了一條規(guī)矩每次把代碼從仿真環(huán)境挪到裸機(jī)網(wǎng)絡(luò)環(huán)境先花 5 分鐘核對三個關(guān)鍵參數(shù)——FIFO 寫使能極性、TCP 發(fā)送緩沖大小、字節(jié)序解析格式。這三樣沒有問題的情況下網(wǎng)絡(luò)異常往往不出在通信本身而是出在系統(tǒng)初始化的細(xì)節(jié)順序。ZYNQ 的中斷初始化順序、LwIP 的內(nèi)存堆大小、PHY 芯片的復(fù)位時序這三個位置是翻車高發(fā)區(qū)每次排查都從它們開始驗證。希望這次拆解能幫你少走一段彎路。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美精品23| 91嫩草欧美| 日韩啪啪视频| 欧美在线综合| 大香蕉天天看妹子| 亚洲丝袜色| 亚洲高清无码在线桃色| 2023天天操夜夜操| 夜夜嗨一区| www.高清无码诱惑一区.com | 久久精品中文字幕无码l| 野狼福利社区| 日韩专区久久久| 国产无遮挡| 亚洲第一成人影院色播| 岛国在线一区二区三区| 无码不卡八戒| 国产精品午夜AV完会免费| 欧美综合亚洲| 福利大香蕉| 日日干男人的天堂| 校园春色欧美| 国产免费一区| 熟女网站最新| 色综合99999| 人妻 欧美 中文| 男女打扑克高清网站| 中文字幕 国产 精品| 欧美大香蕉同搞| 亚洲精品国产熟女| 波多野42部无码喷潮在线观看| 色99999| 在线情色电影 91大| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 日韩中文9| 日韩噜噜69| 熟妇高潮精品一区二区三区下载| 精品一二三区女同| 综合大香蕉美。| 精品中文一区二区| 91天天综合在线观看| 欧美天堂第二区| 伦理弟一页| 亚洲91网站| 亚热日本熟女| 国产后入清纯| 欧色网址| 夜夜爽夜夜操| 日韩激情毛片一级久久久| 中文字幕97| 大屁股人妻女教师撅着屁股| 欧美大香蕉同搞| 人人操我人人干| 盗摄女人妻在线| 操我无码| 在线啊啊啊啊| 亚州 综合 色图| 一区二区视频你懂的| 国产乱码精品久久久久久| 国产十八禁视频| 欧洲大香蕉| 97视频播放| 91亚洲人| 蜜乳视频网站| 天天躁日日躁AAA片李宗瑞| 女人高潮大叫一级毛片| 青青网三级视频| 超碰天天久久79| 97超碰这里只有精品| 久久精品一区一起草| 射综合网| 国产精品网址| 国产精品小视频一区二区三区| 亚洲精品欧洲精品| 黑人在线91| 伦伦成年午夜免费视频| 人妻久久久| 欧美制服网站美腿丝袜| 91 综合 色| 亚洲久9| 天堂v无码免费视频| 亚洲精品成人动漫在线| 五月丁香婷婷色| 99久久这里只有精品| 99热aaa| 亚洲不卡一| 操国产逼| 日本有码久久| 78久久| 中文字幕一区电影在线观看| 精品无吗久久| 日韩有码中文字幕女同性恋 | 91精品丝袜在线观看| 久久久久久久少妇| 国产97色在线 | 亚洲| 日韩亚洲欧美中文字幕| 亚洲精品亚洲人成人网| 一区二区视频你懂的| 91爱| 久久久A∨| 超碰视97中文| 岛国网址国产| 国产偷人妻精品一区二区在线| 一区二区三区一亚洲中文字幕、综合区灬 | 夜夜嗨TV| 日本性爱网址| 久啪| www.久久制服糖| AV中文在线可看| avav青青草久久夜| 强奸乱伦αv片| 久久久久久91香蕉国产| 日本孕妇一区二区视频操逼免费看 | 久久黄色视频一区二区三区| 色大香蕉97N| 超碰九7免费| 久久美女福利是上海美女| 久久久久久久六六| 377p欧洲日本亚洲大胆| 久草精品一区| 亚洲成熟国产精品美女| 亚洲成人帖图| 欧美一级色| 亚洲精品97久久中文字幕| 无码操逼网| 麻豆AV短剧| 亚洲情色综合| 日本人体九九九九九九| 欧美传媒| 97在线观看免费视频l| 日本爽爽爽爽爽爽免费视频| 久久综合女优| 999亚洲国产视频| 日韩美女高潮喷水视频| 777奇米影视777四色| 日韩亚洲97| 91动漫操逼视频| 97中文综合| 国产刺激视频| 日韩欧美亚洲自拍偷拍| 操B久久| 高潮毛片无遮挡高清免费| 欧美亚州综合图片| 欧美综合区| 一卡二卡三卡| 精品人妻一区二区免费蜜桃| 91在线精品一区二区三区| 操学生天天| 无码乱人伦中文视频| av2014 日韩在线中文字幕| 日本三级大片| 亚洲无码精品AV久久久| 欧美黑人91| 99热99在线| 一级性爱网| 做爱福利视频一区二区| 欧美日韩成人在线| 日韩字幕一区| 久久熟女嫩草成人片免费 | 99re99在线视频| 老鸭窝亚洲毛片| 少妇一区二区三区精选| 久久久999| 蜜臀aV午夜一区二区三区| 欧美色五月| 尹人免费观看视频在线| 夜夜夜夜久久久久| 美女骚尻视频| 亚欧中文字幕在线视频| 97久久视频| 国产精品一区二区久久精品| 欧美日韩小说| 久久中文字幕女同性恋一区| www.操| 亚洲一卡2卡3卡4卡乱码网站 | 天天爽爽爽爽| 成人三级片无码| 超碰97人妻| 精品丰满熟妇人妻一区| av一区二区三区四区五区久草臀| 九色PORNY9l原创自拍| 免费无码国产精品v片在线观看| 蜜臀AV午夜精品久| 欧美,亚洲,日韩,v,天堂,手机在线观看| 裸体美女国产免费久久久网站| 999精品国产高清一区二区| 变态另类专区| 98福利在线视频| 美女大乳久久久久久久女人18| 久久久精品成人国产| 国产美女口爆吞精视频| 中文乱码字幕观看| 91精品老女人| 国产人妻久久精品一区二区三区| 亚洲欧洲第二视频在线观看色图| 亚洲性图91| 久操视频免费在线观看| 日日干日日| 国产一区二区三区导航| 视频黄色国产一级| 三级AV入口| 最新日本中文字幕| 亚洲一区在线观看欧洲| 黄色av网站在线播放| 国产精品美女| 亚州综合网| 99re99| 亚洲欧美碰碰| 乱伦熟女专区| 人妻啪| 人人摸.人人色| 中文?日韩?免费?精品| 色噜噜狠狠色综无码久久合欧美| 亚洲黄色AV电影| 少妇熟女视频一区二区三区| 97视频在线观看网站| 91殴美| 国产日韩在线播放av| 97视频免费在线观看| 97天天| 中文字幕91综合| 日日躁夜夜躁狠狠躁超爽| 99精品久久久久久久婷婷蜜桃| 日韩精品人妻中文字有码在线 | 夜草欧美| 骚货 中文字幕 av| 亚洲性少妇| 国产精品无码久久久久2028| 中文字幕免费看大片| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 人人弄人人摸| 黄视频免费| 一级黄色性爱A级片| 亚洲一级性爱视频免费看| 国产成人亚洲精品无码古代早漏男| 中文字幕精品免费一区二区| 九月丁香婷婷色| 在线无码操| 天天插天天干| 麻豆影音天美视频| 超碰欧美97资源| 国产精品久久蜜乳av| 亚洲天堂欧美| 日韩欧美国产高清视频| 色嘟嘟人妻天堂网| 金典av| 亚洲欧洲日韩中文字幕一区| 欧美精品三区| 久久久国产成人一区二区三区在线| 91日本在线观看| 亚洲无套久久嗯嗯| 丝袜狂射91| 2017天天操| 亚洲欧洲综合av在线| 久久XX| 91啪9色| 加勒比东京热五月天天堂网| 人妻天天爽天天爽三区| 一类av片在线看| 国产激情片在线观看| 亚洲国产一区二区三区在线 | 眼镜人妻101.com| 国产精品久久久久久久久AV大片| 日韩伦理视频| 校园激情狠狠四射| 一级黄色牲爱A级片| 偷拍 亚洲| 欧美综合色综合| 一中国女人毛片水真多| 婷婷久久网| 嫩草伊人久久精品| 日韩精品字幕| 国产黄a三级三级三级av在线看| 精品中文一区二区| 国产JDAV无码视频在线观看| 欧美一区二区三区大综合| 日韩成人人妻网站| 久久精品日韩| AV高清一区| 国语av狠狠色丁香婷婷综合激情| 婷婷久久大香蕉| 精品9999| 黄页网站免费高清在线观看| 亚欧美色图| 老熟女乱子伦中文字幕一区二区| 美女啪欧美一区| 97综合久久| 国产精品一二三免费网站| 91美女視頻| 久久久久久久久久久免费精品| 嗯啊不要在线观看嗯啊| 男同专区一区二区三区在线| 久操不卡视频| 这里只有精品97| 国产超碰| 日韩欧美蜜桃精品久久中文字幕久久| 日亚韩精品视频二区三| 青青草依人大香蕉| 五月香婷婷| 欧美性色欧美| 色色操| 日本不卡中文| 玖玖色综合| 色路综合| 精品久久久久久亚洲| 熟女熟妇伦久久影院毛片一区二区 | www.人人cao| 久久 久久国内精品亚洲| 99久久精品无码一区二区毛片免费| 九九热精品在线| 国产精品96久久久久久| 精品国产自在在线99| 国产成人亚洲精品无| 嗯啊不要啊啊在线观看视频| A 在线网址| 成人久久久精品| 亚洲精品精品一区二区| 色逼综合| 91色综合激情| 八人操人人摸人人看| 九九九九九九免费视频| 久都青青视频| 日韩 欧美 视频 在线 一区| 97色欧洲| 成人AV素股で擦久久| 欧美性爱第一页久久| 色制服丝袜夫妻av一区| 狠狠爱综合| 欧美激情专区| 一区二区国产视频在线观看| 天天做天天爱| 国产第12页| 天操天操夜操夜月操月年年操操| 蜜桃久久综合视频| 精品无码不卡视频| 男人天堂新| 一区二区三区四区久久视1| 婷婷丁香九月| 玖玖综合网| 天天插夜夜爽| 91色综| 秋霞久久亚洲精品成人| 日本在线伊人啪啪| 男女性扦B| 夜夜中出国产| 日本高清一区二区在线| 97超碰人人模人人拍人人| 国产精品不卡一区二区三区| 久久五月份| 国产大学生口爆吞精合集| 超碰78| 少妇内射视频| 日欧美色| 亚洲男人的天堂亚洲| 成人a大片在线观看| 九九热三级片| 天天拍夜夜| 精久久久| 蜜桃狠狠色伊人亚洲综合| 麻豆区99999| 久久久 国产精品| 日本性爱欧美性爱| 91无码西班牙视频在线| 97天天摸天天爽| 91精品人妻五十路| 丁香婷婷激情五月天无毒不卡| 中文字幕 国产区| 内射小黄片| 欧美色图20p| 中文字幕第二页| 小骚逼被操的爽不爽| 精品久久久久,69国产成人精| 亚洲无线码一区国产欧美国| 人看人人摸人人操| 狠狠操综合| 无码人妻丰满热妇又大又粗| 丁香六月激情| 93人人操人人| 久久久久久国产手机AV| 黄色免费网页无码| 欧美十八禁网站| 性爱乱伦视频免费| 亚洲中文日韩欧美大香蕉视频| 日韩熟女操逼| 草草影院最新网址| A 在线网址| 欧美日韩色综合网| 国产CHASE男男GAYGA 毛多色婷婷| 国产欧美精选自拍一区| 亚洲一区二区三区播放在线| 欧美专区日本专区| 亚洲色综合| 亚洲人成网www| 国产亚洲一黄| 色女99一级片在线观看| 99亚洲人人| 搞中出视频在线观看| 美女诱惑在线一区| 超碰久久网| 亚洲在线A| 亚洲国产97在线精品一区| 另类老少妇| 亚洲资源吧| 99热婷婷一区二区三| 99re黄| 97超碰色色| 久久久久久亚洲Av无码精| 国产在线综合福利网站| 粉嫩不卡一区二区性爱| 爱射综合| 亚洲麻豆18发?| 日韩日韩日韩-国产乱码精品一区二区| 日韩欧美~中文字| 欧美日韩亚洲天堂| 午夜.DJ高清在线观看免费7| 国产女人91精品嗷嗷嗷嗷| 婷婷九月色| 欧美爆操91| 东方亚洲在线操逼天堂| 色爱天堂| 温婉少妇玩3p| 欧亚乱色熟一区二区三四区| 欧美激情亚洲情色| 国产精品天堂| 草莓精品视频| 亚洲一本色码中文字幕| 亚洲高潮影院| 草草影院最新网址| 人妻天天夜夜爽一区二区| 亚洲综合性网址| 人人澡人人干| 大香蕉免费乱伦视频| 中文高清一区二区的| 东京热不卡视频| 欧美色欧美| 婷婷中文网| 中文字幕视频2区| 色97欧美| 日本天天操| 男人下部插入女人下部| 熟女熟妇一区二区三区视频| 精品成人动漫一区二区| 日韩紧密久久| 欧美色性情| 婷婷视频在线免费观看| 欧美操逼视频二区| 久久人妻| 97爱爱爱综合| 日韩精品三级| 亚洲一区二区三区四区视频| 无码久| 精品久久久久久无码| 国产少妇肉丝在线观看| 曰本特级特黄特色黄色A级网站高清在线免费看 | 国产精品午夜福利| 亚洲一卡2卡3卡4卡乱码网站 | 精品超碰国产| 99re综合伊人| 屁屁影院一区二区三区国产| 97看操| 色香欲影| 亚洲午夜免费狠狠干| 国产精品69久久久久孕妇欧美| 成人小说视频在线精品欧美| 久久的网站啊啊啊啊啊| 色99999| 99热在线播放| 91观看 国产白丝| 五月丁香六月婷| 加勒比综合a∨| 青草草免费网站av| 97超级欧美| 中文日本免费高清| 夜夜爽爽夜夜精品视频| 国产av强奸美女| 色爱欲亚洲| 婷婷色色五月天福利| 日韩精品.久久精品.AV女优.天美传媒| 成人情色综合网| 囯产乱伦一区二区三女| 夜夜春夜夜操| 一二三区在线| 久久亚洲AV无码白度| 国产精品老熟女一区二区| 青青在线视频日韩欧美| 粉嫩国产精品久久久| 免费视频在线一区二区不卡| 婷婷丁香一区二区三区| 日韩A优精品在线观看| 台湾佬中文娱乐网久久久久久久久久com | 日本天天吊| 91人妻人人澡人人爽人人精品| 嗯啊不要啊啊在线观看视频| 国产久久免费精品视频| 日本超碰97日韩精品人妻| 操逼片中文| 97在线免费公开视频| 久久九九99| 久久大| 婷婷另类小说| 97综合在线| 日夜伊人网| 一区二区三区蜜桃成人撸久久东京热| 97精品熟女少妇一区| 激情文学小说一区二区| 色香色香欲天天天影视综合网| 尤物av网站免费在线播放| 成人热久久精品| 九九性爱网| 亚洲国产精品久久AV| 欧美亚洲厕所精品偷拍91 | 伦在线97| 亚洲天堂男人在线| 逼操网站| 男人天堂网站| 曰本特级特黄特色黄色A级网站高清在线免费看 | 色婷婷五月综合激情中文字幕| 久久久四区| 330dv亚洲成年视频网| 成人黑料社久久| 国产一级内射高清视频| 久久久久久久久国产| 嗯嗯嗯啊啊啊在线免费观看| 免费观看的黄色的网站| 欧美亚洲小说| 久久宗合97| 欧美在线啊啊啊| 成人丁香五月| 93人人操人人| 26UUU欧美日本| julia国产在线 | 少妇内射www在线观看视频| 丁香五月婷婷色| 色色色色日本| 在线免费观看高清无码视频| 色狠狠一区二区三区香蕉| 日本A级视频| 裸体美女免费看网站青草| 乱伦1色页| 日韩国产精品人妻无码久久久| 天天干夜夜| 亚洲精品骚逼| 99国产在线绯色一区| 九九亚洲| 性爱av在线免费观看| 欧美激情性爱视频网站| 日韩av在线精品观看| 美女诱惑久久| 欧美色图校园春色| 亚州,欧美在线| 九九av| 夜夜国产一区| 超碰天天久久79| 真实高潮91| 国产最新AV| 91美女丝袜诱惑视频| 激情五月天视频| 久久‘黄片视频| 综合久久六月久久婷婷| 国产视频一区二区三区在线免费观看 | 九九九九欧美| 狠狠色一区二区中文字幕| 色五月69夫妻| 91久久18禁| 久久爽爽精品| 亚洲鸥美色图| 男人的天堂无码| 九九九九九精品十六| 黑人精品久久97| 97碰碰日本乱偷人妻中文的| 99精品高潮| 十八禁电影伊人网| 丝袜美腿91| 蜜臀99久| 亚洲av性爱电影| 中国操逼无码| 岛国视频一二三区| 夜间福利片1000无码| 嫩草一区二区在线观看| 欧美一区二区亚洲天堂| 久久婷婷五月天| 亚洲欧美九九| av72网| 亚洲综合草草| 欧美亚洲丝袜人妻制服中文99| 天天网综合| 翔田千里爆乳巨臀无码| 三级特黄60分钟播放| a v网站在线播放| 91狠狠综合久久久| 肥臀熟女福利视频一区二区| 欧美伦乱爱| 欧美在线干| 97干色| 成人乱人伦一区二区| 在线无码操| 久久久久久久久久久六六| 日本免费一区二| 国产免费久久精品99re韩国| 国际精品久久久| 亚洲不卡三级手机播放| 无码精品久久久天天影视| 国模精品一区二区三区苹果色戒| 久久久久久久久久久久久久久性生活视频| 日日夜夜国产综合| 色路综合| 日韩乱伦AⅤ| www.婷婷五月天| 婷婷色网| 亚洲毛片基地专区| 日韩性爱电影一区| 夜夜操av亚洲一区二区| 尤物视频新赏网鲜网色诱网| 2024年最新色情网站在线观看| 思思性爱| 综合久欧洲| 麻豆一区二区三区在线看| 国产AAAAAABBBBB| 狼人久草| AV中文字幕剧情1区2区3| 91伊人| 粉嫩绯色AV一区二区在线| 99.色网| 骚货操死你| 26uuu国产日韩综合在线观看| 国产精品老熟女一区二区| AV色五月| 国产精品自拍xxxx| 亚洲不卡av在线| 久久久久久综合久久伊人蜜月| 色五天伊人| 欧美熟妇精品黑人巨大一二三区| 国产97av| 国产小u女在线观看| 欧美国产有色电影| av爱爱爱| 日产国产精品中文久久婷婷| 久久久久久久| 国产伦精品一区二区三区在线观| 蜜桃精品一区二区三区久在线| 不卡中文字幕aⅴ在线| 91麻豆天美国产欧美| 久久成人东京热人妻| 在线观看AV片| 久草精品一区| 国产av波波国产精品| 青草香蕉网| 国产又色又粗又黄又爽| 亚洲综合在线高清| a片偷拍视频| 秋霞男人网| 韩国三级一线观看久| 国产人伦精品一区二区三区 | 久久狠狠色噜噜狠狠狠狠97| 久久国产精品91| 国产色产精品在线观看| 日本天堂网| 人人人摸人人| 日本男人插女人的逼黄色| 久久久久亚洲Aⅴ无码| 岛国片国产成人亚洲播放| 91亚州日韩高清| 一区,二区,三区视频| 日韩亚洲97| 欧美96精品在线| 亚洲欧美日韩综合在线尤物 | 久久草草亚洲蜜桃臀| 亚洲欧美碰碰| 五月婷婷影院| 国产v亚洲v日韩v欧美v片另类| www.97在线| 蜜乳AV免费观看| 欧美色图 人妻| 久久精品国产亚洲AV高级北京| 曰本道人妻久久久在线不卡色视频| 美女黄频a美女大全免费皮| 精品无人区麻豆乱码1区2区图片| www.婷婷| 人人操人人操人人人操| 免费男人的天堂| 欧美性天天影视| 性饥渴少妇av无码毛片| 男人的天堂无码| 人妻AV 中文字幕的| 天天看精品动漫视频一区| 九九热在线精品视频| 强奸a片网| 国产91影院| 亚洲综合射| 东京热亚洲一区二区| 蜜乳AV免费观看| 91在线丝袜| 99久久com免费视频′| 人妻中文字幕精品无码| 亚洲色婷婷综合久久久久中文| 99r九九| 黄片aaaaa一区| 青娱乐91| 超碰碰小说97| 亚洲熟妇无码一区二区三区| 深夜激情无码| 日韩免费高清大片在线| 国产精品对白自产拍| 国产久久日韩网站导航| 另类在线| av日韩国产一区二区| 国内一区二区免费| 女人天堂网| 中文字幕88av在线| 欧美拳交在线播放| 亚洲中文字母在线播放| 影音先锋每日最新资源在线观看| 亚洲第一视频 欧美风情 日韩| 国产美女91视频| 调教熟妇 久久久久久| 久操网线| 在线岛国新天堂8| 999综合网| 伊人网在线点播| 性欧美精| 男人久久精品| 亚洲熟妇乱女区二区三区| 激情综合五月丁香| 无码乱人伦中文视频| 成人性爱免费播放| 超碰成人人人爽人人爽| 另类小说欧美激情校园春色| 五月天欧美色图| 国产一区二区久久| 亚洲视频小说| a人欧美综合天堂麻豆| 在线啊啊啊啊| 天天干一区二区| 夜夜肏2021| 天天摸,夜夜摸| 婷婷丁香久久| 日韩免费性爱视频在线观看| 黄色性爱网网| 日韩乱插| 国产精品无码AV网站| 日本一区二区做爱的视频| 操迟操逼在巾线Fre看| 伊人精品久久网站| 岛国黄| 久久夜黄色无码A级大片| 天天懆天天日| 免费人成在线观看网站品爱网| 国模私拍一区二区三区神乳| 家庭乱伦国产| 404操逼福利视频| 近亲乱伦一区二区| 操婷婷逼| 久久久中文| 夜夜一区二区| 女一区二区| 亚洲区限制级| 天天弄欧美| 东北女人的毛片| 久久久久久久久久久久久久久久9| 白丝少妇一区二区| 久久精品99久久久久久| 青青草国产一区二区三区| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 蜜臀99久| 精品视频一区二区| 中文字幕日韩电影人妻| 亚洲 日韩 丝袜 熟女 变态| 偷窥自拍A片| 免费视频无码| 亚洲五区熟女| 中文字幕精品亚洲熟女| 97超碰9| 日本αv| 久久激情亚洲精品无码?V| 成人综合久久精品色婷婷| 综合网欧美在线| 亚洲自拍一区夜夜操 | 欧美国产日韩高清在线| 精品视频日日夜夜| 97久久精品不卡| 欧美亚洲91| 精品亚洲国产成人精品| 色五月婷婷麻豆在| 蜜桃久久精品一区二区三区| 久久久久久久久9| www.色吧5.com| 久久鲁干| 久久伊人网视频一区二区三区| 亚洲涩图欧美| 亚洲精品久久久久毛片A片拉屎| 手机在线中文字幕国产 | 另类欧美色| 国产成年精品高清在线观看91| 综合色99| 传媒免费一区二区三区| 综合久久2017| 一区三区啪啪| 夜夜久久| 97国产人人| 亚洲色诱惑| 曰本91情色| 免费人成毛片乱码| 色婷婷电影网| 亚洲欧美在线综合| 国产狂喷潮在线精品| 色婷婷小说| 2017天天透天天通天天擦| 日韩综合无码一区久久92| 婷婷在线精品| 精吧天堂| 久久久久免费看少妇A片特黄| 91视频国品一二三区| 国产91丝袜在线播放蜜月| 久热在线精品免费观看| 久久久久久久久久久久久久久性生活视频| 亚洲精品久久久久久| 特级特黄一级毛片免费| 99r九九| 日韩激情毛片一级久久久| 偷窥自拍亚洲天堂网爆| 加勒比av官网在线| 亚洲图片激情综合另类| 欧美亚综合色图| 久久精品店| 自偷自拍的亚洲视频| 国产精品3| 十八禁的黄污污免费网站| 美女高潮视频91| a'v在线资源| 亚洲情色婷婷五月天| 久久97视频| 午夜丁香| 欧美性夜| 国产在线76页| 久久精品店| 美中韩AV综合网| 婷婷激情四射| 亚洲少妇色| 天天综合-91入口| 水野优香在线观看| 91天堂网| 九九热免费国产视频婷婷伊人五月| 蜜臀99久| 又黄又爽在线观看视频 | 92人人操人人| 午夜九九| 婷婷丁香六月天| 国产一区二区在线播放| 91neishe| 中文字幕丰满人妻日本| 欧美九九99久久精品| 欧美爱三级日韩久久| 久久熟妇五十路一区| 中文人妻av高清一区| 97精品国产手机| 久久精品国产亚洲AV无码电影| 人乳av| 丁香六月天| 精品视频在线观看精品| 欧美色天堂网在线视频| www国产天美久久久| 秘书高跟黑色丝袜国产91在线| 97人人射| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 综合色啪| 亚洲图片欧美| 日韩啪啪啪视频| 日本欧美亚洲高清在线看| 亚洲欧美综合图片| JULIA人妻风俗店中出电影| 一区不卡在线观看av| 97久久国产亚洲精品超碰热| 激情五月婷| 日本成熟少妇A∨网站| 中文字幕第23区| 色情综合网| 国产成人拍国产亚洲精品| 人妻熟女一区二区| 99性爱视频| 370p日韩欧美亚洲精品| 蜜桃网熟妇| 韩国轻伦国内自拍一区| 无码高清专| 天天综合网网欲色| 色老牛| 天天影视色香色欲| 久操网视频| 2020中文字幕在线观看| 蜜桃色院一区久久| 人夜夜精品网站香蕉嫩草| 欧美日日操| 女色综合| 大香蕉日亚洲日本亚大| 欧美内射少妇| 伊人五月天| 日韩av不卡在线看| 亚洲在线欧美| 抽插一区二区视频| 熟女欧美日韩综合婷婷| 黄污污污污| 风流老熟女一区二区三区l| 97aiaiai| 亚州欧美在线| 人妻熟女一区二区| av大香蕉网站| 九九综合| 日韩一区二区三区四区五区| 日韩强奸av| 久久久久久久97| 天天干夜夜操一区二区| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 亚洲精品成人动漫在线| 9Ⅰ超碰| 中出20p| 亚洲熟女一区| 欧美se亚洲| 人人妻人人操人人乐| 日本综合色图| 三级片网站在线播放| 一类av片在线看| 操B视频日韩无码| 天天草天天日| 亚洲高清综合网| 亚洲欧美综合网 | 亚洲精品一区二区精品| 久久久九九九| 亚洲毛片基地专区| 嗯嗯不要视频| 9久久精品| 久久久日本电影| 啊啊啊啊好疼| 91高清欧美| 综合亚州欧美| 欧美97网| 日韩BBN| 午夜美女诱惑电源网| 日韩欧美~中文字| 少妇蹲下买菜露大唇0| 欧美日韩另类字幕中文| 日韩少妇在线视频| 亚洲日韩欧美一区二区| 无码男人天堂| 蜜桃臀一区二区aV| 中日992视频| 少妇贴图| 欧美性色网| 极品销魂美女一区二区| 日韩性爱小视频| 日韩三级在线观看网站| 成人av福利在线观看| 51久久夜色精品国产麻豆| 天天看综合网| 婷婷色导航| 嗯嗯啊操我| 亚洲国产一区二区三区在线| 久久久久久性爱视频| 青青草日本中文字幕| 91 丝袜在线观看| 97超碰中文字幕| 欧美色干| 国产偷拍网站| 在线a v| 香蕉婷婷| 色综合中文字幕不卡| 九九九久久久久| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 欧美日韩国产一区二区小黄片大全| 91精品国产91久久福利| 八戒午夜福利理论片| 黄片com.| 韩日精品四区| 97精品97| 亚洲欧美国产精品久久久久久久| 欧美资源| 鸡巴插逼视频| 无码免费一区二区三区啪啪| 天美一二三在线观看Av| 97欧美色| 亚洲巨爆乳一区二区三区四季网| 综合五月婷婷亚洲一区| 五月丁香婷婷综合| 999综合色| 久久精品超碰| 无码人妻精品一区二区中文| 欧美十八禁在线看| 婷婷色香| 青青草在线视频播放器| 成人性爱免费播放| 久久9视频| 99色婷婷中文字幕乱色| 色色九区| 国产99精品一区二区三区免费| 五月天激情小说| 人妻在线大香蕉| 精品人妻一区二区三区在线视频不卡| 国产成人精品必看| 亚洲色五月| 91国精产品| 尤物av网站免费在线播放| 秋霞曰韩R级| 精品97久久综合| 97Ai亚洲| 思思热免费视频观看| 日韩伦理视频| 久久精品28| 色成人Www精品永久观看| 免費人妻夜夜爽天天爽爽一区| 97在线日韩中文字幕| 黄色人人| 亚洲中文人妻色| 欧美一区二区| www欧美性爱| 老鸭窝黄色视频网站| 日本在线观看网址| 丁香婷婷久久| 婷婷五月天色网| 99re公开精品免费视频| 色综合潮| 蜜臀久久99精品久久久电影| av一区二区三区 中文| AV色图| 探花一区二区三| 亚射在线| 中文字幕av亚洲精品| 欧美色图天堂在线| 亚洲丝袜少妇在线| 久久露脸国产老熟女| 国产外初女出血视频| 欧美日韩操逼动图| 美女黑人91神马| 大香蕉一区二区在线观看.| 欧美AB在线观看| 亚洲精品97| 伊人综合色网| 欧美成人性活片| 夂久色| 一区二区不卡视| 婷婷色一区| 天天躁日日躁狠狠躁| 欧日韩不卡视.频| 日本久久超碰| 97视频网站在线观看| 亚洲男人天堂网| 99re6久热只有精品6在线直播| 久久久久少妇| 欧美三级一级| 亚洲āv网址在线观看| 高清不卡视频| 久久午夜鲁丝片| 超碰综合色| 自拍偷拍 高清无码| 激情小说亚洲视频| 国产91久久九九免费精品无码| 91精品操美女| 国产超碰在线| 超碰97丝袜| 免费看污网站| 免费观看国产不卡av| 大屁股国产在线视频| 高清国产av无码| 大香蕉淫人| 第二页中文字幕| 国产传媒操逼视频| 中日韩久久久免费看| 久久乐| 久久性爱视频免费看| 国产小炒后入式| 激情专区综合| 极品色| 精品美女少妇一区二区三区| 国模无码一区二区三区在线| 深夜视频| 亚州色站 日韩电影| 伦伦成年午夜免费视频| 人妻另类| 爱欲AV| 国产成人bd在线观看| 精品国产乱码久久久久久蜜臀| AND人妻系列| 中国探花熟女| 呦呦一区| 色偷综合| 亚洲午夜免费狠狠干| 亚洲国产av中文字幕久久| 国产精品午夜福利| 亚洲综合在线高清| 国产一区二区啪啪视频| 天天综合网91| 白丝在线一区| av优播| 久久九九国产精品| 操东北女人| 天天天操天天天爱| sss视频华人在线| 手机看av网站在线看| 一级性爱视频免费观看 | 欧美色999| 亚洲青青草| 亚洲情色五月天 | 国内毛片欧美香蕉精品| 91网站18+| 日少妇亚洲版| 天天爽天天爽| 99热99在线播放激情| 九九热AV| 中文字幕欧洲有码| 亚洲Av噜噜一区二区三区妖精| 亚洲中文字幕97久久精品少妇| 性爱免费视频成人| 色99999| 男人的天堂com| 国产精品国产| 97色97好| 婷婷四五区| 柠檬AV导航| 亚洲国产麻豆一区二区三区| 伊人一级免费黄片| 亚洲日韩美女丝袜美腿人妻视频| 中亚黄色三级大片| 美欧老女人97| 人妻在线中出视频| 婷婷久草一区二区三区| 日本精品成人无码| 青青操综合网| 高清国产精品无码| 国产无马在线| a级免费在线观看| 舔足天天操天天射| 淫纸中9区| 97欧美色| 成人夜夜| 亚洲。天堂。日本在线观看| 欧美夜夜骑视频| 天天夜夜久久| 97干天天| 99re69| 330Dv国产女人终合视频极品人与兽 | 日本精品国产视频| 麻豆 欧美 日韩| 久操综合在线| 天天色综合图片| 欧美亚性天堂| 久久五月份| 麻豆天美国美国产| 9/A片 | 9丨久久九九九| 国产精品乱码久久久久| 男人的天堂va在线| 春色91| 97精品免费视频网站| 色五月AV| 69视频入口| 欧美大波激情xxxx| AV和黑人在线播放| 性爱Av免费| 久久国内| 六月丁香婷| 天美麻豆精品视频99| 亚洲情色一区三区| 啊啊啊啊二区好大|