APP下载

基于STM32的无线温度采集系统设计

2016-06-17贾利娜李云红姚韵

电脑知识与技术 2016年11期

贾利娜++李云红++姚韵

摘要:为了克服工农业生产过程中温度检测环境范围大等困难,设计了基于STM32的无线温度采集系统。系统以STM32F103RBT6为核心控制器,利用DS18B20温度传感器进行温度采集,利用nRF24L01无线收发装置进行无线传输温度数据。设计了温度采集系统实现方案框图并介绍了温度采集系统软件实现思路。数字型温度传感器DS18B20的使用提高了温度采集系统的精度和抗干扰能力,并且简化了外围电路。

关键词:STM32;DS18B20;nRF24L01;温度采集

中图分类号:TP274 文献标识码:A 文章编号:1009-3044(2016)11-0209-03

Abstract: In order to overcome difficulties of a wide range of the detected ambient temperature environment during the industrial and agricultural production, the wireless temperature collection system based on STM32 is designed. The system uses the STM32F103ZET6 as the core controller and uses the DS18B20 temperature sensor for temperature data collection , uses the nRF24L01 wireless transmitters to transmit temperature data. The diagram of the temperature acquisition system is designed and implementation idea of software of the temperature acquisition system is introduced. Digital temperature sensor DS18B20 is used to improve the accuracy and anti-jamming capability of the temperature acquisition system, and simplifying the peripheral circuits.

Key words: STM32;DS18B20;nRF24L01;Temperature collection

1概述

在工农业生产过程中,温度是重要的参数之一,与生产效益、产品质量、安全生产等息息相关,因此对温度采集进行研究具有重要意义。在文献[1]中,贾云峰等人提出了一种无线传输的温度采集系统的设计,系统采用无线装置有效地进行温度采集,使用灵活方便,但由于采用的是PT1000铂热电阻模拟温度传感器,需要进行信号调理电路的设计,增加了设计的难度,系统采用的模/数转换器为AD7705,不利于提高精度,本文采用的是DS18B20数字型温度传感器[2-3],能有效地解决之上提出的问题;在文献[4]中,杨丹丹等人提出了基于单片机的温度采集系统1设计,系统采用的是89C51单片机,单片机引脚较少,不利于系统进行扩展,并且单片的处理能力较STM32低,本文采用STM32作为核心控制器芯片[5],可以有效提高系统的处理能力和执行效率。此设计结合使用nRF24L01[6]设计了一套无线温度采集系统,测量准确快速,为生产打下了良好的基础。

2系统总体设计

无线数据传输系统包括点对点传输、点对多点传输和多点对多点传输。本文设计了一个点对多点的无线温度采集系统,由一个上位机和10个下位机组成。系统是以STM32f103RBT6为核心控制器芯片,采用DS18B20数字型温度传感器,以nRF24L01芯片为无线收发装置。温度采集系统主要包括发送端和接收端两部分。系统总体设计框图如图1所示:

3硬件设计

3.1控制器的选择

核心控制器采用的是STM32F103RBT6芯片,此款芯片采用高性能、低成本、低功耗的ARM Cortex-M3?32位RISC内核,在72MHz的频率操作,具有高速的嵌入式存储器(闪存和SRAM多达128字节和20字节),增强的I/O外设和两个APB总线。所有器件提供两个12位ADC,三个通用16位定时器和一个PWM定时器,以及拥有先进的、标准的通讯接口:有两个I2C接口和SPI接口,三个串行外设接口,一个USB和一个CAN接口。STM32F103RBT6工作于2~3.6V电源,功耗为36mA,而待机时只有2μA,是32位市场上功耗非常低的产品。工作时的温度范围为-40℃~85℃,完全可以满足温度采集现场的要求。

3.2 DS18B20介绍及温度采集电路设计

DS18B20是美国DALLAS半导体公司生产的ON-BOARD专利技术的数字型温度传感器,具有硬件开销低,体积小、精度高、抗干扰能力强等特点。测量温度范围为-55~+125℃,精度为±0.5℃,测温分辨率为0.1℃,用户可自定义非易失性的报警上下限值。通过编程可实现9~12位的数字读数方式。设计中采用DS18B20可以省去复杂的模数转化,使设计变得更加智能、便捷,并且DS18B20在恶劣的环境下稳定性、精度也都很高。

