RTL8019型控制器与DSP的接口设计及编程技巧
扫描二维码
随时随地手机看文章
关键词:闪速存储器;接口;DSP;TMS320F206;RTL8019
1 引言
数字信号处理器(DSP)具有先进的并行处理结构,特别适合于信号处理,已经越来越多地应用于工业控制领域和各类仪器仪表的开发设计。互联网络硬件和软件的迅猛发展使得网络用户呈指数增长,在使用计算机进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备逐步走向网络化,以便共享网络中庞大的信息资源。在电子设备日趋网络化的背景下,利用高速数字信号处理器控制RTL8019实现以太网通讯具有十分重要的意义。
TMS320F206是TI公司生产的16-bit定点DSP,它有l条程序总线和3条数据总线,采用了改进的哈佛结构,内含高度并行的32-bit算术逻辑单元、16×16-bit并行硬件乘法器、片内存储器和片内外设,配备了高度专业化的指令集,功耗相当低,特别适合于信号处理。RTL8019采用100引脚POFP封装,性能优良,价格低。它支持PnP自动探测.符合EthernetⅡ与IEEE802.3(10Base5、10Base2、10BoseT)标准,内嵌16 KB SRAM,有全双工通信接口,可以通过交换机在双绞线上同时发送和接收数据,使带宽从lO MHz增加到20 MHz,是进行以太网通信的理想器件。本文即结合DSP处理器的特点,详细介绍Realtek公司生产的RTL8019型以太网控制器的硬件电路设计方法及编程技巧。
2 RTL8019的主要引脚功能
AEN(34):地址使能引脚,决定电路被分得的地址空间:
INT0-INT7(97~100,1~4):中断请求引脚;
IOCHRDY(35):读/写命令准备引脚;
IOCSl6B(96):8位/16位数据选择引脚,高电平选择16位数据总线,低电平选择8位数据总线;
IORB,IOWB(29,30):I/O端口读命令、写命令;
SMEMRB,SMEMWB(3l,32):寄存器读命令、写命令;
RSTDRV(33):复位信号;
SD0-SDl5(36~43,87,88,90~96):数据线;
SA0-SDl9(5,7~13,15,16,18~27):地址线;
X1(50):20 MHz晶体振荡器或外部晶体振荡器输入引脚;
LEDBNC,LEDO,LEDl,LED2(60~63):网卡状态指示;
TPOUT+、TPOUT-、TPIN-、TPIN+(45,46,58,59);数据发送和接收引脚。
3 寄存器配置
RTL8019有4页寄存器组,每页寄存器组有16个寄存器。进行网络通信时需要对这些寄存器进行设置。
CR是控制命令寄存器,地址是00H,这个寄存器用来选择寄存器页,控制远程DMA操作。其中STP(O bit)是停止命令位,PSO、PSl(6 bit、7 bit)是页寄存器选择位,在实际配置寄存器时,首先要指定要配置的寄存器属于哪一页(就是进行PSI和PSO的设置),然后对该页中的寄存器写入配置信息。
PSTART是接收缓冲区起始页位置,地址是01H。
PSTOP是接收缓冲区中止页位置,地址是02H。
BNRY是边界寄存器,地址是03H。
TSR是发送状态寄存器,TPSR是发送缓冲区起始页位置,地址是04H。
NCR是发送期间碰撞次数,地址是05H。
FIFO是回环检测后,查看FIFO内容,地址是06H。
ISR是中断状态寄存器,写“1”清除内部所有寄存器位,地址是07H。
CRDAO,CRDAl是当前的远程DMA地址寄存器,地址是08H、09H。
RBCR0,RBCRl是远程DMA字节计数寄存器,地址是0AH、OBH。
RSR接收状态寄存器,RCR是接收配置寄存器,地址是0CH。
TCR发送配置寄存器,TSR是发送状态寄存器,CNTR0是帧同步错总计数器,地址是0DH。
DCR是数据配置寄存器,CNTRl是CRC错总计数器,地址是0EH。
CNTR2是丢包总计数器,地址是0FH。
远程DMA端口寄存器,地址是10H。
复位端口寄存器,地址是1AH。
要进行网络通信必须对网络控制器的各个寄存器初始化,初始化比较烦琐,但非常重要,它决定网络通信的一些重要参数。初始化时需要对上述的各个寄存器进行详细配置。
4 硬件接口电路设计
在具体应用中,由于DSP本身的限制,进行了一系列的简化设计。采用跳线工作方式即网卡的I/0和中断由跳线决定,JP引脚接高电平时选择16位数据总线。仅通过4条地址线A0-A3选择RTL8019的寄存器地址和存储器地址,控制并实现数据的读取。LEDBNC、LEDO、LEDl、LED2网卡状态指示引脚连接发光二极管,便于直观判断网卡状态。通过GAL22V10型逻辑编程器对RTL8019的片选信号进行控制。具体的硬件接口电路图如图1所示。
5 软件编程
TMS320F206的用户可以用汇编语言或C语言进行源程序的编写,用C语言开发出的系统易于维护,可靠性高,可移植性好。下面介绍用C语言编写的RTL8019的开发程序。由于篇幅有限,本文仅给出RTL8019的初始化程序和接收包子程序。
void ethernetinit()
6 结束语
本文详细论述了RTL8019的引脚功能、寄存器配置、硬件配置和软件编程方法,这些同样可以作为单片机、微处理器以及PC等其他应用系统对于网络通信设计的直接参考,用户也可以针对自己的特殊需要进行一些特殊设置。这些方面的研究和逐步推进将为测控领域注入新的生机和活力。