啪啪色网-啪啪网页-啪啪网站免费-啪啪网址大全-黄免费网站-黄免费视频


上海皕科電子有限公司

Shanghai Bitconn Electronic Co.,Ltd.

公司介紹
上海皕科電子有限公司是一家專業的芯片代理商和方案提供商??偛吭O在上海,是一家專業為中國電子企業提供單片機,無線RF,以太網IC及外圍器件、開發工具和相關應用解決方案的高新技術企業。公司的主要代理品牌有Digi、Wiznet、Xinnova,以及華虹MCU等。
  公司擁有優秀的銷售團隊和專業的研發部門,不但在品牌、價格、供貨、服務等方面領先業界,而且可為客戶提供及時、可行的技術支持和整體設計服務,滿足不同客戶多層次需求。

W5500問題集錦(二)

發表時間:2015/03/13 00:00:00  瀏覽次數:7857  
字體大小: 【小】 【中】 【大】

W5500問題集錦(二)

2014/11/11 | Filed under: W5500問題集錦and tagged with: W5500問題247 Views 

W5500自去年9月推出,已經有一年的時間。一年間,不乏很多客戶紛紛將目光投向了W5500這顆性價比很高的全新硬件TCP/IP以太網芯片,無論是在工控、安防、交通,還是在智能醫療、智能家居等眾多領域中,得到了廣泛應用及認可。同時,也收到了很多客戶在使用過程中的問題反饋,比如W5500中斷問題、切換端口問題,及W5500做服務器,多端口連接等常見問題。這些,我們都一一幫助大家分析,一同解決!那么,為了提高技術支持效率,也特此將這些問題再次整理給大家,以供分享!期待能有所幫助!

1.

W5500作為服務器時,如何獲取來自連接方的IP地址及端口

問題描述:w5500作為服務器時,如何獲取來自連接方的IP地址及端口?我怎么沒有找到寄存器呢

讀DIPR 和SIPR都不對,

是不是沒有查詢方法呀?

UDP和TCP模式我都試過了,整了一天也沒找出明堂來,如果實在不行,只能依靠,誰來連接W5500,誰就在DATA區自報家門了,但這樣做感覺有點不是很爽,按說是可以獲取到來自連接方的IP地址及端口的

比如W5500接在網絡上,要對它進行搜索和設置,那么就要UDP廣播包,目前可以收到廣播包,但量回應的包,去對方收不到,只能懷疑是目標地址和端口沒有更新在dipr寄存器了,請支招兒,謝謝!!

答1:TCP Server模式下,在連接建立后,由硬件更新目標IP和端口值。

答2:收到信息的前面6個字節即為對方IP地址和端口號。

答3:TCP Server 模式下,可以讀取Sn_DIPR和Sn_DPORT來確定連接方的IP及端口。這個是可以,你可以打印這個地址里的信息來查看。

W5500 As TCP Server

原帖來自:9MCU

2.

W5500一個獨立端口作為Server模式可以支持多少個客戶端連接

問題描述1:W5500一個獨立端口端口作為TCP Server模式打開一個端口,此端口已經映射到外網,現在可能有多個客戶端連接過來,可以支持多少個客戶端連接?經測試,只能支持一個連接,連接上一個客戶端后,后連的客戶端根本連接不上;而采用ENC28J60采用uip協議時,利用TCP方式監聽端口,是可以支持客戶端多連接的。不知w5500內部的硬件協議棧能否支持作為server,多個客戶端連接過來?

答1:可以這樣用,但是要把5500的Socket都設置成TCP Server,然后端口都一致。這樣就可以有8個客戶連接進來了。

問題描述2:就是說,每個獨立端口實際上對應的是一個連接,最多只能有8個連接,對吧?

答2:是的

答3:按照你初始化第一個Socket 0為TCP Server的方式,將其他Socket 1~7 配置成參數一致的TCP Server即可

原帖來自:9MCU

3.

W5500無法清中斷

問題描述:這幾天一直在調試W5500,MCU用的是STM32F205,

可以正常的收發,非中斷方式。

現在改用中斷模式,無法清除中斷。

用戶手冊上寫,Sn_IR,清除需對應位寫1。但此寄存器為只讀寄存器,每次對此寄存器進行寫操作都會導致看門狗復位。

有沒有人遇到類似情況,求教

注:UDP方式

