用單片機實現(xiàn)以太網(wǎng)卡通訊設計
1引言
隨著網(wǎng)絡技術與計算機技術的發(fā)展和普及犁捕,以及電子設備日趨網(wǎng)絡化的背景下盏萝,用單片機控制以太網(wǎng)卡進行數(shù)據(jù)通訊成為當前的主要發(fā)展趨勢栽埠。通過單片機控制以太網(wǎng)卡編程可以實現(xiàn)局域網(wǎng)內(nèi)任意兩個終端的通訊钉呐。本文所介紹的太網(wǎng)卡設計主要應用于工業(yè)現(xiàn)場控制領域的數(shù)據(jù)采集和數(shù)據(jù)傳輸方面。下面簡要介紹以51為核心的單片機和RTL8019AS以太網(wǎng)控制芯片所設計的網(wǎng)卡的硬件電路結構及軟件程序設計镶骗。
2系統(tǒng)硬件結構設計
圖1 系統(tǒng)硬件框圖
系統(tǒng)的硬件電路結構如圖1所示桶现。在該系統(tǒng)中主要包括MCU單元,串口通訊單元鼎姊,EEPROM單元和網(wǎng)卡芯片單元等骡和。
我們采用AT89C51單片機作為主處理器控制以太網(wǎng)卡芯片來實現(xiàn)和以太網(wǎng)的數(shù)據(jù)交換。由于單片機內(nèi)存資源小此蜈,處理速度慢即横,則需要對單片機外擴RAM。這樣裆赵,使用外擴RAM可以提高單片機的數(shù)據(jù)傳輸速度东囚,以及處理復雜的TCP/IP協(xié)議。以太網(wǎng)數(shù)據(jù)包最大可以達到1500多字節(jié)战授,89C51單片機無法存儲這么大的包页藻,只有放到外部的RAM進行存儲。同時外部RAM也用作串行口的輸入輸出緩沖植兰,以使單片機可以高速的傳輸數(shù)據(jù)速度份帐。
在系統(tǒng)中還使用x5045作為外部擴展的EEPROM璃吧,用來存儲IP地址、物理地址以及網(wǎng)卡的其他配置信息捎霍。同時x5045還具有電壓監(jiān)控忌颠,看門狗定時器,上電復位三種功能缨吸,使用x5045監(jiān)控系統(tǒng)的運行過程敲非,當系統(tǒng)不穩(wěn)定的時候可以進行有效的復位。
由于單片機的高低電平和串行口的高低電平不一樣源照,二者之間需要進行電平轉換笋窍,在本設計中使用MAX232作為串口電平轉換芯片,負責單片機與PC機的電平轉換锁销。數(shù)據(jù)可以從串口輸入到單片機项凉,單片機在把數(shù)據(jù)送到8019傳出去。反之赦牧,從8019接收到的數(shù)據(jù)通過單片機可以從串口發(fā)出去巧糖。
網(wǎng)卡芯片采用的是Realtek公司生產(chǎn)的RTL8019AS以太網(wǎng)卡控制器,價格低廉堰怜,和NE2000兼容球垂。RTL8019AS符合ETHERNET II和802.3標準;內(nèi)置16K SRAM钻蔑,用于收發(fā)緩沖啥刻,降低對主處理器的要求;支持8/16位數(shù)據(jù)總線咪笑,8個中斷申請可帽,16個I/O基地址選擇等許多特性;在本設計中選用8位數(shù)據(jù)總線窗怒,選擇8位數(shù)據(jù)總線的方法是在RTL8019AS的IOCS16B引腳接一個27K的下拉電阻映跟。
由于網(wǎng)卡控制器與以太網(wǎng)是不能直接相連的,中間要通過網(wǎng)絡隔離變壓器才能連接到以太網(wǎng)上扬虚。網(wǎng)絡隔離變壓器的作用是隔直通交努隙,避免雙絞線上的直流電平干擾芯片(RTL8019AS)的工作點;同時辜昵,利用變壓器自身的通頻帶限制高頻的干擾荸镊。
8019提供3種配置I/O端口和中斷的模式:第一種為跳線模式(Jumper),RTL8019AS的I/O端口和中斷由跳線引腳決定堪置;第二種為即插即用模式(Plug and Play躬存,PnP),由軟件自動配置攒陋;第三種為免跳線模式(Jumperless)灶花,RTL8019AS的I/O端口和中斷由9346(EEPROM)里的配置信息決定值膝。在本電路中,沒有使用9346而是使用x5045作為閃盤存儲MAC地址和其他配置信息艰吏。PnP模式主要使用在PC機中欺垛。所以,使用跳線模式來選擇I/O端口和中斷氨缅。RTL8019AS第65引腳JP接高電平(直接接到VDD或通過一個10kΩ的電阻上拉)扩芋,8019工作在跳線模式。I/O端口基址選為300H妖局,中斷使用IRQ2/9引腳。
當系統(tǒng)上電復位后赶馍,在RSTDRV下降沿细企,8019AS讀入各個跳線引腳的狀態(tài),寫入到系統(tǒng)配置寄存器中摘甜,作為系統(tǒng)默認的初始配置屯掖。
3 系統(tǒng)軟件實現(xiàn)
以太網(wǎng)通信軟件的設計包括以太網(wǎng)卡控制器的驅動程序設計和上層協(xié)議軟件設計。驅動程序設計有網(wǎng)卡芯片初始化和收發(fā)數(shù)據(jù)包程序襟衰。上層軟件主要是實現(xiàn)TCP/IP協(xié)議贴铜,由于單片機自身資源有限,它的存儲容量瀑晒、處理速度和總線寬度等都不能像PC機那樣采用標準的TCP/IP協(xié)議绍坝,但可以根據(jù)系統(tǒng)的特點和功能,將精簡的TCP/IP協(xié)議嵌入到單片機里苔悦。
⌒帧(1)網(wǎng)卡初始化和收發(fā)數(shù)據(jù)包程序設計
首先對8019AS進行復位,當系統(tǒng)復位完成后玖详,要對網(wǎng)卡的工作參數(shù)進行設置把介,即對網(wǎng)卡初始化,網(wǎng)卡的工作參數(shù)可通過對RTL8019AS內(nèi)部寄存器設置蟋座。RTL8019AS內(nèi)部寄存器有4頁拗踢,和NE2000兼容的有三頁,第4頁不用向臀。頁選擇由CR寄存器的PS1,PS0位確定巢墅。在0頁寄存器中可以設置接收、發(fā)送狀態(tài)配置以及發(fā)送緩存區(qū)的起始頁與接收緩存區(qū)起薛津、止頁地址等寄存器恐呢;在1頁寄存器中可以設置以太網(wǎng)接口的MAC地址和組播地址。
RTL8019AS內(nèi)部由兩塊RAM區(qū)症妻。一塊16K字節(jié)节婶,地址為0x4000~0x7fff擎丘;RAM按頁存儲,每256字節(jié)為一頁享积。將RAM的前12頁(即0x4000~0x4bff)存儲區(qū)作為發(fā)送緩沖區(qū)边久;后52頁(即0x4c00 ~ 0x7fff)存儲區(qū)作為接收緩沖區(qū),用來存放接收的以太網(wǎng)幀履岂。另一塊RAM只有32字節(jié)遏治,地址為0x0000~0x001f,用于存儲以太網(wǎng)物理地址函强。
接收和發(fā)送數(shù)據(jù)包都必須通過DMA讀寫網(wǎng)卡內(nèi)部的16K RAM鸵安,網(wǎng)卡的16K RAM是一個雙端口RAM,所謂雙端口就是有兩套總線連接到該RAM上反璃,一套總線是單片機讀寫網(wǎng)卡上的RAM,即遠程DMA昵慌;另一套總線是網(wǎng)卡控制器讀寫網(wǎng)上的RAM,即本地DMA淮蜈。
接收數(shù)據(jù)是通過本地DMA從網(wǎng)卡接口接收,RTL8019AS對接收到的數(shù)據(jù)包通過MAC比較斋攀,CRC校驗,由FIFO存到接受緩沖區(qū)梧田,收滿一幀后以中斷或者寄存器標志方式通知主處理器淳蔼,主處理器通過遠程DMA將緩沖區(qū)的數(shù)據(jù)讀到自己的內(nèi)存中進行處理。
數(shù)據(jù)包的發(fā)送過程包括三個步驟:主處理器將數(shù)據(jù)包按照RTL8019AS發(fā)送數(shù)據(jù)幀格式進行封裝裁眯;封裝完之后通過遠程DMA通道將數(shù)據(jù)包送到RTL8019AS的發(fā)送緩沖區(qū)鹉梨;然后通過本地DMA將數(shù)據(jù)送到FIFO,通過設置寄存器CR啟動發(fā)送未状。RTL8019AS完成上一幀的發(fā)送俯画,在開始下一幀的發(fā)送。
∷静荨(2)上層軟件設計
在本系統(tǒng)設計中艰垂,TCP/IP協(xié)議軟件首先在網(wǎng)絡接口層實現(xiàn)對以太網(wǎng)幀的打包和解析工作。在以太網(wǎng)幀中埋虹,將數(shù)據(jù)包分為ARP包吭辛、IP包。ARP包分為ARP請求和APR應答驳辖,以實現(xiàn)IP地址與MAC地址的動態(tài)綁定嘴净。IP包可解析為TCP包、UDP包和ICMP包体咽,TCP包用于可靠的有連接的數(shù)據(jù)傳輸护狠,系統(tǒng)與外部數(shù)據(jù)信息的交換都通過TCP協(xié)議進行傳輸;UDP包用于無連接的數(shù)據(jù)報傳輸,對一個以太網(wǎng)幀的解析過程如圖4所示同蚂。
圖2 以太網(wǎng)幀解析過程
4結束語
該設計真正實現(xiàn)了單片機系統(tǒng)直接與Internet的連接懊玖。可以使PC機遠程訪問單片機系統(tǒng)扔相,也可以使單片機系統(tǒng)將有用的信息發(fā)送到遠端的PC機或其他終端上力鹰,提高了單片機與互聯(lián)網(wǎng)之間的信息共享。在本設計中存在主要不足之處在于單片機處理速度較慢厚遗,因此只能應用于對數(shù)據(jù)傳輸速度要求不太高的場合腺首,提高單片機傳輸數(shù)據(jù)的速度有待于進一步的研究。
參考文獻:
[ 1 ] Richard Stevens W TCP/IP詳解 卷1:協(xié)議. 范建華等譯. 機械工業(yè)出版社黔攒,2000
[ 2 ] 胡漢才. 單片機原理極其接口技術 清華大學出版社趁啸,1996。
[ 3 ] RTL8019AS datasheet. (暫不可見).
[ 4 ] 老古網(wǎng)站 (暫不可見)
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)督惰,轉載的目的在于傳遞更多信息及用于網(wǎng)絡分享莲绰,并不代表本站贊同其觀點和對其真實性負責,也不構成任何其他建議姑丑。本站部分作品是由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳辞友,對此類作品本站僅提供交流平臺栅哀,不為其版權負責。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻称龙、圖片留拾、文字如涉及作品版權問題,請第一時間告知鲫尊,我們將根據(jù)您提供的證明材料確認版權并按國家標準支付稿酬或立即刪除內(nèi)容痴柔,以保證您的權益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn模博。
- 暫無反饋