《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AT91RM9200的以太網接口模塊設計
基于AT91RM9200的以太網接口模塊設計
現代電子技術
何玉朝1,2,程耕國1,2,張 瀛1,2 1.冶金自動化與
摘要: 主要介紹基于AT91RM9200處理器的以太網接口模塊設計,給出基于網絡芯片RTL8019AS的系統外圍接口相關器件選型。在硬件設計的基礎上,給出了詳細的編程思想、工作流程以及部分關鍵代碼。在此設計方案下,完全可以實現通過以太網進行通信,達到嵌入式模塊之間實時控制的目的。
Abstract:
Key words :

摘 要:主要介紹基于AT91RM9200處理器的以太網接口模塊設計,給出基于網絡芯片RTL8019AS的系統外圍接口相關器件選型。在硬件設計的基礎上,給出了詳細的編程思想、工作流程以及部分關鍵代碼。在此設計方案下,完全可以實現通過以太網進行通信,達到嵌入式模塊之間實時控制的目的。
關鍵詞:AT91RM9200;以太網;RTL8019AS;嵌入式模塊


0 引 言
    在Internet飛速發展的今天,網絡已經滲透到生活的方方面面,與網絡的結合已經成為嵌入式系統發展的必然趨勢。目前,ARM微處理器已經在多個領域中得到應用,各種基于ARM微處理器的設備應用數量已經遠遠超過了通用計算機,基于ARM微處理器的開發應用正成為數字時代的技術潮流。


l AT91RM9200簡介
    AT91RM9200是Atreel公司開發的基于ARM920T核的高性能,低功耗16/32位RISC微處理器,內部集成豐富的外設資源與外設接口,從而為低功耗,低成本,高性能的計算機應用提供了一個單片解決方案。適用于要求外設資源豐富,功耗低,工作穩定的工業控制等方面。
    AT91RM9200微處理器最高主頻為180 MHz,其雙向、32位外部數據總線支持8/16/32位數據寬度,26位地址總線可以對最大64 MB空間進行尋址。片內集成了非常豐富的外圍功能模塊,包括內存管理單元(MMU)、內部包含16 KB的SRAM和128 KB的ROM,16 KB的數據緩存以及16 KB的指令緩存。其外部總線接口控制器(EBI),支持SDRAM,靜態存儲器,Burst FLASH以及Compact FLASH。為了提高系統性能還擴展了以下外設;增強的時鐘發生器與電源管理控制器(PMC);系統定時器(ST);實時時鐘(RTC);高級中斷控制器(AIC);4個32位PIO控制器;20通道的外設數據控制器(PDC);10/100兆Base-T型以太網卡接口;4個通用同步/異步串行收發器(UASRT)以及JTAG/ICE接口等。


2 最小系統設計
    硬件系統設計是嵌入式系統設計的基礎,ARM系統硬件平臺主要分為兩部分:一部分為基于ARM處理器的最小系統;另一部分為外圍擴展電路。系統只有在硬件最小系統調試穩定的基礎上,才能靈活、輕松地擴展出其他外圍應用,所以最小系統是保證微處理器可靠工作所必須的基本電路。基于AT91RM9200微處理器的最小系統由微處理器、電源電路、時鐘電路、復位電路、JTAG接口、存儲器模塊、串行調試接口等電路組成。
2.1 電源電路設計
    在系統中AT91RM9200需要1.8 V和3.3 V電源,另外,大部分外圍器件需要3.3 V電源,小部分外圍器件還需要5 V電源,假設輸入電壓為5 V直流穩壓電源。為了得到可靠的3.3 V電壓,此處選用的電壓轉換芯片是NCPlll7ST33T3,它的輸入電壓為5 V,輸出電壓為3.3 V,最大輸出電流為0.8 A。同樣,為了得到可靠的1.8 V電壓,選用NCPlll7STl8T3,它的輸入電壓為5 V,輸出電壓為1.8 V,最大輸出電流為0.8 A。由于3.3 V和1.8 V屬于NCPlll7系列的2個固定輸出電壓,所以設計比較簡單,只需要在電路中與芯片并聯2個典型值為10 tLF、的濾波電容即可。
