ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:502.30KB ,
资源ID:2980571      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2980571.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA温控风扇的设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FPGA温控风扇的设计.docx

1、FPGA温控风扇的设计温控风扇的设计摘 要温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能CPU风扇等。本文设计了基于XILINX FPGA温控风扇系统,采用FPGA作为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过继电器驱动风扇电机。采用热释电红外传感器,并根据检测到的温度与系统设定的温度的比较实现风扇电机的自动启动和停止,并能根据温度的变化自动改变风扇电机的转速,同时在LED数码管显示检测到的温度、设定的温度和转速。第一章 整体方案设计1.1前言随着人们生活水平及科技水平的不

2、断提高,现在家用电器在款式、功能等方面日益求精,并朝着健康、安全、多功能、节能等方向发展。过去的电器不断的显露出其不足之处。电风扇作为家用电器的一种,同样存在类似的问题。现在电风扇的现状:大部分只有手动调速,再加上一个定时器,功能单一。存在的隐患或不足:比如说人们常常离开后忘记关闭电风扇,浪费电且不说还容易引发火灾,长时间工作还容易损坏电器。再比如说前半夜温度高电风扇调的风速较高,但到了后半夜气温下降,风速不会随着气温变化,容易着凉。之所以会产生这些隐患的根本原因是:缺乏对环境的检测。如果能使电风扇具有对环境进行检测的功能,当房间里面没有人时能自动的关闭电风扇;当温度下降时能自动的减小风速甚至

3、关闭风扇,这样一来就避免了上述的不足。本次设计就是围绕这两点对现有电风扇进行改进。1.2系统整体设计本设计的整体思路是:以XILINX FPGA作为控制中心,通过提取热释电红外传感器感应到的人体红外线信息,并利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给FPGA进行处理,在LED数码管上显示当前环境温度值以及预设温度值。通过独立键盘输入预设温度值,其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。同时采用PWM脉宽调制方式来改变直流风扇电机的转速。并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。系统结构框图如下:1.3方案论证本设计

4、要实现风扇直流电机的温度控制,使风扇电机能根据环境温度的变化自动启停及改变转速,需要比较高的温度变化分辨率以及稳定可靠的换挡停机控制部件。1.3.1 温度传感器的选择在本设计中,温度传感器的选择有以下两种方案:方案一:采用热敏电阻作为检测温度的核心元件,并通过运算放大器放大,由于热敏电阻会随温度变化而变化,进而产生输出电压变化的微弱电压变化信号,再经模数转换芯片ADC0809将微弱电压变化信号转化为数字信号输入FPGA处理。方案二:采用数字式的集成温度传感器DS18B20作为温度检测的核心元件,由其检测并直接输出数字温度信号给FPGA进行处理。对于方案一,采用热敏电阻作为温度检测元件,有价格便

5、宜,元件易购的优点,但热敏电阻对温度的细微变化不太敏感,在信号采集、放大以及转换的过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其自身电阻对温度的变化存在较大误差,虽然可以通过一定电路来修正,但这不仅将使电路变得更加复杂,而且在人体所处环境温度变化过程中难以检测到小的温度变化。故该方案不适合本系统。对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差变得很小,并且由于其检测温度的原理与热敏电阻检测的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于该温度传感器采

6、用先进的单总线技术,与FPGA的接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。1.3.2 调速方式的选择方案一:采用数模转换芯片DAC0832来控制,由FPGA根据当前环境温度值输出相应数字量到DAC0832中,再由DAC0832产生相应模拟信号控制晶闸管的导通角,从而通过无级调速电路实现风扇电机转速的自动调节。方案二:采用FPGA软件编程实现PWM(脉冲宽度调制)调速的方法。PWM是英文Pulse Width Modulation的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在PWM驱动控制的调节系统中,最常用的是矩形波PWM信号,在控制时需要调

7、节PWM波得占空比。占空比是指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大 2。对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。 对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM 用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥FPGA的功能,对于简单速度控制系统的实现提供了一种有效的途径。综合考虑选用方案二。第二章 各单元模块的硬件设计系统主要器件包括热

8、释电红外传感器、DS18B20温度传感器、XILINX FPGA、LED共阴数码管、风扇直流电机。2.1系统器件简介2.1.1 DS18B20单线数字温度传感器简介DS18B20数字温度传感器,是采用美国DALLAS半导体公司生产的DS18B20可组网数字温度传感器芯片封装而成,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。适用于各种狭小空间设备数字测温和控制领域。DS18B20的主要特征:测量的结果直接以数字信号的形式输出,以“一线总线”方式串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;温度测量范围在-55+

9、125之间,在-10+85时精度为0.5;可检测温度分辨率为912位,对应的可分辨温度分别为0.5,0.25,0.125和0.0625,可实现高精度测温;它单线接口的独特性,使它与微处理器连接时仅需一条端口线即可实现与微处理器的双向通信;支持多点组网功能,即多个DS18B20可以并联在唯一的三线上,实现组网多点测温的功能;工作电压范围宽,其范围在3.05.5V3。DS18B20内部结构主要有四部分:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管脚有三个,其中DQ为数字信号端,GND为电源地,VDD为电源输入端。 (电原理图如右图)2.1.2 热释电红外线传感器原理

10、简介人体辐射的红外线中心波长为 910um,而探测元件的波长灵敏度在 0.220um 范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为 710um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。 实质上热释电传感器是对温度敏感的传感器。它由陶瓷氧化物或压电晶体元件组成,在元件两个表面做成电极,如图2所示。在环境温度有T的变化时,由于有热释电效应,在两个电极上会产生电荷Q,即在两电极之间产生一微弱的电压V。2.1.3 风扇电机控制模块电路图:2.1.3 蜂鸣器以及按键模块电路图如

11、下: 第三章 软件设计程序设置程序设计部分主要包括主程序、DS18B20模块、风扇电机控制模块、热释电红外线传感器模块以及蜂鸣器模块。DS18B20模块完成对DS18B20的初始化,对环境温度的实时采集、主机对温度传感器数据的读取及数据换算以及包含了温度对数码管的输出;风扇电机控制函数则根据按键值以及温度的数值完成对电机转速及启停的控制;热释电红外线传感器模块完成对人体是否存在进行检测,并将信号送到电机模块使能端入口;蜂鸣器模块对按键进行提醒。主程序流程图如图:顶层模块:module top(clk,rst,icdata,dclk,dlk,dain,drst,key,moto,led,sc2)

12、;input clk;inout icdata;input rst;input 1:0key;output dclk;output dlk;output dain;output drst;output moto;output 2:0led;output sc2;wire 1:0jieguo;wire 1:0duty_cyc;counter counter( .clk(clk), .rst(rst), .icdata(icdata), .dclk(dclk), .dlk(dlk), .drst(drst), .dain(dain), .jieguo(jieguo), .duty_cyc(duty

13、_cyc) );dianji dianji( .clk(clk), .key(key), .wd(jieguo), .moto(moto), .led(led), .duty_cyc(duty_cyc) );fengmingqi fengmingqi( .clk(clk), .rst(rst), .key(key), .sc2(sc2) );endmodule DS18B20模块:这里我们采用12 位分辨率,DS18B20在 750ms 内把温度值转换为数字,实现高精度测温。根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18

14、B20 进行复位操作,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。流程图如下:Verilog代码如下:module DS18B20(nReset,clk,data,icdata);/nReset是复位端;data是输出温度数据;icdata是总线input nReset,clk;output 15:0 data;inout icdata;wire a,

15、b;yu u3( .temperature(data), .one_wire(icdata), .rst_n(nReset), .clk(clk) ); endmodule module yu( input clk, / 50MHz时钟 input rst_n, / 异步复位 inout one_wire, / One-Wire总线 output 15:0 temperature / 输出温度值 ); /+ / 分频器50MHz-1MHz 开始 /+ reg 5:0 cnt; / 计数子 always (posedge clk, negedge rst_n) if (!rst_n) cnt = 0; else if (cnt = 49) cnt = 0; else cnt

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1