基于vhdl的数字电压表设计学士学位论文(编辑修改稿)内容摘要:

夹、设计项目名称和项目顶层文件实体名。 设计项目名称和顶层文件实体名可以相同,在多层次系统设计中,一般与设计项目同名的设计实体作为顶层文件。 本例以 shili为例。 图 建立新项目向导对话框 然后单机 Finish 按钮,完成设计项目的建立。 2)输入文本文件 输入文本文件的操作步骤如下: 选择菜单命令下的“ File— New”,弹出如图 所示的新建文件对话框。 选中 VHDL File,单击 OK 按钮,弹出一个无名称的文本编辑窗口,可以在此文本编辑窗口中输入VHDL 文件。 沈阳理工大学学士学位论文 8 图 新建文佳对话框 输入完成后,选择菜单命令:“ File— Save Project”,保存整个设计项目;或者选择菜单命令:“ File— Save”,保存当前设计文件。 注意保存文件名要和实体名一致。 Quartus II 设计仿真 1) 创建波形文件 选择菜单命令“ File— New— Vector Waveform File”,如图 所示,然后单击 OK按钮,就会出现一个无标题的波形编辑窗口,如图 所示。 沈阳理工大学学士学位论文 9 图 建立仿真波形文件对话框 图 新建仿真波形编辑窗口 2) 创建输入输出向量 创建输入输出向量操作步骤如下: 依次选择菜单命令“ Edit— Insert— Insert Node or Bus”,或者在向量编辑窗口空白沈阳理工大学学士学位论文 10 位置处(黑粗矩形框内空白位置)单击鼠标右键,在右键下拉菜单中选择“ Insert— Insert Node or Bus”,如图 所示。 图 仿真波形编辑窗口 Insert Node or Bus 对话框中提供了被添加 Node 或 Bus 的名称、类型、数值类型、数制类型和总线宽度等属性。 如图 所示 图 添加 Node 或 Bus 对话框 在图 中单击 ”Node Found”按钮,就会弹出 Node Found 对话框,如图 所示。 在“ Filter”栏中选择“ Pins: all”,单击“ List”按钮,可以发现“ Node Found”中列出了 文件中所有的输入输出向量。 可以通过“≥”、“ ”、“≤”及“ ”沈阳理工大学学士学位论文 11 4 个 按钮将 Node 添加到“ Selected Nodes”栏中或者从“ Selectede Nodes”栏中删除,“≥”和“≤”按钮只能对单个操作有效,“ ”和“ ”按钮对所有 Nodes 有效。 添加完成后,点击“ OK”按钮,在设置输入完成后,就可以仿真波形了。 图 仿真波形编辑窗口 沈阳理工大学学士学位论文 12 2 设计任务与要求 要求利用 FPGA 控制模块数转换器对外部输入的模拟信号进行采样,获取当前电压值,并在数码管上显示。 传统的数字电压表设计通常以大规模 ASIC(专用集成电路 )为核 心器件,辅以少量中规模集成电路及显示器件构成。 ASIC 完成从模拟量的输入到数字量的输出,是数字电压表的心脏,这种电压表的设计简单、精确度高,但是这种设计方法由于采用了 ASIC器件使得的它欠缺灵活性,其系统功能固定,难以更新扩展。 后来发展起来的微处理器(单片机)控制通用 A/D 转换器件的数字电压表的设计的灵活性有所提高,系统功能的扩展性变得简单,但是由于微处理机的引脚数量有限,其控制转换速度和灵活性还是不能满足日益发展的电子工业的需求。 而应以 EDA 技术及 FPGA,其集成度高、速度快、性能十分可靠、用户可自由编程 且编程语言通俗易懂、系统工程扩展非常方便。 采用FPGA 芯片控制通用 A/D 转换器可是速度、灵活性大大优于微处理器和通用 A/D 转换器构成的数字电压表。 1 能够实现一个通道的采样控制; 2 产生 ADC0809 工作所需的各种控制信号; 3 计算转换后的数字电压信号,并以 BCD 码方式表示。 沈阳理工大学学士学位论文 13 3 设计方案 方案一: 利用 ADC0809 作为电压采样端口, FPGA 作为系统的核心器件,用 LED 进行数码显示,把读取的 8 位二进制数据转换成便利于输出 3 位十进制 BCD 码送给数码管。 采用 FPGA 芯片作为系统的核心器件,负责 ADC0809 的 A/D 转换的启动、地址锁存、输入通道的选择、数据的读取。 同时,把读取的 8 位二进制数据转换成便于输出 3位十进制的 BCD 码送给数码管,以显示当前测量电压值。 这些工作由 ADC0809 转换控制模块、数据转换模块、译码模块完成。 图 数字电压表系统模块 方案二: 基于 VHDL 语言的系统设计是采用自顶向下的设计方法,将系统划分为多个功能模块,然后再逐个实现各个模块的功能,最终把他们组合在一起,形成一 个大的系统。 本系统共分为 6 个模块,分别为时钟分频( div_f)、数据采集控制( cs_control)、数据串转并( chuan2bing)、显示数值计算( data_calculate)、数码管扫描( led_select)、显示译码( led_translate)。 在设计中,主要采用分模块的方式,先实现各个模块,然后组成整个系统。 主要分为如下几个模块:时钟分频( div_f)、数据采集控制( cs_control) 、数据串转并( chuan2bing)、显示数值计算( data_calculate)、数码管扫描( led_select) 、显示译时钟 信号 start A/D 转换器 A/D转换控制模块 数据转换 模 块 译码模块 ale add oe eoc 数据输入 沈阳理工大学学士学位论文 14 码( led_translate)。 其中时钟分频主要用计数器实现,采样数据暂存于一寄存器。 利用TLC549 就可以采集外部模拟电压的大小并转换成数字信号,通过串行输入到控制器,经过控制器对数据处理如计算成实际电压、保留三位小数,再经过控制器设计的数码管控制模块控制四个数码管显示处理过后的数据,就实现了将外部电压值显示在数码管的功能,这样就实现了数字电压表的显示。 这里我们采用方案一。 沈阳理工大学学士学位论文 15 4 各器件的选择 A/D 转换器 ADC0809 控制电路 ADC0809 的功能介绍 利用 ADC0809 作为电压采样端口, FPGA 作为系统的核心器件,用 LED 进行数码显示,把读取的 8 位二进制数据转换成便于输出 3 位十进制 BCD 码送给数码管。 由 FPGA 设计的 ASIC 芯片: 一方面产生 ADC0809 的控制信号,控制 ADC0809 实现 0~5v 的模拟电压到 8 位数字量DB0~DB7 的变换; 另一方面将读入的数字量转化成电压工程值,并转换为 3 位 BCD 码的七段数字显示字符码送到 LED 数码管进行显示。 FPGA 构成的 ASIC 芯片中包括三部分电路: ( 1) 用有限状态机设计的 A/D 转换控制 电路; ( 2) 将 8 位数字量 DB0~DB7 转换为 3 位 BCD 码的电压值的转换电路; ( 3) 3 位 LED 显示器的译码显示电路 图 ADC0809 控制器的状态转换图 EOC=1 st0 st1 st2 st3 st4 0/0000 0/1100 EOC=0 EOC/ALE/START/OE/LOCK 0/0000 0/0011 沈阳理工大学学士学位论文 16 图 ADC0809 的引脚图 ADC0809 引脚介绍 ADC0809 芯片有 28 条引脚,采用双列直插式封装,下面说明各引脚功能。 IN0~ IN7: 8 路模拟量输入端。 D0~ D7: 8 位数字量输出端。 ADDA、 ADDB、 ADDC: 3 位地址输入线,用于选通 8 路模拟输入中的一路。 ALE:地址锁存允许信号,输入,高电平有效。 START: A/ D 转换启动脉冲输入端,输入一个正脉冲(至少 100ns 宽)使其启动(脉冲上升沿使 0809 复位,下降沿启动 A/D 转换)。 EOC: A/ D 转换 结束信号,输出,当 A/ D 转换结束时,此端输出一个高电平(转换期间一直为电平)。 OE:数据输出允许信号,输入,高电平有效。 当 A/ D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。 要求时钟频率不高于 640KHZ。 REF( +)、 REF( ):基准电压。 Vcc:电源,单一+ 5V。 GND:地。 ADC0809 芯片的控制方法及转换过程 控制 ADC0809 动作的信号有 : ALE,START,OE,EOC。 沈阳理工大学学士学位论文 17 首先输入 3 位地址,并使 ALE=1,将地址存入地 址锁存器中。 此地址经译码选通 8路模拟输入之一到比较器。 START 上升沿将逐次逼近寄存器复位。 下降沿启动 A/D 转换,之后 EOC 输出信号变低,指示转换正在进行。 直到 A/D 转换完成, EOC 变为高电平,指示 A/D 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。 当 OE 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送 A/D 转换后得到的数据应及时传送给单片机进行处理。 数据传送的关键问题是如何确认 A/D 转换的完成,因为只有确认完成后,才能进行传送。 为此可采用下述三种方式。 ( 1)定时传送方式 对于一种 A/D 转换器来说,转换时间作为一项技术指标是已知的和固定的。 例如ADC0809 转换时间为 128μ s,相当于 6MHz 的 MCS51 单片机共 64 个机器周期。 可据此设计一个延时子程序, A/D 转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 ( 2)查询方式 A/D 转换芯片由表明转换完成的状态信号,例如 ADC0809 的 EOC 端。 因此可以用查询方式,测试 EOC 的状态,即可确认转换是否完成,并接着进行数据传送。 ( 3) 中断方式 把表明转换完成的状态信号( EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时, OE 信号即有效,把转换数据送上数据总线,供单片机接受 [18]。 ADC0809 的动作大致分为 5 个步骤区间: S0, S1, S2, S3, S4。 每个步骤区间的动作方式如下: 步骤 S0:对 ADC0809 进行复位操作; 步骤 S1:由 FPGA 发出信号要求 ADC0809 进行 A/D 转换; 步骤 S2:转换后,转换完毕后的 EOC 将高电位降到低电位,而转换时间 100us; 步骤 S3:转换结束,有 FPGA 发出读命令; 步骤 S4: 有 FPGA 读取 DB0~DB7 上的数字转换资料,并锁存数据。 沈阳理工大学学士学位论文 18 BCD 码 BCD 码的介绍 8 位数字量 BD0~BD7 如何变成 3 位 BCD 码。 用 FPGA 实现乘除法是很耗资源的,因而,下面采用查表方法求取 BD0~BD7 与模拟输入电压 0~5v 的对应关系。 编一个查表程序,对上述电压进行 BCD 编码,然后根据对应的 4 位 BCD 码相加的结果决定是否进位,从而得到待处理数据的 BCD 码。 例如:从 AD0809 上 取得的数据位“ 11011110”,“ 1101”对应的电压值位 ,其对应的 BCD 编码为“ 010000010110”,“ 1110”对应的电压值为 ,其对应的 BCD 编码为“ 000000101000”。 低 4 位相加为“ 1110”,大于 9,加 6 将其调整为 BCD 码,其值为 0100,并且向前有一进位。 四位相加的结果为 0011,由于低位有进位,因此最终结果为 0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。