答:問題已解決,是回環測試后又產生了SEND_OK中斷,最終因超時引起看門狗復位。

屏蔽發送中斷后一切正常。

原帖來自:9MCU

4.

問一下:無論是通用寄存器中斷IR還是socket中斷寄存器SN_IR中斷的清除都是我們使用MCU對該寄存器進行手動寫0XFF么?謝謝哦。期待回信。。。

問題描述:W5500的中斷是不是可以理解成二級中斷?首先判斷是不是通用寄存器IR的中斷,如果不是然后判斷中斷是不是來自SN_IR。如果來自SN那么進行檢測SN的中斷觸發。。檢測到中斷之后,需要手動的向產生中斷的IR寄存器寫入0XFF進行中斷的清除?

請問是這種思路么?

答1:請看看 W5500中斷寄存器的理解

http://www.9mcu.com/9mcubbs/foru … ead&tid=1062343

答2:首先,可以類似的說成是二級中斷,通用寄存器的中斷和Socket中斷的細分不同。

其次,清中斷就是往對應位上寫1。

原帖來自:9MCU

5.

W5500中斷寄存器的理解

W5500中斷寄存器的理解

W5500中文手冊V1.0 寫的不夠清楚,該文是本人結合中英文手冊及自己理解,整理出有關中斷部分的理解,如有不正確的請指正。

一:引腳 INTn 為中斷輸出(Interrupt output)

低電平:W5500的中斷生效;

高電平:無中斷或者處于中斷生效等待中

二:中斷相關寄存器

2.1 IR (連接中斷寄存器) [R/W] [0x0015] [0x00]

該寄存器主要指示網絡連接錯誤或喚醒引起當的中斷。

某位為1 且 該位中斷沒有被屏蔽就可以引發中斷,INTn引腳將會被拉低,中斷處理完畢后,可以由主機寫為‘1’清除該位中斷. IR 為‘0×00’時,INTn引腳將會被拉高。

2.2 IMR (連接中斷屏蔽寄存器) [R/W][0x0016][0x00]

中斷屏蔽寄存器(IMR)是用來屏蔽中IR中斷的,某位寫‘1’,則開啟中斷;寫‘0’,關閉中斷。

每個中斷屏蔽位對應中斷寄存器(IR)中的一個位. 如果IMR某位寫0,即使IR中對應位為1了,也不會引發中斷,INTn引腳不會被拉低。

2.3 SIR ( Socket 中斷寄存器) [R/W] [0x0017] [0x00]

SIR就是指示哪個Socket發生的中斷的。

如果某個Socket發生的中斷,該寄存器的對應位將被置為1 ,直到被主機置‘1’清除。如果Sn_IR不等于‘0×00’, 就會引發中斷,INTn引腳將被拉低。

2.4 SIMR (Socket 中斷屏蔽寄存器) [R/W] [0x0018] [0x00]

SIMR寄存器來屏蔽中SIR中斷的,某位寫‘1’,則開啟中斷;寫‘0’,關閉中斷。

每個中斷屏蔽位對應中斷寄存器(SIR)中的一個位. 如果SIMR某位寫0,即使IR中對應位為‘1’了,也不會引發中斷,INTn引腳不會被拉低。

2.5 Sn_IR (Socket n 中斷寄存器) [R] [0x0002] [0x00]

Sn_IR 寄存器用于提供給Socket n 中斷類型信息,如建立(Establishment)、終止(Termination)、接收數據(Receiving data)和超時(Timeout)。當觸發一個中斷即Sn_IMR的對應位是’1′的時候,Sn_IR的對應位也將會變成‘1’。

如果想把Sn_IR位清零的話,主機應該將該位置‘1’

這里的[R],而不是[R/W] 表示不能由主機寫‘1’讓W5500產生中斷,只能由主機設置‘1’ ,清除某一位中斷。

2.6 Sn_IMR (Socket n 中斷屏蔽寄存器) [R/W] [0x002C] [0xFF]

Sn_IMR 負責屏蔽Socket n的中斷。某位寫‘1’,則開啟中斷;寫‘0’,屏閉中斷。

每一位都對應了Sn_IR寄存器的相應位。Socket n的中斷觸發并且Sn_IMR的對應位為‘1’時,Sn_IR的對應位變為‘1’。如果Sn_IMR和Sn_IR的對應位均為‘1’且SIR 寄存器的相應為‘1’,INTn 引腳便會拉低并使主機產生中斷。

