當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]本文介紹了一款單片網(wǎng)絡(luò)接口芯片W5100,該芯片內(nèi)部集成了TCP/IP硬件協(xié)議棧,支持多種網(wǎng)絡(luò)協(xié)議。給出了基于STM32處理器的硬件電路連接圖和軟件程序設(shè)計(jì)。目前,該系統(tǒng)已成功

本文介紹了一款單片網(wǎng)絡(luò)接口芯片W5100,該芯片內(nèi)部集成了TCP/IP硬件協(xié)議棧,支持多種網(wǎng)絡(luò)協(xié)議。給出了基于STM32處理器的硬件電路連接圖和軟件程序設(shè)計(jì)。目前,該系統(tǒng)已成功應(yīng)用在多個(gè)建筑能耗監(jiān)測(cè)項(xiàng)目中,運(yùn)行結(jié)果表明該系統(tǒng)通信穩(wěn)定可靠,能夠滿足項(xiàng)目對(duì)遠(yuǎn)程數(shù)據(jù)傳輸?shù)男枨蟆?/p>

數(shù)據(jù)采集與傳輸系統(tǒng)一直是工業(yè)控制、環(huán)境參數(shù)監(jiān)測(cè)、建筑能耗信息監(jiān)測(cè)等多個(gè)領(lǐng)域共同關(guān)注的問(wèn)題,尤其是針對(duì)遠(yuǎn)程數(shù)據(jù)傳輸問(wèn)題。受傳輸距離的限制,傳統(tǒng)的現(xiàn)場(chǎng)總線通信方式只適合于近距離的數(shù)據(jù)傳輸;而基于GPRS技術(shù)的數(shù)據(jù)傳輸系統(tǒng)雖然可以不受距離的限制,但其按照流量進(jìn)行收費(fèi),對(duì)于大量數(shù)據(jù)連續(xù)傳輸而言資費(fèi)不低,在實(shí)際的項(xiàng)目中應(yīng)用也不是很廣泛。目前,基于以太網(wǎng)的數(shù)據(jù)傳輸系統(tǒng)以其成本低廉、通信速率高和支持遠(yuǎn)距離通信等諸多優(yōu)點(diǎn),在監(jiān)測(cè)領(lǐng)域得到了越來(lái)越多的應(yīng)用。

常見的網(wǎng)絡(luò)驅(qū)動(dòng)芯片有RTL8019、CS8900、ENC28J60、DM9000、W5100等,其中ENC28J60支持串行SPI接口通信方式,接口電路設(shè)計(jì)相對(duì)簡(jiǎn)單。RTL8019、CS8900和DM9000都是并行總線式驅(qū)動(dòng)方式,需要連接較多的數(shù)據(jù)線、地址線以及讀寫控制引腳等。W5100既支持串行SPI接口,同時(shí)也支持并行總線方式。這幾款芯片中除了W5100內(nèi)置TCP/IP協(xié)議棧之外,其余都需要用戶自己開發(fā)以太網(wǎng)驅(qū)動(dòng)程序,需要占據(jù)大量的存儲(chǔ)空間以及寶貴的RAM內(nèi)存單元;而且,軟件的實(shí)現(xiàn)方式與硬件集成相比,穩(wěn)定性和可靠性也稍差。

1 W5100芯片介紹

W5100是韓國(guó)Wiznet公司生產(chǎn)的一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有10/100M以太網(wǎng)控制器,且經(jīng)過(guò)多年實(shí)際項(xiàng)目應(yīng)用驗(yàn)證的硬件TCP/IP協(xié)議棧,提供全雙工以太網(wǎng)解決方案。與該公司之前的產(chǎn)品W3100相比,W5100內(nèi)部集成了物理層RTL8201CP核,它是一款集TCP /IP協(xié)議棧、以太網(wǎng)MAC和PHY為一體的網(wǎng)絡(luò)接口芯片,具有更高的集成度和更穩(wěn)定的工作性能,便于硬件實(shí)現(xiàn)。W5100芯片同時(shí)支持直接并行總線、間接并行總線和SPI串行總線共3種接口方式與主控芯片進(jìn)行通信,可以滿足不同場(chǎng)合的需求。這些性能使得用戶不需要考慮以太網(wǎng)TCP/IP協(xié)議棧的移植等復(fù)雜的軟件驅(qū)動(dòng)程序,可以像訪問(wèn)外部存儲(chǔ)器一樣操作W5100,實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。W5100的性能特點(diǎn)如下:

①內(nèi)嵌10/100BaseT以太網(wǎng)物理層;

②理論最大傳輸率可達(dá)25 Mb/s;

