您好, 访客   登录/注册

基于stm32的无线收发系统

来源:用户上传      作者:

  摘要:针对监测控制系统中对前端参数采集部分的设计需求,设计了基于STM32F030(采用ARMCORTEX-M0内核)处理器的多参数采集单元,采集单元可完成温湿度、气压等参数数据的采集和存储并通过无线模块NRF24L01实现数据的无线收发;单元配有按键及液晶显示器,便于查看当前参数数据。通过选取性价比高的数字传感器简化了电路结构并降低硬件成本,通过合理的软件程序设计进一步降低系统的功耗。经测试单元工作稳定,可实现参数的采集传输等功能。同时,采集单元方便移植,可应用于环境监测,工业数据检测,智能温室等监控系统中。
  关键词:STM32处理器;数据采集;无线通信;低功耗
  在现代监测控制系统中,获取前端参数数据至关重要,可以说参数采集是实现控制的基础。在工业自动化控制、农业生产自动化、环境质量监测、智能医疗监护等众多领域都离不开数据的采集和处理。本文设计了采用以32位处理器为核心的无线数据采集单元。选用ST公司的STM32F030处理器作为控制核心,单元集参数采集、数据存储与显示、无线转发为一体,采用电池供电且具有低电压告警功能。[1]
  1单元硬件电路设计
  数据采集单元的电路设计在满足基本功能的基础上按照低成本、低功耗的设计原则。在实际采集系统中,前端采集单元数量众多,硬件设计应尽量降低成本;另外,单元采用电池供电,为避免频繁更换电池,单元电路功耗设计要尽量低,以延长电池的使用时间。单元整体结构框如1所示。
  1.1 处理器
  单元选用ST(意法半导体)公司的STM32F030C8T6控制器作为处理器,STM32F030系列是意法半导体推出的超值系列32位微控制器,该系列芯片基于超低功耗的ARMCORTEX-M0处理器内核,其价格与8位微控制器相当,有丰富的外设数量和种类,内核频率高达48MHz。
  STM32F030内置高速12位ADC、先进且灵活的定时器(支持ADC同步、死时管理和电机控制PWM时序功能)、温度传感器、日历RTC和通信接口(如I2C、USART、SPI等)[2] 。因此,选用该处理器可以减少外围元件的数目、提高电路性能、降低系统的成本。
  设计中为了降低微处理器的功耗,可采用32.768kHz的晶体振荡器作为时钟,另外,STM32F030有3种低功耗模式,在完成数据采集任务后,处理器进入低功耗模式[3] 。
  1.1传感器
  传感器部分实现空气温湿度及大气压的数据检测,在具体应用中可以更换传感器类型实现不同参数采集。
  温湿度传感器:选用数字温湿度传感器DHT11,DHT11是一款有已校准数字信号输出的温湿度传感器。工作电压3.3~5.5V,量程湿度20~90%RH,温度0~5℃;湿度精度+-5%RH,温度±2℃。DHT11与处理器之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分。操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和数据,传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据”所得结果的末8位[3] 。气压传感器:采用数字气压传感器BMP085,BMP085是一款高精度、超低能耗的压力传感器,绝对精度可达到0.03hPa,工作电压为1.8~3.6V,且耗电极低,只有3μA;BMP085内部由压阻传感器、AD转换器、和EEPROM与I2C接口控制单元组成。它采用标准的I2C接口,可以方便的与主设备(单片机)连接通信,其测压范围在300~1100hPa。本单元硬件设计中处理器使用硬件I2C接口与传感器进行通信。[4]
  1.2无线通信
  采用低功耗、小体积的NRF24L01无线收发模块,NRF24L01的工作频段为2.4~2.5GHz,该频段无需授权许可。芯片内置了多个功能模块,如功放模块、晶振、频率合成器等;可通过程序对模块的工作频道和输出功率进行配置。可通过配置命令設置模块工作于掉电或空闲等模式,以降低系统的功耗。
  1.3存储单元
  数据的存储选用AT24C512,为Atmel公司生产的64kB串行电可擦的可编程存储器(EEPROM)。AT24C512内部共有512页,每一页有128个字节,任一单元的地址为16位,地址范围为0000H~0FFFFH。它采用8引脚封装,芯片引脚及应用电路,芯片结构紧凑、存储容量大等特点,特别适用于具有大容量数据存储要求的数据采集系统,因此在测控系统中被大量采用。[5]
  1.4键盘与液晶显示
  因采集单元所需按键较少,所以键盘部分采用独立式按键设计,实现存储数据的查询功能;液晶显示使用NOKIA5110单色点阵液晶模块,模块为84*48的点阵LCD,可显示4行汉字,工作电压3.3V,采用串行接口与处理器通信,支持多种串行通信协议,通信速率可高达4Mbps。
  1.5电源模块
  单元采用3.7V锂电池作为电源,经过TPS62291DC-DC电源转换模块,将电压降至3.3V为整个单元供电。TPS62291是TI的一款宽电压输入,固定电压输出的高效率降压转换芯片,转换效率在95%左右,最高输出电流为1000mA。处理器内置ADC对电池电压进行实时监测,当电池电压过低时,发送报警信号,以便及时更换电池。
  2软件设计
  采集单元能量受限,处理器大部分时间处于睡眠模式,定时唤醒对参数进行采集、存储并转发,为了降低处理器的功耗,对于闲置的IO端口设置成IPU/IPD模式。[6]
  软件整体设计流程:上电后处理器进行初始化自检,执行数据采集程序并进行显示,无按键操作,关闭显示并对外围电路进行设置,然后进入睡眠模式;若有按键操作或者是定时时间到可唤醒处理器去执行相关程序;如:读取键值,调用显示程序,使能内部ADC,配置无线模块,执行数据采集程序,进行数据处理和存储,转发数据等;在完成当前任务结束后,关闭内部ADC,配置IO,设置无线模块进入侦听模式,再次进入低功耗模式。
  若没有按键操作,液晶显示处于关闭状态以降低单元功耗,若有按键操作,液晶显示打开并显示最近一次采集的参数值和当前电池电压情况。通过上下按键可查看参数得历史数据,若长时间没有按键操作,显示器再次关闭。
  3 结论
  本采集单元可对参数进行实时监测、存储和无线转发,单元配有独立按键和液晶显示器,方便随时查看当前各参数值;存储器中存放着本单元的ID号,用于区分不同的采集单元;处理器对外围电路进行合理配置后进入睡眠模式有效降低了系统的功耗。采集单元按设定时间间隔进行数据采集。
  参考文献:
  [1] 李帅男.基于STM32的无线病房呼叫管理系统的设计[J].数字技术与应用,2018,36(09):167-168.
  [2] 王朝阳,邹存芝,金小雪,宋晓丹,赵雪松,孙通.基于STM32的无线脉搏检测系统的设计[J].科学技术创新,2018(09):91-92.
  [3] 宋霞萍.基于STM32的小型智能家居系统设计[D].中南林业科技大学,2014.
  [4] 许永通.基于si4432的高性能无线收发系统设计[D].杭州电子科技大学,2014.
  [5] 徐国平.智能感控视力保护仪的设计[D].华中师范大学,2013.
  [6] 何哲.基于nRF24L01和STM32的无线文件收发系统[J].可编程控制器与工厂自动化,2011(04):91-93.
  (作者单位:德州联合石油科技股份有限公司)
转载注明来源:https://www.xzbu.com/1/view-14922166.htm