公司擁有優(yōu)秀的銷(xiāo)售團(tuán)隊(duì)和專(zhuān)業(yè)的研發(fā)部門(mén),不但在品牌、價(jià)格、供貨、服務(wù)等方面領(lǐng)先業(yè)界,而且可為客戶(hù)提供及時(shí)、可行的技術(shù)支持和整體設(shè)計(jì)服務(wù),滿(mǎn)足不同客戶(hù)多層次需求。


W5500問(wèn)題集錦(五)
Q1:W5500支持網(wǎng)絡(luò)喚醒嗎?
R:不支持,網(wǎng)絡(luò)喚醒是W5500正常工作,去喚醒mcu,想低功耗的話就設(shè)置為10M模式。
Q2: W5500數(shù)據(jù)交互速度過(guò)快的時(shí)候,使用抓包工具發(fā)現(xiàn)TCP ZERO WINDOWS包時(shí),如何解決?
R:接收方應(yīng)用沒(méi)有及時(shí)recv消息,導(dǎo)致接收緩沖滿(mǎn),即滑動(dòng)窗口為0,接收方發(fā)送TCP Zero Window告知發(fā)送方不能繼續(xù)發(fā)送消息。
Q3: W5500處于TCP_Server模式下,在交換機(jī)/路由器網(wǎng)絡(luò)中無(wú)法ping通也無(wú)法通訊。
R: W5500是硬件協(xié)議棧芯片,有別于軟件協(xié)議棧,如果W5500不主動(dòng)往網(wǎng)絡(luò)中發(fā)包,在TCP_Server模式下是不會(huì)有任何數(shù)據(jù)包發(fā)送的,這樣會(huì)造成路由ARP表中無(wú)法形成IP和MAC設(shè)備的對(duì)應(yīng)關(guān)系。
A:解決方案:
在W5500上電時(shí)往任意IP發(fā)送一個(gè)UDP數(shù)據(jù)包,從而更新路由的ARP表,形成匹配關(guān)系,后續(xù)通訊就正常了。
Q4: W5500在TCP_Client模式下,斷電重啟之后無(wú)法立即連接到服務(wù)器。
R:這是由于客戶(hù)端沒(méi)有主動(dòng)發(fā)送斷開(kāi)請(qǐng)求,造成服務(wù)器并不知道Socket已發(fā)生異常斷開(kāi)。重新上電之后,W5500以相同的IP和端口連接服務(wù)器,而服務(wù)器還認(rèn)為此Socket鏈接存在,所以拒絕W5500的立即連接。
A:解決方案:
在W5500使用KEEP_ALIVE機(jī)制,一段時(shí)間內(nèi)發(fā)送心跳包,如果W5500沒(méi)有給服務(wù)器回復(fù),服務(wù)器則判斷鏈接已斷開(kāi),并釋放Socket資源,這時(shí)就可以成功連接。如果對(duì)客戶(hù)端的本地端口沒(méi)有要求的話,也可以在初始化Socket的部分讓端口自動(dòng)+1處理。兩種方式根據(jù)具體應(yīng)用分析采用。
注: 有的場(chǎng)景不能采用端口自動(dòng)+1的方式,比如電力104規(guī)約,只允許采用2404端口連接。
Q5: W5500如何檢測(cè)網(wǎng)線被拔出?如何進(jìn)行斷線檢測(cè)?
A:解決方案:
可以在主循環(huán)中加入判斷PHY_CFGR狀態(tài)的處理流程,如果PHY狀態(tài)發(fā)生異常,釋放所有的socket資源,并重新初始化socket。
Q6: W5500作為T(mén)CP服務(wù)器,最多可以鏈接幾個(gè)TCP客戶(hù)端?
A:解決方案:
W5500作為T(mén)CP_Server,最多可以與8個(gè)客戶(hù)端建立連接。不能初始一個(gè)Socket對(duì)應(yīng)多個(gè)連接??梢詫5500的8個(gè)socket全部初始化,這樣就可以與8個(gè)不同的TCP_Client建立通訊鏈接。
Q7: W5500接外網(wǎng)如何調(diào)試,如何抓包?
A: 解決方案:
W5500和PC通訊的話可以直接通過(guò)Wireshark抓包,如果W5500和公網(wǎng)直接通訊或者通訊是發(fā)生在W5500之間,則沒(méi)有辦法直接抓包,這需要借助于“可以抓包的交換機(jī)”,這種交換機(jī)多數(shù)是二手產(chǎn)品,而且是10M的網(wǎng)絡(luò),比如TP-LINK TL-HP5MU。把W5500和抓包計(jì)算機(jī)的網(wǎng)線分別插上交換機(jī)就可以運(yùn)行抓包工具抓包。
Q8:怎么確保W5500的MAC地址的唯一性?
A:解決方案:
MAC地址需要保證全球唯一。但實(shí)際上MAC地址只用于鏈路層,在同一局域網(wǎng)內(nèi)才有沖突的可能。所以可以首先必須保證MAC地址首字節(jié)為偶數(shù),其次選取自己產(chǎn)品的MCU ID 序列后5個(gè)字節(jié)當(dāng)做MAC地址后5個(gè)字節(jié),這樣可以保證產(chǎn)品量產(chǎn)后彼此的MAC地址肯定不同。當(dāng)然也可以向IEEE組織申請(qǐng)MAC地址。