2.7 INTLEVEL (低電平中斷定時器寄存器) [R/W] [0x0013 – 0x0014] [0x0000]

該寄存器用于設置中斷生效等待的時間(IAWT)。當下一個中斷觸發,中斷引腳將會在INTLEVEL時間后,拉低中斷引腳(INTn)。

A. 當Socket 0的超時中斷被觸發,S0_IR[3] & SIR[0]設置為‘1’,然后 INTn 引腳才被拉低。

B. 當Socket 1的連接中斷在前一個中斷未處理完成之前被觸發,則INTn 引腳仍然為低,S1_IR[0] & SIR[1]位設置為‘1’。

C. 如果主機是通過完全清理S0_IR[3]位來完成中斷清除,則INTn引腳被拉高,但是此時S1_IR[0] & SIR[1]仍然保持為‘1’。

D. 即使S1_IR[0] & SIR[1]位被設置為‘1’,但是在 INTLEVEL 期間,INTn不能被拉低。只有過了INTLEVEL時間,INTn才能被拉低。

三:中斷方式設計程序

通過以上介紹,可知幾個寄存器之間有如下關系:

A:3個中斷寄存器 IR,SIR ,Sn_IR,它們對應的3個中斷屏蔽寄存器IMR,SIMR,Sn_IMR(也可以認為是中斷使能寄存器)。只有使能對應位中斷,該位為‘1’時才能引發中斷,拉低INTn。

B:一次中斷處理結束,清除對應狀態位后,都會拉高INTn,如果還有別的中斷狀態寄存器為‘1’,就等待一定時間再拉低INTn。這個時間是由INTLEVEL寄存器來設定的。對于主機來說來一次中斷,只能處理一個事件。

C :IR寄存器與網絡連接狀態有關的寄存器,跟SIR,Sn_IR 沒有關系。而SIR 和Sn_IR 是同時出現的,SIR 指出是Socket n發生了中斷事件,Sn_IR指出了Socket n 發生了什么中斷事件,如收到數據 超時等。

因此如果主機采用中斷方式,檢測到INTn才能被拉低了,進入中斷服務函數可以采用先判斷是不是IR中斷,不是就讀取SIR狀態,找到觸發中斷的那個Socket n。然后讀取 對應的Sn_IR 進行處理。每次處理完,就對相應寄存器的相應位清除。

原帖來自:9MCU

6.

W5500上傳數據錯誤

問題描述1:我現在使用CC2530單片機和MCU通過SPI接口和W5500連接,使用W5500庫函數,下載進去程序之后,在電腦中可以ping 通W5500設備,在電腦中打開TCP工具,程序中設置MCU自動上傳數據和接收到什么數據就返回什么數據,但是這兩個數據都出現錯誤,不能接收到正常的數據,這個數據通過串口發送出來,都是正常的數據,在TCP工具中偶爾可以見到幾包正確的數據,但是大多數時候都是錯誤數據包,搞不清楚哪里設置錯誤,請大神指點一下。

答1:你好,你可以用Wireshark抓包看看有無丟包。

如果沒有丟包的話,就是說裸數據階段就出現問題了。

看一下你SPI的速率,試著提升一下SPI速率試一下。有可能你SPI處理數據太慢了導致的。

問題描述2:我單步執行的時候,數據還是錯誤的,但是沒有出現丟包的現象,在內部數據還是正確的,但是執行到W5500發送出來的時候,就是錯誤的。

//SCK時鐘4MHZ,時鐘頻率/8

U1BAUD = 0×00; // BAUD_M = 0

U1GCR |= 0×11; // BAUD_E = 17

SPI的速率我這是設置的4M,我也嘗試著提高了速率,但是沒什么效果,減少速率也是不行,大多數數據都是錯誤的,中間偶爾會出現幾包正確數據。

答2:問題已經解決,是庫函數沒設置好,send_data_processing()和recv_data_processing()中,ptr一開始是16位,因為移位使數據溢出,可以設置成32位,或者在移位的時候,進行強制類型轉換的時候,多使用括號,不要因為優先級不同,不能安裝自己想要實現的功能來運行。

原帖來自:9MCU

7.

W5500作為客戶端直接連接電腦和交換機失敗。通過路由器可以

