999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AVR高性能單片機的以太網接口設計

2009-03-19 01:59:12張宇翔
現代電子技術 2009年3期

張宇翔 劉 偉 郭 敏

摘 要:隨著Internet的發展和應用,嵌入式系統在網絡方面的應用技術也逐漸成熟。針對目前大量使用8位微控制器的嵌入式系統,采用ATMEL公司的高性能單片機ATmega64和10 Mb/s以太網控制芯片RTL8019AS,設計了低成本的嵌入式以太網接口,詳細介紹了硬件電路的連接以及嵌入式TCP/IP的實現,遠端用戶可以通過HTTP協議來訪問存儲在嵌入式系統上的網頁,使嵌入式系統具備網絡連接功能。

關鍵詞:以太網;嵌入式系統;RTL8019AS;TCP/IP協議

中圖分類號:TP393.11文獻標識碼:B

文章編號:1004-373X(2009)03-081-04

Design of Embedded Ethernet Interface Based on AVR

ZHANG Yuxiang,LIU Wei,GUO Min

(School of Physical Engineering,Zhengzhou University,Zhengzhou,450001,China)

Abstract:The application technology in network of embedded system is becoming mature with the development and application of Internet.In view of large-scale use of 8-bit microcontroller embedded systems at present,a low cost embedded Ethernet interface is realized by adopting high performance microcontroller Atmega64 of the ATMEL Corporation and 10M Ethernet-controller RTL8019AS,hardware circuit′s connection and embedded TCP/IP realization are introduced in detail.Remote users can access the web pages stored in embedded system by a browser,which offered network function to embedded system.

Keywords:Ethernet;embedded system;RTL8019AS;TCP/IP protocol

0 引 言

隨著互聯網的迅速發展,各種家電設備、儀器儀表也在逐步走向網絡化,以便共享網絡信息資源、遠程監控等,這也是嵌入式系統發展的趨勢。而以太網作為目前應用最為廣泛的局域網,在工業自動化和過程控制領域得到了越來越多的應用,因此,對于大量存在的8位微控制器而言,實現以太網通信具有重要的實際意義。現在應用較多的是基于51內核單片機的上網方案,由于處理能力的限制,要實現較復雜的網絡傳輸和控制有點困難。本系統采用ATMEL公司的高性能單片機Mega64和10 Mb/s以太網控制芯片RTL8019AS實現了以太網接口,詳細介紹了硬件電路的連接以及嵌入式TCP/IP的實現,使單片機具有了互聯網絡的接入功能。

1 硬件電路設計

1.1 主要器件選擇

微控制器選用高性能的AVR單片機Mega64,AVR是ATMEL公司結合了成熟的51系列和PIC系列單片機的優點而推出的高性能8位單片機,具有性價比高、資源豐富、速度快、功耗低、開發方便等特點。Mega64采用RISC結構,工作頻率可達16 MHz,完全滿足運行多種網絡協議的要求,片內具有4 KB的SRAM,64 KB的FLASH,以太網最大數據包為1 514 B,4 KB的RAM足夠以太網幀的存儲,64 KB的FLASH對于適當的程序以及簡單的Web Page來說也是可以的,所以無需再外擴資源,大大簡化了外圍電路,提高了可靠性。

以太網控制芯片選用的是臺灣REALTEK公司生產的RTL8019AS,該芯片集成了介質訪問控制子層(MAC)和物理層的性能,可以方便地設計基于ISA總線的系統。另外,它還具有與NE2000兼容、軟件移植性好、與單片機接口簡單、價格低貨源好等優點,其主要功能特性如下:

(1) 符合EthernetⅡ與IEEE802.3(10Base5,10Base2,10BaseT)標準。

(2) 軟件和8位及16位插槽的NE2000兼容。

(3) 全雙工,收發可同時達到10 Mb/s的速率。

(4) 內置16 KB的SRAM,用于收發緩存,降低對主處理器的速度要求。

(5) 支持8/16位數據總線,8條中斷申請線以及16個I/O基地址選擇。

(6) 支持UTP,AUI,BNC自動檢測以及對10BaseT拓撲結構的自動極性修正。

(7) 允許4個診斷LED引腳可編程輸出。

1.2 RTL8019AS與單片機的連接

RTL8019AS支持三種工作方式:第一種為跳線方式,網絡控制器的I/O地址和中斷都由跳線決定;第二種為免跳線方式,I/O地址和中斷由外接的E2PROM 93C46里的內容所決定;第三種為即插即用方式(PNP),I/O地址和中斷都由軟件或操作系統自動進行管理和配置,用戶不必過多干預,當然這種方式要耗費系統資源。網絡控制器采用哪種方式由RTL8019AS的65腳(JP)決定,本系統采用第一種即跳線方式,這時JP要接高電平;第三種方式一般用于PC機中,對于8位單片機來說無法實現,未用第二種方式又可以省掉一片93C46芯片,不但簡化了硬件電路設計,而且降低了成本。

RTL8019AS有兩種復位方式:冷復位和熱復位。給8019的復位引腳施加一個1 μs以上的高電平就可以實現冷復位;先讀再寫8019的任意一個復位端口都可以實現熱復位,這在PC機中用的較多??梢詫?019的復位引腳和單片機的復位引腳相連,單片機復位的時候8019也復位,這種情況可以減少單片機的一個引腳的使用,但為了保證能夠完全復位,可以在程序中進行熱復位。然而Mega64為低電平復位,而8019為高電平復位,如果這樣連接的話還需要加一個非門進行反相,鑒于Mega64的引腳較多,所以將8019的復位引腳連接到Mega64的一個I/O口上,由該引腳對8019進行冷復位。

圖1所示為RTL8019AS的部分電路圖,其工作時鐘為20 MHz。RTL8019AS的引腳懸空時,輸入狀態為低電平,因為芯片引腳內部已經接了一個100 kΩ的下拉電阻。AEN引腳為I/O端口操作允許使能腳,接地使地址一直處于有效;IOCS16B引腳用一個27 kΩ的電阻下拉到地,復位時刻為低電平,選擇8位總線模式;讀寫引腳IORB、IOWB分別與單片機的RD,WR引腳相連;8位數據總線SD0~SD7接到單片機的PA口;IOS0~IOS3為I/O基地址選擇引腳,懸空設置為300H,所以SA5~SA7,SA10~SA19接地,SA8和SA9接高電平,真正用到的地址線只有SA0~SA4,接到單片機的地址線上;IRQS0~IRQS2為中斷選擇引腳,懸空選擇中斷INT0,實際上并沒有使用中斷,而是使用了查詢方式;AUI引腳用于AUI接口外部MAU檢測,決定使用AUI還是BNC接口,BNC接口方式支持8線雙絞或同軸電纜,所以將該引腳懸空選擇使用RJ45接口;SMEMRB和SMEMWB為存儲器讀寫引腳,由于我們使用的是I/O模式讀寫網絡芯片,所以將它們接高電平;TPIN和TPOUT為差分輸入輸出引腳,分別用來接收來自雙絞線和向雙絞線發送10 Mb/s的差分曼徹斯特編碼信號,RTL8019AS需要經過隔離處理才能和RJ45接口相連,然后接入以太網,隔離低通濾波器選用的是20F001N,內部有兩個傳輸變壓器,用來傳輸信號以及抑制噪聲干擾。

2 系統軟件實現

2.1 RTL8019AS地址空間與寄存器

