基于vhdl语言的数据采集系统_毕业设计论文(编辑修改稿)内容摘要:
来解决生活中的 一些小问题。 在电子系统非常广泛应用领域内,到处可见到 对信号进行模数 /数模转换 的数字电路。 在 ABS 系统(汽车防抱制动系统)、计算机技术、 GPRS 环抱系统、工业自动控制系统等系统中,数据采集系统都有着举 足轻重的作用 [5]。 数字技术及计算机技术的发展使得系统的设计更理想化,以实现更多的功能。 同时,还进一步提高了系统的可靠性和工作效率。 数据采集系统的设计思路 系统主要实现以下功能: 数据采集控制系统是对生产过程或科学实验中各种物理量进行实时采集、测试和反馈控制的闭环系统。 它在工业控制、军事电子设备医学监护等许多领域发挥着重要作用。 本设计要求用一个 CPLD/FPGA、模数转换器 ADC 和数模转换器 DAC 构成了一个数据采集系统,并用 CPLD/FPGA 实现数据采集中对 A/D 转换、数据运算、 D/A 转换以及有关据 显示的控制。 系统的组成框图如图 ,其功能如下: ( 1)、系统按一定速率采集输入电压 U1,经 ADC0809 转换为 8 位数字量 DATA。 (2)、输入数据与通过预置按键输入数据采集控制器内的标准数据相减,求得带极性位的差值177。 U(数字量 );差值之绝对值送至 DAC0832 转换为 U,它和特定的极性判别电路共同输出177。 U。 (3) 数据采集和处理均在数据采集系统控制器的管理下有序进行。 工作速率由时钟信号 CLK 的速率决定。 用 VHDL 语言设计数据采集系统 第 11 页 共 38 页 图 系统组成框图 编译和仿真时 要选择合适的芯片,不同的芯片其速度等级是不一样的。 选择速度等级高的芯片,仿真时延就小,这样便于分析时序波形。 否则,将给时序分析带来一些不必要的麻烦。 编译结束时,要注意认真分析芯片资源的利用情况,这其中主要包括芯片管脚和逻辑单元的利用率.如果没有充分利用资源就要重新选择芯片,争取实现性价比的最大化。 所以大致流程是 先进行 主程序的 输入 /输出模块,数据处理及监控模块的设计。 然后 对各程序进行修改、编译、仿真,并对出现问题的程序进行程序修改和调试。 数据输入模块 数据输入单元设计 数据输入单元的设计是通过 ADC0809 的常规应用来实现的,其具体的实现如图 所示。 其中 ADC0809 的 CLOCK 信号是由外部输入的。 此信号的输入没有固定的要求,只要足够高就可以了,通常信号频率为 640KHZ、 750KHZ 等。 ADC0809 的 START 信号也是由外部接入的,但是此信号的频率不宜过高,要小于 1KHZ。 将 ADC0809 的输出作为 FPGA的输入。 ADC0809 是一种比较典型的 8位 8通道逐次逼近式 A/D 转换器 CMOS 工艺,可实现 8路模拟信号的分时采集,片内有 8路模拟选通开关, 以及相应的通道地址锁存用译码电 CPLD/FPGA数据采集控制器 DAC0832 ADC0809 U1 DOUT U 开关和控制键 F 8. 8 8 CLK ADDA ALE CE START EOC DATA 用 VHDL 语言设计数据采集系统 第 12 页 共 38 页 路,其转换时间为 100μs 左右,采用双排 28 引脚封装。 ADC0809 的工作过程是:首先输入 3位地址,并使 ALE=1,将地址存入地址锁存器中。 此地址经译码选通 8路模拟输入之一到比较器。 START 上升沿将逐次逼近寄存器复位。 下降沿启动 A/ D 转换,之后EOC 输出信号变低,指示转换正在进行。 直到 A/ D 转换完成, EOC 变为高电平,指示 A/ D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。 当 OE 输入高电平 时,输出三态 门打开,转换结果的数字量输出到数据总线上。 其引脚说明如下: IN0~ IN7: 8路模拟量输入通道 ADDA~ ADDC:地址线用于选择模拟量输入通道 ALE:地址锁存允许信号 START:转换启动信 号 D0~ D7:数据输 出 线 OE: 输出允许信号,低电平允许转换结果输出 CLOCK: 时 钟信号输入引脚,通常使用 500KHz EOC:转换结束信号,为 0代表正在转换, 1代表转换结束 Vcc:+ 5V电压 ADC0809 接线图 此电路图主要实现将八路输入模拟信号转换为数字信号,为数据处理及监控模块提供输入信号。 CLK START OE IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 ADDA ADDB ADDC ALE GND VOC D0 D1 D2 D3 D4 D5 D6 D7 EOC REF+ REF +5V 17 D0 14 D1 15 D2 8 D3 18 D4 19 D5 20 D6 21 D7 7 D25 12 VCC 16 13 A0 25 A1 24 A2 23 ADCALE 22 26 27 28 1 2 3 4 5 R48 10K R47 10K +5V ALE ADCALE ADCOE ADC0809N 用 VHDL 语言设计数据采集系统 第 13 页 共 38 页 图 ADC0809 接线图 模块功能实现 此 系统是用 ADC0809 对模拟信号进行采样,转换为数字信号,由可编程逻辑器件读入,再送到 DAC0832,将数字信号转换为模拟信号。 用可编程逻辑器件实现对 ADC0809的控制,由 于采用查询信号 EOC 的方式,所以可达到 ADC0809 的最高速度(注: ADC0809和 DAC0832 都不能对负电压进行操作)。 主要包括分频模块和 ADC 控制模块。 总体框图如图 所示:图中 OE为 输出允许信号, 高 电平允许转换结果 输出 ; EOC 为 转换结束信号,为 0 代表正在转换, 1代表转换结束 ; DIN[7..0]为八路模拟量输入通道; DOUT[7..0]为转换后的八路数字信号输出通道。 图 总体框图 数据采集系统各模块分析 A/D 转换控制模块 ADZHKZ 的设计 ADC0809 模数转换的控制 : ADC0809 是 CMOS 的 8 位 A/D 转换器,片内有 8 路模拟开关,可控制 8 个模拟量中的一个进入转换器中。 ADC0809 的分辨率为 8 位,转换时间约 100 μ s,含锁存控制的8 路多路开关,输出由三态缓冲器控制,单 5 V 电源供电。 图 ADC0809 的管脚及主要控制信号时序图。 用 VHDL 语言设计数据采集系统 第 14 页 共 38 页 图 ADC0809 的管脚及主要控制信号的时序图 对于 ADC0809 模数 转换的控制程序段的 VHDL 设计,根据 ADC0809 的 A/D 转换控制要求,我们可用一个状态机来实现,其状态转换如图 所示。 图 ADC0809 工作时的状态转换图 转换后数据的 BCD 码转换处理 : 表 是在 ADC0809 的基准电压 (Vref)为 V 时,模拟输入电压与输出电压的对应关系其中最小电压准位是 5/28=5/256= V。 这样,当由 ADC0809 的 D[7..0]收到的数据信号是 10000110(即 86H)时,则对照表 时,高 4位 1000是 V,而低 4 位 0110 是 V,所以最后的电压输出结果是 V+ V= V。 表 ADC0809 模拟输入电压与输出电压的对应关系 进 制 参考电压( Vref)为 5V 16 2 高 4 位电压 低 4位电压 0 0000 2NI 1NI 0NI ADDA BDDA CDDA ELA 0D 1D 2D 3D 7D FER 5D 3NI 4NI 5NI 6NI 7NI TRAST COE 4D EO KLC CCV +FER 6D DNG ADC0809 ST0 ST1 ST2 ST3 ST6 ST5 ST4 ALE=’0’START=’0LOCK=’0’ CEN=’0’ ALE=’1’START=’0’ OE=’0’ LOCK=’0’ CEN=’0’ ALE=’0’START=’0’ OE=’0’LOCK=’1’ CEN=’0’ EOC=’0’ EOC=’1’ ALE=’0’START=’0’ OE=’1’LOCK=’0’ CEN=’1’ ALE=’0’START=’1’OE=’0’LOCK=’0’ CEN=’0’ CEN=’0’ ALE=’0’START=’0’ OE=’0’LOCK=’0’ CEN=’0’ ALE=’0’START=’0’OE=’0’LOCK=’0’ CEN=’0’ 用 VHDL 语言设计数据采集系统 第 15 页 共 38 页 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 图 BCD 加法示意图 为了方便后续的 电压数据显示,我们应将输出电压表示成 12 位的 BCD 码形式。 如上述的 V 是 0010 0101 0110, V 是 0000 0001 0010,所以相加的结果 V是 0010 0110 1000,因此必须设计一个 12位的 BCD 码加法程序。 图 += 的二进制的 BCD 加法示意图。 从图中可以看出,二进制BCD 码相加时,由最低位 4位加起,且每 4位相加的结果超过 10 时需作进位操作。 A/D 转换控制模块 ADZHKZ 的 VHDL 源程序 : 图 A/D 转换控制模块符号 编辑文件 进位 1 0010 0101 0110 + 0000 0001 1000 0010 0111 0100 用 VHDL 语言设计数据采集系统 第 16 页 共 38 页 LIBRARY IEEE。 USE。 USE。 ENTITY ADZHKZ IS PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 0809 的 8 位转换数据输出 RST: IN STD_LOGIC。 复位信号 CLK: IN STD_LOGIC。 转换工作时钟信号 EOC: IN STD_LOGIC。 0809 的转换结束控制信号 ALE: OUT STD_LOGIC。 0809 的通道选择地址锁存信号 START: OUT STD_LOGIC。 0809 的转换启动控制信号 OE: OUT STD_LOGIC。 0809 的输出使能控制信号 ADDA: OUT STD_LOGIC。 0809 的通道选择控制信号 BCDOUT: OUT STD_LOGIC_VECTOR(11 DOWNTO 0)。 来自 0809 的数据经 BCD 转换后的输出 )。 END ENTITY ADZHKZ。 ARCHITECTURE ART OF ADZHKZ IS TYPE STATES IS (ST0, ST1, ST2, ST3, ST4, ST5, ST6)。 SIGNAL CURRENT_STATE, NEXT_STATE: STATES。 SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL LOCK0, LOCK1: STD_LOGIC。 转换后数据输出锁存时钟信号。基于vhdl语言的数据采集系统_毕业设计论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。