摘 要:網絡數據傳輸技術具有傳輸速率高、傳送距離遠、通訊協議完善、信息共享程度高等優點,為嵌入式設備增加網絡功能有著深遠的意義。介紹以太網的幀協議和以太網控制芯片RTL8019AS的結構特性以及工作原理,設計STC89C54RD+單片機控制RTL8019AS實現以太網通訊的硬件設計方案和軟件流程圖;采用標準C語言實現ARP協議,所有程序在Keil c51環境下編譯連接。最后并進行系統的調試與驗證,取得了滿意的效果。
關鍵詞:以太網;RTL8019AS;網絡數據傳輸技術;TCP/IP協議
中圖分類號:TP393文獻標識碼:B
文章編號:1004373X(2008)2204703
Design of Single Chip Computer Network Communication Interface Based on RTL8019AS
WU Quanyu,CHEN Jie
(West Anhui University,Lu′an,237012,China)
Abstract:The data transmission of net has many virtues,such as high transmission speed and perfect communication protocol.It is important that the embedded devices have communicated with Ethernet.The frame of Ethernet protocol and the Ethernet microcontroller TL8019AS characteristics are presented,the principle diagram of hardware system that STC89C54RD+ single chip computer controlling RTL8019AS is designed,and the diagram of software is given.ARP protocol based on the standard C language is realized in the paper,and it is succeeded to compile and link them in keil c51 environment.Finally,the system debugging and the experiment results are also given,the result is satisfied.
Keywords:Ethernet;RTL8019AS;network data transmission technology;TCP/IP protocol
1 引 言
網絡技術的飛速發展促使嵌入式設備的數據傳輸方式發生重大變化,如今嵌入式設備網絡化已成為嵌入式技術發展的一個重要方向。網絡數據傳輸技術具有傳輸速率高、傳送距離遠、通信協議完善、信息共享程度高等優點,為嵌入式設備增加網絡功能有著深遠的意義。在工業控制領域,應用嵌入式網絡技術可實現儀器儀表的遠程測控,使控制系統底層設備間數據傳輸協議統一,甚至有人認為以嵌入式網絡技術為支持的工業以太網在將來會取代協議不統一的現場總線。而在家庭自動化應用領域引入嵌入式網絡技術,則可實現水、電、氣3表自動抄送,家用電器遠程控制,住宅防盜、災難報警等,真正實現智能化小區管理。但對于以單片機為核心的嵌入式設備而言,要利用有限的資源對數據和信息進行網絡協議的處理具有一定的技術難度。本文通過設計一個實現串口設備接入Internet的網絡模塊,探討利用低速單片機實現網絡功能的方法。
2 系統硬件結構
系統硬件結構框圖如圖1所示。整個系統主要包括4個單元:主控制單元,以太網控制單元,外部擴展單元,串口通信單元。 硬件設計的關鍵是主控制芯片和以太網控制芯片的設計,考慮到實現TCP/IP協議對代碼空間和處理速度的要求,選用的主芯片為宏晶科技推出的新一代超強抗干擾、高速、低功耗的單片機STC89C54RD+,該芯片集成了8 kB的FLASH ROM,無需專用編程器或仿真器,可通過串口(P3.0/P3.1)直接下載用戶程序,8 kB程序只需3 s即可完成,工作頻率選用22.118 4 MHz。本文選用的RTL8019AS是10 Mb/s的全雙工以太網控制器,由于其優良的性能和低廉的價格而被廣泛使用。另外,單片機還外擴了1片62256外部存儲器,該RAM可存儲32 kB的數據。使用外部RAM的目的是為了存放網絡數據,提高數據傳輸的速度。同時62256還用作串口的輸入輸出緩沖,使單片機可以高速的吞吐數據。此外系統中還有電源、復位、指示燈等外圍接口電路。
3 以太網絡接口芯片RTL8019AS介紹
RTL8019AS:是臺灣Realtek公司制造的一種高集成度的全雙工10 Mb/s以太網控制芯片,可實現基于Ethernet協議的MAC層的全部功能,內置16 kB的SRAM、雙DMA通道和FIFO,可完成數據包的接收和發送功能。

3.1 主要性能
(1) 符號Ethernet Ⅱ與IEEE802.3(10Base5,10Base2,10BaseT)標準;
(2) 全雙工,收發可同時達到10 Mb/s的速率;
(3) 內置16 kB的SRAM,用于收發緩沖,降低對主處理器的速度要求;
(4) 支持8/16位數據總線,8個中斷申請線以及16個I/O基地址選擇;
(5) 支持UTP,AUI,BNC自動檢測,還支持對10BaseT拓撲結構的自動修復;
(6)允許4個診斷LED引腳可編程輸出;
(7) 100腳的PQFP封裝,縮小了PCB尺寸。
3.2 以太網接口工作原理及實現
以太網控制芯片是以太網接口的核心器件,如何使用該芯片是設計以太網接口的關鍵,RTL8019AS是符合IEEE802.3和CDMA/CD標準的以太網控制芯片,實現以太網介質訪問層(MAC)和物理層的功能,其內部劃分為遠程DMA和本地DMA兩個通道,結構如圖2所示。