2.2 時鐘電路設計
    時鐘電路為AT91RM9200和其他外設電路提供工作時鐘。處理器內部帶有鎖相環電路,所以外接頻率比較低的晶體振蕩器,該設計用晶體振蕩器Y1(20 MHz)作為系統的主時鐘振蕩器。處理器內部還帶有實時時鐘電路,還需要外接32.768 kHz的晶體振蕩器。振蕩器產生的主時鐘和慢時鐘經過微處理器內部2個鎖相環后,產生系統所需的各種主時鐘、外設時鐘以及USB器件工作時鐘。
2.3 復位電路設計
    AT91RM9200有2個獨立的復位信號,即系統復位信號NRST與調試復位信號NTRSI,都是低電平有效。系統上電后,AT91RM9200必須執行一個上電復位,在過渡狀態下,它的強制復位信號為低,直到電源電壓和振蕩器工作頻率穩定為止。此外,NRST和NTRST還可以手動復位,以方便用戶調試程序。該設計中選用的復位芯片是MAX811,再加上一個手動按鍵,當工作電壓低于3 V或手動復位輸入引腳被拉低時處理器復位。
2.4 存儲器模塊設計
    存儲器模塊包括NOR FLASH存儲器和SDRAM存儲器。
    NOR FLASH存儲器用于存儲系統運行所需的程序和重要數據,即使掉電,程序和數據也不會丟失。該設計中所用芯片是Atmel公司生產的AT49BNl614T,以保持與AT91RM9200的兼容性,其存儲容量為2 MB,工作電壓為3.3 V,采用56引腳TSOP封裝,具有16位數據寬度。AT91RM9200需要以下引腳與之對應相連:A[1:21],D[0:15],NCSO/BFCS,NRST,BFRDY,BFWE,BFOE。
    SDRAM存儲器的作用是存放系統運行時的程序和數據,掉電后該部分程序和數據會丟失。設計中使用兩片數據寬度為16位的SDRAM并為一個具有32位數據寬度的SDRAM模塊,以充分發揮微處理器32位數據寬度的高性能。設計所使用的芯片是HY57V561620,其存儲容量為32 MB,工作電壓為3.3 V,采用54引腳TSOP封裝,16位數據寬度,支持自動刷新和自刷新。AT91RM9200需要以下引腳與HY57V561620對應相連:D[0:31],A[2:11],A[13:14],NBS0,N:BSl,NBS2,NBS3,SDCKE,SDCK,SDCS,RAS,CAS,SDWE。這里特別注意:A12引腳不使用。
2.5 JTAG接口電路設計
    JTAG是一種國際標準測試協議,主要用于芯片內部測試及對系統進行仿真、調試,是開發、調試嵌入式系統的一種簡潔高效的手段。它有兩種接口標準:14針接口和20針接口。該設計中選擇20針接口標準。JTAG調試接口設計是否標準,直接影響到硬件平臺是否能夠連接ARM仿真器。所以在設計時,有以下幾點需要注意:
    (1)盡可能按照標準的20針接口設計。如果設計成14針接口,一定要嚴格按照14針接口對應于20針接口的對應關系來設計。
    (2)nTRST和nRESET、引腳不用時,要用10 kΩ的電阻拉高,否則JTAG上這兩個引腳的信號不確定,會造成ARM調試器不能正常連接目標系統。
    (3)JTAG上輸出的信號都要用10 kΩ的電阻拉高。
2.6 UART、串行接口電路設計
    AT91RM9200的UASRT作為同步/異步串行接口,在調試狀態下作為調試串口;在正常工作狀態下為一般串行口使用,可以通過RS 232實現與其他設備的通信。該設計中的UART、接口芯片是MAX3232,其工作電壓為3.3 V,16引腳SOIC封裝。其最為簡單且常用的是三線制接法,即地線,接收數據線和發送數據線三腳對應相連。
    在完成以上幾部分電路設計后,基于AT91RM9200的嵌入式系統就具有了安全可靠的工作條件,也為下面的擴展以太網接口設計打下了良好的基礎。


