1、湖南工业大学本科毕业设计(论文)I摘 要本文旨在探讨一种基于 FPGA 的数据采集系统设计与实现方式,其基本出发点是根据 A/D 和 D/A 器件的工作原理,结合 FPGA 的高速、易控制和可塑性强等优势,对高速数据采集系统设计有一定研究意义。本系统采用 Altera 公司的 Cyclone II 的FPGA 可编程器件为核心,其系统的设计实现包括硬件设计和软件设计两部分。硬件设计部分包括时钟、按键、显示、A/D 采样、D/A 输出、存储配置等单元电路,软件设计部分则依靠 Quartus II 集成开发系统,采用自顶向下的模块化设计思想,运用VHDL 语言进行控制系统设计,其中本文重点阐述了
2、A/D 和 D/A 模块的硬件和软件设计过程,软件设计采用了状态机控制其工作,极大的提高了系统的工作性能,同时对系统各个设计模块都进行了分析、综合、编译、时序分析和仿真分析,整个系统联调通过了系统硬件测试,该系统设计能够有效地对 0-10k 频率和幅值为 0-5v 信号进行有效采集并输出无失真,同时通过 LED 数码管精确显示当前采集的电压值。关键字:FPGA,数据采集,VHDL湖南工业大学本科毕业设计(论文)IIABSTRACTThis paper is for the purpose of discussing one kind based on the FPGA data acquisi
3、tion system design and the research, the basic starting point is based on A/D and D/A devices working principle, combination of FPGA high-speed, easy control and plasticity strong advantages of high-speed data collection system design have a certain significance. The system uses Alteras FPGA of the
4、Cyclone II FPGA as the core design of their systems, including hardware design and software design in two parts. Part of hardware design, including clocks, buttons, display, A/D sampling, D/A output, storage and configuration circuit units, software design rely on the Quartus II integrated developme
5、nt system that uses top-down modular design, the use of VHDL control system design languages, of which this article focuses on the A/D and D/A modules hardware and software design process, software design uses a state machine to control their work, great work to improve the system performance, all a
6、t the same time the system Design modules are analyzed, integrated, compiler, timing analysis and simulation analysis, the entire system through the test to the system hardware, the system is designed to effectively 0-10k frequency and amplitude for the 0-5v signal acquisition and output without dis
7、tortion, and accurate LED digital tube displays the current voltage value with acquisition. Keywords: FPGA, Data Acquisition, VHDL湖南工业大学本科毕业设计(论文)III目 录第 1章 绪论 11.1 课题背景及依据 11.2 选题目 的及意义 2第 2章 系统的硬件结构设计 32.1 概述 32.2 系统研究方案及单元结构 32.2.1 A/D 转换模块 42.2.1.1 A/D(MCP3202)芯片简介 42.2.1.2 A/D 转换控制硬件电路图 62.2.2
8、D/A 转换模块 62.2.2.1 D/A(TLV5616)芯片简介 62.2.2.2 D/A 转换控制硬件电路图 82.2.3 键盘显示硬件电路 82.2.4 FPGA 最小系统 9第 3章 系统的软件结构设计 123.1 硬件描述语言(VHDL) 123.1.1 VHDL 的优点 123.1.2 VHDL 工程设计流程 133.2 Quartus II 设计流程简介 143.3 软件系统设计方案 183.3.1 A/D 转换控制模块 ADZHKZ 的设计 193.3.2 D/A 转换控制模块 DAZHKZ 的设计 203.3.3 显示控制模块 DISPLAY 的设计 223.3.4 幅值调
9、整模块 FZTZ 的设计 223.4 系统总体组装 VHDL 源程序 22第 4章 系统仿真测试 234.1 A/D 转换控制模块 ADZHKZ 的仿真 234.1.1 ADZHKZ 的 VHDL 源程序 234.1.2 ADZHKZ 的仿真图 234.2 D/A 转换控制模块 DAZHKZ 的仿真 23湖南工业大学本科毕业设计(论文)IV4.2.1 DAZHKZ 的 VHDL 源程序 234.2.2 DAZHKZ 的仿真图 244.3 显示控制模块 DISPLAY 的仿真 244.3.1 DISPLAY 的 VHDL 源程序 244.3.2 DAZHKZ 的仿真图 244.4 幅值调整控制模
10、块 FZTZ 的仿真 254.4.1 FZTZ 的 VHDL 源程序 254.4.2 FZTZ 的仿真图 254.5 分频控制模块 FENPIN 的仿真 254.5.1 FENPIN 的 VHDL 源程序 254.5.2 FENPIN 的仿真图 264.6 系统整体仿真图 26第 5章 系统硬件测试 275.1 编程下载 275.2 系统硬件测试 285.3 数据分析 29结论 30参考文献 31致谢 32附录 1 数据采集系统模块顶层设计图 33附录 2 系统部分 VHDL源程序 34湖南工业大学本科毕业设计(论文)1第 1章 绪 论随着社会经济的飞速发展,现代电子设计技术也得到了前所未有的
11、发展,核心技术已趋转向基于计算机的电子设计自动化技术,即 EDA 技术。EDA 技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,简称 CAD)、计算机辅助工程设计(Computer Assist Engineering Design,简称 CAE)和电子设计自动化(Electronic Design Automation,简称 EDA)三个发展阶段而逐渐发展起来的,并得到了不断完善,依托现代数字技术的快速发展,随之产生的可编程逻辑器件,即 CPLD/FPGA 器件,目前已得到了广泛的应用,为电子系统的设计带来了极大的灵活性 1
12、。可编程逻辑器件可以基于硬件描述语言(HDL)通过相应的软件编程对器件的硬件结构和工作方式进行重构,使得硬件的设计如同软件设计那样方便、灵活和快捷,EDA 技术革新极大地改变传统的电子系统设计方法、设计过程乃至设计观念。未来的 EDA 技术将向广度和深度两个方向发展,EDA 将会超越电子设计的范畴进入其他领域,随着基于 EDA 的 SOC(片上系统)设计技术的发展,软、硬核功能库的建立,以及基于 VHDL 所谓的自顶向下设计观念的确立,未来的电子系统的设计与规划将不再是电子工程师的专利。有专家预言,21 世纪将是 EDA 技术快速发展时期,并且 EDA 技术将是对 21 世纪产生重大影响的十大
13、技术之一 2。1.1 课题背景及依据20 世纪末,电子技术获得了飞速发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。EDA 工程就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直到对于特定的目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成
14、集成电子系统或专用集成芯片的一门新技术。EDA 工程广义的定义范围包括半导体工艺设计自动化,可编程器件设计自动化,电子系统设计自动化,印刷电路板设计自动化,仿真与测试故障诊断以及形式验证自动化。EDA 工程的狭义的定义范围是电子设计自动化,不包含电子生产自动化 3。EDA 工具的出现,给电子系统设计带来了革命性的变化。随着 Intel 公司 Pentium 处理器的推出,Altera 等公司几十万门乃至上百万门规模的 FPGA 的上市,EDA 工程在功能仿真、时序分析、集成电路自动测试、高速印刷电路板设计及作平台的扩展等方湖南工业大学本科毕业设计(论文)2面都面临着新的巨大的挑战。目前,EDA
15、 技术作为电子设计的通用平台,逐渐向支持系统级的设计发展,数字系统的设计也从图形设计方案向硬件描述语言设计方案发展。可编程器件在数字系统设计领域得到广泛应用,不仅缩短了系统开发周期,而且利用器件的现场可编程特性,可根据应用的要求对器件进行动态配置或编程,简单易行地完成功能的添加和修改。在 EDA 软件开发方面,主要集中在美国。 但各国也正在努力开发相应的工具。例如日本,韩国有 ASIC 设计工具,但不对外开放。相信在不久的将来会有更多更好的设计工具在各地发展壮大。EDA 技术的应用广泛,现在已涉及到各行各业,EDA 水平不断提高,设计工具趋于完美的地步,EDA 市场趋成熟,但我国的研发水平很有
16、限,需迎头赶上 4。1.2 选题目的及意义现代数据采集系统已经从传统的试验测量中的数据采集与处理跨入到工业与过程控制。它已成为现代工业自动化的不可缺少的一个组成部分。随着工厂自动化的发展,在实验室与现场自动测试、生产过程监控、产品检验、质量管理、能源管理以及计算机辅助工作等方面需要越来越多的数据采集系统。数据采集系统已成为保证质量提高产量,发挥经济效益的一项重要手段。就当前国外数据采集系统的市场发展来看也已由面向设备而转向开发设备的更多应用上来,这是发展的需要,也是当代新技术革命发展的必然结果 5。针对 EDA 技术发展的趋势,无疑高速率,高质量的设计系统代表着未来十几年,甚至几十年的发展方向
17、。传统的电子设计技术通常是自底向上的,即首先确定构成系统的最底层的电路模块或元件的结构和功能,然后根据主系统的功能要求,将他们组合成更大的功能块,使它们的结构和功能满足高层系统的要求。以此流程逐步向上递推,直至完成整个目标系统的设计。而 EDA 技术的应用是自顶向下的,就是在整个设计流程中各设计环节逐步求精的过程。一个项目的设计过程包括从自然语言说明到 VHDL 的系统行为描述,系统地分解,RTL 模型的建立,门级模型产生,到最终的可以物理布线实现的底层电路,就是从高抽象级别到低抽象级别的整个设计周期。此外,VHDL 设计优秀的可行性,EDA 平台的通用性以及与具体硬件结构的无关性,使得前期的
18、设计可以容易的应用于新的设计项目,则项目设计的周期可以显著缩短 2。本课题是对 EDA 技术的应用,即利用 EDA 工具实现基于 FPGA 的数据采集。FPGA的应用是 EDA 技术有机融合软硬件电子设计技术,SOC 和 ASIC 设计,以及对自动设计与自动实现最典型的诠释。现代电子产品正在以前所未有的速度、向着功能多样化、体积最小化、功耗最低化迅速发展, EDA 技术依靠大规模可编程逻辑器件,适应了现代电子产品的设计要求,综合软硬件系统考虑,采用可编程逻辑器件 FPGA 进行硬湖南工业大学本科毕业设计(论文)3件系统设计,利用 VHDL 语言进行软件系统设计,对开发高性能数据采集系统有一定的
19、研究实践意义。第 2章 系统的硬件结构设计2.1 概述本系统采用 Altera 公司的 Cyclone II 系列的 FPGA 芯片 EP2C5T144C8 为核心控制器,采用 Microchip 公司的 12 位逐次逼近型模数(Analog-to-Digital,A/D)转换器 MCP3202 和一个带有灵活的 4 线串行接口的 12 位电压输出数/模转换器 TLV5616 设计了一个基于 FPGA 的数据采集系统。利用本数据采集系统要求能有效实现频率范围为 0-10kHz,幅值范围为 0-5v 的信号采集,12 位 A/D 芯片区分度在0.0012v,同时本数据采集系统要求能实现将一给定常
20、量(该常量可调)进行比较,并将比较的结果用 D/A(TLV5616)转换为模拟信号输出,通过改变这一常量从而控制输出信号的零点,利用数码管能同时显示被采集的信号电压值和被调整后的信号电压值。2.2 系统研究方案及单元结构本数据采集系统采用以 FPGA 为核心器件设计,需要完成系统的软、硬件设计,就单片机、ARM 等器件而言,FPGA 更具有自己的优势,可塑性强,开发周期短,软、硬件设计相对简单,速度快,非常适合高精度,高速控制的领域,数据采集系统对精度和速度要求都比较高,故采用 FPGA 性能较佳,本系统软、硬件设计方案如下:图 2.1 数据采集系统硬件系统框图本系统利用 FPGA 芯片 EP
21、2C5T144C8可编程逻辑器件为系统主控制器进行系统硬件设计,其外围硬件电路包括时钟电路、按键电路、显示电路、A/D 转换电路、D/AF P G A数据采集控制器A D 转换电路时钟电路D A 转换电路存储器件显示电路键盘电路电源电路湖南工业大学本科毕业设计(论文)4转换电路、存储电路共六大单元电路,软件开发采用 Quartus II 集成开发环境,运用 VHDL 硬件描述语言设计系统配置硬件,控制各个外围器件的协调工作。2.2.1 A/D转换模块 2.2.1.1 A/D(MCP3202)芯片简介Microchip 公司的 MCP3202是一款具有片上采样和保持电路的12位逐次逼近型模数(A
22、nalog-to-Digital,A/D)转换器。MCP3202可被编程为单通道伪差分输入对或双通道单端输入。差分非线性(Differential Nonlinearity,DNL)规定为1LSB,积分非线性(Integral Nonlinearity,INL)为1LSB(MCP3202-B)和2LSB (MCP3202-C)。它使用符合 SPI 协议的简单串行接口与器件通信。器件在5v 和2.7v工作电压下的转换速率最高分别为100 ksps 和50 ksps。MCP3202 器件的工作电压范围很宽为2.7v-5.5v。低电流设计使它仅消耗500nA 和375uA 的典型待机电流和工作电流。
23、 图2.2 MCP3202引脚图 图2.3 MCP3202内部结构图可使用标准的符合 SPI 协议的串行接口实现与 MCP3202 的通信。将 CS 线拉为低电平来启动与器件之间的通信,请参见图 2.4。如果在引脚 CS 为低电平时给器件上电,则必须首先将此引脚拉高,然后再拉低才能启动通信。在 CS 为低电平且 DIN 为高电平时接收到的第一个时钟构成启动位。启动位后面的 SGL/DIFF 位和 ODD/SIGN 位用于选择输入通道配置。SGL/DIFF 位用于选择单端或伪差分输入模式。ODD/SIGN 位在单端模式下,用于选择使用的通道,或在伪差分模式下,用于确定通道的极性。在 ODD/SI
24、GN 位后发送 MSBF 位,该位用于使能首先发送 LSB 的数据格式。如果 MSBF 位为高电平,则以首先传输 MSB 的格式从器件输出数据,然后只要 CS 湖南工业大学本科毕业设计(论文)5引脚为低电平,接下来的时钟都将导致器件输出零。如果 MSBF 位为低电平,则器件将在以首先发送 MSB 的格式发送完转换结果后,再反过来以首先发送 LSB 的格式输出该字。表 2.1 给出了 MCP3202的配置位。器件将在接收到启动位后在时钟的第二个上升沿开始对模拟输入信号进行采样。采样周期在启动位后的第三个时钟的下降沿结束。在与 MSBF 位对应的时钟脉冲的下降沿处,器件将输出 表2.1 MCP32
25、02的配置位一个低电平空位。随后12个连续的时钟脉冲将以首先发送 MSB 的格式输出转换结果,如图2.4所示。器件总是在时钟的下降沿输出数据。所有12个数据位均发送完毕后,如果器件继续接收时钟脉冲,同时 CS 保持为低电平(且 MSBF=1),则器件将以首先发送 LSB 的格式输出转换结果,如图2.5所示。图2.4 仅使用首先输出 MSB 的格式与 MCP3202通信图2.5 使用首先输出 LSB 的格式与 MCP3202通信通 道选 择 地Sgl/DifOd/Sign01单 端模 式伪 差 分模 式 100101+IN+I-I-I+-配 置 位湖南工业大学本科毕业设计(论文)6如果在 CS
26、保持为低电平时继续向器件提供时钟脉冲(在以首先发送 LSB 的格式发送完数据后) ,器件将持续输出零。需要时,可将 CS 拉为低电平,在启动位之前通过 DIN 线输入前导零 6。2.2.1.2 A/D转换控制硬件电路图图2.6 A/D 转换控制硬件 电路图A/D 转换硬件电路采用串行12位高精度的 A/D(MCP3202)转换芯片,具有电路接线简单,精度高等优点,CLK 引脚接了两级反向器目的是提高 CLK 的幅度能有效被A/D 器件识别。本模块受主控制器件(FPGA )控制,实现模拟量到数据量的采集转换,软件设计根据 A/D 芯片 MCP3202的串行通信时序(如图2.5)采用状态机来控制实
27、现数据的采集。2.2.2 D/A转换模块2.2.2.1 D/A(TLV5616)芯片简介TLV5616是一个带有灵活的4线串行接口的12位电压输出数/模转换器(DAC)。4线串行接口可以无缝联结地(glueless)与 TMS320、SPI、QSPI 和 Microwire 串行口接口。TLV5616可以用一个包括4个控制位和12个数据位的16位串行字符串来编程。可用于宽范围的电源电压,TLV5616可工作于2.7v 至5.5v。电阻串上的输出电压由2倍增益的轨到轨(rail-to-rail)输出缓冲器缓冲。缓冲器是一个 AB 类输出级,以改进稳定性和减少建立时间。DAC 的建立时间是可编程的
28、,使设计者在速度和功耗的关系上作最佳选择。建立时间可由16位串行输入字符串中的控制位来选择。一个高阻抗的缓冲器被集成在 REFIN 端以减少驱动该端时所需的低源阻抗。 TLV5616采用 CMOS 工艺,设计成用2.7v 至5.5v 单电源工作。器件用8引脚 SOIC封装。TLV5616C 的工作温度范围从0至70。TLV5616I 则从-40至85。TLV5616是一个基于一个电阻串结构的12位、单电源 DAC。它包含一个并行接口、速度和掉电控制逻辑、一个基准输入缓冲器、电阻串以及一个轨到轨(rail-to-rail)输出缓冲器。输出电压(由外部基准决定满度电压)由下式给出: 201CODE
29、RFVX湖南工业大学本科毕业设计(论文)7其中 REF 是基准电压,而 CODE 是数字输入值,范围从0x000至0xFFF。上电复位将内部锁存为一个规定的初始状态(所有各位为零)。 图2.7 TLV5616引脚图 图2.8 TLV5616功能方框图串行数据传输时:首先,器件必须使能 CS(置为低电平)。然后在 FS 的下降沿启动数据的移位,在 SCLK 的下降沿一位接一位(以 MSB 为前导)地传入内部寄存器。在16位已经传送后或者当 FS 升高时,移位寄存器中的内容被移到 DAC 锁存器,它将输出电压更新为新的电平,TlV5616工作时序图如图2.9。 TLV5616的16位数据字包括两部
30、分: 控制位 (D15-D12) DAC 新值 (D11-D0) SPD:速度控制位 1快速方式 0慢速方式 PWR:功率控制位 1掉电方式 0正常工作 在掉电方式时,TLV5616中的所有放大器都被禁止 6。湖南工业大学本科毕业设计(论文)8图2.9 TLV5616时序图2.2.2.2 D/A 转换控制硬件电路图图2.10 D/A 转换控制硬件电路图D/A 转换硬件电路采用串行12位高精度的 D/A (TLV5616)转换芯片,硬件接口电路简单,易于控制,CLK 引脚接了两级反向器目的是提高 CLK 的幅度能有效被 D/A器件识别。本模块受主控制器件(FPGA)控制,实现数据由数字量到模拟量
31、的转换,模拟量输出经滤波平滑尖峰脉冲,改善输出波形,软件设计根据 D/A 芯片 TLV5616的串行通信时序(如图2. 9) ,采用状态机来控制 D/A 器件实现数字量到模拟量的转换。2.2.3 键盘显示硬件电路图2.11 LED 显示硬件 电路图显示电路采用了 LED 数码管来实现,因为 LED 数码管公共端承受较大电流,直接与 FPGA 控制器引脚相连,则容易烧毁器件,本电路利用三极管来驱动位控,能承受较大灌电流,同时考虑到需要并行显示的数据位有8位,以及 FPGA 的 IO 引脚数量湖南工业大学本科毕业设计(论文)9有限,显示硬件电路设计上采用了动态扫描接法,实现对所采集的信号和调整后的
32、电压值进行译码显示输出到8位 LED 数码管,实现人机界面。图2.12 键盘硬件电路图键盘电路:根据系统任务要求,调整 D/A 输出的幅值。键盘硬件电路采用拨码开关来设计,具有电平稳定,数据读取可靠等优点。2.2.4 FPGA最小系统FPGA 最小系统是硬件系统的重要核心部分,也是 FPGA 能否工作的最低配置要求,其最小系统主要包括:电源电路,时钟电路,下载配置电路。(1)电源电路电源部分采用1085-3.3v 芯片输出作为 IO 电压,采用1117-1.2v 芯片输出作为核电压以及 PLL 电压,锁相环部分采用 型滤波电路处理,同时每路独立的 PLL 分别有电容滤波电路。湖南工业大学本科毕
33、业设计(论文)10图 2.13 FPGA 电源电路(2)下载配置电路 湖南工业大学本科毕业设计(论文)11图 2.14 FPGA 下载配置电路下载配置电路包含了 JTAG 下载调试和 AS 主动串行模式,配置芯片是 EPCS1,1M容量。(3)时钟电路EP2C5T144 提供 8 路时钟供用户使用,板载采用 50M 有源晶振,可以根据需要进行 PLL 定制,或者直接分频处理得到系统所需频率,电源部分增加了 型滤波电路来提高电源的稳定性从而间接提高时钟的稳定性。湖南工业大学本科毕业设计(论文)12图 2.15 FPGA 时钟电路第 3章 系统的软件结构设计3.1 硬件描述语言(VHDL)VHDL
34、 是超高速集成电路硬件描述语言(Very-High-Speed Integrated Circuit Hardware Description Language)的缩写。VHDL 作为 IEEE 标准的硬件描述语言和EDA 的重要组成部分,经过十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层次的仿真测试手段,在电子设计领域受到了普遍的认同和广泛的接受,成为现代 EDA 领域的首选硬件设计语言。专家认为,在新世纪中,VHDL 与 Verilog 语言将承担起几乎全部的数字系统设计任务。湖南工业大学本科毕业设计(论文)133.1.1 VHDL的优点VH
35、DL 主要用于描述数字系统结构、行为、功能和接口,除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分,即设计实体的内部功能和算法完成部分)两部分。VHDL 进行工程设计的优点是多方面的,具体如下:(1)、VHDL 具有强大的功能,覆盖面广,描述能力强。VHDL 支持门级电路的描述,也支持以寄存器、存贮器、总线及运算单元等构成的寄存器传输级电路的描述,还支持以行为算法和结构的混合描述为对象的系统级电路的描述。 (2)、VHDL 有良好的可读性。它可以被计算机接受,也容易被读者理解。用 VHDL书写的源文件,既是程序又是文档,既是工程技术人员之间交换信息的文件,又可作为合同签约者之