遠程DMA接口是指單片機對RTL8019AS內部RAM進行讀寫的總線,即ISA總線的接口部分。單片機收發數據只需對遠程DMA操作。本地DMA接口是把RTL8019AS與網線的連接通道,完成控制器與網線的數據交換。當單片機要想網絡發送數據時,先通過遠程DMA通道將一幀數據發送到數據緩存區中,然后發出傳送指令。發送控制器將字節在時鐘控制下逐位移出,并送到CRC編碼單元。CRC編碼單元對幀數據產生校驗序列,并附加的數據尾傳送。當接收數據時,接收控制器在時鐘控制下將串行數據拼成字節送到FIFO和CRC校驗單元,CRC校驗單元負責對送來的數據進行校驗,如果校驗碼不同,則該幀被拒絕。地址識別單元對MAC地址進行比較,只有與本地物理地址相同或為廣播地址的數據幀才被接收。以上校驗通過后將數據接入數據緩存區,收滿1幀以后,以中斷或寄存器標志的方式通知單片機,單片機再通過遠程DMA通道讀取這一幀。
4 軟件設計
4.1 TCP/IP協議
嵌入式設備網絡化的關鍵是實現TCP/IP網絡協議。眾所周知,TCP/IP是一個數量龐大的協議體系,是幾百種網絡協議的集合,在嵌入式系統有限的資源中很難完全實現。且嵌入式系統作為以應用為中心,具有特定功能的專用計算機系統,也不需要實現如此多的協議。因此系統設計的第一步就是進行TCP/IP協議棧子集的選擇。TCP/IP通常被認為是一個由鏈路層、網絡層、傳輸層和應用層組成的四層協議系統,每一層都有相應的協議集合來實現不同的功能。
數據鏈路層主要處理與傳輸介質有關的物理接口細節,考慮到以太網數據流量大且通用性強,因此采用以太網(IEEE 802.3)協議,用RJ45接口將嵌入式設備連入網絡。
網絡層主要負責處理數據包在網絡中的協議封裝,該層選用TCP/IP協議棧的核心IP協議,同時選用ARP協議實現IP地址到MAC物理地址的轉換。
傳輸層主要為兩臺主機上的應用程序提供端到端的通信,有UDP和TCP兩種協議。UDP協議是不面向連接的,因而不能保證數據傳輸的可靠性。TCP是面向連接的,但其可靠性的保證是以許多復雜措施及由此而增加的開銷為代價換來的。因此在此選擇TCP為傳輸層協議,但針對應用進行簡化以適應嵌入式要求。應用層負責處理特定的應用程序細節,應用層協議種類繁多,考慮到嵌入式應用的特殊性,不選取通用的應用層協議。以上對協議子集的選擇是以滿足實用為目的,并在不影響網絡基本功能的原則下進行的。
4.2 以太網(Ethernet)協議
一個標準的以太網物理傳輸幀由7部分組成(如表1所示,單位為字節)。

PR:同步位,用于發送雙方的同步時鐘,同時也指明傳輸的速率;
SD:分隔位,用于表示下面跟著的是真正的數據,而不是同步時鐘;
DA:目的地址。以太網的地址為6個字節的二進制地址,表明該幀傳輸給哪個網卡,如果為FFFF-FFFF-FFFF,則為廣播地址,可被任何網卡接收;
SA:源地址,6個字節,表明該幀的數據是哪個網卡發出的;
TYPE:類型字段,表明該幀是什么類型的數據,不同協議的類型字段不同,IP為0800H,ARP包為0801H,SNMP為814CH;
DATA:數據段,該段數據不超過1 500B;
PAD:填充位。由于以太網幀傳輸的數據包最小不能小于60 B,除去DA,SA和TYPE共14 B,還必須傳輸46 B數據,當數據段數據不足46 B時,后補0。
除了數據段的長度不定外,其他部分的長度固定不變。數據段為46~1 500 B。以太網規定整個傳輸包的最大長度不能超過1 514 B(14 B為DA,SA,TYPE),最小不能小于60 B。除去DA,SA,TYPE14字節,還必須傳輸46 B的數據,當數據段的數據不足46 B時需填充,填充字符的個數不包括在長度字段里;超過1 500 B時,需拆成多個幀傳送。事實上,發送數據時,PR,SD,FCS及填充字段這幾個數據段由以太網控制器自動產生;而接收數據時,PR,SD被跳過,控制器一旦檢測到有效的前序字段(即PR,SD),就認為接收數據開始。
4.3 軟件設計流程圖
軟件設計分成3大部分:硬件初始化、數據發送、數據接收。所有程序在keil c51環境下編譯連接,采用標準C語言編程,可讀性強、移植性好、開發周期短等優越性。系統流程如圖3所示。
試驗調試環境主要包括3大部分,即RTL8019AS測試PCB板和一個基于單片機的溫度數據采集系統,另外還有帶網卡的PC機以及網線,特別要說明的是在PC機上安裝有專門基于Web的監控軟件系統,它能夠完成IP地址站點瀏覽以及操作、用戶維護、數據維護、系統通訊配置等功能。

在實驗中,基于單片機的溫度數據采集系統不停的采集室內溫度,通過這里的RTL8019AS測試PCB板和300 m網線把數據傳輸到PC機上分時的進行刷新顯示,取得了滿意的效果。由以上分析可見,如果對RTL8019AS測試PCB板做進一步的完善,該系統接口應用于實際中將會產生很大的經濟效益。
參考文獻
[1]Richard Stevens W.TCP/IP詳解卷1:協議\\.北京:機械工業出版社,2000.
[2]Richard Stevens W.TCP/IP詳解卷2:實現\\.北京:機械工業出版社,2000.
[3]RTL8019AS 用戶手冊\\.REALTEK 半導體公司, 2000.
[4][美] Kenneth D Reed.協議分析\\.北京:電子工業出版社,2002.
[5][美] Kenneth D Reed.網絡互聯設備\\.北京:電子工業出版社,2002.
[6]范逸之.VB與RS 232串行通信控制\\.北京:中國青年出版社,2002.
[7]趙晶.電路設計與制版Protel高級應用\\.北京:人民郵電出版社,2001.
作者簡介 吳全玉 男,1977年出生,安徽碭山人,碩士。主要研究方向為信號處理與嵌入式系統的應用。