問題描述:/*********************************************

* 函數名 : Detect_Gateway

* 描述 : 檢查網關服務器

* 輸入 : 無

* 輸出 : 無

* 返回值 : 成功返回TRUE(0xFF),失敗返回FALSE(0×00)

* 說明 : 無

******************************************************/

unsigned char Detect_Gateway(void)

{

unsigned char ip_adde[4];

ip_adde[0]=IP_Addr[0]+1;

ip_adde[1]=IP_Addr[1]+1;

ip_adde[2]=IP_Addr[2]+1;

ip_adde[3]=IP_Addr[3]+1;

//檢查網關及獲取網關的物理地址

Write_W5500_SOCK_4Byte(0,Sn_DIPR,ip_adde);//向目的地址寄存器寫入與本機IP不同的IP值

Write_W5500_SOCK_1Byte(0,Sn_MR,MR_TCP);//設置socket為TCP模式

Write_W5500_SOCK_1Byte(0,Sn_CR,OPEN);//打開Socket

os_dly_wait (100);//Delay(5);//延時5ms

if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打開失敗

{

Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打開不成功,關閉Socket

return FALSE;//返回FALSE(0×00)

}

Write_W5500_SOCK_1Byte(0,Sn_CR,CONNECT);//設置Socket為Connect模式

do

{

u8 j=0;

j=Read_W5500_SOCK_1Byte(0,Sn_IR);//讀取Socket0中斷標志寄存器

if(j!=0)

Write_W5500_SOCK_1Byte(0,Sn_IR,j);

os_dly_wait (10);//Delay(5);//延時5ms

if((j&IR_TIMEOUT) == IR_TIMEOUT)

{

return FALSE;

}

else if(Read_W5500_SOCK_1Byte(0,Sn_DHAR) != 0xff)

{

Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//關閉Socket

return TRUE;

}

}while(1);

}

直接連接電腦的時候死在了這個函數里。Read_W5500_SOCK_1Byte(0,Sn_DHAR) 的返回值一直是ff

答1:無法獲取目標MAC地址。應該是W5500發出ARP請求,沒有收到對應的回復。

你的交換機各個口之間是透明的嗎?如果是的話,用PC連在一個port上,用Wireshark抓包看一下。你也可以把抓包附上來看一下。

答2:問題找到了。用交叉網線就可以了

原帖來自:9MCU

8.

W5500工業方面有使用的嗎

問題描述:w5500抗干擾能力怎么樣

答:你好,

W5500的抗干擾還是很好的,工業客戶還是蠻多的。其實,光說的話也沒有太大意義,你可以測試評估一下。

你可以給我一個郵箱,我發測試報告給你。

WIZnet的芯片都是工業級芯片。

原帖來自:9MCU

9.

W5500端口切換問題!

問題描述1:我是用的是自帶協議棧的W5500+STM32F103!

我想要實現的功能:向多個客戶端節點同時發出命令,然后每個節點接收到命令后要開始數據的上傳以及一些其他的節點操作;這樣的需求,按照常理,應該是服務器發布命令使用廣播,也就是UDP,為保證數據可靠性,數傳就使用TCP!這中間就存在了一個協議的切換問題,那我是不是可以在端口1使用UDP,在端口2使用TCP?!想問一下各位,W5500能夠輕松的實現切換嗎?!還有,UDP和TCP在切換中有什么需要注意的?!

補充一點,現在我使用的是在TCP中加了一個for();循環,來給各個節點發布命令,相當于模擬了一個UDP廣播,但是這樣就浪費了大量的時間,請問有什么好的改進方法?。?/span>

答1:w5500有8個socket,可以一個socket做UDP廣播,一個socket做TCP Server。這樣你可以使用socket_udp發送命令后,客戶端節點收到命令后,將數據發到TCP Server。當然需要處理的是TCPServer接收緩沖區的數據。 不知道這樣的方案您能接收不。 當然同理客戶端也是兩個socket,只不過除了udp,多了一個TCPClient。

另,你可以初始化2個socket,例: Socket 0 是UDP, Socket 1~7是TCP Server(參數配置成一樣的,意味著同時有7個客戶端可以連入)。使用Socket 0發布命令,使用Socket 1~7接收數傳。

問題描述2:再追加一個問題,您知道怎么做可以提高UDP廣播的命令的可靠性!?

