基于FPGA的数据采集系统设计_第1页
基于FPGA的数据采集系统设计_第2页
基于FPGA的数据采集系统设计_第3页
基于FPGA的数据采集系统设计_第4页
基于FPGA的数据采集系统设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、.目录1 绪论11.1 设计的背景及意义11.2 国内外的研究现状21.3 设计的内容与论文结构31.3.1 设计的内容31.3.2 论文结构32 系统框架设计42.1 设计方案42.1.1 计算机端软件选择42.1.2 系统开发软件选择52.2 系统硬件结构62.3 系统软件结构73 系统的硬件设计73.1 数据采集电路73.1.1 cyclone ii 系列芯片73.1.2 输入电路83.1.3 ads782293.1.2 多路模拟开关cd4051123.2 显示电路143.2.1 74ls138143.2.2 74hc245153.2.3 七段数码管163.2.4 显示电路173.3 串

2、行口通信电路183.3.1 max3232概述183.3.2 rs-232发送器193.3.3 电容选择193.3.4 电源去耦194 系统软件设计204.1 程序流程图204.1.1 时钟分频程序流程图204.1.2 a/d转换程序流程图214.2 程序模块224.2.1 时钟产生模块224.2.2 a/d子程序模块244.2.3 通信子程序模块264.2.4 显示程序275 系统测试295.1 数据采集系统调试295.2 显示系统调试305.3 通信系统调试305.4 数据采集系统整体测试316 结论与展望33谢辞34参考文献35附录136附录242摘要数据采集是信号与信息系统一个重要的组

3、成部分,也是数字信号处理的关键环节。本论文主要介绍一种基于fpga的数据采集系统,提出一种由串行a/d转换芯片ads7822、低成本fpga(cyclone ii)和rs232总线接口组成的数据采集系统方案,系统利用a/d器件对外界输入模拟电压信号模数转换。ads7822转换输出的12位数字信号在fpga内经过处理以后被传送到显示设备以及rs232串行口,最后通过rs232总线接口把暂存在fpga的数据传送到pc主机,系统在quartus ii软件环境下,将满足系统功能的vhdl程序下载到fpga内,fpga设计的内部模块和时钟信号用来进行电路的控制及数据缓存和数据传送。在pc主机上,利用la

4、bview软件编程显示采集到的电压曲线和电压值。fpga作为数据采集系统的核心部件,完成了模拟电压的采集及内部电路的设计,使系统具有较强的可适应性、可扩展性、可调试性。关键词:fpga;数据采集;a/d转换;rs232;quartus ii;labviewabstract the data acquisition is an important component of the signal and information systems, and also is the key link of the digital signal processing, this paper introdu

5、ces an fpga-based data acquisition system, propose a serial a/d conversion chip ads7822 and low-cost fpga (cyclone ii) and rs232 bus interface for data acquisition system. the system uses a/d device converting the external input analog voltage signal to the digital. ads7822 conversion output 12-bit

6、digital signal transmitted to the rs232 serial port processed within the fpga, transmit data which is temporarily stored in the fpga to the host pc through the rs232 bus interface, the system in the quartus ii software environment, vhdl program to meet the system functions downloaded to the fpga, th

7、e fpga design of internal modules and the clock signal is used for circuit control and data cache and data transfer. using labview programming display the collected voltage curve and voltage values on the host pc. fpga as the core component of the data acquisition system, has completed the acquisiti

8、on of the analog voltage and internal circuitry design, the system has a strong adaptability, scalability, debuggability.keywords: fpga;data acquisition;a / d conversion;rs232;the quartus ii;the labview.1 绪论1.1 设计的背景及意义人们的日常生活、生产活动和科学实验都离不开对数据的测试和信息的采集。测试和信息采集简单来说就是获得信息,是人们在实际的工作中对被检测的对象的物理、化学、工程技术等

9、各个方面的数值信息和参量进行提取的一个过程。由于信息本身它不具备传输和交换的功能,所以我们只能够通过一定的方法和手段将信息转化为我们能够知道的信号。信息采集系统在确定了信息的采集原理和测量方法之后,就需要设计和组成信息采集的测量系统。根据系统中所要处理不同类型的信号,信息采集测量系统可分为数字式和模拟式两种不同数据的测量系统。随着现代数字技术的发展,越来越多的信息采集系统采用数字式的采集系统,因此把信息采集称作数据采集。随着科学技术的迅猛发展,特别是在雷达、声纳、瞬态信号测量等一些高速、高精度的信息测量中,更需要进行一些列的高速数据采集。当前,数据采集系统在高速a/d、d/a模数转换器件发展的

