O 引 言
随着科学技术的发展,数据采集技术进入到越来越多的领域。目前,已广泛应用于通信,图像处理,军事应用,消费电子,智能控制等方面。传统的数据采集系统一般都是采用单片机作为处理器,控制A/D转换器,存储器及其他外围电路的工作。这种方式的优点是系统的工作基本都是用单片机来完成,实现起来较为方便,只需对处理器进行编程即可。但随着数据采集进入的领域越来越复杂,对数据采集的速度和深度都有了更高的要求。传统的单片机由于时钟频率较低,外设速度慢等缺点已经大大的限制了数据采集的速度和性能。而FPGA与单片机相比,有着频率高,内部延时小,内部存储容量大等优点,比单片机更适应与高速数据采集的场合。因此,本文介绍了一种基于FPGA来实现高速数据采集的方法,A/D转换器使用AD公司的AD9481,FPGA使用ALTERA公司的EP2C5Q208,存储器使用HYNIX公司的HY57V641620。系统框图如图1所示。
本文采用的AD转换器是ADI公司的AD9481,AD9481是一款典型的高速AD转换器,其高达250MSPS的采样率,适用于高速数据采集的场合。因为AD9481需要250M的基于PECL标准的差分时钟才能工作在250MSPS,因此本设计采用摩托罗拉公司的MCl00LVEL16这一时钟芯片来提供250M的差分时钟,它只需要输入单端CMOS电平的250M时钟便可以输出符合AD9481要求的250M差分时钟。单端时钟由FPGA的锁相环对有源晶振输入的时钟进行倍频输出。但是这么高的时钟在线路板中是一个潜在的威胁,它既容易干扰其他器件,又容易被其他器件干扰。AD9481的数字输出属于并行接口,2个250MSPS,8位数据输出组合形成125MSPS,16位的数据流,如此高速的数据传输与存储容易使数字系统中出现竞争冒险和亚稳态,因此首先在AD的数据输出引脚和FPGA的输入引脚之间串联100欧姆的电阻,用来削弱高速数据线在O,1之间变换产生的毛刺和数据线之间的干扰。其次,在FPGA内部对AD的数据线和锁存时钟的使用应严格按照器件手册上的建立时间和保持时间来设计,否则容易产生亚稳态。
该设计选用的FPGA是EP2C5Q208,它是ALTERA公司的CYCLONE2系列的一款低成本FPGA,适用于中小型设计。拥有多达4608的逻辑单元,119808 bit的内部RAM,支持ALTERA公司的SOPC,NIOSII,本设计通过EP2C5Q208的内部RAM来做AD高速数据传输的缓冲,AD过来的高速数据通过锁存时钟完成对FIF0的写操作。如图2所示,AD_DB[15..O]是AD的数据线,ADB_DCOB是AD的锁存时钟。
2 高速大容量存储的实现
2.1 FPGA与高速存储器接口的实现
高速数据采集一般都需要大容量的存储,从而更能完整的记录所需要的数据,捕捉突发信号的能力也更强。传统的数据采集由于速度低,容量小,一般都采用SRAM,SRAM的特点是控制相对简单。但随着高速数据采集的发展,SRAM无论在速度上还是容量上都越来越无法满足人们的需要。SDRAM由于具有速度高,存储容量大,价格便宜等优点,越来越多的被应用于高速数据采集的场合。SDRAM即同步动态随机存储器。同步指的是时钟频率与系统时钟频率相同并且内部的命令的发送与传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据的不丢失;随机是指数据不是线性依次的存储,而是指定地址进行数据的读写。由此可见SDRAM的速度能达到很高,但SDRAM的缺点是控制起来相对麻烦,由于本身设计上的一些特点,它需要不断刷新,预充电等操作,因此让使用者感到非常麻烦。
本设计介绍了一种基于ALTERA公司的SOPC系统来实现SDRAM存储的方法,SOPC的全名是即片上可编程系统,或者说是基于大规模的FPGA的单片系统。简单来讲,在一片FPGA上,只要资源足够,用户可以根据自己的需要构建自己的CPU或者外设,ALTERA公司给用户提供了丰富的外设,包括串口,PIO,定时器,FLASH控制器,SDRAM控制器,网络接口等。这些外设都是ALTERA公司自己用硬件描述语言实现的IP核,性能好,通用性高,用户只需要打开SOPC这个选项,然后在里边挑选自己需要的外设就可以。因此,本设计利用SOPC建立一个SDRAM控制器,本设计用的SDRAM是HYNIX公司的HY57V641620,这是一款具有64MBIT容量16位宽的SDRAM,最高工作时钟可达200M。因为每个厂家的不同型号的SDRAM在参数上会有相应的差异,因此ALTERA的公司的SDRAM控制器给用户提供了简单易行的使用方法,用户在创建的时候只需要在相应参数的位置按照自己使用的SDRAM的具体参数修改即可。比如预充电,刷新周期,潜伏期这些参数要按照使用的型号进行修改,否则可能会造成数据的传输错误或其他的问题。