RTL8019AS內部的16 KB的RAM用于收發緩沖,地址為0x4000~0x7FFF,收發緩沖以頁為單位,每頁256 B,共64頁,如果某頁沒有完全填滿數據,則下包數據也不能繼續使用該頁,只能使用新的頁。一般將前12頁作為發送緩沖區,分為兩個6頁的緩沖區(因為一個最大數據包占6頁),兩個發送緩沖區交替使用,可提高發送效率,后52頁作為接收緩沖區。該RAM是雙端口的,具有兩套總線,一套是RTL8019AS讀寫該RAM,即本地DMA;另一套是單片機讀寫該RAM,即遠程DMA,要接收和發送數據包就必須對這塊RAM進行DMA讀寫。

RTL8019AS具有32位I/O地址,地址偏移量為00H~1FH,本系統中對應于300H~31FH,其中,00H~0FH為16個寄存器地址,寄存器分為4頁,與NE2000兼容的只有前3頁,第4頁是RTL8019AS自己定義的,對于其他兼容NE2000的芯片無效,所以為了保證驅動程序對所有NE2000兼容的網卡都有效,不要去操作第4頁的寄存器。10H~17H為8個遠程DMA地址,都可以用來做遠程DMA地址,使用其中一個即可,微控制器通過讀寫數據端口10H~17H實現對緩沖區的訪問。18H~1FH共8個地址為復位端口,它們功能一樣,使用其中一個即可,用于RTL8019AS的熱復位。

2.2 嵌入式TCP/IP實現

TCP/IP協議族是一組不同層次上的多個協議的組合,分為鏈路層、網絡層、傳輸層和應用層。對于8位單片機來說,由于其處理速度和存儲能力的問題,要實現完整的TCP/IP協議棧是比較困難的,因此要根據其特點及自己的需求,對協議進行裁剪,保留其核心部分。該系統只實現了ARP,IP,ICMP,UDP,TCP協議,采用C語言編寫。

在鏈路層上,首先要解決RTL8019AS的驅動問題,驅動程序包括三部分:以太網接口芯片初始化程序、發送數據程序和接收數據程序,它們屏蔽了底層硬件處理細節,同時向上層軟件提供與硬件無關的接口。驅動程序將已封裝好的待發送數據按指定格式寫入芯片并啟動發送命令,8019會自動把數據包轉換成物理幀格式在信道上傳輸;反之,8019收到物理信號后將其還原成數據,按指定格式存放在芯片RAM中以便主機程序取用,下面給出部分初始化程序,主要是對一些寄存器進行設置,其中,reg00~reg0f為宏定義,代表RTL8019AS內地址偏移量為00H~0FH的寄存器地址。

void RTL8019Init()

{ reg00=0x21;/*CR,命令寄存器,選擇頁0,芯片停止運行*/

reg01=0x4c;/*PSTART,頁起始寄存器*/

reg02=0x80;/*PSTOP,頁結束寄存器*/

reg03=0x4c;/*BNRY,邊界寄存器,用作讀指針*/

reg04=0x40;/*TPSR,發送頁起始寄存器*/

reg0c=0xcc;/*RCR,接收配置寄存器*/

reg0d=0xe0;/*TCR,發送配置寄存器*/

reg0e=0xc8;/*DCR,數據配置寄存器*/

reg0f=0x00;/*IMR,中斷寄存器,屏蔽所有中斷*/

Page(1);/*切換為頁1*/

reg07=0x4d;/*CURR,當前頁寄存器,用作寫指針*/

reg08=0x00;/*MAR0,多址地址寄存器均設置為0*/

reg09=0x00;/*MAR1*/

reg0a=0x00;/*MAR2*/

reg0b=0x00;/*MAR3*/

reg0c=0x00;/*MAR4*/

reg0d=0x00;/*MAR5*/

reg0e=0x00;/*MAR6*/

reg0f=0x00;/*MAR7*/

SetMacID();/*設置芯片物理地址*/

reg00=0x22;/*選擇頁0,啟動芯片開始工作*/}