10、带动下,数据信息的采集带宽正在稳步提高。随着计算机技术的高速发展,人们利用现代数字信号处理技术来进行高速、大量地处理信息有了非常有效的手段,而数据采集技术在其中起着非常关键的作用。现场可编程门阵列(fpga)的出现是超大规模集成电路技术和计算机辅助设计技术发展的共同结果,是现在电子设计领域中最具活力和发展前途的一项技术,它的硬件描述语言具有可修改性,高集成性,高速低功耗,开发周期短的优点,硬件和软件的并行性,决定了fpga崛起的必然趋势。现场可编程门阵列fpga器件是xilinx公司1985年首家推出的,一种新型的高密度pld,采用cmos、sram工艺制作,它内部由许多独立的可编程逻辑模块(

11、clb)组成,逻辑块之间可以灵活的相互连接。clb的功能很强,不仅能够实现逻辑函数,还可配置成ram等复杂的形式。配置数据存放在片内的sram或者熔丝图上,基于sram的fpga器件工作前需要从芯片外部加载配置数据。配置数据可以存储在片外的eprom或者计算机上,设计人员可以控制加载过程,在现场修改器件的逻辑功能。多数的数据采集系统往往采用dsp(数字信号处理器)或单片机作为控制器,控制存储器、模数转换器和其他外围电路的工作。单片机自身指令周期和处理速度的限制,使其难以满足多通道高速数据采集系统的要求,虽然dsp可以实现较高速度的数据采集,但在提高速度的同时,系统的成本也增加了;而且单片机和d

12、sp的各种功能的实现要依赖于软件的运行,较低的执行速度和工作效率,软件运行时间在整个采样时间内占据的比例很大,这是它们的主要缺点。fpga(现场可编程门阵列)在高速数据采集方面有单片机和dsp无法比拟的优势,fpga具有时钟频率高,内部延时小,速度快,效率高,组成形式灵活及全部控制逻辑由硬件完成等特点。因此,本文将fpga作为核心控制器件,实现了数据采集的功能。1.2 国内外的研究现状国外方面,随着微电子技术、计算机技术、测控技术和数字通信技术的发展,目前国外数据采集技术有了很大发展。从近来国外公司展示的新产品可以看出主要的发展可以概括为功能多样,体积减小和使用方便等三个方面。国外在研制和使用

13、数据采集系统方面发展迅速,基于medwin技术的数据采集器也发展较深,在体积和性能具有很大优势的采集器多以fpga为平台,但价格相对来说就不具有竞争力。成本较低的数据采集系统多以单片机为主芯片,但是在性能和速度方面就不具有优势。目前国外的数据采集方面的研究主要着重于传感器,高精度、高速度的传感器层出不穷而且在价格上有了很大进步。比如美国fluke公司的2005年生产262xa系列数据采集器是一种小型、便携、操作简单、使用灵活的数据采集器,它可以单独使用,也可以和计算机连接使用,它具有多种测量功能,多种数据存储方式和多种控制方式。262xa共有21路模拟输入通道,可直接测量电压、电流、温度、频率

14、等,并且它还有许多其他功能。美国恩泰克科学公司前不久推出一种新一代的数据采集器edl,该仪器技术先进、功能齐全,并可以与恩泰克pm软件dos版及efm窗口版的多种软件完全配置使用。美国尼高力仪器技术公司08年生产的2700型数据采集器,完美地将数据记录仪、程控开关与数字表的优势集于一身,是一款高精度、多功能、使用方便的多路数据采集器。同年惠普公司生产的hp34970a型数据采集器具有6/12位分辨率,0.004基本直流精确度和高达250通道/秒的扫描率,非易失性存储器可保存多达50000个带有时间标记的读数,可测包括直流电压、交流电压等等数据。恩泰克logbook/300现场独立的智能数据采集

15、器是一种独立的数据采集系统,它可采集大量来自各种各样传感器的静态和动态的信号。虽然这些数据采集器的功能无比强大,但是成本都较昂贵。国内方面,国内数据采集器与目前国外数据采集器相比,在技术上仍然存在着一定的差距,主要表现在:由于受国内振动等传感器水平的限制,分析频率范围不宽,在工业方面给一些低速的机器或轴承的诊断等带来了一定的困难;由于数据采集器的内存不大,数据采集器本身的信号处理功能不强,在现场只能做一些简单诊断,精密诊断需要离线到计算机上去做,现场精密诊断功能较弱;设备的软件水平,仍在设备维修管理和基本频谱分析上徘徊,机器故障诊断专家系统还需完善,软件人机界面有待改进;设备的性能与成本的协调

