• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
    橫河電機(jī)25年9月
    工業(yè)智能邊緣計算2025年會
    2025工業(yè)安全大會
    CAIAC 2025
    OICT公益講堂
    當(dāng)前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    用單片機(jī)實現(xiàn)以太網(wǎng)卡通訊設(shè)計
    • 企業(yè):控制網(wǎng)     行業(yè):輸配電    
    • 點擊數(shù):2328     發(fā)布時間:2006-08-11 14:17:56
    • 分享到:
    本文介紹了基于51單片機(jī)的以太網(wǎng)卡的設(shè)計硬件結(jié)構(gòu)電路和軟件實現(xiàn)。該設(shè)計核心處理器采用Atmel公司的AT89C51,以太網(wǎng)卡控制芯片使用Realtek公司的Rtl8019as芯片。同時,介紹了用精簡的TCP/IP協(xié)議棧實現(xiàn)網(wǎng)絡(luò)通訊。

                   

    1引言 

    隨著網(wǎng)絡(luò)技術(shù)與計算機(jī)技術(shù)的發(fā)展和普及,以及電子設(shè)備日趨網(wǎng)絡(luò)化的背景下,用單片機(jī)控制以太網(wǎng)卡進(jìn)行數(shù)據(jù)通訊成為當(dāng)前的主要發(fā)展趨勢。通過單片機(jī)控制以太網(wǎng)卡編程可以實現(xiàn)局域網(wǎng)內(nèi)任意兩個終端的通訊。本文所介紹的太網(wǎng)卡設(shè)計主要應(yīng)用于工業(yè)現(xiàn)場控制領(lǐng)域的數(shù)據(jù)采集和數(shù)據(jù)傳輸方面。下面簡要介紹以51為核心的單片機(jī)和RTL8019AS以太網(wǎng)控制芯片所設(shè)計的網(wǎng)卡的硬件電路結(jié)構(gòu)及軟件程序設(shè)計。

     

    2系統(tǒng)硬件結(jié)構(gòu)設(shè)計

        

     

     

                                     1 系統(tǒng)硬件框圖

    系統(tǒng)的硬件電路結(jié)構(gòu)如圖1所示。在該系統(tǒng)中主要包括MCU單元,串口通訊單元,EEPROM單元和網(wǎng)卡芯片單元等。

    我們采用AT89C51單片機(jī)作為主處理器控制以太網(wǎng)卡芯片來實現(xiàn)和以太網(wǎng)的數(shù)據(jù)交換。由于單片機(jī)內(nèi)存資源小,處理速度慢,則需要對單片機(jī)外擴(kuò)RAM。這樣,使用外擴(kuò)RAM可以提高單片機(jī)的數(shù)據(jù)傳輸速度,以及處理復(fù)雜的TCP/IP協(xié)議。以太網(wǎng)數(shù)據(jù)包最大可以達(dá)到1500多字節(jié),89C51單片機(jī)無法存儲這么大的包,只有放到外部的RAM進(jìn)行存儲。同時外部RAM也用作串行口的輸入輸出緩沖,以使單片機(jī)可以高速的傳輸數(shù)據(jù)速度。

    在系統(tǒng)中還使用x5045作為外部擴(kuò)展的EEPROM,用來存儲IP地址、物理地址以及網(wǎng)卡的其他配置信息。同時x5045還具有電壓監(jiān)控,看門狗定時器,上電復(fù)位三種功能,使用x5045監(jiān)控系統(tǒng)的運(yùn)行過程,當(dāng)系統(tǒng)不穩(wěn)定的時候可以進(jìn)行有效的復(fù)位。

    由于單片機(jī)的高低電平和串行口的高低電平不一樣,二者之間需要進(jìn)行電平轉(zhuǎn)換,在本設(shè)計中使用MAX232作為串口電平轉(zhuǎn)換芯片,負(fù)責(zé)單片機(jī)與PC機(jī)的電平轉(zhuǎn)換。數(shù)據(jù)可以從串口輸入到單片機(jī),單片機(jī)在把數(shù)據(jù)送到8019傳出去。反之,從8019接收到的數(shù)據(jù)通過單片機(jī)可以從串口發(fā)出去。

    網(wǎng)卡芯片采用的是Realtek公司生產(chǎn)的RTL8019AS以太網(wǎng)卡控制器,價格低廉,和NE2000兼容。RTL8019AS符合ETHERNET II8023標(biāo)準(zhǔn);內(nèi)置16K SRAM,用于收發(fā)緩沖,降低對主處理器的要求;支持8/16位數(shù)據(jù)總線,8個中斷申請,16I/O基地址選擇等許多特性;在本設(shè)計中選用8位數(shù)據(jù)總線,選擇8位數(shù)據(jù)總線的方法是在RTL8019AS

    IOCS16B引腳接一個27K的下拉電阻。

    由于網(wǎng)卡控制器與以太網(wǎng)是不能直接相連的,中間要通過網(wǎng)絡(luò)隔離變壓器才能連接到以太網(wǎng)上。網(wǎng)絡(luò)隔離變壓器的作用是隔直通交,避免雙絞線上的直流電平干擾芯片(RTL8019AS)的工作點;同時,利用變壓器自身的通頻帶限制高頻的干擾。

    8019提供3種配置I/O端口和中斷的模式:第一種為跳線模式(Jumper),RTL8019ASI/O端口和中斷由跳線引腳決定;第二種為即插即用模式(Plug and PlayPnP),由軟件自動配置;第三種為免跳線模式(Jumperless),RTL8019ASI/O端口和中斷由9346EEPROM)里的配置信息決定。在本電路中,沒有使用9346而是使用x5045作為閃盤存儲MAC地址和其他配置信息。PnP模式主要使用在PC機(jī)中。所以,使用跳線模式來選擇I/O端口和中斷。RTL8019AS65引腳JP接高電平(直接接到VDD或通過一個10kΩ的電阻上拉),8019工作在跳線模式。I/O端口基址選為300H,中斷使用IRQ2/9引腳。

    當(dāng)系統(tǒng)上電復(fù)位后,在RSTDRV下降沿,8019AS讀入各個跳線引腳的狀態(tài),寫入到系統(tǒng)配置寄存器中,作為系統(tǒng)默認(rèn)的初始配置。

     

    3 系統(tǒng)軟件實現(xiàn)

    以太網(wǎng)通信軟件的設(shè)計包括以太網(wǎng)卡控制器的驅(qū)動程序設(shè)計和上層協(xié)議軟件設(shè)計。驅(qū)動程序設(shè)計有網(wǎng)卡芯片初始化和收發(fā)數(shù)據(jù)包程序。上層軟件主要是實現(xiàn)TCP/IP協(xié)議,由于單片機(jī)自身資源有限,它的存儲容量、處理速度和總線寬度等都不能像PC機(jī)那樣采用標(biāo)準(zhǔn)的TCP/IP協(xié)議,但可以根據(jù)系統(tǒng)的特點和功能,將精簡的TCP/IP協(xié)議嵌入到單片機(jī)里。

     1)網(wǎng)卡初始化和收發(fā)數(shù)據(jù)包程序設(shè)計

    首先對8019AS進(jìn)行復(fù)位,當(dāng)系統(tǒng)復(fù)位完成后,要對網(wǎng)卡的工作參數(shù)進(jìn)行設(shè)置,即對網(wǎng)卡初始化,網(wǎng)卡的工作參數(shù)可通過對RTL8019AS內(nèi)部寄存器設(shè)置。RTL8019AS內(nèi)部寄存器有4頁,和NE2000兼容的有三頁,第4頁不用。頁選擇由CR寄存器的PS1,PS0位確定。在0頁寄存器中可以設(shè)置接收、發(fā)送狀態(tài)配置以及發(fā)送緩存區(qū)的起始頁與接收緩存區(qū)起、止頁地址等寄存器;在1頁寄存器中可以設(shè)置以太網(wǎng)接口的MAC地址和組播地址。

    RTL8019AS內(nèi)部由兩塊RAM區(qū)。一塊16K字節(jié),地址為0x4000~0x7fffRAM按頁存儲,每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上,一套總線是單片機(jī)讀寫網(wǎng)卡上的RAM,即遠(yuǎn)程DMA;另一套總線是網(wǎng)卡控制器讀寫網(wǎng)上的RAM,即本地DMA

    接收數(shù)據(jù)是通過本地DMA從網(wǎng)卡接口接收,RTL8019AS對接收到的數(shù)據(jù)包通過MAC比較,CRC校驗,由FIFO存到接受緩沖區(qū),收滿一幀后以中斷或者寄存器標(biāo)志方式通知主處理器,主處理器通過遠(yuǎn)程DMA將緩沖區(qū)的數(shù)據(jù)讀到自己的內(nèi)存中進(jìn)行處理。

    數(shù)據(jù)包的發(fā)送過程包括三個步驟:主處理器將數(shù)據(jù)包按照RTL8019AS發(fā)送數(shù)據(jù)幀

    格式進(jìn)行封裝;封裝完之后通過遠(yuǎn)程DMA通道將數(shù)據(jù)包送到RTL8019AS的發(fā)送緩沖區(qū);然后通過本地DMA將數(shù)據(jù)送到FIFO,通過設(shè)置寄存器CR啟動發(fā)送。RTL8019AS完成上一幀的發(fā)送,在開始下一幀的發(fā)送。

    2)上層軟件設(shè)計

    在本系統(tǒng)設(shè)計中,TCP/IP協(xié)議軟件首先在網(wǎng)絡(luò)接口層實現(xiàn)對以太網(wǎng)幀的打包和解析工作。在以太網(wǎng)幀中,將數(shù)據(jù)包分為ARP包、IP包。ARP包分為ARP請求和APR應(yīng)答,以

    實現(xiàn)IP地址與MAC地址的動態(tài)綁定。IP包可解析為TCP包、UDP包和ICMP包,TCP包用于可靠的有連接的數(shù)據(jù)傳輸,系統(tǒng)與外部數(shù)據(jù)信息的交換都通過TCP協(xié)議進(jìn)行傳輸;UDP包用于無連接的數(shù)據(jù)報傳輸,對一個以太網(wǎng)幀的解析過程如圖4所示。

                             
    2  以太網(wǎng)幀解析過程

    4結(jié)束語

        該設(shè)計真正實現(xiàn)了單片機(jī)系統(tǒng)直接與Internet的連接。可以使PC機(jī)遠(yuǎn)程訪問單片機(jī)系統(tǒng),也可以使單片機(jī)系統(tǒng)將有用的信息發(fā)送到遠(yuǎn)端的PC機(jī)或其他終端上,提高了單片機(jī)與互聯(lián)網(wǎng)之間的信息共享。在本設(shè)計中存在主要不足之處在于單片機(jī)處理速度較慢,因此只能應(yīng)用于對數(shù)據(jù)傳輸速度要求不太高的場合,提高單片機(jī)傳輸數(shù)據(jù)的速度有待于進(jìn)一步的研究。

    參考文獻(xiàn):

     [ 1 ]  Richard Stevens W  TCP/IP詳解 1:協(xié)議. 范建華等譯. 機(jī)械工業(yè)出版社,2000

     [ 2 ]  胡漢才.  單片機(jī)原理極其接口技術(shù)  清華大學(xué)出版社,1996

     [ 3 ]  RTL8019AS datasheet.  http://www.realtek.com.cn.

     [ 4 ]  老古網(wǎng)站   http://www.laogu.com

     

    熱點新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: