硬件協(xié)議棧芯片W3100A
關(guān)鍵詞:TCP/IP協(xié)議棧;W3100A;Socket API;以太網(wǎng)
1 W3100A簡(jiǎn)介
近年來,隨著技術(shù)的飛速進(jìn)步,電子產(chǎn)品正朝著小型化、智能化和網(wǎng)絡(luò)化的方向發(fā)展。在小型嵌入式設(shè)備中實(shí)現(xiàn)以太網(wǎng)互聯(lián)正在成為研究和應(yīng)用的熱點(diǎn)。在這種潮流的推動(dòng)下,研究人員提出了許多解決方案。傳統(tǒng)的做法是在嵌入式設(shè)備中植入TCP/IP協(xié)議棧,或者移植一個(gè)具有TCP/IP協(xié)議棧的嵌入式操作系統(tǒng)。雖然上述做法在很多應(yīng)用中取得了不錯(cuò)的效果,但都是以犧牲大量資源為代價(jià)的。而本文介紹的W3100A硬件協(xié)議棧則可以在占用極低系統(tǒng)資源的條件下快速完成網(wǎng)絡(luò)通訊。
W3100A的主要性能特點(diǎn)如下:
●硬件協(xié)議棧包括TCP、 IP Ver.4、 UDP、 ICMP、 ARP;
●支持硬件以太網(wǎng)協(xié)議DLC和MAC;
●同時(shí)支持四路獨(dú)立的網(wǎng)絡(luò)連接;
●支持Ping命令;
●協(xié)議處理速度達(dá)到全雙工4~5Mbps;
●支持Intel/Motorola MCU總線接口;
●支持I2C接口;
●帶有標(biāo)準(zhǔn)的MII接口,可連接底層以太網(wǎng)接口芯片;
●可提供Socket API加速應(yīng)用程序開發(fā);
●支持全雙工模式;
●其內(nèi)建16KB雙口RAM可作為數(shù)據(jù)緩沖區(qū);
●采用0.35μm CMOS制造工藝。
2 W3100A的引腳功能
W3100A采用64腳LQFP封裝,其引腳分布如圖1所示。各引腳功能描述如下:
TXD[0]~TXD[3]:在TXD_CLK上升沿發(fā)送數(shù)據(jù)。串行模式時(shí),TXD[0]用作串行數(shù)據(jù)發(fā)送引腳,TXD[1]~TXD[3]無(wú)效。
TXE:發(fā)送使能端。
TXD_CLK:數(shù)據(jù)發(fā)送時(shí)鐘,時(shí)鐘由以太網(wǎng)接口芯片提供。
RXD[0]~RXD[3]:在TXD_CLK下降沿接收數(shù)據(jù)。串行模式時(shí),RXD[0]作為串行數(shù)據(jù)接收引腳,RXD[1]~RXD[3]無(wú)效。
RXDV/CRS:載波監(jiān)測(cè)。高電平有效。
RXD_CLK:數(shù)據(jù)接收時(shí)鐘,時(shí)鐘由以太網(wǎng)接口芯片提供。
COL:沖突探測(cè)引腳。在半雙工模式發(fā)生沖突時(shí)有效。
A[14~8]/DA[6~0]:在MCU總線接口模式下作為14~8位地址。在I2C模式下作為I2C接口6~0位設(shè)備地址。
A[7~0]:7~0位地址線。
D[7~0]:8位數(shù)據(jù)線。
INT:接收發(fā)送中斷請(qǐng)求。低電平有效。
CS:片選信號(hào)。低電平有效。
WR:寫信號(hào)。低電平有效。
RD:讀信號(hào)。低電平有效。
RESET:復(fù)位信號(hào)。
CLOCK:工作時(shí)鐘。通常由以太網(wǎng)接口芯片提供,推薦頻率為25MHz。
EXT_CLK:外部時(shí)鐘輸入信號(hào)。
SERIAL:10BASE-T SERIAL或NIBBLE選擇。
FDPLX:全雙工/半雙工選擇。0為全雙工,1為半雙工。
MODE[2~0]:用于選擇W3100A工作模式。000為時(shí)鐘模式;001為外部時(shí)鐘模式;010為無(wú)時(shí)鐘模式;011為I2C模式;1xx為測(cè)試模式。3 W3100A的內(nèi)部結(jié)構(gòu)
系統(tǒng)設(shè)計(jì)人員利用W3100A可以方便快捷地為產(chǎn)品添加網(wǎng)絡(luò)功能。W3100A的硬件TCP/IP協(xié)議棧包含了TCP、UDP、IP、ARP和ICMP協(xié)議。并支持一套與Windows系統(tǒng)相同的socket API。W3100的內(nèi)部結(jié)構(gòu)框圖如圖2所示。
W3100A共有32kB的內(nèi)部存儲(chǔ)器空間。其中位于存儲(chǔ)器頂部地址為0x0000~0x01FF的1kB空間分配給了控制寄存器組,0x2000~0x3FFF則作為保留空間供給其它設(shè)備使用,而0x4000~0x5FFF為發(fā)送緩沖區(qū),0x6000~0x7FFF為數(shù)據(jù)接收緩沖區(qū)。由于W3100A可以為用戶提供4路獨(dú)立的連接通路,所以相對(duì)應(yīng)的8kB發(fā)送緩沖區(qū)和 8kB接收緩沖區(qū)可以通過寄存器TMSR和RMSR進(jìn)行配置。配置方法如圖3所示。
4 應(yīng)用設(shè)計(jì)
4.1 硬件設(shè)計(jì)
W3100A有3種不同的工作模式,分別為Direct Bus I/F模式、Indirect Bus I/F模式和I2C Bus I/F模式。用戶可根據(jù)自己的實(shí)際情況進(jìn)行選擇。下面就常用的Direct Bus I/F模式和I2C Bus I/F模式作以簡(jiǎn)單介紹。
圖4是Direct Bus I/F模式的硬件結(jié)構(gòu)框圖。
由圖可見,該模式下,W3100A共用了15條地址線、8位數(shù)據(jù)線、片選CS,及讀寫控制信號(hào)WR和RD。不難看出,該模式下硬件電路設(shè)計(jì)相對(duì)簡(jiǎn)單,但要占用較多的MCU資源。同時(shí)還應(yīng)該注意,在Direct Bus I/F模式下,W3100A的工作時(shí)鐘也有3種不同的模式,在大多數(shù)情況下,系統(tǒng)推薦使用Clocked 模式,因?yàn)樵撃J较孪到y(tǒng)可以穩(wěn)定的工作。但是如果系統(tǒng)中MCU的訪問速度小于100ns,則應(yīng)為W3100A單獨(dú)外接時(shí)鐘并選擇External Clock模式。而當(dāng)MCU的CS、RD、WD信號(hào)時(shí)序滿足W3100A的要求時(shí),也可以不要時(shí)鐘。
I2C Bus I/F模式下,可使用SCL和SDA在MCU和W3100A之間串行傳輸數(shù)據(jù),時(shí)鐘信號(hào)線SCL由MCU提供,SDA則用來在MCU和W3100A之間傳送地址和數(shù)據(jù)。只要系統(tǒng)中的MCU支持I2C總線即可使用該模式??梢钥闯?,使用該模式可以大量減少MCU與W3100A的連接線,從而節(jié)省MCU的資源。
4.2 軟件設(shè)計(jì)
此外,通過WIZnet公司為W3100A專門提供的Socket API軟件,可使網(wǎng)絡(luò)通訊的軟件設(shè)計(jì)更加方便。利用該軟件進(jìn)行設(shè)計(jì)時(shí),應(yīng)首先初始化W3100A的網(wǎng)絡(luò)設(shè)置,即在相應(yīng)的寄存器中設(shè)置默認(rèn)網(wǎng)關(guān)、子網(wǎng)掩碼、本機(jī)物理地址和IP地址,然后建立Socket連接以實(shí)現(xiàn)通訊。整個(gè)過程與Windows Socket編程十分類似,此處不再贅述。
5 結(jié)論
W3100A具有傳輸速度快、工作穩(wěn)定可靠、系統(tǒng)開銷小等優(yōu)點(diǎn),可以為小型嵌入式設(shè)備提供很好的網(wǎng)絡(luò)解決方案。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論