基于單片機(jī)的以太網(wǎng)絡(luò)接入系統(tǒng)的實(shí)現(xiàn)及網(wǎng)絡(luò)性能分析
4 軟件設(shè)計(jì)
4.1 嵌入TCP/IP協(xié)議的單片機(jī)匯編程序設(shè)計(jì)
單片機(jī)接入以太網(wǎng),必須嵌入TCP/IP協(xié)議,用戶終端的應(yīng)用程序才可以使用通用的網(wǎng)絡(luò)編程技術(shù),例如使用Socket套接字,與單片機(jī)建立連接,實(shí)現(xiàn)數(shù)據(jù)通信。匯編流程圖如圖4―1所示,單片機(jī)首先初始化堆棧和串口,初始化RTL8019AS網(wǎng)絡(luò)芯片,系統(tǒng)的IP地址存放在單片機(jī)的片內(nèi)EEPROM 中,單片機(jī)復(fù)位后首先讀取這些數(shù)據(jù)以初始化網(wǎng)絡(luò)?! ∮捎趩纹瑱C(jī)的資源有限,所以網(wǎng)絡(luò)協(xié)議根據(jù)嵌入式應(yīng)用的需求作了裁剪,系統(tǒng)中使用了ARP、RARP、 IP、UDP等部分協(xié)議,既保證單片機(jī)接入以太網(wǎng),又保證足夠小的代碼量。單片機(jī)主要完成網(wǎng)絡(luò)數(shù)據(jù)的解包和串口RS-485數(shù)據(jù)的打包。當(dāng)以太網(wǎng)有數(shù)據(jù)到達(dá)該設(shè)備,單片機(jī)采用查詢方式,讀取網(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ù)到單片機(jī),單片機(jī)將數(shù)據(jù)按照UDP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數(shù)據(jù)輸出到局域網(wǎng)中。根據(jù)需要還可以在收到串口數(shù)據(jù)時(shí),先完成數(shù)據(jù)預(yù)處理,再將處理好的數(shù)據(jù)送到局域網(wǎng)。本文引用地址:http://www.ex-cimer.com/article/173370.htm
TCP/IP協(xié)議的4層模型中,鏈路層部分由RTL8019AS完成,網(wǎng)絡(luò)層和傳輸層由單片機(jī)來處理,應(yīng)用層則根據(jù)需要可以在單片機(jī)內(nèi)完成,也可以由單片機(jī)轉(zhuǎn)給用戶或終端設(shè)備完成。
在單片機(jī)的程序處理中,主要有完整的ARP、RARP協(xié)議模塊,UDP協(xié)議模塊,其它協(xié)議根據(jù)需要取舍,完成系統(tǒng)要求,網(wǎng)絡(luò)芯片的初始化是必須的,對RTL8019AS各寄存器的配置正確,才能使硬件正常工作。
4.2 用戶終端程序設(shè)計(jì)
為了實(shí)現(xiàn)對嵌入TCP/IP的單片機(jī)通信系統(tǒng)設(shè)備的控制,筆者用VC++6.0在用戶終端PC上編寫一個(gè)數(shù)據(jù)傳輸?shù)膽?yīng)用程序。通常采用Winsock編程,先創(chuàng)建一個(gè)套接字,綁定IP地址和端口號,使用UDP數(shù)據(jù)報(bào),與嵌入TCP/IP單片機(jī)系統(tǒng)的套接字建立連接,當(dāng)有網(wǎng)絡(luò)數(shù)據(jù)到達(dá)時(shí),VC++響應(yīng) Receive()消息,讀取數(shù)據(jù)并處理;當(dāng)用戶需要控制嵌入式設(shè)備,調(diào)用Send()函數(shù)發(fā)送控制命令或數(shù)據(jù)。
在調(diào)試試驗(yàn)中,PC機(jī)上采用Sniffer軟件來監(jiān)視(或截獲)PC機(jī)同單片機(jī)之間通信的TCP/IP協(xié)議包數(shù)據(jù)流,測試系統(tǒng)的性能,取得了滿意的效果。
5 系統(tǒng)性能分析
網(wǎng)絡(luò)性能的主觀評價(jià)可以用如下的指標(biāo)來體現(xiàn):容量、利用率、最優(yōu)利用率、吞吐量、可供負(fù)載、精確度、效率、延遲、延遲變化量、響應(yīng)時(shí)間等。網(wǎng)絡(luò)性能的最終表現(xiàn)形式就是最終用戶在使用過程中的主觀評價(jià)。
下面主要從各網(wǎng)絡(luò)層對系統(tǒng)性能的影響分別進(jìn)行分析:
(1)物理層、數(shù)據(jù)鏈路層性能。從系統(tǒng)的硬件上看,這兩層的功能主要由RTL8019AS完成,每幀最大傳輸包為1K字節(jié),但是數(shù)據(jù)的讀寫都是由單片機(jī)完成,所以整個(gè)系統(tǒng)的帶寬受到單片機(jī)速度的限制,文中設(shè)計(jì)系統(tǒng)理論最大帶寬為8Mbps,最優(yōu)利用率為3~4Mbps。
(2)網(wǎng)絡(luò)層性能。在這里主要考慮傳輸協(xié)議的選擇。對于使用有重傳機(jī)制的TCP協(xié)議,意味著在
網(wǎng)絡(luò)環(huán)境惡劣的情況下,存在大量的數(shù)據(jù)報(bào)重傳,降低了網(wǎng)絡(luò)利用率,同時(shí)還有很大的延時(shí)。在系統(tǒng)的具體應(yīng)用中,采用UDP協(xié)議滿足了數(shù)據(jù)采集的實(shí)時(shí)性要求,對于丟包現(xiàn)象,可以在應(yīng)用層上采取必要的控制策略加以改善。
(3)應(yīng)用層性能。主機(jī)、服務(wù)器、應(yīng)用協(xié)議構(gòu)成網(wǎng)絡(luò)應(yīng)用層性能的三要素。主機(jī)和服務(wù)器是網(wǎng)絡(luò)連接的兩端,應(yīng)用協(xié)議是網(wǎng)絡(luò)連接的兩端數(shù)據(jù)傳輸過程的一個(gè)約定。方案采用在以太網(wǎng)嵌入系統(tǒng)中運(yùn)行一個(gè)套接字程序作為服務(wù)器,應(yīng)用RS-485通訊協(xié)議對遠(yuǎn)程設(shè)備控制和數(shù)據(jù)采集。這個(gè)過程中,網(wǎng)絡(luò)服務(wù)器的性能問題影響最大:服務(wù)器的負(fù)載、請求隊(duì)列過長、協(xié)議參數(shù)設(shè)置不當(dāng)?shù)鹊取?br />6 結(jié)束語
以太網(wǎng)的低成本、開放性、廣泛的開發(fā)和應(yīng)用軟件、硬件支持,使得這種嵌入了 TCP/IP協(xié)議的單片機(jī)數(shù)據(jù)通信系統(tǒng),具有成本低、硬件少、運(yùn)行穩(wěn)定可靠、傳輸速度快、開發(fā)周期短等優(yōu)點(diǎn),有著廣泛的應(yīng)用前景,特別是數(shù)據(jù)采集、數(shù)據(jù)傳輸?shù)冗h(yuǎn)程監(jiān)控領(lǐng)域,以及智能家電的網(wǎng)絡(luò)信息化方面。目前,該系統(tǒng)在變電站監(jiān)控系統(tǒng)、遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)中得到成功應(yīng)用。
tcp/ip相關(guān)文章:tcp/ip是什么
評論