DSP与以太网卡的接口技术研究

2006-05-07 15:49:54来源: 电子技术应用

以太网是当今最受欢迎的局域网之一,它包括了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九部分[2]。

接口电路主要实现两种功能:一是与计算机ISA总线相连,包括数据总线读写、地址总线驱动、中断控制信号的产生、存储器读写信号以及I/O端口读写信号的引入等;二是对网内部的操作,包括对缓冲RAM的读写、对DP8390的控制、读站地址PROM以及读自举ROM等。表1列出了NE2000网卡接口电路所使用的ISA总线信号(不考虑电源线和地线)。从表1可以看出,网卡接口电路仅使用了50根ISA信号线。通过对网卡工作原理的分析,我们还可以将网卡与DSP之间的接口信号线减至最少。

表1 NE2000网卡接口电路所使用的ISA总线信号

信号线 引    脚
数据信号线 SD0~SD15
地址信号线 SA0~SA19
地址允许线 AEN
I/O通道准备好信号线 IOCHRDY
复位信号线 RESETDRV
系统存储器读信号 /SMEMR
I/O读信号 /IOR
I/O写信号 /IOW
I/O片选16位信号 /IOCS 16
中断信号线 IRQ5,4,3,10,11,12,15

(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网卡接口硬件电路

TMS320F206[4]是一种低价格、高性能的16位定点DSP,它的性价比极高,目前已成为高档单片机的理想替代品,在通信、语音/语言、军事、仪器仪表、图像处理、工业控制等领域得到了广泛的应用。本文所设计的就是该DSP与NE2000网卡的软、硬件接口,从而展开对基于DSP平台的局域网的研究。

根据上面对网卡与微机ISA总线接口电路的分析,表2列出了F206与网卡接口所需的引脚信号。

表2 F206与NE2000网卡接口所需引脚

  引  脚

说  明

外部总线 A15A0 16条外部地址总线
D15D0 16条双向外部数据总线
选择信号 /IS I/O空间选择引脚,/IS有效表明选择外部I/O空间
/STRB 外部访问有效选通信号引脚
读写信号 RD 读选择引脚
/WE 写使能引脚
请求/控制信号 READY 外部设备准备就绪引脚
通用I/O引脚 XF 通用输出引脚
中断申请信号 /INT2 外部用户中断

从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网卡的编程就是DSP对网络接口控制器(NIC)DP8390中各种寄存器进行编程控制,完成数据分组的正确发送和接收。网络通信过程可分为网卡初始化、接收控制和发送控制等三部分。限于篇幅,有关DP8390页面寄存器的详细说明和微机环境下的编程技术请参阅文献[5],DSP的完整汇编程序请有兴趣的读者和作者联系。下面只给出DSP读取NE2000网卡物理地址的一段程序,实际中是用来难验证上述硬件连接是否正确而编制的。我们购买的网卡物理地址为0040056388E7,在PC机上已经得到验证。实验证明,通过下面的程序运行读到了正确的物理地址,从而表明我们所做的设想和实际结果是完全一致的。

SPLK #0021H,60H;选择“0”页寄存器,后续操作为复位操作

OUT 60H,CR

SPLK #0049H,60H;选择16位传输方式

OUT 60H,DCR

SPLK #0000H,60H;清DMA远程字节寄存器

OUT 60H,RBCR0

OUT 60H,RBCR1

SPLK #001FH,60H;初始化接收状态配置寄存器

OUT 60H,RCR

SPLK #0002H,60H;初始化发达状态配置寄存器

OUT 60H,TCR

SPLK #004CH,60H;设置接收缓冲环起始页面地址寄存器

OUT 60H,PSTART

SPLK #0080H,60H ;设置接收缓冲环终止页面地址寄存器

OUT 60H,PSTOP

SPLK #004CH,60H ;设置边界指针寄存器

OUT 60H,BNRY

SPLK #00FFH,60H ;清网卡中断状态

OUT 60H,ISR

SPLK #00FFH,60H ;设置中断屏蔽寄存器

OUT 60H,IMR

SPLK #0000H,60H ;设置远程DMA起始地址为0000H

OUT 60H,RSAR0

OUT 60H,RSAR1

OUT 60H,RBCR1

SPLK #0006H,60H ;网卡地址长度为6个字节

OUT 60H,RBCR0

SPLK #000AH,60H;启动远程DMA读

OUT 60H,CR

NOP

IN 61H,DATA_PORT ;61H中存放网卡首字节地址“00H”

IN 62H,DATA_PORT ;62H存放网卡第二字节地址“40H”

IN 63H,DATA_PORT ;63H中存放网卡第三字节地址“05H”

IN 64H,DATA_PORT ;64H中存放网卡第四字节地址“63H”

IN 65H,DATA_PORT ;65H中存放网卡第五字节地址“88H”

IN 66H,DATA_PORT ;66H中存放网卡第六字节地址“E7H”

网卡在DSP中的应用解决了DSP与DSP之间、DSP与PC之间的准确、高速地通信问题。同,由于网卡中包含了OSI七层模型中物理层和数据链路层的全部内容,用户不必再为这两层的具体连接和实现操心,可把精力和时间用在要解决的实际问题中去,这必将给用户带来极大的方便。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200605/2417.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved