基于FPGA的VHDL语言温度控制说明书.doc

上传人:h**** 文档编号:101465 上传时间:2018-07-06 格式:DOC 页数:48 大小:2.74MB
下载 相关 举报
基于FPGA的VHDL语言温度控制说明书.doc_第1页
第1页 / 共48页
基于FPGA的VHDL语言温度控制说明书.doc_第2页
第2页 / 共48页
基于FPGA的VHDL语言温度控制说明书.doc_第3页
第3页 / 共48页
基于FPGA的VHDL语言温度控制说明书.doc_第4页
第4页 / 共48页
基于FPGA的VHDL语言温度控制说明书.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、 1 基于 FPGA 的恒温控制系统 孵化器是一种最新的孵化禽蛋的机器,通过人工制造适合禽蛋孵化的恒温环境,来以较小的经济投入孵化禽蛋,通过调查,市面上的孵化器多数是以模拟电路的方式制造恒温环境 ,如下图 这种模拟电路控制在实际应用中很 难做到恒温控制,温度会在最终归的预设值附近上下浮动,影响禽蛋的孵化。而且,孵化器的温度设置也是模拟电路,这样是完全达不到精准的温度设置。通过学习 FPGA,我设想运用数字电路来对禽蛋孵化器内部温度进行控制,来实现可控,可调,温度恒定的禽蛋孵化器。 具体的设计框架如下 通过前向温度采集电路,采集当前孵化器内部的温度信号,将采集到的模拟信号通过ADC0809模数转

2、换芯片,转变为 FPGA 可控的数字信号, FPGA 芯片根据输入的当前实际温度,控制输出合理的数字信号,再由 DAC0832转换为模拟信号,输入到后向加热执行电路,2 以此来完成对整个孵化器的温度控制。整个系统中,带有温度传感器的前向温度采集电路作为系统的反馈环节,实时反映当前环境的具体温度,具体的电路图如下。 前向温度采集电路图 此电路设计以 AD590 作为温度触感器,通过添加相应的调节电阻,让温度与输出电压保持一个相对线性的关系 其中: W1R为调零电阻 2w为调满度电阻 最终得到的温度与输出电压的关系式为: 0U5T100模数转换芯片采用的是 ADC0809,具体的连接电路图如下 3

3、 IN0 IN7管角中任选一路作为前向温度采集电路的输入, VCC 与VREF同时接 +5V 电压,_VREF与 GND 接地, OUT1 OUT8数据输出端连接 FPGA, START,OE, EOC, ADDA-C 均连接 FPGA,根据 ADC0809的工作时序图,由 FPGA 给出相应的信号控制 ADC0809。 数模转换部分采用的是 DAC0832,具体连接图如下 DI0-DI7分别于 FPGA 的 8位数据输出端相连,因为 DAC0832工作在连续的负反馈电路中,故采 用直通的工作方式,将 WR1与 WR2直接与地相连, ILE 与 CS,Xfer 引脚均接至 FPGA,有 FPG

4、A 发送控制信号来控制 DAC0832的工作。输出引脚Iout1与 Iout2连接一个流压转换器,将输出的电流信号转换为需要的电压信号,并进行适当的放大。最后输出到孵化器的加热电路。 FPGA 模块控制 ADC0809的工作状态,并接收来自 ADC0809的数字信号,与键盘输入的预设信号进行比较后,将控制信息传送给 DAC0832,经由数模转换器转换后加在发热装置两端,对整个孵化器内部温度进行控制。整个的 FPGA 模块分为以下 几个部分; 分频模块: 4 由于外界的时钟源一般都较高,而 ADC0809以及键盘扫描模块需要的时钟频率较低,故需要对外界时钟源进行分频,这里外界输入时钟源为 20M

5、Hz,对其进行 64分频。波形仿真图如下: 从波形图可以看出, clk 每经过 64个脉冲, clk1跳转一次。分频模块工作正常; 统计报告图如下: 5 分频模块的 VHDL 文件见附录 1. 键盘模块: 键盘模块的脉冲输入来自分频模块。其中, 输入端口为两位二进制数,分别接两个按键,来对预设温度进行加减调控。输出有两个端口, xianshi 端口作为保留端口,存储着当前预设温度的数值,可外接显示设备。 zhi 端口为信息传送端口,其存储值为当前预设温度值经由采集电路温度 电压公式换算后的十进制数值。换算公式如下: 0U5T100例: 38摄氏度对应的 ADC0809输出数据为 5*38*25

6、6/100/5,得到十进制值为97; 波形仿真图如下: 6 图( 1) 图( 2) 图中, shuru( 1)为温度减按键, shuru( 0)为温度加按键,相应的预设温度对应相应的 ADC0809输出值,由图 2得,当预设温度为 38摄氏度时,对应换算后的 ADC0809输出数据为 97,与计算相符。键盘输入模块工作正常。 统计报告图如下: 7 键盘模块的 VHDL 文件见附录 2. ADC0809控制模块: 经查阅 资料, DAC0832需采用直通式,故,将 DAC0832的控制语句直接写在了 ADC0809的控制语句块内。 ile 为输出到 ADC0832的输入锁存允许信号, cont为

7、 ADC0832WR1,WR2,CS 等引脚。 Wendu 为预设温度的输入引脚。 din 为 ADC0809转换后的输出信号, dout 为受 FPGA 控制的输出到 DAC0832的控制信号。 clk8为来自为频器的时钟信号。 根据 ADC0809的时序图,总结出相应的状态转移图,一次来编写控制 ADC0809的VHDL 语 言 文 件 , 状 态 转 移 图 如 下 :8 具体波形仿真图如下: 波形仿真建立在预设温度为 38摄氏度的条件下。前面提到, 38摄氏度对应的ADC0809输出值为 97, VHDL 程序中设定,当 ADC0809输入值大于或等于 97时(当前温度大于或等于预设温

8、度), FPGA 输出到 DAC0832的控制信号为 0,即停止加热。当 ADC0809输入值小于 92(即 36摄氏度,与设定温度相差大于两度)时, FPGA输出到 DAC0832的控制信号为 255,即以最大功率加热。当 ADC0809输入值小于 92时,将会细分为 5个阶段,即以逐次递减 的功率加热。由图可知, ADC0809工作正常。 统计报告图如下: 9 ADC0809模块的 VHDL 仿真文件见附录 3. 最后,将三个模块运用元件例化语句连接在一块,并进行电路观察,生成相应的逻辑电路,如下图: 总体波形仿真如下图 10 波形分析: 刚开始, FPGAjia 置 1,预设温度逐渐增加,如下图 当温度到达 38摄氏度后停止增加,即将 38摄氏度作为预设温度,随后,观察FPGAin 与 FPGAout。当预设温度为 38摄氏度时,输入为 97时,对应输出为 0,当为 92时,对应输出为 5,当为 96时,对应输出为 1,当输入不在 92-97之间,输入大于 97时,输出为 0,输入小与 92时,输出为 255.观察上图波形仿真,完全符合程序设计。 后面给 FPGAjian 置 1,预设温度会随之降低。 统计报告图如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。