微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM LPC2210的以太网RTL8019AS驱动系统设计

基于ARM LPC2210的以太网RTL8019AS驱动系统设计

时间:11-11 来源:互联网 点击:

发送数据包时,驱动程序把要发送的数据按指定格式写入芯片并启动发送命令,RTL8019AS会自动把数据转换成物理帧格式在物理信道上传输。反之,当接收数据报时,RTL8019AS收到物理信号后将其还原成数据,按指定格式存放在RAM中,以便主机程序取用。驱动程序通过控制RTL8019AS内部寄存器以及DMA端口,来实现芯片初始化,接收数据报和发送数据报的任务。

3.2 RTL8019AS以太网驱动系统的组成

?芯片初始化模块:初始化模块是针对以太网RT8019AS进行的初始化设置,使其能正常芯片复位,设置芯片寄存器及启动芯片。

?发送数据报模块:所有的数据发送都要通过该模块发送

?接收数据报模块:查询是否有新数据包并接收进缓冲区

?写数据子模块:把数据写入RTL8019AS芯片中

?读数据子模块:从RTL8019AS中把数据读出

?设置芯片物理地址子模块:将物理地址写入RTL8019AS(PAR0~PAR5)寄存器中。

?页面切换模块:页面切换功能,可选择0,1,2三页,第四页作为芯片保留。

四.芯片初始化模块

4.1芯片初始化模块的功能

初始化LPC2210与设备相关的控制管脚和初始化RTL8019AS相关控制寄存器

4.2芯片初始化模块的组成

1>选择引脚:

使用P0.8引脚控制RTL8019AS芯片复位时,要将P0.8设置为输出模式

2>复位芯片

?设置P0.8为输出高电平,控制RTL8019AS硬件复位

?向RTL8019AS的0x1f号寄存器写入00使RTL8019AS软件复位。

3>使RTL8019AS芯片停止

配置命令寄存器(CR):配置CR寄存中的RD2,RD1,RD0三位为100使DMA为停止模式,配置STA,STP位为01。使8019芯片停止,为进行寄存器设置做准备。

4>设置RTL8019寄存器

设置RTL8019AS芯片寄存器,主要完成对以下几个寄存器的初始化:

?RBCR0,RBCR1:配置远程DMA字节计数寄存器

?PSTART:配置接收缓冲区的起始页地址

?PSTOP:配置接收缓冲区的结束页的地址

?TPSR:配置发送缓冲区的起始地址

?BNRY:配置边界寄存器(读指针)

?CURR:配置当前的接收结束页地址(写指针)

1)设置远程DMA字节计数寄存器(RBCR0,RBCR1):初始化远程DMA字节计数器为0

2)设置接收配置寄存器(RCR)和传输配置寄存器(TCR)

在配置寄存器时,要与外部网络断开(因此设置接收配置寄存器的MON位,和传输配置寄存器的LOOPBACK,与外网断开)。

3)设置数据配置寄存器(DCR):设置FT1,FT0位为10进行FIFO的选择;设置ARM位为0,使其不发送命令包;设置LS位为1,使其为正常模式;LAS位必须为0;设置BOS位为1,使其为大端格式(即高字节在低地址中);设置WTS位为1,使其为字长度的DMA传送(16字节DMA传送)

4)初始化接收缓冲区容量为:0x4c~0x7f(PSTART=0X4C,PSTOP=0x80)共52个页。

?设置页面起始寄存器(PSTART):初始化页面接收缓冲环的起始地址为0x4c。

?设置页面终止寄存器(PSTOP):初始化页面接收缓冲环的结束地址为0X80。

5)初始化发送缓冲区容量为:0x40~0x4b(TPSR=0X40,BNRY=0X4C)共12页,可存储两个最大以太网数据包。(每一页256字节,256*12=3072,而一个以太网最大数据包为1518)。

?设置页面边界寄存器(BNRY读指针):初始化页面最后一次页面接收缓冲环的地址为0X4C。

?设置页面传输起始寄存器(TPSR):初始化传输包的页面开始地址为0x40。

6)初始化中断状态寄存器和中断屏蔽寄存器。

?设置中断状态寄存器(ISR):清除所有中断标志位。

?设置中断允许寄存器(IMR):初始化使能OVW(溢出中断)和PRX(接收包无错误中断).

7)设置当前页面寄存器(CURR):设置当前页面地址为0x4d

注:该寄存器指出首先接收缓冲器页面地址。这个寄存器用来对数据包的接收(为写页指针)。

8)设置组播地址寄存器(MR0~MR7):初始化组播地址为0。

说明:组播地址寄存器用于提供为CRC逻辑提供,组播地址的过滤位。

9)设置芯片物理地址:

调用写数据子模块将实际地址写入MAC地址寄存器(PAR0~PAR05)中。

这些寄存器用于记录本以太网节点的MAC地址,并用于对比接收包的目标地址是否一致而决定接收还是放弃。

10)设置传输配置寄存器(TCR)和接收配置寄存器(RCR)为正常模式,与外部网络连接

5>设置芯片启动

6>配置中断状态寄存器(ISR)清除所有中断标志位

4.3芯片初始化模块的接口

芯片初始化模块调用了写数据子模块,页面切换子模块和设置芯片物理地址子模块

?设置芯片物理地址子模块:将物理地址写入RTL8019AS芯片中。

?写数据子模块:将数据写入RTL8019AS芯片中

?页面切换子模块:可选择Page0,Page1,Page3三个页面。

4.3芯片初始化模块程序

/****************************Copyright(c)********************

**西安邮电学院

**graduate school

**XNMS实验室

**Author:冀博

**Time:2011年2月21日

**http://blog.csdn.net/tige

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top