主页(http://www.pttcn.net):基于IDP卫星通信模块的远洋船舶实时监控系统 摘要: 针对远洋中无GPRS信号不能进行无线通信的问题,设计了以STM32F103VCT6单片机与IDP卫星通信模块为平台的远洋船舶实时监控系统。本系统具有高精准度、实时性强、全天候监控等特点。给出了系统的工作原理、硬件设计与软件实现方法,详细分析了中央控制模块、GPS定位信息采集模块、无线通信模块。实验结果验证了采用STM32F103VCT6单片机与IDP卫星通信模块设计远洋船舶监控系统的可行性。通过该系统,可实时监控远洋船舶的地理位置信息以及其他信息,最大限度地确保远洋船舶航运中的安全。 引言 本文采用ARM芯片作为控制核心,设计了一款以GPS定位模块与卫星通信模块为依托的远洋船舶实时监控系统。该系统能够按照用户要求定时上传远洋船舶的位置信息以及航向信息,解决了传统船舶定位和救援中出现的问题,保证了船舶动态监测及时、准确、可靠[4]。同时该系统方便扩展其他功能,以便获得更广泛的应用。 1 系统整体设计 搭载在船舶上的专用电路板实时采集船舶的位置、速度、航向、SOS报警等信息。专用电路板将采集到的数据处理后,经卫星通信模块发送至海事通信卫星,通过海事卫星将数据传输到地面接收站供给用户使用。系统整体框图如图1所示。
图1 系统整体框图 2 系统硬件设计 2.1 硬件总体设计 硬件系统采取模块化设计,主要分为中央处理模块、GPS定位模块以及卫星通信模块等,硬件结构如图2所示。数据的加工处理及输入/输出控制由ST公司的STM32F103VCT6处理器完成。处理器接收到GPS数据后对数据处理并定时上传加工后的定位数据至地面接收站。GPS定位模块采用Globalsat公司的ET314,通过该模块实时更新GPS定位数据。卫星通信模块采用加拿大Skywave公司的IDP卫星通信模块,该模块通过国际海事卫星(Inmarsat)来实现与地面接收站之间的全天候、广区域、高可靠性的双向通信。为了备份长时间的定位数据,采用了SST公司的SST25VF016B芯片作为外部Flash来实现数据存储的功能。
图2 硬件结构图 2.2 中央控制模块 本系统采用STM32F103VCT6处理器作为主控制芯片。STM32F103VCT6是32位的具备CortexM3内核的处理器,最高工作频率可达72 MHz。 中央控制模块STM32F103VCT6作为本系统设计的核心部分,负责数据地采集、分析、加工以及安排数据上传工作。GPS原始数据会实时传递至MCU的串口缓冲区。MCU验证处理后,通过串口发送至卫星通信模块。SOS报警信息通过设定的GPIO口发送至MCU,通过卫星通信模块上传至地面接收站。本模块硬件原理图略——编者注。 2.3 GPS定位模块 定位模块采用Globalsat公司的Globalsat ET314芯片,来实现船舶的位置定位与速度采集。Globalsat ET314模块使用了SIRF III芯片,具备快速定位、定位精度高、启动时间短以及探测范围广的优点。使用Globalsat ET314模块实现功能如下:
图3 GPS定位示意图 ① 精确地采集到地理位置信息。Globalsat ET314模块定位的精确度为10 m。 ② 精确地采集时间信息。Globalsat ET314模块采集到的时间与GPS时间保持1 μs的同步关系[1]。 GPS定位的基本方法为空间距离后方交会,此方法需要知道卫星瞬间位置。如图3所示,假设t时刻在地面上的待测地点放置GPS信号接收机,测定出GPS信号到达此处接收机的时间为△t,根据其他已知条件确定以下4个方程式。其中已知卫星1,卫星2、卫星3、卫星4以及地面接收站的地理坐标分别为(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)、(x4,y4,z4)、(x,y,z);d1,d2,d3,d4为测量伪距;c为光速;dt为卫星时钟偏差;dT1,dT2,dT3,dT4为GPS的接收时钟偏差项。 (x1-x)2+(y1-y)2+(z1-z)21/2+c(dt-dT1)=d1 (x2-x)2+(y2-y)2+(z2-z)21/2+c(dt-dT2)=d2 (x3-x)2+(y3-y)2+(z3-z)21/2+c(dt-dT3)=d3 (x4-x)2+(y4-y)2+(z4-z)21/2+c(dt-dT4)=d4 通过联立这4个方程式,可以得到接收机的地理坐标。GPS定位模块的原理图如图4所示,GPS通过串口与MCU获得通信。
图4 GPS模块电路原理图 2.4 卫星通信模块 卫星通信模块选用的是加拿大Skywave公司的卫星通信模块IDP。IDP的通信基于国际海事卫星,通信全球覆盖不受外界因素限制。IDP还具备传输数据能力强的优点,其单次发送数据可达6 400字节,单次接收的数据量可达10 000字节[2]。IDP支持二次开发,方便用户将IDP接入其他产品中使用。 国际海事卫星通信系统是世界上第一个全球性的移动业务卫星通信系统。Inmarsat通信系统基本是由四部分组成,即空间段、网络协调站(Network Coordination Station)、卫星地面站(Land Earth Station)和卫星船站(Mobile Earth Station)。IDP680即为卫星船站。发送信息经卫星地面站处理后经专用网关转发至用户服务器供用户分析使用。终端发起通信流程如图5所示。
图5 终端发起通信图 IDP680为用户提供了4个可配置I/O口以及1路RS232、1路RS458串口方便用户集成使用。其接口定义图略——编者注。 配置卫星通信模块使用中断方式接收MCU通过串口传输过来的数据。校验正确后,卫星通信模块执行发送数据功能。用户发送的远程指令,卫星通信模块接收后通过串口传输至MCU,MCU使用中断方式处理串口传输过来的数据。校验正确后,执行相应的命令动作。 2.5 数据存储模块 数据存储采用了1片1 M×16位的SST25VF016B芯片。上传的定位数据包为27个字节,总共可以存储(2×1 024×1 024)/27 = 77 672条定位数据。按照每分钟存储一条定位数据的频率,共计可以存储77 672/(60×24)=53天的定位数据。 3 系统软件设计 3.1 软件整体设计 系统硬件设计完成之后,就要进行软件的设计。对软件同样采用模块化的设计思想。软件方面主要包括了主程序模块、GPS定位数据采集模块以及无线通信模块。卫星通信模块具备二次开发功能,还需对卫星通信模块进行专门的设计。系统软件工作流程如图6所示。
图6 软件整体流程图 3.2 STM32F103VCT6的启动/UART使用过程 STM32F103VCT6芯片采用了CortexM3内核,并且ST公司提供的固件库中包括了启动文件“stm32f10x_vector.s“[6]。CortexM3内核复位后,会自动从起始地址的下一个32位空间取出复位中断入口向量,跳转执行复位中断服务程序。STM32F103VCT6的启动主要包括初始化堆和栈、向量表的定义和转移、初始化中断寄存器以及跳转进入main主函数几个过程。流程如图7所示。
图7 STM32F103VCT6启动过程框图 STM32F103VCT6的串口使用主要包括启动外设时钟、配置NVIC、配置GPIO口、配置串口、初始化串口、使能收发中断、使能串口几个过程。流程如图8所示。
图8 STM32F103VCT6的UART使用框图 3.3 卫星通信模块软件设计 卫星通信模块的串口配置情况如下:波特率设置为9 600 bps;数据位为8;校验位设置为“None”;停止位为1。 卫星模块单独采用Lua语言进行开发。Lua是一个小巧的脚本语言。该语言是针对嵌入式应用程序设计的,能为应用程序提供灵活的扩展和定制功能。Lua体积小、启动速度快,从而适合嵌入在别的程序里[5]。 使用LUA语言开发的卫星通信模块部分源代码略——编者注。 3.4 信息软件平台设计 CS监控平台是用户设备与监控中心的信息软件平台。监控软件平台可以动态展现船舶的实时位置情况,同时可以对船舶进行管理。 CS软件平台主要起到如下作用:对船舶进行跟踪定位,了解船舶的作业情况;查询海图某点处的具体地理情况,包括海水深度、潮高等;距离测算。 4 测试结果 本文用深圳市内5个地点作为测试样本进行验证性测试实验。用定位准确性、长时间回传数据稳定性来评价设计的性能。验证时,让本系统在每个地点至少工作1天以上。 同时检测实时数据上传的准确性与Flash当中存储数据的准确性。现通过服务器接收到的地点1的部分定位数据作为例子说明定位的准确性,如图9所示。
图9 测试数据截图 提取其中一条数据加以分析。十六进制的数据如下:15 18 CE C9 F1 46 BD 60 00 00 00 00 00 00 00 00 00 00 4A A1 78 67 F0 35。 对应的ASCII码表示的数据如下:\15\18\CE\C9\F1F\BD`\00\00\00\00\00\00\00\00\00\00J\A1xg\F05 按照协议,纬度为有符号整数,其用补码表示,转为十进制数值后除以60 000即得纬度数值。其中,正数表示北纬,负数表示南纬,转换时注意符号位的存在。经度为有符号整数,其用补码表示,转为十进制数值后除以60 000即得经度数值。其中,正数表示东经,负数表示西经,转换时注意符号位的存在。 本例中,纬度= (146BD6)h/(60 000)d=1 338 326/60 000=22.30543°。经度计算时,需取后面25个位(000011001111111000000110101)b=6811701d,经度=6 811 701/60 000 = 113.528 35°。经分析知,此位置正是深圳市南山区马家龙工业区测试地点1处,和实际地点的误差在15 m范围之内。经分析5个地点的测试数据,都在误差范围之内。 经至少一周时间的测试,每个测试点的回传数据稳定且连续,未出现数据丢失的现象。证明了该系统的长时间工作稳定性。 结语 远洋船舶监控系统使航运界对远洋船舶监控的要求变成了现实,奠定了海洋信息化的基础。系统研究成果将有力地促进我国航运业的科学技术进步,大大加快海洋运输业的信息化进程。 系统实时在线监控模式极大提升了对远洋船队的安全监控与搜救能力,从而显着降低了海难事故发生的几率,减少了海难造成的损失;系统成果可推广应用至船舶节能减排、海洋环保等方面,推动了航运业的可持续发展进程[7]。 编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。
参考文献 (中国集群通信网 | 责任编辑:陈晓亮) |