上海皕科電子有限公司

Shanghai Bitconn Electronic Co.,Ltd.

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

W5500問題集錦(二)

發(fā)表時間:2015/03/13 00:00:00  瀏覽次數(shù):7778  
字體大小: 【小】 【中】 【大】

W5500問題集錦(二)

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

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

1.

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

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

讀DIPR 和SIPR都不對,

是不是沒有查詢方法呀?

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

比如W5500接在網(wǎng)絡(luò)上,要對它進(jìn)行搜索和設(shè)置,那么就要UDP廣播包,目前可以收到廣播包,但量回應(yīng)的包,去對方收不到,只能懷疑是目標(biāo)地址和端口沒有更新在dipr寄存器了,請支招兒,謝謝?。?/span>

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

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

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

W5500 As TCP Server

原帖來自:9MCU

2.

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

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

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

問題描述2:就是說,每個獨(dú)立端口實(shí)際上對應(yīng)的是一個連接,最多只能有8個連接,對吧?

答2:是的

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

原帖來自:9MCU

3.

W5500無法清中斷

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

可以正常的收發(fā),非中斷方式。

現(xiàn)在改用中斷模式,無法清除中斷。

用戶手冊上寫,Sn_IR,清除需對應(yīng)位寫1。但此寄存器為只讀寄存器,每次對此寄存器進(jìn)行寫操作都會導(dǎo)致看門狗復(fù)位。

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

注:UDP方式

答:問題已解決,是回環(huán)測試后又產(chǎn)生了SEND_OK中斷,最終因超時引起看門狗復(fù)位。

屏蔽發(fā)送中斷后一切正常。

原帖來自:9MCU

4.

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

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

請問是這種思路么?

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

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

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

其次,清中斷就是往對應(yīng)位上寫1。

原帖來自:9MCU

5.

W5500中斷寄存器的理解

W5500中斷寄存器的理解

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

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

低電平:W5500的中斷生效;

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

二:中斷相關(guān)寄存器

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

該寄存器主要指示網(wǎng)絡(luò)連接錯誤或喚醒引起當(dāng)?shù)闹袛唷?/span>

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

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

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

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

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

SIR就是指示哪個Socket發(fā)生的中斷的。

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

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

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

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

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

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

如果想把Sn_IR位清零的話,主機(jī)應(yīng)該將該位置‘1’

這里的[R],而不是[R/W] 表示不能由主機(jī)寫‘1’讓W(xué)5500產(chǎn)生中斷,只能由主機(jī)設(shè)置‘1’ ,清除某一位中斷。

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

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

每一位都對應(yīng)了Sn_IR寄存器的相應(yīng)位。Socket n的中斷觸發(fā)并且Sn_IMR的對應(yīng)位為‘1’時,Sn_IR的對應(yīng)位變?yōu)椤?’。如果Sn_IMR和Sn_IR的對應(yīng)位均為‘1’且SIR 寄存器的相應(yīng)為‘1’,INTn 引腳便會拉低并使主機(jī)產(chǎn)生中斷。

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

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

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

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

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

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

三:中斷方式設(shè)計程序

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

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

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

C :IR寄存器與網(wǎng)絡(luò)連接狀態(tài)有關(guān)的寄存器,跟SIR,Sn_IR 沒有關(guān)系。而SIR 和Sn_IR 是同時出現(xiàn)的,SIR 指出是Socket n發(fā)生了中斷事件,Sn_IR指出了Socket n 發(fā)生了什么中斷事件,如收到數(shù)據(jù) 超時等。

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

原帖來自:9MCU

6.

W5500上傳數(shù)據(jù)錯誤

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

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

如果沒有丟包的話,就是說裸數(shù)據(jù)階段就出現(xiàn)問題了。

看一下你SPI的速率,試著提升一下SPI速率試一下。有可能你SPI處理數(shù)據(jù)太慢了導(dǎo)致的。

問題描述2:我單步執(zhí)行的時候,數(shù)據(jù)還是錯誤的,但是沒有出現(xiàn)丟包的現(xiàn)象,在內(nèi)部數(shù)據(jù)還是正確的,但是執(zhí)行到W5500發(fā)送出來的時候,就是錯誤的。

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

U1BAUD = 0×00; // BAUD_M = 0

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

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

答2:問題已經(jīng)解決,是庫函數(shù)沒設(shè)置好,send_data_processing()和recv_data_processing()中,ptr一開始是16位,因?yàn)橐莆皇箶?shù)據(jù)溢出,可以設(shè)置成32位,或者在移位的時候,進(jìn)行強(qiáng)制類型轉(zhuǎn)換的時候,多使用括號,不要因?yàn)閮?yōu)先級不同,不能安裝自己想要實(shí)現(xiàn)的功能來運(yùn)行。

原帖來自:9MCU

7.

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

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

* 函數(shù)名 : Detect_Gateway

* 描述 : 檢查網(wǎng)關(guān)服務(wù)器

* 輸入 : 無

* 輸出 : 無

* 返回值 : 成功返回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;

//檢查網(wǎng)關(guān)及獲取網(wǎng)關(guān)的物理地址

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

Write_W5500_SOCK_1Byte(0,Sn_MR,MR_TCP);//設(shè)置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);//打開不成功,關(guān)閉Socket

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

}

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

do

{

u8 j=0;

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

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);//關(guān)閉Socket

return TRUE;

}

}while(1);

}

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

答1:無法獲取目標(biāo)MAC地址。應(yīng)該是W5500發(fā)出ARP請求,沒有收到對應(yīng)的回復(fù)。

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

