基于VxWorks的ECDIS基础显示平台关键技术与应用研究_第1页
基于VxWorks的ECDIS基础显示平台关键技术与应用研究_第2页
基于VxWorks的ECDIS基础显示平台关键技术与应用研究_第3页
基于VxWorks的ECDIS基础显示平台关键技术与应用研究_第4页
基于VxWorks的ECDIS基础显示平台关键技术与应用研究_第5页
已阅读5页,还剩25页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于VxWorks的ECDIS基础显示平台关键技术与应用研究一、引言1.1研究背景与意义航海业作为国际贸易和全球经济发展的重要支柱,船舶航行的安全与效率始终是行业关注的核心问题。在广阔且复杂多变的海洋环境中,准确、及时的导航信息对于船舶避开危险区域、规划最优航线、保障人员与货物安全至关重要。传统的纸质海图导航方式存在信息更新不及时、难以与其他导航设备集成、数据分析处理能力有限等缺陷,已无法满足现代航海日益增长的需求。电子海图显示与信息系统(ECDIS,ElectronicChartDisplayandInformationSystem)应运而生,它以数字化的海图数据为基础,集成了多种导航传感器信息,能实时、直观地呈现船舶周围的航海环境,提供航路规划、避碰预警、航迹记录等丰富功能,成为现代船舶不可或缺的辅助航行系统。ECDIS不仅显著提升了航海的安全性和效率,还为船舶自动化、智能化发展奠定了基础,对民用船舶安全航行保障和海军舰艇作战指挥辅助决策有着极为重要的应用价值。VxWorks实时操作系统以其卓越的实时性、高可靠性、强大的多任务处理能力以及良好的可裁剪性,在航空航天、工业控制、军事等对系统实时性和稳定性要求极高的领域得到广泛应用。将VxWorks应用于ECDIS基础显示平台,能够充分发挥其优势,确保系统在复杂的海上环境下稳定、高效运行,快速响应各种实时任务,如传感器数据采集与处理、海图数据实时更新与显示、用户操作响应等,为ECDIS的高性能实现提供坚实的支撑。本研究基于VxWorks开展ECDIS基础显示平台的研究,旨在设计并实现一个符合国际标准、性能优越的ECDIS基础显示平台,对于推动我国航海导航技术的进步,提升船舶航行安全水平,促进海洋经济的可持续发展具有重要的现实意义。同时,也有助于加强我国在航海领域的自主研发能力,减少对国外相关技术的依赖,增强国家海洋战略竞争力。1.2国内外研究现状在国外,ECDIS技术起步较早,欧美等发达国家在该领域取得了显著的研究成果,并占据了市场主导地位。挪威的Kongsberg、德国的Transas、英国的RaytheonAnschütz等公司的ECDIS产品在国际市场上广泛应用,技术成熟度高,功能完善,能够满足各种复杂航海场景的需求。这些产品在海图数据处理、显示性能、系统稳定性以及与其他航海设备的集成等方面表现出色,并且不断融入新的技术,如人工智能、大数据分析等,以提升系统的智能化水平和决策支持能力。在基于VxWorks的ECDIS研究方面,国外也进行了大量工作。一些研究致力于优化VxWorks系统下ECDIS的实时性能,通过改进任务调度算法、内存管理机制等,提高系统对多任务并发处理的能力,确保海图数据的快速读取与显示以及对传感器数据的实时响应。还有研究关注VxWorks与ECDIS相关标准的兼容性,严格遵循国际海道测量组织(IHO)制定的S-57、S-52等标准以及国际海事组织(IMO)的ECDIS性能标准,保证系统的规范性和通用性。国内对ECDIS的研究虽然起步相对较晚,但近年来发展迅速。众多科研机构和高校,如哈尔滨工程大学、大连海事大学等,在ECDIS技术研究方面投入大量资源,取得了一系列成果。在海图数据处理算法、图形显示技术、系统集成等方面取得了一定的突破,部分研究成果已应用于实际产品中。同时,国内企业也在积极参与ECDIS的研发与生产,逐步缩小与国外先进水平的差距。在基于VxWorks的ECDIS研究方面,国内也有不少相关工作。一些研究通过对VxWorks操作系统的定制和优化,实现了ECDIS基础显示平台的搭建,并对系统的功能模块进行了详细设计与实现,包括海图数据解析、符号化绘制、用户界面设计等。然而,与国外相比,国内在某些关键技术上仍存在一定差距,如在系统的实时性、稳定性和可靠性方面还有待进一步提高,对国际标准的深入理解和全面贯彻方面也需要加强。此外,在ECDIS与其他新兴技术的融合应用方面,如物联网、区块链等,国内的研究还处于起步阶段,需要进一步探索和创新。1.3研究目标与内容本研究的目标是设计并实现一个基于VxWorks实时操作系统的ECDIS基础显示平台,该平台需严格符合国际海道测量组织(IHO)和国际海事组织(IMO)制定的相关标准及规范,具备高性能、高可靠性和良好的用户交互性,能够为船舶提供准确、实时的航海信息显示与辅助决策支持。围绕这一目标,主要研究内容包括以下几个方面:系统架构设计:基于VxWorks操作系统的特点,结合ECDIS的功能需求,采用软件工程学中的模块化设计思想,将基础显示平台划分为多个功能模块,如数据解析模块、数据库管理模块、图形绘制模块、用户界面模块等。利用VxWorks的实时多任务机制,为每个模块创建独立的任务,实现多任务并行处理,提高系统的实时性和响应速度。海图数据处理:深入研究IHOS-57标准海图源文件和S-52标准海图表示库,采用面向对象程序设计方法,设计实现功能独立、内聚性高、耦合性低的类,用于解析S-57海图数据和S-52表示库文件,提取海图要素信息。设计高效的系统电子航海图(SENC)数据库结构,确保海图数据的快速存储、读取和更新,满足系统对海量海图数据的管理需求。图形显示技术:使用TilconIDS图形用户界面开发工具,设计基于VxWorks的ECDIS基础显示平台的用户界面,实现友好的人机交互功能。运用Tilcon绘图API实现海图信息的符号化绘制,根据S-52标准对不同的海图要素进行准确、美观的可视化呈现。研究基于快速显示的图形绘制算法,优化图形渲染过程,提高海图显示的流畅性和清晰度。系统集成与测试:将各个功能模块进行集成,实现基于VxWorks的ECDIS基础显示平台的完整功能。采用功能性测试方法,依据IHO和IMO的相关标准,对平台的各项功能进行全面测试,包括海图数据显示的准确性、系统响应时间、用户操作的便捷性等,确保平台符合国际标准要求,并对测试过程中发现的问题进行优化和改进。1.4研究方法与技术路线本研究采用多种研究方法相结合的方式,确保研究的科学性和有效性。文献研究法:广泛查阅国内外关于ECDIS技术、VxWorks操作系统以及相关国际标准的文献资料,了解该领域的研究现状、发展趋势和关键技术,为研究提供理论基础和技术参考。案例分析法:分析国内外已有的ECDIS产品和基于VxWorks的相关应用案例,总结其成功经验和存在的问题,从中汲取有益的启示,为本文的研究设计提供借鉴。实验验证法:在研究过程中,搭建实验环境,对设计实现的各个功能模块和整体系统进行实验测试,通过实验数据验证系统的性能和功能是否满足设计要求,对实验结果进行分析和总结,及时调整和优化研究方案。技术路线方面,首先进行需求分析,深入研究IHO和IMO的相关标准,明确ECDIS基础显示平台的功能需求和性能指标。然后进行系统总体设计,确定基于VxWorks的系统架构和模块划分。接着开展各个功能模块的详细设计与实现,包括海图数据解析模块、数据库管理模块、图形绘制模块、用户界面模块等。在模块实现过程中,遵循相关标准和规范,运用相应的开发工具和技术。完成模块开发后,进行系统集成与测试,对系统的功能和性能进行全面验证,根据测试结果进行优化和完善,最终实现符合国际标准的基于VxWorks的ECDIS基础显示平台。二、VxWorks与ECDIS基础显示平台概述2.1VxWorks实时操作系统2.1.1VxWorks系统架构与特点VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它采用微内核结构,这种设计理念使得系统具备高度的模块化和可裁剪性。VxWorks的内核Wind是整个系统的核心部分,负责管理系统的各种关键资源,如CPU、内存以及I/O设备等。在内核中,多任务调度是其核心功能之一,采用基于优先级的抢占式调度方式,确保高优先级任务能够在最短时间内得到CPU资源并执行,这种调度策略能有效保证对时间要求苛刻的任务的及时处理。例如,在一个同时处理多个任务的系统中,当有高优先级的任务产生时,内核会立即暂停当前低优先级任务的执行,将CPU资源分配给高优先级任务,待高优先级任务完成或进入等待状态后,再恢复低优先级任务的执行。同时,VxWorks也支持同优先级任务间的分时间片调度,使得相同优先级的任务能够公平地获取CPU时间,避免某个任务长时间占用CPU而导致其他同优先级任务得不到执行的情况。任务间的同步和通信机制也是VxWorks内核的重要组成部分。它提供了多种同步原语,如信号量、互斥量、消息队列、邮箱和事件标志等,这些机制能够帮助不同任务之间协调工作,实现数据共享和协同处理。以信号量为例,当一个任务需要访问共享资源时,它必须先获取对应的信号量,若信号量已被其他任务占用,则该任务会进入等待状态,直到信号量被释放,从而有效避免了多个任务同时访问共享资源时可能出现的数据冲突和不一致问题。消息队列则常用于任务间的异步数据传递,一个任务可以将消息发送到消息队列中,另一个任务可以从队列中读取消息,实现任务之间的信息交互。中断处理在实时系统中至关重要,VxWorks具备高效的中断处理机制。当中断发生时,系统会迅速响应,暂停当前任务的执行,转而执行中断服务程序(ISR)。每个ISR都拥有自己独立的上下文,这使得中断处理能够高效进行,并且在中断处理完成后,能够快速恢复被中断任务的执行,最大限度地减少中断对系统正常运行的影响。定时器也是VxWorks内核的关键组件之一,它可以用于实现定时任务、超时检测等功能,为系统提供了精确的时间控制能力。例如,通过定时器可以定期触发数据采集任务,确保系统能够及时获取外部传感器的数据。内存管理机制方面,VxWorks提供了灵活的内存分配和管理方式,支持动态内存分配和静态内存分配。开发者可以根据具体应用需求选择合适的内存管理方式,以提高内存使用效率和系统性能。在一些对内存使用要求较高的应用场景中,如处理大量数据的航海导航系统,合理的内存管理能够有效避免内存泄漏和内存碎片问题,确保系统稳定运行。除了内核,VxWorks还提供了丰富的系统组件。它拥有一个快速灵活的与ANSIC兼容的I/O系统,涵盖了UNIX标准的BasicI/O和BufferI/O,以及POSIX标准的异步I/O,为设备驱动程序的开发提供了便利,使得系统能够方便地与各种外部设备进行交互。在ECDIS基础显示平台中,I/O系统可用于与传感器、显示器等设备进行数据传输和控制。文件系统方面,VxWorks支持多种文件系统,如dosFs、rt11Fs、rawFs和tapeFs等,能够满足不同应用场景对文件存储和管理的需求。板级支持包(BSP)则为VxWorks操作系统提供了对各种硬件板子的统一软件接口,包括硬件初始化、中断处理、时钟管理、内存地址映射和内存分配等功能,是保证VxWorks操作系统可移植性的关键。通过BSP,VxWorks能够适配不同的硬件平台,为开发者在不同硬件环境下开发应用程序提供了便利。网络支持方面,VxWorks提供了强大的网络功能,支持多种网络协议,如TCP/IP、UDP等,能够实现与其他VxWorks系统或TCP/IP网络系统的通信,满足了现代嵌入式系统对网络通信的需求。在基于VxWorks的ECDIS基础显示平台中,网络支持可用于获取实时的航海数据、更新海图信息等。VxWorks的特点使其在嵌入式实时系统领域具有显著优势。其高性能体现在快速的任务切换时间和极小的中断延时,能够满足对实时性要求极高的应用场景,如航空航天、军事等领域。在船舶航行过程中,ECDIS需要实时处理大量的传感器数据和海图信息,VxWorks的高性能能够确保系统快速响应,为船员提供及时准确的导航信息。高可靠性是VxWorks的另一大特点,它在设计上充分考虑了系统的稳定性和容错性,经过了大量实际项目的验证,在关键任务执行中表现出色。在航海领域,船舶航行安全至关重要,VxWorks的高可靠性能够保证ECDIS在复杂的海上环境下稳定运行,为船舶航行提供可靠的保障。此外,VxWorks还具有良好的可裁剪性,开发者可以根据具体应用需求,灵活选择系统模块,去除不必要的功能,从而减少系统资源占用,提高系统运行效率。在ECDIS基础显示平台的开发中,可以根据船舶的硬件配置和实际使用需求,对VxWorks进行定制化裁剪,使其更好地适应船舶的运行环境。2.1.2VxWorks在嵌入式系统中的应用优势VxWorks在嵌入式系统开发中展现出多方面的优势,这些优势使其成为众多对实时性、可靠性要求严格的嵌入式应用的首选操作系统之一。在可靠性方面,以航空航天领域的应用为例,飞机的飞行控制系统是保障飞行安全的关键,它需要实时处理各种传感器传来的大量数据,如飞行姿态、速度、高度等信息,并根据这些信息快速做出决策,控制飞机的飞行状态。VxWorks凭借其稳定可靠的内核设计、高效的任务调度和中断处理机制,能够确保飞行控制系统在复杂的飞行环境下稳定运行,及时响应各种飞行指令和突发情况,保障飞机的安全飞行。在卫星通信系统中,VxWorks也发挥着重要作用。卫星在太空中运行,面临着极端的环境条件和严格的时间要求,需要与地面站进行稳定、高效的通信。VxWorks的高可靠性能够保证卫星通信系统在恶劣的太空环境下正常工作,实现数据的准确传输和接收。可扩展性也是VxWorks的一大优势。随着科技的不断发展,嵌入式系统的功能需求日益复杂,需要具备良好的可扩展性以适应不断变化的应用场景。在工业自动化领域,一个工厂的自动化生产线可能会随着生产需求的变化而不断升级和扩展,增加新的设备和功能。基于VxWorks开发的自动化控制系统,由于其模块化的设计和丰富的系统组件,能够方便地集成新的设备驱动和功能模块,实现系统的无缝扩展。例如,当需要在生产线上添加新的传感器或执行器时,只需开发相应的驱动程序,并将其集成到基于VxWorks的控制系统中,即可实现对新设备的控制和数据采集。实时性是VxWorks的核心优势之一。在军事领域,导弹控制系统对实时性要求极高。导弹在飞行过程中,需要实时获取目标的位置信息,并根据这些信息快速调整飞行轨迹,以确保准确命中目标。VxWorks的基于优先级的抢占式任务调度机制,能够保证高优先级的任务(如目标跟踪和轨迹计算任务)在最短时间内得到执行,满足导弹控制系统对实时性的严格要求。在医疗设备领域,如放射理疗设备,需要精确控制治疗的时间和剂量,VxWorks的实时性能够确保设备按照预定的程序准确运行,为患者提供安全有效的治疗。在ECDIS基础显示平台的开发中,VxWorks的这些优势同样具有重要意义。船舶在海上航行时,面临着复杂多变的环境,需要ECDIS能够稳定可靠地运行,实时处理各种航海数据,为船员提供准确的导航信息。VxWorks的高可靠性能够保证ECDIS在恶劣的海上环境下不出现故障,持续为船舶提供导航支持。其可扩展性使得ECDIS能够方便地集成新的功能模块,如与其他航海设备的互联互通、新的海图数据格式支持等,以适应不断发展的航海技术需求。而实时性则确保了ECDIS能够及时响应船员的操作指令,快速更新海图显示和导航信息,为船舶的安全航行提供有力保障。例如,当船舶遇到紧急情况时,船员通过ECDIS进行操作,VxWorks能够迅速响应,及时显示相关的应急信息和导航建议,帮助船员做出正确的决策。2.2ECDIS基础显示平台功能与组成2.2.1ECDIS的主要功能ECDIS作为现代船舶不可或缺的辅助航行系统,具备多种关键功能,这些功能对于保障船舶航行安全、提高航行效率起着至关重要的作用。航行安全辅助是ECDIS的核心功能之一。它通过实时获取船舶的位置、航向、航速等信息,并结合电子海图数据,为船员提供全方位的航行安全保障。避碰预警功能是航行安全辅助的重要组成部分。ECDIS利用船舶自动识别系统(AIS)获取周围船舶的动态信息,如位置、航向、航速等,通过算法计算本船与周围船舶的相对位置和运动趋势,当检测到存在碰撞风险时,及时发出警报,提醒船员采取相应的避碰措施。在实际航行中,当本船与其他船舶的最近会遇距离(CPA)小于设定的安全阈值时,ECDIS会以声音、灯光等方式发出警报,同时在海图上突出显示危险船舶,为船员提供直观的警示。浅滩搁浅预警也是保障航行安全的关键功能。ECDIS根据电子海图中的水深信息和船舶的吃水数据,实时监测船舶周围的水深情况。当船舶接近浅滩或水深接近船舶吃水时,系统会发出警报,提示船员注意水深变化,避免船舶搁浅。例如,在船舶进入港口或狭窄水道时,ECDIS的浅滩搁浅预警功能能够帮助船员及时掌握水深信息,确保船舶安全通过。航路规划是ECDIS的另一项重要功能,它能够帮助船员根据船舶的实际情况和航行目的地,制定合理的航行路线。在进行航路规划时,船员可以在ECDIS上手动输入起点、终点和途经点等信息,系统会根据电子海图数据,自动生成多条可行的航线,并综合考虑航线的距离、水深、障碍物分布、气象条件等因素,为船员提供最优航线建议。ECDIS还支持对航线进行编辑和调整,船员可以根据实际航行情况,如遇到恶劣天气、临时改变目的地等,对已规划的航线进行修改,确保航行的顺利进行。在规划跨洋航行的航线时,ECDIS会考虑到洋流、风向等因素,为船员规划出既能节省时间又能确保安全的航线。导航信息显示是ECDIS最基本的功能之一,它将电子海图、船舶位置、航速、航向、时间等重要导航信息直观地显示在屏幕上,为船员提供全面、实时的航行状态信息。电子海图是ECDIS导航信息显示的核心,它以数字化的形式呈现了海洋的地理信息,包括海岸线、岛屿、水深、航标、障碍物等。与传统纸质海图相比,电子海图具有更新方便、显示灵活、信息丰富等优点。船员可以通过ECDIS的操作界面,对电子海图进行放大、缩小、平移等操作,以便更清晰地查看所需的航海信息。船舶位置信息通过全球定位系统(GPS)等导航设备获取,并实时显示在电子海图上,船员可以直观地了解船舶在海上的具体位置。航速、航向和时间等信息也会实时更新显示,帮助船员掌握船舶的运动状态。航迹记录与回放功能能够记录船舶的航行轨迹,为后续的航行分析和事故调查提供重要依据。ECDIS会按照一定的时间间隔,记录船舶的位置、航向、航速等信息,并将这些信息存储在系统中。在需要时,船员可以通过ECDIS的回放功能,查看船舶过去一段时间的航行轨迹,分析航行过程中的异常情况,总结航行经验。在事故调查中,航迹记录可以帮助调查人员了解事故发生前船舶的航行状态和轨迹,为查明事故原因提供重要线索。2.2.2基础显示平台的模块组成ECDIS基础显示平台主要由多个功能模块组成,这些模块相互协作,共同实现了ECDIS的各项功能。数据解析模块是基础显示平台的重要组成部分,其主要作用是对输入的各种数据进行解析和处理,为后续的模块提供可用的数据。在ECDIS中,数据来源广泛,包括电子海图数据、传感器数据、AIS数据等。对于电子海图数据,数据解析模块需要根据国际海道测量组织(IHO)制定的S-57标准,对海图源文件进行解析,提取出海图要素信息,如海岸线、岛屿、水深、航标等。在解析过程中,模块会将复杂的海图数据格式转换为系统能够理解和处理的内部数据结构,以便后续的数据库管理和图形绘制模块使用。对于传感器数据,如GPS提供的船舶位置信息、陀螺罗经提供的航向信息、计程仪提供的航速信息等,数据解析模块需要对这些传感器输出的信号进行解析和转换,提取出有效的数据,并进行数据校验和纠错,确保数据的准确性和可靠性。对于AIS数据,模块会解析船舶自动识别系统发送的信息,获取周围船舶的位置、航向、航速等动态信息,为避碰预警等功能提供数据支持。数据库管理模块负责对海图数据、航行记录数据等进行存储、管理和查询。在海图数据管理方面,该模块根据IHOS-57标准,设计并实现高效的系统电子航海图(SENC)数据库结构,将解析后海图要素信息存储在数据库中。通过合理的数据组织和索引设计,确保海图数据的快速存储、读取和更新,满足系统对海量海图数据的管理需求。在实际应用中,当需要显示某一区域的海图时,数据库管理模块能够迅速从SENC数据库中读取相关数据,并提供给图形绘制模块进行显示。对于航行记录数据,如船舶的航迹信息、操作记录等,数据库管理模块会将这些数据按照一定的格式和规则进行存储,方便后续的查询和分析。在进行航行分析或事故调查时,可以通过数据库管理模块快速查询到所需的航行记录数据。图形显示模块是实现海图信息可视化的关键模块,它使用TilconIDS图形用户界面开发工具,结合Tilcon绘图API,将海图数据和其他导航信息以直观的图形方式显示在屏幕上。根据S-52标准海图表示库,图形显示模块对不同的海图要素进行符号化绘制,将抽象的海图数据转化为直观易懂的图形符号。海岸线可能用特定的线条样式表示,岛屿用特定的图标显示,航标则用不同形状和颜色的符号来标识,使得船员能够清晰地识别各种海图要素。该模块还实现了海图的放大、缩小、平移等交互功能,满足船员在不同情况下对海图显示的需求。当船员需要查看局部海域的详细信息时,可以通过放大操作,获取更清晰的海图细节;当需要查看全局航行态势时,可以通过平移操作,浏览不同区域的海图。此外,图形显示模块还会实时显示船舶的位置、航迹等信息,将船舶的动态与海图背景相结合,为船员提供直观的航行画面。用户界面模块负责实现人机交互功能,为船员提供一个友好、便捷的操作界面。该模块设计了简洁直观的操作菜单和按钮,方便船员进行各种操作,如航路规划、海图显示设置、信息查询等。通过用户界面,船员可以输入起点、终点等信息进行航路规划,设置海图的显示模式、比例尺等参数,查询船舶的航行记录和相关航海信息。用户界面模块还会实时显示系统的状态信息和警报信息,当系统检测到异常情况或潜在危险时,会通过用户界面以醒目的方式向船员发出警报,提醒船员及时处理。当避碰预警功能触发时,用户界面会弹出警报窗口,并伴有声音提示,同时在海图上突出显示危险船舶,确保船员能够及时发现并采取措施。这些模块之间相互关联、协同工作。数据解析模块将输入的数据解析处理后,传递给数据库管理模块进行存储和管理;数据库管理模块为图形显示模块和用户界面模块提供所需的数据支持;图形显示模块将数据库中的海图数据和其他导航信息以图形方式展示在用户界面上;用户界面模块则接收船员的操作指令,并将指令传递给相应的模块进行处理,实现人机交互。通过各模块的紧密协作,ECDIS基础显示平台能够高效地实现其各项功能,为船舶航行提供全面、准确的导航支持。2.3VxWorks与ECDIS基础显示平台的适配关系VxWorks实时操作系统与ECDIS基础显示平台之间存在着紧密的适配关系,这种适配关系对于实现ECDIS的高性能、高可靠性运行至关重要。VxWorks为ECDIS基础显示平台提供了强大的实时多任务处理能力。在ECDIS运行过程中,需要同时处理多个任务,如传感器数据采集与处理、海图数据读取与更新、图形绘制与显示、用户操作响应等。VxWorks的基于优先级的抢占式任务调度机制,能够根据任务的重要性和实时性要求,合理分配CPU资源,确保高优先级任务能够及时得到执行。传感器数据采集任务对于实时性要求极高,因为船舶的航行状态是不断变化的,需要及时获取传感器数据以准确掌握船舶的位置、航向、航速等信息。VxWorks会将传感器数据采集任务设置为高优先级任务,当有新的传感器三、基于VxWorks的ECDIS基础显示平台关键技术3.1海图数据解析技术3.1.1S-57标准海图数据解析S-57标准海图数据是电子海图显示与信息系统(ECDIS)的核心数据来源,其结构设计旨在准确、全面地描述海洋地理信息以及各种航海要素。S-57标准海图数据采用分层结构,主要包含文件头、数据字典和数据实体三个部分。文件头部分记录了海图数据文件的基本信息,如文件版本号、数据格式、坐标系、比例尺等,这些信息为后续的数据解析和处理提供了重要的基础和依据。数据字典则详细定义了数据实体中各种对象的类型、属性以及它们之间的关系,是理解和解析海图数据的关键。数据实体是海图数据的核心内容,它包含了丰富的航海要素信息,如海岸线、岛屿、水深、航标、障碍物等,这些要素以特定的编码和格式存储,以便于计算机进行处理和分析。解析S-57标准海图数据需要采用专门的解析算法,以准确提取其中的航海要素信息。在解析过程中,首先读取文件头信息,获取海图数据的基本属性,为后续的数据处理做好准备。接着,根据数据字典中的定义,对数据实体进行逐一解析。对于每一个数据对象,根据其类型和属性,采用相应的解析方法提取出其具体的信息。在解析水深数据时,需要根据数据字典中定义的水深数据格式和编码规则,提取出每个水深点的位置和深度信息。对于航标数据,需要解析出航标的类型、位置、标识等属性。在解析过程中,还需要处理数据之间的关联关系,如某个航标与周围水域的关系,以便准确呈现航海要素之间的空间关系。以一张包含某海域的S-57标准海图数据为例,假设该海图数据文件名为“sea_chart.s57”。在解析时,首先读取文件头信息,确定该海图数据的版本为3.0,采用的坐标系为WGS84,比例尺为1:50000。然后,读取数据字典,了解到数据实体中包含海岸线、岛屿、水深、航标等多种对象类型。在解析海岸线数据时,根据数据字典中定义的海岸线对象的编码规则和属性结构,从数据实体中提取出海岸线的坐标点序列,这些坐标点按照一定的顺序连接起来,就构成了该海域的海岸线形状。对于岛屿数据,解析出每个岛屿的轮廓线坐标以及岛屿的名称、面积等属性。在解析水深数据时,通过数据字典中定义的水深数据格式,提取出各个水深测量点的经纬度坐标和水深值,这些水深数据可以用于生成等深线,为船舶航行提供水深参考。对于航标数据,解析出每个航标的位置坐标、类型(如灯塔、浮标等)、发光特征、编号等信息,这些航标信息对于船舶的导航和定位至关重要。通过这样的解析过程,就可以将S-57标准海图数据中的各种航海要素信息准确地提取出来,为后续的海图显示和分析提供数据支持。3.1.2数据解析任务在VxWorks中的实现在基于VxWorks的ECDIS基础显示平台中,数据解析任务是一个关键的实时任务,需要高效、准确地完成海图数据的解析工作。VxWorks提供了强大的任务机制,能够有效地实现数据解析任务的管理和调度。利用VxWorks的任务创建函数,可以创建一个专门用于数据解析的任务。在创建任务时,需要指定任务的优先级、堆栈大小、任务入口函数等参数。考虑到海图数据解析对实时性要求较高,通常将数据解析任务的优先级设置为较高级别,以确保其能够在系统中优先执行。堆栈大小则根据数据解析任务的实际需求进行合理分配,以保证任务在执行过程中有足够的内存空间用于存储临时数据和函数调用栈。任务入口函数是数据解析任务的核心逻辑所在,在这个函数中实现对S-57标准海图数据的解析算法。在任务执行过程中,VxWorks的任务调度机制会根据任务的优先级进行调度。当数据解析任务处于就绪状态时,由于其较高的优先级,它会优先获得CPU资源并开始执行。在解析海图数据时,任务会按照前面所述的解析算法,依次读取海图数据文件的各个部分,提取航海要素信息。如果在解析过程中需要等待某些资源,如读取文件时等待磁盘I/O操作完成,数据解析任务会进入等待状态,此时VxWorks的任务调度器会将CPU资源分配给其他就绪的任务。当所需资源可用时,数据解析任务会重新进入就绪状态,并等待再次获得CPU资源继续执行。在资源分配方面,VxWorks的内存管理机制为数据解析任务提供了必要的内存支持。在解析海图数据时,任务可能需要分配内存来存储解析过程中产生的中间数据和结果数据。VxWorks提供了多种内存分配函数,如malloc()函数用于动态分配内存,开发者可以根据实际需求使用这些函数为数据解析任务分配合适大小的内存空间。同时,VxWorks的内存管理机制还能够有效地管理内存的释放,避免内存泄漏等问题的发生。当数据解析任务完成对某些内存空间的使用后,及时调用free()函数释放这些内存,以便系统能够将这些内存重新分配给其他任务使用。除了内存资源,数据解析任务还可能需要其他系统资源,如文件描述符用于读取海图数据文件。VxWorks的I/O系统提供了对文件操作的支持,数据解析任务可以通过打开海图数据文件获取文件描述符,并使用该描述符进行文件读取操作。在使用完文件后,及时关闭文件描述符,释放系统资源,确保系统资源的有效利用。通过合理利用VxWorks的任务机制和资源管理机制,能够实现高效、可靠的数据解析任务,为ECDIS基础显示平台提供准确的海图数据支持。3.2海图表示库设计与实现3.2.1S-52标准海图表示库结构S-52标准海图表示库是电子海图显示与信息系统(ECDIS)中用于定义海图要素显示方式的重要组成部分,它确保了不同来源的海图数据能够以统一、标准的方式在ECDIS上进行显示,为航海人员提供清晰、准确的航海信息。S-52标准海图表示库主要由符号库、颜色编码、查询表和查询规则等部分组成。符号库是S-52标准海图表示库的核心组成部分,它定义了各种海图要素的符号表示方式。符号库中包含了丰富多样的符号,用于表示不同的航海要素,如海岸线、岛屿、航标、水深、障碍物等。每个符号都有其特定的形状、尺寸、颜色和样式,以直观地传达相应的航海信息。灯塔可能用一个带有灯光闪烁效果的特定形状符号表示,浮标则用不同颜色和形状的符号来区分其类型和功能。这些符号的设计遵循国际标准,具有较高的辨识度和通用性,使得航海人员能够在不同的ECDIS系统上快速准确地识别各种海图要素。颜色编码在S-52标准海图表示库中起着重要的作用,它通过不同的颜色来表示海图要素的不同属性和状态。蓝色通常用于表示海洋水域,其深浅程度可以表示水深的变化,较深的蓝色表示较深的水域,较浅的蓝色表示较浅的水域。绿色用于表示陆地,红色用于表示危险区域或重要的航海标志,如灯塔、航标等。通过合理的颜色编码,航海人员可以在海图上快速区分不同的区域和要素,提高航海的安全性和效率。查询表和查询规则是S-52标准海图表示库中用于关联海图数据和符号、颜色等显示信息的重要机制。查询表中存储了海图要素的属性信息与对应的符号、颜色等显示参数之间的映射关系。当ECDIS接收到海图数据时,根据海图要素的属性,通过查询表可以快速找到对应的符号和颜色等显示信息,从而实现海图要素的正确显示。查询规则则定义了在不同情况下如何使用查询表进行查询,以确保显示的准确性和一致性。在显示比例尺发生变化时,查询规则可以指导系统根据比例尺的大小选择合适的符号和显示参数,以保证海图在不同比例尺下都能清晰地显示。S-52标准海图表示库还考虑了不同显示模式和用户需求的适应性。它支持白昼、晨昏和夜晚等不同的显示模式,在不同的显示模式下,符号和颜色的显示参数会进行相应的调整,以适应不同的光照条件,确保航海人员在各种环境下都能清晰地读取海图信息。S-52标准海图表示库也允许用户根据自己的需求进行一些个性化的设置,如选择不同的颜色方案、显示特定的海图要素等,以满足不同航海人员的使用习惯和需求。3.2.2基于VxWorks的表示库内存数据结构设计在基于VxWorks的ECDIS基础显示平台中,为了高效地使用S-52标准海图表示库,需要结合VxWorks内存管理特点设计合适的内存数据结构。VxWorks的内存管理具有实时性、可靠性和高效性的特点,因此在设计表示库内存数据结构时,需要充分考虑这些特点,以提高数据查找与读取效率,确保系统能够快速响应海图显示的需求。采用哈希表的数据结构来存储符号库信息是一种有效的方法。哈希表能够提供快速的查找操作,平均时间复杂度为O(1)。对于符号库中的每个符号,以其唯一的标识符(如符号编号)作为哈希键,将符号的详细信息(包括符号的形状描述、尺寸、颜色等)存储为哈希值。在需要查找某个符号时,通过计算符号编号的哈希值,能够快速定位到该符号的信息,大大提高了符号查找的效率。在显示海图时,当需要绘制某个航标符号时,通过航标符号的编号在哈希表中查找,能够迅速获取该符号的详细绘制信息,从而实现快速绘制。对于颜色编码信息,可以使用数组或结构体数组来存储。数组具有连续的内存空间,访问速度快。将不同颜色的编码信息按照一定的顺序存储在数组中,通过颜色的索引值可以直接访问到对应的颜色编码。定义一个结构体数组,每个结构体包含颜色的名称、RGB值等信息,通过颜色的索引值(如颜色编号)可以快速获取该颜色的详细信息。在绘制海图时,根据海图要素的属性从颜色编码数组中获取对应的颜色信息,用于海图要素的绘制。查询表和查询规则的内存数据结构设计需要考虑其逻辑关系和查询效率。可以使用链表或树形结构来存储查询表。链表结构适合于动态插入和删除操作,而树形结构(如二叉搜索树、红黑树等)则在查找操作上具有较高的效率。如果查询表中的数据量较大且需要频繁进行查找操作,采用红黑树结构可以保证在O(logn)的时间复杂度内完成查找。将海图要素的属性作为树的节点关键字,将对应的符号、颜色等显示参数作为节点的值。在进行查询时,根据海图要素的属性在树中进行查找,能够快速找到对应的显示参数。查询规则可以以函数指针或状态机的形式存储在内存中,根据不同的查询条件调用相应的查询规则函数,以确保查询的准确性和高效性。在设计内存数据结构时,还需要考虑内存的分配和释放策略。根据VxWorks的内存管理机制,合理地分配和释放内存,避免内存泄漏和内存碎片的产生。对于频繁使用的内存块,可以采用内存池的方式进行管理,预先分配一定数量的内存块,当需要时直接从内存池中获取,使用完毕后再归还到内存池中,这样可以减少内存分配和释放的开销,提高系统的性能。通过结合VxWorks内存管理特点设计高效的表示库内存数据结构,能够提高海图表示库的使用效率,为ECDIS基础显示平台的快速、准确显示提供有力支持。3.3图形绘制与显示技术3.3.1墨卡托投影与坐标转换算法墨卡托投影是一种在航海和地图绘制领域广泛应用的地图投影方式,由荷兰地图学家墨卡托于1569年提出。它属于等角正切圆柱投影,其基本原理是将地球表面上的点投影到一个与地球相切的圆柱面上,然后将圆柱面展开成平面。在墨卡托投影中,经线和纬线被投影成相互垂直的平行直线,且经线间隔相等,纬线间隔从赤道向两极逐渐增大。这种投影方式具有等角特性,即地图上任意两条方向线的夹角与地球上对应的两条方向线的夹角相等,这使得在墨卡托投影地图上进行导航时,按照直线方向航行在实际中保持恒定的航向,为航海提供了极大的便利。在墨卡托投影中,坐标转换算法用于将地球表面的地理坐标(经纬度)转换为平面直角坐标,以便在电子海图上进行绘制和显示。假设地球的半径为R,对于地球上某点的地理坐标为(φ,λ),其中φ为纬度,λ为经度。其在墨卡托投影平面上的直角坐标(x,y)的转换公式推导如下:首先,由于经线在墨卡托投影中是等距的,所以x坐标与经度成正比,公式为:x=R\cdot(\lambda-\lambda_0)其中,\lambda_0为投影的中央经线经度。对于y坐标,考虑到纬线间隔从赤道向两极逐渐增大的特性,其转换公式为:y=R\cdot\ln(\tan(\frac{\pi}{4}+\frac{\varphi}{2}))这是因为在墨卡托投影中,纬线的长度会随着纬度的增加而拉伸,通过上述公式可以准确地反映这种拉伸关系。在海图图形绘制中,墨卡托投影与坐标转换算法起着至关重要的作用。在基于VxWorks的ECDIS基础显示平台中,当需要绘制海图时,首先获取海图数据中的地理坐标信息,然后通过上述坐标转换算法将其转换为平面直角坐标。将海图上某个岛屿的经纬度坐标转换为平面直角坐标后,就可以在显示屏幕上准确地绘制出该岛屿的位置和形状。通过墨卡托投影,海图上的各种航海要素,如海岸线、航标、水深等,都能够以直观的方式呈现出来,为航海人员提供准确的导航信息。墨卡托投影的等角特性也使得在海图上进行航线规划和导航计算时更加方便和准确,航海人员可以根据墨卡托投影海图上的直线方向确定实际航行的航向,提高航行的安全性和效率。3.3.2基于TilconIDS的图形用户界面设计与实现TilconIDS是一款功能强大的图形用户界面开发工具,在基于VxWorks的ECDIS基础显示平台中,利用TilconIDS可以设计出友好、高效的图形用户界面,实现良好的人机交互功能。使用TilconIDS设计ECDIS基础显示平台界面时,首先需要创建一个新的项目,并根据ECDIS的功能需求和用户操作习惯进行界面布局设计。界面通常包括海图显示区域、工具栏、状态栏、操作菜单等部分。海图显示区域是界面的核心部分,用于展示电子海图信息,占据界面的主要空间。在TilconIDS中,可以通过拖放操作添加一个合适大小的图形窗口作为海图显示区域,并设置其属性,如背景颜色、显示分辨率等。工具栏放置常用的操作按钮,如放大、缩小、平移海图,开启或关闭导航信息显示等按钮,方便用户快速进行操作。在TilconIDS的组件库中选择合适的按钮组件,拖放到工具栏位置,并为每个按钮设置相应的图标和点击事件处理函数。状态栏用于显示系统的状态信息,如当前船舶的位置、航速、航向等。操作菜单则提供了更丰富的操作选项,如航路规划、海图数据更新、系统设置等。通过TilconIDS的菜单设计功能,创建一个主菜单,并在主菜单下添加各个子菜单,为每个子菜单设置相应的命令和处理函数。在使用Tilcon绘图API实现海图信息绘制时,首先需要获取海图数据解析模块解析出的海图要素信息,包括海岸线、岛屿、航标、水深等要素的坐标和属性信息。对于海岸线和岛屿等多边形要素,可以使用Tilcon的绘图函数绘制多边形。根据海岸线的坐标点序列,调用Tilcon的绘制多边形函数,设置多边形的线条颜色、宽度等属性,将海岸线绘制在海图显示区域。对于航标等点状要素,可以使用Tilcon的绘制点或图标函数进行绘制。根据航标的位置坐标和类型,选择合适的图标,并调用绘制图标函数将航标绘制在海图上。在绘制水深信息时,可以根据水深数据生成等深线,然后使用Tilcon的绘制线条函数绘制等深线,并根据水深的不同设置不同的颜色,以直观地表示水深的变化。为了实现海图的交互功能,如放大、缩小、平移等,可以利用Tilcon的事件处理机制。当用户点击放大按钮时,捕获按钮的点击事件,在事件处理函数中获取当前海图的显示比例,然后根据放大比例调整海图要素的坐标和显示范围,重新绘制海图,实现放大效果。对于平移操作,当用户在海图显示区域按下鼠标并移动时,捕获鼠标移动事件,根据鼠标移动的距离计算海图的平移量,调整四、基于VxWorks的ECDIS基础显示平台设计与实现4.1系统总体架构设计4.1.1系统功能模块划分基于VxWorks的ECDIS基础显示平台的设计,需紧密围绕航海实际需求,依据软件工程的模块化设计理念,对系统功能进行合理拆分与组织。通过细致分析ECDIS应具备的功能,本平台主要划分为以下几个核心功能模块:数据处理模块、显示控制模块、用户交互模块、数据存储模块以及通信模块。数据处理模块在整个系统中扮演着数据“加工工厂”的角色,承担着繁重且关键的数据处理任务。其首要职责是解析各类输入数据,涵盖电子海图数据、传感器数据以及船舶自动识别系统(AIS)数据等。对于电子海图数据,严格按照国际海道测量组织(IHO)制定的S-57标准,对海图源文件进行深度解析,将复杂的海图数据结构转化为系统易于理解和处理的内部数据格式。这一过程如同将一份加密的文件进行解密,提取出其中的关键信息,如海岸线、岛屿、水深、航标等重要海图要素。在解析传感器数据时,该模块需要对来自全球定位系统(GPS)、陀螺罗经、计程仪等传感器的信号进行精准解析和转换,将原始的传感器信号转化为可供系统使用的船舶位置、航向、航速等有效数据。对于AIS数据,模块则负责解析其发送的船舶动态信息,获取周围船舶的位置、航向、航速等关键数据,为后续的避碰预警等功能提供坚实的数据基础。除了解析数据,数据处理模块还需对各类数据进行严格的校验和纠错,确保数据的准确性和可靠性。这就好比在生产线上对产品进行质量检测,剔除不合格的产品,保证进入下一环节的数据都是高质量的。在处理GPS数据时,通过多种校验算法,检查数据的完整性和准确性,若发现数据存在错误或异常,及时进行纠正或标记,避免错误数据对系统决策产生误导。显示控制模块是实现海图信息可视化呈现的关键环节,如同舞台的导演,掌控着海图显示的方方面面。它依据S-52标准海图表示库,运用专业的图形绘制算法,将解析后的数据转化为直观、清晰的海图图像。在这个过程中,需要对不同的海图要素进行精确的符号化绘制,赋予每个要素独特的视觉标识。海岸线可能被绘制为连续的线条,根据其地形特征呈现出不同的弯曲程度;岛屿则以特定的形状和颜色表示,使船员能够一目了然地识别;航标更是通过不同的形状、颜色和闪烁频率来传达其功能和位置信息。显示控制模块还需实现海图的交互功能,以满足船员在不同航行场景下的操作需求。船员可以通过操作界面,轻松地对海图进行放大、缩小、平移等操作。当需要查看局部海域的详细信息时,通过放大操作,可以获取更清晰的海图细节,如港口的具体布局、浅滩的精确位置等;当需要了解全局航行态势时,平移操作能够让船员快速浏览不同区域的海图,掌握船舶在整个海域中的位置和周边环境。这些交互功能的实现,大大提高了船员获取信息的效率和便捷性,使ECDIS能够更好地辅助船舶航行。用户交互模块致力于构建一个友好、便捷的人机交互环境,是船员与ECDIS系统沟通的桥梁。它设计了简洁直观的操作菜单和按钮,布局合理,易于操作。船员可以通过这些菜单和按钮,轻松地进行各种操作,如航路规划、海图显示设置、信息查询等。在进行航路规划时,船员只需在操作界面上输入起点、终点和途经点等关键信息,系统即可根据电子海图数据和相关算法,自动生成多条可行的航线,并综合考虑各种因素,为船员提供最优航线建议。海图显示设置功能允许船员根据自己的需求和习惯,调整海图的显示模式、比例尺、图层显示等参数,以获得最适合自己的海图显示效果。信息查询功能则为船员提供了快速获取船舶航行记录、航海通告、气象信息等各类航海相关信息的途径。用户交互模块还负责实时显示系统的状态信息和警报信息,确保船员能够及时了解系统的运行情况和潜在的危险。当系统检测到船舶偏离预定航线、与其他船舶存在碰撞风险或遇到恶劣天气等异常情况时,会通过用户交互模块以醒目的方式向船员发出警报,提醒船员采取相应的措施。警报信息可能以声音、闪烁的灯光、弹出的提示框等多种形式呈现,同时在海图上突出显示相关的危险区域或目标,引起船员的高度注意。数据存储模块负责对系统运行过程中产生的各类数据进行安全、高效的存储和管理,是系统的数据“仓库”。在海图数据存储方面,依据IHOS-57标准,精心设计并实现了高效的系统电子航海图(SENC)数据库结构。这种结构能够充分利用存储空间,合理组织海图数据,确保海图数据的快速存储、读取和更新。通过优化的数据索引和存储方式,当需要查询某一区域的海图数据时,系统能够迅速定位并读取相关数据,大大提高了数据访问效率。对于航行记录数据,如船舶的航迹信息、操作记录、设备运行状态数据等,数据存储模块会按照一定的格式和规则进行分类存储。这些航行记录数据不仅是船舶航行历史的重要记录,也是后续进行航行分析、事故调查、设备维护等工作的重要依据。数据存储模块还需具备数据备份和恢复功能,以应对可能出现的数据丢失或损坏情况。定期对重要数据进行备份,并将备份数据存储在安全的位置。当数据出现问题时,能够迅速从备份中恢复数据,确保系统的正常运行和数据的完整性。通信模块是实现系统与外部设备和系统之间数据传输和交互的关键通道,如同人体的神经系统,确保信息的畅通无阻。它负责与各类传感器进行通信,实时获取船舶的位置、航向、航速等状态信息。通过与GPS传感器的通信,准确获取船舶的经纬度坐标;与陀螺罗经通信,获取船舶的精确航向;与计程仪通信,获取船舶的航行速度。这些传感器数据是ECDIS进行航行计算和决策的基础,通信模块的稳定运行对于保证数据的实时性和准确性至关重要。通信模块还需与其他船舶或岸上设施进行通信,实现信息共享和交互。通过与AIS设备的通信,获取周围船舶的动态信息,为避碰预警提供数据支持;与岸上的海事管理部门或港口设施进行通信,获取航海通告、气象信息、港口调度信息等重要信息,帮助船员更好地规划航行和应对各种情况。在通信过程中,通信模块需要遵循相关的通信协议和标准,确保数据的准确传输和安全。采用加密技术对敏感数据进行加密传输,防止数据被窃取或篡改;通过校验和纠错算法,保证数据在传输过程中的完整性和准确性。4.1.2模块间通信与协作机制在基于VxWorks的ECDIS基础显示平台中,各功能模块之间的通信与协作是确保系统稳定、高效运行的关键。为了实现模块间的有效通信与协作,本平台采用了基于消息队列和信号量的机制。消息队列作为一种异步通信方式,在模块间的数据传递中发挥着重要作用。它为不同模块之间提供了一个可靠的消息传递通道,使得模块之间能够解耦,独立地进行工作。当数据处理模块完成对传感器数据的解析后,会将解析后的数据封装成消息,并发送到消息队列中。显示控制模块则从消息队列中读取这些消息,根据消息中的数据进行海图的绘制和更新。这种方式避免了模块之间的直接依赖,提高了系统的灵活性和可扩展性。即使数据处理模块的处理速度发生变化,或者显示控制模块暂时无法处理数据,消息队列也能够缓存消息,确保数据不会丢失。消息队列还可以实现优先级机制,根据消息的重要性和实时性,为不同的消息分配不同的优先级。对于一些紧急的警报消息,如避碰预警消息,可以设置较高的优先级,确保这些消息能够被优先处理,及时传达给船员。信号量是一种用于实现进程同步和互斥的机制,在ECDIS基础显示平台中,主要用于协调模块对共享资源的访问。在数据存储模块中,多个模块可能需要同时访问SENC数据库。为了避免数据冲突和不一致,使用信号量来控制对数据库的访问。当一个模块需要访问数据库时,首先获取相应的信号量。若信号量可用,则该模块可以进入临界区,对数据库进行操作;若信号量已被其他模块占用,则该模块会进入等待状态,直到信号量被释放。这样可以确保在同一时刻,只有一个模块能够对数据库进行写操作,保证了数据的完整性和一致性。信号量还可以用于实现模块之间的同步,确保某些操作按照特定的顺序进行。在系统启动时,数据处理模块需要先完成对海图数据的解析和初始化工作,然后显示控制模块才能进行海图的绘制。通过使用信号量,可以实现这两个模块之间的同步,确保系统的正常启动和运行。以船舶航行过程中,系统对海图数据更新的处理为例,来详细说明模块间的通信与协作过程。当有新的海图数据更新时,数据处理模块首先接收到更新数据,并对其进行解析和校验。解析完成后,将更新的数据封装成消息,发送到消息队列中。同时,数据处理模块会向数据存储模块发送一个信号量请求,以获取对SENC数据库的写权限。数据存储模块在接收到信号量请求后,检查信号量状态。若信号量可用,则数据存储模块获取信号量,允许数据处理模块对数据库进行更新操作。数据处理模块完成数据库更新后,释放信号量。显示控制模块从消息队列中读取到海图数据更新的消息后,向数据存储模块发送信号量请求,以获取更新后的海图数据。数据存储模块在确认信号量可用后,将更新后的海图数据发送给显示控制模块。显示控制模块根据接收到的数据,重新绘制海图,实现海图的实时更新。在这个过程中,消息队列确保了数据的准确传递,信号量保证了对共享资源(SENC数据库)的安全访问,各模块之间通过紧密的通信与协作,实现了海图数据的高效更新和显示。4.2硬件选型与板级支持包(BSP)开发4.2.1硬件平台选型依据硬件平台的选型对于基于VxWorks的ECDIS基础显示平台的性能和稳定性起着决定性作用。在选型过程中,需要综合考虑多个因素,以确保所选硬件能够满足系统的性能需求,并适应船舶复杂的运行环境。处理器作为硬件平台的核心组件,其性能直接影响系统的运行效率。在ECDIS基础显示平台中,需要处理器具备强大的计算能力,以快速处理大量的海图数据、传感器数据以及各种实时任务。选择了一款高性能的嵌入式处理器,如飞思卡尔的P2020处理器。这款处理器基于PowerArchitecture架构,采用双核Cortex-A9内核,具备较高的主频和出色的计算性能。其强大的浮点运算能力,能够快速处理海图数据中的复杂坐标计算和图形渲染任务。在进行墨卡托投影坐标转换时,能够迅速完成大量坐标点的计算,确保海图的快速绘制和更新。P2020处理器还具备丰富的外设接口,如以太网接口、串口、SPI接口等,方便与其他设备进行通信和数据传输。通过以太网接口,可以快速获取实时的航海数据和海图更新信息;串口则可用于与各类传感器进行通信,实时采集船舶的状态信息。内存的大小和性能也对系统的运行至关重要。考虑到ECDIS需要处理大量的海图数据和运行多个任务,需要配备足够大的内存来存储数据和程序代码。选择了512MB的DDR3内存,能够满足系统对内存的需求。DDR3内存具有较高的读写速度,能够快速响应处理器的内存访问请求,提高系统的数据处理效率。在处理大规模海图数据时,能够快速将数据加载到内存中进行处理,减少数据读取时间,提升系统的整体性能。存储设备用于存储海图数据、系统程序和航行记录等重要信息。由于海图数据量较大,且需要频繁读取和更新,选择了高速的固态硬盘(SSD)作为存储设备。SSD具有读写速度快、可靠性高的优点,能够快速读取海图数据,满足系统对数据实时性的要求。在进行海图显示时,能够迅速从SSD中读取所需的海图数据,实现海图的快速加载和显示。SSD的可靠性也能够保证数据的安全性,避免因存储设备故障而导致数据丢失。考虑到船舶在海上航行时,会面临高温、高湿、强电磁干扰等恶劣环境,所选硬件还需具备良好的环境适应性。硬件设备应具备较高的工作温度范围,能够在船舶的高温环境下稳定运行。具备良好的防潮、防水性能,以应对海上的高湿环境。硬件还需具备较强的电磁兼容性,能够抵御船舶上各种电子设备产生的强电磁干扰,确保系统的正常运行。选择的硬件设备均通过了相关的环境测试,能够满足船舶的恶劣工作环境要求。4.2.2BSP开发要点与实现板级支持包(BSP)是连接硬件平台和操作系统的关键桥梁,它为VxWorks操作系统提供了对硬件的底层支持,确保操作系统能够在特定的硬件平台上稳定运行。在基于VxWorks的ECDIS基础显示平台中,开发针对所选硬件平台的BSP至关重要。BSP开发的首要任务是实现硬件初始化。在系统启动时,需要对硬件设备进行初始化配置,使其处于可工作状态。对于处理器,需要设置其工作频率、总线频率、缓存大小等参数,以优化处理器的性能。在初始化P2020处理器时,通过配置其寄存器,将工作频率设置为1GHz,以满足系统对计算性能的需求。对内存进行初始化,设置内存的工作模式、时序等参数,确保内存能够稳定地与处理器进行数据交互。还需初始化各类外设,如以太网控制器、串口控制器、SPI控制器等。对于以太网控制器,需要设置其MAC地址、IP地址等网络参数,使其能够正常连接到船舶的网络系统,实现数据的网络传输。中断处理是BSP开发的重要环节之一。在系统运行过程中,硬件设备会产生各种中断信号,如定时器中断、串口接收中断、以太网数据接收中断等。BSP需要实现相应的中断处理函数,对这些中断信号进行及时处理。当串口接收到传感器发送的数据时,会产生串口接收中断。BSP中的中断处理函数会响应这个中断,读取串口缓冲区中的数据,并将其传递给数据处理模块进行处理。通过合理的中断处理,能够确保系统对外部事件的及时响应,提高系统的实时性。时钟管理也是BSP开发的关键部分。VxWorks操作系统依赖于精确的时钟来实现任务调度、定时器功能等。BSP需要配置硬件时钟,为操作系统提供准确的时间基准。通过设置硬件定时器的分频系数和计数初值,生成稳定的时钟信号,并将其提供给VxWorks操作系统。这样,操作系统就能够根据时钟信号进行任务调度,确保各个任务按照预定的时间间隔执行。内存地址映射和内存分配是BSP开发中确保系统内存管理正常运行的重要工作。BSP需要将硬件的物理内存地址映射到VxWorks操作系统的虚拟内存地址空间中,使得操作系统能够正确地访问硬件内存。在进行内存分配时,BSP需要根据系统的需求,合理地划分内存区域,为操作系统内核、应用程序、数据存储等分配相应的内存空间。在基于VxWorks的ECDIS基础显示平台中,为数据存储模块分配足够的内存空间,以存储大量的海图数据和航行记录数据。以P2020硬件平台为例,在BSP开发过程中,首先创建针对该平台的BSP目录,并在目录中编写相应的配置文件和驱动程序。在配置文件中,设置处理器的初始化参数、内存配置参数、外设配置参数等。编写以太网控制器的驱动程序,实现以太网接口的初始化、数据发送和接收等功能。在中断处理方面,通过编写中断服务程序,将硬件中断向量与相应的中断处理函数进行关联。当硬件产生中断时,系统能够准确地调用对应的中断处理函数进行处理。在时钟管理方面,通过配置P2020处理器的时钟控制器,生成稳定的时钟信号,并将其提供给VxWorks操作系统。通过这些工作,完成了针对P2020硬件平台的BSP开发,实现了VxWorks操作系统与硬件平台的适配,为基于VxWorks的ECDIS基础显示平台的稳定运行提供了坚实的硬件支持。4.3软件系统设计与编码实现4.3.1面向对象的软件设计方法应用在基于VxWorks的ECDIS基础显示平台的软件系统设计中,采用面向对象的设计方法,能够显著提高软件的可维护性、可扩展性和可复用性,使软件系统更加适应复杂多变的航海需求。面向对象设计方法的核心是将现实世界中的事物抽象为对象,每个对象都具有自己的属性和行为。在ECDIS基础显示平台中,将海图数据、传感器数据、用户操作等都视为不同的对象,并为每个对象定义相应的类。定义一个“SeaChart”类来表示海图数据,该类包含海图的各种属性,如比例尺、投影方式、海图要素等,以及对海图数据进行操作的方法,如读取海图数据、更新海图数据、绘制海图等。通过这种方式,将海图数据五、系统测试与验证5.1测试环境搭建为全面、准确地测试基于VxWorks的ECDIS基础显示平台,搭建了一个高度模拟真实航海环境的测试环境,涵盖硬件设备、软件工具和测试用海图数据等多个关键部分,以确保测试结果的可靠性和有效性。在硬件设备方面,选用了高性能的工业控制计算机作为测试主机,其配置为:处理器采用英特尔酷睿i7-12700K,具备强大的计算能力,能够快速处理大量的海图数据和复杂的计算任务,确保在高负载情况下系统仍能稳定运行;内存为32GBDDR43200MHz,充足的内存空间可满足系统同时运行多个任务以及存储大量临时数据的需求,避免因内存不足导致系统性能下降;硬盘采用1TB的NVMeM.2SSD,其高速的读写性能能够快速读取海图数据和系统程序,大大缩短数据加载时间,提高系统的响应速度。同时,配备了高精度的GPS模拟器,能够模拟出船舶在不同地理位置、不同航行状态下的位置信息,其定位精度可达±0.1米,为测试平台的定位功能提供了精准的数据支持;陀螺罗经模拟器则可精确模拟船舶的航向信息,精度达到±0.1°,确保对平台航向显示和计算功能的测试准确性;AIS模拟器用于模拟周围船舶的动态信息,能够同时模拟数百艘船舶的位置、航向、航速等数据,为避碰预警等功能的测试提供丰富的测试场景。还连接了高分辨率的显示器,其分辨率为1920×1080,能够清晰地显示海图和各种导航信息,方便测试人员观察和分析测试结果。软件工具方面,基于VxWorks6.9实时操作系统搭建了测试平台的运行环境,VxWorks6.9具有卓越的实时性和可靠性,能够为ECDIS基础显示平台提供稳定的运行支持。使用Tornado2.2集成开发环境进行软件的开发和调试,Tornado2.2提供了丰富的工具和功能,如代码编辑器、编译器、调试器等,方便开发人员进行代码编写、调试和优化。利用TilconIDS图形用户界面开发工具设计和实现平台的用户界面,TilconIDS具备强大的图形绘制和交互功能,能够创建出友好、直观的用户界面,提升用户体验。还采用了专业的测试工具,如LoadRunner用于性能测试,它能够模拟大量用户并发访问系统,测试系统在高负载情况下的性能表现,包括响应时间、吞吐量等指标;JMeter则用于功能测试,它可以对平台的各种功能进行自动化测试,如数据解析、图形显示、用户操作响应等,提高测试效率和准确性。测试用海图数据选用了国际海道测量组织(IHO)发布的标准S-57海图数据,涵盖了多种不同海域、不同比例尺的海图,包括近海、远海、港口、海峡等典型航海区域的海图数据,以全面测试平台对不同类型海图数据的解析和显示能力。这些海图数据包含了丰富的航海要素信息,如海岸线、岛屿、水深、航标、障碍物等,能够充分检验平台对各类海图要素的处理和呈现能力。还收集了一些特殊情况下的海图数据,如存在复杂地形、狭窄水道、密集障碍物等情况的海图,用于测试平台在复杂航海环境下的性能和功能。为了测试平台的海图更新功能,还准备了不同版本的海图更新数据,模拟海图数据的实时更新过程。5.2测试方案设计5.2.1功能性测试功能性测试旨在全面验证基于VxWorks的ECDIS基础显示平台是否满足国际标准和设计要求,涵盖了数据解析、图形显示、用户交互、航路规划以及报警等多个关键功能模块。对于数据解析功能,主要测试平台对S-57标准海图数据以及各类传感器数据的解析准确性。从IHO发布的标准S-57海图数据集中选取多份不同区域、不同比例尺的海图数据文件,将其输入到平台的数据解析模块中。通过编写专门的测试程序,对比解析后得到的海图要素信息与标准的海图要素数据库,检查是否存在数据丢失、错误解析或解析不完整的情况。针对水深数据,仔细核对解析出的水深值与标准数据库中的水深值,确保两者的误差在允许范围内。对于航标数据,检查解析出的航标类型、位置、标识等信息是否与标准一致。对于传感器数据,利用GPS模拟器、陀螺罗经模拟器和计程仪模拟器分别模拟不同的船舶运动状态,生成相应的传感器数据并输入到平台。通过与模拟器输出的原始数据进行对比,验证平台对传感器数据的解析和转换是否准确,例如检查解析后的船舶位置、航向、航速等信息是否与模拟数据一致。在图形显示功能测试中,重点检验平台根据S-52标准海图表示库进行海图信息符号化绘制的正确性,以及海图显示的清晰度和流畅度。在不同的显示模式(白昼、晨昏和夜晚)下,观察平台对各种海图要素的符号化绘制是否符合S-52标准。检查海岸线的绘制是否准确、平滑,岛屿的形状和颜色是否与标准表示一致,航标的符号和标识是否清晰可辨。通过缩放、平移海图等操作,测试平台对不同比例尺下海图显示的适应性。在放大操作时,检查海图细节是否能够清晰显示,如小比例尺下难以看清的礁石、浅滩等要素在放大后是否能够准确呈现;在平移操作时,观察海图的显示是否流畅,是否存在卡顿或闪烁现象。还通过同时加载多个图层的海图数据,测试平台在复杂图形显示情况下的性能,检查是否能够准确显示各图层的信息,且不同图层之间的叠加是否正确。用户交互功能测试主要评估平台操作界面的友好性和便捷性,以及对用户操作的响应准确性。邀请多位具有航海经验的船员和专业测试人员对平台的操作界面进行操作体验,收集他们对操作界面布局、菜单设计、按钮功能等方面的反馈意见。检查操作界面是否简洁直观,各项操作是否易于理解和执行。通过实际操作平台进行航路规划、海图显示设置、信息查询等操作,测试平台对用户操作的响应速度和准确性。在进行航路规划时,输入不同的起点、终点和途经点信息,检查平台是否能够快速生成合理的航线,并在海图上准确显示。对于海图显示设置,调整显示模式、比例尺、图层显示等参数,观察平台是否能够及时响应并准确显示相应的海图效果。在信息查询功能测试中,查询不同类型的航海信息,如船舶航行记录、航海通告、气象信息等,检查平台是否能够快速准确地返回查询结果。航路规划功能测试着重验证平台生成的航线是否符合安全和高效的原则。根据不同的航行需求和实际航海场景,设置多种不同的起点、终点和航行条件,如船舶吃水深度、航行速度限制、气象条件等。使用平台的航路规划功能生成航线,并邀请航海专家对生成的航线进行评估,检查航线是否避开了危险区域,如浅滩、礁石、禁航区等,同时是否考虑了洋流、风向等因素,以确保航线的安全性和高效性。通过模拟不同的航行情况,如船舶在航行过程中遇到突发情况需要改变航线,测试平台对航线调整的响应能力和生成新航线的合理性。报警功能测试主要检查平台在船舶航行过程中遇到危险情况时是否能够及时准确地发出警报。利用模拟设备设置各种危险场景,如船舶接近浅滩、与其他船舶存在碰撞风险、偏离预定航线等。观察平台是否能够及时检测到这些危险情况,并以声音、灯光、弹出提示框等多种方式向用户发出警报。检查警报信息的准确性和详细程度,是否能够清晰地告知用户危险的类型、位置和程度等信息。还测试平台在同时出现多个危险情况时,是否能够正确处理并依次发出警报,避免警报信息的混乱和遗漏。5.2.2性能测试性能测试的目的是评估基于VxWorks的ECDIS基础显示平台在不同负载情况下的性能表现,包括响应时间、吞吐量、资源利用率等关键性能指标,以确保平台能够满足船舶在实际航行中的性能需求。响应时间测试主要测量平台对用户操作和外部事件的响应速度。在进行用户操作响应时间测试时,模拟船员在实际航行中的各种操作,如点击菜单按钮、输入航路规划信息、缩放和平移海图等。使用专业的测试工具记录从用户操作开始到平台做出响应并在界面上显示结果的时间间隔。分别在平台处于低负载(仅有少量任务运行,如仅显示海图和基本导航信息)、中负载(同时运行多个任务,如进行航路规划、接收传感器数据等)和高负载(模拟大量用户并发操作,如同时进行多个区域的海图显示和复杂的航路规划)情况下进行测试,统计不同负载下的平均响应时间和最大响应时间。对于外部事件响应时间测试,利用GPS模拟器、AIS模拟器等设备模拟船舶位置、周围船舶动态等外部事件的变化。记录从外部事件发生到平台检测到事件并做出相应处理(如更新海图显示、发出警报等)的时间。通过多次测试,分析平台在不同外部事件频率和复杂程度下的响应时间变化情况,评估平台对实时数据处理的能力。吞吐量测试主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论