DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1124|回复: 0
打印 上一主题 下一主题

[待整理] 基于FPGA的数字温度测量仪设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 16:43:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
0 引言

温度作为一种最基本的环境参数,与人民的生活有着密切关系。温度的测量和控制在工业、农业、国防、医疗等各个领域中应用普遍。温度测量仪是利用物质各种物理性质随温度变化的规律,把温度转换为电量并显示的一种仪器,有着广泛的适用范围。

本文利用FPGA器件与DS18B20温度传感器设计实现了一种数字温度测量仪,用于检测室温。与其它系统相比较,此测量仪具有结构简单、抗干扰能力强、精确性高、转换速度快、扩展性好等优点。
1 软件程序设计

根据系统的设计要求,将程序部分设计分为5个模块,包括分频模块、DS18B20通信模块、控制模块、数制转换模块、显示模块,如图1所示。利用VHDL语言在QuartusII开发平台上完成程序设计。



1.1 分频模块

分频模块是FPGA设计项目中的基本模块之一。针对50MHz的时钟频率进行分频产生1MHz频率信号,分频模块如图2所示。

系统提时钟信号进入分频模块clock引脚,经过分频后得到信号从clk 1m输出。分频模块仿真结果如图3所示。
由图3可知,输入端的50MHz时钟信号被50分频后得到输出端的1MHz信号。

1.2 DS18B20通信模块

图4中时钟clock为输入端口,DS18820数据总线口dq[0..0]为双向端口,使能端enable为输出端口,led[11..1]为测试时的指示端口,在实际操作中无需接出。

DS18B20采用一根I/O总线读写数据,因此它对读写数据位有严格的时序要求,如图5所示。

从分频模块的clk_1m输出1MHz到通信模块的clock作为时钟信号;根据DS18B20所遵循的初始化时序、读时序、写时序等通信协议将程序完成;将获取的12位的温度信号传送给下一个模块。

1.3 控制模块

通过控制模块,将从DS18B20读取的二进制温度信息传给数制转换模块,如图6所示。

程序中设定了三个状态(清除clear、使能enable、显示display),当ena为‘1’时,状态从显示转到清除;ena为‘0’时,状态一直为显示,把输入数据win[11..1]从输出端口wout[11..1]输出到下一模块,之间的转换关系如图7所示。

控制模块仿真结果如图8所示。

图8中,clock输入为1 MHz信号,经过500分频后,得到频率为1kHz的信号clk lk,此时累加器cnt0为‘0’。当cnt0为‘1’时,系统状态由原来的清除状态转变为使能状态,此时enb为‘1’,cnt0进行累加;当cnt0=‘1’时,系统状态从使能状态转变到显示状态,系统就把win[11..1]输入的数据通过wout[11..1]输出到下一模块。

1.4 数制转换模块

利用数制转换模块将输入的11位二进制的温度数据转换为3位十进制表示,如图9所示。

图9中,clear为清零输入端口,enable为使能输入端口,indata[11..1]为数据输入端口,b1『3..0]、b2[3..0]、b3[3..0]为三个输出端口。如果clear输入信号为‘1’时,程序将清除暂存寄存器中数据;反之则不清除。enable输入信号出现上升沿时,程序开始进行数制转换,并通过b1[3..0]、b2[3..0]、b3[3..0]端口将得到的十进制数输出到相应的显示模块中。数制转换模块仿真见图10。

由图10知,输入数据为“010011 10000”,clear端为低电平,当enable信号有上升沿时,数据开始转换。转换后数据为b1=0、b2=9、b3=3,符合设计值。

1.5 显示模块

从数制转换模块输出的十进制数接入到显示模块中,将其译码为七段值,输出到共阴数码管上显示,模块如图11所示。

由图12可知,当输入为0时,输出为“1111110”;当输入为1时,输出为“0000110”;当输入为2时,输出为“1101101”;当输入为3时,输出为“1111001”等,在七段数码管上正好显示相同数字,表明所编写的程序正确。


1.6 总体电路框图

整体电路图如图13所示。

输入50MHz信号接入分频模块的clock端口,经过分频后的信号输入到DS18B20通信和数制转换模块的clock端,作为模块的时钟信号。DS 18B20将测得的温度数据传给控制模块的win[11..1],通过数制转换模块将数据转换为3位十进制表示,最后利用显示模块译码后由共阴数码管显示。
2 硬件电路设计

设计采用FPGA器件和DS18B20实现温度测量仪,FPGA电路板主要由FPGA器件、时钟电路、下载电路、电源电路、显示电路、指示灯和按键等构成。核心芯片采用ALTERA公司生产的CycloneII系列EP2C5T144C8芯片。在设计温度传感器部分时,由于DS18B20进行精确转换时需要I/O引脚保持大电流供电,这样对FPGA芯片引脚造成很大压力,所以要使DS18B20的VDD引脚接外部电源。电路框图如图14所示。


3 下载调试


选择下载FPGA芯片为EP2C5T144C8,在菜单中选择Pins项设定引脚,在弹出的窗口中设置好各个输入输出端与硬件相对应的引脚,并编译通过。

将FPGA的下载数据线一端连接FPGA电路板,一端接计算机USB口,在命令栏里Programmer项,在弹出的窗口中选择Hardware Setup,确认计算机已与DE2板连接好后,点击Start开始下载运行。

连接好DS18B20温度传感器电路,即可测量室内温度,实物电路图如图15所示。由实测知,当前室温为24.2℃。
4 结束语

本文利用FPGA与DS18B20设计并实现了一种用于检测室温的简易的数字温度测量仪。在QuartusII开发平台上,利用VHDL语言完成软件程序设计,并完成硬件电路板设计,最后下载验证。实现的测量仪具有结构简单、测量精确性高、使用方便、扩展性能好的优点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-2 04:46 , 耗时 0.120633 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表