高兵权 孙志海 汤丽 肖学福
(1.总后军事交通运输研究所,天津 300161;2.华北科技学院科技管理处,北京东燕郊 101601)
基于STM32控制器的地层应力检测装置研究①
高兵权1②孙志海2汤丽1肖学福1
(1.总后军事交通运输研究所,天津 300161;2.华北科技学院科技管理处,北京东燕郊 101601)
针对地层应力测量过程中注水压力实时检测的需求,基于STM32高性能微控制器,本文研究设计了数据采集、存储和上传的嵌入式控制系统,该方案具有简洁、高效、实用的特点,在实际应用中能够有效满足设计需求。
地层压力;测量;数据采集;STM32
地层应力是评价地层结构的关键参数,依据测量基本原理不同,地应力测量可分为直接测量法和间接测量法。直接测量法包括偏千斤顶法、水压致裂法、刚性包体应力计法等,由于水压致裂法具有能测量较深处的绝对应力状态,无需了解和测定岩石的弹性模量等有点,应用广泛。水压致裂法测量地应力,需要在压裂段安装压力检测装置,实时采集水压变化数值。通常情况下,一个钻孔需要采集多个深度点的数据,测量完成后对数据进行分析和处理。
针对以上需求,本文设计了基于STM32F101V8嵌入式控制器为核心,具备压力传感器数据采集、大容量数据存储、USB数据导出、电池供电、LCD显示和键盘接口控制的便携式钻井用数据采集装置。装置整体集成为一体式的模块结构,下井前通过键盘和LCD显示设置系统工作参数,主要包括存储器初始化、采集时间间隔设定,开始采集时间点设定等。设置完成后,关闭LCD以节能,连接压力传感器,装置放入密封金属管,金属管串连在钻头后,通过多节钻杆送入井下。在水压致裂过程中,传感器实时采集钻孔压力,记入大容量Flash存储器。测量完成后,从井下取出数据采集装置,使用U盘连接数据采集装置的USB接口,将压力历史数据导入移动存储器,形成文件,由上位计算机软件做进一步的数据读取、整理、分析及研究利用。
该数据采集存储装置硬件系统共包括五部分:单片机最小系统、压力传感与处理模块、显示与控制人机接口模块、数据存储模块、数据导出模块和供电模块,如图1所示。
图1 信号采集和处理的工作原理图
STM32F101系列控制器由意法半导体公司(ST)推出,使用高性能的ARM Cortex-M3 32位的RISC内核,最大工作频率为36 MHz,内置高速存储器(高达512K字节的Flash和48K字节的SRAM),丰富的增强I/O端口。STM32F101xx基本型系列工作于-40℃至+105℃的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求[1]。该设计选用STM32F101V8处理器主要考虑其高速可靠、资源丰富、工作温度宽和供电电压宽、功耗低、性价比高的特点,尤其是其内部集成AD转换器和温度传感器,12位AD转换精度,1μs转换时间。
数据采集装置工作过程中需要两种电压供给,一种是压力传感器需要+5 V供电,且需要关断功能,可在不采集数据的情况下节电;二是STM32控制器、存储器、LCD及USB接口模块工作需要+3.3V工作电压。考虑装置在1000m井下使用,采用了电池供电的方式。装置设计了具备防震功能的两节五号电池盒结构,在设计过程中,曾考虑设计集成充电电池,但装置使用场合不能保证随时能够电池充电,电池盒则可以解决这个问题,平时可使用充电电池,急时使用干电池。电池有效工作电压输入范围VIN为2.2V~3.2V (干电池)或2 V~2.6 V(充电电池),经过筛选,选用ST公司的同步升压转换器L6920D作为供电芯片,主要理由如下:
1)L6920D输出电压三种格式固定3.3V、固定5V或者2V~5V可调输出,使用两片L6920D,输出3.3V和5V两种固定电压,分别为控制系统和传感器独立供电,3.3V输出的供电电路如图2所示,5V输出电路类似;
2)L6920D输入电压范围:0.6 V~5.5 V,启动输入电压最低1V,非常适合电池供电场合;
3)L6920D关断电流0.1μA,相当于零关断,对于节能控制非常有利,根据需要随时关断传感器供电,压力传感器供电要求5 V,15 mA,电能消耗很大;
4)根据L6920提供的曲线,两节5电池串联输入的效率要高于并联输入,5 V输出时,传感器供电转换效率接近90%;
5)L6920D带有1.23 V的基准电压输出,可为传感器模拟量ADC作独立的电压对照基准;
6)L6920D具备低电压检测,电池反接保护功能。
图2 L6920电池供电电路
压力的测量选用精量电子公司的MSP300压力传感器,MSP300压力传感器适用于对气压、液压的检测,甚至较恶劣的介质环境,如污水、蒸汽、轻度腐蚀性液体和气体。压力腔采用17-4PH不锈钢单件一体式结构加工而成。其标准压力接口采用1/4NPT外螺纹接头,因而可以保证较好的密封性能。MSP300的测量压力根据需要选择700Bar量程,对应0.5 V~4.5 V电压输出,+5 V供电。STM32F101控制器AD转换为12位精度,理论上对应数字量范围0~4096。ADC供电要求2.4V到3.6V,ADC输入范围:VREF-≤VIN≤VREF+,本系统供电电压为3.3 V,故而ADC输出信号量量程范围0~3.3 V。将MSP300输出信号使用电阻分压,取R1=3.3kΩ,R2=1.2kΩ,故输入单片机信号范围0.37~3.3 V。分压电阻要求选用温度系统较好的金属膜电阻。
图3 充放电电流和AD数字量的曲线关系
出于缩小PCB体积和降低成本的考虑,选用48脚LQFP小封装STM32F101控制器,没有VREF+和VREF-,它们在内部分别被连接到ADC的供电电源(VDDA)和ADC的地(VSSA),由于L6920供电芯片的电压输出范围3.2V~3.4V,不能保证ADC精确计算的需求。针对这个问题,该装置采用两路AD对比计算的方法,获取精确的MSP300输出电压,过程如下:
1)L6920电压基准输出典型值1.23 V,输出电压范围:1.16V~1.29V。使用万用表测量具体单个模块L6920的基准电压输出值,记为Vref_ analog;
2)选通AD1通道,使用片内ADC,计算L6920电压基准对应的数字量,记为Vref_digital。
3)选通AD0通道,计算MSP300压力传感器数字量,记为Press_digital。
在该装置的调试过程中,曾尝试使用STM32控制器的内部参考电压,但这个参照电压的典型值是1.20 V,最小值是1.16 V,最大值是1.24 V,外界不易直接测量,故而使用L6920的1.23 V电压基准。
该装置使用Winbond公司SPI接口的W25X16Flash存储器记录压力数据。装置最高工作频率每秒钟采集10个压力值,即20个BYTE的数据,则每小时数据量72,000 BYTE。W25X16容量为2M字节,能够记录29小时的连续记录,高于一天24小时的指标要求。W25X16页编程256字节所需时间小于2ms,高达10万次擦除/写入循环,20年数据保持能力。W25X16单供电,宽电压:2.7V~3.6 V,5 mA操作电流,待机电流1μA,非常适合本系统电池供电使用,-40℃~+85℃工作温度保障了室外全年使用的可能。另外,W25X16采用小体积SOIC8封装,占用集成空间较少。
数据导出采用USB接口,选用南京沁恒公司的U盘和SD卡文件管理控制芯片CH376。CH376支持1.5 Mbps低速和12 Mbps全速USB通讯,兼容USB V2.0,外围元器件只需要晶体和电容,支持USB-HOST主机接口和USB-DEVICE设备接口,支持动态切换主机方式与设备方式,内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,内置了FAT16和FAT32以及FAT12文件系统的管理固件,支持常用的USB存储设备。CH376提供文件管理功能、文件读写功能和磁盘管理功能,使用非常简单。提供2 MB/ 24MHz速度的SPI设备接口,可方便地连接到STM32控制器的SPI串行总线。CH376支持5V、3.3V以及3V电源电压,支持低功耗模式。该数据采集装置PCB设计时,为减小元器件体积,采用MiniUSB接口,数据导出时,使用转接线连接标准U盘,将W25X16中的数据以txt文件形式写入U盘。
该数据采集装置采用LCD作为显示方式,型号为TOPWAY公司的LMB081NDC。液晶显示模块主要功耗在于背光电流消耗,故在程序上在10秒内没有按键触发,将自动关闭背光。按键采用中断程序,键盘IO接口使用内部上拉。
系统软件的开发采用了ST公司针对STM32控制器的固件函数库,主要功能模块包括:初始化程序、人机接口程序、大容量数据存储管理程序、压力采集程序、USB数据导出管理程序、电源与节能管理程序以及硬件驱动(LCD、键盘、Flash等)。L6920电压基准检测和压力传感器AD转换软件设置及工作过程较为简单。
1)配置模拟量输入的GPIO口,只要GPIO配置为GPIO_Mode_AIN模式,即可以实现模拟量输入,该设计中将PA0和PA1作为电压基准和传感器的ADC输入端;
2)设置ADC,将ADC设置为连续转换模式、右对齐、非外部触发;
3)启动ADC,开始采样转换和处理。
4)对比与参考电压,计算得实际压力电平值,进而推导出实际物流压力数据。
该应用中考虑压力数据为变化较缓的信号,故软件采取防脉冲干扰平均滤波算法。连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。通过实验N取值5,即可达到满意的效果。该算法能够剔除偶然出现的脉冲性干扰,消除由于脉冲干扰所引起的采样值偏差。
为降低系统工作功耗,延长工作时间,该设计采取了以下的节能措施。
为降低整体数据采集装置的功耗,该设计采集了以下措施:一是STM32控制器在没有检测任务的时候,处于休眠状态;二是根据具体需要,减小I/O端口的电流消耗,输入端口配置为浮空输入,未用的悬空端口配置为推挽输出并输出1;三是对于未用的内部外设,保持为关闭和默认的复位状态,同时关闭对应的时钟。
在以后的深入研究中,如期进一步降低控制器功耗,可以更换低功耗设计的处理器,如同是ST公司的32位Cortex-M3系列的低功耗版本处理器:STM32L151XX和STM32L152XX等,另外TI公司的MSP430系列处理器在节能方面表现非凡。
除了控制器外,该装置还采取了其它的一些降低低功耗措施。一是在压力传感器不工作的时候,关断其+5V供电电源;二是液晶显示器在10秒钟内没有按键触发,关断背光电流;三是W25X16 Flash存储器没有读写操作时,处于不选通状态,即低功耗模式;四是对于CH376 USB控制芯片及时使用CMD_ENTER_SLEEP指令,使CH376芯片进入低功耗睡眠挂起状态。进入低功耗状态后,CH376芯片的时钟停振,从而节约电能。
该控制系统设计达到了以下三点设计目标:一是该设计实现了井下压力数据的实时采集、处理、存储和导出,工作模式和状态可以设置;二是功耗指标满足两节五号电池工作24小时的要求,压力结果数据稳定、可靠;三是采样频率最高达到10Hz,两节5号金霸王电池持续工作24小时,数据存储量达到2M Bytes,能够实时记录。
需进一步改进之处在于考虑改用STM32F102系列控制器,使用控制器内部USB,省略CH376芯片的使用,进一步缩小控制板体积,降低系统整体功耗。
[1]李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008
[2]刘波文.ARM Cortex-M3应用开发实例详解[M].北京:电子工业出版社,2008
[3]南京沁恒电子有限公司.CH376手册(一)
[4]STMicroelectronics.How to get the best ADC accuracy in STM32F10xxx devices V1.0.2008
[5]STMicroelectronics.L6920D:1V High Efficiency Synchronous Step Up Converter.2003,(05)
Research of Stress Measure Equipment Based on STM32 Controller
GAO Bingquan1,SUN Zhihai2,TANG Li1,XIAO Xuefu1
(1.Institute of Military Transportation,Tianjin300161; 2.Science and Technology Department of Administration,North China Institute of Science and Technology,Yanjiao Beijing-East101601)
Aim at the need of water pressure real-time detection in the process of stress measurement,this paper designs a data collection,storage and upload embedded control system based on STM32 high performance micro-processor,the project is simple,practicable and dependability,to effectively meet the design requirements in practice.
Stress;Measure;Data Collection;STM32
TU413.3
A
1672-7169(2011)03-0031-04
2011-05-22
高兵权(1975-),男,河北保定人,硕士,总后军事交通运输研究所工程师,研究方向:军事装备信息化。