STM32和FPGA相结合减小超声波液位计测量液位的盲区
日期:2019-02-22 来源: 作者:
引言
超声波液位计作为一种非接触式的液位测量设备[1-2],不受电磁干扰影响,成本较低,使用方便,因而在工业生产中得到了广泛应用,特别是对工况比较复杂的罐体中液位的测量。超声波液位计的测量精度主要取决于对传播时间和声速的检测精度。目前市场上的超声波液位计多数是基于MCS-51单片机设计的[3-4],由于单片机本身硬件上的限制,导致对传播时间的测量精度一般不高,功能也相对单一[5]。本文中将STM32和FPGA相结合,设计了一种新型的超声波液位计。系统利用温湿度传感器对声速进行了温度和湿度两方面的补偿;同时,采用无线通信模块对测量结果进行无线传输[6],实现了对液位的远程监控。该液位测量系统具有精度高、实时性强、多功能等特点。
1超声波液位测量原理
超声波液位测量的方法主要有相位检测法、幅值检测法、时差法[7]。其中,相位检测法精度较高,但量程短,电路设计复杂;幅值检测法实现简单,但精度较低;时差法电路不太复杂,量程和精度基本能满足工业要求,文中采用时差法。
1.1时差法原理
发射探头发出的超声波在介质中传播,经被测液面反射后,回波信号被接收探头所接收。由于在特定介质中声速是可以确定的,因此只要测量出超声波从发出到被接收所用的时间就可以计算出超声波传输的距离,进而间接测量出液面高度[8]。时差法的原理图如图1所示。
由图可知,L=E-D,L=E-ct/2,c为声速,t为超声波传播的时间。
1.2声速的温湿度补偿
由时差法的原理可知,决定测量精度的关键是对声速的确定和对传播时间的测量。影响声速的环境因素主要是温度,大多数气介式超声波液位计也是都对温度进行了补偿,但如果待测液体是易挥发的,空气中大量的蒸气会形成不容忽视的声速梯度,为了保证测量的精度,这时就需要对声速进行温度和湿度两方面的补偿,经查阅资料后推导得到修正后的声速公式为:式中:c0为标况下的声速,取331.45m/s,p为标准大气压,取1.01325×105Pa,pw为水蒸气分压强,t为测量温度,T0为273.15K,pw/p为相对湿度。
2系统的总体设计
超声波液位测量系统的结构框图如图2所示,系统主要由STM32单片机、FPGA、发射电路、接收电路、温湿度测量模块、LCD显示模块、无线通信模块、报警模块等组成。由于FPGA内嵌软核NiosⅡ需要占用较大的FPGA逻辑面积[9],而且是FPGA粗颗粒逻辑结构制作的CPU,和基于ASIC的ARM在功耗和速度上的性能相差较大,因此,系统采用意法半导体生产的STM32芯片作为主控制器,STM32通过SPI接口和FPGA进行通信。上电之后,STM32单片机向FPGA发送测量信号,FPGA接收到信号之后,发出超声波激励信号,同时开始计数,激励信号经发射电路放大后激励换能器振动发出超声波,经被测液面反射后产生的回波信号由接收电路处理后被回波识别模块检测到,计数器停止计数,将计数值通过SPI接口传给STM32,STM32利用补偿后的声速和传播时间计算出液位高度,并控制LCD显示液位和温湿度测量结果,同时,将相应测量结果通过无线通信发送给PC端,如果液位不在规定范围内,则发出报警信号。
3硬件电路设计
3.1超声波发射电路
发射电路如图3所示。FPGA的I/O口电平为3.3V,分频产生的40kHz的激励脉冲先经过限流电阻R1,接着被晶体管Q1(9014)、Q2(9014)、Q3(9015)进行功率放大后加载到变压器两端,由于变压器的初级线圈会产生高电流,故采用场效应管相连。电阻R3用来和换能器进行阻抗匹配。
3.2超声波接收电路
接收电路如图4所示,核心器件是TL852。TL852是专用的超声波测距芯片,可以完成对回波信号的放大、滤波和整形。TL852具有11级的增益变换,测量过程中,可以根据超声波传播时间的长短来控制GCA、GCB、GCC、GCD四个引脚的电平,调节增益的大小,进而增大量程。TL852的输出信号并不能直接被FPGA识别,还需进行进一步的比较整形处理。比较整形电路由双运放LM311组成,前级运放构成的同相跟随器是为了使比较整形电路和放大滤波电路隔离;后级运放构成电压比较器,实现AD转换,以便FPGA识别回波信号。
3.3LCD显示模块
为了便于现场调试和显示测量结果,系统选用LCD12864液晶屏作为显示模块。该液晶屏的分辨率为128×64,具有多种接口方式,并且内置了汉字字库,可以显示字母、数字符号、中文字型及图形。另外,LCD12864还具有低电压低功耗的优点。
3.4温湿度测量模块
系统选用DHT11温湿度传感器来检测温湿度,对声速进行补偿。DHT11的湿度测量范围是20%~95%,精度为±5%RH,温度测量范围是0~50℃,精度为±2℃。DHT11通过单总线和STM32进行通信,连接方便,DATA端口输出的是已校准的数字信号。STM32和DHT11之间的连接电路如图5所示
3.5无线通信模块
系统选用的无线通信模块型号为AS32-TTL-100,该模块采用Semtech原装SX1278射频芯片,载波频率410~441MHz,发射功率为100mW,通过串口与单片机进行通信,通信距离zui远可达3000m。另外,AS32-TTL-100的功耗低至1.5μA,还采用了LoRa扩频技术,具有很强的抗干扰能力,传输距离和穿透能力比传统的FSK有着很大地提高。控制MD0和MD1两个输入端口的电平可以选择不同的工作模式,模块通过RXD和TXD两个端口和单片机进行串口通信,AUX端口用于指示模块的工作状态。发射端无线模块与STM32的接线图如图6所示,接收端无线模块通过USB转TTL转接板实现电平转换,和PC机进行通信。
3.6STM32和FPGA模块
系统选用的主控芯片是意法半导体公司的STM32F103VET6,该款芯片有80个通用IO口,512KB闪存FLASH,64KB的SRAM,3个SPI,5个串口等丰富的资源,可以满足设计要求。FPGA芯片选用的是Al-@@@@tera公司的Cyclone系列的EP1C3T144C6,1.5V内核,EP1C3T144C6具有2910个逻辑单元,59904位内嵌RAM,一个锁相环。FPGA部分主要包括:发射模块、回波识别模块、计数模块、SPI接口模块。其中,发射模块产生超声波激励信号;回波识别模块用于检测回波信号;计数模块在超声波激励信号发出的同时开始计数,回波识别模块接收到回波信号后停止计数,则渡越时间为N/f,N为计数器的计数值,f为计数频率。计数器停止计数之后将计数值通过SPI接口发送给STM32,STM32根据计数值计算出超声波传播时间,从而计算出液位高度。
4系统软件设计
系统的软件部分包括STM32部分软件设计、FP-GA部分软件设计以及PC端软件设计。
4.1STM32部分软件设计
STM32部分的软件在KeilMDK上开发。为了实现对多个任务的并行处理,以及对液位的实时监测,考虑在STM32F103VET6微控制器上移植一个嵌入式实时操作系统。和其他的实时操作系统相比,FreeRTOS是一个小巧、免费的操作系统,FreeRTOS的内核可裁剪,一般只占用4K~9K字节的空间,具有很强的可移植性,并且不对任务数量和任务优先级进行限制。综上考虑,系统选用FreeRTOS作为操作系统。
FreeRTOS可以实现任务的创建、删除、挂起、恢复、设定优先级等功能。在高精度超声波液位计的程序设计中需要创建液位测量、温湿度测量、LCD显示、无线通信、报警五个任务,根据重要性和实时性要求,给每个任务设置相应的优先级,程序流程图如图7所示。软件用C语言进行编写,为了方便调试以及后期开发和维护,程序采用模块化的设计思想。创建一个任务的代码如下所示:
4.2FPGA部分软件设计
FPGA软件部分的开发环境为QuartusⅡ,采用VerilogHDL语言进行程序设计。通过状态机产生相应的控制时序,完成各项操作。图8为状态机的状态迁移图,有空闲、开始、数据发送三个状态,为了减少组合逻辑的数目,提高系统速度,用独热码对各个状态进行编码。START信号用来标记是否接收到开始指令,START=0时开始测量。ECHO用来标记是否接收到回波信号,当识别到回波信号时,ECHO被置为1。上电后,状态机处于空闲状态,当START=0时,状态机进入开始状态。进入开始状态后,发射模块发射出由10个频率为40kHz的脉冲组成的脉冲簇,驱动发射电路发出超声波。在产生驱动信号的同时,计数器开始计数。当回波识别模块识别到回波时,ECHO被置为1,进入数据发送状态。进入数据发送状态后,先将计数值保存在计数寄存器中,再将计数器中的值清零,为下次计数做准备,完成这些操作后将计数寄存器中的值通过SPI接口发送给STM32。时序仿真如图9所示。
4.3PC端软件设计
系统上位机部分软件采用C#语言编写,该语言对Windows操作系统兼容性较好,所用的集成开发环境是VS,C#程序在VisioStudio.NET平台上运行。当PC端采集到STM32发送的液位和温湿度数据时,在监控界面上进行显示。PC端软件部分需要设计一个串口类用来接收数据,串口接收到数据后,先将数据缓存,再利用一个线程对数据进行解析,解析后的数据在datagrid表格中显示,并用chart类绘制液位的曲线图,点击保存按钮,可以将数据保存到Excel表中。测量过程中监控界面如图10所示。
5结束语
采用STM32作为主控制器,并移植了FreeRTOS实时操作系统,实现了液位的实时测量,以及其他各任务的实时处理。采用FPGA作为协处理器,利用其并行处理的能力消除了产生激励信号和启动计时之间的延时。FPGA较高的工作频率保证了计时的精度以及超声波激励信号的稳定性,进而提高了测量精度。同时,系统还对声速进行了温度和湿度两方面的补偿,进一步提高了液位计的测量精度。另外,该系统还有无线通信的能力,实现了对液位的远程监控。
相关产品推荐:磁翻板液位计
上一篇文章:磁翻板液位计在酿造釜测量酿造水壶中麦汁水平的应用下一篇文章:通过液位计控制实现砂浆废水自动化运行处理
- 一般需要多久对磁翻板液位计进行维护确保测【2019-05-13】
- PVC材质磁翻板液位计【2018-11-28】
- 研发强穿透抗干扰超声波液位计是时代发展的【2018-12-19】
- 中药制剂废水处理工程概述与流程说明【2022-02-21】
- 植物油大型储罐及其远传磁翻板液位计的结构【2019-09-09】
- 浅谈SIS系统在煤化工装置的应用【2019-07-06】
- 公平,统一的磁翻柱液位计定价【2019-06-01】
- 磁浮子液位计清洗步骤是什么?清洗前后的注意【2021-03-09】
- 储罐侧面上下两套玻璃管液位计液面不等高的【2017-09-07】
- 磁翻板液位计的浮子的三点选择原则及材质选【2020-11-21】
- 浅析火电企业脱硫远传磁翻板液位计运营维护【2019-09-10】
- 液氨磁翻板液位计【2014-04-01】
- 玻璃管液位计的非接触监控原理与计算调试目【2018-01-26】
- 磁翻柱液位计安装后的诡异现象探讨和措施分【2021-12-17】
- 基于机器视觉的磁翻板液位计实时读数识别方【2023-11-23】
- 玻璃板液位计【2022-11-23】
- 磁翻板液位计与差压液位计双重监控分离器液【2022-03-14】
- 关于磁翻板液位计应用大型乙烯装置冷区现场【2022-03-10】
- 磁翻板液位计在海水脱硫液位测量中选择什么【2022-03-08】
- 如何解决磁翻板液位计水浸问题及预防故障的【2022-03-04】
- 探究磁翻板液位计在医疗设备中的应用【2019-11-25】
- 从研发角度去分析磁翻板液位计到底哪个厂家【2018-12-28】
- STM32和FPGA相结合减小超声波液位计测量液【2019-02-22】
- 关于磁翻柱液位计的油压问题分析及应对措施【2019-07-15】
- 磁翻板液位计4-20mA接线方法和二次仪表配合【2020-11-19】
- 热水锅炉及磁性翻版液位计供热系统突发停电【2019-08-27】
- 三畅磁翻板液位计为企业计量节能与生产降耗【2013-09-05】
相关的产品