公司擁有優(yōu)秀的銷售團隊和專業(yè)的研發(fā)部門,不但在品牌、價格、供貨、服務(wù)等方面領(lǐng)先業(yè)界,而且可為客戶提供及時、可行的技術(shù)支持和整體設(shè)計服務(wù),滿足不同客戶多層次需求。
W5500問題集錦(四)
1、如何確認WIZnet網(wǎng)絡(luò)芯片的物理連接是否正常?
使用WIZnet的W5100、W5200、W5300、W5500等網(wǎng)絡(luò)協(xié)議芯片,對其進行可靠的硬件復位(網(wǎng)絡(luò)協(xié)議芯片的RESET或RST引腳)后可能出現(xiàn)下列現(xiàn)象:
(1) 芯片的LINKLED引腳輸出低電平,LINKLED指示燈會被點亮(未接,接錯或燈壞除外).
(2) 如果是通過網(wǎng)線直連電腦,電腦上本地連接顯示本地連接已連接狀態(tài)。如果是網(wǎng)線連到
路由等設(shè)備,路由等相應(yīng)指示燈提示連接成功。
如果出現(xiàn)上述現(xiàn)象,表明物理連接已經(jīng)成功并且芯片工作,否則需要排查相關(guān)問題。為什么WIZnet網(wǎng)絡(luò)芯片的物理連接不正常?
2、WIZnet的W5100、W5200、W5300、W5500等網(wǎng)絡(luò)芯片的物理連接是否成功和芯片是否工作以及相關(guān)線路是否正常有關(guān)系,可以從以下方面進行排查:
(1) 因芯片焊反或關(guān)鍵位置虛焊,短路等問題導致芯片不能正常工作。
(2) 因芯片的供電,接地等不正?;蜻B接芯片,導致芯片不能正常工作。
(3) 因芯片引腳外接的用于隔離數(shù)字電源與模擬電源的1uH電感損壞開路,導致不能工作。
(4) 因芯片的晶振不按要求連接,而導致芯片不能工作。使用有源振蕩器的,線路連接錯誤,或者有源振蕩器的電壓不是1.8V,請參考原理圖進行正確設(shè)計 。
(5) 因復位引腳連接錯誤,使得芯片不能完成可靠復位。
(6) 因線路中RXIP、RXIN、TXOP、TXON與變壓器的連接錯誤,導致與電腦等無法建立連接。
(7) 因采用與線路不匹配的或壞的RJ45模塊和變壓器導致與電腦等無法連接。這里需要特別補充一下的是,W5500變壓器連接上與W5100、W5200、W5300大不一樣,如直接把他們的連接照搬過來可能不能工作,具體參考原理圖。
(8) 因網(wǎng)線或電腦路由器等不正常而無法連接。
(9) 因某些MCU只需電壓2.7V就可工作,MCU在電壓還未上升到3V就對需要3V以上才能運行的網(wǎng)絡(luò)協(xié)議芯片進行復位操作必然失敗,最終導致不能連接。(可程序解決)
(10) 如果是使用的W5300芯片,當不使用外部PHY時,TEST_MODE[3:0](19~22引腳),必須全部為低電平,可全接地,否則可能因沒有PHY導致不能連接。
(11) 其它原因。
經(jīng)過上面排查物理連接就可以連接正常了。
3、WIZnet網(wǎng)絡(luò)芯片物理連接正常卻ping不通,怎么辦?
WIZnet的W5100、W5200、W5300、W5500等網(wǎng)絡(luò)芯片是否可以ping通,不僅與物理連接等有關(guān)系,還和相關(guān)電路以及網(wǎng)關(guān)、子網(wǎng)掩碼、MAC地址、IP地址配置有關(guān)系,可以從以下方面進行排除:
(1) W5100和W5300的RSET_BG引腳(1腳)所接12.3K電阻,W5200的BIAS引腳(12腳)所接28.7K電阻, W5500的EXRES1引腳(10腳)所接12.4K參考電阻,均接地且要求誤差必須控制在1%以內(nèi)。
(2) RXIP、RXIN、TXOP、TXON接口,信號長度必須小于 25cm,越短越好,且盡量走等
長線,各差分信號相差不能超過2.5cm。RXIP,RXIN應(yīng)盡量靠近,TXOP,TXON應(yīng)盡量靠
近,有條件的應(yīng)走平行線。
(3) 必須保證被操作的寄存器地址正確。
(4) 可以對寄存器進行讀寫操作,判斷讀寫是否一樣,采用SPI接口的可以以此判斷SPI部分的程序以及電路有無問題。使用并行接口的,則可以判斷程序以及地址線、數(shù)據(jù)線的連接有
無問題。
(5) MAC地址的第一個字節(jié)必須為偶數(shù)。
(6) 必須正確設(shè)置子網(wǎng)掩碼,且電腦IP地址與網(wǎng)絡(luò)芯片的IP地址必須設(shè)置在同一個子網(wǎng)。
(7) 如果是W5100采用并行總線方式,其SEN(31腳)必須為低,否則為高。如果是W5300
采用16位數(shù)據(jù)總線接口,其BIT16EN(18腳)必須為高,否則為低。
(8) 如果用W5300采用16位數(shù)據(jù)總線,切記其地址ADDR0不起作用,有效地址為ADDR1~ADDR9。如果從ADDR1接單片機低位(比如A0)開始,接成ADDR0對應(yīng)單片機的低位(A0),則ADDR1對應(yīng)到單片機的A1,即相應(yīng)的偏移地址都是原來的2倍,這是需要特別注意的地方。
(9) 其它原因。
4、為什么WIZnet網(wǎng)絡(luò)芯片可以ping通,但無法發(fā)送接收數(shù)據(jù)?
WIZnet的W5100、W5200、W5300、W5500等網(wǎng)絡(luò)芯片可以ping通,說明相關(guān)電路以及網(wǎng)關(guān)、子網(wǎng)掩碼、MAC地址、IP地址配置均正常, 如果不能建立連接發(fā)送接收數(shù)據(jù),需要從從SOCKET配置,SOCKET狀態(tài),中斷寄存器,發(fā)送接收程序,或是上位機軟件的設(shè)置等進行排查 。
5、關(guān)于WIZnet網(wǎng)絡(luò)芯片檢測網(wǎng)關(guān)的常見問題
有較多客戶在查看關(guān)于WIZnet的W5100、W5200、W5300、W5500的程序時發(fā)現(xiàn)在配置SOCKET之前有段檢測網(wǎng)關(guān)的程序,有如下疑問:
6.為什么要檢測網(wǎng)關(guān)?
其實只要不訪問外網(wǎng),完全可以不做這個檢測,如果要訪問外網(wǎng),必須經(jīng)過網(wǎng)關(guān),做這步就是為提前知道網(wǎng)關(guān)是否存在,是否正常工作。
7、為什么檢測網(wǎng)關(guān)要將目的IP地址每位加1?
在正確設(shè)置網(wǎng)關(guān)的情況下,去連接一個不在同一子網(wǎng)(外網(wǎng))的目的IP,就可找到網(wǎng)關(guān),而將目的IP每位加1,正好造就一個不在同一子網(wǎng)的目的IP,如果愿意你加2加3都可以。
8、為什么明明是UDP模式,檢測網(wǎng)關(guān)卻配置成TCP模式?
這不僅要配置為TCP,而且要配置為TCP下的客戶端模式,即使是TCP下的服務(wù)器這里也得配置成客戶端,因為只有客戶端發(fā)起啟動連接才能找到網(wǎng)關(guān)。
9、為什么檢測網(wǎng)關(guān)要判斷目的MAC地址首位不為0xff?
因為未找到網(wǎng)關(guān)以前,讀出目的MAC地址所有位全為0xff, 至于為什么判斷首位,因為找到的目的MAC地址首位應(yīng)該是偶數(shù),因此絕不可能是0xff(255).
10、WIZnet網(wǎng)絡(luò)芯片TCP模式下的客戶端與服務(wù)器有什么異同?
不同點:
客戶端起啟動連接(CONNECT)的作用,主動連接必須要知道連接目標,因此要正確設(shè)置SOCKET的目的(服務(wù)器)IP和目的(服務(wù)器)端口號。
服務(wù)器則是偵聽的作用(LISTEN),等待連接不需要設(shè)置目的IP 和目的端口號,客戶端來連接時,服務(wù)器自然知道客戶端的IP地址與端口號。
相同點:
客戶端服務(wù)器SOCKET 分片長度最大均為1460字節(jié),即每次發(fā)送最大為1460字節(jié)
客戶端服務(wù)器均要先配置為TCP模式
客戶端服務(wù)器連接成功均為SOCK_ESTABLISHED狀態(tài)(Sn_SR 寄存器)
11、為什么程序在TCP模式配置客戶端,端口號總加1?
比如端口號為5000,如果連接成功,其端口號就是5000,不必加1。 一旦失敗,多次用同一端口,去連接時,很有可能被當惡意信息而屏蔽,因此需等待一段時間后,換個新的端口號可提高連接的成功率,下次連接前加1就是這個原因。
12、TCP模式下,通過路由器,對方拔掉網(wǎng)線后,再插上后不能建立通訊怎么辦?
WIZnet芯片可以在發(fā)送過數(shù)據(jù)后,空閑既未發(fā)送也未接收達的情況,到一定時間(3秒,5秒,10秒自定義)后,發(fā)送SEND_KEEP命令,如對方正常就保持連接,如果對方在一定時間內(nèi)未回應(yīng),則發(fā)出超時中斷,自動關(guān)閉SOCKET端口,就可以自動重新連接,這樣就能連接上了。但此命令只能用于TCP模式,如果是UDP模式下如果也想查看對方狀態(tài)就需要從程序想辦法了。
13、為什么用評估板將電腦作服務(wù)器不能成功建立通訊?
用TCP/UDP軟件測試程序與評估板,電腦作為客戶端可以成功連接,而作為服務(wù)器則不能連接成功?
原因是,電腦IP地址與網(wǎng)絡(luò)芯片的目的IP不一樣,電腦作為為客戶端,只要在一個子網(wǎng),你只需成功在TCP/UDP軟件上設(shè)置了網(wǎng)絡(luò)芯片(服務(wù)器)的IP地址與端口號,就可以連接到。而電腦作為服務(wù)器,網(wǎng)絡(luò)芯片的目的IP與電腦IP不一致,網(wǎng)絡(luò)芯片作為客戶端找不到連接對象,因此不能連接成功,只要將電腦的IP地址與網(wǎng)絡(luò)芯片的目的IP地址設(shè)置成一樣就可以了。
14、UDP模式不設(shè)置目的端口與目的IP,會不會接收不到數(shù)據(jù)?
不會,因為在UDP接收數(shù)據(jù)中已經(jīng)包含了對端的所有網(wǎng)絡(luò)信息,共8字節(jié)的報頭信息(目的IP 4字節(jié),目的端口2字節(jié),數(shù)據(jù)長度2字節(jié))。如果只是接收數(shù)據(jù)可不必設(shè)置, 但要發(fā)送數(shù)據(jù), 必須知道要發(fā)給誰,必須設(shè)置目的IP與目的端口號。
15、UDP模式下為什么有丟失數(shù)據(jù)的情況?
UDP是一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送,在網(wǎng)絡(luò)質(zhì)量令人十分不滿意的環(huán)境下,UDP協(xié)議數(shù)據(jù)包丟失甚至會比較嚴重,因此謹慎選擇。優(yōu)點是處理速度快資源消耗少。
16、為什么用中斷方式調(diào)試WIZnet芯片時發(fā)現(xiàn)有丟失數(shù)據(jù)的情況?
建議使用查詢法,中斷必然有響應(yīng)時間,當上次中斷還沒結(jié)束,又產(chǎn)生新的中斷甚至連續(xù)產(chǎn)生多次新的中斷時,或者中斷標志未及時清除,必然不能響應(yīng)所有中斷,此時以中斷標志位來判斷是否該接收,必然丟失數(shù)據(jù)。
17、關(guān)于同時使用多個SOCKET的問題
同一塊網(wǎng)絡(luò)芯片,同時使用多個SOCKET工作,應(yīng)注意什么問題?
WIZnet目前每款網(wǎng)絡(luò)協(xié)議芯片都可以支持多個SOCKET同時工作,但每個SOCKET可以且必須以不同的端口號做為區(qū)分。
18、同一塊網(wǎng)絡(luò)芯片的多個SOCKET,可以同時設(shè)置成客戶端去連接電腦服務(wù)器的一個端口嗎,怎么實現(xiàn)?
當然可以,WIZnet每款網(wǎng)絡(luò)協(xié)議芯片都可以支持多個SOCKET同時工作,只需將芯片內(nèi)每個SOCKET設(shè)置成不同端口號,分別設(shè)置成客戶端去連接服務(wù)器就行, 前提是服務(wù)器的上位機軟件需支持多任務(wù),否則不能成功。
19、多塊網(wǎng)絡(luò)協(xié)議芯片同時使用,端口號可以設(shè)置成一樣嗎?
多塊網(wǎng)絡(luò)協(xié)議芯片在同一個子網(wǎng)中使用,應(yīng)具備唯一的MAC地址,唯一的IP地址,因為不在同一塊網(wǎng)絡(luò)芯片,IP地址、MAC地址不一樣,因此可以設(shè)置成一樣的端口號。
20、WIZnet的網(wǎng)絡(luò)芯片經(jīng)過交換機是否驅(qū)動有問題?
多個W5200用80米超5類網(wǎng)線與電腦直連或通用50米超5類網(wǎng)線過交換機連接到電腦可以全部連接成功,但用80米經(jīng)過交換機有的不能連接成功,是不是網(wǎng)絡(luò)協(xié)議芯片驅(qū)動能力問題?
我們做過測試,將包含W5200在內(nèi)的目前所有WIZnet網(wǎng)絡(luò)芯片和電腦通過100米超5類網(wǎng)線連接, 無論多少次都可以連接成功并將電腦傳來的數(shù)據(jù),成功傳回電腦, 證明驅(qū)動能力沒問題。
至于進入交換機后有的在80米就不能成功,說明和交換機有很大關(guān)系, 可以將成功連接的W5200和連接失敗的W5200交換位置查看結(jié)果,如果失敗的連接成功,或成功的又連接失敗,說明交換機端口有差異。 如果失敗的還是失敗則只能說明你線路上的RJ45或網(wǎng)絡(luò)變壓器電路參數(shù)上有少許差異,如果僅誤差1,2米也算正常范圍。
對于經(jīng)過交換機后在80米不能連接的,可以在將交換機到W5200的距離縮短至80米以內(nèi)(比如70米),將電腦到交換機的距離增加,即將交換機盡量放在靠中間的位置,使交換機起中繼器的作用。 如果已經(jīng)布線完成,不方便改動,則只有在交換機與W5200之間再加一個中繼器或交換機已保證連接通訊。