首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
||||||||||||||||||||||||||||
用51单片机控制RTL8019AS实现以太网通讯 | ||||||||||||||||||||||||||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 23:56:21 点击数:[] ![]() |
||||||||||||||||||||||||||||
即用的配置信息。RTL8019AS通过引脚EECS、EESK、EEDI控制93C46的CS、SK、DI引脚,通过EEDO接收93C46的DO引脚的状态。RTL8019AS复位后读取93C46的内容并设置内部寄存器的值,如果93C46中内容不正确,RTL8019AS就无法正常工作。先通过编程器如ALL07把配置好的数据写入93C46,再焊入电路。 对93C46进行数据配置:数据00H写入93C46的地址00H内;93C46地址04H~0AH中存放的是物理地址,可以写入设置所需的物理地址值,或不修改,采用原始值为物理地址。通过编程器读出04H~0AH的原始值为52544CC59906,即所采用的物理地址。 这样,RTL8019AS复位后读取93C46中配置好的内容,对应设置配置寄存器CONFIG1的值为00H,CONFIG1的低4位IOS3~0用于选择I/O基地址。IOS3~0设置值均为0时,RTL8019AS选择的端口I/O基地址为300H。 RTL8019AS的地址为20位,那么用到RTL8019AS的地址空间为00300H~0031FH,用二进制表示00300H~0031FH,可以发现第19位到第5位是固定的:000000000011000。RTL8019 AS的20根地址线SA0~SA19如表2连接。
通过ADDR15、I/OW、I/OR来划分RTL8019AS和62256的地址空间。ADDR15接62256的CE脚,低电平时选择62256;高电平时选择RTL8019AS的地址空间80C52单片机的地址为16位,按图2的电路框图连接RTL8019AS的地址空间。定义reg00~reg1f来对应端口00300H~0031FH。 #define reg00 XBYTE[0x8000]/*300H*/ #define reg01 XBYTE[0x8001]/*301H*/ … #define reg1f XBYTE[0x801F]/*31FH*/ 读写操作、复位操作对应的引脚按表3连接。
采用10BASE-T布线标准通过双绞线进行以太网通讯,而RTL8019AS内置了10BASE-T收发器,所以网络接口的电路比较简单。外接一个隔离LPF滤波器0132,TPIN±为接收线,TPOUT±为发送线,经隔离后分别与RJ-45接口的RX±、TX±端相连。 时钟电路通过T1、T2接口一个20MHz晶振以及2个电容,实现全双工方式。 LED0、LED1各接一发光二极管以反映通讯状态:LED0表示LED_COL,即通讯有冲突;LED1表示LED_RX,即接收到网上的信息包。 4 程序设计 所有程序采用Framclin C51语言编制,可读性强,移植性好,开发简易。 4.1 复位RTL8019AS 80C52的P3.4连接RTL8019AS的RESDRV来进行复位操作。RSTDRV为高电平有效,至少需要800ns的宽度。给该引脚旋加一个1μs以上的高电平就可以复位。施加一个高电平后,然后施加一个低电平。复位过程将执行一些操作,至少需要2ms的时间,推荐等待更久的时间之后如100ms之后才对它操作,以确保完全复位。 4.2 初始化RTL8019AS 初始化页0与页1的相关寄存器,页2的寄存器是只读的,不可以设置,页3的寄存器不是NE2000兼容的,不用设置。 (1)CR=0x21,选择页0的寄存器; (2)TPSR=0x45,发送页的起始页地址,初始化为指向第一个发送缓冲区的页即0x40; (3)PSTART=0x4c,PSTOP=0x80,构造缓冲环:0x4c~0x80; (4)BNRY=0x4c,设置指针; (5)RCR=0xcc,设置接收配置寄存器,使用接收缓冲区,仅接收自己地址的数据包(以及广播地址数据包)和多点播送地址包,小于64字节的包丢弃,校验错的数据包不接收; (6)TCR=0xe0,设置发送配置寄存器,启用CRC自动生成和自动校验,工作在正常模式; (7)DCR=0xc8,设置数据配置寄存器,使用FIFO缓存,普通模式,8位数据DMA; (8)IMR=0x00,设置中断屏蔽寄存器,屏蔽所有中断; (9)CR=0x61,选择页1的寄存器; (10)CURR=0x4d,CURR是RTL8019AS写内存的指针,指向当前正在写的页的下一页,初始化时指和0x4c+1=0x4d; (11)设置多址寄存器MAR0~MAR5,均设置为0x00; (12)设置网卡地址寄存器PAR0~PAR5; (13)CR=0x22,选择页1的寄存器,进入正常工作状态。 将待发送的数据按帧格式封装,通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令,完成帧的发送。需要设置以太网目的地址、以太网源地址、协议类型,再按所设置的协议类型来设置数据段。之后启动远程DMA,数据写入RTL8019AS的RAM,再启动本地DMA,将数据发送网上。 RTL8019AS无法将整个数据包通过DMA通道一次存入FIFO,则在构成一个新的数据包之前必须先等待前一数据包发送完成。为提高发送效率,设计将12页的发送缓存区分为两个6页的发送缓存区,一个用于数据包发送,另一个用于构造端的数据包,交替使用。 5 软件的调试与验证 调试环境包括RTL8019AS实验板、PC机(带网卡)以及网线。 用C51语言编程,实现TCP/IP协议中ARP数据帧的收发。 实验中,单片机首先构造一个ARP请求包发送给PC机,PC机收到后会发送一个ARP应答包给单片机,单片机收到该应签包后再发一个ARP请求包给PCF机,如此不断循环,来测试系统的性能。在PC机上采用Sniffer软件如Windump软件来监视(或截获)PC机网卡接收ARP包的情况,取得了满意的效果。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |