新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA的数字温度测量仪设计

基于FPGA的数字温度测量仪设计

作者:时间:2017-06-05来源:网络收藏

0 引言

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

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

本文引用地址:http://www.eepw.com.cn/article/201706/348911.htm

1 软件程序设计

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



1.1 分频模块

分频模块是设计项目中的基本模块之一。针对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 硬件电路设计

设计采用器件和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 FPGA

评论


相关推荐

技术专区

关闭