芯片应用——W5100TCP/UDP通讯
前段時(shí)間接觸到W5100這款集成了PHY的以太網(wǎng)芯片,用作工業(yè)場(chǎng)合的通訊以及數(shù)據(jù)傳輸。大概要做些什么事呢? 首先 stm32F4通過FSMC總線,將待發(fā)送的數(shù)據(jù)傳至W5100的tempbuffer中,然后W5100通過TCP或者UDP傳輸方式,分包將數(shù)據(jù)發(fā)到上位機(jī),存儲(chǔ)到上位機(jī)設(shè)備中,以備后面分析用。
用這款芯片的理由:集成了PHY,避免了外部再接轉(zhuǎn)換芯片,另外有4個(gè)獨(dú)立的SOCKET,可并行工作,具備TCP/UDP/UDP_Broadcasting可分配功能。
?
TCP:
服務(wù)器端:
配置FSMC端口--->寫入gateway和IP--->Socket初始化-->Socket_Listen--->中斷服務(wù)函數(shù)
客戶端:
配置FSMC端口--->IP和端口配置 --->Socket初始化-->Socket_Connect--->中斷服務(wù)函數(shù)
?
UDP:
組網(wǎng)廣播:
配置FSMC端口--->IP配置--->Socket初始化 --->Socket_UDP處理函數(shù)
?
FSMC總線時(shí)鐘過大,導(dǎo)致數(shù)據(jù)丟幀。增大分頻系數(shù),降低總線時(shí)鐘即可解決。
寫W5100地址的時(shí)候,分成高位和低位,讀數(shù)據(jù)和寫數(shù)據(jù),都是操作W5100的基址后面的3個(gè)偏移地址。(具體可參照W5100手冊(cè))
?
TCP客戶端比服務(wù)端復(fù)雜,因?yàn)榭蛻舳说奶幚砗瘮?shù)比服務(wù)端麻煩,而且客戶端的狀態(tài)比服務(wù)端多,服務(wù)端開啟之后,只需要監(jiān)聽客戶端是否接入,對(duì)應(yīng)將接入的客戶端數(shù)據(jù)處理返回即可。
UDP在傳輸過程中,前面8個(gè)字節(jié)用來存放發(fā)送IP,目的端口,數(shù)據(jù)長度,后面的才是幀數(shù)據(jù),這樣針對(duì)不同的IP端口,執(zhí)行不同的操作。
以上兩個(gè)Socket同時(shí)開啟,可以正常傳輸數(shù)據(jù)。但是發(fā)熱量有點(diǎn)大,芯片溫度比周圍其他芯片燙,集成PHY的原因。
?
?
具體的手冊(cè)和相關(guān)資料,見網(wǎng)站:http://www.9mcu.com/9mcubbs/forum.php?mod=forumdisplay&fid=432
?
轉(zhuǎn)載于:https://www.cnblogs.com/Blog-c/p/6602319.html
總結(jié)
以上是生活随笔為你收集整理的芯片应用——W5100TCP/UDP通讯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: w5100的使用
- 下一篇: ALCO铸钢螺栓体AVG系列球阀