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

ARTICLE DETAIL

資訊詳情

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

STM32F407VE硬接W5500:HAL庫驅(qū)動移植與TCP通信實(shí)戰(zhàn)

STM32F407VE硬接W5500:HAL庫驅(qū)動移植與TCP通信實(shí)戰(zhàn) 簡介這是一份基于STM32F407VE的W5500以太網(wǎng)通信工程采用HAL庫并集成WIZnet最新驅(qū)動面向嵌入式開發(fā)者及物聯(lián)網(wǎng)、工業(yè)控制場景已配置好時(shí)鐘、GPIO、SPI、中斷與協(xié)議?;A(chǔ)可直接編譯運(yùn)行以驗(yàn)證TCP/UDP通信也可作為應(yīng)用起點(diǎn)。壓縮包共206個(gè)文件、約8.22MB以66個(gè)頭文件與46個(gè)C源文件為主體涵蓋uvprojx/uvoptx工程配置、ioc圖形化設(shè)置、hex/axf固件、sct鏈接腳本及清理編譯中間文件的bat腳本目錄按Hardware、Internet、W5500、Sys等模塊劃分并含utility.c/h工具函數(shù)與board_config.h硬件定義。另有README說明、License授權(quán)、CMSIS與RTE組件管理及JLink調(diào)試配置已有40人學(xué)習(xí)適合需快速搭建W5500應(yīng)用、減少驅(qū)動移植與工程配置成本的開發(fā)者。1. 用STM32F407VE硬接W5500到底比其他方案省在哪如果你正在做一個(gè)需要聯(lián)網(wǎng)上報(bào)數(shù)據(jù)的設(shè)備比如工業(yè)采集器、智能網(wǎng)關(guān)或者遠(yuǎn)程控制板手里又恰好選中了STM32F407VE那么以太網(wǎng)通信大概率會在兩條路線之間糾結(jié)用LwIP軟件協(xié)議棧還是用W5500這種硬件協(xié)議棧芯片。F407VE本身不帶PHY要用內(nèi)部MAC就得外掛PHY芯片再配LwIP光回調(diào)、信號量、內(nèi)存池就能折騰掉一大半開發(fā)周期而W5500把TCP/IP協(xié)議棧做進(jìn)了芯片內(nèi)部MCU端只需要通過HAL庫配一路SPI和幾個(gè)GPIO協(xié)議棧的收發(fā)、重傳、分片全交給硬件去干。這篇筆記講的就是這條落地路線用HAL庫把W5500官方最新驅(qū)動跑在F407VE上從接線、CubeMX配置到驅(qū)動移植和TCP收發(fā)再到那些最容易翻車的現(xiàn)場一次講清楚。適合手里有F407VE開發(fā)板或自繪板、想快速把以太網(wǎng)跑進(jìn)量產(chǎn)節(jié)奏的工程師。2. W5500和STM32F407VE的連接方式與CubeMX配置SPI、復(fù)位、中斷三個(gè)關(guān)鍵點(diǎn)W5500對外接口很干凈一路SPI從機(jī)、一個(gè)片選、一個(gè)復(fù)位、一個(gè)中斷輸出。真正決定通信能不能穩(wěn)定的就這三組信號。這一章先講物理接線再講CubeMX里SPI1、復(fù)位腳和外部中斷的配置每一步都會說清楚為什么這么設(shè)。2.1 引腳連接表五個(gè)信號一個(gè)都不能錯(cuò)常見做法是讓W(xué)5500掛在SPI1上因?yàn)镾PI1掛在APB2上時(shí)鐘源最高能到84MHz配置后實(shí)際SPI時(shí)鐘還有上限后續(xù)如果想把SPI時(shí)鐘提上去SPI1的裕量比SPI2和SPI3都大。下面這張表是我常用的一組引腳分配W5500信號W5500引腳STM32F407VE引腳說明SCLKSCLKPA5 (SPI1_SCK)SPI時(shí)鐘空閑低電平MOSIMOSIPA7 (SPI1_MOSI)主機(jī)輸出接W5500的MOSIMISOMISOPA6 (SPI1_MISO)主機(jī)輸入接W5500的MISOSCSSCSnPA4片選低有效軟件控制RSTNRSTnPB0復(fù)位低有效普通推挽輸出INTNINTnPA0中斷輸出低有效下降沿觸發(fā)接線時(shí)有個(gè)容易忽略的點(diǎn)W5500的供電和IO電平都是3.3VF407VE的IO雖然部分引腳兼容5V但既然都是3.3V系統(tǒng)不要偷懶把W5500模塊插到5V供電的轉(zhuǎn)換座上。模塊上如果自帶電平轉(zhuǎn)換另說裸芯片或最小系統(tǒng)板必須統(tǒng)一3.3V。另外SCSn和INTn這兩個(gè)腳在W5500內(nèi)部都有上拉但這不意味著可以不接。SCSn必須由MCU明確控制INTn必須進(jìn)MCU的外部中斷否則驅(qū)動狀態(tài)更新只能靠輪詢實(shí)時(shí)性和CPU占用都吃虧。2.2 CubeMX里SPI1配置模式0、10MHz以內(nèi)、軟件片選在CubeMX里選擇STM32F407VE后先把SPI1打開Mode設(shè)為Full-Duplex MasterNSS信號設(shè)為Disable片選完全交給普通GPIO控制。W5500的SPI時(shí)序支持模式0和模式3工程里絕大多數(shù)例程用模式0也就是CPOL0、CPHA0。如果配置成模式1或模式2讀出來的寄存器大概率是0xFF后面排查時(shí)會非常迷惑。SPI時(shí)鐘先別急著拉滿。W5500手冊上給的SCLK上限在不同參考資料里說法不一致保險(xiǎn)的做法是先設(shè)到10MHz以內(nèi)跑通功能再一點(diǎn)點(diǎn)往上探。CubeMX里SPI1的波特率預(yù)設(shè)為10.5MHz84MHz除以8分頻這個(gè)值作為起步很合適。參數(shù)表如下配置項(xiàng)取值說明ModeFull-Duplex Master全雙工主機(jī)NSSDisable軟件控制片選Data Size8 BitsW5500寄存器都是8位寬First BitMSB First與W5500幀格式一致CPOLHighNo設(shè)Low空閑時(shí)鐘為低CPHA1 Edge模式0第一個(gè)邊沿采樣Baud Rate84MHz / 8 10.5MHz調(diào)通后再提速有個(gè)隱藏坑點(diǎn)CubeMX生成代碼后SPI的片選引腳雖然在圖形界面里掛到了PA4但如果你勾選了硬件NSSSPI外設(shè)會在傳輸過程中自動拉低NSS造成和軟件片選打架。最好把PA4配成普通推挽輸出初始化代碼里默認(rèn)輸出高電平片選的拉低和抬升全部在驅(qū)動移植層手動完成。2.3 復(fù)位與中斷引腳的初始化上電時(shí)序和EXTI優(yōu)先級PB0作為復(fù)位輸出腳CubeMX里配成GPIO_Output默認(rèn)輸出高電平。W5500在上電后需要一次完整的復(fù)位脈沖拉低、保持、拉高、等待穩(wěn)定。很多人只拉低幾微秒就釋放結(jié)果芯片還沒完成內(nèi)部初始化后續(xù)讀寄存器全失敗。我一般拉低不少于1ms拉高后延時(shí)100ms再訪問寄存器雖然手冊上給的復(fù)位時(shí)間沒有這么夸張但工程上多等一點(diǎn)換穩(wěn)定性是劃算的。PA0作為外部中斷輸入CubeMX里配成GPIO_EXTI0觸發(fā)方式選Falling Edge因?yàn)閃5500的INTn是低有效輸出有中斷事件時(shí)拉低。外部中斷的優(yōu)先級要根據(jù)你的系統(tǒng)來定常見做法是比SysTick低、比主循環(huán)邏輯高在NVIC里設(shè)搶占優(yōu)先級為5、子優(yōu)先級為0這類中段數(shù)值避免中斷里做的輕量處理影響關(guān)鍵實(shí)時(shí)任務(wù)。外部中斷回調(diào)里應(yīng)當(dāng)只置標(biāo)志位和處理狀態(tài)記錄不要直接在中斷里操作SPI。原因很直接HAL庫的SPI收發(fā)是阻塞式的如果主循環(huán)同時(shí)也在操作SPI總線中斷和主循環(huán)會穿插訪問W5500輕則數(shù)據(jù)錯(cuò)位重則卡死。真要在中斷里清W5500事件標(biāo)志也必須通過下面要講的臨界區(qū)保護(hù)來做。3. 移植W5500官方最新驅(qū)動把VFS層接到HAL庫SPI驅(qū)動移植是這條路線里最核心的一步。W5500官方驅(qū)動歷史上幾經(jīng)改版但移植思路一直沒變芯片驅(qū)動層負(fù)責(zé)拼地址幀和控制字節(jié)底層IO函數(shù)需要你按實(shí)際MCU去實(shí)現(xiàn)。HAL庫環(huán)境下這些IO函數(shù)就是包一層HAL_SPI_TransmitReceive再配合片選和臨界區(qū)回調(diào)。3.1 驅(qū)動文件怎么拷、接口層要補(bǔ)什么從官方驅(qū)動庫里拷貝文件時(shí)核心是Ethernet目錄下的那組源文件wizchip適配層、W5500芯片驅(qū)動層和socket接口層。這三個(gè)部分是一套完整的依賴關(guān)系少一個(gè)都編譯不過所以直接整個(gè)目錄拷進(jìn)工程再按需保留其他內(nèi)容。socket接口層之上還有Internet目錄里面是DNS、DHCP這些上層應(yīng)用協(xié)議。手頭工程如果只需要靜態(tài)IP直連先不拷這些減少干擾項(xiàng)。等以太網(wǎng)通信跑通后再按需加入DHCP??酵旰笠a(bǔ)的就是底層移植文件通常命名為w5500_port.c之類。它需要向驅(qū)動注冊三樣?xùn)|西片選控制函數(shù)、SPI單字節(jié)讀寫函數(shù)、臨界區(qū)進(jìn)入退出函數(shù)。新版驅(qū)動通過注冊回調(diào)的方式掛接老版本則直接改寫底層宏定義具體接口名因版本而異但要做的事情就這三件。3.2 移植層代碼片選、SPI收發(fā)、臨界區(qū)三個(gè)回調(diào)下面這段是移植層的核心邏輯對應(yīng)W5500芯片對SPI時(shí)序的全部要求/* 片選低有效 */ static void w5500_cs_select(void) { HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET); } static void w5500_cs_deselect(void) { HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET); } /* 單字節(jié)讀寫SPI是全雙工收和發(fā)要同時(shí)進(jìn)行 */ static uint8_t w5500_spi_readbyte(void) { uint8_t tx 0xFF; uint8_t rx 0; HAL_SPI_TransmitReceive(hspi1, tx, rx, 1, HAL_MAX_DELAY); return rx; } static void w5500_spi_writebyte(uint8_t data) { uint8_t rx 0; HAL_SPI_TransmitReceive(hspi1, data, rx, 1, HAL_MAX_DELAY); } /* 臨界區(qū)保護(hù)裸機(jī)環(huán)境可以簡單關(guān)中斷 */ static void w5500_cris_enter(void) { __disable_irq(); } static void w5500_cris_exit(void) { __enable_irq(); } /* 注冊到驅(qū)動 */ void w5500_port_init(void) { reg_wizchip_cs_cbfunc(w5500_cs_select, w5500_cs_deselect); reg_wizchip_cris_cbfunc(w5500_cris_enter, w5500_cris_exit); reg_wizchip_spi_cbfunc(w5500_spi_readbyte, w5500_spi_writebyte); }注意這里用的是HAL_SPI_TransmitReceive而不是分開的Transmit或Receive原因是SPI本質(zhì)上是移位交換主機(jī)發(fā)送一個(gè)字節(jié)的同時(shí)必然收到一個(gè)字節(jié)。如果用HAL_SPI_Receive去收數(shù)據(jù)主機(jī)端依然要產(chǎn)生時(shí)鐘雖然HAL庫能生成時(shí)鐘但多一層封裝不如直接用收發(fā)一體清晰。片選函數(shù)里沒有做延時(shí)。有些工程師擔(dān)心CS拉低后W5500還沒準(zhǔn)備好于是在select和第一個(gè)字節(jié)之間插入微秒級延時(shí)這是多余的。只要SPI時(shí)鐘頻率不過高CS拉低到采樣之間由SPI硬件時(shí)序保證足夠。真遇到數(shù)據(jù)錯(cuò)位先去查SPI模式而不是亂加延時(shí)。臨界區(qū)在裸機(jī)環(huán)境直接關(guān)中斷即可。如果跑RTOS這里應(yīng)該換成互斥量或調(diào)度鎖否則中斷回調(diào)里操作wizchip相關(guān)寄存器時(shí)會發(fā)生上下文競爭。3.3 驅(qū)動初始化順序先復(fù)位芯片再校驗(yàn)版本和網(wǎng)關(guān)拷完驅(qū)動、寫完移植層接下來是初始化順序。這個(gè)順序錯(cuò)一步都會讓后續(xù)操作表現(xiàn)得很詭異尤其是先初始化網(wǎng)絡(luò)參數(shù)再復(fù)位芯片的做法會把W5500內(nèi)部寄存器清掉調(diào)試時(shí)以為是代碼問題其實(shí)是順序問題。uint8_t ver 0; /* 1. 硬件復(fù)位W5500 */ HAL_GPIO_WritePin(RST_GPIO_Port, RST_Pin, GPIO_PIN_RESET); HAL_Delay(10); HAL_GPIO_WritePin(RST_GPIO_Port, RST_Pin, GPIO_PIN_SET); HAL_Delay(100); /* 2. 注冊IO回調(diào) */ w5500_port_init(); /* 3. 讀取版本寄存器確認(rèn)SPI鏈路已通 */ if (ctlwizchip(CW_GET_VERSION, ver) ! 0) { /* 讀版本失敗多半是SPI或復(fù)位問題 */ } if (ver ! 0x04) { /* W5500版本號固定為0x04讀到別的值說明鏈路不對 */ } /* 4. 初始化wizchip內(nèi)部狀態(tài) */ ctlwizchip(CW_INIT_WIZCHIP); /* 5. 配置網(wǎng)絡(luò)參數(shù)靜態(tài)IP起步 */ wiz_NetInfo netinfo { .mac {0x02, 0x00, 0x00, 0x00, 0x00, 0x01}, .ip {192, 168, 1, 20}, .sn {255, 255, 255, 0}, .gw {192, 168, 1, 1}, .dns {192, 168, 1, 1}, .dhcp 0, }; ctlwizchip(CW_SET_NETINFO, netinfo);版本寄存器讀到0x04這一步是整個(gè)移植的分水嶺。如果這一步能通過說明SPI時(shí)序、片選、復(fù)位都正常后面的socket操作都是在調(diào)參數(shù)如果這一步讀不出來先別急著查業(yè)務(wù)代碼回去對著第5章的避坑清單查物理層和配置層。DHCP在第一步調(diào)通時(shí)不建議開因?yàn)檗k公室里不一定每臺路由器都有DHCP服務(wù)或者DHCP響應(yīng)慢會干擾你判斷到底是驅(qū)動問題還是網(wǎng)絡(luò)環(huán)境問題。靜態(tài)IP直連同網(wǎng)段PC是最干凈的最小驗(yàn)證環(huán)境。4. 跑通第一路TCP客戶端、服務(wù)器最小代碼與狀態(tài)機(jī)驅(qū)動初始化完成后W5500相當(dāng)于一個(gè)具備完整TCP/IP能力的網(wǎng)絡(luò)設(shè)備剩下的工作就是在8個(gè)socket上執(zhí)行open、connect、listen、send、recv。這一章分別寫出TCP客戶端和TCP服務(wù)器的標(biāo)準(zhǔn)流程再講清中斷狀態(tài)機(jī)怎么處理和主循環(huán)配合。4.1 TCP客戶端連接服務(wù)器并收發(fā)數(shù)據(jù)先看看客戶端側(cè)的最小代碼。假設(shè)目標(biāo)服務(wù)器是192.168.1.100:8080本地端口用6000uint8_t sn 0; int8_t ret; /* 分配socket0的收發(fā)緩沖區(qū)每個(gè)2KB */ setSn_RXBUF(sn, 0x02); setSn_TXBUF(sn, 0x02); /* 打開socket指定TCP協(xié)議和本地端口 */ ret socket(sn, Sn_MR_TCP, 6000, 0); if (ret ! sn) { /* socket分配失敗可能是sn已被占用 */ } /* 連接服務(wù)器 */ uint8_t server_ip[4] {192, 168, 1, 100}; uint16_t server_port 8080; ret connect(sn, server_ip, server_port); if (ret ! SOCK_OK) { /* 連接失敗檢查服務(wù)器是否可達(dá)、端口是否開放 */ } /* 連接成功后進(jìn)入主循環(huán) */ while (1) { uint16_t len getSn_RX_RSR(sn); if (len 0) { uint8_t buf[1460]; int16_t rlen recv(sn, buf, len sizeof(buf) ? sizeof(buf) : len); if (rlen 0) { /* 收多少回多少做回顯測試 */ send(sn, buf, rlen); } } /* 主循環(huán)里還要定期檢查連接狀態(tài)見4.3節(jié) */ }setSn_RXBUF(sn, 0x02)里的0x02表示2KBW5500每個(gè)socket的發(fā)送和接收緩沖可獨(dú)立設(shè)置為1KB到16KB總共加起來32KB。調(diào)大收發(fā)緩沖能提升吞吐但會擠占其他socket的空間。8個(gè)socket全部使用默認(rèn)2KB配置在簡單場景下完全夠用。recv函數(shù)返回的是實(shí)際接收字節(jié)數(shù)如果返回值是個(gè)負(fù)數(shù)去查錯(cuò)誤碼定義常見的是SOCK_BUSY意思是socket正在忙需要稍后重試。newdriver里有拿返回值當(dāng)長度用的坑記得先判斷正負(fù)再處理緩沖區(qū)。4.2 TCP服務(wù)器監(jiān)聽端口并處理新連接服務(wù)器側(cè)流程差異不大只是把connect換成listen然后查狀態(tài)寄存器確認(rèn)是否進(jìn)入監(jiān)聽uint8_t sn 0; setSn_RXBUF(sn, 0x04); setSn_TXBUF(sn, 0x04); if (socket(sn, Sn_MR_TCP, 6000, 0) ! sn) { /* socket打開失敗 */ } listen(sn); if (getSn_SR(sn) ! SOCK_LISTEN) { /* 沒有進(jìn)入監(jiān)聽狀態(tài)檢查波特率和socket狀態(tài) */ } while (1) { /* 有客戶端連上來時(shí)Sn_SR變成SOCK_ESTABLISHED */ if (getSn_SR(sn) SOCK_ESTABLISHED) { uint16_t len getSn_RX_RSR(sn); if (len 0) { /* 與客戶端收發(fā)數(shù)據(jù) */ } } }W5500在服務(wù)器模式下沒有顯式的accept函數(shù)??蛻舳诉B接建立后Sn_SR自動從SOCK_LISTEN變成SOCK_ESTABLISHED同時(shí)產(chǎn)生Sn_IR_CON中斷。應(yīng)用層只需要持續(xù)查詢狀態(tài)或者依賴中斷事件來感知新連接。有個(gè)邊界要提前知道W5500每個(gè)socket在監(jiān)聽模式下同一時(shí)刻只能接受一個(gè)TCP連接。第二個(gè)客戶端連上來時(shí)W5500不會主動處理表現(xiàn)為連接不上或超時(shí)。需要多連接時(shí)要么一個(gè)socket只服務(wù)一路客戶端要么改用多socket監(jiān)聽不同端口這個(gè)坑在第5章還會細(xì)說。4.3 中斷處理SIR/Sn_IR按位解析輪到誰就服務(wù)誰W5500的中斷源分兩級全局中斷寄存器SIR指示哪個(gè)socket有事件Sn_IR指示具體是什么事件。外部中斷回調(diào)里做的事件解析如下void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin INT_Pin) { uint8_t sir getSIR(); for (uint8_t i 0; i 8; i) { if (sir (1 i)) { uint8_t ir getSn_IR(i); if (ir Sn_IR_CON) { g_event[i] | EVT_CONNECT; } if (ir Sn_IR_RECV) { g_event[i] | EVT_RECV; } if (ir Sn_IR_DISCON) { g_event[i] | EVT_DISCON; } setSn_IR(i, ir); /* 寫1清除讀到的ir原樣寫回 */ } } setSIR(sir); } }中斷回調(diào)里只置應(yīng)用層的g_event標(biāo)志不直接調(diào)用recv或send。主循環(huán)檢測到標(biāo)志后再去操作socket這樣避免SPI總線并發(fā)訪問。同時(shí)也能保證中斷處理的時(shí)間非常短不會拖累系統(tǒng)實(shí)時(shí)性。很多新手的疑問是初始化時(shí)INT引腳已經(jīng)觸發(fā)了大量的中斷事件主循環(huán)還沒來得及處理flags會不會重復(fù)累積W5500的中斷標(biāo)志寄存器是邊沿型事件讀后如果不清除就會一直保持如果清了就不會重觸發(fā)。這里的關(guān)鍵是主循環(huán)處理完數(shù)據(jù)后再去清一次Sn_IR。如果主循環(huán)還沒處理完就把中斷清了事件就丟了如果處理完不清下次中斷不會再觸發(fā)。常見做法是中斷回調(diào)里清一次主循環(huán)里處理完業(yè)務(wù)后再主動讀一次狀態(tài)寄存器確認(rèn)沒有新的pending。5. W5500移植最容易翻車的5個(gè)現(xiàn)場現(xiàn)象、原因、解決這一章是拿真金白銀換來的經(jīng)驗(yàn)。以下5個(gè)問題在論壇和實(shí)際項(xiàng)目里反復(fù)出現(xiàn)每條都按現(xiàn)象、原因、解決的順序拆開講排查時(shí)可以直接對號入座。5.1 讀版本寄存器返回0xFFSPI模式或時(shí)鐘先查讀VERSIONR寄存器一直得到0xFF是最常見的首發(fā)癥狀。出現(xiàn)這個(gè)現(xiàn)象時(shí)程序往往已經(jīng)正確配置了SPI、也注冊了回調(diào)但就是讀不到芯片的應(yīng)答。原因分三類一是SPI模式配錯(cuò)W5500要求模式0或模式3不少人用了模式2CPOL1、CPHA0數(shù)據(jù)在錯(cuò)誤的邊沿被采樣二是片選控制失效CS引腳沒用軟件GPIO控制、而是被SPI硬件NSS接管導(dǎo)致CS時(shí)序錯(cuò)亂三是SPI時(shí)鐘過快超出W5500的實(shí)際承受范圍尤其在長走線或模塊供電不穩(wěn)時(shí)更容易出錯(cuò)。解決方法是先降速排查。把SPI波特率降到2MHz左右確認(rèn)模式為CPOL0、CPHA0片選用普通GPIO拉低不放再讀版本寄存器。如果還是0xFF用示波器抓SCLK和CS的時(shí)序看CS是否在傳輸期間穩(wěn)定拉低、SCLk是否有毛刺。這一步能排除九成的問題。5.2 復(fù)位后立刻訪問寄存器不成功復(fù)位時(shí)序不夠現(xiàn)象是代碼流程看著完全正常但第一次讀版本寄存器失敗復(fù)位一次后又能成功或者上電后必須手動按一下復(fù)位鍵才能通信。原因是W5500內(nèi)部在復(fù)位釋放后需要時(shí)間完成自檢和PHY初始化。復(fù)位拉低時(shí)間太短、釋放后等待時(shí)間不足芯片還沒準(zhǔn)備好就訪問寄存器自然會失敗。解決方法是拉低RSTn至少10ms釋放后延時(shí)100ms再執(zhí)行任何SPI訪問。如果板子上W5500的電源濾波電容偏大上電時(shí)間會更長延時(shí)要相應(yīng)加大。這個(gè)延時(shí)只出現(xiàn)在初始化階段不影響運(yùn)行時(shí)的響應(yīng)速度。5.3 中斷標(biāo)志清不掉讀到的ir原樣寫回不是寫0現(xiàn)象是調(diào)試時(shí)發(fā)現(xiàn)中斷回調(diào)反復(fù)被觸發(fā)即使在回調(diào)里執(zhí)行了setSn_IR(sn, 0)中斷依然不斷進(jìn)來仿佛永遠(yuǎn)清不掉。原因W5500的中斷標(biāo)志寄存器是寫1清除W1C機(jī)制。寫0沒有任何效果只有把對應(yīng)位寫1才會清除該中斷標(biāo)志。很多從其他芯片轉(zhuǎn)過來的工程師習(xí)慣寫0清標(biāo)志在W5500這里就失效了。解決方法是把讀出來的ir值原樣寫回setSn_IR(i, ir);比如讀到的ir是0x04Sn_IR_RECV就寫回0x04。如果想清除多個(gè)事件把要清除的位按位或起來再寫。全局中斷SIR寄存器同樣是寫1清除不要寫0。5.4 TCP服務(wù)器只能接一個(gè)連接W5500硬件就這么設(shè)計(jì)現(xiàn)象開發(fā)板上跑著TCP server第一個(gè)手機(jī)或PC連上來收發(fā)正常第二個(gè)設(shè)備再連接時(shí)一直連不上抓包發(fā)現(xiàn)服務(wù)端完全沒有響應(yīng)。原因W5500的每個(gè)socket在同一時(shí)刻只維護(hù)一個(gè)TCP連接。監(jiān)聽狀態(tài)下一旦有客戶端連入Sn_SR就從SOCK_LISTEN變成SOCK_ESTABLISHED芯片不會再處理新的SYN包。這是硬件TCP/IP協(xié)議棧的邊界不是代碼bug。解決辦法分兩種一是產(chǎn)品本身只需要單連接比如一臺設(shè)備對一臺配置終端那就接受這個(gè)限制在文檔里寫清楚二是需要多連接就在同一端口開放多個(gè)socket輪詢監(jiān)聽或者改走UDP。注意同一個(gè)端口號和不同socket綁定是可行的多個(gè)socket都執(zhí)行l(wèi)isten同一端口由硬件負(fù)載均衡但實(shí)現(xiàn)復(fù)雜度會上升一般場景不如直接換UDP或加一層應(yīng)用層轉(zhuǎn)發(fā)。5.5 收發(fā)一段時(shí)間后丟包接收緩沖被讀慢或緩沖區(qū)分配不合理現(xiàn)象TCP通信剛連上時(shí)收發(fā)都正常持續(xù)跑幾分鐘后開始丟包或者吞吐量驟降重啟后又恢復(fù)過陣子再犯。原因W5500的接收緩沖區(qū)是共享的如果某個(gè)socket的接收緩沖太小應(yīng)用層讀取不及時(shí)硬件FIFO滿了之后新的數(shù)據(jù)包會被直接丟棄。TCP協(xié)議棧不會無限制地重傳超過重傳次數(shù)后連接就會被斷開。解決方法是先從軟件上保證recv的調(diào)度頻率。中斷置位后主循環(huán)要盡快讀取數(shù)據(jù)不要在recv之前插入大延時(shí)。再把接收緩沖區(qū)調(diào)大比如setSn_RXBUF(sn, 0x08)設(shè)為8KB同時(shí)觀察getSn_RX_RSR的返回值是否持續(xù)增長。如果增長到接近緩沖區(qū)上限后掉回0說明發(fā)生了溢出丟包。還有一種隱蔽情況recv的len參數(shù)直接用了getSn_RX_RSR的返回值而這個(gè)返回值可能大于你定義的buf長度導(dǎo)致緩沖區(qū)溢出。標(biāo)準(zhǔn)寫法是取RSR和buf容量的較小值防止棧被寫穿。6. 收尾技巧用UDP回顯拉通全鏈路再談SPI提速TCP鏈路調(diào)通后我習(xí)慣再用一個(gè)UDP回顯做交叉驗(yàn)證因?yàn)閁DP無連接、無重傳能直接暴露最底層的收發(fā)路徑是否完整。如果UDP回顯都穩(wěn)定那么TCP出現(xiàn)問題時(shí)就可以把嫌疑范圍縮小到驅(qū)動參數(shù)或網(wǎng)絡(luò)環(huán)境而不是SPI物理鏈路。6.1 一個(gè)UDP socket測通整條收發(fā)路徑UDP不需要connect和listen打開socket后直接收發(fā)uint8_t sn 1; socket(sn, Sn_MR_UDP, 9000, 0); uint8_t buf[1460]; while (1) { uint16_t len getSn_RX_RSR(sn); if (len 0) { uint8_t peer_ip[4]; uint16_t peer_port; int16_t rlen recvfrom(sn, buf, len, peer_ip, peer_port); if (rlen 0) { sendto(sn, buf, rlen, peer_ip, peer_port); } } }用PC上的網(wǎng)絡(luò)調(diào)試助手向板子的IP:9000發(fā)一串?dāng)?shù)據(jù)板子原樣回傳能連續(xù)跑幾百個(gè)包不丟說明SPI鏈路、W5500緩沖管理、中斷機(jī)制都正常。UDP測試的另一個(gè)價(jià)值是排除TCP狀態(tài)機(jī)干擾——如果UDP正常而TCP異常問題多半出在socket狀態(tài)轉(zhuǎn)換或網(wǎng)絡(luò)參數(shù)上而不是底層硬件。6.2 提高SPI時(shí)鐘的驗(yàn)證方法和判斷標(biāo)準(zhǔn)鏈路穩(wěn)定后可以試著提速SPI。每次在CubeMX里把波特率上調(diào)一檔比如從10.5MHz提到16MHz、21MHz重新編譯燒錄然后跑一遍UDP回顯壓力測試。判斷標(biāo)準(zhǔn)是連續(xù)跑10分鐘不出現(xiàn)0xFF、不丟包、中斷響應(yīng)正常。提速度有個(gè)前置條件檢查PCB走線。如果W5500模塊是通過杜邦線連到開發(fā)板的線長超過10cm高速SPI會因反射和串?dāng)_變得非常不可靠此時(shí)強(qiáng)行提速屬于玄學(xué)調(diào)參。自繪板上W5500的SCLK走線要做等長處理盡量短遠(yuǎn)離晶振和電感。提速后如果出現(xiàn)偶發(fā)丟包先別急著降速試著在片選函數(shù)里加一個(gè)SPI速率相關(guān)的空操作延時(shí)。雖然我之前說不要亂加延時(shí)但在高SPI頻率下CS拉低后立即產(chǎn)生第一個(gè)時(shí)鐘邊沿如果W5500從機(jī)還需要一點(diǎn)建立時(shí)間加一個(gè)極短的__NOP()可能有幫助。這個(gè)要根據(jù)示波器實(shí)測決定不要盲調(diào)。以我自己的經(jīng)驗(yàn)SPI時(shí)鐘穩(wěn)定運(yùn)行在16MHz左右是一個(gè)甜點(diǎn)區(qū)功耗不高且CPU占用率遠(yuǎn)低于純軟件協(xié)議棧。超過21MHz后收益衰減明顯排查成本和硬件要求反而直線上升。所以日常做的產(chǎn)品我一般鎖死在16MHz省下的時(shí)間拿去完善應(yīng)用協(xié)議更值得。最后說一個(gè)習(xí)慣W5500工程做完后我會把讀版本寄存器、連接服務(wù)器、UDP回顯這三個(gè)節(jié)點(diǎn)用串口打日志輸出每個(gè)節(jié)點(diǎn)一個(gè)固定前綴比如[W5500][VER]、[W5500][TCP]。每次燒錄新板卡不用接調(diào)試器光看串口就知道問題出在物理層、驅(qū)動層還是網(wǎng)絡(luò)層。這個(gè)習(xí)慣幫我省掉了大量反復(fù)插拔調(diào)試器的時(shí)間希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 人人摸人人添人人操| 综合久久婷婷| 欧美人妻制服| 超碰久久草| 欧美人人曰人人操人人射射| 日韩资源网| 亚洲国产av中文字幕久久| 97色插| 欧美人妖内射| 91美女视频在线免费观看| 精品欧美老熟女一二区| 人妻酒店出差被中出免费在线播放| 日韩性爱小视频| 亚洲图片 欧美电影| 日韩在线观看字幕精品| 97人人操人人摸人人爱| 泰国AV在线观看| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲精品视频在线播放| 青青草在线成人视频| 美骚妇av高清在线| 久操凹凸视频| 久久久久久久国产视频| 乱伦Av网| 国产视频大全| 亚洲诱惑天堂| 亚欧视频在线| 18禁看网站一区| 免费操逼视频下载| 国产原创精品| 色狠狠 - 百度| 啊啊啊啊啊啊好湿好爽视频| 偷拍三区| 五月婷婷综合激情| 97精品97| 国产99999| 2020久久免费视频| 久久久久久免费电影| 红杏大香蕉| 久久精品性| 久久精品日韩| 亚洲天堂少妇| 欧美少妇色图| 五月天精品| 国产亚洲99久久精品| 久久久久久十| 精品久久久久av影院| 98一区二区精品| 亚洲成成熟女人综合一区二区| 欧美日韩222| 亚洲一区二区三区不卡国产欧美| 91在线观看,天天综合| 亚洲91网站| 国产久久久久久| 欧美专区17页| 五月大香蕉| 午夜黄色免费在线观看| A男人的天堂| 国产极品999| 国产麻豆一区二三区| 久久亚洲色图中文字幕| 人妻美腿丝袜日韩| 91国产大片| 激情终合网| 欧美精品一二三| 国产午夜精品一区二区三区牛牛| 亚洲加勒比久久日本道| 高清无码 国产精品| 国产白领连续中出在线播放| 超碰九九| 久久午夜色播影院免费高清| 国产精品一区av在线| 天天日天天射天天干| 五月天色色色| 国产情侣自拍在线播放| 立川理惠加勒比无码| 91AV天美在线视频| 国内亚洲高清无码| 九九九只有精品| 久久久久久网址| 伊人女女资源在线观看| AV99热18这里只有精品| 夜夜操夜夜高潮夜夜爽国产精品区| 色色毛片| 天天干人妻| 花野真衣| 亚洲欧洲偷拍一区| 夜夜操美女| 台欧久久精品视频| 青青操在线亚洲视频观看欧美在线 | 亚洲一区二区 麻豆传媒| 亚洲日韩在线a不卡99精品| 综合伊人激情| 秋霞怕怕片| 少妇啪啪自拍| 国产成人无码网站在线视频| 欧美 综合 亚洲| 91大胆欧美| 亚洲精品视频在线播放| 神马久久啊啊| 日产欧美电影一区二区三区| 中国黄色特级精品一区二区三区片| 揉揉揉夜夜| 强奸乱伦中文字幕AV| 9久久9综合| 97操97色| 欧美久久九九| juliaann欧美丝袜办公室| 夜夜高潮夜夜爽夜夜爱爱一区| av操操不卡| 在线A日本| 二三四区精品| 97色涩| 人妻在线中出视频| 亚洲日韩AV视色| 天天综合网站| 一区二区乱码福利| 国内自拍 日韩激情 99| 欧洲综合视频| 欧美亚洲中文| 91国产精品在线看| 综合亚洲网| 飘花国产午夜精品不卡| 大香蕉免| A一区片| 婷婷色婷婷| 91丝袜熟女| 丝袜加勒比| 国产极品美女高潮无套在线观看| 欧美日动态视频| 狠狠婷婷亚洲中文综合久久| 黄色性爱网网| julia ann久久| 亚洲夜色在线| 色五月69夫妻| 日韩极品无码B| 久久99草| 人人艹亚洲| WWW4虎| 96一区二区| 91Chinese在线| 试看60秒 爽| 97欧美色| 亚州综| 开心五月天激情网| 在线观看A啊啊啊| 网友自拍第1页| 96超碰网| 色哟哟的毛片| 人人操人人色人人摸| 欧美综合骚| 欧美成人一级麻豆| 啪啪视频mP4| 亚州欧美色图| 夜草欧美| 亚洲色五月| 久久久久久久| 欧美激情片一区二区| 国产精品成人久久一区二区三区| 亚洲欧美在线综合| 深夜激情无码| 欧美小说区视频区| 久久av色| 天天摸天天插天天日| 午夜操一视频一区| 黄网色一区二区三区四区精品| 久久风骚城市| 亚洲αv一区二区三区| 91丨人妻丨国产丨丝袜| 日本欧美不卡| 欧美另类综合久久| 精品亚洲黄色片 国产精品导航一区二区| 美女被啪到深处抽搐视频| 加勒比无码一区二区三区| 国产精品直播在线观看直播| 嗯嗯啊中文字幕| 久久久极品| 欧美亚男人的天堂| 五月丁香久久| 午夜理论片在线观看免费| 欧美日韩中文字幕人妻| 久热在线精品免费观看| 色99色| 天天色,天天干,天天干| 精品人妻一区二区三区四区石在线| 免费超碰97久久| 日本青青草在线| 极品白嫩美女白浆成人福利在线看| 美女被啪到深处抽搐视频| 精品女同一区| 国产性爱欧美性爱在线| 久久夜夜夜夜| 亚洲日韩av一区二区三区百合| 国产熟女精品一区二区| 久久久久久9| 一区e区三| 日韩亚洲97| 偷拍在线观看视频| 日本男人插女人的逼黄色| 亚洲欧洲另类| 精品视频久久久久九九九九9999| 欧美成人一级免费电影| 噜噜噜在线视频| 熟女熟妇一区二区三区视频| 欧美熟女逼久久久久久| 制服丝袜第二页| 熟妇人妻一区二区| 日夜久久久九九九久| 亚洲另类天堂| av东京热男人的天堂| 亚洲欧洲av影音| 另类TS人妖一区二区三区| 精品久9| 91GD.COM| 久久久久久电影| 在线观看 99热| 国产精品分类在线观看| 国产在线视频午夜精华在| 欧美亚洲韩国视频十五区| 亚洲一二三精品久久网 | 国产精品亚洲免费| 日本乱人伦片中文三区| 国产福利在线视频网站| 婷婷九月色| 九九av| 久久精品国产AV一区二区三区| 日韩精品9区| 久久男人网| 国内毛片无码一级毛片| 天天综合精品| 六月婷婷综合| 秋霞色色影院| 综合自拍| 国产精品禁久久久精品| 日本伦理一区二区| 天天天乱色综合全| 国产精品69人妻无码久久久| 东京热一区二区三区四区五区六区| 久思思热视频在线观看| 秋霞福利网| 青娱乐老司机视频| 强奸乱伦日韩AV| 日本欧美中文字幕| 日本不卡高清视频| 色久综合| 99久久久久| 人妻啊啊人妻啊| 爱干爱射网啊啊啊| 国产91丝袜在线播放蜜月| 久久免费精彩视频| 青青草啪啪网| 97资源站日韩| 日韩av不卡在线看| 超碰久久性爱| 日韩精品熟妇| 激情看片网站| 色色色综合网| 熟女精品一区二区在线观看| 天天综合网~91| 久久男人精品| 91狠狠综合久久久久久| 青草伊人久久| 超碰在线1234区| 美女啊啊啊啊啊啊| 久久亚洲精品成人av| 欧美亚洲| 屌妞视频久久久久久久| 91春色| 女人高潮大叫一级毛片| 精品国产乱码久久久兰草影视| 日韩本不卡视频在线观看 | 顶级丝袜熟女一区二区三区 | 婷婷精品| 啊啊啊啊,啊啊好多水 | 久久久久久久亚洲Av无码| 超碰免费在线| 欧美日韩妖精91com| 日本精品一级二级三级| 午夜大香蕉| 久草线上视频免费看| 成人三一级一片aaa| 色色香蕉| 激情综合色| 91社区伊人| 色婷婷99| 午夜福利精品| 中文字幕日韩人妻视频一区二区三区交换夫妻| 天天日天天干少妇日| 一区二区娱乐网站| 丝袜天堂网| 91综合无码| 92午夜免费福利视频| 亚洲AV不卡在线观看尤物| 熟女探花啪啪| 日韩性爱小视频在线观看| 久久久穴999| 69av一区二区三区| 91性感网站| 久久精品人妻一区二区三区| 成人三级片无码| 性色高清..……| 日本国产欧美高清在线| 色偷偷综合91久久噜噜| 女人被添高潮免费视频| 亚洲高清综合网| 一区二区三区在线资源| 伦理第一页| 超碰超碰95| 二对二中文字幕。| 男人高清无码一区二区| 97操碰| 亚欧Av| 超碰综合97在线| 九九无码视频| 久久久久亚洲一区女同性恋中文字幕| 操B视频日韩无码| 欧美97视频| 全球成人中文在线| 久久精品电影| 啊啊啊com| 99re免费视频精品全部| 精品无码一区二区人妻久久蜜桃| 欧美日韩啪啪电影| 超碰伊人在线| 色噜噜综合在线| 亚洲国产综合久久天堂| 午夜超碰| 东京热不卡视频| 大香蕉人妻| 亚洲熟妇一,二,三期| 夜夜爽爽夜夜精品视频| 97在线精品| 无码少妇精品一区二区60岁老人| 大香蕉中文| 国产丰满少妇久久久精品影院| 国产97视频| 亚洲精品欧洲精品| 五月天激情网站| 大学生口爆吞精| 蜜臀久久久久久999| 国模91| 91色婷婷综合久久中文字幕二区| 色五月综合| 精品96久久| 日本道人妻久久久在线不卡色视频| 五月丁香六月激情综合| 国产日韩欧美操逼视频| 欧美一区二区情色| 在线 制服丝袜中出 人妻| 91av一区二区在线观看| 美性中文综合网| 国产亚洲精品自在线亚洲情侣| 91av熟女人妻| 人妻铁牛TV| 国产AV人人夜夜澡人人爽麻豆| 国产农村妇女一区二区| 香蕉久久国产AV一区二区| 影音先锋新男人| 97亚洲精品超碰| 亚洲高清男人天堂| 9精品久久| 红桃视频高潮| 久久精品人人做人人看| 狠日欧美| 91丝袜视频在线观看| 碰人碰碰人人开房人肉| 欧色性第一页| 国产 日韩 另类 视频一区爱| 欧美极品美女aaaaaa级黄片| 97超碰美女| 亚洲国产福利视频| 最新9久久久9免费视频| 91总综合网| 久久国产精品91| 狠狠久久亚洲欧美专区| 91美女丝袜诱惑视频| 久久久九九网站| 很很热性爱视频| 九九九偷拍| 亚洲中文字幕一区| 亚洲乱熟女一区二区| 日本中文字幕一区| 欧美极品少妇| 九九九久| 97视频播放| 啊啊啊啊啊操我视频| AV天天在线观看| 免费成人在线观看91| 国产白领连续中出在线观看| 日本一区二区不卡| 久久久久元码视频| 国产91精品在线免费| 无码人妻丰满熟妇奶水区毛片| 国产这里只有精品| 日本免费一区二| 无色无码| 可以免费观看的av| 超碰性爱97| 伊人aaa| 任我爽在线视频免费观看| 丝袜视频网国产90| 2019天天干| 内射夫妻三片| 国产精品岛国片在线观看| 精品黑人一区二区| 久久综合18p| 色欲人妻一区二区在线| 欧美黄色手机在线观看| 亚洲色图尤物视频| 丁香五月自拍| 久都青青视频| 亚洲性少妇| 欧美激情一| 亚洲天堂2020| 国产69精品久久久久99尤物| 欧美日韩*字幕一区| 逼操网站| 99热超碰| 无色无码| 欧美人人AAA| 国内毛片婷婷六月色| 日韩情色AV| 久操视频免费在线观看| 欧美日本久久精品一区 | 国产午夜在线观看视频| 九九热超碰97亚洲最新香蕉| 99热18| 色欲av国内精品久久久久久| 激情久久久| 东京热av男人的天堂| 欧美日韩不卡传媒| 五月婷婷AV| 人人爱人人乐人人操| 啪啪啪精品| 日本高清一区二区在线| ss久久| 韩国嫰模上门援交视频| 亚洲影院365| 亚洲啪啪性视频| 爱欲AV| 日本熟妇人妻一区二区三区| 18禁精品网站在线看| 久久久新亚洲AV| 人妻乱仑一区二区三区| 欧美熟妇操操视频| 久久綜合很很很| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 中文一区二区三区影院| 成人午夜无码视频| 亚洲自拍青操视频| 免费的黄片有限公司| 久jiu久神马影院| 骚妻少妇精品性色无码四色A V| 久久免费99精品久久久久久| 夜夜操老骚逼视频网站| 亚洲高清欧美总合| 91九色网| 欧美亚洲系列| 欧美极品少妇| 一区二区免费电影久久| 在线毛片片免费观看| 亚洲图片偷拍视频区| 另类av天堂| 国产偷拍网站| 老女人日韩美91| 91少妇人妻| 色五月婷婷中文字幕| 亚州欧美综合| 国产 v乱码一区二| 91麻豆天美国产欧美高潮| 蜜乳性色无码专日粉嫩骚逼AV| 色眯眯射| 国产网红精品| 蜜臀无码一区二区| 在线强奷到舒服的无码视频| 久草老司机| 精品毛片久久久精品毛片| 中国的操老妇女| 亚乱色| 91N综合网在线| 中国一区二区亚洲人妻| 2020中文字幕在线| 偷拍视频青青草在线视频| 欧美精品999| 美女性91| 97在线视频免费观看| 国产精品一区二区a| 一区二区三区男女操逼黄色小电影| 精品免费视频国产一区| 久日91在线| 免费啪啪一级视频| 国产免费内射视频| 91久热| 2019男人的天堂| 久热大香蕉| 人人妻人人澡人人爽久久av| 日韩AV中文字幕电影| 日韩中文字幕人妻视频| 亚洲欧美日韩电影网站一区| 91色婷婷综合久久中文字幕二区| 天天射天天操天天干天天吃2018| a在线视频免费观看| 无码日韩网站| 午夜精品探花| 91丝袜美腿网站| 日韩丰满熟妇| 大香蕉淫人网| 一起草欧美| 天天操综合网| 青青青在线高清视频在线一二三四区| 97操| 色噜噜狠狠色综无码久久合欧美| 欧美日韩狠狠爱| 爱射综合| 精品国产乱码久久久影院| 婷婷综合激情| 亚洲国产一级精品毛一级精品看免费视频 | 一道α片欧美| 五月天婷婷成人网| 老熟女综合| 色婷五月天| 老汉网| 78m啪啪啪| 国产粉嫩蜜臀av一区二区三区| 影音先锋乱伦资源| 国际精品久久久| 白丝AV网站| 成年人三级黄色片视频| 天天看天天日天天操| 日韩美女高潮喷水视频| 天天操女人| 天天射夜夜骑| 一区麻豆 高清中文字幕| 日本成人免费一区二区三区| 欧美96在线|欧| 青青草女人天天干| 开心五月激情网| 色牛牛AV| 日韩欧美中文字亚洲慕| 东京热一区二区中文字幕| 丁香五月天堂网| 天操老女人| 欧亚日韩综合精品国产| 国产福利小视频高清在线观看| 中文字幕高清精品一区| 综合网色| 91扒丝袜综合在线| 97超碰精品成| 亚洲天堂一区| 天天激情综合站| 99热91| 亚洲午夜av| 国产三级中文字幕粉嫩| 99爱爱| 伊人欧美大香蕉视频| 国产精品午夜高潮呻吟久久av| 午夜天堂啪啪| 在现视频女上位好爽| 98人妻精品一区二区色欲 | 婷婷激情综合网| 丁香五月天久久精品视频一区二区三区| 久久久久亚洲熟妇熟女| 97视频在线| 亚州国产成人精品女人久久| 歐美性天天| 久久久穴999| 日本天堂网| 91丝袜在线观看视频在线观看| 殴美性色a级欧美| 中文字幕啊啊啊在线观看视频| 99热官网| 久久久精品国产亚洲伊人| 欧美色图亚洲激情| 中文字幕版| 久久综合精品一区二区三区| 综合自拍| 亚洲AV永久无码一区仙野| 免费岛国一级片| 国产免费永久精品无码| av资源在线播放天堂| 人妻丝袜肏逼| 国产乱不卡| 熟女丰满人妻一区| 精品亚洲国产成人精品| 大香蕉视频一二三区| 精品美女久久久久| 性吧在线视频| 色噜噜狠狠色综无码久久合欧美| 精品国产污一区二区三区| 中文字幕一区二区免费在线| 亚洲欧美精品一区天堂久久| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 亚洲欧洲色情高清| 在线视频日韩欧美国产| 国产 日韩,欧美 自拍| 91大神精品长腿在线观看网站| 天天综合网视频91| 欧美天天拍| 操香逼| 久久精品72| 超碰碰小说97| 无码 黑人一区二区三区| 桃色六月天| 久久风骚城市人| 国产又长又大又粗的视频| 精品久久視頻在线| 青青青草原| 午夜精品久久久| 亚洲天堂中文字| 色五月婷婷五月天| 91久久堂| 天天肏天天干| 五月丁香社区婷婷日韩欧美精品影院 | 欧美性巨大╳╳╳╳╳高跟鞋| 五月综合视频| 日本久久精品| 国产日韩人人| 久久男人的天堂| 日本一区二区成人在线| 中美日韩毛片| 国产97视频| 盗摄女人妻在线| 99爱久久视频频| 91青青| 色狠狠 - 百度| 嗯嗯啊啊操死我| 欧美色91| 国产无码一二三区| 久久久99999久网站| 精品视频一区二区| av中文在线| 少妇丝袜在线观看AV| 日韩熟女操逼| 色月天AV导航| 看全色黄大色大片免费视频| 激情丁香五月| 欧美色图另类图片| 色综合九九| 久久久国产护士丝袜美腿一| 日韩成人精品视频自拍| 嫩草影院永久在线制服丝袜| 影音先锋日本乱伦| 91日日| 午夜啪| 蜜桃久久久久久久| 日本精品一级二级三级| 久悠悠av| 91精品无码久久久久久久| 亚洲综合春色| 搡老女人老91妇女老熟女| 9九九九九视频在线观看| 日本男人天堂| 内射日韩大臀美女| 视频一区二区免费在线| 情色av电影| 久综合国内精品自在自线| 884t在线| 狠狠中文字幕| 欧美精品,四区。五区| 成人性爱美曰韩| 激情另类激情| 久久久久免费少妇| av影片在线观看不卡| 欧美性色综合网| 国产一级高跟丝袜| 久久原创中文| 开心激情婷婷| 亚洲阿v天堂在线| 亚洲狼狼干综合1| 五月婷婷六月丁香网址| 少妇激情AV| 人人操AV| 国产第12页| 97欧美色综合| 日本 欧美 亚中文字幕| 欧美日韩国产成人高清| 夜夜操一区二区| 99久久婷婷| 亚洲AV成人精品网站在AV| 精品九九九九九九九九九| 天天干人妇| 97操| 蜜臀在线看片| 99热97| 少妇3P性爱自拍| 97中文字幕九区| 国产AV天美| 99热只有这里有精品| 亚洲 国产 精品一区| 色69大色97香蕉| 天天影视色香色欲| 国产成人亚洲精品无码古代早漏男| 91综合天天看| 91色图片| 97色婷婷| 国产女人极品高潮毛片| 91人妻少妇| 龙兴卡官方查询| 一二三区在线| 永久免费发布性爱网| 97天堂| 韩国毛片一区二区三区| 厕所偷拍在线| 十八禁视频网站| 亚洲日本激情| 91亚洲情色| 啊啊啊轻点在线观看| 国产有码一区| 婷婷尹人大香蕉免费| 亚洲av综合色| 亚洲欧美高清无码| 午夜精品久久久久久久第一页按摩| 亚洲AV不卡在线观看尤物| 亚洲激情网一二三四区| 操逼视频免费日韩无码| 99亚洲精品| 国产精品操| 骚妻少妇精品性色无码四色A V| 青青草十区九区爱夜| 日韩熟妇二区| 四色永久成人网站| 日韩午夜精品一区二区三区电影| 伊人网青青| 91青青草| 天天射日日干| 超碰美女97| 天天干夜夜鈤| 伊人9| 亚洲男人天堂2| 亚洲综合射| 老鸭窝黄色视频网站| 4141514逼喷水三级片| 黄色AV影视| 亚洲天堂综合AV| 亚洲色久| 色婷婷丁香五月天| 99热99在线| 色噜噜综合网| 国产无马av| 女人被添高潮免费视频| 国产情侣自拍在线播放| 欧美极度丰满熟妇hd| 黑人精品成人一区二区三区 | 久久超碰久| 青青草操逼逼视频| 国产玖玖| 乱日视频| 麻豆福利视频导航| 99www.bibizy香蕉资源国产一区二区三区高清 | 欧美日不卡| 国产人妻精品久久久一区二区三区| 久久99综合| 亚洲婷婷五月天| 艹我哪美一区无码| 久久久蜜桃一区二区三区| 天天综合网~69| 女人天堂AV五区在线| 国内精品不卡无毒99999| 久草精品热视| 午夜天堂精品久久| 18岁禁 茉莉成人久久| 青青草成人视频在线观看二区 | 成人5码视频| 手机看av网站在线看| 久久久久婷婷| 午夜天天碰综合视频| 好吊色一区| 精品美女久久一二三| 一区二区三区在线日韩影院观看| 99精品九九九九九九| 老鸭窝成人免费毛片视频| 超清中文乱码字幕| 亚洲伊人a线观看视频| 久久久久久国产手机AV| 人人操AV| 欧美亚洲一区二区久久久婷精品大包诱| 亚洲一区二区 麻豆传媒| 夫妻AV网站| 91天天| 国产AV激情无码久久无码| 欧美综合在线91| 青青久日| 精品无码一区二区三区| 一区三区啪啪| 色爱综合网欧美| 日韩毛片9| 日韩性爱一级片| 日韩性爱再线视频| 日韩97视频!在线| 职场同事知名国产国产精品久久欧美日韩| 啊啊啊好大好深| 亚洲,日韩,欧美,成人播放 | 97就爱干| 日韩性爱小视频| 亚洲超碰AV| 久久手机视直播| 无码人妻毛片丰满熟妇精品区| 风月影院十八禁| 人妻aa| 97se综合网| 久久有码视频| 久久国产乱子伦精品免费女人| 色婷婷综合网| 99国内熟女露脸视频| 日本不卡二区| 五月婷婷基地| 天天操天天看| 在线观看亚洲成人精品| 亚洲综合另类| 久久精品国产97欧美精品亚洲 | 91精片| 先锋色眉乱伦资源| 91 手机在线播放 绯色| 啊啊啊 在线| 麻花传媒免费网站在线观看| 国产性感骚丝袜在线| 日比av无码| 亚洲图片偷拍视频区| 日韩美女高潮喷水视频| 1769国内精品视频| 婷婷国产精品九区| 色97干| 亚洲宗合网| 人妻一区二区三区视频 | 色色99| 干婷婷综合网| 99国内精品| 91久久18禁| 天天舔天天日天天射| 99蜜桃臀久久久欧美精品网站| 亚洲大色堂| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | ai欧美亚洲小说| 91原创在线观看| 91一区二区三区蜜桃| 91久久| 伊人麻豆传媒| 夜夜操夜夜高潮夜夜爽国产精品区| 激情小说亚洲图片| 国产午夜在线观看| 亚洲欧洲av影音| 日韩精品在线视频,日韩精品……| 大香蕉欧美伊| 99精品在线观看| 欧美精品第3页| 97中文天堂| 国内精品不卡无毒99999| 日韩99神马视频播放片在线播放| 啊啊啊 在线观看| 天天看片麻豆| 久热精品在线| 国产在线视频二区| 欧美日韩亚洲五月天婷婷| 欧美暴力猛交| 色综合大香蕉| 国产美女自拍AV| 欧美大香蕉同搞| 日韩精品9999| 97超碰中文在线| 久久直播国产| 日本黄色裸日本黄色裸体 | 9丨亚洲一区二区在线| 婷婷五月综合在线| 亚洲色悠悠久久88| 亚洲不卡三级手机播放| 日韩女模中文造逼| 日本999精品| 中文字幕第9页萱萱影音先锋| www狠狠| 男人的天堂com| 久久久国产亚洲精品系列| 久久內射| 亚洲无码精品AV久久久| 91在线综合网| 久久久中文| 韩国女主播青草福利视频| 九t超碰| 国产一区在线免费播放| 精国久久一区二区三区98| 日韩中文字幕国产| 亚洲男人天堂网久久| 色综合加勒比| 欧美一二三区四五区| 91色狼| 亚洲情色第一页| 在线看污网站| 精品久热| 极品一区二区三区免费| 国产强奸超碰AV| 亚洲影视第一页| 亚洲日韩电影| 97干在线| 久久久国产护士丝袜美腿一| 久草免费福利在线播放| 中文字幕精品亚洲熟女| 操逼操网| 好爽视频在线观看视频 | 五月天日日操夜夜操| 久操热线| 高清无码在线播放网站| 日影院久久婷婷夜夜网| 91社操逼| 色综合大香蕉| 嗯嗯嗯嗯啊啊啊好紧好大| 91黑丝在线| 麻豆AV短剧| 青青草伊人久久| 色好看av| 玖玖久久久| 人乳av| 亚洲在高跟鞋自慰久久在色线| 欧美熟爽综合| 97色干| 无码最新| 国产精品干干干| 国产精品女aA片爽爽视频| 97丝袜亚洲在线播放| 丁香六月激情综合| 一牛影视成人片免费| 91老女人| 91精品国产91久久青草| 99re这里只有精品2| 91 国产丝袜在线播放-百度| 日本免费不卡二区| 伊人色综合网电影| 久久久久久中文版| 91色拍| 秋霞欧美性爰视频| 亚洲综合性感在线| 国产尤物在线三区| 91久久18禁| 99九九久久| 欧美精品91| 久久久禁| 五月天AV资源| 青娱乐大香蕉| 亚洲国产精品久久久久婷婷青年| 亚洲 日本 一 二 三| 亚洲成人免费中文字幕| 测评在线观看AV| 91激情综合| 日日摸日日碰| 午夜后入| 久久 久久国内精品亚洲| 春色91| 家庭乱伦国产| 色青青久久影视| 伊人色综合超碰| 日韩高清一二三| 亚州欧美在线| 亚洲av综合色区图片亚洲| 精品久| 国产精品人妻无码久久久互動交流 | 中文字幕在线观看第二页| 人妻少妇视频在线播放| 国产99 中文字幕日韩小视频| 白丝1区2区3区| 久久78| 九九Av| 国产精品3| 久久久九九网站| 日本熟女不卡视频| 亚洲久热| 欧美大战久久久伊人| 91色插| 日韩免费在线视频观看| 91啪啪| 国产地址二三| a片久久久久久久久久久久 | 粉嫩国产精品久久粉嫩| 天天综合AV| 黄色不卡视频| 精品人妻一区二区三区蜜桃视频| 97在线观| 亚川综合视频| 超碰99在线观看| 国产精品 午夜福利| 国产第11页| 3P丝袜熟女 色综合| 操国产逼| 成年人一级黄色毛片大全在线观看| 91超级碰碰| 台湾大香蕉99热| 久射吧| 婷婷伊人五月| 日韩黄色成人性爱| 天色综合网| 婷婷10月天青娱乐| 2019精品国产无码成人| 久久亚洲av成人无码国产| 91偷拍欧美亚洲| 欧美色蜜桃97| 手机在线中文字幕国产| 天美精品原创av片国产| 91国产大片| 中文字幕精品一区二区精| 九色 蝌蚪 熟女自| 丁香五月天久久精品视频一区二区三区| 熟妇乱伦一区二区| 偷拍欧美综合| 精品久久久久黄少妇| 大香蕉伊人色偷偷在线| 另类一区| 免费αV在线视频| 日韩成年人性爱视频| 操少妇很爽av| 99久久精品欧美国产| 亚洲素人综合| 电影69乱码96| 熟妇乱伦一区二区| 精品久久久久久久久久久久| 蜜乳Av成人片网站| 999久久久国产精品| 亚洲天堂自拍| 操B在线观看| 一级日本牲交大片好爽在线看| 97精品久久久久久久| 国精精品无码一二三区水多多| 蜜臀久久99精品久久久久电影| 欧美色图天堂在线| 97人人模人人爽人人| 婷婷久久综合久| 亚洲综合有玛| 久久受www免费人成| 久久五十路熟女人妻| 黑人综合色| 插老姨肥穴| 麻豆久久久久久久久丝袜| 人人操,操人人| 精品免费囯产一区二区三区| 日韩精品午夜操呦呦不卡影院| 囯产操逼片| 五月情色天| 啊啊啊啊啊好大好舒服想要| 九九国产| 中文字幕av亚洲在线| 黄色片,com| 91日韩| 青草影院内射高潮| 看看日B真人视频| 少妇激情一区二区三区视频| 亚州色站 日韩电影| 久久久久ab| 亚洲中文字幕乱码无码一区二区 | 麻豆天美传媒毛片| 欧美人人天天网| 上床不卡网站| 国产天天看| 99这里有精品视频| 求求你操操我| 久久九九99| 性爱久久| 久久超碰av在线| 蜜臀99久| 久操热线| 狠狠躁日日躁夜夜躁A| 少妇三p| 国产精品无码AV网站| 亚洲三级网址久久最新| 精品国产AV一区天美传媒| 久久久99999久网站| 黄视频免费| 色欲久久99精品久久| 日韩人妻精品| 亚洲另类色综合网站| 9999亚洲精品| 中文字幕乱亚洲美女精品一区| 97爱爱官网| 美日韩一二三区| 日韩资源网| 91丨精品丨国产丨丝袜| 久久妇| 91精品91久久久久77777| 校园春色AV天堂| 操逼操逼操| 欧美伊人久久综合网| 性爱视频久久| 精品视频一区二区| 亚洲天天操| 怡春院久久| 涩涩这里只有精品视频| 美女刺激久久国产欧美| 91天天综合网,天天综合网| 超碰午夜| 亚洲色棕合| 99e久久国产精品| 久热9| 操一操摸一摸| 久久系列| 婷婷五月天成人| 91少妇通奸网站| 九热超碰| 天天日骚逼熟女| 人人玩人人添人人澡免费| JULIA人妻风俗店中出电影| 激情久久日韩精品中文字幕麻豆| 亚洲综合网91| 天天精品| 97在线公开视频| 久久久草成人网站久久久草成人久久久草久久久 | 凹凸视频在线观看伊人| 日日干夜夜干| 丝袜足交视频| 天天干美少妇一区| 蜜臀va69| 久久99久久99久久99人受| 天天舔日美女视频| 超碰亚洲欧美日韩无| 最新三级网址| 男人的天堂日韩| 老外又粗又长一晚做五次| 久久9 9 9精品| 男女啊啊啊| 欧美性爱一区| 乱论91| 超碰人妻中文在线| 欧美一区二区三区互相| 91 丝袜在线| 人妻日日干| 啊啊啊啊啊啊好多水| 91九色首页| 在线观看亚洲成人精品| 1二区9| 啪啪啪综合网| 亚洲日韩美女中文字幕乱| 伊人9| 亚洲图片欧美91N| 国产日韩在线播放av| 日本一线产区和二线产区伦理片| 老色69| 日韩精品在线观看网站| 亚洲av综合伊人久久| 好涩综合| 91天射| 日本有码久久| 国产精品亚洲高清在线| 91美女国产在线| 秋霞男人网| 老熟女熟妇| 激情小说五月天| 欧美日韩大黄片| 精品无av| 亚洲在钱| 青青三级视频| 欧美久久毛片基地| 亚洲精品三| 欧亚性爱在线视频| 久久啊啊| 热热色中文无码| 青青在线视频免费| 96久久久久| 男女91| 97视频网站在线观看| 伊人影院中文字幕| 精品超碰国产| 99这里有精品| 最新AVzaixian| 成人网欧美风情| 四虎免费在线播放|