基于ARM+FPGA的宽航道通航船舶吃水检测系统研究

2019-06-06 08:28李庆滨熊木地
仪表技术与传感器 2019年5期
关键词:航道超声波船舶

李庆滨,熊木地

(大连海事大学信息科学技术学院,辽宁大连 116026)

0 引言

对我国内河航道通航船舶进行实时准确的船舶吃水检测一直是困扰通航管理部门的一大难题,尤其是在重要航道,超吃水行为严重威胁航道安全[1-2]。目前常用的吃水检测方法均有一定的弊端,如:基于图像处理技术方法的过于依赖船舶自身水尺的准确性[3];超声波测距阵列法安装、检修繁琐[4];用于船闸或升船机的超声波检测法由于发射和接收两端的同步问题[5],无法实现宽航道的吃水检测。

在较宽的航道中,考虑到通航船舶的安全性,无法利用电缆传输控制信号使超声波发射阵列和超声波接收阵列无法同步工作。本文设计一种基于ARM+FPGA的通航船舶检测系统,提出利用水下超声波传递控制信息使得超声波发射阵列与超声波接收阵列同步工作,很好的解决了上述问题。

1 系统结构

上位机通过ARM控制FPGA进行超声波发射阵列与超声波接收阵列的同步工作、超声波接收阵列传感器模拟量采集、数据整合计算;利用ARM进行水位计深的采集、数据融合、任务调度以及数据传输。

超声波接收阵列端系统结构图如图1所示,系统由一个ARM(STM32F103)作为主处理器与两个FPGA(Spartan6)作为从处理器,若需要对更多超声波接收传感器进行采集,则可以串联更多从处理器和A/D采集电路。

图1 超声波接收阵列端系统结构图

超声波发射阵列端系统结构图如图2所示,系统由一个FPGA(Spartan6)作为主控制器,可以满足数十路超声波传感器的发射驱动。

图2 超声波发射阵列端系统结构图

工作流程如图3所示,系统中ARM根据上位机发送来的指令,同时发送给水位计采集电路对水位计的采集命令和FPGA1的工作命令。水位计收到采集命令后开始对实时水位进行采集;FPGA1接收到工作命令后驱动超声波接收阵列一侧末端专用于发射同步超声波脉冲信号的超声波发射传感器,同时根据两侧传感器阵列的间距设置延时,延时后使能各个A/D采集电路对超声波接收传感器阵列进行A/D采集,采集得到的信号值保存到FPGA的内部双口RAM中,当FPGA1完成12路的A/D采集后,将数据融为一帧通过串口发送给ARM模块,同时向FPGA2发送工作命令;当FPGA2接收到工作命令后,开始对A/D采集电路13到24使能,同样将采集后的信号送入FPGA2的双口RAM中,当FPGA2完成12路的A/D采集后同样通过串口发送给ARM模块,并发送结束命令。FPGA3控制超声波发射阵列一侧末端专用于检测同步超声波脉冲信号的超声波接收传感器进行循环检测,当检测到同步超声波脉冲后,FPGA3驱动超声波发射阵列依次发射超声波。ARM模块接收到FPGA2发送来的结束命令后,对数据进行初步处理并融合水位计采集到的水位信息发送给上位机,做吃水水量检测计算。

图3 系统流程图

2 吃水检测系统下位机设计

2.1 超声波信号同步设计

为了解决宽航道通航船舶吃水检测的难题,采用在检测装置的末端安装专门用于发射和接收的超声波同步脉冲的传感器,使整个系统的发射与接收两部分同步工作,进而使得吃水检测装置的测量值更加准确。

图4为超声波发射与接收的同步工作系统图。

图4 超声波同步工作系统图

2.2 A/D采集电路设计

为了准确获得船舶对超声波传输路径的遮挡情况,超声波接收传感器阵列中需要多个超声波接收传感器进行判断。结合传感器的尺寸、超声波衍射效应[6-7]、测量精度等原因,超声波接收阵列中每隔9 cm需要安装一个超声波接收传感器。若对吃水量变化在1.5~3.5 m的不同船舶进行吃水测量,则至少需要24个传感器。同理,相对应的超声波发射阵列也需要等间隔安装等量的传感器。

