TMS320C54x DSP的以太网接口设计_DSP论文
关键词:以太网 dsp 接口
以太网产品供应商多、用户组网方便、费用低。以太网是当今最受欢迎的局域网之一,而数字信号处理器(dsp)正加速进入嵌入式应用领域,如何将dsp与以太网连接起来,实现dsp与dsp或dsp与计算机间的网络互连显得非常重要。目前还未见到自带以太网接口的dsp,本文介绍以太网控制器rtl8019as的主要特点、性能及操作方法,并给出tms320c54x dsp(以下简称c5402)通过rtl8019as与以太网互连的接口方法。
1 rtl8019as介绍
rtl8019as是台湾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复位结束时采样这些配置引脚,并根据引脚状态初始化其内部的配置寄存器。
4 rtl8019as的编程
可以用查询方式或中断方式对rtl8019as进行操作。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的应用领域。