APP下载

基于STM32的自容式无线波高传感器设计

2020-10-09栗克国李志飞

自动化与仪表 2020年9期
关键词:波高中断串口

栗克国,李志飞

(1.交通运输部天津水运工程科学研究院,天津300456;2.天津水运工程勘察设计院,天津300456)

波浪测量是水运工程物理模型试验的一项重要工作,对于需要布设数十只甚至上百只波高传感器的试验环境,传统的有线波高传感器存在的布线繁琐、信号串扰等问题日益凸显。为解决该问题,本文设计了基于STM32的自容式无线波高传感器,将波浪采集、数据存储、无线数据传输、电池供电等功能集成在一起,实现了设备布设的便利化和数据传输的无线化。测试表明,该传感器满足设计要求,具有良好的使用效果。

1 波高测量原理

波高的测量原理,常用的有电阻式、电容式、超声式、激光式等,随着技术的进度,电容式波高传感器以其结构简单、动态响应特性好等优点获得了较广泛的应用。电容式波高传感器的基本原理如图1所示[1]。

图1 电容式波高传感器原理Fig.1 Principle of capacitive wave height sensor

当电容器胆丝线在水中时,一般情况下可将水体视为导体,胆丝线电芯与水体及胆丝线绝缘层形成圆筒形电容,该电容容量值与电芯直径、绝缘层介电常数、胆丝线没入水中深度有关,且与胆丝线没水深度成正比,由于电芯直径和绝缘层介电常数均可认为是常数,因此电容值与胆丝线没水深度成正比,通过测量电容值的变化即可获得波高的变化。

2 传感器硬件设计

传感器的硬件原理框图如图2所示,以STM32F103C8T6 为主运算控制器,胆丝线作为电容器接入CAV444 电容测量芯片,CAV444 通过C/V变换输出直流电压信号,直流电压信号通过信号调理后,输入STM32 单片机ADC 进行模数转换,单片机将数据存入FLASH 存储器,通过OLED 显示器显示采集数据,并根据指令通过无线将数据发送到上位机。同时设置有键盘,可设置或调整参数配置。

图2 硬件原理框图Fig.2 Hardware block diagram

2.1 电容检测模块设计

传感器使用电容电压测量线性转换集成电路CAV444 作为电容检测模块的核心,该集成电路可以把电容式的信号转换成线性的查分电压输出。通过调节零点和满度可方便调准。

图3 为零点和满度可调的完整的CAV444 检测电路,其中R1为满度调准电阻,R3为零点调准电阻。在本设计中,电容量变化范围为定值,因此将这2 个调准电阻均使用固定阻值电阻代替。

图3 CAV444 典型电路图Fig.3 Typical circuit diagram of CAV444

2.2 信号调理电路

从CAV444 的Vout引脚输出的电压信号,由于受到外界干扰及电源稳定度影响,输出精度噪声较大,同时与Vref引脚的参考电平存在共模电平,为此,分别以Vout和Vref信号作为输入信号,进行信号调理设计。

图4 位信号调理电路,使用LM324 四运放组成差分仪表放大器,对信号进行差分放大处理后对外输出。

图4 信号调理电路设计Fig.4 Design of signal conditioning circuit

2.3 主控电路

传感器采用STM32F103C8T6 作为主控芯片,主频最高可达72 MHz,具有64 K 的Flash 和20 K的SRAM,三路USART 接口,具有性能高、成本低、功耗低等优点[2]。外部扩展W25Q64 Flash 存储器、SPI 接口OLED 显示模块、启用外部晶振、启用ADC、设计2 路串口通信,设计一个开关键盘复合接口,实现对外围电路和总体管理控制。

2.4 显示电路

传感器使用0.91 寸OLED 显示屏作为显示器件,其支持SPI 总线,支持3.3 V 供电,功耗低,使用方便,最少仅需要4 根线即可实现控制,可方便集成到电路板中。本设计中,使用MCU 的PB10、PB11脚作为SPI 总线的SDA 和SCL 脚,采用软件模拟方式进行数据通信和显示控制。

2.5 通信电路

系统设计2 种通信方式,一是通过FT232RLRL芯片将一路UART 信号转换成USB 信号,可通过USB 口连接计算机进行数据通信,二是通过一路UART 连接433 M 无线模块,通过433 M 无线网络进行数据传输和采集控制。为了降低系统待机功耗,使用控制管脚对无线模块进行工作模式设置,当系统待机时,控制无线模块进入低功耗模式。

2.6 电源电路

传感器采用26650 锂电池供电,通过TP5400充电管理及5 V 升压芯片,实现对锂电池充放电管理和提供5 V 系统供电。TP5400 为一款单节锂离子电池充电器和恒定5 V 升压控制器,充电部分集高精度电压和充电电流调节器、预充、充电状态指示和充电截止等功能于一体,可以输出最大1 A 充电电流。而升压电路采用CMOS 工艺制造的空载电流极低的VFM 开关型DC/DC 升压转换器[3]。同时,支持通过USB 口进行充电。另外,使用ASM1117-3.3稳压芯片为传感器提供3.3 V 电源。

2.7 总体结构设计

传感器总体结构如图5所示,胆丝线一端固定在支撑杆上,另一端通过挂簧与手柄主体连接,进入手柄内部信号仓,手柄主体由信号仓、电池仓、电路仓三部分组成,其中,电路仓部分,在外侧面设计有显示屏,顶端设计有天线和USB 接口。

图5 传感器结构设计Fig.5 Structure design of sensor

3 传感器软件设计

系统软件使用Keil uVision5 集成开发环境使用C 语言开发,采用模块化设计方法设计,主要包括系统初始化、人机交互、数据通信、数据采集存储等功能模块。

3.1 总体软件流程

软件主流程如图6所示,系统上电后,首先进行系统自检和初始化,从Flash 读取仪器配置参数,并根据参数设置仪器状态,初始化完成后进入While(1)循环程序,循环处理键盘响应、状态维护、数据传输工作。数据采集存储、数据通信采用中断响应方式进行实时响应。

图6 主程序流程Fig.6 Main program flow chart

3.2 中断服务程序

软件系统设计键盘响应中断、串口接收中断、定时器中断3 个主要中断,其中设置串口接收中断为最高优先级,定时器中断为第二优先级,键盘响应中断为最低优先级。

3.2.1 键盘中断服务设计

键盘中断主要处理键盘事件,包括启动停止采集,翻页查看屏幕显示,关闭设备3 个主要功能,其中断服务流程如图7所示。

3.2.2 定时器中断服务设计

使用Timer2 作为数据采集间隔中断定时器,根据采集间隔参数配置定时器的中断时间间隔。在定时器中断服务程序中,读取ADC 数据,经过数据简单处理后将数据存入Flash 存储器。

3.2.3 串口接收中断服务设计

串口接收中断用于响应串口事件,当接收到上位机发送的串口指令后,根据串口指令控制仪器进行不同的操作,本设计中,设计包括设置地址、设置采集参数、设置时钟、控制采集、停止采集、读取历史数据等。为了便于处理,上位机指令采用“帧头+命令字+数据域+校验位+帧尾”的格式。

图7 键盘中断服务流程Fig.7 Keyboard interrupt service flow chart

3.3 数据存储

传感器采集到的数据,默认存入Flash 存储器,设计每512 个字节为一段,共计4096 个数据段。每段由起始标识,系统时间,采集参数,数据段、结束符组成,每段可存储250 组数据。

3.4 数据传输

传感器支持无线方式方式和串口方式上传数据,当接收到上位机上传数据指令后,传感器根据设置参数按段上传采集数据。支持一次传输100 段以内数据。

4 验证及分析

使用波浪模拟装置进行实验室验证,同时安装交通运输部天津水运工程科学研究院的BG-40 波高传感器进行比对验证,采集数据如图8所示,为连续4 个周期的采集数据,两个传感器采集数据曲线基本重合。

图8 自容式波高比对试验数据Fig.8 Experimental data of self contained wave height sensor

为了测试传感器精度,使用多路波高传感器自动率定系统对40 cm 量程传感器和60 cm 量程传感器分别进行精度试验。多路波高传感器自动率定系统整体结构简洁,率定数据精准,性能稳定可靠,对不同量程,不同类型的波高传感器具有很高的兼容性[4]。经率定,测量结果如表1、表2所示。

表1 40 cm 量程自容式波高精度试验数据Tab.1 Accuracy test data in 40 cm range

表2 60 cm 量程自容式波高精度试验数据Tab.2 Accuracy test data in 60 cm range

分析表1 及表2 数据,40 cm 传感器最大误差不超过1.6‰,60 cm 量程传感器最大误差不超过3.3‰,仪器精度满足实际要求。

5 结语

本文通过软硬件设计,研制了一种基于STM32的自容式无线波高传感器,将传统波高传感器与无线数据采集存储结合起来,相较于传统的有线波高传感器,避免了现场大量布置线缆带来的各种问题,能够提高物理模型试验的效率,从而减小试验成本加快试验进度。

猜你喜欢

波高中断串口
珊瑚礁地形上破碎波高试验研究
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于漂流浮标的南大洋卫星高度计有效波高研究
基于EM9000工控板高性能双串口通信模型设计与实现
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
基于外海环境预报的近岸岛礁桥址区波高ANN推算模型
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)
船舶电子设备串口数据的软件共享方法