3 以太網接口設計
    在ARM系統中,以太網接口是與遠程機進行通信及調試的基礎,還可以進行內部局域網和互聯網間的通信。而基于ARM的系統若沒有以太網接口,其應用價值就會大打折扣。因此,就整個嵌入式系統而言,以太網接口電路是必不可少的,但同時也是相對復雜的。
    從硬件的角度看,以太網接口電路主要由MAC控制器和物理層接口(PHY)兩大部分構成。該設計中所用到的以太網接口芯片RTL8019AS,其內部結構包含這兩部分。RTL8019AS是一款高集成度的以太網控制芯片,具有8/16位總線模式,集成了IEEE802.3協議標準的MAC層和PHY層的性能,與NE2000相兼容,支持以太網全雙工通信方式;支持UTP,AUI和BNC自動檢測,支持16位I/O基本地址選項和額外I/O地址輸入/輸出完全解碼方式;支持存儲器瞬時讀寫,收發可同時達到10 Mb/s的速率,內置16 KB的SRAM,可以方便地與微處理器進行連接。它支持多種嵌入式處理器芯片,內置有FIFO緩存器用于發送和接收數據。
3.1 以太網接口工作原理
    使用RTL8019AS作為以太網的物理層接口,它的基本工作原理是:在收到由主機發來的數據包后,偵聽網絡線路。如果線路忙,它就等到線路空閑為止,否則,立即發送該數據幀。在發送過程中,首先為數據包添加幀頭(包括前導字段和幀開始標志),然后生成CRC校驗碼,最后將此數據幀發送到以太網上。
    在接收過程中,它將從以太網收到的數據包在經過解碼、去幀頭和地址校驗等步驟后緩存在片內。在CRC校驗通過后,它會根據初始化配置情況,通知RTL8019AS收到了數據包。最后,用某種傳輸模式(I/O模式、Memory模式、DMA模式)傳到ARM系統的存儲區中。
3.2 硬件電路設計
    用RTL8019AS芯片設計的以太網控制器相關電路,可以通過RJ45連上以太網,在判斷網卡芯片是否工作正常時,有兩個依據,一是看狀態指示LED是否有閃爍;二是用專用網絡監聽工具軟件進行監聽。在本設計中用兩個LED指示燈表示接收和發送狀態,當有網絡連接且收發數據包時,LED閃爍。此外,網卡芯片單獨不能工作,還必須有一個網絡變壓器在RJ45接口和網卡芯片中間進行電平轉換,該設計中所用的電平轉換器是20F001N。另外要特別注意,由于RTL8019AS的復位引腳是高電平有效,而AT91RM9200的NRST引腳是低電平有效,所以不能直接將兩個引腳進行連接。該設計所用的解決方法是:在兩引腳間加上一個共發射極的三極管,利用它的反相作用,來達到兩個復位引腳間的電平匹配。同時,為了提高數據的傳輸速率,需要將網卡芯片設計成16位的數據通道,這就要求將RTL8019AS的IOCSl6B引腳用電阻上拉來達到設計目的。RTL8019AS與AT91RM9200進行連接還需要以下引腳:NOE,NEW,NCS2,D[O:15],一條中斷線IRQ0以及地址線A[O:4](設計RTL8019AS的I/O基地址為300H,所以只需要SA[O:4]接A[O:4],而A[5:19]只需要接地即可)。至此,硬件電路已經設計完畢,整個電路的結構框圖如圖1所示。

4 軟件設計
4.1 以太網口初始化
    初始化第一步是復位以太網口。以太網口復位分為硬件復位和軟件復位。硬件復位通過給RTL8019AS的RESET引腳發送一個復位脈沖;軟件復位通過寫端口達到復位,也就是給18~1F之間的任意一個寄存器寫入任意一個數,就使得以太網口復位。第二步是設置一些寄存器的初始值,寄存器保存本機的物理地址,只有和寄存器保存的物理地址相同的以太網幀才被接收(RCR寄存器中PRO=O)。
    以太網口第一次復位必須是硬件復位,硬件復位以后要經過大約10 ms的等待才能對以太網口操作,特別是發送和接收操作。