答2:首先udp就是面向不可靠連接,如果想做到可靠又想使用廣播,那么你可以在udp的程序里自己加上一次握手。例如server發送udp(地址255.255.255.255)廣播后,每個接收到廣播的設備回復一個ack,server在得到ack后則認為數據送達。這里有個問題就是server知道各個客戶端的ip地址,這樣收到的ack才有指向性。 但是這樣好麻煩啊。 還有就是你可以一段時間T內多次廣播命令,降低丟包概率。

問題描述3:請問W5500+STM32103 多個socket同時發送數據時候出現丟包應該怎么處理啊

答3:這個主要看一下你SPI的讀取速率,是不是太慢造成buff溢出導致的。你可以提高SPI速率,或者使用小包多發的形式,將大數據包拆分成小包來發送。

原帖來自:9MCU

10.

W5500工作一段時間燈全亮

問題描述1:W5500工作一段時間(大概幾分鐘),有時會出現雙燈全亮的現象,此時,拔下網線,燈依舊亮。重啟斷電后上電,依然燈全亮。需要過很長時間才能恢復。

燈全亮階段,網口顯示斷開狀態。各DX有遇到過此類問題的嗎?如有,是什么原因,該如何解決啊,謝謝!

答1:會不會是有個別的控制引腳懸空了?比較容易受到干擾。

比如reset之類的,狀態進入隨機,失去控制

問題描述2:ARM和W5500的控制線確實走線較遠,這樣是不是應該在RESET等信號端加上拉或下拉電阻?。?/span>

答2:但就RESET而言,是應該加一個上拉,給芯片一個上電默認狀態!

問題描述3:恩恩,非常感謝?。?/span>

原帖來自:9MCU

11.

求助:W5500連續接收數據出錯。。。。。

問題描述:做的測試是W5500做TCP服務端 然后PC做客戶端,PC間隔50ms給 W5500 發 幾個字節如1234, W5500接收后,把接收的數據發到PC端 。經過大量測試,把問題鎖定在 W5500接收數據,當接收一定量時,就會出現這種情況:如 PC發送的是1234,這時候它只能接收 1 后面幾個字節都接收不到 (觀察SPI寄存器),但是過一段時間又可以正常接收有時候還有出現,一個字節都不能接收,但都是過一會又正常,而且出現的頻率比較規律。。。。。 各位有遇到過嗎 求助。。。。。。

答1:有沒有參考WIZnet 的TCP Server例程?建議你用Wireshark抓包看一下

