本站小編為你精心準(zhǔn)備了以太網(wǎng)控制接口設(shè)計(jì)與實(shí)現(xiàn)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
摘要:
本文研究了新型以太網(wǎng)控制芯片ENC28J60的特點(diǎn)、性能以及與外部接口硬件電路設(shè)計(jì),分析了TCP/IP、UDP等協(xié)議的原理,介紹了MCU(微控制器)對(duì)ENC28J60芯片的控制過程和TCP/IP協(xié)議處理數(shù)據(jù)包的流程,并在STC11F32EX+ENC28J60+HR901170A平臺(tái)上實(shí)現(xiàn)了以太網(wǎng)通信。本方案可以將數(shù)據(jù)按網(wǎng)絡(luò)協(xié)議處理,實(shí)現(xiàn)數(shù)據(jù)的以太網(wǎng)傳輸,具有設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單、實(shí)現(xiàn)方便、可擴(kuò)展性,為小型低成本系統(tǒng)具備以太網(wǎng)接口提供了一種新的方法。
關(guān)鍵詞:
以太網(wǎng)ENC28J60SPI接口TCP/IP協(xié)議HTML超文本語言
1引言
ENC28J60是MicrochipTechnology近期推出的28引腳獨(dú)立以太網(wǎng)控制芯片,在此之前,以太網(wǎng)控制芯片都是為個(gè)人計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的,如RTL8019、DM9008、CS8900A、LAN91C111等,這些器件不僅結(jié)構(gòu)復(fù)雜,體積龐大,且比較昂貴。目前市場(chǎng)上大部分以太網(wǎng)控制芯片的封裝均超過80引腳,而符合IEEE802.3協(xié)議的ENC28J60僅有28引腳就能提供類似的功能,所以利用ENC28J60芯片來設(shè)計(jì)以太網(wǎng)控制系統(tǒng)具有設(shè)計(jì)簡(jiǎn)單、占用空間小等優(yōu)點(diǎn)。
2ENC60J芯片簡(jiǎn)介
ENC28J60芯片可為嵌入式應(yīng)用提供低引腳數(shù)、低成本、高效、易用的遠(yuǎn)程通訊解決方案,利用ENC28J60以太網(wǎng)控制芯片可實(shí)現(xiàn)占位小、成本低、精簡(jiǎn)的嵌入式網(wǎng)絡(luò)應(yīng)用系統(tǒng),芯片管腳定義見圖1。
2.1ENC28J60主要功能模塊ENC28J60由七個(gè)主要功能模塊組成:(1)SPI接口——充當(dāng)主控制器和ENC28J60之間通信通道;(2)控制寄存器——用于控制和監(jiān)視ENC28J60;(3)雙端口RAM緩沖器——用于接收和發(fā)送數(shù)據(jù)包;(4)判優(yōu)器——當(dāng)DMA、發(fā)送和接收模塊發(fā)出請(qǐng)求時(shí)對(duì)RAM緩沖器的訪問進(jìn)行控制;(5)總線接口——對(duì)通過SPI接收的數(shù)據(jù)和命令進(jìn)行解析;(6)MAC(MediumAccessControl)模塊——實(shí)現(xiàn)符合IEEE802.3標(biāo)準(zhǔn)的MAC邏輯;(7)PHY(物理層)模塊——對(duì)雙絞線上的模擬數(shù)據(jù)。
2.2其主要功能有以下幾個(gè)方面(1)10Mb/sSPI接口,業(yè)界標(biāo)準(zhǔn)的串行通信端口,充當(dāng)主控制器和ENC28J60之間通信通道,使嵌入式應(yīng)用系統(tǒng)的以太網(wǎng)接口變得極其簡(jiǎn)便;(2)具有可編程過濾功能,特殊的過濾器,包括Micro-chip的可編程模式匹配過濾器,可自動(dòng)評(píng)價(jià)、接收或拒收MagicPacket,單播(singlecast)、多播(Multicast)或廣播(Broadcast)信息包,以減輕主控芯片的處理負(fù)荷;(3)符合IEEE802.3協(xié)議,內(nèi)置10Mbit/s以太網(wǎng)物理層器件(PHY:PhysicalLayer)及介質(zhì)訪問控制器(MAC:MediaAccessContro1),可按業(yè)界標(biāo)準(zhǔn)的以太網(wǎng)協(xié)議可靠地收發(fā)信息包,并具有可編程填充和CRC(CyclicalRedundancyCheck)自動(dòng)生成功能;(4)可編程8kByte發(fā)送/接收數(shù)據(jù)包雙端口SRAM(StaticRandomAccessMemory),并可配置發(fā)送/接收緩沖器大小,硬件管理的循環(huán)接收FIFO(FirstInputFirstOutput),字節(jié)寬度的隨機(jī)訪問和順序訪問(地址自動(dòng)遞增),用于快速數(shù)據(jù)傳送的內(nèi)部DMA(DirectMemoryAccess)。該緩沖存儲(chǔ)器提供了靈活可靠的數(shù)據(jù)管理機(jī)制;(5)兩個(gè)用來表示連接、發(fā)送、接收、沖突和全/半雙工狀態(tài)的可編程LED輸出;(6)25MHz時(shí)鐘,帶可編程預(yù)分頻器的時(shí)鐘輸出引腳,工作電壓范圍是3.14V到3.45V;(7)支持全雙工和半雙工模式可編程在發(fā)生沖突時(shí)自動(dòng)重發(fā),可編程填充和CRC生成,可編程自動(dòng)拒絕錯(cuò)誤數(shù)據(jù)包;(8)溫度范圍:-40°C到+85°C(工業(yè)級(jí))。
3硬件設(shè)計(jì)
3.1以太網(wǎng)控制芯片原理圖硬件設(shè)計(jì)框圖見圖2。圖中RJ-45為標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口插座,一般情況下僅使用1,2,3,6管腳,MCU這里設(shè)計(jì)為MCS-51系列單片機(jī),為提高網(wǎng)絡(luò)數(shù)據(jù)傳輸速度,本處使用宏晶科技公司新推出的STC11F32EX單片機(jī),該系列單片機(jī)指令周期僅為1個(gè)周期,具備ISP/IAP在系統(tǒng)可編程功能,最高工作時(shí)鐘可達(dá)35MHz,本設(shè)計(jì)中選為29.4912M,實(shí)際測(cè)試時(shí),在使用PING指令時(shí)PING通的時(shí)間達(dá)到小于3ms,如果使用W77E58作為MCU,指令周期為4個(gè)周期,PING指令時(shí)PING通的時(shí)間到小于7ms(第一次PING指令回送時(shí)間略長(zhǎng))。芯片工作時(shí)鐘為25M,以太網(wǎng)變壓器是比較成熟的產(chǎn)品,與MCU之間的連線為CS、SDI、SDO、SCK、INT,如果以查詢方式在以太網(wǎng)上交換數(shù)據(jù),那么INT中斷引腳可以不連接,芯片復(fù)位可以用軟件復(fù)位,所以芯片的第10腳RESET引腳也可以不連接。
3.2SPI接口ENC28J60共有128個(gè)控制寄存器,128個(gè)控制寄存器提供主控制器和片內(nèi)以太網(wǎng)控制芯片邏輯電路之間的主要接口,寫這些寄存器可控制接口操作,而讀這些寄存器則允許主控制器監(jiān)控這些操作,控制寄存器存儲(chǔ)空間分為四個(gè)存儲(chǔ)區(qū),可用ECON1寄存器中的存儲(chǔ)區(qū)選擇位BSEL1:BSEL0進(jìn)行選擇。每個(gè)存儲(chǔ)區(qū)都是32字節(jié)長(zhǎng),可以用5位地址值進(jìn)行尋址,所有存儲(chǔ)區(qū)的最后五個(gè)單元(1Bh-1Fh)都指向同一組寄存器:EIE、EIR、ESTAT、ECON2和ECON1,它們是控制和監(jiān)視器件工作的關(guān)鍵寄存器,由于被映射到同一存儲(chǔ)空間,因此可以在不切換存儲(chǔ)區(qū)的情況下很方便地訪問它們,ENC28J60的控制寄存器通常被分為ETH、MAC和MII三組寄存器。ENC28J60所執(zhí)行的操作完全依據(jù)外部主控制器通過SPI接口發(fā)出的命令。這些命令為一個(gè)或多個(gè)字節(jié)的指令,用于訪問控制存儲(chǔ)器和以太網(wǎng)緩沖區(qū),指令至少包含一個(gè)3位操作碼和一個(gè)用于指定寄存器地址或數(shù)據(jù)常量的5位參數(shù),寫完位域指令后還會(huì)有一個(gè)或多個(gè)字節(jié)的數(shù)據(jù)。ENC28J60共有七條指令,芯片的Datasheet上有所有操作的命令代碼。
4各協(xié)議的分析與選擇
4.1TCP、UDP協(xié)議分析為了測(cè)試系統(tǒng)與網(wǎng)絡(luò)的連接,需要實(shí)現(xiàn)ICMP協(xié)議中的Ping應(yīng)答協(xié)議,Ping應(yīng)答協(xié)議主要是檢查網(wǎng)絡(luò)是否連通。IP是網(wǎng)絡(luò)層上的主要協(xié)議,同時(shí)被TCP和UDP使用,TCP和UDP是運(yùn)輸層協(xié)議。UDP協(xié)議主要用來完成數(shù)據(jù)傳輸,該協(xié)議是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議,與TCP協(xié)議相比傳輸效率較高,設(shè)計(jì)中選用UDP協(xié)議,可在應(yīng)用層用校驗(yàn)機(jī)制來提高網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)目煽啃浴Mㄟ^上述裁剪,就得到了一個(gè)簡(jiǎn)潔實(shí)用的UDP/IP協(xié)議,使得MCU可以快速可靠地收發(fā)網(wǎng)絡(luò)UDP數(shù)據(jù)包,實(shí)現(xiàn)穩(wěn)定的通訊。基本協(xié)議框架見圖3。
4.2ICMP、UDP、TCP協(xié)議的實(shí)現(xiàn)以太網(wǎng)鏈路層的功能由以太網(wǎng)控制芯片ENC28J60完成,MCU完成TCP/IP協(xié)議的解釋和執(zhí)行,MCU首先要對(duì)以太網(wǎng)控制芯片復(fù)位,并對(duì)芯片內(nèi)寄存器進(jìn)行初始化,確定發(fā)送和接收的條件,設(shè)置好MAC和IP地址,要求IP地址設(shè)置在和主控制器同一個(gè)局域網(wǎng)內(nèi),即IP地址的前三位相同,最后一位不同。然后才能發(fā)送數(shù)據(jù)或接收數(shù)據(jù),本設(shè)計(jì)中接收和發(fā)送數(shù)據(jù)都采用中斷方式進(jìn)行。當(dāng)一幀數(shù)據(jù)發(fā)送結(jié)束、接收到一幀數(shù)據(jù)或出錯(cuò)等事件發(fā)生時(shí),以太網(wǎng)控制芯片向主控芯片申請(qǐng)中斷,主控制器響應(yīng)中斷后,根據(jù)中斷狀態(tài)寄存器的內(nèi)容進(jìn)行相應(yīng)處理,MCU完成對(duì)數(shù)據(jù)的打包解包,在發(fā)送或接收數(shù)據(jù)時(shí),控制器會(huì)首先發(fā)送ARP請(qǐng)求,建立地址映射,ARP協(xié)議時(shí)芯片自主完成的。MCU根據(jù)情況將數(shù)據(jù)按照TCP協(xié)議或UDP協(xié)議格式打包,送入ENC28J60芯片,由芯片將數(shù)據(jù)輸出到局域網(wǎng)中,反之,當(dāng)有數(shù)據(jù)從局域網(wǎng)過來時(shí),控制器產(chǎn)生中斷,請(qǐng)求MCU進(jìn)行處理,MCU對(duì)數(shù)據(jù)包進(jìn)行分析。
4.3TCP協(xié)議的具體實(shí)現(xiàn)TCP協(xié)議是為應(yīng)用層提供的服務(wù),面向連接意味著兩個(gè)使用TCP的應(yīng)用(通常是一個(gè)客戶一個(gè)是服務(wù)器)在彼此交換數(shù)據(jù)之前必須先建立一個(gè)TCP連接。這一過程與打電話很相似,先撥號(hào)振鈴,等待對(duì)方摘機(jī)說“喂”,然后才說明是誰。以太網(wǎng)首部地址0-13H,就是以太網(wǎng)的目的地址和源地址以及幀類型,IP首部從地址的第14個(gè)字節(jié)開始,包括版本長(zhǎng)度、服務(wù)類型、總長(zhǎng)度等共20個(gè)字節(jié),TCP首部見圖4。
5HTML語言設(shè)計(jì)
Internet的應(yīng)用為信息的交流帶來了便利,人們不僅可瀏覽他人的網(wǎng)站,還可編制自己的個(gè)人網(wǎng)站,超文本制作語言HTML是編制web頁的基本工具。標(biāo)準(zhǔn)的HTML文件都是以<HTML>開始,以</HTML>結(jié)束的,Html命令分為以下幾類:(1)文件結(jié)構(gòu)命令:用來標(biāo)注出文件的結(jié)構(gòu);(2)區(qū)段格式命令:將HTML文件中的某區(qū)段文字用特定的格式顯示;(3)下錨連接命令:標(biāo)記超文本連接;(4)字符格式命令:用于設(shè)置字符的顯示格式;(5)圖像命令:用于顯示圖像資料;(6)列表命令:用于制作明細(xì)清單;(7)表格命令:用于制作各種表格。在實(shí)際應(yīng)用中為了高效的完成數(shù)據(jù)交換,建議使用UDP協(xié)議,UDP協(xié)議實(shí)際上就相當(dāng)于我們經(jīng)常使用的RS232口,這個(gè)協(xié)議不會(huì)像TCP協(xié)議那樣需要先建立連接,延長(zhǎng)了傳輸前的準(zhǔn)備過程,降低了數(shù)據(jù)傳輸效率(只是基于TCP協(xié)議的數(shù)據(jù)傳輸?shù)目煽啃暂^高)。
6結(jié)語
我們?cè)赟TC11F32EX+ENC28J60+HR901170A平臺(tái)上實(shí)現(xiàn)了以太網(wǎng)通信,本文采用簡(jiǎn)化改進(jìn)的TCP/IP協(xié)議,使系統(tǒng)能夠順利地接入以太網(wǎng),使用UDP協(xié)議與其它系統(tǒng)交換數(shù)據(jù),相對(duì)于其它以太網(wǎng)接入方案,本設(shè)計(jì)具備數(shù)據(jù)傳輸速率高、設(shè)計(jì)精簡(jiǎn)等特點(diǎn),芯片的SPI接口使得普通單片機(jī)也能具有以太網(wǎng)連接功能,這為小型低成本系統(tǒng)具備以太網(wǎng)接口提供了一種新的方法。
參考文獻(xiàn)
[1]竇振中.嵌入式系統(tǒng)設(shè)計(jì)方法的演化——從單片機(jī)到單片系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2001(02).
[2]李學(xué)海,劉治山,宋慶國(guó).80C51上電復(fù)位和復(fù)位延時(shí)的時(shí)序分析[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(12).
[3]孫惠章.基于MC9328MX1嵌入式最小系統(tǒng)的設(shè)計(jì)[J].電子工程師,2006(09).
[4]周曉陽,程紅,張曉媛.新型以太網(wǎng)控制器ENC28J60及其接口技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(08).
[5]王偉峰,魏宗壽.一種低成本的Ethernet嵌入式系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2005(08).
[6]楊俊起,賀體龍,袁兆強(qiáng).CAN現(xiàn)場(chǎng)總線在工業(yè)以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用[J].河南科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2004(04).
作者:何煦 熊建林 單位:中國(guó)電子科技集團(tuán)公司第三十六研究所