根據(jù)單片機的以太網(wǎng)絡(luò)接入系統(tǒng)的實現(xiàn)及網(wǎng)絡(luò)性能分析
根據(jù)單片機的以太網(wǎng)絡(luò)接入系統(tǒng)的實現(xiàn)及網(wǎng)絡(luò)性能分析
?。壅∫荨〗榻B以太網(wǎng)控制芯片RTL8019AS,并設(shè)計在有限存儲空間的單片機中嵌入TCP/IP協(xié)議的以太網(wǎng)接入系統(tǒng),實現(xiàn)了RS-485現(xiàn)場總線設(shè)備通過嵌入TCP/IP單片機系統(tǒng)接入以太網(wǎng),完成PC機與終端設(shè)備的遠(yuǎn)程通信和控制,最后對系統(tǒng)性能進(jìn)行測試分析,取得了滿意的效果。
[關(guān)鍵詞] 單片機;以太網(wǎng);RTL8019AS芯片;TCP/IP協(xié)議;網(wǎng)絡(luò)性能分析
1 引 言
互聯(lián)網(wǎng)絡(luò)硬件、軟件的迅猛發(fā)展,使得網(wǎng)絡(luò)用戶呈指數(shù)增長,在電子設(shè)備日趨網(wǎng)絡(luò)化的背景下,越來越多的嵌入式應(yīng)用需要支持網(wǎng)絡(luò)功能。 TCP/IP是一套把因特網(wǎng)上的各種系統(tǒng)互連起來的協(xié)議組,成為事實上最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之一。在使用計算機進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時,各種家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備在逐步地走向網(wǎng)絡(luò)化,以便共享網(wǎng)絡(luò)中龐大的信息資源。只要那些設(shè)備上實現(xiàn)了TCP/IP協(xié)議并增加一個網(wǎng)絡(luò)接口,就可方便地接入到現(xiàn)有的網(wǎng)絡(luò)中。考慮到單片機成本低廉,利用TCP/IP協(xié)議中的UDP(用戶數(shù)據(jù)報協(xié)議)、IP(網(wǎng)絡(luò)報文協(xié)議)、ARP(地址解析協(xié)議)及簡單的應(yīng)用層協(xié)議,根據(jù)應(yīng)用的需要做相應(yīng)的裁減,文中將介紹用AT90S8515單片機與10Mbps以太網(wǎng)控制器芯片RTL8019AS設(shè)計嵌入式TCP/IP單片機系統(tǒng),成功地實現(xiàn)了RS-485現(xiàn)場總線設(shè)備通過嵌入TCP/IP的單片機系統(tǒng)接入以太網(wǎng),完成PC 機與終端設(shè)備的遠(yuǎn)程通信和控制,最后對系統(tǒng)性能進(jìn)行分析。
2 以太網(wǎng)控制器RTL8019AS簡介
RTL8019AS是臺灣REALTEK公司生產(chǎn)的基于ISA總線的10 Mbps以太網(wǎng)控制器芯片。由于其優(yōu)良的性能、低廉的價格,使其在市場上10Mbps網(wǎng)卡中占有相當(dāng)?shù)姆蓊~。
主要性能:
?。?)符合EthernetⅡ與IEEE802.3(10Base5、10Base2、10BaseT)標(biāo)準(zhǔn);
(2)支持全雙工,收發(fā)可同時達(dá)到10Mbps速率;
?。?)16KB片內(nèi)SRAM,用于收發(fā)緩沖,降低對主處理器的速度要求;
?。?)支持8/16位數(shù)據(jù)總線,8個中斷請求線以
(6)支持跳線和非跳線模式;
(7)允許4個診斷LED引腳可編程輸出;
(8)100腳的PQFP封裝。
該芯片功能很強,它集成介質(zhì)訪問子層(MAC)和物理層的功能,對RTL8019做了很大改進(jìn),處理能力更強,操作更靈活。但與一般單片機接口時,只需要用到其中一部分即可完成網(wǎng)絡(luò)通信功能,其它引腳懸空。
3 與AT90S8515單片機系統(tǒng)的接口電路
該文選用AT90S8515單片機,與8051系列單片機相比,具有系統(tǒng)內(nèi)可編程8KFLASH,內(nèi)部集成了在片512字節(jié)EEPROM和512字節(jié)SRAM,使用精簡指令集,編寫程序簡練,調(diào)試程序方便。
系統(tǒng)硬件連接如圖3—1所示,系統(tǒng)提供RJ45接口連接Ethernet網(wǎng)絡(luò),提供一個RS-485接口與現(xiàn)場設(shè)備連接,實現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)傳輸和設(shè)備的遠(yuǎn)程控制。
AT90S8515單片機所提供的接口信號線為:PA口的8位數(shù)據(jù)總線D0~D7、5根地址線A8~A12、讀信號線RD、寫信號線WR、2根控制線 PB0、PB1。這些信號線與RTL8019AS的各信號線對應(yīng)連接。其中,RTL8019AS的IOCS16B接下拉電阻,使芯片工作在8位總線方式,復(fù)位通過PB0控制,PB1片選地址使能。時鐘電路為單片機8MHz和網(wǎng)絡(luò)芯片20MHz。在現(xiàn)場控制端,需要一個RS-232轉(zhuǎn)RS-485的485芯片(WM485),在網(wǎng)絡(luò)接入端需要一個網(wǎng)絡(luò)隔離濾波器(FM2146),這樣接口電路設(shè)計完成,然后計算并分配地址空間,編寫匯編程序。該系統(tǒng)中網(wǎng)絡(luò)芯片在單片機中地址映射空間為80××H-0x9F××H,網(wǎng)絡(luò)芯片的內(nèi)部I/O基地址為300H。
對設(shè)計電路的幾點說明,RTL8019AS的JP引腳接高電平,使芯片工作在跳線模式;沒有使用地址鎖存器,直接用地址數(shù)據(jù)復(fù)用口讀寫 RTL8019AS數(shù)據(jù),網(wǎng)絡(luò)芯片只用到5位地址線,沒有沖突;系統(tǒng)采用查詢工作方式,沒有連接中斷信號線,簡化電路設(shè)計。
4 軟件設(shè)計
4.1 嵌入TCP/IP協(xié)議的單片機匯編程序設(shè)計
單片機接入以太網(wǎng),必須嵌入TCP/IP協(xié)議,用戶終端的應(yīng)用程序才可以使用通用的網(wǎng)絡(luò)編程技術(shù),例如使用Socket套接字,與單片機建立連接,實現(xiàn)數(shù)據(jù)通信。匯編流程圖如圖4—1所示,單片機首先初始化堆棧和串口,初始化RTL8019AS網(wǎng)絡(luò)芯片,系統(tǒng)的IP地址存放在單片機的片內(nèi)EEPROM 中,單片機復(fù)位后首先讀取這些數(shù)據(jù)以初始化網(wǎng)絡(luò)?! ∮捎趩纹瑱C的資源有限,所以網(wǎng)絡(luò)協(xié)議根據(jù)嵌入式應(yīng)用的需求作了裁剪,系統(tǒng)中使用了ARP、RARP、 IP、UDP等部分協(xié)議,既保證單片機接入以太網(wǎng),又保證足夠小的代碼量。單片機主要完成網(wǎng)絡(luò)數(shù)據(jù)的解包和串口RS-485數(shù)據(jù)的打包。當(dāng)以太網(wǎng)有數(shù)據(jù)到達(dá)該設(shè)備,單片機采用查詢方式,讀取網(wǎng)絡(luò)數(shù)據(jù)并分析,如果是ARP(物理地址解析協(xié)議)數(shù)據(jù)包,則轉(zhuǎn)入ARP處理程序,并發(fā)送RARP數(shù)據(jù)包,將IP地址和物理地址加入到局域網(wǎng)中建立映射。如果是UDP數(shù)據(jù)包且IP地址和端口號正確,則接收數(shù)據(jù)包,數(shù)據(jù)解包后,將數(shù)據(jù)部分通過串口輸出,控制RS-485現(xiàn)場設(shè)備。反之,如果現(xiàn)場通過串口發(fā)送數(shù)據(jù)到單片機,單片機將數(shù)據(jù)按照UDP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數(shù)據(jù)輸出到局域網(wǎng)中。根據(jù)需要還可以在收到串口數(shù)據(jù)時,先完成數(shù)據(jù)預(yù)處理,再將處理好的數(shù)據(jù)送到局域網(wǎng)。