頁2的寄存器是只讀的,頁3的寄存器不是NE2000兼容的,所以均不用設置。首先選擇為頁0,網卡芯片為停止模式,因為還沒有進行初始化,設置0x40~0x4B為網卡的發送緩沖區,共12頁,剛好存儲2個最大的以太網數據包;0x4C~0x7F為網卡的接收緩沖區,共52頁;剛開始時網卡沒有接收到任何數據包,因此BNRY指向第一個接收緩沖區的頁0x4C。設置完頁0的寄存器后切換為頁1,由于設計中沒有使用93C46,因此需要在程序中指定芯片的物理地址,寫入到PAR寄存器,然后啟動芯片開始工作。讀指針BNRY和寫指針CURR主要用來控制緩沖區的存取過程,保證能正確讀出和寫入數據。

單片機負責RTL8019AS的初始化及通過控制RTL8019AS實現網絡協議,進行數據的接收和發送等通信任務,主程序按照以太網數據幀分用的思路進行編寫,即將單片機作為服務器端,初始化完成后使其處于監聽狀態。當有數據從RJ45過來時,RTL8019AS在接收和處理完以太網數據幀后傳送給單片機,單片機對數據包進行分析,如果是ARP數據包,則程序轉入ARP處理程序;如果是IP數據包且IP地址正確,則繼續分析若是ICMP包,則調用ICMP處理程序,若是UDP或TCP數據包,則解包后將數據存儲或從串口輸出。反之,當有數據要發送時,單片機按照各層協議格式將數據打包,送入RTL8019AS的緩存區,由RTL8019AS將數據輸出到局域網中,主程序的框架如下:

if(有新數據包)

{if(RxdNetBuff.EtherFrame.NextProtocal==0x0806) /*表示接收到ARP數據包*/

{if(RxdNetBuff.ArpFrame.Operation==0x0001) /*ARP請求*/

{處理ARP請求數據包}

else if(RxdNetBuff.ArpFrame.Operation==0x0002) /*ARP回答*/

{處理ARP應答數據包} }

else if((RxdNetBuff.EtherFrame.NextProtocal==0x0800)&&(IP首部校驗正確)) /*表示正確接收到一個IP數據包*/

{ switch(RxdNetBuff.IpFrame.NextProtocal)

{ case 1: /*表示接收到的是ICMP查詢報文,僅對PING操作進行處理*/

if(RxdNetBuff.IcmpFrame.type==8) /*PING請求包*/

{對ping請求的應答處理}

else if(RxdNetBuff.IcmpFrame.type==0) /*PING應答包*/

{對ping應答的處理}

break;

case 6: /*表示接收到的是TCP報文*/

TCP數據包處理;

break;

case 17: /*表示接收到的是UDP報文*/

UDP數據包處理;

break; } } }

在嵌入TCP/IP協議后,已經實現了以太網的接入,但要實現遠程控制,還需要實現應用層協議,這需要網絡層和傳輸層的支持,嵌入式TCP/IP協議在應用層上要求簡單,本系統實現了一個HTTP協議。由于單片機的資源有限,采用靜態網頁訪問的形式,使用HTML語言來編寫,網頁代碼存儲在Mega64的片內FLASH中。嵌入式系統把要傳輸的數據、參數等存入網頁的相關位置,當有客戶端請求連接時,這些數據信息通過HTTP協議沿TCP連接發送至瀏覽器,這樣就可以在遠端PC機的瀏覽器中訪問存儲在系統中的網頁,從而實現遠程訪問及控制。

3 結 語

介紹了一種利用AVR單片機實現以太網接口電路的方法,硬件電路少,結構簡單,使用方便??紤]到單片機的資源有限,只實現了與需要有關的部分協議,根據實際需求做適當的修改和完善就可應用于諸如遠程抄表、信息家電的遠程控制、智能小區等實時性要求不高的場合,為了提高數據傳輸速度和進行復雜的TCP/IP處理,可以擴展32 KB的外部RAM來提高單片機的數據吞吐量,同時外部RAM也可用作串行口的輸入輸出緩沖。

