99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜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
返回資訊列表
91婷婷丁香五月天免费视频网站| 婷婷丁香成人五月天| 中文av网站| 五月综合人妻| 激情五月天激情综合网| 日韩成人电影Av| 狠狠插日日干撸| 成人在线免费网址| 五月天久久久| 国产Va视频| 四川BBB搡BBB搡多人乱亂| 五月激情丁香六月狠狠干| 开心激情站| 综合婷婷六月| 五月色丁香婷婷综合| 亚洲色爱综合| 99re久久| 99'无码| A久久| 91热er| 欧美97超碰| 99精品大片| 永久热91| 狠狠干狠狠干| www.亚洲激情| 91在线日| 人人操9| 99这里只有精品在线观看| 丁香五月婷婷综合啪啪| 婷婷五月天激情网| 五月天婷婷自拍图片在线观看| 性一交一乱一交A片久| 99热这里有精品2| 情色五月天 网站| 色婷婷激情| 91精品综合久久久久久五月丁香| ai97re99一本| 久久婷婷久久| 狠狠艹狠狠艹| 一片AV片免费播放| 丁香五月激情网| 日日操日日射| 亚洲中文字幕AV| 亚洲丁香花色| 色小说五月天| 77799热| 丁香六月天之亚州热女| 综合久久十| 玖玖在线| 五月色婷婷激情| 亚洲av成人一区二区电影在线| 99无码视频| 狠狠色九月| 九九热超碰| 三级大香蕉网| 91干| 久久免费试看120秒| 丁香五月Av| 激情网五月婷婷| 色婷婷操逼| 欧美成人AAA片一区国产精品| 亚州操人在线视频| 91啪级电影| 丁香玖玖| 波多婷婷久久| 五月丁香综合| 久婷婷| 好激情在线综合网| 婷婷五月天激情偷拍| 91碰操| 日本五月婷| 婷婷五月天干干| 久久久婷婷婷| 婷色视频| 亚洲av电影在线| 九九aV| www.深爱激情| 99精品在线下载| 大香蕉婷婷色| 99超级碰碰| 五月天网址在线刘玥| 日韩色色色色色| 97luluse| 一本大道伊人AV久久综合| 亚洲av日韩无码| 色婷五月天网站| 亚洲激情AV| 在线播放 精品| 天天色视频| 亚洲熟妇无码乱子AV电影| 丁香婷婷六月天| 97干网站| 色婷婷五月在线| 99ri6在线视频| 99日韩| 色你久久| 五夜丁香| 久久婷婷五月天激情四射| 97韩国久久电影院| 热久久国产视频| 天天做天天爱天天日| 青青操成人福利| 久热这里只有精品99re| 亚洲午夜电影| 六月婷婷开心| 俺也去综合| 99精品视频免费在线播放| 丁香五月婷婷性爱| 色色亚洲无码| 综合天天综合| 精品99久久久久成人网站免费| 99久在线观看| www.婷婷六月天| 9九九久久精品无码专区| 丁香五月天啪啪| 色九区| 久操大屁股女人av| 99人人干人人操| 六月婷婷综合网2| 99精品在线| 九九精品热| 婷色五月天| 国产日韩欧美性爱| 五月丁香久久| 综合久久综合久久| WWW,五月| 久久9视频欧美| 97偷拍在线视频| 综合五月丁香六月婷婷| 色婷婷丁香五月高清在线| 色99在线| 亚洲天天免费| 九九久久五月天综合伊人| 久久6这里只有精品| 激情AV| 丁香五月色五月| 亚洲成人无码网站| 久久久人妻不卡| 中文字幕永久免费| 色五月xxx| 伊人婷婷青青cao| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 成人五月天在线视频在线观看 | 7777精品伊人久久久大香线蕉最新版| 任你擦免费视频| 五月丁香九九| 噜噜噜噜噜久| 激情五月综合六月丁香婷婷狠狠干| 超碰免费人妻| 操国产人妻| 天天在线久久综合 | 久久HD| 九热...av| 97精品欧美91久久久久久久| 婷婷五月色| 99啪啪| 少妇性BBB搡BBB爽爽爽视頻| 日本玖玖在线| 91色九| 亚洲黄色影视| AV在线免费播放| 全亚洲最大的婷婷五月天网站COM| 五月开心婷婷极品激情| 人妻 性久久久久久| 五月天天天综合| 九九热九九| 国产热精品| 色欲久久久久| 五月天综合婷婷| 91超级碰碰碰| 天天透天天干| 色五月丁香六月资源站| 日韩在线五月天婷婷| 嫩草AV久久伊人妇女超级a| 激情综合在线播放| 337p大胆噜噜噜噜噜91Av| 丁香五月影院| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 久久婷婷丁香花综合网| 欧美成人日韩| 激情综合激情五月| 色色色国产| 八戒青柠影视剧在线观看| 色婷婷丁香AV综合| 天天摸天天舔在线视频| 丁香五月Av| 色色五月天婷婷| 亚洲欧洲中文日韩久久AV乱码| 极品少妇婷婷五月| 激情综合网络插| 婷婷瑟瑟五月天| 九色视频91疯狂| 无码少妇高潮喷水A片免费| 97色射| www.99日本| 婷婷AV丁香| 婷婷五月中文在线视频| 日本色婷婷| 操老逼综合网| 五月天久久久| 久久丁香综合| 激情图片亚洲| 亚洲性爱99| 欧美成人色婷婷| 伊人婷婷五月天| 影音先锋AV资源男人站| 五月丁香激情四射| 91久久色| 久久久婷丁香五月| 综合色五月| 9 7总站超级碰免费视频| 四虎成人精品永久免费AV九九| 夜夜夜夜操| 最新色色五月天| 大香蕉综合视频在线| 婷婷五月色图| www色婷婷com| 久久六月婷婷| 热这里只有精| 丁香九月婷| 国产精品久久久久久久久久久久 | 色综合天天天天做夜夜| www.色五月| 日韩欧美成人片| 1995年关宝慧版蜘蛛女| 婷婷五月天小说| 国产成人AV在线播放| 五月婷丁香久久久| 久久综合五月天| 婷婷狠狠97| 天天射天天射一道本日本社区| 丁香色婷婷五月天| 人人操9| 就99这里只有精品| 五月天婷婷激情| 玖玖99精品视频| 日日操,夜夜爽| 亚洲激情婷婷| 亚洲色色五月天| 久久久人妻系列| 日本人妻伦在线中文字幕| 丁香五月婷婷网| 色97啪啪| 五月丁香六月婷婷操操操| 99国产精品久久久久久久久久久| 99色精品视频| 久久怕怕视频| 天搞天天天天天| 人人干99| 五月丁香无码| 日日干夜夜干| 99啪99| 丁香五月天啪啪激情综合网| 美国少妇性做爰| 天天综合色丁香| 99自拍视频在线| 丁香婷婷色九月| 韩国激情五月天综合网| 五月香蕉网| 五月婷婷色丁香| 丁香五月天激情| 激情丁香六月| 色色婷| 五月婷亚洲精品AV天堂| 玖玖资源在线视频| 久久婷婷六月| 99热在线观看| 中文字幕 久久9999| ..真实国产乱子伦对白在线_欧| 婷婷免费精品视频| 五月丁香婷婷综合| 欧美日韩大黄| 婷婷五月色播天| 久久草婷婷丁香网站| 三男玩一女三A片| 婷婷舔| site:feetmall.com| 日本V在线观看不卡视频网站| 久久九九怡红院| 五月丁香在线| 五六月丁香激情视频| 日本少妇裸体做爰高潮片| 五月色情婷婷开心五月色情| 久久久天堂国产精品女人| 5月色亭亭视频| 少妇性按摩无码中文A片| 亚洲综合新99视频| www...com黄在线观看| 婷婷香五月综合激情| 久久久久久久久18久久| 无码区婷婷五月花开| 狠狠色丁香婷婷| 五月丁香六月婷| 九九这里是免费的视频5| 久久久久久久97| 丁香色五月婷婷17C| 激情伊人五月天| 丁香综合伊人| A片试看50分钟做受视频| 狠狠草婷婷| 性爱网五月婷婷| 热热久久99| 极品另类| 丁香五月综合| 五月丁香六月婷婷开心网| 日韩黄色AV无码| 成人性爱无码| 午夜爱插插| 丁香婷婷六月| 色丁香影院| 久久伊人9| 久久大香蕉| 天天干天天av天天射| 婷婷色av| 91操碰| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 玖玖99免费视频| 婷婷狠狠操| 亚洲婷婷六月天| 99综合99| 人人干人人看| 久久99免费视频| 欧美色色色色色色色色色色| 夫妇交换刺激做爰| 色婷视频| 色五月xxx| 精品热青草| 91丨九色丨熟女|老版| 成人五月天在线观看| 综合AV网| 久色网| 五月婷婷免费视频| 久久久WWW| 欧美成人精品A片免费一区99| 亚洲噜色| 婷婷五月激情四月综合| 欧美日韩精品一区二区三区钱| 色综合丁香| 色婷婷色情| 色情五月婷| 天堂成人A片永久免费网站| 色五月婷婷激情| 怕怕視頻| 五月婷婷婷综合网| 五月天丁香婷婷视频网址 | 99亚州综合精品成人网| 9久久久久久久久久久| 亚洲精品又粗又大又爽A片| 亚洲人人操| 婷婷五月丁香色情| 激情五月天婷婷图| 成人色图情色成人网 www.5b5b5bcom 五月天| 亚洲欧洲国产精品| 久久视频在线| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 天久综合91综合首页| 激情五月婷婷六月丁香| 综合色五月天| www.激情五月天。com| 任我肏视频精品| 亚洲无码99| 综合网啪| 丁香五月天色婷婷| 另类图片 五月激情| 免费观看2018www黄色操逼网站| www.久久| 天天做夜夜爽| 丁香五月另类色婷婷麻豆| 五月丁香AV在线| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 九九热视| 亚洲色综合性| 亚洲十月婷婷综合| 大波美女VA网站| 欧美色图天堂网| 啪色综合| 97自拍99| 91久久免费| 啪啪日本欧美| 欧美性生交XXXXX无码小说| 五月丁香好婷婷A片网| 丁香五月色欲| 青青草原爱爱网| 女人高潮内射99精品| 九九热精品| 久久久精品人妻录| 日韩精品无码99| 婷婷丁香五月天在线视频| www.色综合| www91精品| 性欧美大战久久久久久久83| 国产精品久久欧美久久一区| 五月天色色网站| av色婷婷| 九九99精品| 在线视频99| 色婷婷丁香五月天在线观看| 色欲资源网| xxx日本东京热| 99在线免费视| 97五月天婷婷午夜| 亚洲激情免费久久| 91操操操| 可以免费看的av网站| 五月四色婷婷| 天天免费日日夜夜夜夜| 思思热国产| 四色女婷婷| 人妻性爱av网站| 噜噜狠狠| 婷婷久久免费看| 99在线观看视频蜜臀| 无码地址| 激情综合网之激情五月| 九色视频这里只有精品| 激情五月丁香综合网站 | 久久久久久欧美精品se一二三四| 99热这里是精品| 婷婷大香蕉| 色婷婷在线视频| 欧美三日本三级少妇三99| 人妻人人操| 这里只有精品免费在线视频| av在线超清中文| 在线,国产,色,热视频| 精品一二三区视频立| 婷婷五月天天天日日夜夜| 激情六月下句是什么| 草操网| 99热情这里只有精品在线播放| 亚洲精品乱码久久久久久按摩观| 国产成人VA| http://www.lingjunshare.com/| 色婷婷六月天在线| 五月天色五月| 天天做夜夜爽| 九九色婷婷五月天| www.99精品视频| 狠狠人妻色综合| 丁香九月婷婷| tingtingzonghewang| 亚洲色综合性| 久久久久久久97| www.99视频| 婷婷伊人久久无码色五月| 免费色婷婷| 欧美碰碰碰| 国产免费一区二区三区三州老师F1F1.CC | 婷婷六月久久综合导航| 天天狠狠综合精区| 操逼六区| 精品无码色| ss99热| 美女丁香五婷婷| 五月色婷| 国产99久| 久久丁香五月婷婷| 五月噜噜噜色综合| 丁香五月在线看| 天天肏高清在线| 成人婷婷色五月天| 婷婷色丁香六月| 日本色天堂| 久久精品国产一区二区三区四区| 超碰免费电影| 天天做天天爱天天爽夜夜揉| 五月婷网站| 九九精品99| 中国丰满熟女A片免费观| 一级黄色操B| 97碰碰视频在线观看免费| 啪啪五月天啪啪| 桃色五月天| 中文字幕无码人妻少妇免费视频| 大香蕉七区| 玖玖资源部在线播放| 日日做夜夜爱| 五月天婷婷激情小说电影| 婷婷婷婷婷婷婷婷婷婷丁香| 99热都是精品| 人人爱人人摸人人澡| www.激情五月| 日韩欧美成人网| 亚洲AV网站| 99热12| 天天插天天日| 婷婷五月网图片区| 丁香五月,激情五月,深爱五月| 色五月第四色| 丰满女老板BD高清A片| 色婷婷狠狠久久YY| 亚洲 激情 中文| 国产avapp 网| 丁香五月天堂婷婷| 五月丁香激情五月天| 婷婷五月天综合色| 色爱综合网| 一区二区乱视频码| 天天色色婷婷| 国产精品大香蕉| 97人人操人| 91视屏在线观看com.wwwvv| 欧美人人操| 久久久久这里只有精品| 99天堂在线观看免费视频| 亚洲色情久久| 色5月婷婷色| 久久ri精品视频| 久久与婷婷| 97久久视频| 九月婷婷综合色干| 丁香五月婷婷激情123| 五月天婷婷在线AN| 在线成人网址| 六月婷婷色色色| 99超级超级超级碰| 色欲资源网| 免费看欧美成人A片无码| 91超碰在线观看| 热久精品| 丁香色影院| 91人妻视频| 嫩草AV久久伊人妇女超级A| AV电影在线播放| 99视频九九热| 伊人久久大香线蕉AV最新午夜| 久久久区区一久久久久久| 另类专区在线观看| 九九色区| 天天拍天天操| 九月久久婷婷| 五月婷在线| 涩五月丝袜婷婷| 五月婷色丁香| 女人被躁到高潮嗷嗷叫小| 五月婷婷伦理| 日本猛少妇色XXXXX猛叫| www.99在线| 五月丁香啪啪啪综合网| 五月婷婷激情| 大香蕉久| 天天色综合天天| 99免费在线| 综合色情网| 国产激情AV| 久久综合丁香| 日日爽日日| 国产av天堂| 色情婷婷。| 9热在线观看| 日本精品干| 97se视频在线| 99re视频在线播放| 777色色色| 韩日在线熟女| 少妇人妻人伦A片| 色情五月天首页| 五月天大香蕉av| 五月天激情国产综合AV| 香蕉曰比| 成人va在线播放| 伊人久久大香天蕉亚洲特级| 99资源在线视频| 任你日视频| 91操碰| www.婷婷五月天,com| 99riAv1国产在线观看| 色综合九九色综合88| 丁香大香蕉| 人人性久久| 亚洲午夜av| 久久色婷婷| 丁香六月婷| 97碰久久| h在线看免费版在线看| 欧美综合丁香网| 嫩草AV久久伊人妇女超级A| 婷婷五月天激情综合深爱| 91九色超碰| 26uuu另类| 国产精品人妻在线网址| 99亚洲天堂| 婷婷五月天国产手机在线视频观看| 日韩AV免费电影在线播放| 狠狠激情五月天| 日韩三级视频一区二区| 色婷婷五月天在线观看| 色婷婷五月开心六月综合| 成人综合网站| 天天干天天操天天拍| 超碰91人人操| 噜噜视频| 婷婷五月骚厕所| 51XX午夜影福利| 婷婷五月天Av| 日本熟妇乱妇熟色A片蜜桃| 狠狠va| 五月婷婷9| 久热伊人| 成人性爱无码| 日本黄色在线观看| 色五月激情五月| 婷婷天天日婷婷| 91久久五月天| 国产日产亚洲系列最新| 精品爆操| 五月激情丁香五月宗合| 91啪啪网| 五月天激情视频| 丁香婷婷色情社区成人小说| 综合啪啪| www.久操| 婷婷操久久| 操逼福利视频| 五月天婷婷免费| 99ree6| 色狠狠999综合| 婷婷综合成人五月天| 婷婷性爱五月天丁香网| 婷婷网五月天| 婷婷五月丁香综合激情| 国产va在线视频| 97操碰在线视频| 熟妇内谢69XXXXXA片| 天天日天天操心| 激情综合网络插| 久久婷婷五月综合色丁香| 午夜少妇在线观看视频| 永久免费视频| 国产婷婷五月天| 亚洲欧洲另类| 色综合久久88| 五月天婷婷社区久久综合| 天天操天天爱天天日| 337久久| 激情综合亚洲| 久久99网| 性色播| 亚洲自拍天堂| 婷婷五月色播天| 激情五月天婷婷五月天| 色婷婷五月中文字幕在线dvd| WWW,五月天| 婷婷丁香91| 牛牛热这里只有jingpin| 色五月偷偷| 久久婷婷成人视频| 五月丁香综合成人社区| 人妻无码视频网| 丁香色五月天| www.婷婷.com| 欧美成人色婷婷| 99视频精品8| 丁香五月天无码AV| 亚洲av日韩无码| 综合激情四射一theav| 黄桃AV无码免费一区二区三区| 1024人妻| 丁香婷婷视频在线| 96五月丁香熟女| 国语对白性爱视频播放| 久久婷综合| 香蕉五月婷婷| 99久久超级| 久久小说| 男女啪啪做爰高潮无遮挡| 婷婷久热| 在线婷婷| 在线观看免费狠狠色丁香香综合| 99热6色| 五月天成人小说网| 天天天天天天噜| 5月丁香六月婷婷| 精品人妻久久久| 五月婷高清视频| 亚洲人人96@| 五月天激情综合首页| 日韩成人网址| 午夜婷婷| 久久这里只精品66| 日韩一区二区在线播放| 五月天天天综合| 丁香六月激| 综合亚洲六月婷婷在线| 婷婷丁香人妻天久久| 99超级碰免费视频| 色婷婷XXXXX| 久久天天天| 婷婷欧美偷拍综合| 99这里只有免费的小视频在线观看| 99啪| 99热9| 亚洲成人av在线| 99福利导航| 伊人99热| 中文人妻主播久久| 五月香蕉综合| 日本三级韩三级99久久| 婷婷五月天堂网| 丁香六月狠狠| 99热这里只有99| 亚洲一色色色色色色色色| 狠狠色性| 婷婷五月天男人影院色色网| 色婷婷社区| 天天综合网站| 婷婷九月丁香| 天天插天天日| 婷婷伊人綜合中文字幕| site:pnnrt.com| 国产亚洲精品久久久久久郑州| 色播五月综合网| 99ri精品| 亚洲乱码日产精品BD| 操逼五月婷婷| 久久 中文 日本| 五月天丁香综合| 欧美va精品va老师va| www.综合久久.com| 九九国产精视频| 婷婷玉月丁香五月在线视频| 四月婷婷丁香| 99噜噜| 国产成人网站在线观看| 97人人射| 午夜少妇在线观看视频| 激情电影五月婷婷| 日韩在线视频网站| 日本啪啪天堂| 五月人人丁香婷婷五月人人丁香| 五月婷婷开心丁香| 国产熟女一区二区三区五月婷| 色播五月婷婷| 亚洲欧美综合7777色亭亭| 亚洲色99综合天堂| 91超级碰在线视频| 婷婷在线操| 色色色色综合| 五月婷婷六月激情| 丁香五月桃花在线激情综合| 五月婷婷色影院| 青青五月天婷婷| 丁香五月婷婷色播艳门照| 人人干女人| 国产成人精品亚洲线观看| 婷五月天| 五月婷婷干干干| 激情色视频| 99啪啪视频| 日韩丁香涩| 99欧州偷拍视频| www.五月婷婷久久.com| 狠狠干在线| 婷婷综合五月| 亚洲在线视频321| 操人妻90p| 五月天成人综合| 五月天激情小说| 97人操| 成人小说 五月天 婷婷| 波多野结衣AV无码Porn| 性按摩玩人妻HD中文字幕| 亚洲AV无码影院| 五月的丁香六月的婷婷| 97性视频| 四色五月婷婷| 婷婷5月色| 五月综合激情网| 亚洲综合成人网| 丁香五月天婷婷91| 亚洲狠狠婷婷综合久久久| 少妇人妻人伦A片| 女人被躁到高潮嗷嗷叫小| 国产1区2区3区| 6080av| 婷婷午夜| 99.N在线视频| 丁香五月婷婷亚洲综合精品在线| 9久国产精品| 影音先锋男人AV资源站| 丁香五月天欧美成人| 婷婷五月激情六月| 亚洲V国产V欧美V久久久久久| 超碰网站在线观看| 大伊久久| 色区久久| 成人av中文字幕| 婷婷五月丁香基地| 免费视频WWW在线观看网站| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 91VIP在线观看| 婷婷色五月天第7色| 激情综合网五月丁香| 五月婷婷婷色| 色婷婷丁香AV综合| 五月天婷婷影院| 99热超碰天堂网| 战争与艾拉电影免费观看| 亚洲操操| 国产精品大香蕉| 99热资源在线| 久久丁香九| 婷婷丁香五月天在线| 天天色情站| 色狠狠激情五月| 激情综合五月| 日本久久人人| 97性视频| 91在线视频综合| 停停五月丁香| 国产三级在线播放| yazhou seshipin| 久色激情| 99开心五月五月丁香激情| 丁香五月AV| 日韩性爱无码| 婷婷丁香色五月| www久久久久久久久久久久久久久久久| www久久五月com| 日韩aaa| 操一区| 激情小说五月天| 成人av在线电影| 中文资源在线a | 六月婷婷香蕉| 日本99色| 超碰在线免费9| 久久久久婷| 色五月大| 婷婷无码五月天| 国产性爱色| 天天日,天天干,天天操| 日本操B片| 色色色色色网站| 99草在线免费观看视频| 五月婷av| Www.狠狠| 九九大香蕉黄色影院| 涩九九九九| 91成人电影| 9精品在线| www.色五月| 亚洲人成网亚洲欧洲无码久久| 人妻久久久久久久| 婷丁五月| 国产精产国品一二三在观看| 五月天色综合服务平台| 人妻丰满精品一区二区A片| 夜夜天天久久婷婷| 丁香五月大香蕉在线99| 精品无码99| 影音先锋91男人资源在线播放| 五月婷婷丁香俺日污视频| 日韩淑女人妻luan伦激情精品一区二| 天天色噜| 久热人妻| 激情五月综合网| 五月丁香网中文字幕| 2050人人操免费工开爱 | 激情婷婷五月综合| 婷婷五月天香蕉| 九月大香蕉| 人妻AV在线观看| 色色是色N一| 免费无码毛片一区二区A片| 天天爽综合| 婷婷色情五月| 丁香五月激情啪啪| 天天成人综合| 丁香婷婷五月天成人| 亭亭玉月丁香| 99热只有精品综合| 极品人妻VIDEOSSS人妻| 人人妻久久妻| 99热爱爱干干日| 99在线免费视频| 丁香婷婷十月| 99九九玖玖| 91碰碰碰| 久久婷婷综合五月趴| 夜夜爱伊人| 午夜一区| 成人狠狠成人狠狠成人狠狠成人狠狠 | 久久网站免费亚洲| 免看黄大片AA | 狠狠干综合网| 99综合久久| 亚洲天堂婷婷丁香| 婷婷五月在线观看| 4399在线观看免费高清电视剧| 婷婷婷狠狠| 99网99热| 色色永久| 日B日潘金莲BB| 久久天天天| 天天色综网| 在线中文亚洲| 激情伍月 欧美| 99re欧美精品| 成人欧美日韩| 激情综合网激情五月欧美| 欧美日韩成人在线网| 可以看的av| 五月丁香五月综合欧美| 激情综合婷婷五月| 色色婷婷婷丁香五月天| 99色在线视频| 日日杆天天| 99丁香五月婷| 久久成人亚洲欧美电影| 久久久网站| 五月婷婷啪啪啪啪| 视频综合网| 亭亭玉月丁香| 欧美性生交A片免费看| 天天爽夜爽| 五月婷婷六月丁香综合视频在线| 九九99在线视频| 激情综合五月| 日本久久人人| 色婷婷九月| 久久婷婷五月综合97色一本| 超碰丁香五月| 国产精品a无线| 99九无网码| 五月丁香无码| 日本的α片xxxwww| 五月天久草| 清纯唯美 激情四射| 九九这里有精品| 五月丁香久| 日本成人噜噜噜| 婷婷五月天综合色| 国产寻花在线| 丁香综合伊人| 丁香五月天啪啪| 91网站黄| 永久免费一区二区三区| 国产AV网页| 五月四色激情| 国产一级片色色| 激情六月婷婷| 成人在线视频网| www.minyis.com【JT】实力收量可预付QQ2101460746 | 天天狠狠色噜噜| 国产成人网址| 九热久| 日本A片一区| 亚洲精品第一色色色色色色| 五月丁香婷婷综合网| 日韩十国产极品久久| 思思99精品视频在线观看| 婷婷欧美综合| AV成人在线播放| 亚洲狠9| 粉嫩AV久久一区二区三区| 久综合网| 97碰碰在线看视频免费| 开心激情网五月天| 婷婷综合五月激情| 久久婷婷六月天| 91狠狠色| 九九亚洲综合| 久久综合婷婷五月| 五月天婷婷无码| www.91av.com| 亚洲色无码A片一区二区麻豆| 五月婷婷色播| 天天干 夜夜爽| 六月婷婷深深爱| 操久久网| 他改变了拜占庭| 欧美成人猛片AAAAAAA| 999热这里只有精品| 五月开心激情| 99热18| 国产精品A成V人在线播放| 少妇性BBB搡BBB爽爽爽视頻| 96精品成人无码A片观看金桔| 日本人妻伦在线中文字幕| 大陆极品少妇内射AAAAAA| 亚洲国产精品二二三三区| 一本色综合色| 操91综合网| 婷婷五月色花丁香社区| www久久久久| 五月天色色婷婷| 婷婷五月情| 丁香五月六月久久综合| 玖玖色资源站| 丁香欧美| 婷婷五月情| 成人婷婷| 泰州成人视频| 久久视频在线视频| 人人操人人妻| 九九av在线| 99自拍视频在线| 国内婷婷丁香社区在线播放| 99热骚货| 亚洲色视频| 婷婷五月天综合网| 国产免费一区二区在线A片视频| 国产婷婷色综合AV蜜臀AV| 婷婷五月天综合亚洲| 亚洲免费电影2| 婷婷六月激情| 日本美女天天日天天爽| 婷婷六月天亚州| 天天色视频| 婷婷丁香色五月| 国产成人精品一区二区三区视频| 色五月激情问网站| 五月综合丁香婷婷| 99丁香五月婷| 色五月丁香伊人| 91色涩| 亚洲中文字幕在线观看| 大香蕉福利导航| 丁香婷婷色色| 亚洲五月六丁香激情| 色欲AV导航| 色99网| 亚洲乱码日产精品BD| 天啪色| 五月婷婷另类| 婷婷丁香人妻久久在线观看| 色五月成人| 大香蕉久久| 丁香伊人五月色婷婷五十路| 久久久97| 丁香六月爱综合| 色婷婷偷拍| 久久视频在线视频| 综合色色综合| 久草久青福利| 亚洲综合99| 东京热免费视频| xxxx五月天色色| 97色色-99久久| 色五月婷婷激情| 五月天婷婷久久视频| www.99.色| 色九区| 成人五月天视频播放| 国产亚洲色婷婷久久99精品91| 超碰在线50| 色婷婷久久久| A久网| 99这里| 91综合视频在线| 成人羞羞啪啪 全 视频| 涩综合婷婷| 天天爽夜夜操| 色欧美影院| 热99久久这里只有精品| 欧美激情综合色综合啪啪五月| 欧美电影在线观看| 成人综合AV| www,五月天激情| 丁香五月天色婷婷| 人妻在线网站| 色天天综合色| www.超碰在线| www.九九婷婷| www.婷婷五月天啪啪| 久久丝袜婷婷| 182tv992tv人之初午夜免费观看| 大香网伊人久久综合| 婷婷六月丁香欧美视频在线| 婷婷精品| 狠狠色狠狠| 五月婷婷激情久久| 八戒青柠影视剧在线观看| 全高清无码视頻| 开心五月天激情网站| 97色婷婷| 婷婷九九| 天天干天天干天天干天天干天天干| 亚洲中文字幕在线观看| 五月丁香啪啪婷婷| 毛片色五月| 国产成人精品一区二区三区视频| 中美日韩成人在线| 狠狠干夜夜干| 欧美性爱丁香五月| 99精品色色| 久久激情网| 亚洲成人超碰| 激情丁香五月天图片| 99国产在线精品视频| 久久最新色色色| 国产9色在线/日韩| 久久人五月| 丁香婷婷激情网站| 亚洲愉拍99热成人精品| 丁香六月婷婷缴情欧美| 国产免费AV在线| www,色综合| 99热这里只有精品国产首页| 荫道BBWBBB高潮潮喷| 色色综合无码| 精品久热| 久久婷婷五月综合伊人| 色婷婷电影网| 五月丁香综合网| 欧美综合激情五月天| 亚洲国产精品VA在线看黑人| 色婷婷婷av| 丁香五月成人社区| 久久99婷婷| www.婷婷五月天| 97综合色片| 婷婷五月天综合AV| 色 五月 天 婷婷 丁香 九月| 婷婷五月丁香综合人妻| 亚洲激情四射色| 精品九九视频| 综合AV网| 开心五月色婷| 麻豆观看夏晴子| 巴基斯坦粉嫰无码视频| 最近中文字幕大全免费版在线| 婷婷五月综合婷婷| 伊人激情影院| 成人天天爽| 久久激情五月| 六月婷婷六月天天在线免费| 色99在线观看| 热99国产精品| 九九成人视频| 五月天五月色婷婷综合| 激情综合一| 亚洲欧洲色色| 99国产精品久久久久久久久久久| 人妻性爱| 精品国产乱码久久久久久免费| 玖玖色资源站| 99精品偷自拍| 开心五月婷婷激情网| se色婷婷视频| 五月网在线| 九九久久精品國產| www.9797国产| 91综合国免费久入| 五月丁香香蕉| 丁香六月av| 九九色婷婷五月天| 狠狠色噜噜| 日本专区久久| 天天搡日日搡aaaaⅩ| 五月丁香综合啪啪| 五月天社区| 婷婷五月丁香色情| 丁香五月激情五月色综合| 日韩成人av在线| 天天色天天日| 欧美天天五月丁香免费观看| 色色99| 五月丁花色综合网| 久久激情四射| 国产精品久久久海的味道| 狠狠色丁香婷婷久久综合| 97操操操| 思思热思在线精品视频| 五月天激情美女久久| 婷婷五月天高清无码| 国产日韩av片| 99热只有| 精品九九视频| 日韩成人综合| 婷婷五月亚洲综合| 婷婷五月亚洲激情| 婷婷99视频在线| 国产视频婷婷| www.zbzhongsen.com| 中文毛片无遮挡高潮免费| 乱色色色| 久大香蕉| 久久免费精彩视频| 丁香成人色情五月天| 日本久久人| 精品色色| 免费播放99性爱视频| 九九精彩久久| 91久久久久久| 久久人妻视步| 啪啪激情综合| 99在线精品免费视频| 久久一热| 欧美久热| 日本女色人人| 亚洲婷婷五月| 色色影院aaaav| 亚洲婷婷综合视频| 精品久久艹| 久久久久久丁香五月| aaa久久| 青草青草视频2免费观看| 99这里只有精品|v| 婷婷五月激情网站| 伊人久久丁香五月91| 国产免费一区二区三州老师F1F1| 99久久99热| 色色色色色五月| 五月天激情小说| 夜夜骑天天操| 色五月无码| 丁香五月婷婷亚洲另类| 99热精品在线| 色五月欧美| 日本在线免费中文com.| 亚洲人妻电影| 午夜天堂一区人妻| 丁香五月婷婷大香蕉| 五月综亚洲| 五月丁香六月成人| av中文网| 亚洲操逼网| 99热这里只有是亚洲国产| 在线播放成人网站| 91男人资源站| 五月丁香综合激情| 99re6久热只有精品6在线直播| 熟女乱论网| WWW,五月| 婷婷天堂伊人| 可以看的av| 涩涩五月天| 色婷婷五月天堂资源| 婷婷四色五月| 久草视频大香蕉99| 九九热最新| 大香蕉久久久久| 综合五月天完整| 欧洲亚洲免费视频9| 男人的天堂五月丁香| 五月婷婷影视| 99热97| 色色五月婷婷久久| 26uuu欧美激情另类| 色婷婷成人丁香| 99在线公开视频| 色色六月| 国产古装妇女野外A片| 玖玖综合色| 人妻久久久久久久 | 欧美三级黄色片久久| 91丨九色丨首页| 色五月婷婷在线| 婷婷丁香熟妇综合网| 色99网站| 久久这里有精品在线观看| 五月婷婷丁香深深爱| xxxx久| 亚洲五月天色色| 亚洲九九99精品视频在线播放| 久久性视频| 日韩婷婷| 玖玖午夜视频| 色 色 色综合com| 五月中旬婷婷丁香六| 二人电影免费版在线观看| 五月丁香啪啪啪综合网| 熟女啪啪视频| 91精品啪|