基于FPGA的自动温度采集控制系统设计

2018-09-06 10:57:51 来源:elecfans
标签:

随着当前工业控制自动化日益普及,对于工作环境中的温度控制也越来越重要。本设计即是针对某些需要持续恒温的特殊环境而设计的自动温度采集控制系统。该系统采用FPGA作为硬件核心部分,有效地利用FPGA在可编程门阵列方面的优点,最大限度的使硬件电路软件化,减少了可视硬件的规模,降低了硬件加工、布线以及元器件采购方面的成本与复杂性,从而降低了故障排查方面的繁杂性。使硬件电路简洁,降低了整体占用的空间。相对于其他的温度控制系统,具有小巧,维护维修方便的优点,大大的提高了可维护性,同时由于采用的元器件都比较常见,整体成本较低。因此很适用于一些小规模同时对温度精度要求不高的场合。

 

1 系统工作原理

通过传感器实现对外界环境温度的采集,并将采集到的温度信号传送给FPGA芯片,FPGA芯片能够自主地对采集的温度信号进行处理,并能通过LED显示当前温度,同时自动将采集到的温度信号与预设的温度进行比较得出正确的比较结果,通过I/O端口输出控制外围设备对环境温度进行控制,从而达到实时温度控制的目的。本设计中主要有温度采集模块、FPGA芯片模块、LED数字显示模块三部分,系统原理框图如图1所示。

 

 

通过FPGA编程来实现对温度传感器的实时温度数据采集,并且实时地处理采集到的数据,将采集到的数据转换为BCD码通过8段LED数码管显示出此前的温度。与此同时,采集到的数据将会与存储在芯片里的温度预设值比较,并自动产生比较结果,控制外围设备对被测空间的温度实施调节控制,从而达到恒温的目的,温度传感器采集出的温度数据通过二进制数组片选选择数据通过LED显示,选择的数据再与标准温度进行比较,温度过高降温处理、温度过低则升温处理。

 

2 主要功能模块的实现

控制模块如图2所示,其中两个PNP三极管的作用是在P1输出控制信号时起到开关作用,根据图中的三极管接法,当输出控制信号为低电平时,三极管通导,此时P2继电器中有电流通过,使其3和6引脚接通。设计中由于采用的三极管对电流的要求较高,而又由于继电器内部可以认为相当于是一个电感,因此在继电器刚刚上电的时刻,三极管发射极和集电极电流将会很大,很容易将三极管烧毁,因此加装稳压二极管D2,使继电器上电工作的时刻,瞬间电流通过二极管回路而不是通过三极管,就可以有效保护三极管不被烧毁。

 

 

外部输出信号为低电平时,p2回路导通,引脚6与引脚3有电流,p3导通开始工作,当温度过低时,灯泡点亮;当温度过高时,风扇工作。从而实现对温度的实时控制。

 

3 软件设计及仿真结果

本设计中采用FPGA芯片作为核心控制部分。在本设计中软件模块主要包括温度传感器控制及数据接收模块,温度数据处理模块,温度显示模块。

 

3.1 温度数据处理模块

传感器数据处理模块tempture的顶层电路图如图3所示,它的作用主要是将12位二进制的温度信号转换为用BCD码表示的3位十进制数,输入的12位温度信号中其中的高8位二进制代码转换为2组4位的BCD码,例如输入二进制码为“00010110”,代表十进制数为“22”,输出 BCD码为“00100010”对应的十进制数个位、十位均为“2”和“2”;然后将剩余的低4位二进制代码转换为4位BCD码,如输入二进制码为 “1110”,代表10进制数小数为“0.875”,若只取一位小数位,则取“8”,其BCD码可表示为“1000”。通过三个输出端口分别输出十位、个位和小数位。

 

 

对温度数据处理模块tempture-进行仿真测试。假定预设置输入温度二进制的代码为“000101111011”,则其对应十进制数应为:“23.6”。仿真结果如图4所示。

 

根据顶层原理图,a[3. 。 0]输出为温度数值的十位数,b[3..0]输出为温度数值的个位数,c[3..0]输出为温度数值的小数位。则仿真图中,shi、fen、ge三位输出的数字分别为“2”、“3”、“6”,仿真结果与预测转换结果一致。

 

3.2 温度显示模块

设计采用了4个8段式的LED数码管可以动态显示温度的百位、十位、个位与分位。下图为温度显示模块的顶层电路,由图可知,模块由片选模块、译码转换模块与计数器三者组成。片选模块主要由一个二进制计数器和四选一电路组成。

 

 

当系统工作时,先将二进制计数器在clk控制下依次连续产生4个两位二进制数组,来控制片选模块选择性的输出shi[3..0]、ge[3..0]、fen[3. 。 0]、bai[3. 。 0]四路输入信号中任意的一路。将选出的这一路输入信号交给译码转换模块,利用二进制计数器产生的连续二进制数组,可以控制译码器依次输出对应的4位二进制数组来依次点亮各个LED数码管。最后,可以在LED上显示出数字,读取结果。

 

对温度显示模块display进行软件仿真测试,设置输入shi[3..0]、fen[3..0]、ge[3..0]分别是“0100”、“0011”、“0010”,则其对应10进制数应为“43.2”。仿真结果如图6所示。

 

 

由仿真示意图可看出,片选信号由时钟信号控制循环变化,而对应输出的ledout端也依次输出shi,fen,ge,bai四个端口输入的数据,且输出的是8位LED数码管显示码,从图中可以读出,当片选信号为“0111”时,对应的输出信号ledout为“11000000”,即表示在数码管上的显示为 0,小数点不亮,表示百位为0;当片选信号为“1011”时,对应的输出信号ledout为“10011001”,在数码管上的显示为4,小数点不亮,表示十位为4;当片选信号为“1101”时,对应输出ledout为“10110000”,在数码管上的显示即为3,表示个位为3;当片选信号为 “1110”时,对应输出ledout为“00100100”,在数码管上的显示即为2,小数点点亮,表示小数位为2。动态扫描后可知,数码管上显示的内容即为“043.2”。与输入的数据相同,说明程序编写正确,系统运用良好。

 

4 测试数据

由表1数据显示,LED数码管上显示的温度与实际测量的温度,从表中可以得出,两者近似相等,误差在0%~0.58%之间,是可以接受的误差范围。表2是指设定了所需温度,记录温度变化的过程与实现这一目标所需的时间。例如第一次中,我们设定的温度为20℃,开始LED上显示的温度值为17.5℃,最后经过自动控制系统温度升高到20.2℃,这一过程共用时30分钟。误差也是存在的,误差在1%左右,也是可以接受的范围。

 

 

5 结束语

从测试结果上看,设计的主要目的已经达到,系统运行可靠,精度也已达到设计要求。但设计中仍存在一定缺陷,主要缺陷在于本设计中所使用的预设温度是固化在程序中,一旦系统开始工作,就不能再更改预设的温度,因此本系统比较适用于不会经常变更设置温度的场合。变更设置温度的场合。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
中国芯片国产替代成长性优于行业周期,2019年IC设计业产值依旧可期

根据全球市场研究机构TrendForce集邦咨询最新「中国半导体产业深度分析报告」指出,2018年中国IC设计产业产值达人民币2,515亿元,年增近23%。以营收排名来看,中国IC设计前三大企业为海思、紫光展锐与北京豪威。

意法半导体ST33安全芯片破10亿销量大关 为互联设备安全保驾护航

横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布ST33嵌入式安全IC的累计销量超过10亿片。

科技巨头纷纷加码人工智能芯片布局,Facebook、亚马逊、谷歌竞争激烈

近年来,科技巨头们似乎都意识到了未来人工智能的激烈竞争,纷纷加码人工智能芯片布局。

联发科5G基带芯片Helio M70通过5G吞吐量测试,将于今年下半年开始供货

联发科技今日宣布其5G调制解调器芯片 Helio M70 通过安立公司(Anritsu Corporation)MT8000A 5G测试仪, 实现了最大下行与上行链路吞吐量。Helio M70是唯一具有LTE和5G双连接(EN-DC)的5G调制解调器芯片,支持从2G至5G各代蜂窝网络的多种模式。

比特大陆第二代7nm芯片正式出炉,币圈寒冬不寒?
比特大陆第二代7nm芯片正式出炉,币圈寒冬不寒?

距离上一代7nm芯片发布不到半年,比特大陆第二代7nm芯片正式出炉,在币圈寒冬与众多谣言之中,这家低调的公司选择用实力说话。

更多资讯
PLC的面向对象编程实现方式

面向对象编程是计算机高级语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念就是类和类的实例(即对象),我们只需要使用这种概念就可以了。

ASIC项目瀑布式开发流程详解

最近收拾书架,翻出一张多年以前的ASIC项目开发流程图,一起回顾一下。

智能门锁不安全?工程师自己造了一个AI人脸识别门锁
智能门锁不安全?工程师自己造了一个AI人脸识别门锁

展示了AI如何在Ultra96和Intel Movidius NCS以及Tensorflow Inception Facenet上运行。 该项目可以扩展到使用面部识别来解锁,记录进出情况,打开不同的灯光场景。

芯片厂商营收整体看衰赛灵思却逆势增长34%,凭什么
芯片厂商营收整体看衰赛灵思却逆势增长34%,凭什么

赛灵思可编程芯片产品市场的不断增长推动它的发展壮大,5G网络的推出也是它继续前行的助推器。

使用Vivado HLS在ZYNQ-7000上开发OPENCV的教程

OPENCV(Open Source Computer Vision)被广泛的使用在计算机视觉开发上。使用Vivado HLS视频库在zynq-7000全可编程soc上加速OPENCV 应用的开发,将大大提升我们的计算机视觉开发。

电路方案