基于DSP的以太网通信系统设计
基于DSP的以太网通信系统设计
王 颖 陈朝阳 陈 敏
(华中科技大学图像识别与人工智能研究所IC设计中心 武汉 430074)
摘 要
本文介绍了以TMS320C54xDSP为微处理器、以Realtek8019AS为网络控制器的以太网通信系统的设计方法。通过分析8019AS网卡与ISA总线的接口,实现DSP之间通过以太网的语音和数据通信。
关键词:DSP 网卡 ISA总线中图法分类号:TP393
DesignofEthernetCommunicationSystemBasedonDSP
WangYing ChenChaoyang ChenMin
(ICDesignCentre,InstituteforPatternRecognitionandArtificialIntelligence,HUST,Wuhan430074)
Abstract:ThispaperintroducesonedesignmethodofEthernetcommunicationsystemusingTMS320C54xDSPMicroProces sorandRealtek8019ASNIC.Itanalysestheinterfaceof8019ASNICandISAsystembus,achievesthevoiceanddatatransmis sionbetweenDSPsystem.
Keywords:DSP,NIC,ISABusClassnumber:TP393
1 引言
以太网技术是当今嵌入式系统通信中常用的组网技术,它有费用低廉、构造方便等特点。以太网包
括了OSI网络模型七层中的物理和数据链路层的全部内容。在建立以太网的方案中,最常使用的就是IEEE802.3协议。对于网卡直接编程就可以实现其对802.3协议的支持。DSP是一种特殊的嵌入式微处理器,它具有嵌入式协处理器和快速的并行的数据通道。且由于DSP有强大的语音和图象的压缩、变换等处理能力,使得我们选用DSP作为语音信号处理器以及整个通信系统的微处理器,并集成以太网组网编辑技术,实现了DSP之间通过以太网的语音和数据传输。本系统实现了两个关键技术:用DSP及外围辅助电路模拟ISA总线时序;在DSP上编写ISA网卡的驱动程序。
网卡通过ISA接口与DSP板相连。ISA接口中若干信号时序与DSP不同,需要由设计DSP接口与之相配合。表1为ISA总线信号。
表1 NE2000网卡接口电路所使用的ISA总线信号数据信号线地址信号线地址允许线
I/O通道准备好信号线复位信号线系统存储器读信号读信号写信号片选16位信号中断信号线
SD0 SD15SA0 SA19AENIOCHRDYRESETDRV/SMEMR/IOR/IOW/IOCS16
IRQ5,4,3,10,11,12,15
通过网卡ISA总线的分析,本系统中DSP与ISA总线的连接方式为图1所示(只需用到SA15 SA0的地址线,故SA19 SA16接低电平):
2 网卡硬件接口电路组成
2.1网卡ISA总线和DSP的接口
基于DSP的以太网通信系统设计
图2 Ready信号组合逻辑
信号组合起来,连接到DSP。ISA的IOCHRDY引脚为5V信号,需要经过FPGA实现电平转换,因
此在FPGA配置完成之前,该引脚不起作用。FP GA配置设为!配置前上拉 方式,因此在配置结束前,该信号不会影响READY生成电路的工作。设DSP5410的CLKOUT周期为2H,图3、图4分别是5410和8019AS网卡的读、写时序图:(引自Re
图1 DSP与ISA总线的连接图
2.2网卡时序功能分析
DSP扩展总线的访问速度远高于外部器件,
DSP提供了两种方法协调外部访问:软件插入可变个数的等待周期;低电平有效(插入等待周期)的READY引脚。很多器件中提供了READY信号协调与CPU之间的操作。在本系统中有以下器件具有READY信号和类似功能的信号:FPGA,BUSY信号,配置器件使用,高电平拒绝接收数据;ISA,IOCHRDY低电平有效,请求插入等待周期;HPI,HRDY低电平指示HPI接口没有准备好。Ready信号组合逻辑如图2:
在DSP板的CPLD中将不同器件的
READY
altek8019ASSpecification)
在进行读操作时,最关键的两个时间参数是:5410读时序图中的ta(A)M1;RTL8019AS读时序图中的T4。在dsp与网卡相连后,T4就相当于ta(A)M1,dsp参数要求为ta(A)M1<4H-10;由于网卡速度慢于dsp,网卡数据出来较慢即T4的时间较长,典型值为50ns,一般dsp的CLKOUT周期2H大于10ns,若取10ns,则不满足参数要求:ta(A)M1=T4=50<4H-10=2*10-10,造成时序的不匹配,通常可加入软件等待或硬件等待,延长ta(A)M1的参数值,若加入一个等待周期,则ta(A)M1的参数范围由<4H-10变为<4H-10+2H,因此可以插入一定的等待周期使得50ns
满足
图3 网卡读时序图
基于DSP的以太网通信系统设计
第32卷(2004)第6期 计算机与数字工程
53
图4 网卡写时序图
时序要求。在进行写操作时,最关键的几个时间参
数是:5410写时序图中的tSU(D)IOSH;RTL8019AS写时序图中的T7,T5。在dsp与网卡相连后,T7就相当于tsu(D)IOSH,网卡的T7参数要求>10ns,一般dsp的速度较快,数据的建立时间小于10ns,通常可加入软件等待或硬件等待,延长tSU(D)IOSH的参数值,若加入一个等待周期,则ta(A)M1的参数值变大一个周期,由于网卡的IOCHRDY信号有效期为一固定值,当dsp速度快时,则插入更多的硬件等待,dsp速度慢时,可少插入等待周期。
3.1.1验证网卡内部数据通路
1)设置以下寄存器
RCR=00h(接收包)PAR0~5(物理地址)
DCR=43h(16bits模式)
TCR=02h,04h,06h(相应为做Loopback测试1,2,3)
使CRC可用(TCR中CRC=0)清除ISR内容2)传输一个包
3)检查ISR的值以及FIFO的内容3.1.2测试电缆连线
1)设置以下寄存器
RCR=00h(接收包)PAR0~5(物理地址)DCR=43h(16bits模式)TCR=06h(CRC可用)清除ISR内容
2)传输一个包
3)检查TSR的值(正确应为03h)3.2网卡初始化程序
初始化程序提供了网卡在当前工作条件下的配置参数,它包含以下几个部分:数据总线的宽度(8bits或16bits,本系统选择16bits);网卡物理地址(本系统中网卡物理地址由程序统一分配);可服务的中断类型;接收缓冲环的大小:网卡中包含16K的ram,它分为以256byte为一页,共64页。网卡16K的ram的地址从0x4000 0x7fff,本系统,3 网卡驱动程序的编写
本系统选用Realtek公司的ISA总线网卡8019AS作为网络控制器,它具有16位数据总线,遵循IEEE802.3以太网标准,便于使用DSP对其进行控制。网卡驱动程序的编写实际上就是通过对网卡寄存器的控制,来完成网卡的初始化以及网卡数据包的收发过程。网卡驱动程序为系统提供以下服务:网卡自检程序;网卡初始化程序;网卡包发送程序;网卡包接受中断服务程序。四个模块分别为网卡自检程序、网卡初始化程序、包发送程序、包接收程序。3.1网卡自检程序
网卡自检主要完成两个功能:验证网卡内部数据通路;检查网卡的电缆连接。网卡拉供了3种反馈测试(LoopbackTest)的模式,我们使用这些模式,并对网卡进行相应的操作,便可以完成自检测
基于DSP的以太网通信系统设计
54 基于DSP的以太网通信系统设计 第32卷
0x4000-0x4bff;使用后52页来存放接收的数据包,其地址为0x4c00-0x7fff;FIFO门限值:本系统将DCR中的FT1、FT0分别设为1、0即8byte;可接收的数据包类型;DCR寄存器即数据配置寄存器在所有寄存器之前配置(除了CR寄存器即命令寄存器)。
3.3包发送程序
NICSend接收上层软件的命令,来为其初始化一个数据包传送过程。如果驱动程序不能立即发送这个包(即发送器忙CR中的TXP=1),则等待直到发送器不忙为止。发送缓冲有2个,可以同时发送一个缓冲的数据,同时向另一个缓冲写数据。网卡包发送程序流程图见图5
。
读取数据的长度,然后开始传输数据。当DMA结束时,网卡将BNRY更新为数据包中的NextPagePointer。当BNRY和CURR寄存器相等时,就表示缓冲环中的数据为空了。
由于接收过程是一个异步的过程,接收过程必须设计为一个中断程序。在本系统中,网卡中断为一个硬件中断。接收中断程序是一个较高优先级的中断程序,用以保证接收缓冲区不溢出。所以,在接收缓冲环中数据必须保证在一个接收程序中全部传输到本地DSP的内存中(也就是上一级控制程序)。包接收中断服务程序流程图见图6
。
图5 包发送流程图
3.4包接收程序
接收程序的作用是传送接收缓冲环中的数据到主机内存。网卡通过远程DMA操作将数据从接收缓冲环中移到被主机读取的I/O端口。本驱动还控制操纵缓冲环的两个指针:BNRY为边界指针寄存器、CURR为当前页寄存器。
BNRY指向在缓冲环中的上一个未读的包;CURR指向内存中用来接收数据包的下一个空的位置。接收驱动接收BNRY指向的包(用远程DMA),并将BNRY修改为下一个包的页地址,而下一个包的地址是由网卡接收到的数据分组中的第二个字节的内容决定的(也就是NextPagePointer)。这个过程一直持续,直到缓冲环的数据全被读完为止。网卡控制器自动使用!sendpack et 命令读取数据报。当命令发出时,网卡控制器自动读取BNRY寄存器作为DMA的起始地址,从接收的数据包头的第三和第四字节中读取DMA
图6 包接收中断服务程序流程图
4 结束语
DSP作为专用的数字信号处理器,具有对语音和图像的强大处理能力。同时DSP具有丰富的硬件接口功能,运算速度快,编程调试方便。利用DSP对以太网卡进行编程就可以实现DSP之间的数据通信。对于语音通信,只需增加相应的AD/DA接口,以及语音数据的编解码程序即可。本系统应用在数字车辆通信系统中,取得了良好的效果。
参考文献
[1]WolfW著孙玉芳译.嵌入式计算系统设计原理.北京:机械工业出版社,2003
[2]戴明祯,周建江.TMS320C54x数字信号处理器结构、原理及应用.北京:北京航空航天大学出版社,2001[3]RTL8019ASSpecificationhttp:#http://