基于STM32微处理器的泥石流次声采集系统
2015-12-20冷小鹏刘敦龙韦方强
冷小鹏,刘敦龙,韦方强
(1.中国科学院 山地灾害与地表过程重点实验室,四川 成都610041;2.中国科学院 水利部 成都山地灾害与环境研究所,四川 成都610041;3.成都理工大学 信息科学与技术学院,四川 成都610059)
0 引 言
观测研究表明,泥石流在形成和运动过程中的声发射信号含有次声波成份。次声波是频率低于可闻声频率范围的声波 (0.01 Hz~20 Hz),其频率低,穿透力强,此外,由于空气和水对次声波的吸收很弱,传播中衰减量小,能在空气中传输很远距离[1-3]。因此,通过对泥石流产生次声信号的监测分析,研究次声波的产生与传播规律,了解次声与泥石流灾害的关联性,将有助于泥石流灾害的预警,为防 灾减灾发挥 作用[4-6]。
次声采集系统可实现自然界物理次声信号的转换、采集与传输,用于对次声波进行监测分析。目前,针对次声采集系统应用领域的不同,有单个传感器独立监测和多传感器构建阵列监测的方式[7,8]。独立监测点方式无需考虑多个监测点间的同步问题,功能设计相对单一,系统任务数不多,在非野外环境的应用时无需担心系统功耗问题,数据传输可采用较稳定的有线方式,对数据实时性要求不高的应用环境还可直接采用存储器记录的方式[9]。用于构建阵列的实时监测,设计上需考虑设备间时钟同步和数据的实时性问题,针对监测的目的信号不同,系统设计方案也有所不同,如针对地震的次声监测,监测点可相隔数十公里,设备部署可选择供电及网络条件较好的室内环境[10,11]。现有的泥石流次声监测多采用独立监测点[5,12,13],但为了对泥石流次声信号进行更准确的识别及定位,需要进行阵列监测。同时,由于泥石流多发于山区沟谷,且次声能量相对较小,次声采集系统大部分情况需部署于野外,长时间的无人值守野外监测需考虑设备远程控制、数据传输的实时性、完整性、监测区域中多个监测点间的时钟误差以及采集系统的功耗问题。
针对上述问题,本文选择基于ARM Cortex-M3内核的STM32 高性能低功耗32 位微处理器作为核心,其1.25DMIPS/MHz的处理能力可在信号采集工作中满足多任务设计需求,结合电容式次声传感器、AD 转换模块、GPS模块、无线数传模块、SD 卡存储及文件系统等,利用太阳能光伏供电,完成次声信号的采集处理、实时回传、数据时间校准、本地存储备份等功能。系统除满足次声实时采集需求外,还可应用于多采集设备的组网监测分析,对泥石流次声信号的采集及次声传播特性的深入研究都具有重要意义。
1 系统方案
为实现对泥石流次声实时采集与组网监测的需求,系统设计主要由电容式次声传感器,A/D模数转换器,嵌入式微处理器,GPS模块,MicroSD 存储模块,无线数传模块,以及PC 上位机部分组成,其总体结构设计如图1所示。
图1 系统总体结构
1.1 微处理器模块
微处理器模块是硬件系统的核心部分,它负责系统的正常运行以实现对传感器数据的实时处理,将传感器数据封装发送的同时还需在本地进行数据备份存储,并协调时钟、定时器、串口等模块接口同步工作。微处理器必须具备较强运算能力以满足实时多任务处理的性能需求,同时综合其功耗、稳定性、易扩展性及产品等因素,本文最终选择采用STM32微处理器。
意法半导体公司的STM32F103ZET6 微处理器作为STM32RISC处理器的增强型,它以ARM Cortex-M3为内核,具有单周期乘法和硬件除法,提供了更高的代码执行效率,工作频率可达72 MHz,具有良好的处理速度。片上集成512KFlash,64KSRAM,为复杂固件程序和系统数据采集中所需要的大容量缓存提供了足够空间,芯片内置UART,SPI,SDIO 等多类接口,可满足本文应用中需构建多个数据通道的需求,集成的IWDG 独立看门狗可在程序意外跑飞情况下仍能自动恢复工作以保障系统正常运行。该型微处理器具有高性能低功耗,内置模块丰富且具有良好稳定性的优点,能满足当前及将来功能升级所需。
1.2 传感器及AD模块
次声测量传感器采用中科院声学所研制的CASI-MPA电容式半英寸次声传感器,传感器将次声波引起的敏感元件的电容量变化转化成电压信号输出。电容式次声传感器具有灵敏度高、频响宽、通带内特性平坦、非接触式测量等优点,测量的下限频率可低至1 Hz,可应用于泥石流、滑坡灾害等次声源的次声测量。
次声信号的模数转换采用Analog Devices 公司的AD976,它将次声传感器电信号转换为数字信号交由微处理器处理,AD976为双极性的16位模数转换器,采样率可达100kHz,完全能够满足次声采集的要求,AD976 接入原理如图2 所示,次声传感器电压信号由SIGIN 和SIGGND 接入,STM32F103的E 口16根口线 (E0~E15)用于接收AD 转换后的16位数据 (D0~D15),F口的4根口线 (F0~F3)用于连接BUSY、CS、R/C、BYTE 实现对AD976的控制线用途。
图2 AD 模块原理
1.3 授时模块
系统的授时采用SiRF III GPS模块,除可获取经纬度信息用于定位设备便于野外部署管理外,还利用GPS数据帧中的时间信息对STM32的RTC 进行校准,可避免RTC本身的累积误差以及回传数据过程中由于GPRS等无线网络拥塞导致的外部时间误差,使部署的各次声设备在时间上一致,便于实现对次声信号传播特性的研究。
1.4 远程传输模块
远程传输采用西门子公司的低功耗GSM/GPRS双模模块MC35i,用于实现基于UART 的无线数据收发。设备采用串口透传的方式,将采集的传感器数据和时间数据等,以无线方式通过Internet发送至上位机虚拟串口,传输模块外部配置100KB缓存,以备在短时意外设备掉线的情况下,数据仍能暂存于缓存不至丢失。
1.5 大容量存储模块
为防止极端条件下,由于基站断电或高峰期拥塞等问题导致的设备长时间掉线而无法回传数据以致数据丢失,系统同时设计了大容量的本地存储功能,将数据存储于本地MicroSD 卡中。采用STM32 的SDIO 模块,配合Fat32嵌入式文件系统,将串口传输数据同步写入MicroSD 卡中。
为防止数据实时的频繁写入导致的MicroSD 卡响应迟缓的问题,本系统设计采用了数据缓存的方式,在系统内存中开辟两段FIFO 缓冲区,写卡数据先进入FIFO 暂存,当FIFO 中数据缓存量达到预设值后一次性写入到MicroSD卡中。
1.6 PC上位机
PC上位机需接入Internet,通过虚拟串口的形式接收远程设备发送的串口透传数据,用于接收、解析远程回传数据并进行基于数据库的存储。上位机通过虚拟串口的形式接收无线回传数据,并通过串口服务程序将数据进行解析入库,为应用程序的数据提取分析提供数据服务。
2 软件设计
2.1 固件程序设计
固件程序是指固化到微处理器内部的程序软件,程序基于意法半导体公司专为STM32F10系列ARM 微处理器提供的标准外设库开发。标准外设库是一个固件程序包,涵盖了包括GPIO、定时器、UART 等所有标准外设在内的驱动程序,为开发者访问底层硬件提供了一个中间API。采用标准外设库进行开发可提高程序开发效率,本文基于3.5版本的外设库,采用Keil MDK 软件开发,固件程序主要工作流程如图3所示。
图3 系统主流程
设备上电复位之后首先要完成系统及外设的初始化操作,包括STM32的时钟配置、看门狗、芯片引脚功能选择以及定时器和实时钟等所需功能模块的初始化设置,最后对中断控制器NVIC 进行配置,使各中断源正常工作,系统各模块得以正常配合工作。关键中断源对应作用见表1。
2.1.1 中断程序设计
(1)串口中断:串口中断主要是UART 接口中断,其中,UART1主要作用包括接收上位机各种指令以及向上位机传送A/D采样数据、时间数据等,通过串口接收上位机命令字符,实现对设备的重启复位、停止/恢复数据采集、写存储卡控制等操作。UART2中断主要用于获取GPS授时数据,并根据时间数据的有效性对RTC进行授时校准操作。
(2)定时器中断:STM32 一共有11 个定时器,本文采用普通定时器Timer2产生定时信号,当中断产生时,对A/D 转换器发送转换指令,以控制A/D 采样率。Timer2采用内部时钟,为APB1总线时钟倍频后提供。在72 MHz的系统时钟下,100 Hz采样率的Timer2 的库函数数据结构见表2。
表1 中断源对应功能
表2 Timer2设置
(3)RTC实时钟中断:STM32的RTC 是一个秒计数器,核心由预分频模块和32位的可编程计数器构成,通过转换程序可实现对日期时间计数,并利用BKP后备寄存器实现时间信息的掉电保存,本系统中RTC 时钟用于对传感器数据进行时间标定,配合控制程序以封装时间帧,同时,触发GPS时钟对自身时间寄存器进行校正。RTC 的工作流程如图4所示。
图4 RTC中断流程
2.1.2 FatFS文件操作
(1)SDIO 驱动:对MicroSD 卡的驱动是通过SDIO 实现。与MicroSD 卡建立通信,系统上电后进行基本初始化Power-on的过程为:①SDIO 对应GPIO 引脚配置以及寄存器初始化。②设置SDIO 时钟、工作模式,使能SDIO 驱动。③上电后发出CMD0 进行SDIO 初始化,判断卡有无响应。④发送CMD8,判断存储卡版本,检查SD 供电电压。⑤发送CMD55置位电压标志位并发送ACMD41确认是否支持高容量SDHC 置HCS位相应值。⑥使用CMD2、CMD3命令分别获得CID 寄存器数据和卡地址RCA。
(2)FatFS通用文件系统:FatFS是一个可通用于小型嵌入式系统的FAT 文件系统模块,其与Windows操作系统相兼容,具有轻量化且方便读写的优点。系统基于FatFS实现MicroSD 卡的文件系统,文件系统的移植需在diskio.c中实现关键底层函数,主要包括:
disk_initialize(),初始化设备,即本系统MicroSD卡。
disk_status (),获取设备状态,判断当前MicroSD卡是否支持FatFS文件系统。
disk_write(),实现写扇区操作。
disk_read (),实现读扇区操作。
disk_ioctl(),实现读写扇区以外的其它设备特定功能。
本系统固件程序所采用的主要文件操作函数包括:
f_mount(BYTE vol,FATFS*fs),用于注册文件工作区域,在对MicroSD 卡进行各类文件操作前都需执行该函数装载MicroSD 卡区域。
f_mkdir(const TCHAR*path),创建文件夹,为方便数据分类管理,文件夹及名称将依据RTC 的年月日数据自动生成。
f_open (FIL*fp,const TCHAR*path,BYTE mode),用于新建或打开文件。文件根据当前时间进行创建或者打开,系统设计每两个小时数据存为一个文件。
f_write (FIL*fp,const void *buff,UINT btw,UINT*bw),写文件操作。向存储卡中写入AD 采集数据、时间戳数据、看门狗复位日志、授时日志等。
f_lseek (FIL*fp,DWORD ofs),文件指针控制。当需要从缓冲区写数据增量至文件时,需打开文件后将文件指针移至文件末尾再进行追加写入。
f_close(FIL*fp),文件关闭。文件操作结束后通过该函数关闭打开的文件。
2.2 上位机程序设计
上位机面向操作用户,可提供实时数据展示、历史数据加载及基于时间的数据查找等基本的数据功能,此外,还能通过串口发送命令字以控制设备工作。通过上位机程序,操作人员可以在计算机上查看远程设备的数据采集状况,并进行相应的设备控制,上位机用户程序的工作主流程如图5所示。
图5 上位机用户程序工作主流程
上位机用户程序采用C#语言结合数据库技术开发,利用串口透传工具构建虚拟串口到设备串口的网络映射,通过编写串口事件程序读取设备的回传数据,将接收数据进行解析,区分出相应数据类型进行处理,回传数据主要有AD 采集数据、时间信息、授时数据、命令响应字等,对应的程序处理方法见表3。
表3 不同类型的回传数据处理
解析处理后的AD 采集次声数据,以时间戳信息作为数据索引存入数据库,并通过C#的chart绘图组件进行次声波形的绘制分析,设备返回的授时信息将存入授时校准列表以了解设备RTC 的校准情况。同时,除接收数据外,用户界面也可利用串口直接发送命令字对终端设备进行诸如系统复位、数据中止、电池电量查询等的操作控制,设备接收处理完命令后,将返回命令响应字以反馈操作结果。
3 应用测试
系统在中科院东川泥石流观测研究站进行应用测试,采用3点监测阵的方式部署于蒋家沟下游泥石流区域,部署位置和现场情况如图6,图7所示。
系统采用了20w 太阳能光伏板及52Ah免维护12V蓄电池,根据奈奎斯特采样定律,针对次声信号设备的采样率由定时器周期设置为100 Hz,单个设备数据量大约
图6 蒋家沟监测点部署位置
图7 现场部署情况
0.5KB/s,通过GPRS无线方式回传采集数据,实测数据的接收延迟小于5s,终端设备采用MicroSD 卡同步存储数据,存储卡文件系统按日期进行目录管理,其中每个独立数据文件包含2小时次声数据,可由应用程序独立或连续加载。系统部署已运行逾半年,数据稳定可靠。图8 为2014年8月4日晚东川蒋家沟暴发泥石流,采集系统上位机软件的运行截图,通过虚拟串口同步实时读取3个监测点数据,其信号幅值明显高于背景噪声,展示波形自上往下依次为监测点A、B、C的波形,数据同步接收正常,达到预期设计。
图8 采集系统运行截图
4 结束语
系统针对泥石流次声采集设计,内核采用STM32系列高性能低功耗微处理器,数据采用了无线发送和MicroSD卡移植Fat32 文件系统本地存储同步进行的方式,同时,由GPS校准系统时钟,保证了数据的完整性、实时性和易用性,系统自部署后以光伏供电方式运行逾半年,无看门狗复位及掉电异常,数据存储与收发工作运行良好。实验测试结果表明,本系统能很好完成对泥石流次声信号的采集与传输,对泥石流次声信号的进一步处理、研究与应用都有着重要的意义。
[1]David F,Milton G,Andrea S.Infrasound from Tungurahua volcano 2006-2008:Strombolian to Plinian eruptive activity[J].Journal of Volcanology and Geothermal Research,2010,193 (1-2):67-81.
[2]LIU Junmin,TANG Wei,WANG Xiaoming,et al.Analysis of mechanism to produce infrasound signals and its characteristics[J].Environmental Engineering,2010,28 (4):92-96(in Chinese).[刘俊民,唐伟,王晓明,等.次声信号产生机理与特性分析 [J].环境工程,2010,28 (4):92-96.]
[3]LIN Lin,YANG Yichun.Observation &study of a kind of low-frequence atmospheric infrasonic waves [J].Acta Acustica,2010,35 (2):200-207 (in Chinese). [林琳,杨亦春.大气中一种低频次声波观测研究 [J].声学学报,2010,35(2):200-207.]
[4]ZHANG Shucheng,YU Nanyang.Early warning system to debris flow [J].Journal of Mountain Science,2010,28 (3):379-384 (in Chinese).[章书成,余南阳.泥石流早期警报系统 [J].山地学报,2010,28 (3):379-384.]
[5]Arnold Kogelnig.A study of infrasonic signals of debris flows[C]//International Conference on Debris-Flow Hazards Mitigation: Mechanics, Prediction,and Assessment, Proceedings,2011:563-572.
[6]XU Wenjie,GUAN Hongyun,WU Xiaolin.Analysis of debris flow infrasound signal based on time-frequency analysis methods[J].Computer and Modernization,2013 (4):36-39(in Chinese).[许文杰,官洪运,邬晓琳.泥石流次声信号时频分析方法的应用研究 [J].计算机与现代化,2013 (4):36-39.]
[7]MEN Chunlian,GAO Wenhua,FENG Haonan,et al.Design of a wide-spread infrasound sensor array network system [J].Microcomputer Applications,2011,32 (12):29-34 (in Chinese).[门春莲,高文华,冯浩楠,等.广域次声传感器阵列网络系统设计 [J].微计算机应用,2011,32 (12):29-34.]
[8]ZHU Xing,XU Qiang,TANG Minggao,et al.Experimental study of infrasound wave generated by typical rock fracture[J].Rock and Soil Mechanics,2013,34 (5):1306-1312 (in Chinese).[朱星,许强,汤明高,等.典型岩石破裂产生次声波试验研究 [J].岩土力学,2013,34 (5):1306-1312.]
[9]ZHAO Zhiqiang,TIAN Cui,ZENG Chuisheng.Design and implementation of infrasound signal collection [J].Automation and Instrumentation,2009 (6):114-117 (in Chinese).[赵志强,田璀,曾垂省.次声信号采集系统的设计与实现 [J].自动化与仪器仪表,2009 (6):114-117.]
[10]ZHANG Shucheng,YU Nanyang.Infrasound waves from Wenchuan earthquake 5·12 2008 [J].Journal of Mountain Science,2009,27 (5):637-640 (in Chinese).[章书成,余南阳.512 四川汶川地震次声波 [J].山地学报,2009,27(5):637-640.]
[11]ZHANG Fei,YANG Qingsheng,XIA Yaqin,et al.Infrasound:A new frontier in monitoring earthquakes[J].Earth Science Frontiers,2013,20 (6):94-99 (in Chinese). [章菲,杨庆生,夏雅琴,等.次声:监测地震的新领域 [J].地学前缘,2013,20 (6):94-99.]
[12]XU Wenjie.Research and design of the debris flow monitoring system based on infra-sonic [D].Shanghai:Donghua University,2013 (in Chinese).[许文杰.基于次声波的泥石流监测系统的研究与设计 [D].上海:东华大学,2013.]
[13]Arnold Kogelnig,Johannes Hübl,Emma Suri ach,et al.Infrasound produced by debris flow:Propagation and frequency content evolution [J].Natural Hazards,2014,70 (3):1713-1733.