欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

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

ZYNQ PL與PS通信:從AXI寄存器設(shè)計(jì)到LwIP TCP數(shù)據(jù)上傳 簡介面向需要實(shí)現(xiàn)PL與PS協(xié)同工作的FPGA開發(fā)者、嵌入式工程師和高校學(xué)生這份資源圍繞Xilinx ZYNQ平臺(tái)以網(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ù)通路搭建、實(shí)時(shí)性與帶寬優(yōu)化以及調(diào)試測試方法可幫助讀者建立起清晰的設(shè)計(jì)與排錯(cuò)思路。壓縮包整體約56.6MB文件清單與類型明細(xì)暫未提供但方案說明與關(guān)鍵步驟的銜接仍可作為完整項(xiàng)目參考。該資源已有10883人學(xué)習(xí)適合需要從整體理解PL/PS通信鏈路并通過TCP完成網(wǎng)絡(luò)數(shù)據(jù)傳輸實(shí)踐的工程師也可為ZYNQ網(wǎng)口通信類設(shè)計(jì)提供直接借鑒。1. 把 ZYNQ PL 與 PS 通信講透TCP 上行數(shù)據(jù)的關(guān)鍵在于寄存器接口設(shè)計(jì)用 ZYNQ 做數(shù)據(jù)采集然后通過網(wǎng)口把數(shù)據(jù)送到上位機(jī)這個(gè)需求在項(xiàng)目里出現(xiàn)的頻率比想象中高得多。很多開發(fā)者第一次接觸 ZYNQ 時(shí)都有同樣的困惑PL 和 PS 到底怎么交換數(shù)據(jù)TCP 協(xié)議棧跑在哪一端實(shí)際做下來你會(huì)發(fā)現(xiàn)TCP 協(xié)議本身是現(xiàn)成的LwIP 協(xié)議棧一掛就能跑真正的難點(diǎn)在于 PL 端的寄存器讀寫接口設(shè)計(jì)以及數(shù)據(jù)從 PL 到 PS 再到網(wǎng)口的這條鏈路怎么打通。這份資源的價(jià)值就在于此它不只是一個(gè) TCP 例程而是把 PL 與 PS 通信的完整鏈路拆開從 AXI 接口設(shè)計(jì)到 LwIP 網(wǎng)絡(luò)發(fā)送每一步都有可落地的代碼和驗(yàn)證方法。2. AXI 接口選型與寄存器映射PL 與 PS 通信的第一步是定數(shù)據(jù)通道2.1 四種 AXI 接口模式的適用邊界ZYNQ 的 PS 端通過 AXI 總線訪問 PL 端的邏輯資源常見的有 AXI4、AXI4-Lite、AXI4-Stream 和 AXI-Full 四種接口類型。初學(xué)者最容易犯的錯(cuò)誤是一上來就選 AXI4-Stream 做寄存器讀寫結(jié)果數(shù)據(jù)通路建立不起來卡在握手信號(hào)上。選型之前先明確一個(gè)原則控制面用 AXI4-Lite數(shù)據(jù)面用 AXI4-Stream兩頭都要走就用 AXI-Full。AXI4-Lite 的特點(diǎn)是一次只傳一筆數(shù)據(jù)地址和數(shù)據(jù)通道獨(dú)立時(shí)序簡單非常適合讀寫 PL 端的寄存器。比如你要配置采集模塊的采樣率、啟動(dòng)停止標(biāo)志位、查詢狀態(tài)寄存器這些都屬于低頻控制操作用 AXI4-Lite 就夠了。AXI4-Stream 走的是流式數(shù)據(jù)傳輸沒有地址階段數(shù)據(jù)像流水線一樣連續(xù)往外送適用于 ADC 采集數(shù)據(jù)、DMA 搬運(yùn)這種高吞吐場景。AXI-Full 則同時(shí)支持突發(fā)傳輸和地址映射適合需要 PS 端頻繁讀寫 PL 端大塊存儲(chǔ)空間的場景但是在 ZYNQ 上實(shí)現(xiàn)起來復(fù)雜度明顯更高。加上中斷機(jī)制后AXI4-Lite 加 AXI4-Stream 的組合在絕大多數(shù)數(shù)據(jù)采集上傳項(xiàng)目中夠用了。中斷在 ZYNQ 里的實(shí)現(xiàn)不復(fù)雜PL 端拉高一個(gè)中斷信號(hào)PS 端注冊中斷處理函數(shù)就能做到數(shù)據(jù)到達(dá)即通知 CPU。很多人在這里有個(gè)誤區(qū)以為 PS 輪詢 PL 寄存器更簡單實(shí)際項(xiàng)目里數(shù)據(jù)量一大輪詢會(huì)拖垮 CPU 占用率。2.2 寄存器映射的地址分配策略用 AXI4-Lite 實(shí)現(xiàn)寄存器讀寫時(shí)地址分配要做長遠(yuǎn)規(guī)劃。通常的做法是把一個(gè)自定義 IP 核的寄存器空間劃分為四個(gè)段控制寄存器區(qū)偏移 0x00 - 0x0F、狀態(tài)寄存器區(qū)偏移 0x10 - 0x1F、數(shù)據(jù)緩沖描述區(qū)偏移 0x20 - 0x2F、擴(kuò)展保留區(qū)偏移 0x30 以上。拿一個(gè)典型的 ADC 采集上傳項(xiàng)目舉例寄存器映射可以做這樣的分配偏移地址讀/寫功能說明0x00寫控制寄存器bit0 啟動(dòng)采集bit1 復(fù)位bit2 開啟 FIFO 寫使能0x04寫采樣率配置寫入分頻系數(shù)實(shí)際采樣率 時(shí)鐘頻率 / (分頻系數(shù) 1)0x10讀狀態(tài)寄存器bit0 FIFO 空標(biāo)志bit1 FIFO 滿標(biāo)志bit2 采集忙標(biāo)志0x14讀數(shù)據(jù)計(jì)數(shù)寄存器當(dāng)前 FIFO 中積累的數(shù)據(jù)字節(jié)數(shù)0x20讀數(shù)據(jù)讀取寄存器每讀一次FIFO 出一個(gè)數(shù)據(jù)Vivado 中自定義 IP 核時(shí)會(huì)默認(rèn)生成頂層模塊和 AXI 接口的示例代碼。建議在自動(dòng)生成的模板基礎(chǔ)上修改保留 AXI 接口部分把用戶邏輯區(qū)域換成自己的設(shè)計(jì)。我一般會(huì)把地址解碼邏輯全部放在top_module中用一個(gè)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 接口端口自動(dòng)生成部分略 ... ); // 寄存器文件定義 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ù)計(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這里有幾個(gè)參數(shù)需要重點(diǎn)理解C_S_AXI_ADDR_WIDTH 8表示地址寬度 8 位尋址空間 256 字節(jié)按 32 位寄存器對齊后最多支持 64 個(gè)寄存器一般項(xiàng)目夠用了。adc_data_valid是外部 ADC 模塊送來的數(shù)據(jù)有效標(biāo)志這個(gè)信號(hào)被拉高時(shí)FIFO 的寫使能才有效。注意代碼中把reg_ctrl[0]作為采集總開關(guān)這是典型的設(shè)計(jì)模式——所有模塊的啟動(dòng)、停止都由統(tǒng)一的控制寄存器管理后續(xù)上位機(jī)命令分發(fā)時(shí)只需往一個(gè)地址寫數(shù)據(jù)避免多個(gè)寄存器協(xié)同操作帶來的時(shí)序問題。2.3 FIFO 深度的工程權(quán)衡PL 端 FIFO 深度的選擇直接決定數(shù)據(jù)傳輸鏈路會(huì)不會(huì)因?yàn)樗查g阻塞而丟數(shù)據(jù)。FIFO 深度太小PS 來不及讀數(shù)據(jù)時(shí)就會(huì)溢出FIFO 深度太大占用 BRAM 資源影響其他邏輯的綜合布局。從工程經(jīng)驗(yàn)上看FIFO 深度至少為 PS 端 DMA 突發(fā)長度的兩倍。如果 PS 端 DMA 配置的突發(fā)長度是 64 個(gè) 32 位字那么 FIFO 深度建議 128 以上。這個(gè)參數(shù)怎么推導(dǎo)的DMA 讀數(shù)據(jù)時(shí)總線協(xié)議要求一次突發(fā)傳輸中間不能被中斷如果 FIFO 中的數(shù)據(jù)少于突發(fā)長度DMA 就要等待 FIFO 攢夠數(shù)據(jù)等待期間總線處于閑置狀態(tài)。FIFO 深度大于兩倍突發(fā)長度就能保證 DMA 連續(xù)讀取時(shí)幾乎不需要等待。另外還要考慮 FIFO 數(shù)據(jù)寬度與 DMA 數(shù)據(jù)寬度的匹配問題。如果 PL 端每拍產(chǎn)生 16 位數(shù)據(jù)而 PS 端 DMA 的讀寫位寬是 32 位中間需要做位寬轉(zhuǎn)換。一種方式是直接用 Xilinx FIFO IP 核的位寬轉(zhuǎn)換功能輸入 16 位、輸出 32 位另一種方式是用兩個(gè) 16 位 FIFO 交替存儲(chǔ)讀出時(shí)拼接。前者簡單后者可以節(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 后工程模板會(huì)自動(dòng)生成 BSP 包但是 LwIP 協(xié)議棧默認(rèn)不是開啟的。在 SDK 環(huán)境下進(jìn)入 BSP 設(shè)置窗口找到lwip141庫選項(xiàng)把lwip勾上。這里有個(gè)版本兼容的坑Vivado 2018.3 之前的版本對應(yīng)的 LwIP 版本是 141Vivado 2020.1 之后的版本 LwIP 升級(jí)到 211兩者的 API 接口有細(xì)微差異后續(xù)代碼編譯報(bào)錯(cuò)時(shí)優(yōu)先檢查這里。GIC 中斷控制器初始化是另一個(gè)核心點(diǎn)。PS 端要接收 PL 發(fā)來的中斷信號(hào)就必須在 GIC 里注冊中斷服務(wù)函數(shù)。GIC 有 SPID 和 PPID 兩個(gè)中斷源組PL 端的中斷一般連接到 GIC 的 SPI 中斷號(hào)上。在 ZYNQ-7000 系列中PL 到 PS 的中斷線有 16 條對應(yīng) GIC 的中斷號(hào)從 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)啟動(dòng)階段最先處理但在 ZYNQ 上正確的順序是先初始化 GIC 控制器再把 CPU 的異常處理函數(shù)指向 GIC 的中斷分發(fā)入口。如果順序搞反了中斷信號(hào)到了 CPU 側(cè)沒有一個(gè)統(tǒng)一的入口去查找中斷號(hào)程序就會(huì)跑飛。3.2 LwIP 協(xié)議棧的移植與網(wǎng)絡(luò)接口配置LwIP 在 ZYNQ PS 端的移植已經(jīng)比較成熟BSP 包里包含了 AXI Ethernet 驅(qū)動(dòng)但我們這里用的是 PS 自帶的千兆以太網(wǎng)控制器BSP 生成時(shí)會(huì)自動(dòng)加入相應(yīng)驅(qū)動(dòng)。需要手動(dòng)調(diào)整的是lwipopts.h文件中幾個(gè)全局配置宏#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 報(bào)文段緩沖區(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決定整個(gè) LwIP 協(xié)議棧運(yùn)行時(shí)能夠使用的內(nèi)存總量如果這個(gè)值太小TCP 連接建立時(shí)可能出現(xiàn)內(nèi)存分配失敗表現(xiàn)為上位機(jī)連接后立即斷開。TCP_SND_BUF_DEFAULT 直接影響單次發(fā)送的數(shù)據(jù)包大小這個(gè)值可以按 MTU 的整數(shù)倍來配置常見取 16KB 是因?yàn)?TCP 窗口和 MTU 協(xié)商后16KB 的緩沖空間可以容納約 10 個(gè) MSS最大分段大小的數(shù)據(jù)量。網(wǎng)絡(luò)接口初始化的代碼固定框架其中關(guān)鍵在網(wǎng)絡(luò)參數(shù)的結(jié)構(gòu)體填充。我們是設(shè)備端服務(wù)器上位機(jī)是客戶端主動(dòng)連過來所以本地 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); }這里有一個(gè)關(guān)鍵的設(shè)計(jì)選擇netif_add的最后一個(gè)參數(shù)ethernet_input是 LwIP 的網(wǎng)卡數(shù)據(jù)輸入函數(shù)這個(gè)函數(shù)在 ZYNQ 的裸機(jī) BSP 環(huán)境中對應(yīng)的是emacps_rx_thread之類的回調(diào)。務(wù)必確認(rèn) BSP 中以太網(wǎng)驅(qū)動(dòng)的接收中斷已經(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會(huì)返回ERR_MEM。很多初學(xué)者的程序在這里出現(xiàn)偶發(fā)丟包。正確做法是利用 LwIP 的發(fā)送完成回調(diào)機(jī)制。給 TCP 控制塊注冊一個(gè)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)會(huì)清除標(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; }這段代碼的邏輯亮點(diǎn)在TCP_WRITE_FLAG_COPY標(biāo)志。不使用這個(gè)標(biāo)志時(shí)tcp_write只是把指針存到待發(fā)送隊(duì)列如果上層緩沖在 TCP 報(bào)文段真正發(fā)出前被修改會(huì)產(chǎn)生錯(cuò)誤數(shù)據(jù)。使用 COPY 標(biāo)志后LwIP 會(huì)先將數(shù)據(jù)拷貝到內(nèi)部 PBUF函數(shù)返回后就可以安全地重用本地緩沖區(qū)。代價(jià)是多了一次內(nèi)存拷貝但在千兆網(wǎng)口下這個(gè)開銷可以接受。需要注意tx_busy_flag的等待循環(huán)不是嚴(yán)格意義上的阻塞因?yàn)?LwIP 協(xié)議棧需要持續(xù)調(diào)用tcp_tmr來處理定時(shí)器事件。在裸機(jī)環(huán)境下通常的做法是在主循環(huán)中刷新 LwIP 的定時(shí)器否則 TCP 的 ACK 超時(shí)重傳機(jī)制無法工作while (1) { tcp_tmr(); // 刷新 LwIP 定時(shí)器處理重傳、超時(shí)邏輯 // 檢查 FIFO 數(shù)據(jù)計(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 接收實(shí)現(xiàn)要點(diǎn)上位機(jī)端推薦直接使用 Python 的 socket 模塊快速驗(yàn)證先確認(rèn)鏈路通不通再去做復(fù)雜的界面封裝。很多開發(fā)者在這個(gè)項(xiàng)目上的做法是邊寫 Qt 界面邊調(diào)試網(wǎng)絡(luò)問題排查起來非常痛苦——網(wǎng)絡(luò)不同時(shí)你很難判斷是 PL 端邏輯壞了還是界面線程阻塞了。先用一個(gè)純命令行腳本驗(yàn)證收發(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 零散切割造成解析錯(cuò)誤 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:] # 丟一個(gè)字節(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)這個(gè)腳本同時(shí)演示了 TCP 流式協(xié)議的拆包處理。TCP 是字節(jié)流協(xié)議兩次send的數(shù)據(jù)可能在一次recv中混在一起也可能一次send被拆成多次recv。如果沒有幀結(jié)構(gòu)設(shè)計(jì)上位機(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 出來時(shí)開發(fā)者習(xí)慣整理成大端格式。一個(gè) 32 位的數(shù)據(jù)在 PL 端被拆成 4 個(gè)字節(jié)發(fā)送如果上位機(jī)按小端序解析數(shù)字就完全對不上。import struct # PL 端以特定字節(jié)序發(fā)送 4 字節(jié)數(shù)據(jù) # 場景1PL 端按小端發(fā)送上位機(jī)用 符號(hào)解析 raw_small b\x01\x00\x00\x00 value struct.unpack(I, raw_small)[0] print(f小端解析結(jié)果: {value}) # 輸出 1 # 場景2PL 端按大端發(fā)送上位機(jī)必須用 符號(hào)解析否則出錯(cuò) 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錯(cuò)誤解析: {value_wrong}) # 輸出 16777216 print(f正確解析: {value_right}) # 輸出 1處理字節(jié)序最穩(wěn)妥的做法是 PL 端發(fā)送時(shí)遵循固定的網(wǎng)絡(luò)字節(jié)序大端上位機(jī)統(tǒng)一用!或符號(hào)解析。網(wǎng)絡(luò)協(xié)議棧內(nèi)部的 IP 頭、TCP 頭都是網(wǎng)絡(luò)字節(jié)序如果應(yīng)用層數(shù)據(jù)也統(tǒng)一用大端整個(gè)鏈路的數(shù)據(jù)格式就一致了。另外一種做法是 PL 端發(fā)送數(shù)據(jù)前把各字節(jié)按照上位機(jī)的預(yù)期存儲(chǔ)順序排列好上位機(jī)不做任何轉(zhuǎn)換直接解析。這種方式效率最高但沒有通用性一旦上位機(jī)換了平臺(tái)所有解析邏輯都要改。我建議應(yīng)用層還是定義大端格式協(xié)議頭統(tǒng)一用struct.pack(!I, value)打包雖然多花幾行代碼但未來換上位機(jī)平臺(tái)時(shí)不會(huì)翻車。5. 避坑與排查從連接失敗到數(shù)據(jù)錯(cuò)亂的五個(gè)典型問題5.1 TCP 連接建立不了網(wǎng)絡(luò)一直 ping 不通抓包軟件看不到設(shè)備發(fā)出的 ARP 請求。排查發(fā)現(xiàn) BSP 配置時(shí)沒有正確生成xemacps_g.c驅(qū)動(dòng)文件導(dǎo)致 PS 端以太網(wǎng)控制器根本沒有初始化。原因是 SDK 中 BSP 包生成時(shí)沒有勾選 Standalone 的emacps驅(qū)動(dòng)或者勾選了但 BSP 沒有重新生成。解決方法是右鍵點(diǎn)擊 BSP 工程選擇BSP Settings查找drivers分支下的ps7_ethernet_0是否為emacps不是則改為emacps然后重新生成 BSP。5.2 數(shù)據(jù)突發(fā)丟包TCP 連接正常但數(shù)據(jù)不完整現(xiàn)象是上位機(jī)連接正常但是數(shù)據(jù)每隔幾秒會(huì)有一批缺失丟包數(shù)量沒有規(guī)律。用 Wireshark 抓包發(fā)現(xiàn) TCP 報(bào)文段重復(fù) ACK 頻繁出現(xiàn)。原因大概率在 PS 到 PL 的數(shù)據(jù)讀取路徑上。PS 讀取 FIFO 數(shù)據(jù)時(shí)如果采用輪詢方式但輪詢間隔太長FIFO 溢出就會(huì)丟數(shù)據(jù)。此外LwIP 的tcp_write緩沖區(qū)設(shè)置太小發(fā)送緩沖滿后新數(shù)據(jù)被丟棄。解決辦法是把 FIFO 讀取從輪詢模式改成中斷模式讓 PL 端在 FIFO 半滿時(shí)觸發(fā)中斷PS 立即響應(yīng)讀取。LwIP 參數(shù)調(diào)整同時(shí)把TCP_SND_BUF_DEFAULT從 4KB 提到 16KB給發(fā)送鏈路更多緩沖余量。5.3 AXI 讀寫寄存器一直返回錯(cuò)誤值在 Vivado 的 Hardware Manager 里通過 JTAG 讀 IP 核的寄存器狀態(tài)寄存器一直顯示 0xFFFFFFFF。檢查 AXI 地址映射發(fā)現(xiàn)IP 核的基地址配置成了 0x40000000但 vivado 中地址編輯器的段分配把寄存器起始地址設(shè)在了 0x40001000兩者錯(cuò)位導(dǎo)致訪問落到了未實(shí)現(xiàn)的空間上。解決方法是打開 Address Editor確認(rèn)adc_ctrl_ip的偏移地址是否從 0x0 開始建議把 Base Address 固定為 0x40000000Range 設(shè)為 64KB這樣簡單干凈。類似問題在多個(gè) IP 掛在同一個(gè) AXI 總線上時(shí)更容易出現(xiàn)排查時(shí)要逐個(gè)確認(rèn)地址段沒有重疊。5.4 上位機(jī)收到的數(shù)據(jù)是反的幀頭識(shí)別成功數(shù)據(jù)長度也對但是數(shù)值完全不對。比如理論上應(yīng)該收到 10000實(shí)際收到 2055208960十六進(jìn)制 0x7A690000??酥谱∪ゼm結(jié) LwIP 代碼的沖動(dòng)先檢查字節(jié)序。這是最典型的字節(jié)序問題。PL 端 Verilog 代碼里把 32 位數(shù)據(jù){data[31:16], data[15:0]}做了拼接發(fā)送相當(dāng)于整體交換了兩個(gè) 16 位半字實(shí)際就是大小端處理混亂。統(tǒng)一按大端處理后問題不再出現(xiàn)。5.5 開發(fā)板偶爾死機(jī)復(fù)位后恢復(fù)設(shè)備運(yùn)行一段時(shí)間后網(wǎng)口 ping 不通串口也輸出不了任何信息。檢查時(shí)鐘配置和復(fù)位序列發(fā)現(xiàn) PL 端使用了獨(dú)立的 MMCM 時(shí)鐘域但 FIFO IP 核的復(fù)位引腳連接的是 AXI 接口的 rst 信號(hào)兩個(gè)時(shí)鐘域的復(fù)位時(shí)序不一致。解決方法是把 PL 端所有模塊的復(fù)位信號(hào)統(tǒng)一使用proc_sys_resetIP 生成的interconnect_aresetn并檢查 FIFO IP 的reset_pol設(shè)置是否與復(fù)位模塊輸出極性一致。在開發(fā)板上加一個(gè)看門狗復(fù)位超時(shí)自動(dòng)重啟整個(gè)系統(tǒng)也能規(guī)避偶發(fā)的死機(jī)問題。6. 進(jìn)階從千兆帶寬利用到雙通道設(shè)計(jì)實(shí)戰(zhàn)性能再翻倍TCP 上傳數(shù)據(jù)鏈路打通之后可以往下做兩件縮小系統(tǒng)瓶頸的事一是吞吐量調(diào)優(yōu)二是多路復(fù)用擴(kuò)展。吞吐量調(diào)優(yōu)的核心指標(biāo)是計(jì)算實(shí)際有效帶寬。ZYNQ PS 網(wǎng)口硬件理論帶寬是 1000Mbps但是應(yīng)用層實(shí)測通常只有 300 到 500Mbps原因在于 LwIP 裸機(jī)協(xié)議棧的運(yùn)行機(jī)制限制以及 TCP ACK 往返時(shí)延帶來的窗口占用。網(wǎng)絡(luò)帶寬利用率的計(jì)算公式為有效帶寬 發(fā)送數(shù)據(jù)量 / 總耗時(shí)。在嵌入式設(shè)備上還會(huì)有一個(gè)額外限制LwIP 的tcp_write每調(diào)一次都要經(jīng)歷和本地內(nèi)存系統(tǒng)打交道大量交互會(huì)消耗 CPU 時(shí)間。有一個(gè)簡單有效的優(yōu)化是加大單次發(fā)送包長。把TCP_SND_BUF_DEFAULT提升到 64KB同時(shí)在應(yīng)用層使用tcp_write連續(xù)發(fā)送多個(gè)待發(fā)塊配合tcp_output做一次集中刷出。這種策略下即使單塊數(shù)據(jù)包較小協(xié)議棧也會(huì)積攢到足夠數(shù)據(jù)后一次性發(fā)出有效降低網(wǎng)口 TX 中斷觸發(fā)頻率。雙通道設(shè)計(jì)適合需要同時(shí)上傳兩路數(shù)據(jù)的場景。做一個(gè) AXI-Stream 到 AXI4-Lite 的橋接模塊將兩路 ADC 數(shù)據(jù)交替寫入同一個(gè) DMA 描述符環(huán)。上位機(jī)按幀號(hào)區(qū)分兩路數(shù)據(jù)幀格式中前三字節(jié)固定為數(shù)據(jù)通道標(biāo)識(shí)。這種設(shè)計(jì)比雙 TCP 連接簡潔PS 端只需維護(hù)一個(gè)tcp_pcb數(shù)據(jù)到達(dá)后按照既定的幀號(hào)交錯(cuò)發(fā)送即可。實(shí)踐中的驗(yàn)證方法也很直接先用開發(fā)板配置一個(gè)固定數(shù)據(jù)源比如計(jì)數(shù)器計(jì)數(shù)值替代真實(shí)采集數(shù)據(jù)上位機(jī)統(tǒng)計(jì)接收總數(shù)和發(fā)送端計(jì)數(shù)對比。兩端計(jì)數(shù)值一致說明鏈路無損不一致就對中間過程進(jìn)行逐段 debug先看 PL FIFO 讀寫指針差值再看 PS 讀出的數(shù)據(jù)累計(jì)值最后看 LwIP 發(fā)送字節(jié)統(tǒng)計(jì)量哪個(gè)環(huán)節(jié)對不上就重點(diǎn)檢查哪個(gè)環(huán)節(jié)。那次調(diào)通雙通道方案后我給自己立了一條規(guī)矩每次把代碼從仿真環(huán)境挪到裸機(jī)網(wǎng)絡(luò)環(huán)境先花 5 分鐘核對三個(gè)關(guān)鍵參數(shù)——FIFO 寫使能極性、TCP 發(fā)送緩沖大小、字節(jié)序解析格式。這三樣沒有問題的情況下網(wǎng)絡(luò)異常往往不出在通信本身而是出在系統(tǒng)初始化的細(xì)節(jié)順序。ZYNQ 的中斷初始化順序、LwIP 的內(nèi)存堆大小、PHY 芯片的復(fù)位時(shí)序這三個(gè)位置是翻車高發(fā)區(qū)每次排查都從它們開始驗(yàn)證。希望這次拆解能幫你少走一段彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
美女伊人久久| 天天爽天天| 啪啪激情综合| 成人无码髙潮喷水A片| 色五月aV| 九九九九成人| 五月婷婷五月| 天天舔天天摸视频| 色情丁香五月婷婷精品| 亚洲经典三级| 激情图片久久| 99这里只有免费的小视频在线观看| 少妇水多A片太爽了| 激情综合网激情五月丁香| 久草婷妨| 日本色色色| 五月天婷婷一起草| 99ri视频在线观看| 激情五月天电影| 人人射av| 黄色精品五月婷婷| 亚洲V国产V欧美V久久久久久| 婷婷五月丁综合| 欧美亚洲成人在线| 亚洲操操操| 日韩操| 色99婷婷五月天| 六月激情婷婷| 日本操B视频| 激情黄色小说色五月| 日本久久网| 五月婷婷丁香在线视频| 中文字幕成人| 色色色五月| 亚州操人在线视频| 丁香五月综合AV在线| 99精品久久久久| 丁香六月啪啪| 综合久久高清| 91人妻视频| 久久激情五月网| 国产激情视频在线观看| 天天操天天操天天操天天操天天操| 五月丁香婷婷基地| 亚洲AV日韩AV永久无码网站| 丁香五月欧美| 婷婷五月影院| 五月天狠狠干| 无码地址| www.97碰碰com| 五月丁香激情综合| 色综合色五月| 丁香六月成人| 狠狠狠激情网| 99热自拍| 第四色五月婷婷| 丰满老熟妇BBBBB搡BBB| 操碰99| 婷婷综合五月色播| 色色婷婷五月天| 桃色成人网| 开心五月婷| 激情啪啪五月天| 超碰人妻在线| 欧美日韩AAAA| 狠狠色官网| 日韩伊人大香蕉| 天天爽天天干| 4438激情网| 五月天婷婷在看| 色天堂操| 91丁香色| 六月丁香五月婷婷| 9 1超碰九色| www国产亚洲色婷婷com| 色情综合网| 超碰人人在线观看| 人妻丰满精品一区二区A片| 成人丁香婷婷| 色综合久久88色综合中文字幕| 丁香五月天狠狠操| 欧美久久久中文字幕| 九九热免费| 亚州性爱99| 九九精品在线视频观看| 五月婷婷色色网址| 天天久久九九| 搡BBBB搡BBB搡五十| 91人操人人人操人| 26uuu亚洲欧美日本| 五月色婷婷在线观看| 俺去婷婷 丁香| 五月丁香成人网| 欧美成人va| 丰满人妻一区三区三区| 五月天日日操夜夜操 | 99这里只有精彩视频| 99色婷婷视频| 亚洲超级碰| 亚洲午夜成人av电影网| 亚洲高清在线| 深爱婷婷网| 久久99热免费最新版| 天天干夜夜b| 五月天社区| 大香蕉狠狠爱主页| 丁香五月婷婷激情中文| 蒲京久久无码视频| 大香蕉伊人丁香五月| 一级性爱视频| 色综合久久久久| 天天做天天爱天天爽综合网| 这里只有精品在线看| 五月天天天综合| 大香AV| 操日本99| 熟女强人妻一区二区三区四区无| 日日噜噜夜夜狠狠久久丁香六月| 九月av| 99热这里只要精品免费| 米奇影视五月天| 婷婷激情五月天网站| 嫩草视频观看| 久草丁香婷婷五月天婷| 激情性爱网站| 天天色中文字幕女优AV| 激情性爱五月天网页| 综合五月天| 熟女网站久久| 大香蕉99| 亚韩在线视频| 97久久人人| 欧美激情五月天| 婷婷激情社区| 婷婷五月色播放| 丁香五月综合亚洲| 激情五月天色婷婷| 六月五月婷婷| 六月丁香影院| 久久丁香五月婷| 丁香五月婷婷成人网| 久久人妻久久久久| 人人色婷婷五月天| 婷婷五月天中文字幕.| 色五月婷婷久久| 天天日夜夜欢| 亚洲区视频| 九色91美女| 激情丁香九九五月综合网| 久久精品五月| 成人免费视频一区| www.com.色色| 五月 激情视频| 久久人五月| 99热大| www.9色色色| 日本大人久久| 婷婷黄色五月| 91日日日| 六月丁香啪啪| 婷婷婷色五月| 五月天婷婷五月| 狠狠999| 婷婷五月丁香综合亚洲| 久热九九| 天天噜天天爱| 激情欧美婷五月| 丁香五月天偷拍| 六月丁香五月激情亚洲AV| 久久五月综合| 天天爽天天日人人爱| 丁香五月另类小说在线阅读| 人人操人av| 丁香婷婷色五月天| 婷婷五月激情图片| 综合网色| 五月丁香久久| 超碰操日| 婷婷射图五月天| 精品久久久999| 中文字幕综合网| 激情综合网五月婷婷| 亚洲成人免费在线| 深爱激情四射| 婷婷丁香五月综合激情小说| 第五色婷婷| 婷婷淫淫狠狠六月| 久久婷网| 色五月综合网| 激情6月| 久草婷婷视频| 97在线碰| www.婷婷,com| 丁香婷婷基地| 日本五月丁香| 久久六月综合| 成片免费播放| 人妻熟人中文字幕一区二区| 色激情网| 中文字幕在线资源| 色五月视频无码播放| 久久精品视频9| 五月天婷婷基地| 大香蕉啪啪| 五月亭亭开心网| 99精品偷自拍| 久久一品区| 97日本在线| 9 1超碰九色| 噜综合| 亚洲色小说在线综合| 开心色五月天久久久久久久| 婷婷91| 欧美色综合天天久久综合精品 | 69凹凸成人综合网| 91|九色|动漫| 日本色婷婷久久99精品91| 精品少妇蜜臀91| 婷婷五月天国产在线播放| 婷婷五月天综合蜜桃| 日本va欧美va欧美| 玖玖色综合网| 91中文狠狠综合| 71在线精品视频一区| 亚洲五月婷| 五月激激网w'w'w| 人人草人人视| 日本婷婷| 亚洲成人精品三区| 欧洲激情网站| 婷婷色狠狠| 精品成人久久久久久久_一二三四视| 97干在线| 夜色爱爱亚洲| 亚洲色色色色色| www.亭亭五月天| 婷婷五月激情图片| 久久久久久欧美精品se一二三四| 少妇高潮呻吟A片免费看软件| 色色丁香五月天社区| 九九黄色网| 我爱va亚洲va52| 激情五月天婷婷| 九九亚洲视频| 五月天操逼网| 五月综合色播播丁香婷婷| 五月丁香久人妻中文| 国产精品第一国产精品| 天天综合色丁香| 天天操夜夜夜拍拍拍| 久久婷婷激情视频| 亚洲激情综合| 五月婷婷综合社区| 丁香五月天激情小说| 色播五月天激情| 婷婷五月天成人网| 狠狠五月激情丁香六月| 天天模,夜夜模夜夜爽| 国产精品色婷婷久久久精品| 成人丁香婷婷| 九九热欧美| 丁香五月婷婷色播艳门照| 99热1| 综合色色色| 激情六月丁香| 九月婷婷在线观看| 欧美毛片www| 超碰a女人的天堂| 中文中文在线| 99色综合网| 另类小说激情五月天| 日韩999| AV免费在线网站| 开心五月激情站| 欧美色99| 国产精品国产| 亚洲A色| 国产激情视频在线观看| 五月激情婷婷综合| 99热这里只有精彩| 91精品国产综合久久久不卡电影| 中文字幕婷婷五月天| 五月天婷婷久久视频| 丁香六月激情综合| www.婷婷五月| 女人天堂AV| 天天久综合网永久入口18| 久99| 99热主页日本| 天堂亚洲 在线| 婷婷伊在线| 综合网啪| 骚逼视频一区2区| 香蕉婷婷色五月| 九九精品综合| 成人短视频在线免费观看| 第一区久久网站| 五月天激情综合| 一本色道久久综合狠狠躁一二三| 六月伊人婷婷| 超碰99在线观看| 欧美综合五月丁香六月婷| 99免费视频在线观看爱| aV直接看| 五月丁香AV、伊人业余、性色熟妇| 26uuu亚洲| 五月综合丁香婷婷| 久久五月婷婷丁香| 婷婷丁香成人五月天| 久久九九大香蕉电院| 99热在线播放| 欧美日韩99| av在线免费网站| 五月婷婷丁香综合,亚洲天堂| 另类小说五月天综合| 亚洲久久激情| 久久这里只精品66| 人人草人人爱| 丁香六月婷婷综合激情欧美| 日本久久人人| 午夜丁香六月婷| 婷婷五月天激情文学| av中文字幕免费观看| www.精品99| 婷婷五月电影院| 婷婷五月在线| 五月天另类小说| 色播激情| 《蜘蛛女》梁铮1995| 久久久久久久久18久久| 26uuu另类| 99久| 天天草天天摸| 色欧美日| 在线观看av网站| 精品人妻在线| 91婷婷五月天嫩女| 伊人色综合久久久| 综合另类视频| 丁香五月天在线观看视频| 91美女被操| 中文字幕在线不卡| 色婷婷久久综合中文久久一本| 丁香五月黄色| 91在线日| 五月丁香色婷婷婷基地| 五月天婷婷综合网| 婷婷五月激情基地| 日韩三十六页| 亚洲激情五月婷婷日日| 最近中文字幕2019视频1| 天天拍夜夜爽| 九月婷婷综合色干| 色色色色色色色色色色色色色97| 五月色色色| 99这里只有精品|v| 久1色色| 91九色最新视频| 久久久久99精品成人片| 婷婷五月综合中文字幕| 色综合另类| 人人操女人| 激情六月丁| 全高清无码视頻| 色婷婷色99国产综合精品| 成人AV在线电影| 久久久久这里只有精品| 激情丰满熟妇五月| 婷婷六月香| 开心网五月色婷婷| 色欲久久久久久综合网综合网| xx久久| 另类小说五月天| 能看的av| 五月天激情网开心网| 五月五月婷婷| 99无码黄色视频| 丁香久色| 九九九九成人| 99色在线| 日本激情五月| 精品女人九九九| 五月丁香六月激情欧美综合| 婷婷五月综合激情小说| 影音先锋 一区| 无码啪啪| 91小黄书网址在线观看| 成人色图情色成人网 www.5b5b5bcom 五月天| 国产在线中文字幕| 人妻久久久久久久久妻久久久久| 久色大香蕉| 丁香六月婷婷| 婷婷五月天Av| 狠狠久久婷| 91精品无码| 开心四月婷婷在线色播播| 欧美三级巜人妻互换| 99九九精品视频| 淫视馆AV在线| 影音先锋美国A| 欧美性色视频| 丁香五月天婷婷久久| 欧美碰碰碰| 久久婷婷综| 色吊丝99| 91成人性爱视频| 亚洲 五月 婷婷 成人| 热99免费在线| 色色色综合网| 丁香五月综合| 五月丁香婷婷久久| 色V狠狠的干| 亚洲无AV在线中文字幕| 99热99极品观看| 丁香五月天天日| 99精品丰满| 美女五月天| 玖玖资源站中文| 丁香婷婷色色| 精品人妻午夜一区二区三区四区| 亚洲乱码w在线观看| 激情婷婷丁香五月| 九九激情综合| 涩婷婷视频快播人妻| 色播五月天激情| 激情五月色播五月| 五月天免费色| 碰97久久| 天堂爱啪啪| 丰满女老板BD高清A片| 婷婷在线激情| 九月色婷婷综合| 五月丁香婷婷啪啪| 五月叮香啪| 99性爱视频| 亚洲无码11| 婷婷丁香五月欧美人| 4399在线日本A片| 噢美99| 色色免费网站| 五月激情影视| 深爱五月婷婷开心中文字幕| 中文精品在| 婷婷9月天| 日日操天天操| 中文字幕AV在线播放| 五月天婷婷丁香六月| 婷婷激情五月天综合| 色婷婷瘦婷婷日韩| 色婷婷狠狠18yy| 狠狠色综合网站久久久久| 五月天综合在线观看视频| 99久久黄色顶级视频| 第四色五月婷婷| 182.t午在线观看| 色五月综合| 97久久久久| 久色资源| 51avj视频大全| sewuyuejiqingwang| 中文字幕天天干| 97精品综合久久| 99亚洲色| 天天摸天天舔天天爽| 婷婷九九| 国内一级精品| 亚洲AV另类| 久久性都花花世界成人免费视频| AA片在线观看视频在线播放| 狠狠干,狠狠操| 无码色| 五月丁香激情婷婷| 99爱免费视频在线观看| 欧美黑人巨大猛烈cuckold| 99热国产精品| 亚洲不卡| 色综合区| 久热综合| 九九aV| 在线观看欧美3区| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 五月丁香色婷婷基地| 这里只有精品在线视频精品| 久久久27操| 91丨人妻丨国产丨丝袜| 天堂在线婷婷| 久久大香蕉伊人| 男人的天堂在线婷婷| 亚洲日韩乱码一区二区三区四区| 五月丁香啪啪| 日本人妻伦在线中文字幕| 在线99热| 亚洲黄色影视| 啊V视频在线观看| 青青草原伊人网| 五月婷婷视频| 久9久9久9久9久9久9| 丁香婷婷色情| 五月天com| 丁香六月婷婷色XXXXX| 久久久精品色色色| 五月六月婷| 久热精品视频| 五月天婷亚洲天综合网综合| 先锋男人99资源| 日 日干 日日做| www.十八禁不禁AV.com| 狠狠干伊人| 久久网思思| 丁香婷婷色五月天| 激情五月,激情综合网| 欧美色色色色色色色| 五月丁香在线看| 亚洲五月综合色播| www.ppypp| AV性爱在线| 天天操天天插| 丁香五月婷婷影院| 久操操| 激情小说五月天| 青草视频在线观看视频| 丁香婷婷九月在线| 91精选国| 成人免费超碰| 欧美色色色色色色| 九月丁香婷婷| sewuyuejiqingwang| 人人人舔人人人操人人人摸人人人97 | 午夜天堂啪啪| 九九热精品视频| 天堂成人A片永久免费网站| 人妻无码视频网| 野外99热| 婷婷亚洲色| 天干天天干天天天天天| 婷婷激情五月天在线| 成年人丁香五月| 97碰碰视频在线观看| 伊人激情影院| 色五月色综合| 91精品久久久久久久久 | 久久亚洲天堂| 亚洲天堂色色| 丁香五月激情综合久久| 94干大香蕉| 午夜激情综合| 色综合久久伊伊婷婷五月| 六月五月婷婷| 99视频在线精品| 久久xxxx| 色就色94欧美setu| 日韩精品999| 婷婷九月激情| 色99色| 97人人超| 日日噜噜久久婷婷五月天| 丁香五月婷婷黑人妻黄色电影院| 六月丁香深深爱| 五月婷婷六月丁香色| 伊人超碰| 丁香五月婷婷激情四射深爱激情| 激情五月天综合网| 久久五月婷综合网| 99热在线看片| 五月婷婷之综合激情| 97人碰人操| 丁香五月色五月| jiujiu无码五区| www夜夜操com| 99精品在线观看| 五月婷婷精品视频| 欧美丁香婷婷天天操| 99re思思精品视频在线观看| 日本色婷婷久久99精品91| 婷婷激情小说| 久久性视频| 热久91| 丁香五月自拍| 日本色视| 国产精品18久久久| 九草性爱| 天天综合图片| 九九热这里只有精品6| 五月天大香蕉| 亚洲无aV在线中文字幕| 五月婷婷六月爱| 秋霞AV淫| 波多野结衣不卡AV| 久久精品色| 色五婷婷开心缴| 色一情一乱一伦一区二区三区| 91好好热日本在线| 天天成人综合视频| 六月丁香啪啪| 色丁香五月婷婷综合久久| 色在线99| 丁香六月天之亚州热女| 91人妻PORNY九色大屁股| 99超碰在线免费| 色五月涩涩婷婷蜜桃| 色色色热| 精品99*| 日日噜狠狠色综| 色综合久久88色综合中文字幕| 9久久精品| 色约约视频一区二区三区四区五区| 天天摸.天天mo| 99久在线精品99re5热视频| 成人五月丁香花| 五月婷丁香花| 啪啪激情综合| 婷婷综合日本| 婷婷无码视频| 亚洲成av人影院| 91久久久久久久久18| 人妻精品一区二区三区| 天天干在线播放| 美女丁香五月天| 婷婷六月天| 婷婷伊人综合| 婷婷丁香五月欧美人| 婷婷五月天激情小说| 五月婷婷|欧美| 思思精品热在线| 丰满少妇猛烈A片免费看观看 | 成人网站高清无码| 五月丁香直播| 婷婷精品免费久久| 久婷久婷| 日本丁香五月| 日韩精品无码一区二区| 婷婷五月激情热播| 99热国产| 天天久综合网永久入口17v| 色偷偷色婷婷| 久久久9久| 狠狠五月天婷婷激情网。| 色婷婷久久| 一级片sese片.COM| 色狠狠999综合| 热热99爱爱| 丁香五月在线| 99久久久精品| 激情五婷网| 五月四色激情| 激情网婷婷婷| 日本韩国视频在线观看社区免费的9| 丁香六月婷婷综合麻豆| 欧美成人精品三区综合A片| AV色五月婷婷| 色婷婷在线播放| www.五月婷婷.com| 曰曰久久| 4438国产免费看| 久久99热免费最新版| 色色丁香色五月| 激情婷婷啪啪| www.色情五月天.com| 久热这里只有精品66| 婷婷五月花| 亚洲十月婷婷综合| 五月天操逼激情| 日韩欧美骚货| 啪啪色激情五月天| 婷婷五月天第三页| 9999热精品| 开心深爱激情网| 91久久九色| 天天搞天天爽| 婷婷丁香先锋资源网站| 欧美激情VA永久在线播放| 婷婷九色| 在线只有精品| www五月| 天天舔天天摸天天射| 国产欧美性成人精品午夜| 五月丁香成人| 久久激情四射| 丁香综合网| 激情婷婷22月间| 久久小片| 丁香六月婷| 97干视频| 婷婷五月在线综合| 国产露脸150部国语对白| AV国产有码| 色色六月| 色婷婷a| 99热九九这里只有精品| 狠狠干综合| 婷婷激情六月综合| 99天天操夜夜操| 五月丁香中文| 日本啪啪天堂| 国产精品久久久久久久久久| 亚洲久久婷婷| 丁香五月停停av| 久久久无码精品成人A片小说| 国产综合色婷婷精品久久| 五月天啪啪啪| 五月四色婷婷| 亚洲电影中文字幕| 91狠狠色丁香婷婷综合久久精品| 大香蕉啪啪啪| www.五月丁香av| 蜜臀99久久精品久久久久| 婷婷六月激情| 色婷婷五月基地在线| 婷婷五月成人社区| 国产色色视频| 久久久久久久丁香五月天婷婷| 丰满少妇乱A片无码| 5月婷婷五月天| 草草影院爱爱| 99碰碰| 天天天天天久久久久久| 色婷婷a v| 婷婷五月天综合网| 欧美成人网99网| 欧美影院婷婷| 麻豆AV一区二区三区| 丁香色婷婷五月天| 天天想夜夜爽天天爽| 男人大jjc女人免费视频| 日本欧美成人片AAAA| 欧美天天爽| 91人妻人人操| 天天色播| 九九精品视频在线6| 激情五月色综合网| 99热在线播放| 开心五月网 | 日日狠狠久久偷偷四色综合免费| 超碰在线免费| 日韩精品视频中文字幕| 五月婷婷影| 天天草天天爱| 无码人妻丰满熟妇奶水区码| 热99AV网站| 丁香色五月婷婷17C| 丁香五月婷婷总啪啪| 五月婷婷欧美| 精品色色网| 日韩国产在线免费观看| 天天综合精品| 噜噜色婷婷| 丁香婷婷综合精品六月初| www.com在线操视频免费观看| 色婷婷综合视频| 涩五月丁香| 五月丁香精品| 亚洲黄色操逼| 播播网色播播| 丁香五月天激情综合| 色情性爱视频网址| 色九月综合| 99精品无码| 开心激情网五月| 97久久精品| 99热每日| 亚洲色久| 日本成人噜噜噜| 婷婷五日b| 色色色1网址| 午夜不卡久久精品无码免费| 婷婷精品性性性性性性性| 嫩草AV久久伊人妇女超级A| 亚洲丁香五冃97色| 99精品在线观看视频| 天天影院色| 影音先锋 婷婷| 日本三级中文字幕| #NAME?| 日本色婷婷| 國語久久婷| 亚洲色情网站| 久久婷婷五月国产激情综合片| 97婷婷丁香五月天激情图片| 五月天丁香婷婷网| 99视频自拍| 五月婷婷综合久久| 思思99精品视频在线观看| 日韩精品超碰在线观看| 婷婷视频在线| 色噜噜狠狠色综合日日| 久久色婷婷| 婷婷综合网| 婷婷五月色网| 五月丁了香蕉综合| 在线成人网站| AAA久久久AAA久久久AAA| 成人草榴视频| 99热官网| 中文字幕永久在线| 99热热这里只精品996小说| 狠狠五月综合在线| 日日干夜夜撸夜夜骑| 无码色色色色色| 91久久九久久九久久九久久九久久| 91肏肏肏| 99亚洲精品| 久久久这里有精品| 91偷拍视频| 六月丁香啪啪啪| 婷婷丁香人妻天天久久| 亚洲精品性色| 五月天婷婷网站| 色五月开心婷婷| 激情丁香社区| 狠狠人妻色综合| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 久久99草五月婷婷| 色www久视频| 综合五月天| 狠狠色丁香| 五月丁香成人| 亚洲性爱电影| SESE无码AV| 色五月婷婷久久大| 亚洲综合色丁香婷婷六月| 国产成人VA| 深爱五月综合网| 激情五月综合色| 五月激情啪啪| 91性高潮久久久久久久久| 天堂色婷婷| 91视频久久久| 九月色婷婷综合| 欧美亚洲成人在线| 91xxxx九色| 九九热9| 97人碰人操| 两性婷婷丁香五月| 色啦啦视频| 国产精品99久久久久久久女警| 欧美精品18| 伊人在线视频| 天天操夜夜操| 99热这里全都是精品| 亚洲色视频| 青草五月天| 色综合伊人网| 五月丁香色婷婷色| 97碰久久| 日日夜夜天天综合| 五月婷婷五月| 色综合五月天| 无码成人AAAAA毛片AI换脸| 亚洲字幕AV一区二区三区四区| 亚洲妇女熟BBW| 日本欧美成人片AAAA| 一起草av| 欧美成人AAA片一区国产精品| 九八Av| 色99综合色88| 日韩久操婷婷| 久久精品夜色噜噜亚洲a∨| 五月丿香啪啪| 91婷婷色 | AA片在线观看视频在线播放| 精品久久久中文字幕大豆网推荐理由| 亚洲激情网| 噜噜在线| www99精品日韩| 日本色超碰| 亚洲精级| 亚洲色婷婷五月天| 91婷婷五月丁香碰| 欧美日本国产欧美日本韩国99| 99久在线精品99re8| 欧美天天草人人草| 人人舔人人色人人高潮| 午夜电影网VA内射| 99精品综合视频| 日本天天色| 人妻综合网| 97资源碰碰| 可以看的av| 久久婷婷老| 久久99日本精品视频免费观看| 久色五月天| 噜噜操操| 91久久久久久久| 欧美激情xxxXX| 九九热这里只有精品31| 五月 婷婷 成人| 日亚二欧美| 伊人在线视频| 91麻豆国产三级精品福利在线观看| 久久久五月天婷婷成人网| 91啪啪啪啪| 97福利视频| 婷婷中文字幕版| 天天日天天干天天爽| 激情五月婷黄版| 亚洲这里只有精品| 色综合综合综合| 久热亚洲| 狠狠做五月| 五月婷婷六月激情在线| 色婷五月天激情| 激情性爱五月天| 久操热线| 嫩草视频| 丁香五月性| 天天插天天草人人玩| av网站中文| 丁香久久综合| 狠狠干,狠狠操| 中文字幕高清av| 丁香五月婷婷激情四射| 天天色综合色色色色色。| 天天久久综合| 开心深爱激情网| 99热老网站| 9久热精品在线视频| 五月婷婷色啪| 五月天激情综合网俺也去| 色5月婷婷| 亚洲无码播放| www.金莲av| 色婷久九| 夜夜天天天天天干天天爽| 色综合天天综合成人网| 99久在线精品99re8热| 在线观看欧美3区| www.99久| 色色cOm| 五月婷婷AV| 精品9久| 99九九久久| 成人性爱无码| 婷婷社区五月天| 天天射天天插天天干| 六月激情丁香一道本7777| 激情深爱婷婷网| 激情综合网五月婷婷| AA片在线观看视频在线播放| 视频1区2区| 六月婷婷狠狠| 婷婷5月九九| 91久久久久久久久18| 丰滿爆乳一区二区三区| 色婷婷狠狠18禁| 天天爽夜夜爽天天爽夜夜爽| 日日夜夜婷婷| 99热有精品在线观看| 99综合免费视频| 综合五月网| 成人亚洲精品| 91欧美日韩| 天天爽夜夜爽夜夜爽精| 麻豆雪千夏| www.婷婷六月天| 玖玖99婷婷| www.粉嫩av.com| 色色色色色综合| 五月天婷婷成人网| 熟女91九色| 日日激情网| 色播婷婷五月天| 色亭亭丁香五月天| 激情99。| 91人人爽狠狠狠| 国产综合A片| 亚洲五月婷婷在线| 丁香狠狠色婷婷久久无码视频| 成人丁香五月| 99热在线资源| 久热这里只有精品视频免费观看| 九九综合久久| 欧美丁香五月97色| 免费观看的AV| 色色五月婷| 五月婷婷中文字幕| 日日夜夜婷婷| 婷婷五月天小说| 五月丁香综合中文| 五月深爱婷婷| 干一干xxxx| 日本在线观看aaa 99| 日本五月丁香| 99精品自拍视频| 狠狠狠狠青草| 丁香六月婷婷色XXXX| 丁香六月天| 婷婷丁香www视频日本韩国| anquye五月| 五月天综合| 超碰九九热| 丁香五月六月综合欧美| 国模狼狼| 99综合99| 午夜不卡久久精品无码免费 | 五月激情六月综合| 玖玖在线| 五月婷婷丁香俺日污视频| 丁香五月天AV在线| 色。 日日日| 91操人视频| 超色欲天天| www.亭亭五月天| 一区二区三区四日本| 天天色天天爱天天舔| 狠狠色成人影片| www久久久| 久婷五月| 99视频在线看| 性日本精品| 五月天婷婷丁香成人网| 天天操天天操天天操| 久久九九色| 人妻操逼视频。| 五月婷婷色情| 九色91国产| 久久 婷婷 五月天| 九色七七| 六月丁香中文字幕| 在线不卡AC| 日韩十国产极品久久| 伊人久久丁香狠狠婷婷综合香蕉| 九九aV| 久久久五月五丁香| 九热久| 中文色婷婷| 天天操婷婷| 99热免费精品| 久9久9久9久9久9久9| 大香蕉九操| 97精品欧美91久久久久久久| 99亚洲日韩| Av在线不卡一区| 99久久久国产精品免费蜜乳tv| 美女婷婷激情亚洲| 天天影视色综合网| 国产99久| 丁香激激情网| 91精品久久久久久久久久| 激情五月天色爱| 99热这里只有精品16| 激情久久久| 天天肏视频| 99热最新网址| 久草热在线视频| 国庆精品久久| 国产人妻人伦精品一区二区| AV九九| 亚洲激情av| 丁香婷婷免费| 人人摸人人干人人做| 1024人妻无码中文字幕| http://www.sd-xiangsu.com/| 色婷婷基地 | 超碰免费在线| 丁香色婷婷| 婷婷亚洲五| 99精品在线| 欧美大奶熟女噜噜噜噜| 婷婷综合| xx综合网| 97成人丁香| 日日噜噜夜夜狠狠久久丁香六月| 色色色色色五月| 天天五月天综合网址| 国产婷婷五月| 涩涩五月天| 91久久久久久久| 91啪啪| 婷婷色五月噜噜| 亚洲无码色| 久久99热精品a片在线观看| 婷婷综合天堂| 五月综合视频| 亚洲精品国产成人AV在线| 五月色网| 无码四色色色| 免费观看全黄做爰的视频| 亚洲人成人五月天| 黑人无码一区| 99久久这里只有精品| 亚洲天堂亚洲色色色| 丁香五月狠狠在线观看| 色五月六月婷婷| 97操碰98| 色五月五月婷婷| 97人妻碰碰中文无码久热丝袜| 色情五月丁香| 亚洲婷婷乱乱丁香| 成人一区在线观看| 久热大香蕉| 色99视频| 九九综合影音先锋| 综合一本道| 99操逼视频| 中国丰满熟女A片免费观| 综合五月激情网| 色娸娸综合网| 激情综合网激情五月天| 天天射色五月天| 99久久久久久| 欧美大片| 五月久久丁香| 丁香五月婷婷天堂大香蕉| 丁香婷婷深情五月亚洲| 丁香5月综合啪啪| 天堂网操| 婷婷 伊人 久久| 欧洲亚洲免费视频9| 少妇高潮呻吟A片免费看软件| 五月婷婷,六月丁香| 99亚洲视频| 丁香五月欧美| 综合激情开心五月| 极品人妻VIDEOSSS人妻| 久草五月天| 激情综合五月天| 狠狠CAO日日穞夜夜穞AV | tingtingjiqingwuyue| 婷婷酒色网| 九九精品亚洲| 秋霞黄色一级久久| 一区=区操屄高清大全av| 91婷婷色 | 久久大香蕉视频| 专区无日本视频高清8| 婷婷五月天成人网站| 欧美三级欧美一级| 久久这里有精品| 天天狠狠干| 97香蕉久久超级碰碰高清版| 热思思九九| 91精品久久久久、久五月天| 日韩免费乱轮网站| 狠狠色婷婷丁香五月| 五月天婷婷基地| 五月激情网综合| 欧美丁香婷婷天天操| 91九九九九九九| 激情久久肏屄视频| 思思re视频在线| 亚洲成人中心| 疯狂做受XXXX高潮A片| 蜜桃人妻无码AV天堂三区| 六月婷婷狠狠色在线观看| 婷婷久久图片| 99精品热| 亚洲中文乱字字幕在线永久| 丁香五月日啪| 丁香婷婷九月| www夜夜操| 激情综合网五月婷婷| 米奇激情婷婷| 婷婷综合五月天| 日本三级成人秘书精品片| 九久9精品| 五月天成人在线播放丁香| 色色色色色热| 五月Huangsewang| 99久久婷婷| 婷婷娱乐丁香综合网| 久久伊人婷婷| 被强行糟蹋的女人A片| 中文资源在线a | 97人人看| 涩涩婷婷五月| 五月丁香婷婷久久| av中文字幕免费观看| 丁香五月天激情| 五月丁香久久综合精品| 亚洲黄色影视| 婷婷涩五月| 狠狠色精品综合| 99热99在线| 亚洲综合另类| 韩日另类| 日日爽夜夜爽| 久9久9久9久9久9久9| 婷婷丁香五月天狠狠| 色综合九九色综合88| 东北熟女视频99| 亚洲无AV在线中文字幕| 综合色五月| 91色在线 | 日韩| 天天干com| 伊人五月天男人的天堂在线| 五月婷婷导航| 超碰妻人人| 国产日产亚洲系列最新| 日韩aaaaa| 9精品在线| 国产色色视频| 99成人小视频| 亚洲五月婷天天操| WWW·天天操·视频?| 99ri国产在线| 成人色图情色成人网 www.5b5b5bcom 五月天| 91久久久久久久久久久| 婷婷五月天成人网| 婷婷色狠狠| 婷婷六月丁香1| 操操啪| www.91AV.COM| 欧美黄色一级录像| 亚洲综合在线视频| 婷婷色五月天在线观看| 六月丁香婷婷综合狠狠爱夜夜爱| 99热这里只有精品16| 婷婷激情丁香五月天综合| 丁香六月婷婷开心| 碰97久久| 国产精品国产| 久久九⑨| 五月天丁香婷婷久久九| 老师的粉嫩小又紧水又多A片视频| AV中文在线| 九九碰九九爱97超| 丁香五月人妻| 五月在在观看| 碰超99| 久久香蕉福利| Www99热| 婷婷精品综合| 久婷婷五月综合欧美| 91日婷婷在线| 国产精品人成A片一区二区| 欧美精品18| 久热99热| 久久人妻视频| 97色色在线视频| 天堂色婷婷| 久久免费操| 色综合大香蕉| 狠狠色大香蕉| 久9精品| 丁香97综合| 在线五月婷| 亚洲综合色婷| 中文字幕在线aⅴ免费观看| 国产成人AV| 99久在线精品99re8热| 九九热免费视频| 9久精品视频| www.99热| 五月丁香婷婷欧美| 免费黄色视频网址| 色婷婷视频在线| 青青草五月天| 亚洲成人网站在线观看| 九九aV| 色色色色色色色色五月先| 五月激情小说| 日本啪啪网| www.久久99| 色碰碰| 99九九久久| 夜夜爽天天爽| 91精品久久久久久综合五月天| 婷婷操婷婷干婷婷射| 成人va视频| 大香蕉五月婷婷| 亚洲中文字幕av| 色色色热| 五月婷六月| 99热66| 五月天大香蕉| 丁香五月五月婷婷欧美大香蕉|