基于vcais基站网络系统的研究与实现

基于vcais基站网络系统的研究与实现

ID:33375169

大小:4.00 MB

页数:54页

时间:2019-02-25

上传者:U-22107
基于vcais基站网络系统的研究与实现_第1页
基于vcais基站网络系统的研究与实现_第2页
基于vcais基站网络系统的研究与实现_第3页
基于vcais基站网络系统的研究与实现_第4页
基于vcais基站网络系统的研究与实现_第5页
资源描述:

《基于vcais基站网络系统的研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

中文摘要摘要随着船舶导航和监控系统的发展,和计算机技术、通信技术的日趋完善,出现了一种较为新型的船舶导航系统:船舶自动识别系统即AIS系统。其特点是信息量巨大,使用范围更为广泛,传输信息更加全面,用户应用更加方便。就目前来看,船舶自动识别系统发展非常迅速,在国内和国际范围内影响越来越大,逐步成为船舶导航领域的支柱技术。而基站网络系统是AIS系统中至关重要的一个组成部分,它的健全和稳定影响着整个系统的效率和性能。本论文在充分调研和了解相关工作单位对于AIS基站网络控制系统的需求后,进行了充分的需求分析。最后确定组成软件系统的4大模块:串口模块、解码模块、网络模块和存储模块。分别实现了AIS数据的串口接收,基站网络的链接构成,AIS动静态电文的解码与基站电文和警告电文的提取和LOG文档制作。基本构成了一套比较完整的AIS基站网络控制系统。本论文在对AIS技术研究的基础上,从理论分析和工程实际两个角度对本AIS基站网络控制系统进行了剖析。并着重对本系统的架构整体设计以及模块的具体实现流程进行了的分析和论述。并给出了详细的AIS基站网络控制系统的设计方案、需求分析、系统整体原理架构图,和各模块的实现方式,以及各具体模块的具体实现流程。最后,使用实验室的AIS基站对本AIS基站网络控制系统进行了测试,在实际机房对软件系统进行了检测。从功能性和健壮性两个角度出发,设计了相应的系统测试方案,并严格依据该方案进行了实际测试和调试。根据测试的数据和实际数据的比对和对测试结果的分析,证明了本系统具有稳定性好、功能较为全面、健壮性强的特点。本研究内容是导航研究所承担的国家支撑计划课题“高可用新体制AIS自主导航系统关键技术研究及应用示范(2012BAH36801)的部分内容。关键词:串口模块;网络模块;存储模块;解码模块 英文摘要ABSTRACTAlongwimthedevelopmentofnavigationandmonitoringdevice,aswell嬲theincreasingperfectionofcomputertechandtelecommunicationtech,thereappearsanewtechnologysystem—automaticidentificationsystem,akaAISsystem,withafeatureofmoremaSsiveinformation,andmorewidelyusage.Sofar,AISsystemhaSbecomemainstreamtechnologyiIlnavigation,andhaSagreaterinfluencedomesticallyandinternationally,graduallybgcomethekeytechinthedomainofshipnavigation.AsavitalpartofAISsystem,baSestationwebsystemdeterminestheefficiencyandperformanceofthewholesystem.Basedonresearchandrequestsoftherelevantusersofthistech,arequirementanalysishasbeenestablished.Asaresult,thesystemisdeterminedtoinvolve4modules,whichareseriesportmodule,decodingmodule,webmodule,andsavemodule,whichaccomplishthefunctionofserialportdatareceiving,webcreating,messagedecoding,aswell弱theextractionofbasestationmessageandalarmmessage.Exceptforallthefunctions弱mentionedabove,thesystemcanalsodecodethestaticanddynamicmessage,aswellasbuildlogtext;haSprimarilyaccomplishedthebasicfunctionoftheAISbasestationwebsystem.Combined、玩tllAIStech,thisessayanalyzetheAISwebsystemfi'omaspectsofbothth∞retiealanalysisandpracticalengineering,emphasizingthesystem’sentitydesignanddetailimplementofthemodules,requirementanalysis,entitydesignaswell鹊implementmethodandflowofthemodules.Atlast,inordertotestthissystem,atestisdoneintheAISserverlab.Fromtheaspectofapplicationandrobustness,asyst锄testmethodWaSmade,andapracticaltestisdonebased011that.Accordingtothetestofthesystem,whichincludesthecomparisonoftheinputdataandoutputdata,thesystemis、jl,inllli班stability,、)l,ideapplication,andhighrobustness.Thisresearchisbasedonpartofnationalsignificantsubject"keytech诵mnewindependentAISnavigationsystemofhighusability'’.Keywords:serialportmodule;webmodule;SlIVemodule;de砌emodule 基于VCH的AIS基站网络系统的研究与实现第1章绪论1.1课题的研究背景随着AIS(automaticidentificationsystem⋯船舶自动识别系统)技术的发展,AIS的应用日趋成熟,港口的船舶和地面的基站越来越多,信息量非常的巨大,而船上人员和陆上人员的日常工作和特殊任务中对AIS信息的依赖也越来越大,所以AIS技术的应用尤其是AIS基站的稳定性和数据的共享显得愈加的重要。就目前来看,AIS技术已经深入人心,是海上和陆上的信息通信的重要组成部分,在世界范围内的应用越来越广泛,逐渐成为世界海上通信所使用的核心技术协议。船舶自动识别系统受外界自然因素干扰少,它在船舶导航、避碰、船舶通信、船岸通信、海上搜救、海事调查等方面发挥独特而重要的作用。航行于开阔水域的船舶不用VHF无线电话的通话便可自动获得来往船舶的各类信息:航行于限制水域的船舶不仅可自动获得其他船舶的信息,而且通过VTS的广播获得各类航行信息和港口信息。这样可在最大程度上人为防止船舶碰撞和各类海难事故的发生,为航运界带来了前所未有的安全感。现代国际航运为了降低营运成本,正朝船舶大型化、高速化和全自动化的方向发展,为保证船舶航行安全和保护海洋生态环境需要船舶自动识别系统。船舶自动识别系统还可以改变航运企业的经营和管理方法,在AIS应用方面BLM-SHIPPING软件已经把船队管理、船舶定位与追踪和航次管理集成到一个平台上,把航运企业推向电子商务时代,大大提高航运企业的管理效率和服务水平。AIS基站网络是AIS系统建设的重要环节,它提供了海量AIS信息的传输和存储,AIS电文的解析、并且全面、有效地建设了以服务器为核心的具有多客户端功能的AIS网络,并且将相关的船舶动静态信息存入数据库,另外还每天定时打印存储重要信息的AIS信息文档,从而可以使相关工作和科研人员对设备和电文信息进行核查和校对。可以说,AIS基站网络在整个AIS系统中的作用是至关重要的。 第1章绪论1.2课题的研究现状及意义1.2.1研究现状经过十年来的研究开发与应用,我国AIS基站网络系统不仅成为保障航行安全的重要基础设施,更在保障海洋权益、维护航运安全和保护水域环境等方面发挥重要的作用,已成为水上安全监管、水上事故调查、军事演练等业务不可缺少的信息获取工具,取得一定的经济和社会效益【11。在AIS基站网络系统的辅助下,我国水上交通事故持续下降,海上人命救助成功率不断上升,仅人命安全,平均每年为国家节省40多亿元人民币。通过AIS技术,在我国沿海及内河已建设800多虚拟航标,尤其是在船舶流量大的水域、沉船水域以及国家的领海基点设立的虚拟航标,节省了大量的人力和物力资源[21。从水上反恐安保工作来看,历经上海六国峰会(请核)、青岛奥帆赛、上海世博会、广州亚运会、军事演习等多次水上重大活动安保工作的严峻考验,其海上目标辅助决策、海上警戒和目标识别准确,监控和防范作用明显。由于基站网络系统存储的大量船舶数据资料,基本反映出我国沿海和内河航运走势,成为我国航运政策的制定的重要依据,2009年,利用基站系统的数据源,制作了白金融危机以来的航运情况走势图,为我国政府对经济发展的预测和应对航运经济复苏的决策提供了基础参考数据。AIS基站网络系统还可实现对船舶的实时动态监控,加强对船舶交通流的组织,在保障水上交通安全的前提下,我国沿海及内河运输的通航效率大幅提高。同时,AIS基站网络系统也广泛应用于发布台风、寒潮、雨雪冰冻等灾害性天气的安全信息以及渔业生产信息等,并在8000多起海事调查中得以应用【3】。但是,当前我国的AIS基站网络还存在着明显不足,许多相关设备还都需要依赖进口。例如,大多数相关单位使用的AIS基站网络软件系统是萨博公司生产的SAAB基站网络软件系统。AIS基站网络的迅猛发展和相关技术的滞后形成了鲜明的对比。加强例如AIS基站网络软件系统的AIS基站网络建设已经成为我国当前重要的科研任务。1.2.2课题意义针对我国AIS网络建设的相对滞后,研究和开发AIS基站网络软件系统有重 基丁二VCH的AIS基站网络系统的研究与实现要的理论和实际意义。一方面,可以加强相关部门对于我国沿海的船舶管理和监管;另一方面,可以是我国摆脱对国外设备的过分依赖,提高我国相关科技的自主性和对相关领域的控制力141。本软件系统在科学研究和实际应用领域都具有重要意义。其意义是:(1)通过网络服务器和客户端的建设,提高AIS信息分享效率利用计算机网络技术构建起了一个可靠的AIS基站网络,通过多台机器有效的合作、分工,更加方便而有效地实现了基站间和船站间的信息沟通。AIS基站网络系统的客户端和服务器都可以通过本机串口将AIS信息接收,并且可以通过服务器进行数据之间的共享。通过网间AIS数据的共享,大幅度地提高数据量的交流和共享效率和整个船舶基站AIS信息系统的功能性和有效性【51。(2)充分解决相关部门对AIS基站网络系统的需求相关部门对AIS电文的需求不是单纯的电文存储和转发,而是转向复杂数据库构建和对特定基站信息和船舶相关信息的分析和提取。针对该需求,制定了相应的业务模块。针对数据量庞大的特点,本AIS基站网络系统着重进行了数据存储和信息处理方面的开发16],数据存储方面包括整体数据的存储以及重要信息的提取和存储,信息处理上包括对电文的网络流动和AIS信息的解码。在努力提高系统功能的同时还充分考虑了代码的可靠性和算法的优化,从而充分解决了相关部门对AIS基站网络系统的需求。(3)本AIS基站网络系统的开发平台选择和科研意义本软件用VC2008平台开发,使用VC++语言进行代码编写。该平台和语言具有效率高、代码可靠性高、可拓展性强等特点。从而使开发出的AIS基站网络系统具备高效率、高可靠性、高通用性、高扩展性的特质忉。在科研意义方面,本软件系统基本实现了实际AIS基站网络系统的所有需求并考虑和解决了该类软件系统可能出现的多种技术问题。为将来成型系统的开发和相关领域的研究打下了坚实基础。1.3论文结构本文通过对软件系统程序的反复调试测试和AIS系统原理的反复深入研究, 第1章绪论进行了对于基于vc2008的AIS基站系统开发的研究。本文主要进行了资料查阅、方案论证、编码实现和系统测试四个阶段的工作。在资料查阅阶段,主要查阅了各种与AIS原理相关的大量资料。并搜集了与上述内容相关的各种文献、书籍和文档等。在方案论证阶段,主要对AIS基站网络的可行性和整体架构、实现功能进行了分析和设计。结合在有关单位的调研,确定了开发方案。并在分析了了解客户需求的基础上,并制定了相关的工作计划,确定了整个软件的实现架构,各个模块的组成,并对相关的知识和技术进行了学习和掌握。最后,在反复推敲修正和与老师专家们商榷后,确定了最终方案,准备进入实际代码编写阶段。在编码实现阶段,利用VC++语言在PC机平台上进行开发,在搭建起论证期间设计的AIS基站网络系统架构后,针对各模块的技术难点和问题,编写了一套高效的算法和函数。为了实现系统的稳定性,一方面不断改进代码,一方面在实际AIS服务器机房进行调试实验,使其稳定性和实用性达到用户需要的标准。在系统测试阶段,将完成后的AIS基站网络系统在机房进行长时间运行,从而检查其健壮性和各项性能完成指标,最终确定软件系统满足相关单位要求,运行状况良好。本文将分五章阐述,内容安排如下:第1章,绪论。简要介绍了AIS系统和AIS基站网络的发展历史。在此基础上进行了本文写作和本软件系统研究的各阶段的工作,突出了本研究的工作重点,并说明了本研究课题的实际意义。第2章,介绍了AIS系统理论、AIS电文、IEC61162标准以及VDH-VHF电文封装的理论基础。在这一章里,首先介绍了AIS系统及编码方式结构的相关理论。进而介绍了AIS基站网络设计的理论基础嘲。分析了本系统设计的理论基础,为后面的系统设计分析进行了铺垫。第3章,进行了AIS基站网络系统的需求分析和整体框架设计,给出详细的AIS基站网络系统的设计方案、系统模块的划分以及各模块的功能要求。第4章,将从AIS基站网络系统各模块设计的角度,分析模块的具体实现流 基于VC++的MS基站网络系统的研究与实现程,以及数据交互和业务实现流程的设计方案,给出了给模块的具体实现细节。第5章,分析本AIS基站网络系统所需要的运行环境和实验条件。分析了系统的软、硬件环境以及相关参数的设定。在此基础上在实际AIS服务器机房对本网络系统进行了功能和健壮性测试,在对测试数据进行了分析后,给出了实验室分析结果。 第2章AIS基本原理研究和软件开发平台介绍第2章AIS基本原理研究和软件开发平台介绍2.1AIS系统2.1.1AIS系统概述船舶自动识别系统(AutomaticIdentificationSystem,简称AIS)是在vHF海上移动频段,基于时分多址的自动连续广播系统。AIS由岸基(基站)设施和船载设备组成,是一种新型的基于网络技术和通讯技术为一体的数字助航设备系统[sl。船舶自动识别系统(AIS)能够实现船舶船岸之间的船舶标识,位置,航向,航速等航行信息的互相交流和自动变换,并可以配合GPS将船舶动态信息结合船名、呼号及危险货物等船舶静态资料并由甚高频(ⅦF)频道向周围水域船舶以及岸台进行广播,从而使邻近船舶和岸台能够及时地掌握附近海面所有船舶动静态资讯,并为船舶避趾提供辅助信息,从而减少了海上安全事故问题。AIS系统可传输船舶静态和动态信息;其中系统传输的静态信息有:MMSI号、IMO编、呼号、船名、船长与船宽等船舶信息、船舶类型信息和定位天线的位置信息。动态信息为:船舶位置、时间、航速航向、航行状态、转向率等等。AIS的构成框图如图2.1所示。图2.1AIS的构成框图Fig.2.1ThestructureofAIS 基于VC++的AIS基站网络系统的研究与实现2.1.2AlS电文(1)电文结构AIS电文是AIS信息的访问方式。其数据包中的数据部分如图2.2所示。MSGIDl序文起始标志数据FCS结束标志缓冲l图2.2电文结构图Fig.2.2Thestructureofmsgcode每条电文利用一张从上到下排列的参数字段表来描述。各参数字段的最高有效位在前19]。参数字段包括子字段(通信状态等),参数字段由单独的含有子字段的表定义,并从上到下排列,在各子字段中,最高有效位在前。(2)电文说明电文识别码(MSGID)为6bit,数值范围为0--63,由MSGID标示电文类型101。用户识别码(ID):即MMSI号。MMSI号长30bit。只用前9个数字(最高位有效数字)。依据ITU.RM1083建议,该电文对第10位数字(最低有效位)不适用。常用的电文是l,2,3,4,5,8电文,在第四章具体介绍了本软件需要解码的包含动态信息的电文1,2,3和静态信息的电文5。电文规定包含船舶数据。如船名,目的地,呼号等按照WGS基准发射。这些字段采用附录1规定的6bitASCII码。(注意这里的6bitASCII码与后面介绍的解码部分的6bitASCII码对应的有效字符不同)。根据本设计要求,要将船名,目的地,呼号等显示并存储上,需要一个由6bitASCII码转换为计算机ASCII码的过程【ll】。下面介绍TDMA数据链的电文,电文表包含以下各栏:电文ID:电文ID码名称:电文名称说明:电文简介 第2章AIS基本原理研究和软件开发平台介绍访问模式:这一栏说明台站如何选择时隙发射电文。时隙的访问方式不决定电文类型,但不决定在时隙中电文发射中的通信状态。通信状态:通信状态规定电文中用何种通信状态。如果电文中不包含通信状态,则指明“N/A"。若电文中有通信状态,表示将来使用该时隙。无通信状态表示该时隙现在可供使用。所有位置均按WGS84标准发射。某些电文规定包含船舶数据,如船名、目的地、呼号等。这些字段对应的ASCII码的规则参见附录l【12】。电文1,2,3:位置报告。位置报告由移动站输出。关于电文1,2,3的说明见附录2。电文4,11:基站报告,UTC时间和日期应答。关于电文4,11的说明见附录3。2.1.3IEC61162-1标准研究对于IEC61162.1标准支持的封装二进制数据的传送。通常,对封装二进制数据正确的解码与解释需要访问IEC61162.1标准以外维持的信息。IEC61162.1标准则包含了描述数据如何编码、解码和构建信息等。对于AIS来说,二进制数据的意义可由ITU-RM.1371标准得到【131。2.1.4串行语句描述(1)与接收的VHF数据(VDL)电文相关的串行输出语句(如VDM)如表2.1所示。’表2.1串行输出语句Tab.2.10utputsentence电文功能电文号电文类型AIS目标显不信思1,2,3,9,18,21位置报告4基站报告5航次相关信息19B类.扩展数据安全电文处理12寻址安全相关14广播安全相关外部应用处理6寻址二进制8广播二进制系统控制7二进制确认 基于VC++的AIS基站网络系统的研究与实现.续表lOUTC与日期奄询——llUTC与日期应答13安全相关确认15询问16指配模式命令17DGNSS校正20数据链管理22频道管理(2)与广播VDL电文相关的串行输出语句AIS使用的VHF数据电文如VDO(1,2,3,5,6,7,8,10,11,12,13,14,15)寻址二进制确认电文ABK(3)与VDL电文不直接相关的串行输出远程询问如LRI,LRF远程应答如LRl,LR2,LR3{≮域性频道管理信息如ACA报警状态如ALR,TXT(4)与VDL电文直接相关的串行输出船舶和航次相关的数据如SSD,VSD寻tlt--进制语句如ABMJ一播二进制语句如BBM寻址安全相关语句如ABM广播安全相关语句如BBMAIS询问请求语句如AIR(5)与VDL不直接相关的串行输入语句频道指配语句ACAAIS报警确认语句ACK远程询问语句LRI,LRF 第2章AIS基本原理研究和软件开发平台介绍本设计中使用的IEC61162.1AIS语句有如下两种:VDM--VHF数据链电文,和VDDJⅢF数据链本船电文【141。’2.1.5VDM-VHF数据链电文封装举例(1)导言IEC61162.1标准支持封装的二进制数据的传送。通常,对封装二进制数据正确的解码与解释要求访问IEC61162.1标准之外维持的信息.IEC61162.1标准包含了描述数据如何编码、解码及构建等信息.对于AIS来说,二进制数据的特定意义可自ITU.RM.1371标准获得.下面是一个实际例子,表示封装的二进制编码数据如何翻译为有意义的信息.该例子取自按ITU.RM.1371建议制造的AIS设备的操作.该例子所用的语句是【”】:!AIVDM,1,1,,A,1P0000h1ITlsyTP2r:439rwb0Eq4,0幸OI(2)封装编码在讨论解码过程之前,先理解该字符串中封装的二进制比特的来源是有用的。AIS单元可广播的电文有许多种。AIS国际标准ITU.RM.1371.1中有一些表格,对这些电文的内容逐位做了说明【161。上述VDM例句是每个AIS单元在正确地接收到一台AIS单元的广播之后,产生的输出的一个例子.下面图2.2显示了AIS生成并广播的”无线电包”的各个部分。信息比特上加了一些附加比特,是为了易于使用无线电信号来广播这个数据包.这些附加比特在AIS接收单元中会自动去除.只有电文数据比特封装到VDM语句所含的字符串中.在封装字符串之前除去的附加比特为序文,起始标志和帧检验序列.AIS电文数据的无线电信号封装比特结构【171,如图2.3所示。序文或训练序歹1J(24bit)l2345678910111213141516起始标志(8bR)171819202122232412345678O10lO10101O电文数据(对单时隙电文,最多168bit) 基于、℃卜+的AIS基站网络系统的研究与实现l2345678910111213141516'9’‘79‘7’●9’9‘79●15163456789O12345678f'9,'口9口9.79o9●帧检验序列(16bit)123456789101】2131415169.79'9,’,●起始标志(8bit)l23456789'9‘779●图2.3AIS电文数据的无线电信号封装比特结构Fig.2.3thestructureofAISdatawrappingVDM语句用“bit"段类型的代码封装数据。组成6bit串的是64种可能的“1”、“0”的组合,每种组合均指定了一个唯一的有效字符。假设前十二比特为“000001100000”,二进制000001用“1”代替,二进制100000用“P”代替,这样逐个封装,就可以变成所给例子类似的语句【181。AIS无线电文中可以包含的电文数据比特数是1008bit。这个比特数要求168个6bit代码,对于一个语句而言,这个字符太多了。标准语句所含字符不能超过82个,这还包括不少必须的字符。在对封装字符串编码和译码时,字符串可能需要几个语句来传送,VDM语句的结构设计允许打断成为较小的字符串,用多语句传送.在处理这些语句时,重要的是应将打断的语句连成一个整句再去解码【19】。图2.3将电文数据显示为水平比特表,而图2_4中左面的表显示电文数据比特可以重新编排为一个6列的表格。表中每个位置的数字表示AIS单元的广播中,该比特在电文中的位置。以这种方式安排比特便于使用转换信息。(3)封装字符串解码 第2章灿S基本原理研究和软件开发平台介绍对以上讨论了AIS单元如何将接收到的二进制电文数据比特编码为封装字符串字符.它对AIS下列各种进行了解释:一接收一份广播电文;一从无线电信号中提取电文数据;一将电文数据的二进制比特组织成6bit;一将6bit字符串转换为起代表的”有效字符”;一将这些有效字符组装成为一个封装字符串;一用VDM语句格式传送封装的字符串;所用的例子是:!AIVDM,1,1,,A,1P0000h1ITlsyTP2r:439rwb0Eq4,0拳01其中末尾的01HEX是检验.该语句是个单语句封装,是由一台AIS单元产生的.接下来集中正确的解释封装的字符串.‘‘1POOOOhlITlsyTP2r:439rwb0Eq4'’。封装的字符串内容的解码和解释过程分为三步:字符串代码返回他们所代表的二进制串。使用参考文件中所含的规贝JJ(ITU.RM.1371.1_)组织或者说分解该二进制字符串。.使用标准文件规则,将二进制串转换成相关信息。再将这些值转换为可以显示的ASCII码,便于PC机显利19】。(4)代码转换为二进制建立工作表,工作表是为了解码AIS电文而准备的。图2-4是了解本例的直观工具.图2-4左面的VDM比特位置表是用于确定图2-4右面的封装代码所代表的比特表中对应二进制比特的精确位置按照上面的例子“1P0000h1ITlsyTP2r:439rwb0Eq4”对应的6bit二进制数据填到图2.4的右面。 基于、^口斗的AIS基站网络系统的研究与实现l2345678910lI1213141516171819202l2223242526272829303l3233343536373839404l4243444546474849505l52535455565758596061626364656667686970717273747576777879808l8283848586878889909192939495969798991001011021031041051061071081091101ll11211311411511611711811912012I122123124125126127128129130131132133134135136137138139140141"14214314414514614714814915015I1521531541551561571581591601611621631641651661671680l0l1l0l0l0l010O0li0lIl0l0l0l010l0i0l0l0l01l01l0lOtl0l0l010l0l10l0图2.4封装字符串解码工作表Fig.2.4thesheetofdatawrapping对照电文1,2,3的参数表,可知电文识别码,比特1~6oo000l电文1转发指示器,比特7~810电文转发2次用户识别码,比特9-3800000000000000000000000000011MMSI=127旋回速率,比特43—5000000101=+1.1度/分钟实际航速,比特51~601001100100=61.2节.13. 第2章AIS基本原理研究和软件开发平台介绍经度,比特62~890000111101111111010010010000=27度5分东纬度,比特90---116000001011101000101000010000=5度5分北实际航向,比特,117—128001110111111=95.9度真艏向,比特,129~137101011111=351度。.14.. 基于Va斗的AIS基站网络系统的研究与实现第3章AIS基站网络系统设计方案第一章和第二章分别从AIS系统的背景、发展现状以及基本技术原理等方面进行了研究,本章将利用VC++语言设计一套AIS基站网络系统,给出AIS基站网络系统的设计方案。该方案包含了系统的需求分析和整体设计两个方面。3.1AIs基站网络系统设计这一章分析了AIS基站网络系统的设计方案,从需求分析和整体设计两个方面对本系统的设计方案进行了阐述。3.1.1AIS基站网络系统需求分析整个AIS基站网络系统的需求分析,可以从以下4个角度进行:接收,解码,网络传递和存储。AIS系统会产生大量的AIS电文,因此AIS电文的有效接收是十分重要的一个环节,面对短时间内传输的大量信息,串口部分必须保证传输顺利,不丢包,并且代码健壮,能够运行长时间系统不出错【201。AIS基站网络系统中的解码部分需要根据IEC61162—1协议完成接收电文的解码工作。AIS电文信息解码尤其是船舶动静态信息的解码是AIS基站网络系统的重要部分。因此AIS基站网络系统必须具有良好的解码能力。AIS基站网络系统在接收和解析AIS电文后。还应实现AIS信息和原始电文的网络互传,从而解决AIS电文和信息在基站和终端之间传输的问题,从而把各AIS基站连接成一个整体。另外,AIS基站网络系统中的网络部分在接收和解析AIS电文后。还需要进行信息存储,一方面需要利用数据库进行整体数据的存储。另一方面需要利用能文件的建立进行特定信息的提取和存储。3.1.2AIS基站网络系统整体设计本软件系统由一台基站设备,两台PC机(分别安装服务端和用户端软件)和一台终端设备组成。数据由基站设备提供,通过38400波特率的串口向服务器端 第3章AIS基站网络系统设计方案发送AIS电文。服务器端软件在接收到电文后可以实现动静态信息电文解码和数据库存储功能,并可以通过网络将AIS电文和解码信息传递给客户端软件。客户端软件一方面可以接收服务器端发送的AIS电文和信息,另一方面可以接收本地串口发送的AIS电文;客户端的另一个功能是将重要信息提取出来并按一定格式以log文档的形式存储。从而,使整个系统构成一个闭合整体。系统整体设计框图如图3.1所示。图3.1AIS基站网络系统整体设计Fig.3.1AISbasestationsystementitydesign 基于、℃H的AIS基站网络系统的研究与实现第4章AIS基站网络系统技术实现第三章介绍了AIS基站网络系统需求分析和总体设计,对AIS网络基站系统从整体上进行了剖析。本章将从分析技术细节的角度,分析各模块的具体实现流程,并给出了各模块的具体技术实现细节。AIS基站网络系统实现了从串口中接收AIS电文到最终数据信息存储的整个过程。从系统模块的角度进行研究,本系统包含了串口接收、数据处理、网络传输、信息数据存储四个模块。各模块之间的数据交互逻辑如图4.1所示。图4.1系统模块关系框图Fig.4.1therelationofmodulesAIS基站网络系统的各个模块各自分工,分别完成了系统的部分功能。下面分析构成AIS基站网络系统的四大模块的具体功能。(1)串口模块串口模块通过串口收集的所有的AIS电文数据,包括基站的AIS数据和船舶和救援队发送的AIS数据。由于AIS电文数目比较庞大并且传输速度较快,本模块采用多线程接收的方式,接收电文在显示的同时分发到网络和数据解析模块中,进行下一步的处理和操作。(2)数据处理模块 第4章AIS基站网络系统技术实现数据处理模块将对所接收的AIS电文中进行分类筛选,提取出感兴趣的相关信息。通过IEC61162.1协议,完成ITU.RM.1371【221,将接收到的电文解析成数据。将解析出来的AIS数据在存储模块中存储并通过网络模块发送,并且将解析出来的数据记录系统时间。以便于辅助相关工作人员的工作。(3)网络模块网络模块将对所接收的AIS电文和解析出的AIS信息进行网络传输,将服务器和多个客户端连接成一个整体。从而使各个基站连接成一个整体,使各个基站能进行交流并且实现数据共享。在本设计中,一个基站系统服务器可以连接多个基站客户端。(4)存储模块存储模块将对所接收的AIS电文和解析出的AIS信息进行接收,服务器和客户端的存储方式是不同的。处于信息安全等考虑,基站客户端不使用数据库存储数据信息交流而是使用文本文档的方式对重点信息进行存储以备工作人员进行实时分析。而服务器作为系统的中心环节,使用数据库记录所有的AIS电文和解码信息;并使用文本文档记录重要电文【23】。以备科研单位和相关单位进行信息提取。4.1串口模块设计在本节给出了模块实现框架图,并着重分析如何用串口模块实现从串口接收AIS数据的技术逻辑,并给出具体实现流程。串口接收部分使用多线程接收,并使用了串口winapi技术。包含打开串口openport函数,开启线程openlistenthread函数,获得串口缓冲区数据量函数getbytesincom函数,监听线程listenthread函数,读函数readbyte函数和写函数writedata函数构成。下面详细说明本模块使用的核心技术和各函数实现手段。本模块设计实现逻辑图如图4.2所示。 基于、,C.什的AIS基站网络系统的研究与实现图4.2串口模块设计框图Fig.4.2thedesignofserialportmodule.19. 第4章AIS基站网络系统技术实现4.1.1多线程技术和串口winapi简介本模块使用同步操作方式接收,开启监听线程后,线程进行循环监听直到线程退出。因此需要使用多线程把监听线程和主线程隔开,以防止主线程出现死循环。下面简要的介绍一下多线程的概念。线程被分为两种:用户界面线程和工作线程(又称为后台线程)。用户界面线程通常用来处理用户的输入并响应各种事件和消息,例如,应用程序的主执行线程CWinAPP对象就是一个用户界面线程,当应用程序启动时自动创建和启动,同样它的终止也意味着该程序的结束,进程终止。工作线程用来执行程序的后台处理任务,比如计算、调度、对串口的读写操作等【24】。本文使用的是工作线程。另外,本文使用了winapi技术。Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的原型为:HANDLECreateFile(LPCTSTRlpFileName,DWORDdwDesiredAccess,DWORDdwShareMode,。LPSECURI矾』nRIBUTESlpSecurityAttributes,DWORDdwCreationDistribution,DWORDdwFlagsAndAttributes,HANDLEhTemplateFile);lpFileName:将要打开的串口逻辑名,如“COMl”dwDesiredAccess:指定串口访问的类型,可以是读取、写入或二者并列;dwShareMode:指定共享属性,由于串口不能共享,该参数必须置为0;lpSecurityAttributes:引用安全性属性结构,缺省值为NULL;dwCreationDistribution:创建标志,对串口操作该参数必须置为OPEN_EXISTING;dwFlagsAndAttributes:属性描述,用于指定该串口是否进行异步操作,该值为FILEFLAGOVERLAPPED,表示使用异步的I/O;该值为0,表示同步I/O操作: 基于Va斗的AIS基站网络系统的研究与实现hTemplateFile:对串口而言该参数必须置为NULLt251。4.1.2串口模块主要函数介绍和分析初始化串口函数initport:该函数在取得串口的各项参数,如端口号、波特率等后进入临界区。在进入临界区后设置串口的超时时间、配置串口参数、开启RTSF【.OW控制,然后在清空串口缓冲区后离开临界段。成功返回true,失败返回false。打开串口函数openport:在串13初始化后,进入临界段,然后将串口编号转化为设备粥后通过WINAPI将串口打开,在串口成功打开后返回true并退出临界区。一≯湖l返回false。开启监听线程函数openlistenthread:该函数建立并开启一个串口监听线程,并设置该线程的优先级高于一般线程。同上,成功返回true,失败返回false。返回串口缓冲区字符数函数getbytesincom:先记录设备的状态信息。若状态信息正确。则通过cbinque函数获得缓冲区的字节数并返回。监听线程函数listenthread:本函数是串口模块的核心。负责AIS电文信息的接收和投递。该函数第一步建立一个接收数组和一个投递数组指针。然后进行线;罕循舅=_用轮询方式读取串口数据。若串口收到数据,则通过返回串口缓冲区数据量函数getbyl:esincom返回串13缓冲区字符数,然后接收串口数据并传递给接收数组。在接收后,检查’'\rkn”(因为AIS信息以’h'kn”为结束标志位),并以此为标志将对应的接收数据投递给投递数组。投递数组在接收完数据后,将相关数据通过消息投递给显示部分、网络部分和数据库。然后在相关部分delete掉投递数组以防ll=内存泄露。该函数逻辑图如图4.3所示。 第4章AIS基站网络系统技术实现图4.3线程监听函数设计框图Fig.4.3thedesignoflisteningpart读写函数readbyte和writedata:这两个函数负责串口数据的读写。在进入临界区后,进行相关的串口数据读写。若读写成功,则清空串口缓冲区,返回true;否则,在获取错误码后返回false。4.2网络模块设计AIS基站网络系统的网络模块的作用是用服务器将多个客户端连接成一个整体,以便于数据的传输和交流。它执行的结果是:创建了服务器,设置端口号后启动监听,在客户端连接后显示相应信息。一个服务可同时连接多个服务器,通过这种连接方式将各个AIS基站连接成一个整体。AIS基站网络系统的网络模块主要分析流程可以从下面三个方面来说明: 基于、,C_H的AIS基站网络系统的研究与实现(1)建立服务器并进行监听【261;(2)建立客户端并与服务器实现连接,构建AIS信息网络;(3)实现AIS的信息的网络传输和收发。AIS基站网络系统的网络模块上述的三个操作中(1)(2)两项操作是构建AIS网络的基础,实现了构建AIS网络后就可以在网络中传输和交流AIS数据,并且工作人员可以从服务器和客户端交流意见信息,AIS数据和交流信息都可以通过串口传递给相关设备,继而实现了操作(3),最后将相关的结果写入到相关的其他模块,从而实现系统的整体功能。本模块使用socket套接字进行winapi异步网络socket编程方式。其核心是WSAAsyncSelect0函数。本函数请求WindowsSocketsDLL,并为窗1:3句柄发一条消息。在检测到由IEvent参数指明的网络事件后,发送的消息由wMsg参数标明。用S标示被通知的套接口。本函数的特点是自动将套接口设置为非阻塞模式。IEvent参数由下表中列出的值组成:FDREAD为欲接收读准备好的通知:FDWRITE为欲接收写准备好的通知;FDOOB为欲接收边带数据到达的通知;FDACCEPT为欲接收将要连接的通知;FDCONNECT为欲接收已连接好的通知;FDCLOSE为欲接收套接口关闭的通知【2刀下面将我们从服务器和客户端两个角度将详细介绍,AIS基站网络系统的网络模块的详细实现流程。4.2.1服务器端的网络构建设计.服务器端网络构建的方法是先从界面读入用户写入的端口号,在通过该端口号建立起socket套接字后启动监听,在与客户端建立起联系后,建立起客户端、服务器网络。它执行的结果是:将双方的串1:3接收AIS信息和解析出的电文相互收发,包括船舶动静态信息,从而实现信息共享。另外,可以实现文字信息交流。 第4章AdS基站网络系统技术实现本部分构建过程如下:首先,调用WSAStartup0函数初始化winsock库。然后,获得本机名和IP地址后结合从界面端获得的端口号填充本地TCPSoCket地址结构,再通过该结构绑定TCP端口。在端口建立成功后使用WSAAsyncSelect0注册异步事件。若事件注册成功,则建立接收相应函数OnAccept0,网络数据接收函数OnRecv0和关闭套接字相应函数OnClose0。然后启动监听,若监听到有客户端发送连接请求则建立起tcp/ip连接,从而建立起网络通信。一方面可以接收有客户端发送过来的AIS电文信息和AIS电文原码,一方面也可以将服务器端解析的电文信息和用户关心的AIS电文原码发送给服务器端。服务器端设置最多可以连接10个客户端。本部分设计框图如图4.4所示。 基于、B什的/MS基站网络系统的研究与实现图4.4服务器部分设计框图Fig.4.4thedesignoftheserver.25. 第4章AIS基站网络系统技术实现4.2.2客户端的网络构建设计客户端网络构建的方法是先从界面读入用户写入的客户端IP地址和端口号,然后通过该IP地址和端口号创建TCPSocket,并用此TCPSocket连接服务器,从而建立起客户端、服务器网络。连接成功后通过WS从syncSelect()函数建立异步事件,有数据输入后,将消息投递给OnRead0实现客户端功能。本模块服务器最多可以连接10个客户端,从而构建起AIS基站网络。.本部分构建过程如下:首先调用WSAStartup()函数初始化winsock库。然后,通过界面传递过来的客户端IP地址和端口号创建TCPSocket。在成功建立Socket后使用WSAConnect0函数连接服务器,并使用WSAAsyncSelect0函数注册异步事件。若事件注册成功,则创建网络数据接收函数OnRecv0和关闭套接字相应函数0nClose()。在成功与服务器连接后,就构成了一个服务器/客户端网络。从而可以实现AIS电文数据和信息的网络收发。本部分设计框图如图4.5所示。 基于、,C.H的AIS基站网络系统的研究与实现图4.5客户端部分设计框图Fig.4.5thedesignoftheclient.27. 第4章AIS基站网络系统技术实现4.3解码模块设计由串口模块接收的AIS数据需要进行解码。从而将AIS电文解码成信息明文,从而可以使工作人员和科研人员可以直观地分析出AIS电文中所包含的信息。本软件系统的解码模块的作用分为两部分:其一在串口部分接收AIS电文后,对相关的信息电文1和电文5进行解码,从而得到船舶的动静态电文信息。将该信息抛递给窗体显示,并通过网络模块给数据库模块进行信息的网络传输和存储。其二是提取基站信息和报警信息,并将上述两种信息上抛给显示窗体以便于相关工作人员监视和分析基站的运行状况。4.3.1电文介绍电文l为船舶动态信息即位置报告电文。电文信息包含旋回速率、实际航速、经纬度等。位置报告电文由移动站定期输出。电文详细参数如表4.1所利2研:表4.1电文l,2'3简表Tab.4.1Themsg1,2,3参数比特数说明电文ID6电文序号1,2或3的识别码转发指示器2转发器用其指示电文已转发次数0~3:默认=0,3=不再转发用户识别30MMSI号码码航行状态40=航行中,用主机;1=锚泊;2=失控:3=机动性受限制;4=受吃水限制;5=系泊:6=搁浅;7=捕鱼;8=驶帆航行;9=保留供将来高速船用;10=保留供将来地效翼船用:11~14=保留供将来使用:15=未定义=默认旋同速率8±127(.128(80hex)无效,默认)ROTAIS按以下公式编码:ROTAIS=4.733SQRT(ROTsensor)ROTsensor是外部传感器指示的旋回速率(700度/分)+127=以720度/分或更高速率向右转一127=以720度/分或更高速率向左转SOG10实际航速。以1/10节步进计(O.102.2节)l023=无效,l022=102.2节或更高位置精度1l=高(lO米,自主模式,如GNSS接收机或电子定位设备)0=默认经度28经度,以1/10000弧分计(±180度,东=正,西=负) 基于、^口+的AIS基站网络系统的研究与实现续表纬度27纬度,以1/10000弧分计(±90度,北=正,南=负)C0lG12实际航向以1/10度计(0--一3599)。3600(E10hex)=无效=默认;3601"-4095不应使用真艏向9度,(0-359)(511表示无效=默认)时间标记6报告生成时的UTC秒0"-'59;或60,如时间标记不可得,这也是默认值;或62,如电子定位系统工作于估计(推算)模式;或6l,如电子定位系统工作于人工输入模式;或63,如定位系统不工作统情况保留供区4保留供有授权的地区当局定义。若没有区域性应用,应置为域性应用零,区域性应用不得置为零备用1不用,应置为零RAIM标志l电子定位设备的RAIM(接收机自主完好性监测)标志;o=未使用RAIM=默认;l=使用RAIM通信状态19总比特数168电文5为船舶静态信息与航次相关数据电文。电文信息包含呼号、船名、目的地,吃水等。该电文仅供A类船舶移动设备报告静态或航次相关数据之用。电文详细参数如表4.2所利291:表4.2电文5简表Tab.4.2Thems95参数比特数说明电文ID6电文序号5的识别码转发指示2转发器用其指示电文已转发次数器0~3:默认=0,3=不再转发用户识别30MMSI号码码IMO号码301~999999999;O=不用=默认呼号427*6bitASCII字符,“@@@@@@”=无效=默认船名120最多20个6bitASCII码字符“@@@@@@@@@@@@@@@@@@@@”=不可用=默认船型与货8o=无效或无船=默认物种类1—99=如3.3.8.2规定,100--199保留给区域使用200-255=留待将来使用总尺度/30报告位置的基准点,也指示船舶尺度付罾慕准 第4章AIS基站网络系统技术实现续表电子定位4o=不定=默认设备类型1=GPS2=GLoNASS3=GPS/GLONASS组合4=LORAN—C5=CHAYKA6=组合导航系统7=大地测量8~15=不用ETA20估计到达时间:MMDDHHMM,UTC比特19-16:1~12月,o=无效=默认比特15~ll:1~31日,o=无效=默认比特1晰:l~23小时,24=无效=默认比特5~0:0"59分,60=无效=默认当前最大8以1/10米为单位,255=25米或更大吃水吃刀(o=无效=默认,符合IMOA.851决议要求时间标记6报告生成时的UTC秒0"59;或60,如时间标记不可得,这也是默认值;或62,如电子定位系统工作于估计(推算)模式;或6l,如电子定位系统工作于人工输入模式;或63,如定位系统不:I:作统情况目的地120最多20个6bitASCII码字符“@@@@@@@@@@@@@@@@@@@@”=不可用DTEl数据终端准备就绪(o=有效,l=无效=默认)备用lO不用,应置为0总比特数424占两个时隙4.3.2AIS电文语句拆分由于AIS电文语句以O[J回车换行为结束标志,因此串口部分选择以为标志上抛AIS语句,继而传递给解码模块的AIS信息是以AIS语句的形式传递的,但是,根据第二章,AIS信息语句具有一定的格式和协议要求,因此,对于AIS电文信息的拆分和信息筛选对于AIS解码的工作是必要和倡导的【301。对于本软件系统要解码的电文1、2、3和电文5,根据AIS电文的基本格式:!AIVDM,1,l,,B,177hsf00048d4mbFlD8;NB4N04j8,0*IA,首先在得到电文信息后判断信息是否为空,若不为空,则判断第一个字符是否为Ox31,即“!’’,若是,则判断字符数组长度是否大于6,若是,判断后5位是否为“A",“I”,“V",“D",“M”:后判断后一位是否为“,’’。然后在取得句总数、该句的句数和句 基于VC.H的AIS基站网络系统的研究与实现子所在的组数分别记为flagSum、flagNum和flagTeam作为电文有效部分拼接的依据,接着判断后面的站台号是否合法,最后就可以将最后两个“,”做为标志,取出其间的电文有效部分。取出后将有效部分按顺序存到一个链表中,再复制给一个独立的数组抛递给电文解码部分进行解码。该部分的逻辑框图如图4.6所示。图4.6电文拆分部分设计框图Fig,4.6thedesignofthedatadealing4.3.3动静态AIS电文信息解码在动静态AIS电文信息解码部分,因为IEC61162定义的8BIT“ASCII"码字符与封装的AIS电文所用的6BIT二进制组合之间的特定关系,需要建立从8BIT 第4章AIS基站网络系统技术实现ASCII码转化为6BIT二进制组合的函数和从6BIT二进制组合转化成8BITASCII码的计算机算澍3¨。例如字符“E’’在计算机中是以字符串“01000101”代表的,而6BIT二进制字段为“010101"。而在计算机算法中,该两个二进制数之间存在数学上的函数关系。将ASCII码字符转换为6bit二进制的方法较复杂,原因是ASCII码必须经过测试,以保证其代表的是一个有效符号,若ASCII码不是有效的,则通过终结对一个封装电文的解码过程而退出数学处理,该函数流程如图4.7所示。图4.7ASCII码转换为6bit二进制字段的逻辑框图Fig.4.7transitionofASCIIcodeto6bitcode如果测试的ASCII码不在有效字符范围内,则测试将检测到错误。如果测试的ASCII码在有效字符范围内,则将数据加上00101000。如果相加的结果的和大 基于、,C.H的AIS基站网络系统的研究与实现j二0X80,则加上00q00000,否则加上00101000。经过以上的逻辑运算后,得到的和的最低6位等于6bit码的相应的二进制数【32l而6bit码转换为ASCII码则相对简单。代表64种6bit二进制组合的有效字符本身是由8bit二进制组合,AIS设备的PC机串口通过这些组合向外发送。根据%∥ASCII码”字符与封装AIS电文所用的6bit二进制组合之间的特定关系建立氓8bitASCII码转换为6bit二进制组合或者从6bit二进制转换为8bitASCII码所蕊的琏本数学信息。将6bit二进制转换为ASCII码的方法如图4.8所示133l:图4.86bit二进制转换为代表它的ASCII码Fig.4.8transitionof6bitcodetoASCIIcode取得的6bit数据是以00木木幸宰宰幸的形式存在的,要取得完整的电文信息,必须将前面的无效为00去掉,在解码函数中使用以下算法实现该过程。该算法通过表4.1和表4.2,通过电文信息对应的比特位数将该部分信息取出,其详细过程为:解码函数引入参数字段的首尾比特位置数对6求余数(modl,mod2)和商数,然后将参数一,:段在整个电文中所占的字段提取出来,接着屏蔽掉第一个参数中不属于本字段的几个比特。若参数是一个字节,则屏蔽掉参数后面不属于本字段的几个比特。若不是,则通过移位将参数后面的6个比特移位为一个数,然后屏蔽掉参数后面不属于本字段的几个比特。从而,提取出相应信息所对应的字段。该函数算法的流程图如图4.9所示。 第4章AIS基站网络系统技术实现开始参数字段的首尾比特位置数对托余数(roodl,rood2)和商resultl.result21Modl=07、、丫一一一一l是Resultl=resultl-1Modl=6Moct2=07、、丫一一一一l是否Result2=result2.1mod2=6将参数字段在整个电文中占的字节数提取出来屏蔽掉第一个字节中前几位不属于本参数的比特屏蔽掉本字节中后面不属于本参数的比特位;数臂一个\-7"岁"---C参数只占一个。节f!/否本参数几个字节中的最低6比特通过位变成一个数蔽掉最后字节中后面的不属于参数的比特位结束图4.9解码部分数据形式转换部分函数逻辑图Fig.4.9thedesignofthedecodingpart在取得AIS电文字段后,将对应字段将比特数组转化为对应的信息即可。处理过程以电文1,2,3中的经度信息为例。首先将取得的byte[]转化为double,然后将该值除以6,000所得的整数部分即为度数。判断该值是否大于180,若是,则不符合相关格式标准,抛出无效信息;若否,则将该值与取整值相减,得到的部分即使经度中分的部分,将该值乘以60并加O.5。再将两部分想加,就得到了完整的经度信息。该部分逻辑图如图4.10所示。.34. 基于VC++的AIS基站网络系统的研究与实现图4.10解码部分取得经度信息逻辑图Fig.4.10thedesignofthedistractionofthelongitudeinfo解码部分其他信息的提取与经度信息的提取方法大同小异,以下不再赘述。4.3.4基站信息处理基站信息分为两大类,一类是基站配置信息电文,一类是基站监视电文。顾名思义,这两类电文分别管理基站的配置信息和基站的监视信息【34】。其中基站配置信息电文分为3大类:$PSTT电文,$PAIS电文和$AIAIQ电文。其中$PSTT为查询设备硬件信息电文,例如304号电文:SPSTT,304,1,004800,1.38为串口信息配置电文。$PAIS电文为基站软硬件信息配置电文,电文形式为:$PAIS,2l,R40O.32,R40,118,-,1.311-LI,SSII1CPT,7000100550,17376,1.10,3宰3B,其中包含了基站、GPS、基站控制软件、天线发射台的软硬件版本还有设备ID和验证码等信息。$AIAIQ电文包含了设查询信息电文,例如电文$AIBCF,819570860,0,3852.1194,N,1213I.3445,E,12087,2088,2087,2088,l,l,3,0,AI*4 第4章AIS基站网络系统技术实现5包含了基站MMSI号、ID识别号、信息重复次数、应答指示器、ADS时间RX频道、TX频道、是否开启TX和经纬度信剧3习基站监视电文分为两大类:一类是基站错误信息。检测错误的AIS电文可以报告如帧同步、GNDSS、TX、基站温度、RXA、RXB、BSC、时间同步、使用中的传感器设置、天线VSWR、DC电源、基站位置、时钟和时隙设置等错误报告。电文格式为:$AIALR,000000.00,037,V,V,AIS:Framesynchronisationfailure*66。第二类是取得基站状态信息,本电文用来报告所需的各种基站状态。例如电文:$PAIS,0B,0A,0C,00D,FFF,FFF,008,1"36可以报告基站的GPS信息。以上两种电文信息的信息提取参照动静态信息的信息提取,除少数电文记录需要解析外,大部分电文信息是明文。取得的AIS基站信息一方面通过消息投递给界面显示,另一方面结合系统时间用制作日志log文件记录相关电文,以备相关工作人员分析相关基站状态和配置参数是否正确【361。4.4存储模块设计AIS基站网络系统的存储模块分为两大部分:第一个大部分是服务器端的数据库存储部分,第二个大部分是客户端的log文档制作。其中第一大部分分为制作船舶电文动静态信息表和电文记录表两部分,第二部分分为基站参数信息记录和基站错误信息记录。数据库部分使用到的技术是mysql数据库技术,而文档记录则直接使用v卅语言建立t)【t文档并记录相关电文和对应的系统时间。4.4.1数据库存储部分如上文所属,数据库存储部分分为静态表和动态表两部分。由于MMSI号为船舶的唯一标示,因此将MMSI设置为主键将动态表和静态表关联起来,即可以表示出一艘船舶的动向信息;并且,通过MMSI号的查询,可以得知船舶的进出港情况。这些信息对于相关工作人员的船舶设备的监视和第一手信息的获得和分析是十分重要和必要的。本部分使用的数据库是MySQL数据库,该数据库的优点和选择使用该数据库的原因是它使用的核心线程是完全多线程,支持多处理器。并有一个高度优化的类库,该类库实现了SQL函数库,并能快速存储信息和信息检索叨。在查询初始 基于、BH的AIS基站网络系统的研究与实现化后没有任何内存分配,继而没有内存漏洞。并且该数据库全面支持SQL的GROUPBY和ORDERBY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG0、STDO、SUM()、MAX()和MIN0)。不仅如此,MySQL数据库可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCLAPI等多个平台,利于以后的系统扩展【3引。在vc2008中使用数据库的第一个步骤是对数据库的增删改查等操作进行重新封装。本部分建立了一个数据库封装类,封装了数据库连接、取得数据库记录,全选数据库记录,查询数据,删除数据,插入数据,更新数据,取得列号,取得客户端信息,取得客户端信息,取得服务器信息,取得协议信息,取得错误信息等函数。方便在需要调用数据库存储的模块进行调用。本软件系统仅适用部分封装函数,考虑到将来可能的程序扩展,因此封装了较多的数据库函数以期该数据库封装类的功能完全。使用数据库封装函数的方法很简单,下面以插入电文数据位为例进行说明,其他数据库存储和改动操作均与此大同小异。操作工程如图4.11所示。图4.11数据库存储封装函数调用逻辑图Fig.4.11thedesignofthedatabasewrapping 第4章AIS基站网络系统技术实现4.4.2日志文档存储部分考虑到安全因素和用户需求,在客户端不适合使用数据库作为存储媒介,而是使用记录txtlog文档的方式对AIS基站信息进行记录。考虑到数据量的承载能力和客户端用户需求方面客户端方面不需要也不建议对船舶动静态信息的数据进行直接提取,因此log文档的记录范围仅限于包括基站硬件信息、软硬件版本信息、基站查询信息的基站配置信息和包括基站错误信息和基站状态信息的基站监视信息进行txtlog文档记录。因为电文内容大多为明文,因此使用直接记录电文的方式建立txtlog文档。日志文档的记录方式如下,在客户端串口接收电文后,电文被投递给文档记录类。该类首先判断电文信息的格式是否是关心的相关信息格式。若是相关的AIS信息电文,则记录系统时间后加入存储日志信息链表的尾部。若链表的元素个数大于100,则进行文件写入操作,这样做的原因是防止过频地开关日志文档造成数据丢失和占用系统资源。在文件写入成功后关闭日志文档并清空存储链表。本部分逻辑图如图4.12所示。 基于、,e阡的AIS基站网络系统的研究与实现图4.12txtlog文档制作部分逻辑图Fig.4.12thedesignofthelog.39. 第5章测试系统设计与测试结果本文设计的AIS基站网络系统的系统设计阶段的研究重点是AIS基站网络系统的需求分析、架构、系统模块划分和各模块的具体实现流程。第三章研究了AIS基站网络系统的需求分析和整体设计。第四章则针对系统模块进行了具体的模块流程设计。而本章将从软件系统在实际基站环境的实测工作出发,首先进行对软件测试环境的搭建进行了分析;之后进行了相应系统参数的设定,并在搭建好的环境中对本AIS基站网络系统进行了功能性以及稳定性的测试,并对测试结果进行了记录和分析。5.1AIS基站网络系统测试环境搭建本设计测试使用的数据是直接由导航实验室的实际AIS基站提供的。测试环境搭建工作如下:首先分别在服务器和客户端两台PC上安装本系统的服务器和客户端软件;然后分别将服务器PC机与AIS基站的数据接口用串口相连,客户端PC机与终端设备的数据接口用串口相连;最后将服务器和客户端用网络相连,从而搭建起实际的AIS基站网络系统测试环境。系统测试环境搭建框图由图5.1所示:图5.1AIS基站网络系统测试环境搭建Fig.5.1buildingofthesystemtestenvironment5.2AIS基站网络系统界面本设计界面友好,操作简单。以服务器端为例,界面分为串口设置区、连接信息、服务器控制、接收信息、船舶动静态信息显示区和报警信息与基站信息显示区几个区域。各区域分门别类地显示了相关的数据结果,有利于工作人员进行对实时数据信息的检测。在软件系统接收和处理数据的过程中自动完成信息的数 基于VC*-的AIS基站网络系统的研究与实现据库存储和日志记录制作。本设计的整体界面如图5.2所示。图5.2AIS基站网络系统界面Fig.5.2theviewofthesystem5.3AIS基站网络系统各模块测试及分析5.3.1串口模块测试和分析串口模块的主要功能是在设置相应串口参数后从串口接收数据。软件系统使用的串口参数是串口COMl,波特率38400,校验位NONE,8位数据位,1位停止位。在设置好相应串口参数后,点击“打开串口"按钮,数据从AIS基站通过串口传输到串口模块,并在串口接收窗口显示从串口接收过来的数据。串口参数设置和串口数据接收窗口分别如图5.3和图5.4所示。 第5章测试系统设计与测试结果串r'n设盛串r-n-马l-[coMr———焉渡特j嚣13Bqoo、一梭验位{NONE、,[j垂垂匦垂垂妇[二至亘垂垂垂口图5.3串口没置窗口界面Fig.5.3theviewoftheserialportsetting按靛f言童从本地审口接收口9熬蠡;!AM)^I,l,1。B,1的】’∞2胡eB3F5Q加(pOp02:4口rV20T8,0+74;!AIVDM,i.1。B,369为e001】‘由6FBkE5|馒!voi妒.0智;!AD4)M,1,1..8.16:~T00008舯IbF斯4k04V24j8.0‘坞;IAfv【)0,1,】.A4<=V‘clu:6RC‘dBA:F?JJW000;i,o'751图5.4串口接收数据显示界面Fig.5.4theviewofthesystem5.3.2网络模块测试和分析网络模块的功能是将服务器端与客户端进行网络连接。本AIS基站网络系统的服务器端使用的测试端口为8800。在设置端口号并进行网络监听后,在客户端输入服务器端IP地址和端口号,点击“连接服务器"按钮与服务器端连接,同时,在显示连接信息串口显示连接信息。在建立起网络之后,发送服务器信息和客户端信息,在服务器和客户端的网络接收部分相应的显示了发送的信息。从而证明了网络模块测试成功。服务器端和客户端网络配置窗口如图5.5和图5.6所示。 基丁VCH的AIS基站网络系统的研究与实现服务器控制端口号蟹服务器信息}thisisaAISworkstationmessage客户端控制_________●_●_●__●_^●-__●●●______。’-__'______●__●一IP:}272.22.204_30p0RT:鬯_客户端数据}thisisarespondmessage区圈匪匦图5.5服务器网络控制界面Fig.5.5theviewoftheserverwebcontrol图5.6客户端网络控制界面Fig.5.6theviewoftheclientwebcontrol5.3.3解码模块测试和分析解码模块的作用是对船舶动静态信息的提取和对特殊AIS电文的提取。数据由串口模块传递到软件的解码模块后,解码模块就根据相应协议规则对船舶动静态信息进行解析,并进行对特殊信息的提取工作。在解码完成后将解码信息和相关电文向显示端上抛。经对解析数据的分析后,确定信息解码和信息提取工作准确无误。从而证明了解码模块测试成功。船舶动静态信息、报警信息和基站信息显示窗口分别由图5.7和图5.8所示。 第5章测试系统设计与测试结果糊燃量嗍皱醒SOGCOG4必目哪E121.5l‘恫8翻‘13.9349.841羽咖E12l。46‘l瑚。帕’惦一5.82222挖zz2E12ISI‘N038段‘0,0276。84伍102S町E121。19‘懒。2310,3219.44岱阳]00ElPl'44+懒.35‘16.95,04134咖E121'42’}扣39000。0.0344.4354730000E121澌’N03B珊。65349.0m222口00E12ISI。懈段’0.020D.4t⋯篓!雯篓曼⋯一⋯新妣^。嗍啪呼号ETA目眦鹏甩主机斩二4艘蚴哪嘲咖P24.加17:00HAOYUANO¨.DALIAIqO甩主机甓行。r来定义甩主张行用主机航行.。用撕髓撕束定义■:’t图5.7船舶动静态f。i息显示界^fFig.5.7windowoftheAISinfo’h1_‘'●■^lId‘●di‘,‘^’一脚$AIALR.oooooo.oo,037.V,V.AIs:Fr捌11esynchronizationfallur8-66幸AIALR.091口51.oo,03e.A,v,AIs:DGNssIn匕HJtfail日d·D5}$AIALR.o00000.oo,001.V,V,A15:TxmaIfun[t·o几-4B$PsTT.1FE.100,002.005.oo】-_1A$PsTT,1FE.100.002.007,001_18幸psTT,1FE.100.oD2.007,001·18{AIALR,091951.oo,030.A.v,AIs:oGN5sInputfailod中05●图5.8报警信息和基站信息显示界面Fig.5.8windowofthealarmandbasestationinfo5.3.4存储模块测试和分析数据库存储部分的作用是存储接收的AIS电文和解码得到的船舶动静态信息、报警和基站信息。经测试,由软件系统接收到的AIS电文和处理后得到的船舶动静态信息和基站信息均通过MYSQL数据库存储成相对应的AIS电文表、船舶动静态信息表报警与基站信息电文表。经比对,数据存储准确无误。各存储表分别由图5.9、图5.10、图5.11和图5.12所示。垂二二二二二盈豳图豳霾豳豳蓊瀚落豳鍪缢豳豳豳霆露葱圈一2012-}2815:16:30t$PAIS,0BJ08,0A,013,FFF,FFF,00A,1+4220—20h_u202·4·282.}282.牛285:^^1S:6:326:356:3720i2·牛2815:16:3820i2斗2815:16:39SPAIS,0~20120428,071620+sB:!AIVDM,lJIJ,AJl3np38001v’出8、E5h’;raNF呼R5,0"411AIVDM,IJI"A,13CsGSgPOOSdBSFF?LbPvN2<0u。0+斗C1AIVDM,1,I,,B,E>EB囊U=IHl6W@860b37a6№)@@DEh88;I¨lGOQ哞9IK旧10,4+41图5.9AIS电文表Fig.5.9windowoftheAIScode..44.. 基丁vc卧的AIS基站网络系统的研究与实现远趣匠二匿二二.::::盏::.二重二]莶二重二二:]壬二.:玉:.二=重231强烈al—El6120董畸研砘b嗍五9五I姗隗17378磷确国硼∞d椭翻a1;|警+7盯5酗剐图5.10船舶动态信息表6撕eel5伽嗍到m瞄喇Fig.5.10windowofthedynamicinfo恤蜊捌啪哺酬砌础西5毛月毛.2警.8壕岛鹭鳓f:=:巴J2f2岂:.E=!:巴盟墨翟戮黻黝l锄398;姗姻0"0艄姗口盛确蕊柳姗锨Il刀38I口I皿配}1瑚嘁}娥3812a黼虬姗舯湖5岫邛图5婚旺8幽雕瑚811.3蚍fB删£05.7懈0n.】11船舶静态信息表Fig.5.11windowofthestaticinfo心酐lO蚓1201一{一2815:17:52国ZOIZ4-2815:18:2$PAl5,08,OA,0C,000,FFF,FFF,008,1"36图5.12报警信息和基站信息表Fig.5.12windowofthealarmandbasestationinfoLOG文档的作用是记录用户关注的警告与基站信息。在客户端从串口和网络接收到AIS电文后,就自动进行相关电文的LOG文档制作。经与实际数据比对,矿P’≮戋0作准确无误。生成的LOG文档如图5.13所示。2012/6/1910:16:532012/G/1910:16:53.■112/6/1910:16:53’,’12/6/1910:19:311/6/1910:19:3117:/6/1910:19:31二()12/6/1910:19:46二012/6/1910:19:462012/G/1910:19:4G?012/6/1910:23:49messagemessalge111essageI'TleS$agel"rlefi:Sagemessagemimosagemessagesendtoserver$1’AIS,OA,20120420,063414’55s吼dtos∞r瓯SPSTT、1程,100,00_9,005,001’1Aselt'ltdtosaⅧSapsTr.1t'E,100,002,005,001’1Areceivedfromselver$t'Ais,0A,20120420,063414’55l'eceivcdfromservcrSeSTT,1亿,100,002,005,001’1AreceivedfiromseⅣ比SPSTT,1rE,100,002,005,001-1ASelldtoser矿ef$£AIS,OA、201204ZO,063414’55sel'ltal'oserv日:$黔TT,1FE,100,00_9,005,001’1Asendtoserver=$PSTT,1FE,100,002,005,001’1Areceivedfroms洲efSPAI$,oA,20120420,063424’5t3图5.13重要信息LOG文档Fig.5.13logofimportantinfo..45.. 结论本文在深入研究了AIS原理、AIS电文和IEC61162协议的理论基础上,利用vC++语言开发了一套AIS基站网络系统。本文在对当前AIS网络和船站需求分析的基础上,设计了AIS基站网络系统的整体架构,给出了系统架构设计图,分析了其整体逻辑框架,系统的模块划分,各模块的关系以及模块中的数据流向。同时,本文完成了系统各模块的具体实现流程和核心函数和方法的设计。按照设计的架构以及各模块的具体实现流程,完成了使用v卅编程语言在pc系统的该AIS基站网络系统的开发。并且,该系统使用了实验室的AIS基站设备进行了实际测试。经测试证实本系统可以完成实际AIS数据电文的接收、解码、存储、网络构建的整体功能;运行稳定,健壮性强,系统效率较高,完成系统的设计要求。本文设计的AIS基站网络系统主要有以下特占.J¨、o(1)本文设计的AIS基站网络系统基于VC抖语言作为语言平台,使用了多线程和API技术,尽可能小地占用系统资源和实现高效率,从而提高了系统的性能。(2)本文设计的AIS基站网络系统在AIS电文处理方面涉及面较广,包含了船舶动静态信息和基站的配置和监视信息,基本囊括了AIS电文的各个方面,对于今后的研究有很强的指导价值。(3)经过测试,本文设计的AIS基站网络系统具有很强的健壮性,在网络条件允许的情况下,在实际AIS机房长时间运行,经与实际设备的数据的横向和纵向比对,证实功能实现方面和系统运行方面均稳定可靠。(4)本系统的存储方式基于客户端和服务器的需求不同使用了不同的设计方案,实现了相关企事业单位对于AIS基站网络工作的相关需求。本文目前为止基本实现了AIS基站网络系统的功能,但是系统中还有一些有待于优化的环节,另外,本文设计的AIS基站网络系统是基于学术研究的实验系统,真实的AIS系统更为复杂,有许多情况由于时间原因没有完全考虑。因此实 基于、,C.H的AIS基站网络系统的研究与实现际应用中还需要考虑很多问题,本设计的作用是提供一个理论可行性研究和实际设备的设计方向标准。本人认为,本系统的进一步研究工作还应有以下几个方面:(1)本系统中的AIS电文分析覆盖面较广,但是由于常规电文和特种电文的数量很庞大不能一一进行解码和研究,因此还需要进一步进行AIS电文解码和信息提取方面的研究,以期完善系统功能。(2)由于AIS数据的庞大性和相关性,在丰富AIS电文解码和数据提取的基础上,应重新进行AIS服务器数据库的设计,并进一步丰富数据库内容,努力实现相关工作单位全部的对于AIS基站网络的功能需求。以上构想均是针对提高AIS基站网络系统性能和应用性提出,日后可根据实际需求逐步实现。 参考文献[1]袁安存,张淑芳编译.通用船载自动识别系统.大连海事大学出版社,2005.[2]黄立清等编著.AIS输出数据包的解包技术研究.集美大学学报,2005,1:56-78.[3]丁振国编著.AIS信息解析的计算机实现研究.中国水运,2008,1:5-8.[4]催岚波编著.船舶通信与导航.哈尔滨:哈尔滨工程大学出版社,2007.[5]孙文力等编著.船载自动识别系统.大连:大连海事大学出版社,2004.[6]刘畅编著.船载自动识别系统及其在VTS中应用的关键技术研究.大连:大连海事大学,2002.[7]邓洪章编著.我国船舶自动识别系统(AIS)岸台建设概括.船用导航雷达,2004,3:45-48.[8]李金伟等编著.应用AIS减少不协调逼碰行动的发生.世界海运,2004,27:59-61.[9]徐志京等编著.AIS四种协议的应用探讨.航海技术,2003,4:28-30.[103D.HaeseleerP,ForrestS,HelmanP.Animmunologicalapproachtochangedetectionalgorithms:Analysisandimplication.ProcIEEEsymposiumOilsecurityandprivacy,LasAlamitos,CA,USA,1996:110—119.[11]KononenT.SelmganizingMaps.SpringVerlag,1995.[12]RichardKjellberg.AnalysisofanAISImplementationinTokyoBay,2001f[13]IvorHorton.Beginningvisualc++.WileyPublishing,2010.[14]BruceEckel.Thinkinginc++.McGrawHill,2000.[15]萨特.C++编程剖析:问题方案和设计原则.北京:电子工业大学出版社,2011.[16]万健.数据结构使用教程c++版.北京:电子工业出版社,2011.[17]陈国建,张建辉.C++标准教程.北京:化学工业出版社,2011.[18]付丽娜.c++面向对象程序设计.北京:清华大学出版社,2010.[19]埃克尔.C++编程思想.北京:机械工业出版社,2011.[20]利伯蒂.C++入门经典.北京:人民邮电出版社,2011.[21]Rajkumar.Masteringc++.TataMcGrawHill,2001.[22]StanleyBLippmamC++Primer.北京:人民邮电出版社,2011.[23]StanleyBLippman.Essentialc++.北京:人民邮电出版社,2006.[24]http://blog.csdn.net/hejishan/article/details/2287310.[25]http://sd.csdn.net/a/20111114/307392.html..48. 基于、,C.H的AIS基站网络系统的研究与实现[26]StephenD.Huston.C++NetworkingProgramming,2003.[27]代勇.Visualc++网络通信编程技术详解.北京:机械工业出版社,2011.[28]梁伟.Visualc++网络通信经典案例详解.北京:清华大学出版社,2011.[29]王斌军.面向对象的方法学与VisualC++语言.北京:清华大学出版社,2011.[30]徐惠民.C++高级语言程序设计.北京:人民邮电出版社,2011.[31]肖俊宇.由浅入深学C++.北京:电子工业出版社,2011.[32]http://sd.csdn.net/a/20120604/2806304.html.[333http://删.cplusplus.com/doc/tutorial.[34]http://www.cplusplus.com/forum/general/72582.[35]MichealKofler.Thedefinitionguideofmysql.Apress,2011.[363朱定泽.MYSQL核心内幕.北京:清华大学出版社,2010.[37]郑阿奇.MYSQL使用教程.北京:电子工业出版社,2010.[38]清宏计算机工作室.MYSQL编程技巧.北京:机械工业出版社,2002..49.. 图表清单图2.1AIS的构成框图⋯⋯一⋯~⋯⋯⋯——~⋯⋯⋯一⋯——一6图2.2电文结构⋯一图2.3AIS电文数据的无线电信号封装比特结构一一图2.4封装字符串解码工作图3.1AIS基站网络系统模块框图图4.1系统模块关系框图图4.2串口模块设计框图一一图4.3线程监听函数设计框图图4.4服务器部分设计框图图4.5客户端部分设计框图表4.1电文1,2,3简表一表4.2电文5简表图4.6电文拆分部分设计框图图4.7ASCII码转换为6bit二进制字段的逻辑框图31图4.86bit二进铝0转换为代表它的ASCII码⋯⋯~——⋯~一一⋯一33图4.9解码部分数据形式转换部分函数逻辑图图4.10解码部分取得经度信息逻辑图图4.11数据库存储封装函数调用逻辑图图4.12txtlog文档制作部分逻辑图343537·3940图5.1AIS基站网络系统测试环境搭建图5.2AIS基站网络系统界面图5.3串口设置窗口界面-4142图5.4串口接收数据显示界面图5.5服务器网络控制界面图5.6客户端网络控制界面图5.7船舶动静态信息显示界面图5.8报警信息和基站信息显示界面4344om坞"均毖筋卯蕊约一 基于VCH的,MS基站网络系统的研究与实现图5.9AIS电文表一图5.10船舶动态信息表图5.1l船舶静态信息表图5.12报警信息和基站信息表图5.13重要信息LOG文档4445 致谢随着本文的完成,我的研究生生活也即将结束。在这里,首先感谢我的父母对我从事研究生研究生活的一贯支持和在我遇到生活和学术上的困难和问题时的关心和谆谆教导。我要感谢我的导师张淑芳教授在过去两年的研究生学习和研究生活中为我提供的良好的实验室环境和学习和科研方面的指导和帮助。感谢胡青老师在学习和科研工作中的指导和引路。各位老师伟大的人格魅力、科研精神和工作能力是我不断前进的动力和学习榜样。感谢张晶泊、孙晓文,姜毅等多位师兄师姐在学习和科研工作中给予我的帮助和指导。还要感谢我的同门在我的学习和生活方面给了我很多动力和支持。感谢我的朋友们一直以来给我的无私帮助和支持,你们是我完善自己的动力和克服挫折不断前进的航标。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