答2:你這個是TCP Server Loopback。 W5500有這個例程,你可以參考一下(http://pan.baidu.com/s/1F7SzO)。感覺是你的函數地址定義問題。

原帖來自:9MCU

12.

發送NBNS響應包無效

問題描述1:W5500收到NBNS Quer包后發了NBNS的響應包(自己構造的)出去,抓包工具也能抓到,看內容也沒有錯誤,但是詢問端好像對響應包沒反應,就和沒有響應包一樣,但實際上已經收到響應包了,不知問題出在哪里,另附上抓包文件(抓包工具為:Wireshark Version 1.12.1)謝謝大家。

答1:ARP的那部分,做個斷點試試,是沒收到,還是數據沒對上?

問題描述2:管理員,您好,關于ARP的部分,W5500(192.168.1.5)收到 PC(192.168.1.8)的MAC而且能將其自身的MAC發給PC,這個是由W5500自身硬件完成的,這部分程序中未有涉及,程序中編寫部分是接收137端口消息并做出響應,那個響應包是程序構造的,不知道是不是這部分出了問題,我對了很久也沒對出哪里有問題。

答2:建議通過斷點調試,在進入處理的位置開始就步步觀察

問題描述3:關于斷點調試我不太清楚要調試那個部分,從抓包文件上看不出程序執行本身有什么錯誤

問題描述4:我已找到問題,是TRANSACTION ID不匹配導致的,謝謝。

原帖來自:9MCU

13.

W5500 正常工作幾天時間后,連不上,ping時候斷斷續續

問題描述:W5500有的 用幾天后 連接不上 ping時候 斷斷續續的,大俠們怎么破。

答:建議將W5500的板子與電腦直連,配置到一個網段內,然后‘ping ip –t’不停的ping下。偶爾的ping不通可以理解,但是如果經常ping 不通就要檢查你的物理鏈路狀態了。有可能導致的問題:1.RJ-45部分網線沒有插好或者口松;2. 布板的時候信號線平行走線產生寄生電容電感。

原帖來自:9MCU

14.

如何在W5500中實現HTTPS(http+ssl)客戶端?

問題描述:

如何在W5500中實現HTTPS客戶端?跟HTTP客戶端實現的關鍵的區別?

HTTP/1.1 400 Bad Request

Server: nginx/1.2.0

Date: Thu, 24 Apr 2014 12:06:46 GMT

Content-Type: text/html

Content-Length: 270

Connection: close

<html>

<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>

<body bgcolor=”white”>

<center><h1>400 Bad Request</h1></center>

<center>The plain HTTP request was sent to HTTPS port</center>

<hr><center>nginx/1.2.0</center>

</body>

</html>

答:這個需要你熟悉應用層的SSL協議,然后調用傳輸層及網絡層的W5500協議。這個可能后續有示例代碼開放出來,但是在這之前只能各位朋友自己多摸索一下了。

原帖來自:9MCU

15.

W5500與FPGA連接

問題描述:有沒有人會W5500與FPGA連接啊

答:有但是比較少,用FPGA一般總線資源足夠而且線程夠快,所以一般使用BUS接口。W5500是SPI接口。按照經驗來看,發部分FPGA的用戶會用W5300。因為Buff夠大,實際帶寬高。雖然,W5300比W5500要貴,但是用FPGA的用戶追求的還是簡單高效一般是不會在乎這幾塊錢的。

原帖來自:9MCU

16.

請問W5500支持DNS域名解析嗎?我看了看datasheet,貌似沒有這方面的描述

答:DNS是應用層協議,W5500實現的是應用層以下的傳輸層及網絡層協議。不過,W5500有DNS的示例代碼(http://pan.baidu.com/s/1F7SzO)。你可以參考。

17.

W5500斷開無法重聯

問題描述:CC2530單片機和W5500連接好可以正常通訊,斷開網線或者關閉TCP工具,過一段時間再打開,TCP工具無法正常打開進行通訊,W5500的狀態一直顯示為連接狀態,不能實現斷開重聯。添加心跳檢測包,也沒有任何作用,IINCHIP_WRITE(Sn_KPALVTR(s),0×02); 這個是添加的心跳包檢測語句。還需要其他地方進行設置嗎

答:1.IINCHIP_WRITE(Sn_KPALVTR(s),0×02)注意你KPALVTR寄存器的地址是否正確添加了。具體可以參考W5500 Keepalive的示例代碼http://pan.baidu.com/s/1F7SzO

2.添加心跳包可以實現斷線后,N個周期(基于RTR和RCT)后,若仍沒有收到對方的ACK信號,則會觸發超時中斷,并同時將Socket狀態變為Closed。程序里只要加上監聽Socket狀態變為Closed之后就重新開發Socket監聽/連接即可實現斷線重連。

原帖來自:9MCU

18.

W5500自動協商PMODE工作模式,AVR64跑TCP透傳可以吧?

問題描述:打算用W5500做物聯網比賽。所以過來問個問題咯。請知道的人指導下,歇歇咯。

N01:我將PMODE0 PMODE1 PMODE2接10k上拉電阻。根據手冊配置成所有功能自動協商。是不是W5500就可以自動協商PMODE的所有工作模式了呢?歇歇咯。

NO2:我使用AVR64跑TCP透傳應該可以吧??我通過百度資料看到arduino硬件使用的ATMEGA芯片有跑20M帶W5500。W5100有用51跑簡單的網絡連接。我用AVR64 8M跑應該沒問題的吧?

答:1.是的,PMODE全為1時為自動協商

2.可以的,沒有問題。WIZnet的S2E透傳模塊都是8051+W5XXX或者W7100A(內置8051)

原帖來自:9MCU

19.

W5500如何設置連接到外網服務器,不知如何實現?

答:只要你的PC可以訪問外網服務器,W5500就可以訪問外網服務器。如果你的外網服務器是在一個內網里面的,沒有透明出來,需要設置路由使用端口映射,將其透明出來,即可訪問。

20.

W5500做server,通訊一段時間Client會斷開

問題描述:我用w5500作為server,用Client去連接,在通訊一段時間后會出現Client突然斷開,繼續進行連接一直連接不上,調試server端程序的時候發現出現這個情況的時候,SR寄存器讀出來的值是0×17,即還是處于SOCK_ESTABLISHED狀態,現在出現這個情況的頻率比較高,大概運行十多分鐘就會出現,求教?

答:這個是由于Client斷開沒有經過四次握手,非法斷開連接,導致Socket被占用,無法恢復通信。

可以讓客戶加入斷線重連機制,有以下方式:

(1) 檢查PHY狀態寄存器的Link位,如果Link down 則重新初始化Socket;

主要針對網線插拔/斷開;

(2) 如果TCP通訊中斷,嘗試重新發起連接2-3次,若不能重新連接,則重新初始化Socket;

主要針對運行在TCP Client。您這里是Server可以不予考慮;

(3) 設置Keep a live心跳包,若link斷開會在RTR和RCR規定時間之后,觸發超時中斷;

TCP 模式下可以使用。Server 或者Client都可以通過這種方法檢測。

21.

RTR值設定疑問

問題描述1:你好!請問下在W5500中要設置keep alive心跳包,通過配置RTR和RCR的值,觸發超時中斷。根據文檔的計算方法,最短時間是否只能是RTR=32768 RCR=0的情況,這樣算出來的時間是3.2s?能否把觸發時間設置的非常短?大概在10ms左右,現在我keep alive心跳包是通過手動發送的,不是自動發送。發送的時間大概在1ms之內。

答1:關于您下面的問題,可能是您對我們的數據手冊有些誤解。觸發超時中斷的時間(ms) = RTR的值除以10,即,如果你把RTR的值設置為2000時,產生中斷的時間是200ms。如果想把產生中斷的時間設定為10ms,那么把RTR的值設定為100即可。但是,不建議這么操作,如果網絡反應過慢,會頻繁的重傳。根據10/100M以太網特性,200ms是一個比較通用的發送超時時間。請您參考。

問題描述2:如果按照你這樣說的,那RCR值設置代表的是什么意思? 超時時間不是通過這兩個值來決定的嗎?

答2:RCR(Retransmission Counter Register) 是重傳次數,如果配置成3,表示發生超時中斷時會重傳一次,如果重傳還不成功,又發生了超時中斷,還會重傳,但,總次數不超過3。

建議您先看看我們數據手冊,上面說明比較詳細。

閱讀:W5500問題集錦(一)

>>如有任何問題可隨時留言給我們,或發送至WIZnet官方郵箱:wiznetbj@wiznet.co.kr

文章評論
發表評論:(匿名發表無需登錄,已登錄用戶可直接發表。) 登錄狀態: 未登錄,點擊登錄
上海皕科電子有限公司 版權所有
地址:上海市閔行區都園路4288號D區210室
電話:021-54852770
郵件:sales@bitconn.com
 
主站蜘蛛池模板: 四虎影院精品在线观看 | 中国国产高清一级毛片 | 亚洲欧美成人中文在线网站 | 日韩激情淫片免费看 | 麻豆制片厂制作传媒网站在线 | 欧美日韩中文亚洲v在线综合 | 亚洲防屏蔽一区二区 | 在线视频 中文字幕 | 亚洲丝袜第一页 | 国产日韩精品欧美一区喷 | 天天操导航| 亚洲制服丝袜在线观看 | 中文字幕一区日韩在线视频 | 亚洲香蕉久久综合网 | 最近中文字幕国语免费完整 | 亚洲精品女同中文字幕在线 | 污污的网站免费观看 | 国产精品入口麻豆免费看 | 日本五月天 | 奇米欧美成人综合影院 | 色综合久久夜色精品国产 | 色永久 | 国产国产人免费人成免费视频 | 亚洲一区二区精品 | 国产91精品系列在线观看 | 国产成人精品aaaa视频一区 | 中文字幕日韩精品亚洲七区 | 五月婷婷伊人网 | 色婷婷香蕉 | 性欧美一区 | 久久久久国产精品免费免费 | 成人国产精品 | 色国产精品一区在线观看 | 特黄未满14周岁毛片 | 另类zoofilia杂交videos | 亚洲一区精品伊人久久 | 日本成人在线网址 | 国产国产成人久久精品杨幂 | 色视频免费看 | 亚洲福利秒拍一区二区 | 亚洲欧美精品 |