16、还缺乏一定的优势。近年来,发达国家在研制和使用数据采集系统方面发展较为迅速,仪器的性能先进,使用范围广,且耐用可靠,但价格较为昂贵,在测量功能、测量通道和数据齐全等方面存在不同程度的缺陷。例如北京凯文斯系统集成有限责任公司e16系列epp并口宽动态范围的高精度数据采集器,数据通道最大可以达到16个,采样最高频率决定于微机的cpu及处理速度,一般为60-80khz。北京测振仪器厂2007年研制的hz-9609数据采集器振动分析仪,它采用中文显示,直观醒目,操作简单方便;采用先进的电脑技术,工作可靠;采用高性能电池,体积小,重量轻,便于现场使用,采用频谱分析技术和故障诊断技术,是进行数据采集、完成

17、设备状态分析和故障诊断的得力助手。它可以与微机通讯,建立设备状态数据库,可测量振动信号的加速度、速度和位移,还可测量电压信号和转速信号,采样频率为1hz-10khz。在经过对国内外现有的数据采集行业产品的性能、价格和功能了解,其大概情况是,国外的数据采集器的精度高,速度快,功能强大,但是价格比较昂贵,并且一般来说体积都比较大,操作也复杂,可重复编程能力比较弱,而国内的采集器价格便宜,在性能上还有上升的空间,所以在我国现有的基础上,融合更为先进的技术、工艺,制造出性价比更高,可再编程能力高,小巧而又实用的的测量仪器不失为仪器开发领域的一个热点。1.3 设计的内容与论文结构1.3.1 设计的内容系

18、统设计内容包括使用vhdl语言编写时钟模块程序、a/d转换程序、显示程序、串口通信程序。设计系统所需的a/d芯片,时钟源,显示设备和通信接口器件已全部集成到eda实验箱,所以硬件电路的设计只包含输入电路。使用labview软件设计数据采集的界面,将采集到的电压以曲线和数据表的形式显示到前面板。1.3.2论文结构第一章绪论,介绍设计的背景,研究的现状和意义。第二章主要是系统的整体框架设计。第三章介绍了系统的硬件设计,fpga,数据采集电路,串口通信电路。第四章介绍系统的软件设计,包括时钟产生及分频程序,a/d转换程序,通信程序,led显示程序。第五章仿真与调试,fpga的时序及功能仿真,系统整体

19、测试。第六章系统的实现,分析采样结果。2 系统框架设计2.1 设计方案2.1.1计算机端软件选择 方案一:采用vb、vc设计软件界面。vb在界面设计、文件操作、多媒体应用、数据访问、internet 应用等方面都提供了强大的工具,集成化开发环境和软件调试环境方便,具有易学、易用、功能强大等优点。然而,对于虚拟仪器开发而言,vb在数据处理和图形显示方面却远远不如 labview。在使用 vb 开发工业测量与控制系统应用软件时,常常要对被测信号进行实时采集、显示,以及实时处理等,而在这方面vb并不擅长。vc是一种通用且功能强大的编辑语言,现已成为主流开发平台。由于其自带的界面控件不是十分丰富,在许

20、多测控软件要求用户界面具有和真实仪器相似外观的情况下,用vc实现常需要成千上万条代码,也常会产生效率太低的情况。方案二:采用labview软件完成界面的设计。labview的前面板包括旋钮、刻度盘、开关、图表和其他界面工具,允许用户通过键盘或鼠标获取数据并显示结果。labview具有模块化特性,有利于程序的可重用性。labview将软件的界面设计和功能设计独立开来,修改人机界面无需对整个程序进行调整,labview是利用数据流框图接受指令,使程序简单明了,充分发挥了图形化编程环境的优点。这就大大缩短了虚拟仪器的开发周期、消除了虚拟仪器编程的复杂过程。而vb、vc需利用组件技术实现软面板的设计,

21、这使程序设计变得非常麻烦。labview作为开发环境具有的优点: (1)图形编程化,降低了对使用者编程经验的要求; (2)采用面向对象的方法和概念,有利于软件的开发和再利用; (3)对象、框图及其构成的虚拟仪器在windows,windows nt、unix等多平台之间和各种pc机及工作站间兼容,便于软件移植; (4)支持多种标准总线设备及数据采集卡,如串行接口、gpib、vxi等; (5)具有丰富的库函数; (6)具有比较完备的代码接口,可调用windows中的动态链接库(dll)中的函数以及c语言程序,以弥补自身的某些不足; (7)直接支持动态数据交换(dde)、对象联接与嵌入(ole)、

