以太网是当今最受欢迎的局域网之一,而数字信号处理器(DSP)正加速进入嵌入式应用领域,如何将DSP与以太网连接起来,实现DSP与DSP或DSP与计算机间的网络互连显得非常重要。目前还未见到自带以太网接口的DSP,本文介绍以太网控制器RTL8019AS的主要特点、性能及操作方法,并给出TMS320C54x DSP[1](以下简称C5402)通过RTL8019AS与以太网互连的接口方法。
1 RTL8019AS介绍
RTL8019AS[2]是台湾readlted公司生产的以太网控制器,支持IEEE802.3;支持8位或16位数据总线;内置16KB的SRAM,用于收发缓冲;全双工,收发同时达到10Mbps;支持10Base5、10Base2、10BaseT,并能自动检测所连接的介质,在ISA总线网卡中占有相当比例。RTL8019AS与主机有3种接口模式,即跳线模式、PnP模式和RT模式。本文主要介绍便于DSP应用的跳线模式,因此下面主要介绍与跳线模式有关的引脚、寄存器及操作。
1.1 引脚介绍
RTL8019AS可提供100脚的TQFP封装,其引脚可分为电源及时钟引脚、网络介质接口引脚、自举ROM及初始化EEPROM接口引脚、主处理器接口引脚、输出指示及工作方式配置引脚。由于本文主要讨论非PC环境下的以太网接口,该接口不必具有即插即用功能(PnP)和远程自举加载功能,因此不介绍RTL8019AS与自举ROM、初始化EEPROM接口的引脚。其余各部分引脚的功能如表1所示。
表1 RTL8019AS部分引脚
1.2 寄存器介绍
RTL8019AS片内寄存器分为NE2000寄存器组和PnP寄存器组(本文不介绍PnP寄存器组)。NE2000寄存器组地址如表2所示。NE2000寄存器分为4页,都映射到16个I/O端口地址上。主机通过命令寄存器(CR)中的PS0、PS1位来寻址不同的页,通过16个I/O口地址来寻址页内寄存器。
表2 RTL8019AS 寄存器地址表
1.3 RTL8019AS与主机的接口模式
RTL8019AS与主机的接口模式有三种,即跳线模式、PnP模式和RT模式,见表3。
表3 RTL8019AS的接口模式 (1)跳线模式 这种模式与早期的网络控制器兼容。RTL8019AS的端口基地址、中断口等都由开关或跳线器决定。跳线模式简单,但配置资源麻烦。
(2)PnP模式 与微软的PnP协议兼容。在这种模式下,RTL8019AS的端口基地址、中断口等都由EEPROM93C46设定,但需要进行PnP芯片的识别,不便与DSP接口。
(3)RT模式 为了避免PnP模式下的PnP芯片识别和配置过程,readlted公司提供RT模式。在RT模式下,RTL8019AS的端口基地址、中断口等也是由EEPROM93C46决定的。
2 RTL8019AS与传输介质的连接
RTL8019AS可与双绞线或同轴电缆接口,连接方法如图1所示。介质选择由引脚PL1、PL0决定,另外,RTL8019AS还自动测试介质连接是否成功。
图1中,NS8392是同轴电缆驱动/接收器,其电源应与RTL8019AS的电源隔离,一般使用一个DC-DC电源转换器得到该隔离电源。16PT-005A内有3个耦合变压器,用来传输信号,同时抑制来自介质的共模噪声/干扰。20F001N是双绞线驱动/接收器,内部也有2个传输变压器。
3 DSP与RTL8019AS的接口
为了简化DSP网络接口的软、硬件设计,不使用远程自举加载功能,并且选用跳线接口模式。用C5402的扩展I/O口代替跳线器对RTL8019AS进行初始化配置,这样既省去了93C46,又避免了跳线器更改变资源配置的麻烦。
RTL8019AS的总线接口是与ISA总线兼容的,虽然不能与C5402的外部总线直接接口,但是只要进行一些简单的逻辑变换就可以了。另外,C5402的总线电平是3.3V的,而RTL8019AS的接口电路是5V的,二者接口时要使用电平转换器。C5402与RTL8019AS的接口如图2所示。
(1)地址总线 RTL8019AS的20根地址线主要是为了读/写自举ROM,对于I/O端口寻址来说只要16根地址线就足够了,因此将DSP的地址总线A0~A15与RTL8019AS的地址总线SA0~SA15相连,而SA16~SA19全部接地。由于DSP系统无DMA控制器,因此将RTL8019AS的AEN引脚也接地。
(2)数据总线RTL8019AS的IOCS16引脚接高电平,选择16位数据总线方式,并且使用了电平转换器。
(3)中断连接 虽然RTL8019AS有7个中断输出,但只要从中选择一个送往C5402的外部中断输入口就可以了。中断接口也使用了电平转换器。
(4)读/写控制C5402的I/O口控制信号IS、IOSTRB、R/W等信号经过74HACT139译码后与RTL8019AS的IOR、IOW连接。由于C5402的I/O口读/写速度很快,因此将RTL8019AS的IOCHRDY信号与C5402的外设准备好信号READY相连。另外,将SMEMR和SMEMW引脚接高电平,屏蔽了远程自举加载功能。
(5)初始化配置 用C5402的一个扩展输出口代替跳线器来指定RTL8019AS的I/O口基地址、中断输出口、介质类型,并用一个输出信号作为RTL8019AS的复位信号。RTL8019AS复位结束时采样这些配置引脚,并根据引脚状态初始化其内部的配置寄存器。
4 RTL8019AS的编程 可以用查询方式或中断方式对RTL8019AS进行操作[3]。RTL8019AS复位初始化后,程序员应对表2中的部分寄存器进一步初始化,然后才能发送数据或接收数据。RTL8019AS内置16KB的SRAM,可作为接收缓冲区和发送缓冲区。缓冲区分为64页,页范围为0x40~0x80,每页256个字节。由PSTART和PSTOP寄存器来设定接收缓冲器的页范围,由RSAR0、1和RBCR0、1寄存器来设定发送缓冲器的页范围。CURR指向接收到帧的起始页,Boundary指向还未读帧的起始页。当CURR到达了接收缓冲页的底部与PSTOR相等时,CURR又会指向PSTART处。
(1)查询方式 在查询方式下,通过CURR和Boundary两个寄存器的值来判断是否收到一帧数据。当Boundary与CURR不等时,说明接收缓冲区接收到了新的帧,主程序读取数据后,以读取帧的第二个字节(下一帧的页地址)更新Boundary,主程序循环跟踪CURR和Boundary达到接收数据的目的。主程序发送一帧数据时,先要查TSR寄存器判断上一帧是否发送完毕。
(2)中断方式 在实际的DSP应用系统中常采用中断方式。当一帧数据发送结束、接收到一帧数据或出错等事件发生时,RTL8019AS向DSP申请中断,DSP响应中断后根据中断状态寄存器的内容进行相应的处理。
RTL8019AS性价比高,与DSP连接方便,二者的结合将大大拓宽DSP的应用范围。带有以太网接口的DSP应用系统可以通过双绞线或同轴电缆与PC机构成一个高速局域网,并且DSP可以通过PC机接入互连网,进一步延伸DSP的应用领域。
|