4.2 以太網口存儲及初始化
    RTL8019AS內部RAM地址范圍從0x0000~0x7FFFF,其中0x4000~Ox7FFF用作接收和發送緩沖區。緩沖區是按頁管理的,256 b為一頁,這樣接收發送緩沖頁面是0x40~0x7F。發送緩沖區的起始頁在TPSR寄存器中設置,接收緩沖區的起始頁在PSTART寄存器中設置,PSTART實際上也表明了發送緩沖區的結束頁。接收緩沖區的結束頁是PSTOP。所以發送緩沖區的頁從TPSR到PSTART-1,接收緩沖區的頁從PSTART到PSTOP-1。一般設置如下:

   
    使發送緩沖區可以容納下兩個最大以太網幀(最大為1 514 B),第一個幀放在SEND_START_PAGEO起始頁,第二個幀放在SEND_START_PAGE1起始頁,剩下的緩沖區都作為接收緩沖區。
    RTL8019AS內部RAM是雙口 RAM,因為它要支持兩個獨立的操作:一個是用戶CPU讀取RAM中的內容,對這個操作RTL8019AS提供一個讀寫口,也就是寄存器中的Remote DMA Port;另一個是RTL8019AS內部控制電路把從網絡接收的數據寫入RAM中,這時RAM稱為Local DMA。RTL8019AS通過Local DMA寫入RAM是不需要用戶干涉的,它通過Remote DMA Port讀寫RAM。
    讀RAM見RTLReadRam函數,代碼如下:

   
    這個函數表示從address開始讀取size個字節的內容到buff指向的內存中。設置CR寄存器指令為:writereg(cr,(0x00 | er_remote_read | cr_start_com-mand));然后從Remote DMA Port讀取size次,就得到所需的數據。
    寫RAM函數,操作基本上和讀RAM函數差不多,只要將最后一步的讀size次改成寫size次就可以。
4.3 發送數據包
    發送數據包的基本步驟如下:
    (1)首先將發送的起始頁,一般是發送緩沖區內的頁(Ox40~Ox4b),寫入StartPage變量中。將要發送的數據寫入地址為StartPage<<8開始的緩沖區中,然后等待上一次發送結束。對于過大或者過小的數據包,不發送;對于過小的幀,在發送時要填充。
    TPSR為發送起始寄存器,將StartPage寫入TPSR寄存器,高字節寫入TBCRH(TBCRl),低字節寫入TBCRL(TBCRO)。當寫發送命令時,RTL8019AS將從TPSR<<8地址開始發送size個字節的數據。
    (2)發送數據幀:發送緩沖區可以存儲2個最大的以太網幀,一個起始頁為SEND_START_PAGEO,另一個起始頁SEND_START_PAGEl,兩個交替使用。發送數據幀時,CR寄存器設置為:writereg(cr,((prepage&OxCO)|cr_abort_compile_dma|cr_txp |cr_start_command]));發送數據包函數代碼如下:

   
4.4 接收數據包
    接收數據包的步驟如下:
    (1)接收緩沖操作。當RTL8019AS接收到一個數據包后,自動將接收的數據包放到CURR頁。如果一頁放不下,則CURR加1;如果CURR=接收結束頁,則CURR自動變成接收開始頁,繼續寫入接收的數據。
    (2)用戶讀取接收數據包。RTL8019AS通過Local DMA把接收的數據寫入接收緩沖區,并自動改變CURR和識別緩沖區的界限,這些都不需要用戶干預。
    當一個無錯的數據接收完畢,則觸發中斷處理函數。然后讀取數據包到分配的內存,可以從接收字節計數器中得知讀取數據。這里要處理一種情況:如果接收的數據包存儲不是連續的,在這種情況下要分2次才能讀取1個完整的數據包,判斷是否存儲不連續的條件是:
    bnry>Head[1]&&Head[1]!=RECEIVE_START_PAGE
    其中:bnry是這個包的起始頁;Head[1]是下一個包的起始頁。
    接收數據包函數與發送數據包函數相似,只需要修改相應寄存器配置即可。然后將接收的數據寫入網絡接口層的輸入隊列,如果寫入失敗則釋放內存。寫入后上層協議將提取這個數據包。最后網卡通過中斷控制器向ARM響應中斷,中斷完畢清除中斷標志。