本文设计的是10路温度采集系统,由于每一路温度采集电路均相同,所以仅对其中一路进行介绍。由于DS18B20是1-wire总线接口器件,因此它与STM32的硬件接口十分简单,只需占用STM32的一个双向的I/O口,其接口电路如图2所示。当温度采集电路工作时,由程序来读取温度传感器DS18B20采集到的温度数据,之后发送到STM32进行处理。温度传感器DS18B20的输入输出引脚连接到STM32的PA3引脚上。单总线接口器件需要接一个大约4.7kΩ左右的上拉电阻,当总线空闲时,使其状态为高电平。

3.3 无线传输模块

在本文中,无线传输模块采用的是nRF24L01芯片,该芯片具有全球开放的2.4G的ISM频段,可以免许可证使用;最高速率可达2Mbit/s,抗干扰能力强并且具有高效的GFSK调制;具有125个可供选择的频道,可以满足调频通信和多点通信的需要;内部具有点对多点通信地址控制和CRC错检;在1.9V-3.6V低电压段工作;可以设置自动应答模式,使得数据可以进行可靠传输。nRF24L01芯片与STM32的接口电路非常简单,使用SPI接口就可以实现与STM32之间的通信,配置方便易行,最大的SPI速度可以达到18MHz。

3.4 系统复位

复位电路中的外部看门狗电路是以STWD100作为核心芯片,使得系统具有很强的电磁兼容性能,可以有效地防止程序“跑飞”,提高了系统的可靠性。复位电路工作在温度采集系统上电或复位的过程中,控制CPU的复位状态,防止CPU发出错误的指令、执行错误的操作。

4 软件设计

4.1 系统软件设计

简单的外围电路的搭建还无法做到设计的要求,还需要进行软件部分的设计才能实现温度采集的功能。温度采集系统的软件设计是以STM32为基础,利用模块化程序设计的思想,通过主程序调用的方式实现温度采集系统的各个功能。模块主要包括温度采集模块、显示模块、报警模块等。结构模块化思想的使用使得编程思路清晰明确,并且方便对系统进行修改和扩展。软件开发过程是在支持STM32的开发平台Keil μVersion5.0上进行的。在Keil μVersion5.0开发平台上可以进行程序编译、下载、调试和模拟等。程序的设计采用C语言,程序结构清晰明了。温度采集系统的主程序流程图如图3所示:

温度采集部分是整个系统的核心部分,能否很好地进行温度值的采集是实现系统功能的关键。温度采集部分的软件设计实现了温度采集,数据处理,数据保存等功能,DS18B20传感器读取温度值的程序流程图如图4所示:

报警模块是将采集到的温度值与预先设定的温度值进行比较,若发现采集到的温度值高于或者低于预先设定的报警值,则进行报警处理,并发出报警信号。如果采集的温度值在预先设定的温度值范围内,则正常进行温度采集。报警装置流程图如图5所示:

4.2 系统通信协议

上位机微处理器启动上位机和下位机之间的通信,在各个温度采集点,依次对10个温度传感器进行地址编号,上位机采用逐一查询的方式检测各个下位机有没有接收到通信请求,下位机采用中断的方式对上位机发送的地址信息进行处理。通信数据里面包含有各个下位机的地址,如果地址与下位机地址相符,下位机则执行命令。通信协议格式如表1所示。

5 结束语

本文设计了一个性能稳定、适用性强的温度采集系统,对目标区域的温度采集准确快速,节约了大量的人力、物力,具有很强的实用性。并且系统具有很好的移植性,可以用于仓库、机房、温室大棚等位置的温度采集,具有一定的推广价值。

参考文献:

[1] 贾云峰,付成伟.一种无线传输的温度采集系统的设计[J].现代电子技术,2015,38(24):136-138.

[2] 付艺豪,许建明,李忠.基于DS18B20的数字温度计设计[J].技术交流,2016(4):187-188.

[3] 颜丽娜.基于DS18B20测温系统的设计[J].机械与电子,2010(11):496-497.

[4] 杨丹丹,杨风,马慧卿.基于单片机的温度采集系统设计[J].山西电子技术,2014(3):19-21.

[5] 白建民. 基于STM32F103T6的温度控制系统设计[J].价值工程,2013(28):240-241.

[6] 陈锋. 基于nRF24L01的无线温度监测系统[J].工业控制计算机,2010,23(12):71-72.