基于CPLD的多路数据采集器设计.doc_第1页
基于CPLD的多路数据采集器设计.doc_第2页
基于CPLD的多路数据采集器设计.doc_第3页
基于CPLD的多路数据采集器设计.doc_第4页
基于CPLD的多路数据采集器设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

基于CPLD的多路数据采集系统设计1 绪论1.1 设计背景及意义数据采集,是指从传感器和其它待测设备中获取对象信息的过程。数据采集系统(Data Acquisition System,简称DAS)是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。随着科技技术的不断进步,人们对数据采集的各项技术指标如采样频率、分辨率、输入范围等也提出了更高的要求。一方面要求数据采集系统有低功耗,微型化的特点,一方面又要求其能够实时反映现场信号的数据变化。但单片机处理数据能力比较低,已经无法达到这些要求。于是基于 DSP、FPGA等高端微处理器的数据采集系统开始发展,而随着半导体技术的飞速发展,现在的数据采集系统很容易就能实现低成本、低功耗、高可靠性的特点,各种高性能的数据采集卡不断问世,数据采集系统的应用越来越广泛,高速数据采集系统也日趋成熟。由此可以看出数据采集系统的发展前景是相当广阔的。 数据采集的重要性是十分显著的,它是计算机与外部物理世界连接的桥梁。控制系统的性能很大程度上取决于其数据采集系统的性能。随着科学技术的快速发展,当今的一些控制系统经常要求能够对信号进行实时处理(如谐波分析,数字图像处理等)。然而要实现对信号的实时处理,这就要求最底层的数据采集系统必须具有更高的采集速率,更高的精度,能够提供更丰富的原始数据信息。高精度,高速度的数据采集系统已经成为数据采集的主要发展方向。传统的数据采集系统一般以单片机作为核心设计电路,可是单片机的速度相对较慢,在一些要求较高的实时数据采集系统中,采样频率可达到上百兆,这样的频率对于单片机来说是无能为力的。于是随着科技技术的进一步发展,就出现了目前流行的高速数据采集系统。要提高数据采集系统的采样速率有两种方法,一种是提高 AD 转换器的转换速率,即采用高速 AD 转换器,另一种是改进数据传送方式。传统的串口(如RS232),其传输速率为几十kb/s 到100kb/s,而系统所要求的数据传输速率很高,而且还要实现数据的采集与传输同步进行,串口的速率远远达不到实时要求。 综合以上两种方式和数据采集系统的发展状况,本文提出了一种适合数据采集系统发展趋势的设计方案。一种基于高速逻辑器件 CPLD 控制的高速 AD 转换采集系统。这种采集系统可以大幅改进传统数据采集系统的缺陷,提高数据采集的速度和精度。另外此种采集系统用模块化设计思想,不仅可以硬件实现数据采集,还可以增添更多的拓展功能。而且其软件构成较为简单,成本相对较低。可见此种系统的研制是很有价值的。1.2 硬件描述语言 硬件描述语言是实现 EDA 的编程语言,目前,使用最广泛的硬件描述语言是 VHDL和 VerilogHDL。 1)VHDL VHDL 是由美国国防部于 20 世纪 80 年代提出的一种标准,其核心思想是用文字和语言的方式记录下完整的电路设计,当看到这种语言时,就能看到该语言对应的电路设计。很快的,VHDL 被 IEEE 所承认,成为了工业界的标准。随着时间的推移,VHDL 的标准也得到不断的修正和更新。 与其它硬件描述语言相比,VHDL 具有良好的可读性、可移植性,对设计的描述具有相对独立性,拥有更强的行为描述能力,支持层次化设计,具有多层次描述系统硬件功能的能力,具有支持大规模设计的分解和已有设计的再利用功能,从而决定了它成为系统设计领域最佳的硬件描述语言。VHDL 拥有丰富的仿真语句和库函数,使得在任何大系统的设计早期就能检查设计系统的功能可行性,随时可对设计进行时序和功能仿真。可以利用EDA 工具进行逻辑综合和优化,并自动将 VHDL 转化为门级网表。 2)Verilog HDL Verilog HDL 是在 C 语言的基础上发展起来的,语法和 C 语言极为相似。该硬件描述语言由 GDA(Gateway Design Automation)公司所创造,但并没公开分表,后来,Cadence公司于 1989 年收购了 GDA 公司,Verilog HDL 理所当然的成为了 Cadence 公司的专利。后来,Verilog HDL 被 IEEE 收录和标准化,即 IEEE1364-1995,越来越多公司和设计人员开始使用 Verilog HDL。 Verilog HDL 简单易学,特别对于学过 C 语言或有 C 语言开发经验的人,一般只需花很短时间就能学习和熟悉它,不过要想熟练运用它,则需要经常编写代码和做实验,最好能做几个实际的项目,通过实际项目开发,可以让 FPGA 开发人员进一步了解和精通Verilog HDL。 观察一下两者的结构,我们可以发现 Verilog HDL 语言的系统抽象能力稍逊于 VHDL,而对门级开关电路的描述能力则优于 VHDL。VHDL 的书写的规则比 Verilog HDL 烦琐一些,换句话说,VHDL 格式很固定,语法更严谨,对于 Verilog HDL,其语法的自由度较高。本设计中采用 VHDL 对 CPLD 进行逻辑实现。1.3 开发软件 Quartus II介绍Quartus II 是 Altera 公司的综合性 PLD 开发软件,提供了完整的多平台设计环境,能满足各种特定设计的需要。此外,QuartusII 也是最近比较热门的 SOPC(可编程片上系统)的专用开发软件。Quartus II 可以看成是 Max+plusII 升级版,在原软件的基础增加了一些新的功能,提供了对新器件和新技术的支持,比如更多第三方软件的支持,使用户可以在设计过程中任何阶段使用第三方 EDA 工具,为设计者提供了功能强大、更人性化的设计平台。Quartus II 提供了很多方便的设计方式,如原理图、VHDL 及 Verilog HDL 等硬件描述语言的输入形式,使设计者能够轻松和全面的介入设计的每一个环节。 Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,用户可以方便的调用库已有的模块再加以配置,如加法器、乘法器和配置内部晶振等,从而简单了设计过程,缩短了开发时间。Quartus II 自带仿真工具,并且建立仿真文件十分方便,仿真文件和其它设计文件在一个工程下,调用便捷,Quartus II 也支持第三方仿真工具,如Modelsim 等。 可以按照个人喜好调节 Quartus II 布局、菜单、命令和图标。对于习惯了 Max+plus II的用户,Quartus II 提供了很人性化的设制,用户可能通过自定义,将 Quartus II 的界面设置为和 Max+plus II 相似的外观和操作习惯(如图1-1所示),省去了用来习惯新界面的时间。 图 1-1 Customize 对话框 Quartus II 的设计流程如图。由于其强大的设计能力和众多优秀第三方软件的支持,越来越多 EDA 设计者使用 Quartus II 进行 EDA 开发。 2 基于CPLD的可编程多路数据采集系统设计随着数字化、信息化时代的到来,人们对处理速度和精度有了更高的要求,近年来,FPGA/CPLD市场发展迅速,其器件的容量和速度更是不断增强,广泛应用于通信系统、自动控制、信息处理等诸多领域。本章根据工程需求和FPGA/CPLD开发的基本方法,给出了多路数据采集系统设计的总体方案和设计指标要求。2.1 系统设计指标根据实际工程需求,所要实现的主要技术指标有:(1)通道数:8通道同步采集(1,2,4,8通道可编程)(2)分辨率:8bit;(3)信号输入范围:0+5V;2.2 系统设计方案数据采集系统主要包括数据输入单元、数据处理及监控、数据输出单元、控制按键和数码管显示。数据输入单元的设计主要是通过ADC0809的常规应用来实现的。ADC0809的工作时序由控制器CPLD提供。数据处理及监控单元主要是通过软件来实现,主要包括循环检测与监控模块和数据处理模块。数据处理及监控模块主要实现对输入电压值进行循环检测,将检测值与设定值进行比较。当检测到超出设定电压值时,产生报警信号,并通过数码管显示出当前通道数;数据处理模块对信号主要有三种处理方式:将信号放大2倍、缩小到1/2和保持不变。数据输出单元主要功能是将处理后的数字信号经过DAC0832再转换为模拟量输出。图2-1 系统整体框图2.3 数据采集模块设计数据输入模块主要是通过AD转化器来实现的。AD 转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号。AD 进行数据采集有两个主要过程:采样和量化。采样是指每隔 T 秒所记录的 x(t)的幅值。设x(t)是模拟信号,将采集到的幅值用 x(kt)表示,其中 k 表示数据序列中的采样位置,k=0,1,N-1,(N 是数据序列总的采样数)。T 称为采样间隔,采样频率为 1/T(Hz)。 AD 采样时必须满足采样定理。香农采样定理给出了低通型带限信号的最低采样频率,即采样频率fs必须大于被测信号最高频率的两倍,即fs2fmax。fs/2称为纳奎斯特频率(Nyquist frequency)。采样定理的出发点是从采样数据中能够完全恢复原始信号,可是在实际运用中,将连续的模拟信号转换成离散的数字信号势必会造成一定的失真和误差。特别是当信号中包含频率高于奈奎斯特频率的成分,信号将在直流和恩奎斯特频率之间畸变,使得采集的信号失真。为了避免这种现象的发生,采样频率一般取信号最高频率的3-5倍,有时为了较好地还原波形,甚至会取信号最高频率的10倍。 数据输入模块主要是通过ADC0809的常规应用来实现的。ADC0809的工作时序由控制器CPLD提供。ADC0809是一种比较典型的8位8通道逐次逼近型A/D转换器,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用于译码电路,其转换时间为100us左右,采用双排28引脚封装。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。ADC0809工作时序图如图2-2所示。图2-2 ADC0809工作时序数据输入单元的设计是采用模数转换器ADC0809芯片来实现的,通过CPLD来提供ADC0809的工作时序,控制数据采样过程将模拟输入信号转化为数字信号,供CPLD进行数据处理,其具体的电路原理图如图2-3所示。图2-3 ADC0809接线图该模块通过CPLD来提供ADC0809的工作时序,对于CPLD而言,ADC0809芯片的CLOCK、START、OE等的输入信号为CPLD的AD驱动模块的输出信号提供。用可编程逻辑器件实现对ADC0809的控制,由于采用查询信号EOC的方式,所以可达到ADC0809的最高转换速度。主要包括分频模块和ADC控制模块。框图如图2-4所示:图中OE为输出允许信号,高电平允许转换结果输出;EOC为转换结束信号,为0代表正在转换,1代表转换结束;DIN7.0为八路模拟量输入通道;DOUT7.0为转换后的八路数字信号输出通道。其中ADC0809的CLOCK信号是由外部输入的。此信号的输入没有固定的要求,只要足够高就可以了。ADC0809的START信号也是由外部接入的,但是此信号的频率不宜过高,要小于1KHz。将ADC0809的输出作为CPLD的输入。图2-4 数据采集功能模块框图其中,CLK为系统时钟输入端口;EOC为转换结束标志信号输入端口;DIN7.0为信号输入端口;CLOCK为分频模块始终输出端口;START为输出控制信号端口,为AD芯片START管脚提供输入信号;OE为输出控制信号端口,为AD芯片OE管脚提供输入信号;ALE为输出控制信号端口,为AD芯片ALE管脚提供输入信号;DOUT7.0为信号输出端口。2.4 数据处理及监控模块模块设计中,选择工作模式是由按键K1来完成的。当K1为0时,器件工作于循环检测报警模式;当K1为1时,器件工作于数据采集及处理模式。当器件工作于数据采集及处理模式时,FUN是用来选择工作方式的,FUN为00时,器件工作于放大2倍的方式;FUN为01时,器件工作于缩小1/2的方式;FUN为10和11时,则对所采集进来的数据不加处理就输出。在采集数据的时候可以选择所采数据是ADC0809的八路中的任何一路,这是由控制键K3来完成的。K3是一个三维矢量,由它来完成通道的选择。数据处理及监控模块框图如图2-5所示,其中Q7.0接DAC0832的数据端,sel2.0接ADC0809的通道选择,seg6.0接数码管。图2-5数据处理与监控单元总体框图其中,CLK为系统时钟输入端口;K37.0为数据采集通道选择输入端口;FUN1.0为工作方式选择输入端口;D7.0为数据输入端口;sel2.0为输出端口,为AD芯片提供通道选择输入信号;seg6.0为输出端口,为数码管提供数据输入;Q7.0为数据输出端口,为DA芯片提供数据输入;ALM为报警输出信号端口。2.5 数据输出模块此模块设计所使用的芯片是DAC0832。此器件的工作原理如下:DAC0832由8位输入锁存器,8位DAC寄存器,8位D/A转换电路组成。根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。本设计采用直通方式连接。DAC0832以电流形式输出,需要转换为电压输出,则通过外接运算放大器将电流信号转化为电压信号。电路图如图2-6所示。 图2-6 DAC0832电路图3 系统软件设计数据采集系统上电后,系统进行初始化,然后进入按键循环检测,当有选择按键按下时,系统开始控制ADC0809芯片进行数据采集,将模拟信号转化为数字信号,并进行数据处理,判断采集到信号范围并选择相应的处理方式进行处理,最后将处理后的数据经DAC0832芯片输出,同时将输出数据送至数码管进行显示。系统主程序流程图如图3-1。图3-1 系统程序流程图4 实验验证4.1 时序仿真图4-1为ADC0809的数据采集模块的Modelsim时序仿真波形图,模块实现的功能是为ADC0809提供工作时序。首先ALE输出高电平将地址信号锁存,随后启动信号START输出高电平,开始进行模数转换,在START信号启动后的8个时钟周期后,数据转换完成,EOC变为高电平,则说明转换已结束。此时送出OE信号,读取数据,完成一个转换周期。从仿真结果可以看出,时序满足ADC0809的工作时序。(注:ALE:地址锁存允许信号;START:转换启动信号;OE:输出允许信号,高电平允许转换结果输出;CLK:系统时钟信号;EOC:转换结束信号,为0代表正在转换,1代表转换结束)图4-1 ADC0809控制模块波形仿真图图4-2为数据处理及监控模块的Modelsim时序仿真波形图,此模块实现的是数据采集通道的选择、数据监控报警功能。如图中所示,k=0时,器件处于循环检测及监控工作方式,d为控制信号输入端,设置为自动加一,初始值为1,Sel为通道数,数值从0到7。当d128时,alm=1,产生报警信号,sel锁定为当前通道数。图4-2 循环控制及监控模块波形仿真图图4-3为数据处理及监控模块的Modelsim时序仿真波形图,实现的是数据处理方式的选择。如图中所示,fun=2时器件工作于方式2,即将采集进来的数据不加处理就输出。D为外部输入信号,设置为自动加一,初始值为0,q为输出信号值。因为ADC0809芯片本身具有将信号放大2倍的作用,所以此时要保持输出信号不变,实际上需将信号缩小1/2。图4-3数据处理模块波形仿真图4.2 系统性能验证本系统采用了由ALTERA推出的 MAXII器件系列 EPM570,MAX II器件系列基于突破性的新型CPLD架构,将成本和功耗优势引入了高密度领域,使设计者可以采用MAX II器件替代高成本或高功耗的ASSP和标准逻辑器件,大幅降低了CPLD的成本。 本系统选用核心电压3.3 V、144引脚的EPM570T144C5作为实现控制电路的主控芯片。EPM570T144C5内部有57个逻辑单元(Logic Element),采用 PQFP-144封装,共116个通用I/O,引脚延时为8.8ns。可通过JTAG接口实现在线编程。JTAG下载器和开发板如图4-4所示。图4-4 JTAG下载器和开发板图为了检验ADC以及CPLD部分是否正常工作, 在任一通道上输入峰峰值Vpp=5V、频率f=200Hz的正弦模拟信号,如图4-5所示, 经AD采样后送入CPLD , 在CPLD中对该信号不作任何处理即送给DA部分进行数模转换, 从DA部分的翰出信号可以看出, 利用采集、处理后所得的数据绘制的曲线基本上可以不失真地再现输人信号,如图4-6所示。图4-5 输入的正弦模拟信号图4-6 数据采集系统的输出信号由实验结果可以表明,本文中设计的基于CPLD的多路数据采集系统基本满足设计指标要求。附录:程序代码数据选择模块:LIBRARY IEEE;Use ieee.std_logic_1164.all;ENTITY dataselect isPORT(s0,s1,s2,s3,ena:in std_logic; a:in std_logic_vector(15 downto 0); y:out std_logic);END dataselect;Architecture one of dataselect isSignal s:std_logic_vector(3 downto 0);BEGINS=s0&s1&s2&s3;PROCESS(s0,s1,s2,s3,ena)BEGIN IF ena=1THEN yyyyyyyyyyyyyyyyyb)THENf=a;ENDIF;ENDIF;ENDPROCESS;ENDtwo;二选一模块:LIBRARY IEEE;Useieee.std_logic_1164.all;

温馨提示

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

评论

0/150

提交评论