以太網(wǎng)控制芯片W5100的存儲(chǔ)裝置設(shè)計(jì)
摘要:利用MSP430系列單片機(jī)直接控制以太網(wǎng)控制芯片W51000進(jìn)行數(shù)據(jù)傳輸和存儲(chǔ),給出了系統(tǒng)的工作原理、硬件連接和軟件實(shí)現(xiàn)方法。該裝置通過雙絞線與計(jì)算機(jī)相連,可以實(shí)現(xiàn)遠(yuǎn)距離、快速的數(shù)據(jù)傳輸及存儲(chǔ)。
關(guān)鍵詞:W5100;MSP430;數(shù)據(jù)存儲(chǔ)
引言
網(wǎng)絡(luò)的開放性和全球化,促進(jìn)了人類知識(shí)的共享和經(jīng)濟(jì)的全球化。以太網(wǎng)技術(shù)以其靈活方便的連接方式、良好的開放性、高效、成本低等優(yōu)點(diǎn),已經(jīng)廣泛地應(yīng)用于各種計(jì)算機(jī)網(wǎng)絡(luò),并且還在不斷地發(fā)展。目前,網(wǎng)絡(luò)技術(shù)在電子產(chǎn)品中的應(yīng)用越來越廣,更多的設(shè)備需要提供網(wǎng)絡(luò)接口,以方便與外部互聯(lián)通信。
隨著技術(shù)的不斷發(fā)展,越來越多的測(cè)試系統(tǒng)、控制機(jī)構(gòu)等都需要實(shí)時(shí)地、快速地并且遠(yuǎn)距離地傳輸數(shù)據(jù)。傳統(tǒng)的存儲(chǔ)裝置利用RS232、RS485等串口,數(shù)據(jù)傳輸速率非常有限,面對(duì)大數(shù)據(jù)量實(shí)時(shí)傳輸?shù)囊箫@得無能為力?,F(xiàn)在流行的USB總線可以達(dá)到非常高的傳輸速率,但傳輸距離有較大的限制。利用以太網(wǎng)接口實(shí)現(xiàn)快速、遠(yuǎn)距離的數(shù)據(jù)傳輸和存儲(chǔ)是一種非常好的解決方法。
1 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。該存儲(chǔ)裝置由雙絞線接口RJ45口、以太網(wǎng)接口芯片W5100、TI公司的MSP430系列單片機(jī)MSP430FG4618、電源模塊、串口讀數(shù)口等組成。計(jì)算機(jī)通過自身的網(wǎng)卡及網(wǎng)線與該存儲(chǔ)設(shè)備相連。RJ45口采用集成網(wǎng)絡(luò)變壓器的13F-60FGYDPNW2NL,可以減少硬件平臺(tái)的面積,并且使連接更方便。這種網(wǎng)口自帶兩個(gè)小燈,可以直觀地顯示雙絞線的連接情況和數(shù)據(jù)的傳輸情況。
1.1 W5100的接口設(shè)計(jì)
1.1.1 W5100簡(jiǎn)介
W5100是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有10/100M以太網(wǎng)控制器,主要應(yīng)用于高集成、高穩(wěn)定、高性能和低成本的嵌入式系統(tǒng)中。使用W5100可以實(shí)現(xiàn)沒有操作系統(tǒng)的Internet連接。W5100與IEEE802.310BASE-T和IEEE802.3u 100BASE-TX兼容,內(nèi)部集成了全硬件的TCP/IP協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。W5100內(nèi)部還集成有16 KB存儲(chǔ)器用于數(shù)據(jù)傳輸。使用W5100不需要考慮以太網(wǎng)的控制,只需要進(jìn)行簡(jiǎn)單的端口(Socket)編程。
W5100的主要特性如下:支持自動(dòng)通信握手(全雙工和半雙工);支持自動(dòng)MDI/MDIX,自動(dòng)校正信號(hào)極性;支持ADSL連接(支持PPPoE協(xié)議中的PAP/CHAP認(rèn)證模式);支持4個(gè)獨(dú)立端口同時(shí)運(yùn)行;不支持IP的分片處理;內(nèi)部16 KB存儲(chǔ)器用于數(shù)據(jù)發(fā)送/接收緩存;3.3 V工作電壓,I/O口可承受5 V電壓;80腳LQFP小型封裝;支持SPI接口(SPI模式O、3);多功能LED信號(hào)輸出(TX、RX、全雙工/半雙工、地址沖突、連接、速度等)。
通信模式可選為自動(dòng)識(shí)別,或者強(qiáng)制設(shè)定為10BASE-T/100BASE-TX、HDX/FDX等設(shè)置的組合通信方式。芯片還提供了許多接口用于接發(fā)光二極管,包括Tx(發(fā)送)、Rx(接收)、Full/Duplex(全/半雙工)、Collision(沖突)、Link(連接)、Speed(速度)的指示燈,以顯示芯片的當(dāng)前工作態(tài)。
1.1.2 W5100的接口電路
W5100和單片機(jī)的接口如圖2所示。W5100的數(shù)據(jù)線SD0~SD7直接與單片機(jī)的通用I/O口相連。讀信號(hào)線、寫信號(hào)線、片選信號(hào)、中斷信號(hào)INT分別與單片機(jī)的通用I/O引腳相連。W5100上的復(fù)位引腳采用低電平復(fù)位,至少要保持20 ms的復(fù)位時(shí)間,此處采用阻容電路對(duì)其進(jìn)行復(fù)位。調(diào)節(jié)電阻值到10 kΩ,電容值到10μF。
W5100供電電壓為3.3 V和1.8 V,其中1.8 V可由芯片內(nèi)部線性穩(wěn)壓電源產(chǎn)生,外接濾波電路后供回芯片。W5100通過異步數(shù)據(jù)地址等接口與單片機(jī)相接。芯片的以太網(wǎng)物理單元通過接收RXIP/RXIN和發(fā)送TXOP/TXON,將網(wǎng)絡(luò)接口RJ45和雙絞線接入到計(jì)算機(jī)當(dāng)中。
W5100與單片機(jī)的接口方式有3種:直接總線接口模式、間接總線接口模式和SPI模式。其中,直接總線接口模式適用于大數(shù)據(jù)量傳輸?shù)那闆r;SPI模式的接口連線較少,適用于數(shù)據(jù)量不大、傳輸速率相對(duì)較低的情況;間接總線接口模式下的數(shù)據(jù)傳輸性能則介于兩者之間。在本系統(tǒng)中選用直接總線接口模式,以最大限度地提高數(shù)據(jù)的傳輸速率。
1.2 串口的設(shè)計(jì)
在實(shí)際應(yīng)用中,很可能出現(xiàn)數(shù)據(jù)已經(jīng)存入但是RJ45口損壞而沒有辦法讀數(shù)的情況。為了防止因RJ45口的損壞而導(dǎo)致整個(gè)裝置不可用,可加入串口模塊直接利用串口進(jìn)行讀數(shù)。
2 系統(tǒng)工作原理
2.1 工作狀態(tài)圖
工作狀態(tài)圖如圖3所示。
2.2 網(wǎng)絡(luò)協(xié)議的選擇
W5100本身集成了高度成熟的TCP/IP協(xié)議棧、以太網(wǎng)MAC層、PHY層等,支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE等協(xié)議。
TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。一個(gè)TCP連接必須要經(jīng)過3次“對(duì)話”才能建立起來。
UDP是一個(gè)無連接協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時(shí)就簡(jiǎn)單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。雖然UDP是無連接的協(xié)議,它不保證數(shù)據(jù)包一定能夠到達(dá)目的主機(jī),但是在本應(yīng)用中存儲(chǔ)器跟主機(jī)通常位于同一內(nèi)部局域網(wǎng)內(nèi),網(wǎng)絡(luò)環(huán)境良好,數(shù)據(jù)丟失的可能性很小。另外,UDP容易實(shí)現(xiàn),占用資源少,傳輸速度高,可以滿足整個(gè)裝置的應(yīng)用需要。
3 軟件設(shè)計(jì)
3.1 主程序設(shè)計(jì)
軟件實(shí)現(xiàn)的主程序流程如圖4所示。
3.2 寄存器的設(shè)置
通過設(shè)置W5100內(nèi)部的控制寄存器,完全可以像在局域網(wǎng)中配置IP地址一樣簡(jiǎn)單地配置設(shè)計(jì)的系統(tǒng)。
常用寄存器主要包括:模式寄存器(MR)、網(wǎng)關(guān)地址寄存器(GWR)、子網(wǎng)掩碼寄存器(SUBR)、物理地址寄存器(SHAR)、源IP地址寄存器(SI-PR)、中斷寄存器(IR)、中斷屏蔽寄存器(IMR)、重試時(shí)間寄存器(RTR)、重試次數(shù)寄存器(RCR)、接收數(shù)據(jù)緩沖區(qū)大小寄存器(RMSR)、發(fā)送數(shù)據(jù)緩沖區(qū)大小寄存器(TMSR)等。套接字寄存器平均分為4部分,對(duì)4個(gè)獨(dú)立的網(wǎng)絡(luò)通道單獨(dú)設(shè)置;發(fā)送和接收數(shù)據(jù)緩沖區(qū)用來存放臨時(shí)數(shù)據(jù)。通過對(duì)這些寄存器的設(shè)置可以選擇工作模式及協(xié)議棧,設(shè)置裝置自己的網(wǎng)關(guān)、IP、子網(wǎng)掩碼、物理地址,還可以對(duì)端口進(jìn)行打開和關(guān)閉。
用戶自己定義MAC地址時(shí)必須注意,MAC地址的第一個(gè)字節(jié)必須為偶數(shù)。第一個(gè)字節(jié)為奇數(shù)的MAC地址為多播地址,如果把MAC地址的第一個(gè)字節(jié)定義為奇數(shù),可能會(huì)引起網(wǎng)絡(luò)通信錯(cuò)誤。
3.3 讀寫程序設(shè)計(jì)
讀時(shí)序如圖5所示,寫時(shí)序如圖6所示。
地址線有15位,所以占用單片機(jī)的第7、8口,數(shù)據(jù)線占用第10口。按照讀時(shí)序編寫的讀控制函數(shù)程序如下:
4 結(jié)論
單片機(jī)對(duì)以太網(wǎng)卡的驅(qū)動(dòng)是非常關(guān)鍵的一步。利用以太網(wǎng)控制電器設(shè)備,無需另外鋪設(shè)線路,降低了成本,是現(xiàn)代控制發(fā)展的一條新出路。該設(shè)計(jì)方案具有硬件連接簡(jiǎn)單、功耗低、體積小、運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。