5 結 語
    ARM微處理器正以其極好的性價比和極低的功耗,與其他體系結構的微處理器進行激烈的競爭,其應用將進一步深入到各行各業。可以預測,在將來的一段時期內,ARM微處理器將成為32位微處理器市場的統治者。了解、學習、掌握和應用ARM微處理器技術很有必要,也非常重要。在ARM系統采用高性能的以太網控制器,系統通信和調試快速、可靠,具有很高的實時性。該設計構造一個基于以太網的嵌入式系統的應用,該接口模塊的主要任務是完成與外界的信息交互,以達到網絡監控的目的。在實際應用中,它運行穩定,能夠十分方便地實現網絡互連。該系統已在視頻監控光端機上得到成功應用,傳輸速度相當于PC機的10兆網口。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩国产首页在线观看| 欧美午夜精品理论片a级大开眼界| 99精品99| 亚洲高清免费视频| 一区二区三区不卡视频在线观看 | 狠狠色狠狠色综合系列| 国产精品福利网站| 欧美日韩在线播放一区| 欧美裸体一区二区三区| 欧美美女操人视频| 欧美猛交免费看| 欧美日本一道本在线视频| 欧美精品自拍| 欧美日韩成人精品| 欧美日韩精品一区视频| 欧美日韩一区二区在线观看| 欧美色123| 国产精品第2页| 国产精品视频精品视频| 国产欧美精品在线播放| 国产亚洲欧美一区二区| 精品999久久久| 亚洲国产精品va在线观看黑人| 亚洲国产综合91精品麻豆| 亚洲区国产区| 一区二区三区欧美日韩| 亚洲专区国产精品| 欧美在线你懂的| 亚洲福利专区| 日韩一级大片在线| 亚洲线精品一区二区三区八戒| 亚洲香蕉伊综合在人在线视看| 亚洲欧美国产高清va在线播| 欧美一区2区视频在线观看 | 一本一本a久久| 亚洲香蕉伊综合在人在线视看| 亚洲一二三级电影| 欧美一区二区三区啪啪| 亚洲国产精品一区在线观看不卡 | 国产区亚洲区欧美区| 国产一区二区激情| 在线观看视频免费一区二区三区| 你懂的网址国产 欧美| 亚洲精品一区二区三区蜜桃久| 日韩网站在线看片你懂的| 一本综合久久| 欧美一区1区三区3区公司| 久久视频国产精品免费视频在线| 免费观看成人www动漫视频| 欧美精品自拍| 国产伦精品一区二区三区照片91 | 欧美日韩妖精视频| 国产伦精品一区二区三区视频孕妇| 国产自产v一区二区三区c| 国产精品综合网站| 最新高清无码专区| 亚洲伦理中文字幕| 亚洲欧美在线x视频| 久久精品国产一区二区三区免费看| 久久精品综合| 欧美精品一区二区视频| 国产精品日韩一区二区| 一区二区三区无毛| 在线视频欧美一区| 亚洲第一在线视频| 亚洲一二区在线| 噜噜噜91成人网| 国产精品久久久久久户外露出| 激情综合视频| 亚洲一区在线免费观看| 最新成人在线| 久久国产精品久久国产精品| 欧美精品aa| 国产一区91精品张津瑜| 亚洲麻豆视频| 亚洲第一中文字幕| 亚洲欧美国产不卡| 欧美激情综合五月色丁香小说| 国产目拍亚洲精品99久久精品| 亚洲高清av| 性做久久久久久| 在线一区亚洲| 欧美 日韩 国产一区二区在线视频| 国产精品欧美日韩一区二区| 亚洲国产精品热久久| 欧美亚洲网站| 亚洲综合欧美| 欧美日韩国产一级片| 伊人狠狠色j香婷婷综合| 亚洲欧美日本视频在线观看| 一本综合精品| 欧美不卡在线| 国产一区二区三区在线观看免费视频 | 国产精品高潮呻吟| 亚洲国产色一区| 亚洲第一毛片| 久久精品国产免费| 国产精品网曝门| 在线亚洲国产精品网站| 99视频精品免费观看| 男同欧美伦乱| 黄色在线成人| 久久国产精品色婷婷| 久久精品国产91精品亚洲| 国产精品进线69影院| 亚洲精品一区二区三区樱花| 亚洲激情自拍| 久久综合给合久久狠狠色| 国产中文一区二区| 性欧美长视频| 久久精品国产一区二区三| 国产麻豆视频精品| 亚洲欧美一区在线| 午夜日韩福利| 国产精品普通话对白| 日韩亚洲欧美综合| 久久蜜臀精品av| 国产一区视频在线观看免费| 亚洲综合首页| 性做久久久久久| 国产精品日韩精品欧美精品| 亚洲一区成人| 亚洲综合视频网| 国产精品美女一区二区在线观看| 一区二区三区日韩在线观看 | 亚洲免费成人| 欧美激情一二区| 亚洲人成在线播放网站岛国| 夜夜嗨av一区二区三区网站四季av| 欧美国产免费| 亚洲欧洲另类国产综合| 99精品久久久| 欧美图区在线视频| 亚洲网在线观看| 久久成人精品无人区| 国产一区二区久久精品| 久久gogo国模裸体人体| 久久在线视频| 亚洲国产精品传媒在线观看 | 一二美女精品欧洲| 欧美视频在线观看免费网址| 亚洲色诱最新| 欧美一区二区三区的| 国产亚洲一区精品| 亚洲高清不卡av| 欧美激情综合亚洲一二区 | 亚洲电影一级黄| 欧美国产亚洲另类动漫| 亚洲九九九在线观看| 亚洲影院在线| 国产日产高清欧美一区二区三区| 久久精品人人做人人爽电影蜜月| 欧美成人精品高清在线播放| 亚洲免费观看在线视频| 亚洲欧美综合网| 激情欧美一区| 在线中文字幕不卡| 国产欧美一区二区三区国产幕精品 | 国产情侣久久| 亚洲欧洲在线观看| 欧美色区777第一页| 午夜国产精品视频| 免费在线欧美黄色| 夜夜嗨av一区二区三区免费区| 欧美一区午夜视频在线观看| 尤物yw午夜国产精品视频明星| 亚洲乱码国产乱码精品精可以看 | 欧美成人一品| 亚洲图色在线| 麻豆成人91精品二区三区| 99精品国产高清一区二区| 欧美在线观看一区二区| 在线日本成人| 午夜精品久久久久99热蜜桃导演| 国语精品一区| 中文欧美在线视频| 韩国一区二区三区美女美女秀| av成人免费在线观看| 国产日韩欧美中文在线播放| 亚洲国产高潮在线观看| 国产精品福利av| 亚洲黄色成人久久久| 国产精品久久久久久久第一福利| 亚洲国产美女精品久久久久∴| 欧美午夜电影网| 亚洲福利专区| 国产精品亚洲激情| 亚洲美女电影在线| 国产三级欧美三级日产三级99| 日韩一本二本av| 国产综合亚洲精品一区二| 国产精品99久久99久久久二8 | 亚洲综合精品一区二区| 在线看欧美日韩| 欧美在线视频一区二区三区| 99精品国产福利在线观看免费| 久久深夜福利| 亚洲欧美日韩国产成人精品影院| 欧美极品影院| 亚洲国产日韩一区|