我国目前从事近海捕捞的渔业船舶和近海运输船数量众多,且两类船舶又多集中在商船航道及其附近海域,导致在近海海域船只密集,撞船事故频发。尽管大部分渔船都装备了航海雷达,但撞船事故率仍居高不下。因为这些雷达都是经济型航海雷达,既没有目标跟踪能力,也没有自动防撞告警功能。因此,设计一种具有自动防撞告警功能而且成本低廉的系统是非常必要的。
本文给出了船舶导航雷达防撞告警系统的实现方法,设计并实现了具备基于FPGA的雷达信号采集单元和基于ARM构成的航迹处理及告警单元的防撞告警系统,与船上原有经济型航海雷达配合使用构成一个新系统。设备从雷达上采集目标原始数据,通过对原始雷达数据的二次信息加工,实现目标跟踪和防撞报警功能。
1 系统总体设计方案及工作流程
1.1 系统总体设计方案
本系统由信号检测模块与航迹分析模块两部分组成,如图1所示。信号检测模块按照雷达距离同步周期对雷达回波信号进行检测,并对距离同步脉冲计数形成角度坐标;航迹分析模块实时读取信号检测模块的输出信号,通过对相邻距离、角度周期回波信号进行相关处理,得到目标点迹数据并对其进行坐标跟踪、平滑处理建立目标航迹,通过计算目标航路捷径和目标到达时间实现威胁判断。当发现危险目标后,输出报警信号。
1.2 系统工作流程
本系统从雷达视频接口处提取目标信息,如表1所示,只对距离目标信号、船首信号、方位信号、视频信号这4路进行转换、采集和处理。其中前3种信号为电平脉冲信号,故需对其做相应的转换、整形变换为TTL电平的数字脉冲信号。视频信号即雷达回波信号为模拟信号。由于船用导航雷达的水平波束较窄,忽略波束宽度对测角误差的影响,采用目标回波前沿作为目标角信号的方法进行采集、处理。故需对目标信号进行展宽、放大后采集。同时,信号采集门限值设定为可调。
之后采用对船首信号、方位信号和距离同步信号进行脉冲计数的方法来判定目标出现时的方位计数值和距离计数值,从而得到具体的目标距离和方位,并对获取的距离和方位进行同步存储。嵌入式处理器(ARM)通过专用传输接口对存储的目标数据进行读取,通过软件处理从数据中提取目标点迹信息,完成对目标回波的检测与预处理。每帧中的目标点迹数据由航迹相关模块通过航迹关联算法进行关联后,完成对目标航迹的连续跟踪,进而形成目标的历史航迹,并通过滤波算法处理实现对目标航迹的预测,最终形成目标的航迹。
2 系统硬件设计
2.1 硬件总体方案设计
系统的硬件部分由以FPGA为核心的雷达数据采集电路板和以ARM为核心的雷达数据处理电路板组成。总体设计方案如图2所示。本系统的硬件采用ARM+FPGA的结构,充分利用了FPGA的特性,同时又利用了ARM低功耗、高性能比的特点,将采集传入的数据在ARM平台上加以处理和显示。
本系统采用PC104总线标准将FPGA与ARM相连接,使ARM处理器可以直接访问FPGA的片上RAM和缓存器中的数据,实现了FPGA与ARM共享存储器的系统结构,从而使数据采集及处理效率大幅提高。
2.2 ARM和FPGA的总线接口设计
FPGA与ARM通过PC104总线标准相连,双向数据总线收发器采用74HC245芯片,该芯片为8位双向数据总线收发器,用于数据总线间的双向异步通信。其具备三态输出,数据传送方向由DIR脚控制;输出允许控制端(GN)低电平有效,为高电平时两端呈高阻。
2.3 FPGA的功能模块设计与实现
FPGA的模块设计是系统硬件设计的重要部分,分为目标检测定位模块、模拟雷达信号时序模块、RAM控制模块三大模块。目标检测定位模块主要完成对采集到的信号进行处理,以及及时发现目标并测定出目标距离计数值与方位计数值;模拟雷达信号时序模块主要完成对雷达的时序及回波信号的模拟,使系统在不接雷达接收机的情况下可以完成系统的功能检测与测试,便于整个系统在实验室条件下的调试;RAM控制模块主要完成对所测得的目标的方位、距离计数值进行存储,ARM处理器可以通过总线对存储器进行读取以及对控制寄存器的数据进行写入。在整个FPGA的实现过程中采用VHDL语言与原理图输入相结合的方式进行编程设计,并用QuartusⅡ软件自带仿真软件进行功能、时序仿真验证,最终下载到器件。
在本系统中,目标检测定位模块是重要的一部分。其设计关系到雷达最终点迹的精度以及航迹滤波的质量和精度。目标检测定位模块的工作流程图如图3所示。
其工作过程为:(1)来自雷达收发机的探测信号与船首信号经过同步整形电路转换为TTL电平进入FPGA内。(2)整形后的探测信号经过同步器产生距离起始信号和距离结束信号(中断信号)。采集的回波信号到达FPGA以后,判定其是否在起始距离与结束距离的区间上,如果在,则判定该回波信号为有效回波信号,同时将该回波信号送至信号压缩电路;如果不在则不输出有效回波信号。(3)目标压缩电路对送入的距离上相近的有效回波信号进行压缩,并将压缩后的回波信号送至计数器1。(4)计数器1在接收到整形后的探测脉冲时,开始计数(5 MHz),并在下一个探测脉冲到来时,将计数值清零。当接收到压缩后的回波信号时,计数器1将当前的计数值送至RAM存储器进行存储,该值为目标回波的距离计数值;计数器2在整形后的船首脉冲信号到来时,开始以整形后的探测脉冲为计数脉冲进行计数,并在下一船首信号到来时对计数值清零。当接收到压缩后的回波脉冲信号时,将当前计数值送至RAM进行存储,该值为目标回波的方位计数值;在每个探测信号周期内,当ARM检测到距离结束信号时,开始读取RAM内存储的距离、方位计数值。
雷达信号仿真单元只着重于各个信号的时序模拟,该单元的作用在于能够在不接雷达信号的前提下对本系统进行功能检查并模拟所需要的特殊路径的目标。整个单元采用计数器与比较器相结合。回波信号模拟的原理为:对回波信号的方位计数值与距离计数值进行计数器计数,当所设定的条件完全满足时输出回波脉冲信号,以供本系统使用。
3 系统软件设计
软件设计是系统设计的重要部分,其主要包括航迹处理与跟踪、告警参数的设定、系统相关的用户界面的设计与报警控制等相关内容。
3.1 航迹处理与跟踪
航迹滤波与预测主要用于以目标当前位置和速度的估计值来预测下一次扫描时的目标数据。在目标探测过程中,由于雷达受自身探测精度、海面杂波和气象环境电子干扰等因素的影响,因此其探测的目标数据常常不精确,其结果往往造成跟踪系统精度下降或系统跟踪的发散。因此,为提高系统对目标船舶的跟踪精度,采用恰当的滤波技术对雷达探测的目标数据进行滤波处理是十分必要的。
本设计针对的船舶运动系统近似于线性动力学模型,而卡尔曼滤波是为融合数据提供唯一统计意义下的最优估计,其递推特性使系统不需要大量的数据存储与计算,所以运用这种方法实时性好,适用于处理动态的、低层次、冗余的数据。
经滤波完成目标预测后,用目标的运动特性对目标进行匹配。如果在预测的相关区搜索时出现多个目标,则在对相关区内所有目标进行中心计算以后,将目标中心位置离预测位置最近的那个物体作为当前物体。如搜索不到目标,则发出报警,并使用上一次的速度预测下一个位置,适当扩大搜索范围。如果在连续跟踪少于5次内搜索到目标,则认为这个目标就是跟踪的目标,并在下一次搜索时,适当减小搜索范围。如果连续5次搜索不到目标,则发出目标丢失信息,并退出目标跟踪程序。
3.2 告警参数的设定
告警区的划分为:以本船为中心,按3、6、12海里为半径划分为三圈,12海里以外的目标不跟踪、不告警,6~12海里为三级告警区,3~6海里为二级告警区,0.2~3海里为一级告警区。一、二级告警区边界设置为6海里的主要依据是:在航路捷径为零的情况下,对于航速为25、30海里/hr的目标,到达时间分别为19.2 min、16 min,因此在最恶劣的情况下,在该边界告警尚有一定的反应时间。
3.3 显示与告警控制
信息显示/告警控制模块按照威胁评判结果的等级控制显示器以图形和字符两种方式显示目标信息,同时控制报警装置发出相应的声/光报警信号。
系统界面的显示与控制采用液晶彩色平面位置显示器,以船首向上的显示方式,且设备面板上设有控制键。图4所示为全景目标显示模式。
系统的告警部分由内置蜂鸣器、黄/橙/红三色告警灯和外置的高亮度红灯、高音喇叭组成。当系统自动识别出危险目标并判断出其威胁程度后,立即自动地分三个碰撞危险等级,发出声、光报警信号。通过报警控制开关,可以允许/禁止外置报警的信息输出,同时,该开关的关断与开启在显示屏上有相应的“外置声光告警器已接通”和“外置声光告警器已关闭”的提示信息。
本文基于FPGA+ARM设计了船舶防撞系统,降低了系统开发的成本,同时也便于系统后期的改造升级。系统以原有的经济型雷达为基础,既不干扰原有雷达的正常工作,又能够识别危险目标,有效地发出警报信号,减少船舶碰撞事故的发生,在实际中有很大的实用价值,对保证船舶安全航行与作业具有重大意义。