基于FPGA的多路AD自动采集系统设计初稿

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于FPGA多路A/D自动采集采集系统设计摘要:在以往AD采集中,通过微控制器控制A/D芯片复杂的逻辑,不仅增加了微控制器干预,从而影响处理器运行速度,同时由于微控制器不断介入A/D控制会影响程序正常运行。本文概述了基于FPGA的多路数据自动采集系统的设计和实现过程。该系统采用高速A/D转换器将多路模拟信号转换成数字信号,以FPGA为控制核心产生各种控制时序,控制A/D和模拟量开关切换,并对转换结果进行数据读取保存在双口RAM中,通过试验验证表明该系统工作稳定,能够实现对多路采集信号实时采集处理,检测效果良好。关键词:FPGAA/D转换自动采集DesignofautomaticacquisitionandacquisitionsystembasedonFPGAmultiA/DAbstract:Inthepast,A/DacquisitionthroughthemicrocontrollertocontrolthecomplexityoftheA/Dchiplogic.Thatnotonlyincreasedthemicrocontrollerintervention,sothataffectingtheoperatingspeedoftheprocessor,butalsoaffectedthenormaloperationoftheprogramwhenthemicrocontrollercontinuousinterventiontheA/Dconversion.ThispaperSummarythedesignandimplementationofhighspeedmultichanneldataacquisitionsystembasedonFPGA,ThesystemuseshighspeedA/Dconvertertoconvertmultipleanalogsignalsintodigitalsignals.TheFPGAisusedascontrolcoretogeneratevariouscontroltiming,whichisusedtocontrolA/Dandanalogswitch,atthesametime,thedatathatisconvertedisstoredindualportRAM.Throughtheexperiment,thesystemisprovedtocanstablyreal-timeprocessformulti-channelsignalacquiredsystem,andtheexaminationeffectisgood.Keywords:A/DFPGAAutomaticAcquisition1引言在高速多路数据采集系统中,通常采用数字信号处理器DSP或单片机作为微控制器,控制模数转换器AD及其他外围设备的工作。但是基于微控制器的高速多路数据采集系统都有一定的不足。由于微控制器基于顺序语言的,各种功能都要靠软件的运行来实现,因此随着程序量的增加,如果程序的健壮性不好,会出现“程序跑飞”和“复位”现象。在A/D转换过程中,通过微控制器控制A/D芯片复杂的逻辑,不仅增加了微控制器干预,从而影响处理器运行速度,同时由于微控制器不断介入A/D控制会影响程序正常运行。因而微控制器很难满足高速多路数据采集系统对实时性和同步性的要求。FPGA时钟频率高,内部延时小,运行速度快,全部控制逻辑由硬件完成。它本身集采样控制、处理、缓存、传输控制、通信于一个芯片内,编程配置灵活、开发周期短、系统简单,具有高集成度、体积小、低功耗、I/O端口多、在系统编程等优点。在高速多路数据采集系统中,FPGA可以克服上述微控制器的不足之处,满足系统对实时性和同步性的要求。本文给出一种基于FPGA的高速多路数据采集系统设计方案。2系统总体设计2.1系统组成基于FPGA的采集控制模块主要由多路择开关,有源滤波器,A/D转换器和FPGA组成,其中A/D自动采集控制逻辑和双口存储电路在FPGA内部实现。系统的组成框架如图。AD芯片多路选择+5V其他模拟信号输入FPGA状态指示信号AD控制信号数据总线LBE总线CPU图1系统组成框图2.2系统工作原理当复位信号后,时钟产生启动信号,FPGA向采样开关发出选通信号,选定模拟开关采样,第0路模拟量进入,经A/D转换后并存储于双口RAM中,AD转换芯片反馈给FPGA内控制电路并告知转换完毕,FPGA内控制电路再选通下1路模拟量进入,重复上述过程。FPGA轮回控制模拟量开关通道导通,当模拟量开关导通后,进行A/D自动转换并存储。而双口RAM数据永远存放的是每个通道最新A/D最新转换值,外部CPU可以通过数据总线读取双口RAM最新值,其中双口RAM具有2组独立的数据、地址和控制总线,可对任何一个端口进行独立的操作。若未采用双口RAM,FPGA采取中断方式对CPU传输数据时,CPU就会停止当前工作而去处理外部请求,当处理完外部事件后再回到原来被中止处,继续原来的工作,这样会影响CPU的速度。因此引入双口RAM存储FPGA传送来的数据,然后CPU再从双口RAM中读数,从而提高效率。本数据采集系统采用基于FPGA双口RAM、CPU等实现数据运行处理和控制功能,使系统的通信和处理能力大大加强,保证了系统的实时性,可以灵活地通过多种方式控制数据读写。A/D自动转换原理图如图2所示。AD转换器双端口存储器右数据总线AD自动转换逻辑16选1多路转换开关16选1多路转换开关16选1多路转换开关左数据总线控制信号BUSY信号AD转换控制信号MUXA[4..7]MUXA[0..3]16路模拟输入16路模拟输入FPGA16选1多路转换开关16路模拟输入多路模拟输入图2A/D自动转换原理图2.3系统硬件设计系统采用模拟电源为±15V,数字电源为+5V直流电源供电,内部将+5V电压转换为+3.3V和+1.2V电压以供各器件使用。所有输入的模拟信号范围都是-10V~+10V,输入阻抗大于1MΩ,同时也对输入进行了适当的滤波处理处理。2.4多路模拟开关数据采集模块选用的多路模拟选择开关是ADG506,它是一款单芯片CMOS16通道模拟多路复用器,采用28引脚表贴封装。它根据4条地址线和1个使能的状态,将1路公共输出切换至16路输入之一。使能端EN决定着ADG506的工作状态,当使能端管脚有高电平时,表示该模拟量正常工作,而EN为低电平时ADG506处于非工作状态。它的输出通道号的选择则由其4位地地址位来决定。可以通过FPGA控制多片ADG506芯片进行周期片选采集n路模拟信号。在本设计中16路采集信号分别通过1片ADG506多通道选择开关把信号送入A/D转换器。由FPGA控制多通道选择开关的控制信号,包括使能信号EN和4位地址信号。当使能信号有效时,根据4位地址控制信号来选择要输出的通道,从而使ADG506能对16路模拟输入信号进行周期性选择。图3ADG506真值表2.5A/D转换电路在数据采集系统中,A/D转换芯片的作用是把模拟信号转换成数字信号。它的性能参数直接影响整个系统的性能,本系统的采集控制模块中选用的A/D转换器是AD公司生产的AD7656,内部具有6个独立的AD转换器,一款内置采样保持放大器的16位ADC,兼具高速性能和低功耗特性,转换时间为4μs,输入模拟电压范围为-10V~+10V。片内时钟振荡器为各转换级提供适当的时序,无需任何外部时钟。数据接口读取可以通过高速并行接口和串行接口,AD7656分别包括6个AD转换器,将所有三个CONVST引脚(CONVST_ACONVST_BCONVST_B连在一起)便可对六个ADC进行同步采样,AD7656需由CONVSTM脉冲启动转换;CONVSTM脉冲应包括一个CONVST下降沿,随后为一个CONVST上升沿。CONVST上升沿对所选的ADC启动同步转换,AD7656各内置一个片内振动器用于转换,转换时间为4μsBUSY信号变为低电平表示转换结束。BUSY信号下降沿用来让采样保持放大器进入跟踪模式。分别向三个CONVST引脚发出脉冲信号,AD7656还可以实现六个AD转换器的成对同步转换,本文采用将三个CONVST引脚连在一起,实现6路ADC同步采集,在16位模式下启动所有6个AD转换器转换时,需要进行6次读取操作来读取6路转换结果。图4AD7656并行接口工作时序图2.6FPGA控制电路本设计采用Xilinx公司的FPGA芯片XC3S400AN对AD7656进行采样控制,并将数据存储到双口RAM中。Xilinx公司的Spartan-3AN系列现场可编程逻辑阵列具有丰富的I/O端口,因此对外围设备的控制全部可以通过单独的I/O端口进行控制,没有端口复用的现象,极大地提高了系统的采集速度。系统中ADG506的通道选择I/O直接由FPGA的输出端口PORT[3:0]控制,当使能信号有效时,通道选择CONVST控制AD启动转换。通过控制CS和RD信号读取转换结果,FPGA控制电路如图5所示。FPGAAD7656D[0]~D[15]CONVSTCSRDBUSYAD506A0A1A2A3EN图5FPGA控制电路路3系统逻辑设计FPGA逻辑由VHDL语言编写,在Xilinx的ISE10.1开发环境中设计实现。FPGA逻辑分为,模拟量开关控制模块,A/D控制模块和双口RAM模块。AD转换是否结束?配置多路转换开关启动A/D在双端口存储器写AD转换结果A/D转换启动超时图5AD自动采集流程图多路选择控制逻辑,当FPGA启动A/D转换后,首先打开第0路,当A/D转换后或A/D转换超时,FPGA控制A0~A3切换到第1路,不断重复上述过程,A/D控制模块是模拟开关选择新通道时,开始启动A/D转换相应的数据采集通道,FPGA要正确地从AD7656中读取AD转换结果,首先控制模拟开关通道控制端A0~A3选择相应的数据采集通道,然后通道上的模拟数据才能通过ADG506,进入AD7656采集输入端。模拟数据进入采集输入端后,FPGA通过CONVST给AD7656一个上升沿,AD7656开始进行A/D转换,BUSY信号变高。当BUSY信号由高变低,A/D转换结束,控制模拟开关通道控制端A0~A3选择下一个数据采集通道,同时FPGA通过控制CS和RD信号读取AD转换结果并将结果保存到FPGA双口RAM中,同时可以读取转换结果。FPGA连续读取6次,将6个转换结果依次保存到FPGA双口RAM中,本设计采用利用ISE10.1仿真工具进行A/D采集逻辑代码进行仿真,仿真结果如所示。图6A/D自动采集控制逻辑仿真4基于FPGAA/D自动采集应用基于FPGAA/D自动采集应用在数据采集系统应用广泛。在一些实时控制场合,实时算法经常需要由几个DSP串行或并行工作以提高系统的运行速度和实时性。基于FPGAA/D自动采集系统可在实时控制系统,闭环控制系统和数据采集系统那个中广泛应用,数据采集系统的质量直接影响整体系统的工作性能。数据采集系统高速、实时发展趋势,对数据的传输和控制速度提出较高要求,而采用A/D自动采集可有效提高速度,解决速度匹配问题。模拟量开关AD506AD1AD2AD0AD15-+U1运算放大器AD7656CPU控制逻辑双口RAM模拟量开关AD506AD15-+U5运算放大器U0U2U3U4A0A1A2A3A0A1A2A3连接至FPGA连接至FPGARS232图7数据采集系统框图设计1块数据采集系统,该系统最大模拟量采集通道数量为96路,,调理电路放大倍数为2,用FPGA实现双口RAM功能,并且控制A/D采样与转换,将A/D转换结果入到双口RAM。CPU通过外部总线接口读取双口RAM的A/D存储结果并可以通过串行接口把数据发送给PC机。通过信号发生器发送一个幅值为5V,周期为2π的正选波通过任意通道输入,通过AD转换数据绘制图形,如果所示,输出波形频率与输入波形一致,幅值是输入波形2倍,表明多路采集系统转换效果良好。5结束语基于FPGA的高速多路数据采集系

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功