便携式多点温度同步采集系统设计
0 引言
目前在工业控制及野外勘测等领域经常需要同步测量不同地点的温度参数,并进行长时间记录,完成后将时间同步的温度数据载入计算机进行分析。但实现精度较高的时间同步一般采用有线同步技术,这样就非常不便于应用。因此设计一种便携式的、基于无线同步技术的多点温度同步采集与存储系统就显得尤为重要。本文给出了基于STM32F103VC微控制器和无线同步技术相结合的温度采集系统,能够根据事先设定好的模式对温度参数进行采集,并将同步时间及温度数据存入SD卡进行长期存储。系统采用电池供电,特别适合不便于取市电的应用场合。
1 硬件组成及原理
置于不同位置的温度采集系统硬件结构上完全相同,只是不同系统有唯一的ID号,ID号可人为设置。同步采集温度时有以下几种启动模式:温度低越限、温度高越限、温度变化率越限、定时采集。任一满足启动条件的系统都会发出无线指令,通知其它系统同步启动温度采集。系统由微控制器模块、电源模块、人机接口、无线通信模块、SD卡组成,总体结构如图1所示。下面就重要部分进行分别介绍。
1.1 微控制器模块
本系统的主控制器采用STM32F103VC处理器,与电源电路、时钟电路、存储器系统及复位电路共同组成微控制系统。复位电路选用了系统监视复位芯片IMP811S,可提供高效的电源监视功能,确保系统工作正常。
STM32F103VC采用ARM公司的高性能"Cortex-M3"内核。运行的频率高达72 MHz,指令速度达1.25 DMipa/MHz。在此基础上还扩展了一系列完整的通用外围接口单元,能够提供高性价比的嵌入式解决方案。STM32F103VC系统外围接口单元主要包括支持60个中断源的中断控制器,2个DMA控制器,80个通用I/O口,1个SD卡接口,3个可编程波特率的UART,16路12位A/D转换器,SD卡接口,2个多主机I2C总线控制器,3个SPI接口等。
1.2 无线通信接口
本设计各采集系统之间的无线同步采集采用单片射频收发芯片NRF24L01,该芯片是真正的GFSK单收发芯片,内置链路层,支持自动应答及自动重发功能,带有地址及CRC检验功能,数据传输率最高达2 Mbps,采用SPI接口进行数据传输,速率最高位8 Mbps。基于NRF24L01芯片的无线通信接口电路见图2,该种方式下,若采用阻抗匹配的天线,无线传输距离可达150 m,完全满足常规采集需求。
图2中,NRF24L01的SPI总线直接与STM32F103VC的SPl0接口相连,TX/RX选择端CE和片选CSN与STM32F103VC的GPIO相连即可,中断口IRQ连接于STM32F103VC的外部中断0,以提供中断信号。
1.3 人机接口与信息存储
为了便于模式设置和参数显示,系统加入了矩阵键盘和LCD显示器。矩阵键盘直接与STM32F103VC的GPIO相连,采用扫描方式进行按键检测。显示器选用LM9033四级灰度LCD模块,该模块功耗极低,带有电源控制,特别适用于电池供电的系统。LM9033可采用并口或SPI接口方式,这里直接将其连接于STM32F103VC的SPI1接口。为了能够将时间信息及温度数据进行长时间存储,系统加入了SD卡存储装置。由于STM32 F103VC芯片本身带有SD卡接口,因此只需将SD卡座与STM32F103VC的SD卡接口直接相连即可实现数据读写。
1.4 温度检测电路
温度检测采用热电阻传感器PT1000,信号调理电路如图3所示。图3中,PTl000与电阻R1、R2和Rt1组成电桥,调节电阻Rt1即可调零。由于信号较弱,所以后端采用A1和A2进行两级放大,放大器选用零漂移、轨对轨输出的集成运放LTC2051,该芯片内部集成两个独立运放,一片即可满足本系统需求,采用单电源供电。通过调节电阻Rt2即可实现量程的调节。因为温度变化比较缓慢,所以采用R9和C1组成一阶低通滤波电路,滤除由电源噪声等引起的干扰,以提高测量精度。运放的输出直接与STM32F103VC的内置A/D转换器相连。
2 系统软件设计
在温度同步采集系统中,STM32F103VC完成无线通信、温度检测、参数输入与显示、SD卡读写等功能。整个系统软件部分包括主程序、人机接口程序、无线通信程序、SD卡读写程序、文件系统程序、温度计算程序、实时时间读取、自诊断等功能模块。由于软件较复杂,所以实际编程中嵌入了μC/OS-Ⅱ实时操作系统。
2.1 μC/OS-Ⅱ实时操作系统
μC/OS-Ⅱ实时操作系统是真正源码公开的,采用占先式的实时内核,支持多达56个用户任务,稳定性和可靠性高,而且移植方便,占用内存小。μC/OS-Ⅱ实时操作系统中各任务要分配不同的优先级,优先级用数字表示,数字越小其优先级越高。针对本系统中各任务的重要性,为各任务分配了表1所示的优先级。
2.2 无线通信程序
无线通信程序主要完成基于NRF24L01的数据发送和接收,要严格遵守其发送及接收时序。由于温度采集时每个系统都可能成为发出同步启动信号的主机,因此采集前NRF24L01都配置为接受模式。若某个系统检测到已满足启动条件,则自动配置为发送模式,将同步启动信号发送给其它系统,于是同步采集开始。将NRF24L01配置为增强型ShockBurst模式并启动自动应答,这样可以在接收方接收到信号后自动产生应答以确认通信的正确性,发送方未收到应答则会自动重发,无需增加控制器的工作量。
2.3 SD卡读写程序
本系统SD卡采用了FatFS文件系统以方便将SD卡内的数据通过读卡器导入到上位计算机。FatFS是一种通用的文件系统模块,在小型嵌入式系统中实现FAT文件系统。FatFS文件系统使用非常方便,因为FatFS模块完全与磁盘I/O层分开,因此只需要改写对应的函数来实现底层物理磁盘的读写与获取当前时间即可。本设计中应用到这几个函数:disk_initialize用来初始化磁盘驱动器,这里初始化SD卡;disk_read用来读SD卡扇区;disk_write用来写SD卡扇区;disk_ioctl用来控制与设备相关的特性;get_fattime用来获取当前时间,为文件加盖时间戳。时间的获取采用读STM32内部RTC的方式实现,为此,要在RTC的备用电池引脚接3V的纽扣电池,以实现掉电后的时间维持。
- 一种多通道视频同步采集方案(05-12)
- 多通道高带宽同步采集系统(01-12)
- 比例式AC电源控制器适量输出AC线路的周期(11-04)
- 基于TMS320F2812 DSP捕获单元的柴油发电机组的转速测量系统(03-20)
- 基于RS485总线的自动化检测系统的研制(04-15)
- 转子振动信号的盲源分离研究(05-01)