基于Altera的FPGA器件和VHDL语言实现数据采集系统的设计_第1页
基于Altera的FPGA器件和VHDL语言实现数据采集系统的设计_第2页
基于Altera的FPGA器件和VHDL语言实现数据采集系统的设计_第3页
基于Altera的FPGA器件和VHDL语言实现数据采集系统的设计_第4页
基于Altera的FPGA器件和VHDL语言实现数据采集系统的设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Altera的FPGA器件和VHDL语言实现数据采集系统的设计一、引言传统的数据采集系统,通常采用单片机或DSP作为主要控制模块,控制ADC、存储器和其他外围电路的工作。随着数据采集对速度性能的要求越来越高,传统采集系统的弊端就越来越明显。单片机的时钟频率较低且需用软件实现数据采集,这使得采集速度和效率降低,此外软件运行时间在整个采样时间中也占很大的比例。而FPGA(现场可编程门阵列)有单片机无法比拟的优势。FPGA时钟频率高,内部延时小,全部控制逻辑由硬件完成,速度快、效率高。在此技术基础上,为了满足数据采集对速度的要求,本文就着重介绍了一种基于FPGA,采用VHDL硬件描述语言设计实现的高速数据采集系统。二、系统的整体硬件设计本数据系统以FPGA为中心、主要包括数据采集电路、通信接口电路、电源模块等几部分。其中中心控制逻辑主要负责产生各部分的控制信号,完成对整个系统的逻辑控制和对来自面板的工作模式控制信号的软件消抖,并对所采数据进行编祯处理,电源模块为该系统供电的同时,也为前端传感器提供了+9V的供电电源系统采用60MHz晶振输入,模式控制信号来自面板上的控制开关,分别产生系统自检、采集开始、及手动复位三个控制信号。系统的原理框图如图1所示:面板上有三个控制开关,分别为“复位”开关RST,“系统自检”开关S1和“采集开始”开关START。RST信号为外部的手动复位,当拨至高电平时,对系统所有的计数器清零;“系统自检”开关闭合时采集系统内部1路预知信号完成系统自检功能;“采集开始”开关有效时,系统开始对24路模拟信号进行采集,当“系统自检”开关和“采集开始”同时有效时,对系统进行复位。1.数据采集部该部分主要由一片高速AD芯片和一片Altera的FPGA构成。由于本系统设计采样速度最大为50M,根据采样定理,采样频率至少应该在100M以上,所以AD芯片采用的是MAXIM公司的MAX100。该芯片转换精度8位,1.8v电源供电,低功耗,最高工作速度为250MSPS。经过测试可以很好的满足系统测试要求。通常在低速数据采集系统中常使用MCU作为CPU来控制。但在高速数据采集系统中,往往会受到MCU的影响,而且随着速度的提高ADC,RAM,MCU之间的时序同步问题也会显示出来。因此本系统使用了高速、多I/O口的FPGA芯片来控制ADC和RAM等,从而很好的解决了采样速度过高和时序同步的问题。FPGA(FieldProgrammableGateArray)是从PAL,GAL发展而来的阵列型高密度PLO器件,具有高密度,高速度,低功耗等特点。特别适合实现复杂的组合逻辑。根据系统要求,本系统中使用的FPGA芯片型号为Altera公司的EPF10K10TC144-3。它的可用门数7000个,最大用户I/O数134,计数器的工作频率可达200MHz。在该系统中FPGA实现的功能逻辑主要有:(1)完成对来自面板的工作模式控制信号的软件消抖。(2)接收采集模式开关发出的开始采样信号START,实现对ADC的控制,开始AD转换;(3)当FIFO存储器半满时,发出一个HalfFlag信号,通知USB芯片可以读数,FIFO存储器为空时,发出一个EmptyFlag信号,提示USB芯片停止读数。FPGA的功能逻辑使用VHDL语言来实现,这是一种硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口。使用VHDL语言设计硬件电路时,可以使设计者免除编写逻辑表达式或真值表的工作。这样使硬件电路设计的难度有了大幅度的降低,从而可以提高工作效率,缩短硬件电路的设计周期。使用VHDL语言实现的采集系统FPGA内部原理图如图2所示。图中共有两个模块,xd模块主要完成对输入信号的消抖,能使系统工作更稳定。Sample模块是本系统的核心部分,它主要负责各部分的逻辑控制及AD采样数据的编祯处理。2.通信接口部分通用串行总线USB是一种新型的通信标准,它具有使用灵活,连接方便,通信速度快,能独立供电等特点。目前,越来越多的计算机外围设备开始采用USB的通信接口。由于本系统采集速度高数据量大,因此,也采用了USB通信接口。目前生产USB芯片的厂商很多,主要的产品有CYPRESS公司的EZ-USB,PHIPILIPS公司的PDUSBD12,NationalSemiconductor公司r的USB9604等。本设计采用的是CYPRESS公司的带8051内核单片机的EZ-USB系列参CY7C68013。该芯片采用改进的8051内核,与标准的8051指令完全兼容,除此之外内部还集成了存储器、智能USB接口引擎、USB收发模块、串行口等。在USB下芯片CY7C68013和EPF10K10TC144-3FPGA之间采用了FIFO(FirstinFirstoutSRAM)芯片作为数据交换的缓冲连接,这样可以使USB接口芯片和FPGA之间的最大数据交换速度超过USB总线的速度,使之不会成为数据传输的瓶颈,从而使FPGA和主机之间的数据传输速度只受USB协议限制。由于CY7C68013芯片内嵌8位8051处理器,因此使用两片FIFO芯片实现FPGA和USB接口之间的双向通信。FIFO芯片选用具有16K×9bits内存的IDT7206,从FPGA传输的数据首先保存在FIFO中,然后再由CY7C68013带走,这样使数据的传输不会出现堵塞的情况。对与IDT7206只具有双端数据总线和状态信号,没有地址总线,所以FPGA采用I/O译码的方式直接访问FIFO。FIFO的状态信号有空、半满和满,它们都是低电平有效,通过这三个信号就可以灵活的控制FIFO的读写。CYPRESS公司为EZ-USB系列的芯片提供了固件程序和驱动程序模块和例程。固件程序与驱动程序可以独立的被调试,且调试方便,相对于其它USB芯片,可以提高开发速度。三、FPGA主要模块的逻辑实现FPGA系统的硬件设计模块主要有消抖模块、采集模块两部分。采集模块又包括逻辑控制模块、时钟逻辑运算模块、时钟生成模块等。下面主要就消抖和FIFO控制部分进行描述和实现。1.消抖模块设计为了系统各工作状态更稳定,当FPGA接受到一个工作状态信号时,启动一个计数器,若计数器能计到设置的最大值则认为该工作状态信号有效,否则认为无效。消抖的FPGA具体实现方法如下所示process(reset,fosc)VARIABLEcount:INTEGERrange0to50;beginifreset=‘0’thencount:=0;outcheck《=‘0’;elsiffosc‘eventandfosc=’1‘thenifincheck=’0‘thenifcount《50thencount:=count+1;outcheck《=’0‘;elsecount:=count;outcheck《=’1‘;endif;elsecount:=0;outcheck《=’0‘;endif;endif;endprocess;仿真结果如图3所示:由图3可以看出通过此方法可以消除因工作状态信号时抖动而引起的误操作,保证了系统工作的稳定性2.FIFO控制模块设计系统首先把采集到的数据缓存到FIFO里面,当存储达到用户设定的余度时,便送出一个请求信号,通知USB芯片读取数据。FIFO余度值的大小由用户自己设定,但此值原则上不能过于接近FIFO的深度。因为在USB芯片响应这一请求信号,进行读数处理的过程中,FPGA仍在进行数据的采集和存储。如果余度值过于接近FIFO深度,FIFO容易产生溢出的错误。因此本系统中以FIFO芯片IDT7206的半满作为设定的余度,当IDT7206存储数据达到其容量的一半时,FPGA就会送出一个请求USB读取数据的信号。FIFO控制模块的信号有:异步清零aclr;读写数据q/data;读写使能rden/wren;空/半满标志ef/hf。数据data在写使能有效的情况下按照写时钟往FIFO里面存储,在读使能时,数据按照读时钟的速度从q数据总线上输出。其实现和仿真如图4所示:由图4可以看出,读使能rden在半满信号下降沿到来后才有效,即数据才开始被USB芯片从FIFO中读出,在空信号下降沿到来后读使能rden信号无效,数据停止读取。而整个过程FPGA都在进行数据的采集。四、结论本文完成高速

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论