崔秀芳,蔡陈玉,李志刚
(上海海洋大学,上海 201306)
我国拥有近300万平方千米的管辖海域,海洋渔业资源丰富,现有从事渔业捕捞的船舶28万多艘,从事渔业生产的渔民1000多万人[1]。海洋环境的多样性以及周边国家对海洋渔场管理的差异,使得海洋渔业生产具有一定的危险性,为保障渔民的生命财产安全,加强对渔民生产作业的有效监管,急需建立一套有效的船舶监控机制。国内各大院校及科研院所均对此展开过深入研究并取得较多成果,比较有代表性的有:魏延亮[2]等提出基于GIS技术、GPS导航技术及计算机通信技术来建设海洋渔业应急救援系统,实现海上渔业生产对所有船只、整个海域、作业过程的无缝实时监控和信息化管理;孙蕊[3]等阐释了中国当前在渔业生产发展中的问题,指出了在渔业现代化进程中应用北斗卫星导航系统的必要性。本文设计出一种基于北斗卫星的渔船监控系统,利用北斗卫星无线电导航业务RNSS模式和无线电测定业务RDSS模式,结合嵌入式技术和计算机技术,实现对渔船作业实时监管以及海上突发事件的紧急救援。
北斗卫星导航系统[4]是我国自主研发、独立运行的全球卫星导航定位系统。它的定位精度10 m,测速精度0.2 m/s[5],与美国全球定位系统(GPS)、俄罗斯格洛纳斯系统(GLONASS)和欧盟伽利略系统(Galileo)相比,我国的北斗卫星导航系统除了提供导航定位和授时服务之外,还具备双向短报文通信[6]功能,此功能弥补了无线网络覆盖不足的问题。
本文设计的基于北斗卫星的渔船监控系统架构如图1所示。该渔船监控系统由船载设备和岸上监控中心两大部分组成,其中船载设备主要由主控模块(核心是ARM处理器)、北斗终端模块和电源模块三部分组成;岸上监控中心主要由北斗指挥型终端机和PC机两部分组成,其中PC机是该监控中心的上位机,通过设计的岸上系统软件实现对船舶监控的功能。
系统工作过程如下:
1) 船舶定位信息的获取。船载北斗定位终端模块采用RNSS无源定位的方式,通过接收4颗不同的北斗二号卫星发出的伪码扩频调制导航信号,利用4个伪距方程联立求解的方法,解算出船舶的精确位置坐标值和北斗系统时间值等信息;
2) 船舶定位数据的传输。船舶定位信息的传输利用北斗系统短报文通信方式,在北斗卫星通信协议[7]中,每个北斗终端的ID卡是唯一的,所有短报文通信均由北斗卫星地面站接收后转发。船载北斗终端将包含接收方ID号和船舶定位信息的通讯申请信号加密后通过北斗卫星转发给北斗卫星地面站,北斗卫星地面站将收到的通讯申请信号脱密和再加密加入北斗卫星出站电文中,岸上监控中心的北斗指挥型终端机作为接收方接收出站信号,解调解密北斗卫星出站电文获得船舶定位数据;
3) 岸上监控中心船舶定位数据的获取。北斗指挥机接收船舶定位数据后,通过串行接口传入岸上监控中心。岸上监控中心将船舶定位数据与PC计算机系统上的电子地图进行匹配,以便于在获得渔船的遇险报警信号后及时定位渔船所在位置,准确地进行海上救助,缩短了后期应急保障流程的时间,有效的避免了海上救援地盲目性。
基于北斗卫星的渔船监控系统总体结构设计主要包括船载设备硬件设计和系统软件设计(船载设备软件设计和岸上监控中心上位机软件设计)两大部分。
该系统的船载设备硬件采用了模块化设计,具有结构简单、功能强大、操作便利等优点,其硬件模块组成框图如图2所示,主要由主控模块、北斗模块和电源模块等三部分组成。主控模块是船载硬件的核心模块,采用ARM处理器,其主要功能是将北斗定位模块输出定位数据进行处理。北斗模块由北斗定位模块、北斗报文通信模块和北斗天线模块组成,可实现船舶定位、报文通信功能。
主控部分选用基于SamSung S3C2440AL-40(ARM9)内核的TX-2440A,硬件开发板如图3所示,S3C2440AL-40处理器具有低成本、低功耗、高性能等优点,配备了16 MB的NOR FLASH、128 MB的SDRAM和256 MB的NAND FLASH以满足Linux操作系统所需要的内存。该处理器模块是整个硬件系统的核心模块,可完成定位原始数据的解析、数据通信格式转换、数据存储格式转换、数据显示格式转换、卫星通信状态监测、传感器工作状态监测和供电状态监测等功能,利用看门狗实现电路错误的自动复位。北斗模块与ARM处理器通过RS232接口进行连接,RS232串行口定位数据传输采用异步传输的方式,同时该处理器还集成了SD卡读写控制器、LCD与触摸屏接口、UART串口、2个USB接口、多个I/O接口和1个可挂接大容量硬盘的IDE接口[8],用户可通过I/O接口对必要的需求进行扩展。
北斗模块的定位、报文通信功能分别通过北斗定位模块和北斗通信模块实现。其中北斗定位模块选用和芯星通公司的UM220-III N芯片,该芯片能够同时支持BD2 B1、GPS L1两频点,可实现北斗/GPS单模、双模灵活定位模式,并且具有体积小(40 mm×30 mm×3.7 mm)、功耗低(350 mW)、集成度强等优点,其定位精度高达3 m,速度精度高达0.1 m/s,该模块结构框图如图4所示。北斗天线接收到的北斗卫星信号经过LNA和SAW进行低噪声放大和射频滤波,再经过RF IC进行变频处理,将收到的北斗射频信号转换成模拟中频信号,然后通过AD转换成2 Bit或4 Bit的数字信号(其中最高位为符号位),送入Soc集成电路芯片,通过Soc完成对北斗信号的捕获、 跟踪、导航电文解调解码、原始观测量提取等功能,并可以通过数据总线接口输出导航电文、原始观测量,根据原始观测量北斗定位模块可计算出船舶的定位信息。
北斗通信模块采用莱特公司生产的北斗短报文收发一体机,该一体机集成了RDSS天线、射频收发电路、功放电路、基带电路等,产品集成度高、功耗低,可实现全天候的北斗短报文通信功能。
本系统的软件设计主要包括两部分:船载设备软件设计和岸上监控中心上位机软件设计。
系统的船载设备软件流程图如图5所示。首先,要对各个模块进行初始化,包括北斗模块的初始化、ARM处理器初始化,两者均为串口初始化,并配置主控单元的各个端口。在Linux操作环境中,ARM处理器通过serial_init函数对串口进行初始化,命令符$CFGPRT,3,h0,38 400,3,3,设置北斗模块的波特率为38 400 bps[9]。串口初始化设置后,UM220-III N模块接收到指令开始工作,将捕获的船舶定位数据经串口传输至ARM处理器模块,ARM处理器接收该定位数据,并将数据按照北斗报文协议进行处理,编码封装完毕的报文内容通过北斗一体机进行报文传输,并程序设定定位系统的短报文通信频率为每分钟一次。
上位机接收北斗定位数据并嵌套Goolge Map[10],使得船舶位置在地图上实时显示。上位机与北斗指挥机连接采用串口通信的连接方式,所以在上位机软件设计上需调用串口类。为实现目标功能,本设计采用API函数进行串口通信,同时Goolge Map提供了API接口,使得用户可对其进行二次开发。上位机软件的工作流程如图6所示。上位机接收到船载北斗终端发来的数据后,将数据进行存储,为了提高定位精度,在软件设计时采用卡尔曼滤波器[11]对接收到的定位数据进行过滤,去除收到的不规则数据,该方法操作简单、可移植性好。解析数据后调用API函数,程序自动打开地图,显示船舶位置等信息。
基于北斗卫星的渔船监控系统为实现对遇险船舶及时搜救的功能,需要确认船载北斗定位终端的定位精度。为了验证北斗定位数据的精确性,本试验选用市面上比较成熟的GPS定位仪Garmin 62sc(定位精度高达2.5 m)与北斗定位终端定位信息对比,在校园内选取多个地点测量,同一地点分别用Garmin 62sc和北斗定位终端对该地点的经纬度进行测量,移动北斗定位终端位置直至其经纬度数据与Garmin 62sc显示的定位数据相同,测得北斗定位终端和Garmin 62sc之间的位置距离,即为误差距离。多次测量后剔除异常数据,得到部分试验测试数据,如表1所示,对比可知,北斗定位终端定位数据与Garmin 62sc测得数据误差较小,故该北斗定位终端可用于渔船监控系统。
表1 试验测试数据
为验证上位机软件运行是否良好,选取上海海洋大学一处湖泊进行试验。上位机通过调用API函数北斗指挥机之间的消息互通,在监控界面上可观测当前船舶经纬度信息, 如图7所示,监控系统可根据船载北斗定位终端传回的位置信息模拟出船舶航行轨迹,图中白色线条为船舶的航行轨迹。
该系统的设计过程采用由部分到整体的方法,先对单个模块的软硬件进行设计与调试,再将单个模块组装进行调试。试验结果表明:该系统软硬件工作正常,上位机接收数据正常,船舶位置监控良好,达到系统设计的要求。
本文以ARM处理器为船载硬件设备的主控部分,利用北斗模块获取船舶定位信息,通过北斗系统短报文通信功能将船舶定位数据进行传输,上位机将接收到的船舶定位数据利用卡尔曼滤波算法过滤处理,并在程序中嵌套Goolge Map,最终定位数据转换成Goolge Map模式,实现对船舶位置的监控,可以改善目前渔舶遇险搜救不及时的问题。下一阶段将尝试接入GPRS通信模块,在近海海域使用无线通信的方式,有利于节省北斗系统卫星资源、降低成本。