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