參考文獻

[1]AVR Embedded Web Server[EB/OL].http://www.atmel.com.

[2]RTL8019AS Datasheet[EB/OL].http://www.realtek. com.

[3]戴佳,戴衛恒.51單片機C語言應用程序設計實例精講[M].北京:電子工業出版社,2006.

[4]蘇錦秀,楊慶江,張廣璐.以太網控制芯片RTL8019AS詳細配置[J].現代電子技術,2007,30(22):151-153.

[5]閆保中,虞凌宏,王仁龍.基于AVR高速單片機的Web Sever的研究[J].應用科技,2006(33):25-27.

[6]廣州周立功單片機發展有限公司.TCP/IP實現原理簡介[EB/OL].

[7]張濤,趙向陽.基于AVR單片機的CAN總線設計.現代電子技術,2007,30(10):121-124.

作者簡介 張宇翔 男,1962年出生,河南人,副教授,博士。主要從事太陽能電力電子等方面的研究。

劉 偉 男,1983年出生,陜西人,碩士研究生。研究方向為嵌入式技術及應用。

郭 敏 女,1961年出生,河南人,副教授,碩士。主要從事電子技術及應用等方面的研究。

主站蜘蛛池模板: 欧美97色| 婷婷六月综合网| 欧美国产日韩另类| 国产97色在线| 91久久偷偷做嫩草影院| 五月激情综合网| 极品国产在线| 亚洲中文字幕国产av| 四虎精品国产AV二区| 久久人人97超碰人人澡爱香蕉| 免费无码AV片在线观看中文| 蜜桃臀无码内射一区二区三区| 亚洲无线视频| 日本午夜精品一本在线观看| 亚洲成人在线网| 色视频国产| 久久综合久久鬼| 亚洲黄色成人| 亚洲精品无码人妻无码| 久热这里只有精品6| 免费人成视频在线观看网站| 亚洲色图综合在线| 国产日韩欧美在线视频免费观看 | 国产精品毛片一区视频播| 2022国产91精品久久久久久| 国语少妇高潮| 98超碰在线观看| 免费国产福利| 在线国产毛片| 亚洲另类色| 亚洲 日韩 激情 无码 中出| 中文字幕在线看| 天堂网亚洲综合在线| 在线欧美国产| 久久综合五月婷婷| 97人妻精品专区久久久久| 极品av一区二区| 国产玖玖玖精品视频| 人妻一本久道久久综合久久鬼色| 色亚洲成人| 日本不卡在线视频| 亚洲国产精品美女| 日本尹人综合香蕉在线观看 | 亚洲 欧美 日韩综合一区| 亚洲精品片911| 欧美不卡视频在线观看| 五月天婷婷网亚洲综合在线| 日本免费精品| 免费看久久精品99| 少妇精品久久久一区二区三区| 中文字幕在线不卡视频| 大陆精大陆国产国语精品1024| 中文字幕久久亚洲一区| 婷婷色婷婷| 国产免费a级片| 99热最新网址| 91免费国产高清观看| 中文无码毛片又爽又刺激| 亚洲无码日韩一区| 无码'专区第一页| 精品人妻AV区| 色婷婷亚洲十月十月色天| 直接黄91麻豆网站| 天天色天天综合| 日韩天堂视频| 欧美区一区| 国产经典三级在线| 国产成人亚洲综合a∨婷婷| 毛片基地美国正在播放亚洲| 四虎永久在线| 久久99热66这里只有精品一| 国产一级特黄aa级特黄裸毛片| 亚洲国产欧美国产综合久久 | 国产尹人香蕉综合在线电影| 国产精品嫩草影院av | 久久 午夜福利 张柏芝| 久久亚洲黄色视频| 国产第八页| 国产91蝌蚪窝| 中文字幕一区二区人妻电影| 青青草国产一区二区三区| 午夜福利亚洲精品|