答2:問題找到了。用交叉網(wǎng)線就可以了

原帖來自:9MCU

8.

W5500工業(yè)方面有使用的嗎

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

答:你好,

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

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

WIZnet的芯片都是工業(yè)級芯片。

原帖來自:9MCU

9.

W5500端口切換問題!

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

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

補(bǔ)充一點(diǎn),現(xiàn)在我使用的是在TCP中加了一個for();循環(huán),來給各個節(jié)點(diǎn)發(fā)布命令,相當(dāng)于模擬了一個UDP廣播,但是這樣就浪費(fèi)了大量的時間,請問有什么好的改進(jìn)方法!?

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

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

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

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

問題描述3:請問W5500+STM32103 多個socket同時發(fā)送數(shù)據(jù)時候出現(xiàn)丟包應(yīng)該怎么處理啊

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

原帖來自:9MCU

10.

W5500工作一段時間燈全亮

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

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

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

比如reset之類的,狀態(tài)進(jìn)入隨機(jī),失去控制

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

答2:但就RESET而言,是應(yīng)該加一個上拉,給芯片一個上電默認(rèn)狀態(tài)!

問題描述3:恩恩,非常感謝!!

原帖來自:9MCU

11.

求助:W5500連續(xù)接收數(shù)據(jù)出錯。。。。。

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

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

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

原帖來自:9MCU

12.

發(fā)送NBNS響應(yīng)包無效

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

答1:ARP的那部分,做個斷點(diǎn)試試,是沒收到,還是數(shù)據(jù)沒對上?

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

答2:建議通過斷點(diǎn)調(diào)試,在進(jìn)入處理的位置開始就步步觀察

問題描述3:關(guān)于斷點(diǎn)調(diào)試我不太清楚要調(diào)試那個部分,從抓包文件上看不出程序執(zhí)行本身有什么錯誤

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

原帖來自:9MCU

13.

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

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

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

原帖來自:9MCU

14.

如何在W5500中實(shí)現(xiàn)HTTPS(http+ssl)客戶端?

問題描述:

如何在W5500中實(shí)現(xiàn)HTTPS客戶端?跟HTTP客戶端實(shí)現(xiàn)的關(guān)鍵的區(qū)別?

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>

答:這個需要你熟悉應(yīng)用層的SSL協(xié)議,然后調(diào)用傳輸層及網(wǎng)絡(luò)層的W5500協(xié)議。這個可能后續(xù)有示例代碼開放出來,但是在這之前只能各位朋友自己多摸索一下了。

原帖來自:9MCU

15.

W5500與FPGA連接

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

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

原帖來自:9MCU

16.

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

答:DNS是應(yīng)用層協(xié)議,W5500實(shí)現(xiàn)的是應(yīng)用層以下的傳輸層及網(wǎng)絡(luò)層協(xié)議。不過,W5500有DNS的示例代碼(http://pan.baidu.com/s/1F7SzO)。你可以參考。

17.

W5500斷開無法重聯(lián)

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

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

2.添加心跳包可以實(shí)現(xiàn)斷線后,N個周期(基于RTR和RCT)后,若仍沒有收到對方的ACK信號,則會觸發(fā)超時中斷,并同時將Socket狀態(tài)變?yōu)镃losed。程序里只要加上監(jiān)聽Socket狀態(tài)變?yōu)镃losed之后就重新開發(fā)Socket監(jiān)聽/連接即可實(shí)現(xiàn)斷線重連。

原帖來自:9MCU

18.

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

問題描述:打算用W5500做物聯(lián)網(wǎng)比賽。所以過來問個問題咯。請知道的人指導(dǎo)下,歇歇咯。

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

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

答:1.是的,PMODE全為1時為自動協(xié)商

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

原帖來自:9MCU

19.

W5500如何設(shè)置連接到外網(wǎng)服務(wù)器,不知如何實(shí)現(xiàn)?

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

20.

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

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

答:這個是由于Client斷開沒有經(jīng)過四次握手,非法斷開連接,導(dǎo)致Socket被占用,無法恢復(fù)通信。

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

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

主要針對網(wǎng)線插拔/斷開;

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

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

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

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

21.

RTR值設(shè)定疑問

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

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

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

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

建議您先看看我們數(shù)據(jù)手冊,上面說明比較詳細(xì)。

閱讀:W5500問題集錦(一)

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

文章評論
發(fā)表評論:(匿名發(fā)表無需登錄,已登錄用戶可直接發(fā)表。) 登錄狀態(tài): 未登錄,點(diǎn)擊登錄
上海皕科電子有限公司 版權(quán)所有
地址:上海市閔行區(qū)都園路4288號D區(qū)210室
電話:021-54852770
郵件:sales@bitconn.com
 
女人高潮抽搐喷液30分钟视频,国产精品51麻豆cm传媒,亚洲Av无码精品色午夜,无码精品一区二区三区免费视频 明光市| 搜索| 黔西| 和田市| 从江县| 涟水县| 南投市| 城口县| 平遥县| 舒城县| 新巴尔虎左旗| 云林县| 禹城市| 皮山县| 韩城市| 辛集市| 鹤山市| 黎城县| 怀化市| 图木舒克市| 祁连县| 定南县| 洱源县| 赞皇县| 通辽市| 安吉县| 九寨沟县| 玉田县| 津市市| 申扎县| 吴堡县| 英超| 麻江县| 林口县| 库尔勒市| 金川县| 金山区| 股票| 玉环县| 临高县| 三门峡市|