基于單片機的以太網絡接入系統(tǒng)的實現及網絡性能分析
[摘 要] 介紹以太網控制芯片RTL8019AS,并設計在有限存儲空間的單片機中嵌入TCP/IP協(xié)議的以太網接入系統(tǒng),實現了RS-485現場總線設備通過嵌入TCP/IP單片機系統(tǒng)接入以太網,完成PC機與終端設備的遠程通信和控制,最后對系統(tǒng)性能進行測試分析,取得了滿意的效果。
[關鍵詞] 單片機;以太網;RTL8019AS芯片;TCP/IP協(xié)議;網絡性能分析
1 引 言
互聯(lián)網絡硬件、軟件的迅猛發(fā)展,使得網絡用戶呈指數增長,在電子設備日趨網絡化的背景下,越來越多的嵌入式應用需要支持網絡功能。 TCP/IP是一套把因特網上的各種系統(tǒng)互連起來的協(xié)議組,成為事實上最常用的網絡標準之一。在使用計算機進行網絡互聯(lián)的同時,各種家電設備、儀器儀表以及工業(yè)生產中的數據采集與控制設備在逐步地走向網絡化,以便共享網絡中龐大的信息資源。只要那些設備上實現了TCP/IP協(xié)議并增加一個網絡接口,就可方便地接入到現有的網絡中??紤]到單片機成本低廉,利用TCP/IP協(xié)議中的UDP(用戶數據報協(xié)議)、IP(網絡報文協(xié)議)、ARP(地址解析協(xié)議)及簡單的應用層協(xié)議,根據應用的需要做相應的裁減,文中將介紹用AT90S8515單片機與10Mbps以太網控制器芯片RTL8019AS設計嵌入式TCP/IP單片機系統(tǒng),成功地實現了RS-485現場總線設備通過嵌入TCP/IP的單片機系統(tǒng)接入以太網,完成PC 機與終端設備的遠程通信和控制,最后對系統(tǒng)性能進行分析。
2 以太網控制器RTL8019AS簡介
RTL8019AS是臺灣REALTEK公司生產的基于ISA總線的10 Mbps以太網控制器芯片。由于其優(yōu)良的性能、低廉的價格,使其在市場上10Mbps網卡中占有相當的份額。
主要性能:
(1)符合EthernetⅡ與IEEE802.3(10Base5、10Base2、10BaseT)標準;
(2)支持全雙工,收發(fā)可同時達到10Mbps速率;
?。?)16KB片內SRAM,用于收發(fā)緩沖,降低對主處理器的速度要求;
?。?)支持8/16位數據總線,8個中斷請求線以
(6)支持跳線和非跳線模式;
(7)允許4個診斷LED引腳可編程輸出;
(8)100腳的PQFP封裝。
該芯片功能很強,它集成介質訪問子層(MAC)和物理層的功能,對RTL8019做了很大改進,處理能力更強,操作更靈活。但與一般單片機接口時,只需要用到其中一部分即可完成網絡通信功能,其它引腳懸空。
3 與AT90S8515單片機系統(tǒng)的接口電路
該文選用AT90S8515單片機,與8051系列單片機相比,具有系統(tǒng)內可編程8KFLASH,內部集成了在片512字節(jié)EEPROM和512字節(jié)SRAM,使用精簡指令集,編寫程序簡練,調試程序方便。
系統(tǒng)硬件連接如圖3—1所示,系統(tǒng)提供RJ45接口連接Ethernet網絡,提供一個RS-485接口與現場設備連接,實現數據的網絡傳輸和設備的遠程控制。
AT90S8515單片機所提供的接口信號線為:PA口的8位數據總線D0~D7、5根地址線A8~A12、讀信號線RD、寫信號線WR、2根控制線 PB0、PB1。這些信號線與RTL8019AS的各信號線對應連接。其中,RTL8019AS的IOCS16B接下拉電阻,使芯片工作在8位總線方式,復位通過PB0控制,PB1片選地址使能。時鐘電路為單片機8MHz和網絡芯片20MHz。在現場控制端,需要一個RS-232轉RS-485的485芯片(WM485),在網絡接入端需要一個網絡隔離濾波器(FM2146),這樣接口電路設計完成,然后計算并分配地址空間,編寫匯編程序。該系統(tǒng)中網絡芯片在單片機中地址映射空間為80××H-0x9F××H,網絡芯片的內部I/O基地址為300H。
對設計電路的幾點說明,RTL8019AS的JP引腳接高電平,使芯片工作在跳線模式;沒有使用地址鎖存器,直接用地址數據復用口讀寫 RTL8019AS數據,網絡芯片只用到5位地址線,沒有沖突;系統(tǒng)采用查詢工作方式,沒有連接中斷信號線,簡化電路設計。[!--empirenews.page--]
4 軟件設計
4.1 嵌入TCP/IP協(xié)議的單片機匯編程序設計
單片機接入以太網,必須嵌入TCP/IP協(xié)議,用戶終端的應用程序才可以使用通用的網絡編程技術,例如使用Socket套接字,與單片機建立連接,實現數據通信。匯編流程圖如圖4—1所示,單片機首先初始化堆棧和串口,初始化RTL8019AS網絡芯片,系統(tǒng)的IP地址存放在單片機的片內EEPROM 中,單片機復位后首先讀取這些數據以初始化網絡?! ∮捎趩纹瑱C的資源有限,所以網絡協(xié)議根據嵌入式應用的需求作了裁剪,系統(tǒng)中使用了ARP、RARP、 IP、UDP等部分協(xié)議,既保證單片機接入以太網,又保證足夠小的代碼量。單片機主要完成網絡數據的解包和串口RS-485數據的打包。當以太網有數據到達該設備,單片機采用查詢方式,讀取網絡數據并分析,如果是ARP(物理地址解析協(xié)議)數據包,則轉入ARP處理程序,并發(fā)送RARP數據包,將IP地址和物理地址加入到局域網中建立映射。如果是UDP數據包且IP地址和端口號正確,則接收數據包,數據解包后,將數據部分通過串口輸出,控制RS-485現場設備。反之,如果現場通過串口發(fā)送數據到單片機,單片機將數據按照UDP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數據輸出到局域網中。根據需要還可以在收到串口數據時,先完成數據預處理,再將處理好的數據送到局域網。
TCP/IP協(xié)議的4層模型中,鏈路層部分由RTL8019AS完成,網絡層和傳輸層由單片機來處理,應用層則根據需要可以在單片機內完成,也可以由單片機轉給用戶或終端設備完成。
在單片機的程序處理中,主要有完整的ARP、RARP協(xié)議模塊,UDP協(xié)議模塊,其它協(xié)議根據需要取舍,完成系統(tǒng)要求,網絡芯片的初始化是必須的,對RTL8019AS各寄存器的配置正確,才能使硬件正常工作。
4.2 用戶終端程序設計
為了實現對嵌入TCP/IP的單片機通信系統(tǒng)設備的控制,筆者用VC++6.0在用戶終端PC上編寫一個數據傳輸的應用程序。通常采用Winsock編程,先創(chuàng)建一個套接字,綁定IP地址和端口號,使用UDP數據報,與嵌入TCP/IP單片機系統(tǒng)的套接字建立連接,當有網絡數據到達時,VC++響應 Receive()消息,讀取數據并處理;當用戶需要控制嵌入式設備,調用Send()函數發(fā)送控制命令或數據。
在調試試驗中,PC機上采用Sniffer軟件來監(jiān)視(或截獲)PC機同單片機之間通信的TCP/IP協(xié)議包數據流,測試系統(tǒng)的性能,取得了滿意的效果。
5 系統(tǒng)性能分析
網絡性能的主觀評價可以用如下的指標來體現:容量、利用率、最優(yōu)利用率、吞吐量、可供負載、精確度、效率、延遲、延遲變化量、響應時間等。網絡性能的最終表現形式就是最終用戶在使用過程中的主觀評價。
下面主要從各網絡層對系統(tǒng)性能的影響分別進行分析:
?。?)物理層、數據鏈路層性能。從系統(tǒng)的硬件上看,這兩層的功能主要由RTL8019AS完成,每幀最大傳輸包為1K字節(jié),但是數據的讀寫都是由單片機完成,所以整個系統(tǒng)的帶寬受到單片機速度的限制,文中設計系統(tǒng)理論最大帶寬為8Mbps,最優(yōu)利用率為3~4Mbps。
?。?)網絡層性能。在這里主要考慮傳輸協(xié)議的選擇。對于使用有重傳機制的TCP協(xié)議,意味著在
網絡環(huán)境惡劣的情況下,存在大量的數據報重傳,降低了網絡利用率,同時還有很大的延時。在系統(tǒng)的具體應用中,采用UDP協(xié)議滿足了數據采集的實時性要求,對于丟包現象,可以在應用層上采取必要的控制策略加以改善。
(3)應用層性能。主機、服務器、應用協(xié)議構成網絡應用層性能的三要素。主機和服務器是網絡連接的兩端,應用協(xié)議是網絡連接的兩端數據傳輸過程的一個約定。方案采用在以太網嵌入系統(tǒng)中運行一個套接字程序作為服務器,應用RS-485通訊協(xié)議對遠程設備控制和數據采集。這個過程中,網絡服務器的性能問題影響最大:服務器的負載、請求隊列過長、協(xié)議參數設置不當等等。
6 結束語
以太網的低成本、開放性、廣泛的開發(fā)和應用軟件、硬件支持,使得這種嵌入了 TCP/IP協(xié)議的單片機數據通信系統(tǒng),具有成本低、硬件少、運行穩(wěn)定可靠、傳輸速度快、開發(fā)周期短等優(yōu)點,有著廣泛的應用前景,特別是數據采集、數據傳輸等遠程監(jiān)控領域,以及智能家電的網絡信息化方面。目前,該系統(tǒng)在變電站監(jiān)控系統(tǒng)、遠程數據采集系統(tǒng)中得到成功應用。