面对多通道的A/D采集,同时减少通道间的干扰,选用AD9203芯片进行A/D采集电路的设计。AD9203是单通道高速A/D转换器,其采集速度可达40MSPS,采集精度为10 bit。它采用多级差分流水线架构,在整个工作温度范围内保证无失码。因选用的超声波传感器工作在500 kHz的频率下,故AD9203可以满足采集要求。AD9203正常工作时需要向CLK引脚提供工作时钟,并可以根据工作时钟调节工作频率,同时需要向STBY、3-STATE等引脚提供控制信号[8]。但AD9203的输入阻抗比较小,在AD9203输入前端添加了一个电压跟随器,起到阻抗匹配的作用,使整个电路的输入阻抗较大,可以起到隔离作用,避免传感器对A/D采集的干扰[9]。

图5为单路A/D采集电路工作系统图。

图5 单路A/D采集电路工作系统图

2.3 ARM与FPGA接口设计

单路A/D采集电路需要占用FPGA芯片的13根引脚,为了便于系统扩展同时考虑系统成本,每个FPGA从处理器配置12路A/D采集电路,若系统需要增加A/D采集电路,可增加FPGA从处理器。ARM与FPGA从处理器之间的通信接口采用一种改进的MODBUS总线形式[10]。使用总线形式就可在不改变电路的情况下增加对超声波接收传感器的采集[11]。

如图6所示,当ARM给FPGA1工作指令脉冲时,FPGA1开始工作,完成对超声波发射传感器阵列的驱动以及对12路超声波接收传感器的控制采集,然后发送给FPGA2工作脉冲,使FPGA2开始工作。若还有FPGA从处理器,可继续串联。FPGA1、FPGA2利用RS485传输方式向ARM数据传输端口进行传输,可以进行方便的数据传输。同时RS485支持MODBUS总线传输协议[12]。

图6 ARM与FPGA接口设计

2.4 ARM数据处理与信息融合

ARM接收到FPGA从处理器传输的传感器数据,在ARM中利用五点平滑滤波进行噪声剔除。剔除噪声数据和异常的传感器数据后,使用均值特征的方法处理传感器数据[13]。如式(1)所示:

(1)

使用均值g(X)来替代一路传感器采集的大量数据,以达到较少数据量的目的,进而提高上位机处理效率。

采集到的水位信息,需与超声波传感器数据融合为一帧数据,这样上位机可以准确地根据水位信息,并结合通航船舶对超声波传感器的遮挡情况计算出船舶准确的吃水量。一帧数据格式如图7所示,其中包括帧头,第一路超声波传感器数据到第N路超声波传感器数据,水位数据以及检验数据。校验数据的设计格式为所有数据(包括水位数据)求和的值。

2.5 数据传输设计与数据存储

本系统下位机系统与上位机之间采用TCP/IP传输的方式,在传输前,ARM与上位机之间建立握手连接,保证数据传输的可靠性。连接建立,ARM模块一帧一帧给上位机发送数据。上位机编程使用SOCKET接口,SOCKET接口是建立在TCP/IP上的一种套接字的规范[14-15]。图8为建立连接的流程。

图8 建立连接流程

使用TCP/IP网络传输的方式,该传输单元具有实时性强、可靠性高、通信流量大等特点。

3 实验结果

本文设计的基于ARM+FPGA的宽航道通航船舶吃水检测系统在大连海事大学救助与打捞实验楼进行模拟试验,系统电路板实物图如图9所示。

(a)超声波发射阵列端硬件实物图

(b)超声波接收阵列端硬件实物图图9 吃水检测系统硬件实物图

表1为航道宽度为50 m的条件下,模拟船舶与超声波接收传感器阵列距离分别为5 m、12 m、18 m、25 m、32 m、38 m、45 m不同位置情况下所测数据。

表1 50米航道宽度所测数据 cm

由表1可以看出,系统测量的吃水量与模拟船舶的真实吃水量相比误差小,准确度高,具有较高的可信度。同时上表数据获得中国计量科学研究院认可。

4 结论

本文设计的基于ARM+FPGA架构的用于检测宽航道通航船舶吃水检测系统,充分发挥了ARM和FPGA的优势。ARM控制FPGA完成了基于AD9203的多路并行A/D采集,设计了MODBUS协议的FPGA与ARM的传输方式;使用ARM完成了水位数据与超声波数据的融合,通过TCP/IP完成了远距离传输。通过在大连海事大学学救助与打捞实验楼进行的模拟实验可以看出,该系统可以完成宽航道的船舶吃水实时检测,且可远距离测量,测量精度高。

猜你喜欢
航道超声波船舶
《船舶》2022 年度征订启事
船舶!请加速
厦门港航道通过能力建模及应用
BOG压缩机在小型LNG船舶上的应用
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
船舶压载水管理系统
新航道
英语高能高分 就上新航道
蝙蝠的超声波