③支持自動(dòng)MDI/MDIX,自動(dòng)校正信號(hào)極性;

④支持ADSL連接(支持PPPOE協(xié)議中的PAD/CHAP認(rèn)證模式);

⑤支持4個(gè)獨(dú)立端口同時(shí)運(yùn)行;

⑥內(nèi)置16 KB存儲(chǔ)器用于數(shù)據(jù)發(fā)送/接收緩存。

1.1 內(nèi)部結(jié)構(gòu)及引腳功能

如圖1所示,W5100將網(wǎng)絡(luò)協(xié)議的處理分成一個(gè)由特定處理器執(zhí)行的控制部分和一個(gè)硬件線路部分,實(shí)現(xiàn)硬件化的TCP、UDP、ICMP、IPv 4、ARP、IGMP以及PPPoE協(xié)議,含有連接以太網(wǎng)協(xié)議中的數(shù)據(jù)控制及MAC協(xié)議;按照功能可以將W5100的引腳分為與處理器接口的通信引腳、以太網(wǎng)物理層功能引腳、時(shí)鐘引腳、LED工作狀態(tài)指示引腳、電源引腳等幾類。直接總線接口方式需要用到ADDR[0~14]共15個(gè)引腳;而間接總線接口方式只需要用到地址線0和地址線1,其余的地址線ADDR[2~14]通過(guò)電阻接地即可;使用SPI接口方式時(shí)需要注意,必須將SEN引腳接高電平,才能使SPI功能有效,后面在硬件電路部分介紹。

 


1.2 寄存器功能介紹

W5100的寄存器可以分為通用寄存器和端口寄存器兩類。其中,通用寄存器包括對(duì)W5100的網(wǎng)絡(luò)配置、中斷、超時(shí)參數(shù)以及緩沖區(qū)大小等設(shè)置;端口寄存器是針對(duì)W5100的4個(gè)獨(dú)立的端口設(shè)置,包括端口模式寄存器、端口命令寄存器、端口中斷寄存器和端口狀態(tài)寄存器等在內(nèi)的共17個(gè)寄存器。

通用寄存器的詳細(xì)信息如表1所列。針對(duì)中斷寄存器IR共有7個(gè)中斷源,當(dāng)任何一個(gè)未被屏蔽的中斷置為高電平時(shí),W5100的中斷輸出引腳INT將會(huì)一直保持低電平,MCU通過(guò)讀取IR寄存器定位中斷源,并進(jìn)行中斷程序處理,之后清零IR中相應(yīng)的位,INT引腳才恢復(fù)為高電平。

 


W5100內(nèi)部共有16 KB發(fā)送/接收緩沖區(qū),發(fā)送和接收各占8 KB,默認(rèn)每個(gè)端口的發(fā)送和接收均為2 KB,即RMSR=TMSR=0x55,在實(shí)際使用過(guò)程中,用戶可以根據(jù)實(shí)際情況調(diào)整發(fā)送/接收緩沖區(qū)大小。如圖2所示,通過(guò)修改每個(gè)端口對(duì)應(yīng)的S1和S0寄存器可以修改相應(yīng)的端口緩沖區(qū)大小。

 


端口寄存器是分別針對(duì)4個(gè)獨(dú)立Socket的寄存器,以Sn_xx的形式表示,其中n取值為0、1、2、3。端口模式寄存器Sn_MR定義了該端口工作在TCP模式或者是UDP模式,不同模式下端口寄存器的表現(xiàn)形式不一,本文對(duì)此不作過(guò)多的闡述。

2 系統(tǒng)方案設(shè)計(jì)

本文核心處理器采用的是STM32F103VET6,它是一款基于Cortex—M3內(nèi)核的ARM處理器芯片,內(nèi)部集成了512K Flash程序存儲(chǔ)空間和64K的SRAM數(shù)據(jù)存儲(chǔ)空間。STM32F103VET6最高工作頻率72 MHz,含有資源外設(shè)接口,包括2個(gè)12位數(shù)/模轉(zhuǎn)換器、7個(gè)定時(shí)器、CAN總線接口、SPI通信接口、3路USART串行通信接口等資源。圖3展示了基于STM32F103VET6的W5100通信系統(tǒng)結(jié)構(gòu)圖,包括電源電路、時(shí)鐘電路、復(fù)位電路、

JTAG調(diào)試電路和W5100以太網(wǎng)通信電路。

 


2.1 硬件電路設(shè)計(jì)

