DM9000A与基带信号处理平台的结合应用
引言
软件无线电(SDR)技术近年来发展迅速,在无线通信中的数字接收机领域应用尤其广泛。SDR中数据接口设计是关键的环节,以太网是目前最通用的数据接口之一,但是中低端的FPGA通常不具备以太网接口,这为FPGA在SDR中的应用造成了不便。如果为FPGA配置以太网接口,与外部网络实现通信,将有利于SDR平台的功能延伸,方便数据传输和与现有系统接口。
本文在自行设计开发的SDR基带信号处理平台上,为实现高速解调数据的实时远程传输处理及接收机参数的远程配置,提出了采用FPGA直接控制DM9000A进行以太网数据收发的设计思路,采用Xilinx系列XC2V1000 FPGA和DM9000A芯片,实现了一种低成本、低功耗和高速率SDR平台的网络传输功能,最高传输速率可达100Mbps。
DM9000A简介
主要特点
DM9000A实现以太网媒体介质访问层(MAC)和物理层(PHY)的功能,包括MAC数据帧的组装/拆分与收发、地址识别、CRC编码/校验、MLT-3编码器、接收噪声抑制、输出脉冲成形、超时重传、链路完整性测试、信号极性检测与纠正等。
工作原理
DM9000A可以和微处理器以8位或16位的总线方式连接,并可根据需要以单工或全双工等模式运行。在系统上电时,处理器通过总线配置DM9000A内的网络控制寄存器(NCR)、中断寄存器(ISR)等,以完成DM9000A的初始化。随后,DM9000A进人数据收发等待状态。
当处理器要向以太网发送数据帧时,先将数据打包成UDP或IP数据包,并通过8位或16位总线逐字节发送到DM9000A的数据发送缓存中,然后将数据长度等信息填充到DM9000A的相应寄存器内,随后发送使能命令,DM9000A将缓存的数据和数据帧信息进行MAC组帧,并发送出去。
当DM9000A接收到外部网络送来的以太网数据时,首先检测数据帧的合法性,如果帧头标志有误或存在CRC校验错误,则将该帧数据丢弃,否则将数据帧缓存到内部RAM,并通过中断标志位通知处理器,处理器收到中断后将DM9000A接收RAM的数据读出进行处理。
DM9000A自动检测网络连接情况,根据网速设定内部的数据收发速率是10Mbps或100Mbps。同时,DM9000A还能根据RJ45接口是采用对等还是交叉连接方式而改变数据收发引脚的方向,因此,无论外部网线采用对等还是交叉方式,系统均能正常通信。
基于DM9000A的SDR基带信号处理平台网络接口设计与实现
下面以SDR基带信号处理平台的网络接口实现为例,给出DM9000A与FPGA的硬件设计和软件配置方法。在SDR基带信号处理平台上,全数字接收机的中频模拟信号经过A/D转换、数字下变频、抽取滤波等解调处理后,形成连续的解调数据流,其速率为10Mbps。在FPGA内部,解调输出的数据流和以太网接口部分通过FIFO进行缓冲,当解调数据达到规定的数据帧长度时,FPGA启动以太网发送程序,将解调数据发送到DM9000A,完成数据发送过程。在接收方向,网络工作站把控制指令按照一定的帧格式组帧发送到以太网,DM9000A接收到发给自己的以太网帧并通知FPGA启动以太网接收程序,FPGA将相应的数据从DM9000A的接收FIFO读到FPGA内部RAM中,利用数据中的控制命令配置接收机参数,完成网络对全数字接收机的远程控制。
与FPGA的数据接口和控制接口
DM9000A的外部总线符合ISA标准。可通过ISA总线直接与FPGA无缝连接。其硬件连接原理如图1所示。
DM9000A内部集成了PHY功能,因此可与以太网接口无缝连接。
DM9000A的FPGA控制
初始化模块
DM9000A正常工作需要在上电后对内部寄存器进行初始化,该过程通过FPGA对DM9000A外部控制总线和数据总线的读写操作完成。具体流程如下所示:
>激活PHY
设置GPR(REG_1F)CEPIO0bit[0]=0;
复位后,DM9000A恢复默认的休眠状态,以降低功耗,因此需要首先唤醒PHY。
>进行两次软复位,步骤如下:
设置NCR(REG_00)bit[2:0]=011,至少保持20μs;
清除NCR(REG_00)bit[2:0]=000;
设置NCR(REG_00)bit[2:0]=011,至少保持20μs;
清除NCR(REG_00)bit[2:0]=000;
>配置NCR寄存器;
设置NCR(REG_00)bit[2:1]=00;配置为正常模式。
通过改变该寄存器可以选择设置内部或者外部PHY、全双工或者半双工模式、使能唤醒事件等网络操作。
>清除发送状态;
设置NSR(REG_01)bit[5]=1bit[3]=1 bit[2]=1;
>设置IMR寄存器(REG_FF)PAR bit[7]=1,以肩用RX/TX FIFOSRAM读/写地址指针自动返回功能;
>通过IMR寄存器(REG_FF)PRM bit[0]/PTM bit[1],对RX/TX中断使能。如果需要在一个数据帧发送完后产生一个中断,就应该将PTM bit[1]置1,如果需要在接收到一帧新数据时产生一个中断,就应该将PRM bit[1]置1;
>设
- 基于DM9000A的以太网接口设计与实现(03-19)
- 基于DM9000A的DSP以太网接口设计与实现(03-12)
- Davicom公司DM9000A和DM9010 ISA NIC 以太网驱动分析(11-02)
- 基于DM9000A的网络接口设计(07-17)
- 以太网接口芯片DM9000A在嵌入式系统中的应用(11-25)
- Windows CE 进程、线程和内存管理(11-09)