基于FPGA的数字电压表显示设计_第1页
基于FPGA的数字电压表显示设计_第2页
基于FPGA的数字电压表显示设计_第3页
基于FPGA的数字电压表显示设计_第4页
基于FPGA的数字电压表显示设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

存档日期 存档日期 存档编号 存档编号 本科生本科生毕业设计毕业设计 论论文 文 论论 文文 题题 目 目 基于 FPGA 的数字电压表设计 姓姓 名 名 XXX 学学 院 院 电气工程及自动化学院 专专 业 业 电气工程及其自动化 班班 级级 学学 号号 指指 导导 教教 师 师 XXXX XXXXXX 大学教务处印制大学教务处印制 I 摘要摘要 电子设计自动化 electronic design automation EDA 是近几年发展迅速 的将计算机软件 硬件 微电子技术交叉运用的现代电子设计技术 其中 EDA 设计语言中的 Verilog HDL 语言是一种快速的电路设计工具 其功能包涵了电 路的描述 电路的综合和电路的仿真等三大电路设计内容 本电压表的电路设 计正是用 Verilog HDL 语言完成的 本次设计的主要应用软件是美国 ALTERA 公 司自行设计的一种 EDA 软件工具 即 MAX PLUS 本次所设计的电压表的测 量范围是 0 5V 精度为 0 01V 此电压表的设计特点为 通过软件编程下载到 硬件实现 设计周期短 开发效率高 关键词 关键词 FPGA Verilog HDL A D 采集 数字电压表 II Abstract The design of digital system is becoming faster bulkier smaller and lighter than before Electronic design automation is in the last few years quickly develop it makes use of software hardware micro electronics technology to form a course of electronic design Among them the Verilog HDL language of EDA is a kind of tool of fast circuit design the function covered the circuit describe the circuit synthesize the circuit imitate the true etc The circuit of the design that use Verilog HDL language to complete The this time design is primarily the applied software is MAX PLUS which is made by the United States ALTERA company This system s range is 0v to 5v and precision is 0 01v Characteristics of this electric voltage watch is Pass the software program to download the hardware o realize design the period is short development the efficiency is high Key words FPGA Verilog HDL A D Acquisition Digital voltage III 目目 录录 摘要摘要 I I Abstract IIII 1 1 绪论绪论 1 1 1 研究的目的 意义及前景 1 1 2 研究的主要内容 2 2 2 开发工具介绍开发工具介绍 4 2 1 EDA 技术的简介 4 2 2 FPGA 的概念与特点 5 2 3 Verilog HDL 语言概述 7 2 4 软件工具 MAX PLUSII 的简介 10 3 3 硬件电路设计硬件电路设计 12 3 1 设计方案比较 12 3 2 硬件电路框图 12 3 3 ADC0809 模块 13 3 4 FPGA 模块 18 3 5 显示模块 19 4 4 FPGA 功能模块的设计及仿真功能模块的设计及仿真 21 4 1 系统软件原理 21 4 2 采样控制模块 22 4 3 数据处理模块 26 4 4 扫描 显示模块 29 5 5 总结总结 34 致谢致谢 35 IV 参考文献参考文献 36 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 1 1 绪论 1 1 研究的目的 意义及前景 数字电压表 Digital Voltmeter 简称 DVM 是实验中的重要仪表 其数 字化是指将连续的模拟电压量转换成不连续 离散的数字量并加以显示 传统 的实验用模拟电压表功能单一 精度低 体积大 且存在读数时的视差 长时 间连续使用易引起视觉疲劳 使用中存在诸多不便 而目前数字万用表的内部 核心多是模 数转换器 其精度很大程度上限制了整个表的准确度 可靠性较 差 传统的数字电压表设计通常以大规模 ASIC 专用集成电路 为核心器件 并 辅以少量中规模集成电路及显示器件构成 ASIC 完成从模拟量的输入到数字量 的输出 是数字电压表的心脏 这种电压表的设计简单 精确度高 但是这种 设计方法由于采用了 ASIC 器件使得它欠缺灵活性 其系统功能固定 难以更 新扩展 后来发展起来的用微处理器 单片机 控制通用 A D 转换器件的数字电 压表的设计的灵活性明显提高 系统功能的扩展变得简单 但是由于微处理器 的引脚数量有限 其控制转换速度和灵活性还是不能满足日益发展的电子工业 的需求 而应用 EDA 电子设汁自动化 技术及 FPGA 现场可编程门阵列 其 集成度高 速度快 性能十分可靠 用户可自由编程且编程语言通俗易懂 系 统功能扩展非常方便 采用 FPGA 芯片控制通用 A D 转换器可使速度 灵活性 大大优于由微处理器和通用 A D 转换器构成的数字电压表 1 科学技术的发展为测量仪器 仪表提供了新原理和新技术以及新型的元 器体 同 时又对测量仪表提出了更新 更高的要求 数字电压表 简写为 DVM 就是在精密电测量技术 计算技术 自动化技术和电子技术的基础上产生和发 展起来的 数字式仪表是能把连续的被测量自动地变成断续的 用数字编码方式的 并以十进 制数字自动显示测量结果的一种测量仪表 这是一种新型仪表 它把 电子技术 计算技术 自动化技术的成果与精密电测量技术密切的结合在一起 成为仪器 仪表领域中独 立而完整的一个分支 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 2 1952 年 美国 NLS 公司首创四位数字电压表 到现在的五十多年中经过 了不断的改进和提高 电压表是从电位差计的自动化考虑中研制成功的 开始 是四位然后是五位 六位 而现在发展到七位 八位数码显示 从最初的一 二种工作原理发展到几十种原理 从最早采用继电器 电子管发展到全晶体管 化 集成电路化 微处理器化 认一台 DVM 只能测一 二种参数到能测十几 种参数的多用型 显示器件也从辉光数码显示发展 到等离子体 发光二极管 液晶显示等 电压表的体积和功耗越来越小 重量不断减轻 价格也逐步下降 可靠性越来越高 量程范围也逐渐扩大 回顾一下电压表的发展过程 大致可分为以下三个阶段 数字化阶段 50 60 年代中期 电压表的特点是运用各种原理实现模数 A D 转换 即将 模拟量转化成数字量 从而实现测量仪表的数字化 高准确度阶段 由于精密 电测量的需要 电压表开始向高准确度 高位数方向发展 出现了所谓复合型 原理的仪表 智能化阶段 60 年代末期 电子技术和工艺结构有了飞跃的发 展 而大规模集成 电路 LSI 与计算机技术相结合的产物是微处理器 简写为 P 1972 年 美国 Intel 公司首创微处理器不久即研制出微处理器式数字电 压表 实现了电压表数据处理自动化和可编程序 因为带有存贮器并使用软件 所以可进行信息处理 可通过标准接口组成自动测试系统 简写为 ATS 这些 仪表除了完成原有电压表的各种功能外 还能够自校 自检 保证了自动测量 的高准确度 实现了仪器 仪表的所谓 智能化 当前 智能表发展十分迅速 而微处理式电压表在智能仪表中占的比重最大 智能化的电压表为实现各种物 理量的动态测量提供了可能 1 2 研究的主要内容 本课题主要研究数字电压表的一般设计原理 并结合新型的可编程逻辑器件 FPGA 设计了一种方便 实用的数字电压表 我主要设计软件那部分 采用 ACEX1k30TC144 3的一款FPGA芯片实现电压表的数码显示的功能 设计中所 要求设计的数字电压表为4位 由三大部分组成 数据转换模块进行模数转换后 到数据处理模块处理得到BCD码转换成能被数码管识别的字型编码 再到显示 模块 每一部分又包含了若干子电路 将各电路组合起来 就构成了一个整体 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 3 硬件设计所需的硬件主要有 直流电平输出电路 ADC0809 七段显示器 基于 FPGA 的数字电压表有三大部分组成 具体分为 A D 转换电路 FPGA 控制电路和显示电路 电压输入 A D 转换器后转化为数字量送入 FPGA 芯片 经过 FPGA 的逻辑控制 A D 控制 BCD 码转换和扫描显示 最终由 LED 数码显示结果 ADC 0809 FPGA8 88 模拟信号 输入 采集信号输出 CS WR RD INT 图 1 1 硬件结构图 我采用 8 位 A D 转换器 ADC0809 对模拟电压采样 以一片高性能 FPGA 芯片为控制核心 以软件实现了诸多硬件功能 对电压信号的转换结果进行准 确实时的运算处理并送出显示 系统的主要功能都集成在一块芯片上 大大减 少了系统的分立元件数量 降低了功耗 增加了可靠性 较好地实现了电压的 精准测量 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 4 2 开发工具介绍 2 1 EDA 技术的简介 随着微电子技术和计算机技术的不断发展 在涉及机械 电子 通信 航 空航天 化工 矿产 生物 医学 军事等领域的电子系统设计工作中 EDA 技术的含量正以惊人的速度上升 它已成为当今电子技术发展的前沿之一 EDA 以计算机为工具 设计者在其软件平台上 用硬件描述语言 HDL 完成设计文件 然后由计算机自动地完成逻辑编译 化简 分割 综合 优化 布局 布线和 仿真 直至对于特定目标芯片的适配编译 逻辑映射和编程下载等工作 2 利用 EDA 技术 特指 IES ASIC 自动设计技术 进行电子系统的设计 具有以 下几个特点 1 用软件的方式设计硬件 2 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完 成的 3 设计过程中可用有关软件进行各种仿真 系统可现场编程 在线升级 4 整个系统可集成在一个芯片上 体积小 功耗低 可靠性高 5 从以前的 组合设计 转向真正的 自由设计 6 设计的移植性好 效率高 7 非常适合分工设计 团体协作 因此 EDA 技术是现代电子设计的发 展趋势 3 EDA 技术的理论基础 设计工具 设计器件应是这样的关系 设计师用硬件描 述语言 HDL 描绘出硬件的结构或硬件的行为 再用设计工具将这些描述综合映射 成与半导体工艺有关的硬件配置文件 半导体器件 FPGA 则是这些硬件配置文件 的载体 当这些 FPGA 器件加载 配置上不同的文件时 这个器件便具有了相应的 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 5 功能 在这一系列的设计 综合 仿真 验证 配置的过程中 现代电子设计理论和 现代电子设计方法贯穿于其中 以HDL语言表达设计意图 以FPGA作为硬件实现载体 以计算机为设计开发工具 以EDA软件为开发环境的现代电子设计方法日趋成熟 在这里 笔者认为 要振兴 我国电子产业 需要各相关专业的人士共同努力 HDL语言的语法语义学研究与半 导体工艺相关联的编译映射关系的研究 深亚微米半导体工艺与EDA设计工具的 仿真 验证及方法的研究 这需要半导体专家和操作系统专家共同努力 以便能开 发出更加先进的EDA工具软件 软件 硬件协同开发缩短了电子设计周期 加速了 电子产品更新换代的步伐 毫不夸张地说 EDA工程是电子产业的心脏起搏器 是 电子产业飞速发展的原动力 4 2 2 FPGA 的概念与特点 FPGA Field Programmable Gate Array 即现场可编程门阵列 它是在 PAL GAL CPLD 等可编程器件的基础上进一步发展的产物 它是作为专用集成 电路 ASIC 领域中的一种半定制电路而出现的 既解决了定制电路的不足 又克服了原有可编程器件门电路数有限的缺点 目前以硬件描述语言 Verilog 或 VHDL 所完成的电路设计 可以经 过简单的综合与布局 快速的烧录至 FPGA 上进行测试 是现代 IC 设计 验证的技术主流 这些可编辑元件可以被用来实现一些基本的逻辑门电路 比如 AND OR XOR NOT 或者更复杂一些的组合功能比如解码器或 数学方程式 在大多数的 FPGA 里面 这些可编辑的元件里也包含记忆元件 例如触发器 Flip flop 或者其他更加完整的记忆块 5 系统设计师可以根据需要通过可编辑的连接把FPGA 内部的逻辑块连 接起来 就好像一个电路试验板被放在了一个芯片里 一个出厂后的成品 FPGA 的逻辑块和连接可以按照设计者而改变 所以FPGA 可以完成所需 要的逻辑功能 FPGA 一般来说比 ASIC 专用集成芯片 的速度要慢 无法完成复杂的 设计 而且消耗更多的电能 但是他们也有很多的优点比如可以快速成品 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 6 可以被修改来改正程序中的错误和更便宜的造价 厂商也可能会提供便宜的 但是编辑能力差的 FPGA 因为这些芯片有比较差的可编辑能力 所以这些 设计的开发是在普通的 FPGA 上完成的 然后将设计转移到一个类似于 ASIC 的芯片上 另外一种方法是用 CPLD 复杂可编程逻辑器件备 早在 1980 年代中期 FPGA 已经在 PLD 设备中扎根 CPLD 和 FPGA 包括了一些相对大数量的可以编辑逻辑单元 CPLD 逻辑门的密度在几千到 几万个逻辑单元之间 而 FPGA 通常是在几万到几百万 CPLD 和 FPGA 的主要区别是他们的系统结构 CPLD 是一个有点限制 性的结构 这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相 对少量的锁定的寄存器 这样的结果是缺乏编辑灵活性 但是却有可以预计 的延迟时间和逻辑单元对连接单元高比率的优点 而FPGA 却是有很多的 连接单元 这样虽然让它可以更加灵活的编辑 但是结构却复杂的多 CPLD 和 FPGA 另外一个区别是大多数的 FPGA 含有高层次的内置模块 比如加法器和乘法器 和内置的记忆体 一个因此有关的重要区别是很多 新的 FPGA 支持完全的或者部分的系统内重新配置 允许他们的设计随着系 统升级或者动态重新配置而改变 一些FPGA 可以让设备的一部分重新编辑 而其他部分继续正常运行 FPGA 采用了逻辑单元阵列 LCA Logic Cell Array 这样一个概念 内部包括可配置逻辑模块 CLB Configurable Logic Block 输出输入模 块 IOB Input Output Block 和内部连线 Interconnect 三个部分 FPGA 的基本特点主要有 1 采用 FPGA 设计 ASIC 电路 用户不需要投片生产 就能得到合用 的芯片 2 FPGA 可做其它全定制或半定制 ASIC 电路的中试样片 3 FPGA 内部有丰富的触发器和 I O 引脚 4 FPGA 是 ASIC 电路中设计周期最短 开发费用最低 风险最小的器 件之一 5 FPGA 采用高速 CHMOS 工艺 功耗低 可以与 CMOS TTL 电平 兼容 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 7 可以说 FPGA 芯片是小批量系统提高系统集成度 可靠性的最佳选择 之一 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的 因此 工作时 需要对片内的 RAM 进行编程 用户可以根据不同的配置模式 采用不同的 编程方式 加电时 FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中 配置完成后 FPGA 进入工作状态 掉电后 FPGA 恢复成白片 内部逻辑 关系消失 因此 FPGA 能够反复使用 FPGA 的编程无须专用的 FPGA 编程器 只须用通用的 EPROM PROM 编程器即可 当需要修改 FPGA 功能时 只需换一片 EPROM 即可 这样 同一片 FPGA 不同的编程数据 可以产生不同的电路功能 因此 FPGA 的使用非常灵活 2 3 Verilog HDL 语言概述 Verilog HDL 是一种硬件描述语言 HDL Hardware Discription Language 是一种以文本形式来描述数字系统硬件的结构和行为的语言 用它可以表示逻 辑电路图 逻辑表达式 还可以表示数字逻辑系统所完成的逻辑功能 Verilog HDL 和 VHDL 是目前世界上最流行的两种硬件描述语言 都是在 20 世纪 80 年 代中期开发出来的 前者由 Gateway Design Automation 公司 该公司于 1989 年被 Cadence 公司收购 开发 两种 HDL 均为 IEEE 标准 6 Verilog HDL 就是在用途最广泛的 C 语言的基础上发展起来的一种硬件描 述语言 它是由 GDA Gateway Design Automation 公司的 PhilMoorby 在 1983 年 末首创的 最初只设计了一个仿真与验证工具 之后又陆续开发了相关的故障 模拟与时序分析工具 1985 年 Moorby 推出它的第三个商用仿真器 Verilog XL 获得了巨大的成功 从而使得 Verilog HDL 迅速得到推广应用 1989 年 CADENCE 公司收购了 GDA 公司 使得 VerilogHDL 成为了该公司的独家专利 1990 年 CADENCE 公司公开发表了 Verilog HDL 并成立 LVI 组织以促进 Verilog HDL 成为 IEEE 标准 即 IEEE Standard 1364 1995 Verilog HDL 的最大特点就是易学易用 如果有 C 语言的编程经验 可以在 一个较短的时间内很快的学习和掌握 因而可以把 Verilog HDL 内容安排在与 ASIC 设计等相关课程内部进行讲授 由于 HDL 语言本身是专门面向硬件与系 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 8 统设计的 这样的安排可以使学习者同时获得设计实际电路的经验 与之相比 VHDL 的学习要困难一些 但 Verilog HDL 较自由的语法 也容易造成初学者 犯一些错误 这一点要注意 选择 VHDL 还是 verilog HDL 这是一个初学者最常见的问题 其实两种语 言的差别并不大 他们的描述能力也是类似的 掌握其中一种语言以后 可以 通过短期的学习 较快的学会另一种语言 选择何种语言主要还是看周围人群 的使用习惯 这样可以方便日后的学习交流 当然 如果您是集成电路 ASIC 设计人员 则必须首先掌握 verilog 因为在 IC 设计领域 90 以上 的公司都是采用 verilog 进行 IC 设计 对于 PLD FPGA 设计者而言 两种语言 可以自由选择 设计人员通过计算机对 HDL 语言进行逻辑仿真和逻辑综合 方 便高效地设计数字电路及其产品 常用的 Verilog HDL 语言开发软件有 Altera 公司的 MAX PLUS II Quartus II 和 Xilinx 公司的 Foundation ISE Verilog HDL 的发展历史 1 1981 年 Gateway Automation GDA 硬件描述语言公司成立 2 1983 年该公司的 Philip Moorby 首创了 Verilog HDL Moorby 后来成为 Verrlog HDL XL 的主要设计者和 Cadence 公司的第一合伙人 3 1984 1985 年 Moorby 设计出第一个关于 Verilog HDL 的仿真器 4 1986 年 Moorby 对 Verilog HDL 的发展又做出另一个巨大的贡献 提出 了用于快速门级仿真的 XL 算法 5 随着 Verilog HDL XL 的成功 Verilog HDL 语言得到迅速发展 6 1987 年 Synonsys 公司开始使用 Verilog HDL 行为语言作为综合工具的 输入 7 1989 年 Cadence 公司收购了 Gateway 公司 Verilog HDL 成为 Cadence 公司的私有财产 8 1990 年初 Cadence 公司把 Verilong HDL 和 Verilong HDL XL 分开 并 公开发布了 Verilog HDL 随后成立的 OVI Open Verilog HDL International 组 织负责 Verilog HDL 的发展 OVI 由 Verilog HDL 的使用和 CAE 供应商组成 制定标准 9 1993 年 几乎所有 ASIC 厂商都开始支持 Verilog HDL 并且认为 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 9 Verilog HDL XL 是最好的仿真器 同时 OVI 推出 2 0 版本的 Verilong HDL 规 范 IEEE 接收将 OVI 的 Verilong HDL2 0 作为 IEEE 标准的提案 10 1995 年 12 月 IEEE 制定了 Verilong HDL 的标准 IEEE1364 1995 任何 新生事物的产生都有它的历史沿革 早期的硬件描述语言是以一种高级语言为 基础 加上一些特殊的约定而产生的 目的是为了实现 RTL 级仿真 用以验证 设计的正确性 而不必像在传统的手工设计过程中那样 必须等到完成样机后 才能进行实测和调试 Verilog 硬件描述语言的主要能力 基本逻辑门 例如 and or 和 nand 等都 内置在语言中 7 用户定义原语 UDP 创建的灵活性 用户定义的原语既可以是组合逻辑 原语 也可以是时序逻辑原语 开关级基本结构模型 例如 pmos 和 nmos 等也被内置在语言中 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时 序检查 可采用三种不同方式或混合方式对设计建模 这些方式包括 行为描述方 式 使用过程化结构建模 数据流方式 使用连续赋值语句方式建模 结构化 方式 使用门和模块实例语句描述建模 Verilog HDL 中有两类数据类型 线网数据类型和寄存器数据类型 线网类 型表示构件间的物理连线 而寄存器类型表示抽象的数据存储元件 能够描述层次设计 可使用模块实例结构描述任何层次 设计的规模可以是任意的 语言不对设计的规模 大小 施加任何限制 Verilog HDL 不再是某些公司的专有语言而是 I E E E 标准 人和机器都可阅读 Verilog 语言 因此它可作为 E D A 的工具和设计者之 间的交互语言 Verilog HDL 语言的描述能力能够通过使用编程语言接口 P L I 机制进 一步扩展 P L I 是允许外部函数访问 Verilog 模块内信息 允许设计者与模拟 器交互的例程集合 设计能够在多个层次上加以描述 从开关级 门级 寄存器传送级 RT L 到算法级 包括进程和队列级 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 10 能够使用内置开关级原语在开关级对设计完整建模 同一语言可用于生成模拟激励和指定测试的验证约束条件 例如输入值的 指定 Verilog HDL 能够监控模拟验证的执行 即模拟验证执行过程中设计的值 能够被监控和显示 这些值也能够用于与期望值比较 在不匹配的情况下 打 印报告消息 在行为级描述中 Verilog HDL 不仅能够在 RT L 级上进行设计描述 而且 能够在体系结构级描述及其算 法级行为上进行设计描述 能够使用门和模块实例化语句在结构级进行结构描述 在 Verilog HDL 的混合方式建模能力 即在一个设计中每个模块均可以在 不同设计层次上建模 Verilog HDL 还具有内置逻辑函数 例如另一类是间接转换型 又称积分型 包括电压一频率变换 而由前面分 析可知本课题的核心电路路由 FPGA 完成 选用了 Altera 公司的 EPF10K10LC84 4 芯片 用 VHDL 语言对它进行设计 本设计是由三大模块组 成 1 AD 转换模块 组要负责将模拟信号转换为数字信号 以便送 FPGA 处理 2 FPGA 模块 激活 A D 转换器动作 接收 A D 转换器传递过来的数字 转换值 将接收到的转换值调整成对应的数字信号 3 显示模块 将数据处理 模块输出的 4 位 BCD 码译成相应 7 段数码驱功值 使模拟电压值在 4 个数码管 上显示 工作时 系统按一定的速率采集输入的模拟电压 经 ADC0809CCN 转换为 8 位数字量 此 8 位数字量经 FPGA 处理得到模拟电压的数字码 再输 入数码管获得被测电压的数字显示 此电压表的测量范围 0 5V 四位数码 管显示 整个数字电压表的硬件结构如 3 1 图所示 9 电压输入 A D 转换器 A D 控制 控制核心 FPGA 扫描显示 显示器 BCD 码转换 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 14 图 3 1 系统原理图 3 3 ADC0809 模块 ADC0809 是采样分辨率为 8 位的 以逐次逼近原理进行模 数转换的器件 其内部有一个 8 通道多路开关 它可以根据地址码锁存译码后的信号 只选通 8 路模拟输入信号中的一个进行 A D 转换 3 3 13 3 1 A DA D 转换器的主要技术指标转换器的主要技术指标 1 分辨率 分辨率是指 A D 转换器能分辨的最小模拟输入量 通常用能转换成的数字 量的位数来表示 如 8 位 10 位 12 位 16 位等 位数越高 分辨率越高 例如 对于 8 位 A D 转换器 当输入电压满刻度为 5V 时 其输出数字量的变 化范围为 0 255 转换电路对输入模拟电压的分辨能力为 5V 255 19 5mV 2 转换时间 转换时间是 A D 转换器完成一次转换所需的时间 转换时间是编程时必须考虑的参数 若 CPU 采用无条件传送方式输入 A D 转换后的数据 则从启动 A D 芯片转换开始 到 A D 芯片转换结束 需要一定 的时间 此时间为延时等待时间 实现延时等待的一段延时程序 要放在启动 转换程序之后 此延时等待时间必须大于或等于 A D 转换时间 3 量程 量程是指 A D 转换器所能转换的输入电压范围 4 精度 精度是指与数字输出量所对应的模拟输入量的实际值与理论值之间的差值 A D 转换电路中与每一个数字量对应的模拟输入量并非是单一的数值 而是一 个范围 例如 对满刻度输入电压为 5V 的 12 位 A D 转换器 1 22mV 定义为数字量的最小有效位 LSB 若理论上输入的模拟量 A 产 生数字量 D 而实际输入模拟量 A 产生还是数字量 D 则称此转换器的精度为 0LSB 当模拟电压 或 还是产生同一数字量 D 则称其精度为 1 4LSB 目前常用的 A D 转换器的精度为 1 4 2LSB 实现 A D 转换的方法比较 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 15 多 常见的有计数法 双积分法和逐次逼近法 由于逐次逼近式 A D 转换具 有速度快 分辨率高等优点 而且采用该法的 ADC 芯片成本较低 因此在设计 中采用该种方式 逐次逼近式 A D 转换器的原理如图 2 所示 它由逐次逼近 寄存器 D A 转换器 比较器和缓冲寄存器等组成 当启动信号由高电平变为 低电平时 逐次逼近寄存器清 0 这时 D A 转换器输出电压 V o 也为 0 当启 动信号变为高电平时 转换开始 同时 逐次逼近寄存器进行计数 10 逐次逼近 寄存器 缓冲寄存器 比较器 控制电路 8位D A 转换器 D7D6D5D4D3D2D1D0 Vi Vo 启动信号 CLK 转换结果 图 3 2 逐次逼近式 A D 转换 逐次逼近寄存器工作时与普通计数器不同 它不是从低位向高位逐一进行 计数和进位 而是从最高位开始 通过设置试探值来进行计数 在第一个时钟脉 冲到来时 控制电路把最高位送到逐次逼近寄存器 使它的输出为 10000000 这 个输出数字一出现 D A 转换器的输出电压 V o 就成为满量程值的 128 255 这时 若 Vo Vi 则作为比较器的运算放大器的输出就成为低电平 控制电路据 此清除逐次逼近寄存器中的最高位 若 Vo V i 则比较器输出为低电平 从而使次高位域复位 若 V oUo 比较器得出 1 则控制电路使 逐次比较寄存器的 D7 位保留 1 如果 Ui Uo 比较器输出为 0 则清除位 D7 的 1 然后使次高位 D6 1 与上次的结果相加后经 DPA 转换得到新的 U0 满 量程的 3P4 或 1P4 再与 Ui 进行比较 决定保留还是清除位上的 1 重复上述 过程 直至 D0 为止 这样 经过 8 次比较后 8 位逐次比较寄存器的状态即为 一次 A D 转换完成后所对应的数字量 ADC0809 除含有 8 位逐次逼近型 APD 转换器外 还有 8 通道多路转换器和 3 位地址锁存和译码器 以实现对 8 路输 入模拟量的选择 当地址锁存允许信号有效时 将 3 位地址锁入地址锁存器中 经译码器选择 8 路模拟量中的一路通过 8 位 A D 转换器转换输出 输出端具 有三态输出锁存缓冲器 受输出允许信号的控制 当该信号为高电平时 打开输 出缓冲器三态门 转换结果输出到数据总线上 当该信号为低电平时 输出数据 线呈高阻态 ADC0809 是 CMOS 工艺芯片 允许的电源范围较宽 可从 5 15V 当该芯片采用单 5V 电源工作时 模拟信号输入范围为 0 5V 输出可与 TTL 兼容 14 根据ADC0809工作原理设计的采样控制器模 模块图如图4 2所示 其中 d 7 0 eoc oe ale start 与ADC0809 的同名引脚相对应 reset 为复位信号 高电平有效 q 7 0 为采样控制器的输出数据 其实际上是ADC0809 转换所 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 23 得数据的缓存输出 基于 Verilog HDL 语言的 A D 采样控制器设计 图 4 2 采样控制模块 源程序 module adc d clk eoc lock ale start oe adda q reset input reset input 7 0 d input clk eoc output lock ale start oe adda output 7 0 q reg 7 0 q reg ale start oe adda reg 2 0 current state reg 2 0 next state XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 24 reg lock 定义状态 parameter st0 3 b000 parameter st1 3 b001 parameter st2 3 b010 parameter st3 3 b011 parameter st4 3 b100 parameter st5 3 b101 parameter st6 3 b110 组合逻辑 always current state or eoc begin case current state st0 begin ale 0 start 0 oe 0 lock 0 next state st1 end st1 begin ale 1 start 0 oe 0 lock 0 next state st2 end st2 begin ale 0 start 1 oe 0 lock 0 next state st3 end st3 begin ale 0 start 0 oe 0 lock 0 if eoc 1 next state st3 else next state st4 end st4 begin ale 0 start 0 oe 0 lock 0 if eoc 0 next state st4 else next state st5 end st5 begin ale 0 start 0 oe 1 lock 0 next state st6 end st6 begin ale 0 start 0 oe 1 lock 1 next state st0 end default begin ale 0 start 0 oe 0 lock 0 next state st0 end endcase end always posedge clk or posedge reset begin XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 25 if reset begin current state 0 adda 1 end else current state next state end 数据锁存 always posedge lock begin q d end endmodule 本程序采用 case 多分支选择语句设计状态机 15 组合逻辑结构和时序逻 辑结构清晰 可读性强 可避免引入不必要的锁存器 同时也避免了毛刺和复 位等问题 简化了对应的硬件结构 16 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 26 图 4 3 采样控制模块功能仿真波形图 4 3 数据处理模块 ADC0809 是 8 位模数转换器 它的输出状态共有 256 种 如果输入信号 Ui 为 0 5V 电压范围 则每两个状态值为 5 256 1 约为 0 0196V 故测量分辨 率为 0 02V 常用测量方法是 当读取到 DB7 DB0 转换值是 XXH 时 电压 测量值为 U XXH 0 02V 本设计直接采用宏模块的参数化乘法器 lpm mult 和 参数化常数产生器 直接计算 U 的值 然后将八位二进制通过译码输出得到 12 位 BCD 码 17 LOCKA DATA 7 0 OUT 11 0 图 4 4 数据处理模块 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 27 8 位 2 进制转换 12 位 BCD 码程序为 module B ena binary bcd parameter SIZE 8 input binary ena output bcd wire ena wire SIZE 1 0 binary reg SIZE 1 0 bin reg SIZE 3 0 bcd reg SIZE 3 0 result always binary or ena begin bin binary result 0 if ena 0 bcd 4 result 3 0 result 3 0 4 d3 if result 7 4 4 result 7 4 result 7 4 4 d3 if result 11 8 4 result 11 8 result 11 8 4 d3 result result 1 bin bin 1 end XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 28 result 0 bin B SIZE 1 bcd result end end endmodule 图 4 5 8 位二进制转换 BCD 码 图 4 6 8 位 2 进制转换成 BCD 码的功能仿真图 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 29 图 4 6 乘法宏模块图 4 4 扫描 显示模块 DATAIN 是数据处理模块输出的电压值的 BCD 码 SEL 是数码管的片选 信号 通过扫描分别输出四位电压值的 BCD 码 DATA 将 BCD 码译成相应的 7 段数码驱动值 送数码管显示 CLK CLR DATA 11 0 LED1 3 0 LED2 3 0 LED3 3 0 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 30 图 4 7 显示模块 3 进制计数模块 module count4 clk Q input clk output 2 0 Q reg 2 0 Q always posedge clk begin if Q 2 Q 0 else Q Q 1 end endmodule CLKQ 2 0 count4 图 4 8 3 进制计数器模块的符号 2 3 译码模块 module decode2 3 D Y input 2 0 D output 2 0 Y reg 2 0 Y always D begin case D 0 Y 6 b000001 1 Y 6 b000010 2 Y 6 b000100 default Y 6 b000000 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 31 endcase end endmodule D 2 0 Y 2 0 decode3 图 4 9 译码模块的符号 十进制计数器 module c10 clk d clr load out input clk clr load input 11 0 d output 3 0 out reg 3 0 out always posedge clk or negedge clr begin if clr out 0 else if load out d else if out 9 out 0 else out out 1 end endmodule CLK CLR D 11 0 LOAD OUT 3 0 图 4 10 10 进制计数器模块的符号 数码管显示源程序 XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 32 module decode0 a b c d e f g D output a b c d e f g input 3 0 D reg a b c d e f g always D begin case D 4 d0 a b c d e f g 7 b1111110 4 d1 a b c d e f g 7 b0110000 4 d2 a b c d e f g 7 b1101101 4 d3 a b c d e f g 7 b1111001 4 d4 a b c d e f g 7 b0110011 4 d5 a b c d e f g 7 b1011011 4 d6 a b c d e f g 7 b1011111 4 d7 a b c d e f g 7 b1110000 4 d8 a b c d e f g 7 b1111111 4 d9 a b c d e f g 7 b1111011 default a b c d e f g 7 b00000000 endcase end endmodule XXX 大学本科生毕业设计 基于 FPGA 的数字电压表设计 33 D 3 0 A B C D E F G decode 图 4 11 七段显示译码器模块的符号 图

温馨提示

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

评论

0/150

提交评论