本系統(tǒng)中STM32F103VET6處理器采用SPI串行接口方式與W5100進(jìn)行通信,硬件電路連接如圖4所示。13F-60FGYDPNW2濾波器帶有網(wǎng)絡(luò)變壓器的RJ45接口元件。W5100的通信、控制引腳分別與STM32F103-VET6相連接,其中INT引腳連接PC4(外部中斷4),該引腳低電平有效。當(dāng)W5100產(chǎn)生連接、斷開、發(fā)送數(shù)據(jù)完成、接收到數(shù)據(jù)或者通信超時(shí)等情況時(shí),該引腳將會(huì)產(chǎn)生一個(gè)從高電平到低電平的跳變,觸發(fā)一次中斷。W5100的RST_BG引腳需要通過(guò)一個(gè)12.3 kΩ的電阻接地,由于沒(méi)有標(biāo)稱12.3 kΩ的電阻,因此采用12 kΩ電阻+300 Ω精密電阻的方式連接。[!--empirenews.page--]

 


W5100工作頻率較高,為了保證通信的穩(wěn)定性、可靠性,在設(shè)計(jì)PCB電路板的時(shí)候有幾點(diǎn)需要注意:

①RJ45接口元件與W5100之間的距離要足夠的小;

②終端匹配模塊要盡量地靠近網(wǎng)絡(luò)變壓器;

③晶振布局要遠(yuǎn)離網(wǎng)絡(luò)變壓器和TX、RX導(dǎo)線,避免對(duì)高速信號(hào)造成干擾;

④去耦電容距W5100的位置越近越好,導(dǎo)線相對(duì)越寬越好。

2.2 軟件程序設(shè)計(jì)

W5100的程序設(shè)計(jì)包括初始化和Socket驅(qū)動(dòng)兩個(gè)部分,初始化過(guò)程主要對(duì)芯片內(nèi)部的各寄存器編程來(lái)實(shí)現(xiàn)芯片的復(fù)位、收發(fā)緩沖器設(shè)置等底層工作,初始化過(guò)程涉及的寄存器包括:

①RMSR(接收緩沖區(qū)寄存器)和TMSR(發(fā)送緩沖區(qū)寄存器)設(shè)置為0xAA(默認(rèn)為0x55),本系統(tǒng)中只用到了Socket0和Socket1兩個(gè)端口,岡此將緩沖區(qū)設(shè)置為4 KB,增大發(fā)送和接收空間。

②RTR(重發(fā)時(shí)間寄存器)按照默認(rèn)值設(shè)置,即200 ms(0x07D0)。通信過(guò)程中,當(dāng)發(fā)出連接、斷開等命令后,在200 ms內(nèi)沒(méi)有收到對(duì)方的響應(yīng)時(shí),將會(huì)觸發(fā)重發(fā)機(jī)制。

③RCR(重發(fā)計(jì)數(shù)寄存器)設(shè)置為8次。

④IMR(中斷屏蔽寄存器),通過(guò)向相應(yīng)的中斷屏蔽位寫入1使能相應(yīng)的中斷源,指出了IMR的每一位對(duì)應(yīng)的中斷源,本系統(tǒng)中需要開啟7、6、1、0即可。即設(shè)置IMR寄存器為0xC3,中斷產(chǎn)生后,STM32F103VET6可以通過(guò)訪問(wèn)IR寄存器獲得中斷來(lái)源,從而進(jìn)行相應(yīng)的中斷程序處理。中斷屏蔽寄存器如下。

 

除了上面幾個(gè)寄存器之外,還需要設(shè)置MAC地址、IP地址、網(wǎng)關(guān)地址等,根據(jù)實(shí)際應(yīng)用向?qū)?yīng)的控制位寫入相應(yīng)的地址即可,這里不再贅述。

W5100可以工作在TCP和UDP兩種通信模式下,在不同的通信模式下又分為客戶端和服務(wù)器兩種工作狀態(tài),TCP是面向連接的以太網(wǎng)通信,相比UDP可以提供更可靠的通信服務(wù)。本文通過(guò)W5100建立TCP的客戶端工作模式,將采集到的數(shù)據(jù)通過(guò)以太網(wǎng)發(fā)送至數(shù)據(jù)中心的服務(wù)器。如圖5所示,客戶端首先向服務(wù)器發(fā)起請(qǐng)求連接,成功建立連接之后,當(dāng)周期性數(shù)據(jù)采集任務(wù)結(jié)束后,將向服務(wù)器發(fā)送數(shù)據(jù)包;如果遇到網(wǎng)絡(luò)阻塞,會(huì)產(chǎn)生通信超時(shí)或者沒(méi)有響應(yīng)等情況,將會(huì)終止一次通信連接,關(guān)閉Socket,然后重新發(fā)起新的連接請(qǐng)求,循環(huán)反復(fù)。

 


