第二章总体方案设计2.1系统方案设计在以往的A/D器件采样控制设计中,多数是以单片机或CPU为控制核心,虽然编程简单,控制灵活,但缺点是控制周期长,速度慢。单片机的速度极大的限制了A/D高速性能的利用,而FPGA的时钟频率可高达100MHz以上。本设计以高集成度的芯片为核心,进行时序控制、码制变换。具有开发周期短,灵活性强,通用能力好,易于开发、扩展等优点。既降低了设计难度,又加快了产品的开发周期。基于FPGA的信号采集系统主要有:A/D转换器,FPGA,RS232通信,PC机组成。A/D转换器对信号进行会采集,A/D内部集成了采样、保持电路,可有效的降低误差,减少外围电路的设计,降低系统的功耗。A/D在接受到指令后进行采集,FPGA采集控制模块首先将采集到的通过A/D转换城的数字信号引入FPGA,而后对数字信号送往算法实现单元进行处理,并存于FPGA内部RAM中,再将数据由RS232传送到PC上做FFT,实现对采集信号的时域和频域的显示。图2.1.1系统的总体框图:FPGA的设计结构如图2.1.2所示。数字倍频器的倍频输出提供ADC控制器的采样触发脉冲。根据ADC0809操作时序,ADC控制器来实现ADC0809的数据采集操作,采样的时机由倍频器来控制。控制器每控制完成一次采样操作,则停止等待下一个触发脉冲的到来。倍频器每输出一个低电平脉冲,ADC采样控制器的状态机进行一次采样操作。在倍频器的触发控制下,完成被测信号一个基波周期N个点的等间隔采样,同时数字倍频器跟踪输入信号的频率的变化,尽可能地保持N个点的采样宽度正好为被测信号一个周波的宽度。-时钟分配及各模块的控制:在协调模块工作时,起到很重要的作用。引进晶振产的时钟信号,根据实际需要对起进行倍频或分频,使A/D的采样频率,RAM的读写频率,信号处理实现的核心模块的工作频率一致。RSTCLOCK32MHZCLK2A/D外围电路时钟电路核心控制器FPGAPC机SRAMLF398数字倍频正弦方波CLK0DIN0…..7CLKEOCDOUT0…7ADDALESTRDBENFPGA图2.1.2系统具体流程框图2.2各功能模块的设计方案2.2.1FPGA最小系统板方案设计FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物[4]。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。该系统的框图如下:图2.2.1FPGA最小系统框图2.2.2AD模块方案设计本课题要求对不大于10kHz的任意周期信号进行数据采集,根据奈奎斯特采样定理,AD的采样速率最小应为20kHz,而且要求系统简单可靠。综合考虑,本系统最后选择了adc0809,它具有最高100sps的采样速率,转换时间不大于100us,芯片的控制和外围电路都较为简单,完全满足系统的设计要求。2.2.3lf398模块方案设计ADC0809ADC控制器数据处理模块时钟模块LF398PC端下载接口FPGA时钟模块系统扩展接口电源模块对变化较慢的模拟信号(即所谓低频信号)在A/D芯片之前可不加采样保持电路。确切的说,若A/D转换器的速度比较模拟信号变化速度高很多倍,我们可将模拟信号直接加到A/D转换器上。如果模拟信号变化比较快,为了保证转换精度,就要在A/D之前加上采样保持电路,使得在转换期间保持模入信号不变。第三章系统硬件具体设计:3.1硬件总体设计本硬件电路的主要芯片有:模数转换芯片ADC0809、FPGA。其硬件电路如下图所示:图3.1FPGA控制的ADC0809采样电路图3.1中,输入部分:IN0-IN7为8条模拟量输入通道。ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路;中间部分:主要是FPGA芯片,实现对ADC0809的采样控制;输出部分:输出的8位二进制数字信号由两种方式显示,一种方式是由8个发光二极管组成,每一个二极管代表一位二进制数,当二极管处于发光状态即“亮”时,表示输出二进制“1”;否则输出“0”。简言之,“亮”—“1”,“灭”—“0”;另一种输出方式是由两位数码管组成的,每一位数码管以十六进制(即0--F)显示二进制输出的四位。3.2取样定理为了能正确无误地用取样信号VS表示模拟信号VI,取样信号必须有足够高的频率。可以证明,为了保证能从取样信号将原来的被取样信号恢复,必须满足FS=FI(MAX)上式就是取样定理,其中,FS为取样频率,FI(MAX)为输入模拟信号Vi的最高频率分量的频率。在满足上式的条件下,可以用低通滤波器将VS还原为VI。这个低通滤波器的电压传输系数在低于FI(MAX)的范围内应保持不变,而在FS-FI(MAX)以前应迅速下降为0,因此,A/D转换器工作时的取样频率必须高于最大频率,取样频率提高也就意味着留给每次转换的时间相应的缩短,这就要求转换电路必须具备更快的工作速度。因此,为了满足要求,通常取FS=(3--5)FI(MAX)。3.3模数转换过程采样-保持:由于采样时间极短,采样输出为一串断续的窄脉冲,而要把每一个采样的窄脉冲信号数字化,是需要一定的时间,因此在两次采样之间,应将采样的模拟信号暂时存储起来。把每次采样的模拟信号存储到下一个采样脉冲到来之前称为保持。量化与编码:量化与编码电路是A/D转换器的核心组成部分,对采样值的量化一般有两种方法:(1)只舍不入:首先取一最小量化单位∆=UM/2^N,UM是输入模拟电压的最大值,n是输出数字代码的位数。当输入模拟电压U1在0-∆之间,则归入0*∆,当U1在∆-2∆之间,则归入1∆。这样的量化方法产生的最大量化误差为,而且量化误差总是为正。(2)有舍有入:如果量化单位∆=2UM/(2^N+1)-1,当输入电压U1在0-∆/2之间,归入0*∆,当UT在∆/2-3∆/2之间归入1∆。这种量化方法产生的最大量化误差为∆/2,而且量化误差有正、有负。3.4模数转换类型直接型A/D转换器:直接型A/D转换器是把输入的模拟电压直接转换成输出的数字代码,而不需要经过中间变量。这种A/D转换器的优点是转换速度快,但转换精度受分压电阻、基准电压及比较器阈值电压等精度的影响,精度较差。间接型A/D转换器:间接型A/D转换器是先将输入的模拟电压u转换成与之大小对应的中间变量,然后再将中间变量转换为输出的数字量。目前使用较多的多属于电压-时间(V-T)变换型和电压-频率(V-F)变换型两大类:(1)电压/时间型A/D转换器有单积分型、双积分型和四重积分型多种,但用的最多的是双积分型。(2)电压-频率型A/D转换器,主要有积分器、窗口比较器、触发器和计数器等组成。3.5模数转换精度A/D转换器的转换精度:在单片集成A/D转换器中,也用分辨率和转换误差来描述转换精度。分辨率:A/D转换器的分辨率是指引起输出数字量变动一个二进制数码最低有效位时,输入模拟量的最小变化量,小于此最小变化量的输入模拟电压变化,将不会引起输出数字量的变化。转换误差:通常以相对误差的形式给出,它表示A/D转换器实际输出的数字量与理想输出的数字量之间的差别,并用最低有效位LSB的倍数表示。3.6模数转换芯片ADC0809大规模集成电路芯片ADC0809是一种由单一+5V电源供电,采用逐次逼近转换原理,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中,能够对0~+5V的8路输入模拟电压进行分时转换的通用型可编程模数转换器。(1)ADC0809的内部逻辑及引脚结构:IN0STCLKIN1EOCIN28路模拟量开关IN3D0IN4D1IN5D2IN6D3IN7D4D5D6D7ABCALEVREF+VREF--OE图3.6.1内部逻辑及引脚结构图由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。地址锁存与译码电路完成对A,B,C三个地址位进行锁存和译码,其译码输出用于通道选择。八位A/D转换器是逐次逼近式,由控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻梯网络等组成。(2).引脚结构12822732642552462372282192010191118121713161415图3.6.2引脚结构图D7~D0:输出数据线(三态)IN0~IN7:8通道(路)模拟输入ADDA、ADDB、ADDC:通道地址ALE:通道地址锁存START:启动转换EOC:转换结束状态输出8路A/D转换器三态输出锁存器地址锁存与译码器IN3IN2IN4IN1IN5IN0IN6AIN7BSTCEOCALED3D7OED6CLKD5VCCD4VREF+D0GNDVREF-D1D2OE:输出允许(打开输出三态门)CLK:时钟输入(10KHz~1.2MHz(3)ADC0809主要引脚说明:ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条,IN0-IN7:8条模拟量输入通道,ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。3.7ADC0809设计及工作原理:ADC0809满量程为5V,则分辨率为5000mV/256=20mV,也就是说当模拟电压小于20mV,ADC就不能转换了,所以分辨率一般表示式为:分辨率=Vref/2位数(单极性)或分辨率=(V+ref-V-ref)/2位数(双极性)求f采≥要2f信,也就是说必须在信号的一个周期内采集2个以上的数据,才能保证信号形态被还原(避免出现“假频”),这就是“最小采样”原理。若f信=20kHz,则f采≥40kHz,其转换时间要求≤25µs。工作原理:START是转换启动信号,一个正脉冲过后A/D开始转换:ALE是3位通道选择地址信号锁存信号。当模拟量送至某一输入端,有3位地址信号选择,而地址信号由ALE锁存。EOC是转换情况状态信号,当启动转换约100us后,EOC将产生一个负脉冲,以示转换结束。在EOC的上升沿后,且输出使能信号ENABLE为高电平,则控制打开三态缓冲器,把转换好的8位数据送至总线。至此ADC0809的一次转换结束8位A/D转换器ADC0809为单极性输入、逐次逼近型A/D转换器,其原理图如图2.3所示:图3.78位逐次逼近型A/D转换器ADC0809原理图逐次逼近式ADC是应用最广泛的一种A/D转换方法。逐次逼近式进行转换时,用一个逐次比较寄存器存放转换出来的数字量,转换结束时,将数字