TMS320C54xDSP的以太网接口设计
摘要:介绍以太网控制器RTL8019AS的主要性能特点、引脚功能及寄存器,给出了利用RTL8019AS实现TMS320C54x DSP与以太网互连的接口电路,接口方式为跳线模式。通过该接口可实现DSP与DSP或DSP与PC机间的网络互连。
关键词:以太网 DSP 接口
以太网产品供应商多、用户组网方便、费用低。以太网是当今最受欢迎的局域网之一,而数字信号处理器(DSP)正加速进入嵌入式应用领域,如何将DSP与以太网连接起来,实现DSP与DSP或DSP与计算机间的网络互连显得非常重要。javascript:window.open(this.src);" style="cursor:pointer;"/>目前还未见到自带以太网接口的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部分引脚
与网络介质接口引脚 | ||
AUI | 输入 | 用于外部MAU检测 |
CD+,CD- | 输入 | AUI冲突,接收来自MAU的冲突 |
Rx+,Rx- | 输入 | AUI接收,接收MAU的输入信号 |
Rx+,Tx- | 输出 | AUI发送,往MAU的输出信号 |
TPRx,TPRx- | 输入 | 从双绞线接收的差分输入信号 |
TPRx,TPTx- | 输出 | 发往双绞线的差分输出信号 |
与主处理器接口的引脚 | ||
AEN | 输入 | I/O端口操作允许 |
INT7~0 | 输出 | 中断输出 |
IOCS16 | 输出 | 16位I/O口方式 |
IOR IOW | 输入 | 端口读、写控制 |
IOCHRDY | 输出 | I/O通道准备好 |
SMEMR SMEMW | 输入 | 存储器读、写控制 |
RSTDRV | 输入 | 复位 |
SA 19~0 | 输入 | 20位地址总线 |
SD 15~0 | 双向 | 16位数据总线 |
发光二极管输出引脚 | ||
LEDBNC | 输出 | 介质类型指示 |
LED0、LED1、LED2 | 输出 | 指示控制器的工作状态 |
工作方式配置引脚 | ||
JP | 输入 | 置位时选择跳线模式,复全时选择无跳线模式 |
PNP | 输入 | 置位时进入PnP模式(JP=0) |
IOS3~0 | 输入 | I/O口基地址选择 |
PL1~0 | 输入 | 介质类型选择 |
IRQS2~0 | 输入 | 用于在INT70中选择一个作为断输出 |
1.2 寄存器介绍
RTL8019AS片内寄存器分为NE2000寄存器组和PnP寄存器组(本文不介绍PnP寄存器组)。NE2000寄存器组地址如表2所示。NE2000寄存器分为4页,都映射到16个I/O端口地址上。主机通过命令寄存器(CR)中的PS0、PS1位来寻址不同的页,通过16个I/O口地址来寻址页内寄存器。
表2 RTL8019AS 寄存器地址表
page0 | page1 | page2 | page3 | |||
[R] | [W] | [R/W] | [R] | [R] | [W] | |
00 | CR | CR | CR | CR | CR | CR |
01 | CLDA0 | PSTART | PAR0 | PSTART | 9346CR | 9346CR |
02 | CLDA1 | PSTOP | PAR1 | PSTOP | BPAGE | BPAGE |
03 | BNRY | BNRY | PAR2 | - | CONFIG0 | - |
04 | TSR | TPSR | PAR3 | TPSR | CONFIG1 | CONFIG1 |
05 | NCR | TBCR0 | PAR4 | - | CONFIG2 | CONFIG2 |
06 | FIFO | TBCR1 | PAR5 | - | CONFIG3 | CONFIG3 |
07 | ISR | ISR | CURR | - | - | - |
08 | CRDA0 | RSAR0 | MAR0 | - | CSNSAV | - |
09 | CRDA1 | RSAR1 | MAR1 | - | - | HLTCLK |
0A | 8019ID0 | RBCR0 | MAR2 | - | - | - |
0B | 8019ID1 | RBCR1 | MAR3 | - | INTR | - |
0C | RSR | RCR | MAR4 | CRC | - | - |
0D | CNTR0 | TCR | MAR5 | TCR | - | - |
0E | CNTR1 | DCR | MAR6 | DCR | - | - |
0F | CNTR2 | IMR | MAR7 | IMR | - | - |
10~17 | Remote DMA Port | |||||
18~1F | Reset Port |
1.3 RTL8019AS与主机的接口模式
RTL8019AS与主机的接口模式有三种,即跳线模式、PnP模式和RT模式,见表3。
表3 RTL8019AS的接口模式
JP引脚 | PnP引脚 | 93C46中的PnP位 | 配置模式 | 配置来源 | Initiation Key |
1 | x | x | 跳线 | 跳线器 | RT |
0 | 1 | x | PnP | 93C46 | RT and PnP |
0 | x | 1 | PnP | 93C46 | RT and PnP |
0 | 0 | 0 | RT | 93C46 | RT |
(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复位结束时采样这些配置引脚,并根据引脚状态初始化其内部的配置寄存器。
javascript:window.open(this.src);" style="cursor:pointer;"/>
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的应用领域。