3 系統(tǒng)應(yīng)用

目前,通過(guò)本文開發(fā)的基于W5100的遠(yuǎn)程數(shù)據(jù)采集與傳輸系統(tǒng)已經(jīng)成功應(yīng)用在遼寧省建筑能耗監(jiān)測(cè)平臺(tái)、太原理工大學(xué)節(jié)約型校園監(jiān)管平臺(tái)、大連市公共機(jī)構(gòu)能耗監(jiān)管平臺(tái)等多個(gè)能耗監(jiān)測(cè)項(xiàng)目當(dāng)中。其中,遼寧省項(xiàng)目覆蓋范圍最廣,涉及到省內(nèi)14個(gè)地級(jí)市共50棟建筑的能耗采集與傳輸工作。調(diào)試期間,因能耗采集周期和上傳周期均一致,并且各客戶端的時(shí)間信息通過(guò)服務(wù)器進(jìn)行同步,導(dǎo)致所有的客戶端均在同一個(gè)時(shí)刻向數(shù)據(jù)中心發(fā)起連接或者發(fā)送能耗信息數(shù)據(jù),如圖6所示(上傳周期為5 min),第1分鐘的C1~Cn表示各地的數(shù)據(jù)采集器在同一時(shí)刻向服務(wù)器發(fā)起連接請(qǐng)求,第5 min的C1~Cn表示各數(shù)據(jù)采集器在同一時(shí)刻向服務(wù)器發(fā)送能耗數(shù)據(jù)信息,從而造成服務(wù)器偶爾因連接負(fù)載過(guò)多造成采集軟件死機(jī)等情況發(fā)生。


解決該問(wèn)題的方法其實(shí)很簡(jiǎn)單,設(shè)置各客戶端分時(shí)發(fā)送數(shù)據(jù)即可,但如果對(duì)不同的客戶端下載不同版本的程序,從而達(dá)到分時(shí)的目的,實(shí)際操作過(guò)程中很不方便,而且造成程序版本不唯一,容易出現(xiàn)問(wèn)題。經(jīng)過(guò)進(jìn)一步分析發(fā)現(xiàn),各客戶端的網(wǎng)絡(luò)通信質(zhì)量不一,與服務(wù)器成功建立連接的時(shí)間不同,通過(guò)下面的方法巧妙地將該問(wèn)題解決,如圖7所示。

 


通過(guò)在程序中加入下面兩行代碼:

Write_W5100(W5100_S0_CR,S_CR_SEND KEEP);

//監(jiān)測(cè)網(wǎng)絡(luò)狀態(tài)

SSR0_state=Read_W5100(W5100_S0_SSR);

//讀取當(dāng)前網(wǎng)絡(luò)狀態(tài)

對(duì)當(dāng)前的網(wǎng)絡(luò)進(jìn)行監(jiān)測(cè),客戶端與服務(wù)器成功建立連接之后,寄存器ssr0_state變?yōu)?x17,記錄從發(fā)起連接到建立連接之間的時(shí)間差△T,發(fā)送數(shù)據(jù)時(shí)順延△T時(shí)刻再發(fā)送,從而零成本解決了負(fù)載過(guò)大的難題。遼寧省項(xiàng)目自2010年7月開始運(yùn)行,至今已經(jīng)連續(xù)運(yùn)行2年多時(shí)間,結(jié)果表明該系統(tǒng)能夠準(zhǔn)確地將數(shù)據(jù)上傳,工作穩(wěn)定可靠。

結(jié)語(yǔ)

本文以STM32F103VET6為核心處理器,通過(guò)單片網(wǎng)絡(luò)控制芯片W5100建立了以太網(wǎng)遠(yuǎn)程數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)具有高集成度、低成本、開發(fā)周期短等優(yōu)勢(shì)。針對(duì)建筑能耗監(jiān)測(cè)系統(tǒng)多個(gè)客戶端同時(shí)發(fā)起連接和上傳數(shù)據(jù)造成的服務(wù)器壓力過(guò)大問(wèn)題,文中通過(guò)監(jiān)測(cè)客戶端與服務(wù)器之間的連接時(shí)間點(diǎn),在發(fā)送數(shù)據(jù)時(shí)順延時(shí)間差△T,巧妙地解決了該問(wèn)題。實(shí)際項(xiàng)目運(yùn)行結(jié)果表明,該系統(tǒng)運(yùn)行可靠穩(wěn)定,應(yīng)用前景良好。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