歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 基於ARM LPC2210的以太網RTL8019AS驅動系統設計

基於ARM LPC2210的以太網RTL8019AS驅動系統設計

日期:2017/3/1 10:20:50   编辑:Linux編程
一. 系統硬件概述

1.1.ARM LPC2210芯片簡介

LPC2210是Philips公司推出的微處理器,帶有16 KBRAM,76個通用I/O口,12個獨立外部中斷引腳,集成有8通道的10位A/D,能夠基於芯片設計復雜的系統。

1.2. RTL8019AS芯片簡介

Ø RTL8019AS是台灣Realtek半導體公司生產的以太網控制器,其性能包括:支持EthernetII和IEEE802.3標准;支持8/16位數據總線;內置16 KWord的SRAM;全雙工,收發同時達到10 Mb/s;支持BNC,AUI,UTP介質。RTLS019AS可提供100腳的TQFP封裝,減少了PCB面積,更適合於嵌入式系統。

1.3.HR901170A芯片簡介

HR901170A是漢仁電子有限公司生產的RJ45接口連接器(帶網絡變壓器/濾波器),該連接器滿足IEEES02.3和IEEE902.3ab標准,能夠較好地抑制電磁干擾。通過HR901170A系統就可以連接到以太網上。

注:RTL8019AS與網絡介質之間的連接由Rj45接頭HR901170A完成。

RTL8019AS芯片工作原理

2.1RTL8019AS寄存器及其映射方式

Ø RTL8019AS寄存器采用內存映射的方式。映射地址根據具體的硬件連接方式不同而不同。在LPC2210開發板中RTL8019AS在CPU的存儲空間上映射的基地址為0X83400000。

Ø LPC2210 通過16 位DMA 方式實現對RTL8019AS 雙口RAM的訪問,另外使用P0.8控制RTL8019AS芯片復位,使用以太網接口時必須將P0.8設置為輸出模式,並且將跳線器JP8_NET_RST短接。RTL8019AS芯片中的中斷輸出與P0.9(EINT3)相連,當需要使用RTL8019AS中斷時必須將P0.9設置為EINT3功能,並且將跳線器JP8_NET_INT短接。

2.2RTL8019AS內部結構及工作原理

1>RTL8019AS 芯片內部具有一個16Kbytes 的雙口RAM作為數據FIFO, 它從邏輯上可劃分為64 個256 字節的頁,每一個頁面包括16個寄存器,每個寄存器均是8位。在不同的頁面下,同一個端口對應不同的寄存器。

2>一般將RAM的前12頁(即0X4000~0X4bff)存儲區作為發送緩沖區;後52頁(即0x4c00~0x7fff)存儲區作為接收緩沖區;頁的地址就是地址的高8位(即0x40~0x4b;0x4c~0x7f);第0頁叫Prom頁,只有32字節,地址為0x000~0x001f,用於存儲以太網物理地址。

說明:

² 寄存器和內置RAM是網卡功能實現的載體,驅動程序也是通過對它們的操作完成CPU所指令的任務。驅動程序所涉及的寄存器主要在Page0和Page1。

² 至於內置RAM,在Jumper模式下我們只需要關心其收發緩存部分。偏移地址從0x4000開始至0x7FFF的16KB RAM區域構成8019的收發緩存,它以256字節為單位劃分為64頁(Page),頁地址為0x40 ~ 0x7F,發送和接收緩存所分配的頁數可以由驅動程序設定。一種比較常見的分配方式為[0x40,0x4C)用作發送,[0x4C,0x80)用作接收,這也是本例所采用的配置。

3>接收和發送數據包是通過DMA讀寫RTL8019AS內部的16K B RAM,它是雙端口的RAM,即有兩套總線連接到該RAM。

如圖2:

Ø 一套總線是RTL8019AS讀或寫該RAM,即本地DMA;

Ø 另一套總線是LPC2210讀或寫該RAM,即遠程DMA。

4>本地DMA大部分工作由RTL8019AS自動完成,驅動程序只需要在初始化RTL8019AS時設置緩沖環的大小(最大不超過64KB),即寄存器PSTRT和PSTOP的值,同時使PSTART=BNRY(邊界寄存器)=CURR+1(當前頁面指針寄存器)。

5>遠程DMA操作由外部微處理器完成,RTL8019AS有遠程讀(Remote Read),遠程寫(Remote Write)和包發送(Send Packet)三種工作模式,由命令寄存器(CR)中的RD0,RD1和RD2位控制。其中遠程讀和遠程寫的工作相似,都是先賦值遠程DMA的起始地址寄存器(RSAR0,RSAR1)和遠程DMA字節計數器(RBCR0,RBCR1),然後在RTL8019AS的遠程DMA端口讀寫即可。包發送操作用於數據發送,只需要發送一個包發送命令,就可以在RTL8019AS的遠程DMA端口讀取RAM中接收的數據。當執行這個指令時,RTL8019AS就自動設置了起始地址寄存器和字節計數器,邊界寄存器(BNRY)指向下一個數據幀。

------------------------------------------------------------------------------------

關於具體的寄存器功能請大家查看RTL8019AS的數據手冊

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/6月/3日/基於ARM LPC2210的以太網RTL8019AS驅動系統設計/

Copyright © Linux教程網 All Rights Reserved