1
设计方案
目前,单片机已广泛应用到数据采集系统设计中,通过灵活的设计,单片机的软件可以实现各种不同的逻辑运算和控制功能,但是在以单片机为主构成的系统中还需要大量的中、小规模数字集成电路。随着电子技术的高速发展,采用具有ISP(系统内编程)功能的FPGA取代传统单片机外围的中、小规模的集成电路已经成为技术发展的必然趋势。
采用微处理器(单片机)+FPGA+信号采集存储电路。这种方案完全可以实现小体积和低成本。
该系统相对于传统的系统具有以下特点:
(1)、 速度快。传统的数据采集处理系统,一般都把单片机作为主控芯片来完成对外围芯片的控制,然而单片机本身的缺点制约了整个系统的性能。单片机的速度相对较慢,而当前电子系统对频率的要求越来越高,如在一些实时的音频、视频处理中频率可达到上百兆,这样的频率对于单片机来说是无能为力的。如果采用单片机来控制A/D芯片和数据显示将显著降低整个系统的工作速度。随着微电子技术的发展,FPGA器件的容量变得越来越大、速度变得越来越快,高端产品的速度已经达到几百兆。采用FPGA器件来完成高速A/D芯片的控制和数据显示,可把单片机“解放”出来。在数据采集系统中需要对采样数据进行滤波(如FIR, IIR等),这些滤波电路完全可由FPGA从硬件上实现,把滤波后的数据再传输给单片机处理,使系统的速度成倍提高。
(2)、 可靠性高。传统的系统除了单片机外还有大量的中小规模集成电路,在高速、强电磁干扰等恶劣条件下,芯片的数量越多受到干扰的可能性就越大,造成单片机频繁出现程序跑飞、系统复位。采用FPGA器件可减少系统受干扰的几率,显著提高系统的可靠性。尽管在功能开发上,FPGA 器件通过EDA软件实现,但物理机制却属纯硬件电路,十分可靠。通过合理设计,在大多数应用中无须考虑复杂的复位和初始化,设计中只需利用简单的语句将闲置状态导入同一初始入口,就能有效防止任何可能的“死机”现象。 (3)、 开发周期短,系统具有可升级性。由于FPGA的最大特点就是可以通过软件编程对其器件的结构和工作方式进行重构,能随时进行调整以满足产品升级的需要。采用EDA的方法对系统进行设计,用户不仅可通过直接对芯片结构的设计实现多种数字逻辑系统功能,而且由于管脚定义的灵活性,减轻了电路图设计和电路板设计的工作量和难度,硬件设计可以如软件设计一样方便快捷,改变了传统数字系统及用单片机构成的数字系统的设计方法、设计过程,缩短了开发周期,提高了效率。在设计系统时,可以应用VHDL语言完成系统的行为描述,通过Quartus II软件对VHDL进行综合、仿真,最后下载到FPGA器件中。
以MCU+FPGA双片结构为核心的数据采集处理系统,在EDA工具的协助下采用自顶向下的系统设计方法,缩短了开发周期,提高了设计效率。其硬件体系结构为高速数据采集与处理提供了一种新的思路,结合具体的设计场合,还可变换出多
种形式的数据采集系统,满足不同场合的应用。这种系统结构已经成功地应用于各种领域,取得了较好的实际效果。
2 硬件电路
电路总体框架如图:
窄脉冲信号 发生器(用于测试) 窄脉冲信号 高速数据采集模块 串口通信模块 计算机
本文使用的FPGA采用Altera公司生产的EP2C8Q208芯片,其内部具有8256个Les,36个M4K RAM块,总RAM数达到165888位,另外内部集成两个锁相环(PLL),锁相环最高输出时钟频率可达250MHz,8个时钟引脚,外部有182个I/O端口,8个时钟输入引脚,接口扩展非常方便。
2.1 高速数据采集模块
系统由模数转换器AD9226、复杂可编程逻辑器件EP2C8Q208C、单片机STC89C52和电平转换芯片等几个部分构成,系统框图如下图。
脉冲信号 A/D变换 单片机 计算机 FIFO缓存器 FPGA 发送的脉冲信号经过分压电路进入AD9226进行模数转换,模拟信号被转换
成数字信号存储在FPGA内部建造的FIFO缓存中,单片机读取FIFO存储的数据并将其发送至上位机进行波形显示。
其中,AD9226是AD公司生产的一种12位、最高转换速度达65MSPS的高性能模数转换器。它具有片内高性能采样保持放大器和电压参考。在单一五伏电源下,它的功耗,仅有475mW, 信噪比与失真度为±0.6dB。且具有信号溢出指示位, 并可直接以二进制形式输出数据。AD9226采用多级差动流水线式结构对输出错误进行逻辑纠正, 以保证在整个工作温度范围内不失码。AD9226采用的流水线式结构便于操作,同时其65MSPS的速度适合本文的高速采样要求。
AD9226的采集电路,如图2.5所示。
2.2 FPGA的时序控制
FIFO在QuartusⅡ平台中是一种存储器参数可设置模块库,在高速数字系统中常用作缓存。在高速数据传输和实时显示领域中,需要对数据进行快速储存和发送,要实现快速的数据采集、顺序储存和传送,传统的RAM型存储器已经无法满足要求。目前许多高速系统都采用FIFO作为缓存。因为FIFO 的写入( 读出) 时间只需要一个时钟周期,不需要对地址进行加一操作,这样大大提高了存储速度。
利用宏功能块,在QuartusⅡ平台中定制一个高速的FIFO缓存,根据需要对所使用的宏功能块的参数进行适当调整,由此可生成一个满足自己特定需要的缓存模块。FIFO例化后的模块及其仿真时序图如下图所示。
3 软件设计方案
3.1 FPGA与上位机的连接
通过单片机和RS232串口传输线实现FPGA与上位机的连接,单片机的任务是读取存储在FPGA的FIFO缓存中的数据,并将其传送给上位机,考虑对于读取数据的速度要求不高,本文采用RS232传输的方式,在单片机的控制下与上位机进行通讯。
3.2 串行通信
串行通信的特点:数据按位传送,按位的顺序进行,只需一个线即可完成,成本低,传输距离远,但传输速度较并行通信慢。
本高速数据采集系统的串口通信参数为:波特率为9600bit/s,数据位为8bit,起始位1bit,停止位为lbit,无奇偶校验位。
下图所示为数据帧格式。
3.3 上位机软件
本系统的软件主要由读数据、处理数据和显示数据三个模块组成。通过添加Microsoft Visual C++ 6.0软件自带的MSComm串口通信控件进行读数据的操作;上位机首先初始化串口配置,如波特率、数据帧格式等,为与单片机的数据通信做准备;接着向单片机发送命令,通知单片机将采集到的数据发送给上位机;当单片机有数据发送给上位机时,上位机接收单片机的数据,并且进行数据处理,将处理后数据用实时曲线显示出来。
因篇幅问题不能全部显示,请点此查看更多更全内容