22、结构化查询语言(sql)、便于与其他windows应用程序和数据库应用程序接口; (8)为加强labview的功能,适应各种工业应用的需要,ni公司又开发了一系列与labview配合使用的软件包,如自动测试工具、可连接25种数据库的sql工具、spc分析函数工具、信号处理套件、pid控制工具、图形控制工具等。因此,方案一与方案二对比之后,不难发现,labview在数据处理和图形显示方面的优势,在数据采集系统设计中选择labview实现界面显示功能。2.1.2 系统开发软件选择 方案一:采用quartus软件实现系统的开发。该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境

23、,是先进的eda工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等优点,支持原理图、vhdl、veriloghdl以及ahdl(altera hardware description language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整pld设计流程。它支持ip核,包含了lpm宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。quartus软件提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等优点。支持altera的片上可编程系统(sopc)开发,集系统

24、级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。方案二:采用max+plus软件开发系统。max+plus是altera公司提供的fpga/cpld开发集成环境,altera是世界上最大可编程逻辑器件的供应商之一。max+plus界面友好,使用便捷,被誉为业界最易用易学的eda软件。在max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。max+plus的设计输入、处理与校验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。max+plus提

25、供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(macro-function)以及新型的参数化的兆功能(mage-function)。设计人员可以从各种设计输入、处理和校验选项中进行选择从而使设计环境用户化。max+plus软件支持各种hdl设计输入选项,包括vhdl、verilog hdl和altera自己的硬件描述语言ahdl。max+plus支持cadence,exemplarlogic,mentor graphics,synplicty,viewlogic和其它公司所提供的eda工具接口。然而,max+plus系统的核心complier仅仅支持altera公

26、司的flex10k、flex8000、flex6000、max9000、max7000、max5000和classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。 虽然max+plus具有上述优点,但是max+plus不支持系统设计采用的是altera公司cyclone系列芯片。因此,本系统选择方案一,即利用quartus软件实现系统设计。2.2 系统硬件结构系统由fpga控制模块、模数转换电路、外围电路、通信模块、显示模块及pc机构成。外围电路 fpga控制中心 pc机 模数转换显示模块通信模块 图2.1系统整体结构图fpga控制模块是整个数据采集系统的核心部分,控制

27、a/d芯片将输入的电压信号转换成数字量,fpga接收到数字量经过处理后送给led和数码管显示。fpga将接收到的数据通过通信模块发送给上位机。模数转换电路配合外围电路完成对模拟电压信号的转换,外围电路主要利用地址信号选择要采样的通道数,地址信号被同时送进多路模拟开关和译码器。2.3 系统软件结构程序开始以后,系统时钟被分频输入通信和a/d转换模块,a/d转换的结果送给显示程序模块,显示程序再将转换的二进制数输入到通信模块。程序的主流程图如图2.2所示。显示通信系统时钟分频a/d转换开始图2.2 程序的主流程图3系统的硬件设计3.1数据采集电路3.1.1 cyclone ii 系列芯片alter

28、a公司2004年推出了新款cyclone ii系列fpga器件。cyclone ii fpga的成本比第一代cyclone器件低30%,逻辑容量大了三倍多,可满足低成本大批量应用需求。随着低复杂度fpga器件成本的不断下降,具有灵活性和及时面市优势的fpga与 asic相比更有竞争性,在数字消费市场上的应用也急剧增加。第一代cyclone系列迄今发售了3百多万片,在全球拥有3,000多位客户,对大批量低成本数字消费市场有着巨大的影响,该市场消纳了三分之一的器件。根据gartner dataquest调查,在2004年仅消费电子市场对fpga需求就将达到3亿9千万美元,2008年,增加到11亿6

29、千万美元,年复合增长率(cagr)为31.9%。 同时,cyclone ii器件系列也在电信、计算机外设、工业和汽车市场上获得了巨大的进步。cyclone ii器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、pll和低成本的封装,这些都为诸如视频显示、数字电视(dtv)、机顶盒(stb)、dvd播放器、dsl调制解调器、家用网关和中低端路由器等批量应用进行了优化。 cyclone ii器件采用tsmc90nm低k绝缘材料工艺技术,这种技术结合altera低成本的设计方式,使之能够在更低的成本下制造出更大容量的器件。这种新的器件比第一代cyclone产品具有两倍多的i/o引脚,且对可编程逻辑,

30、存储块和其它特性进行了最优的组合,具有许多新的增强特性。 altera最近推出的nios ii系列软核处理器支持cyclone ii fpga系列。nios ii系列软核处理器占用的逻辑仅需0.35美元,可以设计到cyclone ii器件中。在cyclone ii fpga中实现nios ii的设计除了大幅度降低实现成本之外,还具100dmip的性能,大约比cyclone器件和nios处理器提升了100%。设计者使用nios ii处理器,能够在任何一个cyclone ii器件上构建完整的可编程系统芯片(sopc),是中低规模asic的新的替代方案。altera为配置cyclone ii fpg

31、a提供了低成本的串行配置器件。这些串行配置器件定价为批量应用,成本是相应cyclone ii fpga的10%。四个串行配置器件(1mbit,4mbit,16mbit和64mbit)提供了节省空间的8脚和16脚soic封装。器件中任何不用于配置的存储器可用于一般存储,进一步增强其价值。 altera也为cyclone ii器件客户提供了40多个可定制ip核,altera和altera mega function伙伴计划(amppsm)合作者提供的不同的ip核是专为cyclone ii架构优化的,包括:nios ii嵌入式处理器;ddr、 sdram控制器;fft/ifft;pci编译器;fir

32、编译器;nco编译器;pos-phy编译器;reed solomon编译器;viterbi编译器等等。3.1.2 输入电路输入电路由多路开关和电位器组成,电位器调节多路开关的输出电压,使其在0到3.3v之间变化。电位器的两端分别接gnd和vcc,中间的引脚接多路开关的输入通道,当电位器调节到最小电阻时,输入到cd4051的通道电压最大;当电位器调节至最大电阻时,输入到cd4051的通道电压最小。输入电路的原理图如图3.1所示。 图 3.1输入电路原理图3.1.3 ads7822 ads7822是美国bb(ti)公司推出的一种高性能12位a/d转换器,ads7822 的引脚排列如图3.2所示。它

33、具有如下特点:(1)采样频率可达75khz;(2)单电源供电,可以在2.05.0v电源电压下工作;(3)微功耗:采样速率为75khz时为0.54 m w;7.5khz时为0.06m w;(4)体积小;(5)模拟信号可单端或差分输入。 图3.2 ads7822引脚排列图 vref: 参考电压输入端。+ in: 模拟信号输入同相端。- in: 模拟信号输入反相端,与地或远端传感信号参考点相连。gnd:电源地。cs/shdn:片选端,低电平时片选有效;高电平时芯片工作在掉电模式。dout:串行数据输出端。串行输出数据由12 位组成。转换时,数据在dclock的下降沿有效,在cs下降沿后的第二个时钟脉

34、冲允许串行数据输出,经一个无效位后输出的是12 位有效数据。dclock:数据时钟端。它是典型的逐次逼近型a/ d 转换器。当cs变为低电平时,开始一次a/ d 转换。来自输入端的差分信号经采样保持并送转换电容阵列比较后将其结果送入逐次逼近寄存器。工作时需外部提供参考电压vref和电源+vcc。ads7822的内部结构如图3.3所示。 图3.3 ads7822的内部结构它是典型的逐次逼近型a/ d 转换器。当cs变为低电平时,开始一次a/ d 转换。来自输入端的差分信号经采样保持并送转换电容阵列比较后将其结果送入逐次逼近寄存器。工作时需外部提供参考电压vref和电源+vcc。芯片采用三线制串行

35、接口与微控制器相连。当前转换结果在dclock的同步下由dout 端逐位的输出,每个数据位在dclock的下降沿被传输,转换时序如图3.4所示。 图3.4 ads7822转换时序图具体转换过程如下:cs的下降沿启动一次转换和数据传输,转换周期的1.52.0个时钟用来采样模拟输入信号。dclock的第二个下降沿后,dout输出允许,将先输出一个时钟的低电平,接下来的12个时钟周期,dout输出当前转换结果,先是最高位msb(b11) 在前,依次传送,最后是最低位lsb(b0);当lsb 输出后,接下来是b1位,并以低位在先的顺序重复输出直至b11,当b11再次输出后,dout 变为高阻态。接下来

36、的时钟对转换器无影响,只有当cs再一次从高到低跳变才开始一次新的转换。ads7822的使用注意事项:(1)参考电压的范围为50 mv+ vcc ,其大小直接决定了模拟输入信号的范围。当vref = 5.0v 时,差动输入的最大值也为5.0v。当外部基准电压降低时,对应a/ d 转换器内部的失调增益误差也将增大,同时固有噪声也增大。(2)模拟信号输入模拟输入端有2 个:+ in 和- in。为了保证转换的线性度, + in 输入端的输入范围为gnd - 0.2 vvcc +0.2 v , - in 的输入范围为gnd - 0.2 vgnd + 1 v。(3)外部时钟频率的大小决定了a/d 转换器

37、的转换速率,10khz 时对应的转换率625hz , 1.2mhz时对应的转换率为75khz。时钟的占空比最好为1/2 ,最小时钟周期必须大于400ns。ads7822在数据采集系统中的应用数据采集系统要实现的是把外电路输入的电压显示在上位机上,ads7822的需要完成的任务是模数转换,上位机与fpga之间通过串口通信,12位的二进制数被“截去”低4位,被传送的高8位数据在上位机上,通过labview软件实现十进制电压的显示。ads7822的电路原理图如图3.5所示。 图3.5 ads7822电路原理图3.1.2 多路模拟开关cd4051cd4051是单8通道数字控制模拟电子开关,有a、b和c

38、三个二进制控制输入端以及inh共4个输入,具有低导通阻抗和很低的截止漏电流。幅值为4.520v的数字信号可控制峰值至20v的模拟信号。例如,若vdd=+5v,vss=0,vee=-13.5v,则05v的数字信号可控制-13.54.5v的模拟信号。这些开关电路在整个vdd-vss和vdd-vee电源范围内具有极低的静态功耗,与控制信号的逻辑状态无关。当inh输入端=“1”时,所有的通道截止。只有当inh=0时,三位二进制信号才可以选通8通道中的一个通道,连接该输入端至输出。其中vee可以接负电压,也可以接地。当输入电压有负值时,vee必须接负电压,其他时候可以接地。cd4051相当于一个单刀八掷

39、开关,开关接通哪一通道,由输入的3位地址码abc来决定。此外,cd4051还设有另外一个电源端vee,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的cmos电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15v的交流信号。引脚功能表如表3.1所示,真值表如表3.2所示, 引脚排列如图3.6所示,cd4051的电路连接图如图3.7所示。表3.1引脚功能表表3.2 cd4051真值表 图3.6引脚排列图 图 3.7 cd4051电路连接图 3.2 显示电路3.2.1 74ls138当一个选通端(e1)为高电平,另两个选通端((/e2)和/(e3))为低电平时

40、,可将地址端(a0、a1、a2)的二进制编码在y0至y7对应的输出端以低电平译出。比如:a2a1a0=110时,则y6输出端输出低电平信号。74ls138引脚如图3.8所示,真值表如表3.3所示。 图3.8 74ls138引脚图表3.3 74ls138真值表3.2.2 74hc24574hc245总线驱动器,典型的ttl型三态缓冲门电路。由于单片机等cpu的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。74hc245引脚图和真值表如图3.9和表3.4所示。图3.9 74hc245引脚图第1脚dir,为输入输出端口转换用,dir=“1”高电平时信号由“a”端

41、输入“b”端输出,dir=“0”低电平时信号由“b”端输入“a”端输出。 第29脚“a”信号输入输出端,a1=b1、a8=b8,a1与b1是一组,如果dir=1,oe=“0”则a1输入b1输出,其它类同。如果dir=“0”,oe=“0”则b1输入a1输出,其它类同。 第1118脚“b”信号输入输出端,功能与“a”端一样,不在描述。 第19脚oe,使能端,若该脚为1时,a/b端的信号将不导通,只有为“0”时a/b端才被启用,该脚也就是起到开关的作用。 第10脚gnd,电源地。 第20脚 vcc,电源正极。 图3.10 74hc245内部结构图3.2.3 七段数码管 七段数码管(seven-seg

42、ment display)为常用显示数字的电子元件。因为借由七个发光二极管以不同组合来显示数字,所以称为七段数码管,而七划旁的点为它的“第八划”。 图 3.11七段数码管实物图一般的七段数码管拥有八个发光二极管用以显示十进制0至9的数字,也可以显示英文字母,包括十六进制中的英文a至f(b,d为小写,其他为大写)。现在大部份的七段数码管会以斜体显示。七段数码管能够显示十六进制的数字,七段数码管由四个直向、三个横向及右下角一点的发光二极管组成,由以上8条发光体组合出不同的数字。除七段数码管外,还有十四及十六划的显示器,但现在已被点阵显示器(dot-matrix)所取代。七段数码管分为共阳极及共阴极

43、,共阳极的七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。共阴极的七段数码管与共阳极的只是接点方法相反而已。3.2.4显示电路发光二极管 (light-emitting diode,简称led)是一种能发光的半导体电子元件。这种电子元件早在1962年出现,早期只能发出低光度的红光,之后发展出其他单色光的版本,时至今日能发出的光已遍及可见光、红外线及紫外线,光度也提高到相当的光度。而用途也由初时作为指示灯、显示板等;随着白光发光二极管的出现而续渐发展至被用作照明。led只能往一个

44、方向导通(通电),叫作正向偏置(正向偏压),当电流流过时,电子与电洞在其内重合而发出单色光,这叫电致发光效应,而光线的波长、颜色跟其所采用的半导体物料种类与故意渗入的元素杂质有关。具有效率高、寿命长、不易破损、开关速度高、高可靠性等传统光源不及的优点。白光led的发光效率,在近几年来已经有明显的提升,同时,在每千流明的购入价格,也因为投入市场的厂商相互竞争的影响,而价格明显下降。虽然越来越多人使用led照明作办公室、家具、装饰、招牌甚至路灯用途,但在技术上,led在光电转换效率(有效照度对用电量的比值)上仍然低于新型荧光灯。系统中led能显示八位二进制数,led被点亮说明对应的数据位为“1”,

45、led熄灭表明对应的数据位是“0”,八位二进制数实际上是输入到ads7822芯片模拟电压的编码,全“1”表示参考电压3.3v,可以通过led显示计算出当前输入电压。将当前二进制数转化为十进制数,假如为a,则输入电压u=a·3.3v/256。 74ls138输出与七段数码管的gnd相连,提供位选信号,与之连接的数码管被选中,未被选中的数码管不显示。在74hc245的驱动下,数据从fpga流向数码管。显示电路如图3.12所示。图3.12 显示电路3.3串行口通信电路 3.3.1 max3232概述max232线驱动器/接收器,专为eia-232e通信接口设计,该器件特别适用于电池供电系统

46、,这是由于其低功耗关断模式可以将功耗减小到5w以内。max3232收发器采用专有的低压差发送器输出级,利用双电荷泵在3.0v至5.5v电源供电时能够实现真正的rs-232性能。器件仅需四个0.1f的外部小尺寸电荷泵电容。max3232确保在120kbps数据速率下维持rs-232输出电平,max3232具有2路接收器和2路驱动器。max3232内部电源由两路稳压型电荷泵组成,只要输入电压(vcc)在3.0v至5.5v范围以内,即可提供+5.5v (倍压电荷泵)和-5.5v (反相电荷泵)输出电压。电荷泵工作在非连续模式,一旦输出电压低于5.5v,将开启电荷泵;输出电压超过5.5v时,即刻关闭电

47、荷泵。每个电荷泵需要一个飞电容(c1、c2)和一个储能电容(c3、c4),产生v+和v-电压。max3232引脚图如图3.13所示。图3.13 max3232引脚图3.3.2 rs-232发送器发送器为反相电平转换器,将cmos逻辑电平转换成5.0veia/tia-232电平。max3232在最差工作条件(3k电阻与1000pf电容的并联负载)下能够保证120kbps的数据速率,提供pc至pc通信软件(例如laplinktm)兼容性。发送器可并联驱动多个接收器或鼠标。关闭电源时,max3232允许输出端驱动至最高±12v。发送器输入没有上拉电阻,将未使用的输入连接至gnd或vcc。3

48、.3.3 电容选择c1至c4所使用的电容类型对于正常工作影响不大,可以使用有极性或无极性电容。3.3v供电时,电荷泵需要0.1f电容,增大电容值(例如增大2倍)有助于降低发送器输出的纹波,并对降低功耗略有帮助。可以不改变c1,只是增大c2、c3和c4。但是,请勿在c2、c3和c4没有增大的情况下增大c1,需维持这些电容之间的适当比值(c1相对于其它电容)。3.3.4 电源去耦大多数情况下,使用一个0.1f旁路电容即可满足要求。在对电源噪声敏感的应用中,采用与电荷泵电容c1相同的电容将vcc旁路到地,进行去耦。旁路电容应尽量靠近ic放置。串口通信电路如图3.14所示。图 3.14 串口通信电路4

49、 系统软件设计4.1 程序流程图 4.1.1 时钟分频程序流程图程序首先在实体中定义i/o端口,然后在结构体中定义三个常量信号、三个计数器,程序执行到进程,clk_in上升沿时,如果计数器1的值为2,这时adc_clk的电平反转,产生一个占空比为50%的时钟信号;如果计数器1的值不是2,那么计数器的值将自动加1。与此同时,如果计数器2的值是1249,这会使uart_clk电平反转,同样产生占空比为50%的分频时钟;计数器2的值不是1249,计数器2的值也自动加1。如果计数器3的值为400000,config_clk电平反转,计数器3初始化;程序的流程如图4.1所示。yynnn结束count1初

50、始化,ad_clk电平反转count1自加1count2自加1count2初始化,uart_clk电平反转count3= 400000?count3自加1count3初始化,uart_clk电平反转count2= 1249?clk_in出现上升沿开始定义clock的i/o端口定义三个常量和三个计数器count1= 2? 图4.1 时钟分频程序流程图4.1.2 a/d转换程序流程图定义标志位t_flag,它有四个状态,t_flag=0时a/d芯片处于初始化状态;t_flag=1时,为准备阶段;t_flag=2时,启动转换;t_flag=3时,转换结束。在adc_clk的下降沿,芯片开始进入初始化

51、状态,串行口使能端和计数器初值为0,adc_cs为高电平。当芯片准备转换时,标志位为1,adc_cs为低,如果计数到3,即经过了三个时钟周期,芯片启动,此时计数器归零。如果芯片的计数未到,则自动加一。ads7822一旦开始转换,标志位变为2,当计数值为12时,完成了一次转换,如果计数不是12说明a/d正在转换数据,由于ads7822输出的是串行数据,即每一个周期只输出一位。程序采用“左移”的方式,完成数据的输出。它们被存入数据锁存器内,当转换结束后,将锁存器的数据送给ad输出。而后,ad重新初始化。a/d转换结果送入数据锁存器转换结束count=12?uart_en=1,count=0coun

52、t加1adc_cs=1,t_flag=3,转换结果送串行口,状态初始化yn准备t_flag=1, adc_cs=0count=3?启动转换, count初始化ycount加1t_flag=2n定义a/d的端口定义枚举类型数据statues初始化uart_en=0,t_flag=0,adc_cs=1,count=0开始adc_clk 下降沿出现 图 4.2 a/d转换流程图4.2 程序模块4.2.1时钟产生模块系统采用24mhz晶振为fpga提供时钟,晶振输出为50%占空比方波,首先通过clk_in上升沿触发进行计数,当计数值达到某个值n时,进行输出时钟翻转,得到占空比50%的分频时钟。在qua

53、rtus ii软件工程下,新建vhdl文件,在程序窗口输入时钟程序,编译结果如图4.3所示。图4.3时钟程序的编译图4.4时钟程序时序仿真图4.5 仿真波形图4.2.2 a/d子程序模块 采用状态机编程的方式,在四种状态之间切换。t_flag=0时ad芯片处于初始化状态,t_flag=1时,为准备阶段,t_flag=2时,启动转换;t_flag=3时,转换结束。与时钟模块相同,在工程中,新建vhdl文件,将a/d转换控制程序录入。编译的结果如图4.6所示。图4.6 a/d控制程序编译在“adc_st.vmf”文件下,按照时钟分频程序计算adc_clk和adc_datain的周期,将adc_cl

54、k和adc_datain波形设定好,然后对波形文件功能仿真,结果如图4.7 所示。图4.7 a/d转换控制程序功能仿真功能仿真成功以后,还需要对其进行时序仿真。仿真的结果如图4.8所示。图4.8 a/d转换控制程序时序仿真 最后,在完成以上三个步骤以后,得到的仿真波形如图4.9所示。图4.9 a/d转换仿真波形图4.2.3 通信子程序模块通信程序主要功能是把转换后的数字量经过处理送到串行口,数据发送过程中,分别设置0为起始位,1为停止位。为防止发送数据出现错误,将a和z是作为起始字符,后面分别是ad转换的8位数据,8个开关量。通信子程序模块的仿真及波形图如图4.10 、4.11 、4.12所示

55、。图4.10通信子程序功能仿真图4.11 通信子程序时序仿真图4.12 仿真波形4.2.4 显示程序led的输入定义为12位的标准逻辑位矢量,该输入端口接受的数据来自a/d,输出端口驱动8个led,高8位数据输出。该模块的作用是通过8个led能显示输入的电压大小。程序的仿真及波形图如图4.13 、4.14 、4.15 所示。图 4.13 时序仿真图4.14 仿真波形图4.15 仿真波形5系统测试5.1数据采集系统调试表 5.1 电压对比表测得输入的模拟电压(v)上位机界面显示电压(v)0.300.280.620.591.091.071.201.182.332.292.542.522.852.843.303.30输入电路由多路开关、电位器、直流稳压电源构成。cd4051在5v电压下工作,电路采用直流稳压电源供电,通过调节电位器使得cd4051的输出模拟电压在05v范围内变化,并通过界面显示。输入的模拟电压与输出的显示电压对比如表5.1所示。 5.2显示系

温馨提示

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

评论

0/150

提交评论