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