APP下载

基于FPGA的温度显示仪的设计

2019-05-30王宇

山东工业技术 2019年12期

王宇

摘 要:本文以K型热电偶作为温度传感器,配合MAX6675模块通过SPI协议将12位的温度数据传输到FPGA上,并在1602字符液晶屏上显示温度。利用Quartus II进行硬件语言的编写,并在ModelSim仿真软件中进行时序仿真,仿真波形验证了设计的正确性。

关键词:K型热电偶;MAX6675;SPI协议;FPGA

DOI:10.16640/j.cnki.37-1222/t.2019.12.136

0 引言

在工业生产中常用的温度传感器有数字式温度传感器和模拟式温度传感器,模拟式温度传感器由于其测量温度宽泛、测量精度高,在诸多领域里的使用越来越广泛[1]。本文设计了一款基于FPGA的K型热电偶温度显示仪,在此首先介绍了K型热电偶和MAX6675的电路结构和工作原理,并给出了基于FPGA的Verilog硬件描述语言的程序编写。最后通过ModelSim软件进行时序仿真,并将控制程序下载到DE2-115开发板上,试验结果验证了基于FPGA的K型热电偶温度显示仪设计的正确性与实用性。

1 K型热电偶和MAX6675的工作原理

K型热电偶在工作时,由于热端和冷端之间会存在温度差,从而导致冷热两段之间产生了电压差,这种电压差的存在会在感温线上形成一个大小相应的电流,这种现象称为热电效应(或热电现象)。热电偶就是利用这一原理将温度量值转换成电压差量值的传感器。如果K型热电偶的冷端温度保持恒定(比如为0℃),则输出的电压差值和热端温度值成一一对应的关系。

当MAX6675 的CS引脚从高电平变为低电平时,MAX6675 将停止任何信号的转换并在时钟SCK的作用下向外输出已转化的数据。相反,当CS从低电平变回高电平时,MAX6675将进行新的转换。在CS引脚从高电平变为低电平时,第一个字节D15将出现在引脚SO。一个完整的数据读过程需要16个时钟周期,数据的读取通常在SCK的下降沿进行。

2 系统硬件语言的设计

温度显示仪系统包括MAX6675控制模块、串并转换模块和LCD显示模块,系统的RTL视图如图1所示:

2.1 MAX6675控制模块

温度转换芯片MAX6675的输入时钟由外部提供,本文將输入FPGA的50MHz时钟二分频给sclk,其中CS为片选信号,拉低时,MAX6675停止转换,并将当前转换结果经由SO串行输出[2]。

2.2 串并转换模块

温度转换芯片MAX6675输出的是串行16位数据[3],其中D14-D3为12位温度数据。为了使LCD能实时显示温度信息,需要设计一个串并转换的模块,并将转换后的表示整数的10位二进制码转化为16位的BCD码,16位BCD码每4位就能表示0-9的数[4]。

2.3 LCD显示模块

本设计显示模块采用的是16x2 LCD 模组,LCD的模块的读与写、显示屏、地址配置、光标的操作都是通过指令编码来实现的,该模块采用状态机来实现设计。为了方便控制和便于理解,该模块采用状态机来实现设计。在模块设计中设置了8个状态,分别是起始状态clear、设置CGRAM状态setCGRAM、工作参数设置状态setfunction、显示参数设置状态setswitchmode、输入参数设置状态setmode、光标归位设置状态returncursor、字符移位设置状态shift、写RAM设置状态writeRAM,状态编码采用独热码方式[5]。

3 试验结果

本文的设计以DE2-115开发板为实验平台,该开发板选用Altera Cyclone IV 4CE115 FPGA芯片。设计经过ModelSim仿真无误后,下载到DE2-115开发板上,实验结果如图2所示,LCD能实时显示当前测量温度,满足设计指标要求。

4 结论

本文设计的温度显示仪能准确温度,实时显示。整体系统性能稳定、精度较高,达到了预期设计目标。试验结果表明,这是一种实用的测温仪设计方案,对一些需要以FPGA作为主控单元的温度采集系统有一定的参考意义。

参考文献:

[1]郭锐,徐玉斌.K型热电偶冷端补偿方案[J].仪器仪表学报,2006

,27(z1):331-333.

[2]樊恩东,陈湘萍.基于PID算法的温度实时控制[J].电子世界,2016(19):113-114.

[3]丁利辉.硅碳棒式加热炉的炉温控制系统设计[J].有色金属加工,2007,36(06):54-56.

[4]韩彬.FPGA设计技巧与案例开发详解[M].第2版.电子工业出版社,2016.

[5]数字系统设计与Verilog HDL[M].第6版.电子工业出版社,2016.