基于CPCI和光纤接口的数据采集卡设计与实现
2.4 SRAM读写设计
RAM有多种写的模式,可以按位擦写也可以按区块擦写。本系统选用相对简单快速的连续写的模式,此种模式需要一开始就向RAM依次写入控制字,然后每个时钟信号写入一个字。读操作只要各控制线置位正确读取相应地址位的数据,不需输入控制序列脉冲通过CE的变化来判断读。
RAM的读操作时序如图4所示。
2.5 FPGA控制程序的设计
如前面所述,FPGA主要完成时序协调和传输控制以及数据流的串/并转换和缓存,如图5所示。
FPGA选用Altera公司的StratixⅡGX系列,内部带有高速收发通道,可支持高速串行数据的传输;有多达20个嵌入3.125 Gb/s收发器和45个差分I/O,适合于高吞吐量的数据通道,包括高速背板和芯片间通信。该系列器件的嵌入收发器模块采用通用技术和一些需要时钟数据恢复(CDR)技术的新兴接口之间接收和发送数据。每个收发器模块具有四个全双工通道串行编码和同步数据,在外部环境和StratixⅡGX器件
通道之间传送。StratixⅡGX器件支持多种协议,包括10 Gb以太网XAUI,InfiniBand和SONET/SDH。同时内置高速DSP模块,可实现快速的乘法操作及FIR滤波器等功能,便于进行数据的快速处理。
根据系统主要的功能,FPGA控制程序主要包括时钟模块、数据处理模块、RAM读写控制模块、CPCI总线控制模块、光纤接口模块和其他接口控制等。
时钟模块主要将输入的时钟信号进行整形,并利用FPGA内部的PLL,配置全局和局部时钟,为各个模块提供所需的时钟信号。StratixⅡ GX FPGA系列具有8个锁相环(PLL)和16个全局时钟网络,提供含有多级时钟结构的完整时钟管理解决方案。在本设计中,使用了Quartus软件中内置的PLL模块,以简化设计。图6为PLL模块部分。
数据处理模块将各部分送来的数据进行相应的处理操作,包括指令译码、数据格式转换等,是整个控制程序的核心。
RAM读写模块负责数据的存储,根据数据处理模块的命令,向RAM中写入数据或者将RAM中的数据读出并送往其他模块。
CPCI总线控制模块负责FPGA和PCI9054接口芯片的通信,实现PCI本地端的时序控制,完成接收机测试数据和设置命令的传输等。
光纤接口模块使用StratixⅡGX内部的嵌入式千兆位收发器功能模块,接收光纤接口传来的高速串行信号,同时在FPGA内部实现自定义的收发协议,完成解包头、解波门、分IQ路等功能。程序中使用了Quartus软件中的ALTGXB模块,部分设计如图7所示。
除此之外,因为保留了一部分电接口,FPGA程序还有一个接口控制模块,以实现原有的电接口相关功能,保证数据采集卡可以和较早型号的接收机测试系统保持兼容。
3 CPCI驱动的开发
开发基于PCI的数据采集卡的驱动程序,主要有三个方面的问题:硬件访问、中断处理和DMA传输。
结合实际要求,从开发效率和驱动程序的执行效率两方面考虑,这里选择使用DriverStudio进行驱动程序的开发。DriverStudio是一整套开发、调试和检测Windows平台下设备驱动程序的工具软件包。它提供了一套完整的调试和性能测试工具,例如Driver Works,Drivet Monitor和SoftICE等。DriverWorks把微软的DDK用类的形式进行封装,简化了WDM驱动程序的开发,使用非常方便;SoftICE用来调试内核模式的驱动程序;DriverMonitor可以很方便地观察驱动程序的调试信息。DriverStudio所具备的高性能工具和对现代软件工程的实践,很大程度上方便了设备驱动程序的编写。所以选择DriverStudio开发设备驱动程序。
下面以DMA传输为例,介绍CPCI驱动程序的开发:
编写WDM驱动程序的DMA传输有特定的机制。DriverStudio中DMA整体的流程大致如下:当应用程序发出IRP_M J_READ的Irp后,驱动程序调用Irp的处理函数Handler,在这个Handler中初始化KDMATransfer,初始化完毕就调用DMAReady()函数,在DMAReady()函数中启动首次DMA传输即StartDMA,传输完后发生中断,在中断里调用Continue()启动下次传输,直到全部数据完成。DMA过程的流程图如图8所示。
文中设计的基于CPCI总线的通用雷达接收机测试系统,采用了光纤作为雷达数据传输的通道,具有较好的数据处理能力。实验证明该系统的软硬件设计是成功的,可对多型雷达的性能进行快速的测试。该设计对于数据处理要求高、实时性强、数据量大、处理算法复杂多变的雷达信号处理系统,有着重要的实际意义,具有广阔的应用前景。
- 基于CPCI总线的脉冲信号检测系统设计(01-14)
- 基于CPCI图像采集器的制动片磨损检测系统设计(10-18)
- 基于虚拟仪器的织机纬纱张力测试新方法(05-02)
- 基于虚拟仪器技术的引信软件安全性测试(02-20)
- 实时在线监测,可以轻松实现吗(09-25)
- 基于TPS2491的热插拔保护电路设计(10-10)