基于DSP的以太网卡的接口技术研究
以太网是当今最受欢迎的局域网之一,它包括了OSI七层模型的物理层和数据链路层的全部内容1。在以太网中,网卡用于实现802.3规程,其代表是NOVELL公司的NE2000和3COM公司的3C503、3C508、3C509等网卡。对网卡直接编程就可以实现局域网内任意站点之间的通信而完全抛开了网络操作系统,这就启发我们能否在脱离PC环境的条件下实现网卡与其它微处理器之间的接口,从而建立基于非PC机平台的局域网络。对ISA总线型网卡,要实现这一设想,关键在于怎样利用微处理器及外围辅助电路模拟ISA时序。本文作者根据所做课题需要,通过分析NE2000网卡与微机ISA总线的接口电路,用DSP芯片TMS320F206结合外围电路模拟ISA时序,解决了DSP与NE2000网卡的软、硬件接口问题,初步实现了网卡在非PC机环境下的应用。
1 NE2000网卡与微机ISA总线接口电路分析
NE2000网卡是NOVELL公司生产的16位ISA总线的网卡,利用NE2000网卡可以组成总线结构的以太计算机局域网。该网卡遵循的标准与协议为IEEE802.3。其硬件结构如图1所示,按功能可将其划分为接口电路、缓冲RAM、站地址PROM、自举ROM、状态设置跳线器、连接器、DP8390、DP8391以及DP8392九部分。
接口电路主要实现两种功能:一是与计算机ISA总线相连,包括数据总线读写、地址总线驱动、中断控制信号的产生、存储器读写信号以及I/O端口读写信号的引入等;二是对网卡内部的操作,包括对缓冲RAM的读写、对DP8390的控制、读站地址PROM以及读自举ROM等。表1列出了NE2000网卡接口电路所使用的ISA总线信号(不考虑电源线和地线)。从表1可以看出,网卡接口电路仅使用了50根ISA信号线。通过对网卡工作原理的分析,我们还可以将网卡与DSP之间的接口信号线减至最少。
(1)网卡自举ROM中固化了远程自举程序,使得用户工作站能够远程自举DOS系统,并从服务器上装载程序。这个功能很少用到,而且在基于DSP平台的局域网中也不存在DOS系统,故一般情况下都是通过跳线器屏蔽掉此功能。因而,/SMEMR和SA10~SA19这11根信号线可以不用。
(2)AEN信号只有当DMA控制器是总线占有者时,它才产生作用3。由于网卡并不使用DMA操作,故可将该信号线始终保持在低电平,使网卡I/O译码操作一直有效。
(3)80X86系列微机为了兼容的需要,设置了/IOCS16信号线。由于我们使用的是16位DSP,不进行8/16位数据读写的转换,故不需要此信号。
(4)DSP只需要一根中断线,因而可在上述7根线中任选一根即可,其余6根中断线悬空即可。
(5)网卡与ISA总线交换数据是通过I/O端口实现的,微机采用PIO方式,从网卡缓冲RAM中读入数据,或将主机内存中的数据送至网卡RAM缓冲区。根据这一分析,DSP及其外围辅助电路应能完成模拟ISA总线I/O读写的功能。
通过上面对网卡接口信号线的详细分析,可以看到DSP与网卡之间只需正确连接32根信号线,从而使DSP的外围接口电路大大简化。
2 DSP与NE2000网卡接口硬件电路
TMS320F2064是一种低价格、高性能的16位定点DSP,它的性价比极高,目前已成为高档单片机的理想替代品,在通信、语音/语言、军事、仪器仪表、图像处理、工业控制等领域得到了广泛的应用。本文所设计的就是该DSP与NE2000网卡的软、硬件接口,从而展开对基于DSP平台的局域网的研究。
根据上面对网卡与微机ISA总线接口电路的分析,表2列出了F206与网卡接口所需的引脚信号。
从表1和表2可以看出,NE2000网卡接口电路所需的信号线与F206的引脚之间有明确的对应关系。但是,它们之间能否通过简单的组合逻辑进行相连还需分析微机ISA总线I/O读写时序与F206的I/O读写时序是否一致。以读时序为例,图2给出了微机ISA总线I/O读时序过程,图3给出了F206的I/O读时序。从这两个时序图可以看出:微机采用数据和地址总线复用的总线传送方式,当地址锁存后,数据再送上总线;DSP采用独立的数据和地址总线传送方式,地址在一个I/O周期之间保持有效,数据在/RD信号有效后,在I/O周期内保持有效。因此,DSP可以按下述应用模仿微机时序对网卡进行操作。
(1)数据线、地址线可以直接相连。网卡仅使用F206的A0~A9这10根地址线。
(2)/IOR、/IOW信号线可通过/IS、/STRB、/RD、/WE这4根信号线译码得到,下式给出了生成/IOW、/IOR的译码逻辑关系:
/IOR=/IS+/STRB+/RD
/IOW=/IS+/STRB+WE
另外,XF引脚信号经驱动可直接连至RESETDRV,READY引脚经上拉电阻连接IOCHRDY,/INT2反向后与IRQ5相连。图4给出了F206与网卡连接时的硬件框图,GAL16V8来完成译码及驱动的工作。
3 DSP对NE2000网卡的编程
DSP对NE2000网卡的
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)