一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于软总线技术的舰船操控系统通用软件分层架构的制作方法

2022-09-07 21:22:15 来源:中国专利 TAG:


1.本发明涉及舰船操纵控制系统技术领域,特别涉及一种基于软总线技术的舰船操控系统通用软件分层架构。


背景技术:

2.舰船操纵控制系统是指舰船上改变或保持航速、姿态、航向、深度的自动控制系统,是保障舰船生命力的重要装备。装备上运行的舰船操纵控制软件系统是典型的分布式多任务异构嵌入式系统,功能涵盖避碰决策、航路规划、航迹控制、航向控制、舵角控制、姿态控制、推进控制等,以及水下载体特有的深度、潜浮、均衡、悬停控制等功能。作为嵌入式系统具有硬件依赖性,不同型号设备的硬件平台差异较大,诸如总线形式、硬件驱动、操作系统、通讯协议皆是形态各异,一般均为特定型号专门设计,无法实现软件整体复用。为了屏蔽底层软硬件平台差异,实现功能模块基于数据的即插即用,最终解决舰船操控系统软件通用化的问题,必须站在顶层设计的高度采用构件化框架技术,开展舰船操控系统通用软件架构的研究和设计。
3.因此,在现有舰船操纵控制系统设计的基础上,如何实现软件的整体复用,成为本领域技术人员亟需解决的问题。


技术实现要素:

4.鉴于上述问题,本发明提出了一种至少解决上述部分技术问题的基于软总线技术的舰船操控系统通用软件分层架构,可设置舰船操控系统通用软件架构,保证数据的即插即用。
5.本发明实施例提供一种基于软总线技术的舰船操控系统通用软件分层架构,其特征在于,包括:由底层到顶层依次设置的物理链路层、通讯接口层、数据分发层、数据交换层和业务应用层;
6.所述物理链路层为数据端设备提供传送通路,将数据传输至所述通讯接口层;
7.所述通讯接口层封装一组具有统一格式的标准数据访问接口;
8.所述数据分发层将来自所述通讯接口层的数据作分流处理,传输至所述数据交换层;
9.所述数据交换层存储数据对象,包含数据交换池和软总线接口;所述数据交换池存储有所述数据对象的数据信息;所述数据交换池通过接收所述数据分发层发送的通讯数据实时更新所述数据对象;每个所述数据对象对应一个用于舰船控制的物理信号;
10.所述业务应用层存储有所有舰船操控系统的应用功能模块;所述应用功能模块通过所述软总线接口读取或改写所述数据交换池内的所述数据对象的数据信息;各个所述应用功能模块之间通过所述软总线接口进行信息交互。
11.进一步地,所述数据交换池为存储所述数据对象的连续内存区。
12.进一步地,所述软总线接口为所述应用功能模块提供标准接口类,包括:获取所述
数据对象的名称、属性、实时数值、物理单位和数值有效性,以及数据更新通知事件的注册和注销。
13.进一步地,所述通讯接口层采用环形缓冲区的数据结构缓存接收到的数据帧;每个所述标准数据访问接口对应一个所述环形缓冲区。
14.进一步地,所述数据分发层配置有网关、通用分发器和数据转发器;
15.所述通用分发器将从所述通讯接口层接收到的数据帧拷贝到所述数据交换池内指定的内存区域;
16.所述数据转发器将从所述通讯接口层接收到的数据帧通过不同于接收接口的其他标准数据访问接口转发出去。
17.进一步地,所述数据交换池内的数据均经过编码器进行编码处理,得到所述数据对象的数据信息。
18.进一步地,所示数据对象采用经过定制设计的信息描述模型,通过xml文件实现可配置的最小完备化的定义和描述。
19.本发明实施例提供的上述技术方案的有益效果至少包括:
20.本发明实施例提供的一种基于软总线技术的舰船操控系统通用软件分层架构,包括:由底层到顶层依次设置的物理链路层、通讯接口层、数据分发层、数据交换层和业务应用层;物理链路层为数据端设备提供传送通路,将数据传输至通讯接口层;通讯接口层封装一组具有统一格式的标准数据访问接口;数据分发层将来自通讯接口层的数据作分流处理,传输至数据交换层;数据交换层存储数据对象,包含数据交换池和软总线接口;数据交换池存储有数据对象的数据信息;数据交换池通过接收数据分发层发送的通讯数据实时更新数据对象;每个数据对象对应一个用于舰船控制的物理信号;业务应用层存储有所有舰船操控系统的应用功能模块;应用功能模块通过软总线接口读取或改写数据交换池内的数据对象的数据信息;各个应用功能模块之间通过软总线接口进行信息交互。提出了适用于舰船操纵控制系统的通用软件架构设计,做到了对舰船操控专业所有应用场景和需求的覆盖,提高了软件的整体复用性。本架构设计的优势包括:
21.1)开放的体系结构
22.在corba规范中软总线(包括通讯接口层、数据分发层和数据交换层)负责对各功能模块进行调度和管理,如注册、加载、销毁等,并规定了各功能模块必须满足相关接口标准要求才能“连接”到总线上与其它模块协同工作。功能模块对于软总线而言是不可见的,因此软总线与功能模块的耦合度很低,这就意味着功能模块的开发和扩展更自由方便,而软总线也拥有更广泛的适用性。功能模块的实现采用黑盒模式,功能模块与软总线只通过固定的接口交互,功能模块内部的修改不会影响到外部的软总线的功能。
23.2)易用的访问接口
24.软总线向功能模块提供简洁、规范、高效的数据访问接口(软总线接口),功能模块仅需凭借数据对象名称即可获得数据对象的访问服务,实现对数据对象的属性读取、数值更新等操作。
25.3)可配置的数据对象
26.软总线中的数据对象采用经过定制设计的信息描述模型,通过xml文件实现可配置的最小完备化的定义和描述。数据对象定义的可配置化,提高了软总线的灵活性和适用
性。
27.4)可容错的并行结构
28.本架构摒弃了系统由多个功能模块联合组成的串行结构,采用容错能力更强的并行结构,避免了任一一个功能模块失效而造成系统全面瘫痪的缺陷,使得一旦某一功能模块发生故障时,系统能够通过故障重构而有效提高系统的鲁棒性和可靠性。
29.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
30.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
31.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
32.图1为本发明实施例提供的舰船操控系统通用软件分层架构示意图;
33.图2为本发明实施例提供的软总线分层结构图;
34.图3为本发明实施例提供的功能模块交互模型;
35.图4为本发明实施例提供的舰船操控系统软件通用架构示意图;
36.图5为本发明实施例提供的舰船操控系统通用软件初始化流程图。
具体实施方式
37.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
38.本发明实施例提供一种基于软总线技术的舰船操控系统通用软件分层架构,参照图1所示,包括:由底层到顶层依次设置的物理链路层、通讯接口层、数据分发层、数据交换层和业务应用层;
39.物理链路层为数据端设备提供传送通路,将数据传输至通讯接口层;该数据端设备指连接在软总线上的所有通讯节点设备;
40.通讯接口层封装一组具有统一格式的标准数据访问接口;
41.数据分发层将来自通讯接口层的数据作分流处理,传输至数据交换层;
42.数据交换层存储数据对象,包含数据交换池和软总线接口;数据交换池存储有数据对象的数据信息;数据交换池通过接收数据分发层发送的通讯数据实时更新数据对象;每个数据对象对应一个用于舰船控制的物理信号;
43.业务应用层存储有所有舰船操控系统的应用功能模块;应用功能模块通过软总线接口读取或改写数据交换池内的数据对象的数据信息;各个应用功能模块之间通过软总线接口进行信息交互。
44.该设置的舰船操控系统通用软件分层架构,实现了统一的嵌入式系统软件框架,可实现舰船操控系统软件通用化,做到了对舰船操控专业所有应用场景和需求的覆盖,提
高了软件的整体复用性。且本架构摒弃了系统由多个功能模块联合组成的串行结构,采用容错能力更强的并行结构,避免了任一一个功能模块失效而造成系统全面瘫痪的缺陷,使得一旦某一应用功能模块发生故障时,系统能够通过故障重构而有效提高系统的鲁棒性和可靠性。可有效实现各应用功能模块的即插即用。
45.下面具体对本通用软件分层架构进行详细阐述:
46.参照图1所示,搭建应用于舰船操控领域的嵌入式软件通用架构,采用分层架构,从底至顶一共分为5层:物理链路层,通讯接口层,数据分发层,数据交换层,业务应用层。可一并参照图2,为软总线分层结构图。
47.(1)物理链路层
48.物理链路层是指为数据端设备提供传送通路,传输数据的具有物理形态的传输介质和设备,主要表现为物理形态的总线或网络,例如串口、以太网、can总线、1553b总线等。
49.(2)通讯接口层
50.通讯接口层通过封装一组具有统一格式的标准数据访问接口。例如:通讯接口初始化函数init、接口启动函数start、接口停函数stop、数据发送函数senddata、数据接收通知函数onnewdata、数据帧统计函数getframecount等。
51.通讯接口层采用了环形缓冲区的数据结构来缓存接收的数据帧,每个标准数据访问接口对应一个环形缓冲区,保证一个环形缓冲区仅有一个读用户和一个写用户,不需要额外添加互斥保护机制就可以确保数据的安全性和正确性。
52.通讯接口层搭建了网络内节点设备互通的桥梁,实现了节点之间信息的交互和共享。数据访问接口对上层应用而言,屏蔽了底层硬件、通讯协议以及操作系统的差异,隔离了底层硬件和上层编程的关联,使上层应用能兼容不同操作系统,具有良好的可移植性。
53.可有效屏蔽系统采用不同通讯硬件及其驱动的差异性,实现了硬件驱动的无关性,解决了连接在软总线上的通讯节点设备之间通讯所用的总线类型、接口方式和通讯协议形式复杂多样、难以统一的痛点,均可采用本架构设置的通讯接口层。通讯接口层对上统一了数据传输接口,对下封装了具体总线的通讯功能,在整个框架中起着承上启下的作用。具体地,框架使用xml配置文件来描述具体系统的通讯通道及配置信息。
54.(3)数据分发层
55.数据分发层由数据分发器组成,实现通讯数据路由转发功能,将来自通讯接口层的数据作分流处理,可向上传递存储到数据交换池,或者向其它通讯通道透明转发,或者重新组帧转发数据,或者实现数据帧过滤、筛选等。具体地,框架使用xml配置文件来描述具体系统的数据分发器及配置信息。
56.数据分发器用于描述通讯接口层传输的数据的分发和路由方式,如:上传给数据交换池、转发至其它通讯通道或数据筛选过滤等。可选地,数据分发器包括:网关、通用分发器、数据转发器等。数据分发器信息描述模型可参见如下表1。
57.表1数据分发器信息描述模型
[0058][0059]
(4)数据交换层
[0060]
数据交换层包含数据交换池和软总线对外接口(软总线接口)。数据交换池是存储数据对象的连续内存区。业务应用层内的应用功能模块通过软总线接口读取或改写数据对象对应的数据交换池数据,通讯接口层接收的通讯数据也会更新到对应的数据交换池内存区中。
[0061]
数据交换池,是存储数据对象数据信息的仓库,为存储数据对象而开辟的连续缓存区。缓存区即是指内存区。数据交换池是在系统初始化时开辟的一段连续的内存区,存储所有数据对象的实时数据。当数据发生更新时,新数据将覆盖旧数据。其中,触发数据更新的情况有两种:
[0062]
业务应用层的应用功能模块完成数据处理后,将结果写入数据交换池指定位置;
[0063]
通讯接口层的通讯接口接收到新数据后,将新数据覆盖至数据帧对应的内存空间内。
[0064]
软总线接口,是提供给上层应用功能模块使用的标准接口类,拥有读取数据对象的名称、属性、实时数值、物理单位和数值有效性等功能,以及数据更新通知事件的注册、注销等功能。软总线接口的设置一方面解除了应用功能模块之间的直接联系,避免了相互调用接口导致的相互依赖;另一方面实现了数据的封装,屏蔽了各种复杂的底层实现,为实现应用功能模块即插即用的目标奠定了基础。应用功能模块采用黑盒设计,相互之间是不可见的,彼此之间并不发生直接联系,而是通过软总线作为中间桥梁进行通信,降低了各功能模块之间的耦合性。
[0065]
具体地,软总线接口的设计主要包括:数据接收、数据发送和数据访问接口设计。
[0066]
数据接收的处理流程为:
[0067]
1)通讯接口层的标准数据访问接口(如can接口1)接收到数据,进入中断处理程序;
[0068]
2)将数据帧写入标准数据访问接口的环形缓存区,并向通讯接口管理类发送异步消息;
[0069]
3)通讯接口管理类收到接收数据的通知后,从环形缓存区读取数据;
[0070]
4)通讯接口管理类将新接收的数据传递给数据分发管理者;
[0071]
5)数据分发管理者将数据分发给distributors.xml(数据分发层)中配置的所有分发器,如通用分发器和数据转发器;
[0072]
6)通用分发器负责将数据帧拷贝到数据交换池内指定的内存区域,完成数据更新;
[0073]
7)数据转发器负责将数据通过通讯接口层的标准数据访问接口(can接口2)发送出去,完成数据的转发。
[0074]
数据发送的处理流程为:
[0075]
存储在数据交换池内的数据是经过编码器编码处理的,将数据按通讯协议打包后处理成可以直接在软总线上传输的二进制数据,可以在需要的时候直接发送到数据总线上,比如can总线、以太网上等。如果在通讯协议devices.xml配置文件中指定了发送频率,本框架支持数据帧的自动周期发送功能,具体实现步骤如下:
[0076]
1)系统初始化时,由数据帧管理者(cpdomanager)创建定时器;
[0077]
2)业务应用层的应用功能模块调用软总线接口函数,获取数据帧对象(cpdo)指针;
[0078]
3)调用软总线接口函数启动数据帧对象的自动发送接口;
[0079]
4)遍历指定了自动发送功能的所有数据帧。每次定时器轮转周期到时,计算当前时间与上次成功发送本帧数据的时间间隔;
[0080]
5)当时间间隔超过devices.xml中配置的发送时间间隔时,则通过指定通讯通道将本数据帧(通过can接口2)发送到数据总线上,比如can总线、以太网上等;否则本次不发送。
[0081]
数据访问的处理流程为:
[0082]
业务应用层的应用功能模块通过调用软总线接口可以非常方便的访问数据对象,读取实时数值或数据属性。以访问数据对象“航向”实时数值为例,具体调用过程如下:
[0083]
1)在应用功能模块里调用软总线接口函数,获取“航向”数据对象(csignal)的指针;
[0084]
2)获得“航向”数据对象对应数据交换池中的内存空间的地址;
[0085]
3)从数据交换池中读取“航向”的原始数据;
[0086]
4)调用“航向”数据对象的解码器将数据交换池中的原始数据解码;
[0087]
5)返回“航向”数据对象的实时物理值。
[0088]
具体地,(软总线中的)数据对象采用经过定制设计的信息描述模型,通过xml文件实现可配置的最小完备化的定义和描述。数据对象定义的可配置化,提高了软总线的灵活性和适用性。
[0089]
数据对象对应真实世界中用于舰船控制的物理信号,如:深度、航向、航速等。设计的封装类csignal包含了一系列访问接口(指软总线接口),包括获取名称、属性、实时数值、物理单位和数值有效性等。数据对象的属性通过数据对象信息描述模型,以xml文件实现可配置的最小完备化的定义和描述,如下表2所示:
[0090]
表2数据对象信息描述模型
[0091][0092]
(5)业务应用层
[0093]
业务应用层集合有舰船操控系统内所有应用功能模块,涵盖了执行系统任务的具体功能的实现,包括:避碰决策模块、航路规划模块、航迹控制模块、航向控制模块、舵角控制模块、姿态控制模块、推进控制模块、深度控制模块、潜浮控制模块、均衡控制模块、悬停控制模块等。因为采用了软总线技术,上层各应用功能模块可通过软总线接口进行信息交互,相互之间完全不可见,彼此基于数据而独立运行。
[0094]
具体地,应用功能模块通过调用软总线接口访问数据对象,可读取实时数值或数据属性。以访问数据对象“航向”实时数值为例,具体调用过程为:
[0095]
1)在应用功能模块里调用软总线接口函数,获取“航向”数据对象(csignal)的指针;
[0096]
2)获得“航向”数据对象对应数据交换池中的内存空间的地址;
[0097]
3)从数据交换池中读取“航向”的原始数据;
[0098]
4)调用“航向”数据对象的解码器将数据交换池中的原始数据解码;
[0099]
5)返回“航向”数据对象的实时物理值。
[0100]
数据生产者和数据消费者彼此之间不是直接通讯,而是通过接口函数(软总线接口函数)setdata和getdata与数据仓库(数据交换池,一个缓冲区)进行交互,彼此并不直接发生关联,彼此的修改也不会影响到对方,实现了双方的解耦。
[0101]
基于以上,参照图3所示,可将各应用功能模块视为数据生产者和消费者的组合,将集合了众多数据对象的数据仓库作为应用功能模块唯一的对外通讯对象,于是建立起以数据交换为核心的功能模块交互模型,其中数据仓库的作用是实现数据生产者与数据消费者的解耦,协调二者完成信息交互。如此,可达到:普遍适用性:嵌入式舰船操控系统软件的任何功能模块均可以抽象成制造数据的生产者,或者处理数据的消费者,以及二者的组合。较低耦合度:功能模块之间不是通过直接调用彼此的接口函数进行直接通讯,而是通过访问数据仓库里的数据对象或响应数据更新事件进行交互,实现了模块之间的解耦。任务并发性:生产者和消费者是两个独立的并发主体,生产者的职责是负责制造、更新数据并放入缓冲区;消费者的职责是获取、处理数据。它们运行于不同的任务或线程中,彼此相互独立、互不干涉,生产者不依赖消费者的处理速度,消费者无需关心生产者的更新频率。
[0102]
本实施例提供的分层架构实现了多型号舰船操控系统软件的兼容,解决了软件的通用性问题。具体地,参见图4所示,舰船操控系统软件主要包括:部署在容错控制计算机上的控制软件和部署在综合显示计算机上的显示软件。控制软件可拆分成航向控制、深度控制、余度表决等功能模块;显示软件可拆分成操舵显示、报警显示、余度管理等功能模块。这些模块功能以即插即用的方式挂载在软总线上,通过软总线接口访问数据对象,既避免了模块之间相互调用接口导致的相互耦合和依赖,又实现了数据的高速交换。
[0103]
参照图5所示,舰船操控系统通用软件启动时,将按照以下步骤完成初始化:
[0104]
1)初始化开始;
[0105]
2)首先创建数据交换池,开辟一块空间足够大的连续内存空间,用于存储编码后的数据对象内容;
[0106]
3)读入通讯协议配置文件devices.xml,完成系统协议信息的解析;系统通讯协议通过协议配置文件devices.xml来记录存储。系统中交互的各个数据对象如深度、航向信息,根据数据对象信息描述模型来刻画和描述,形成的数据对象配置信息集合就是devices.xml文件。
[0107]
4)创建设备管理者cdevicemanager类对象。根据3)解析的网络内节点设备的配置信息创建cdevice对象;
[0108]
5)创建数据帧管理者cpdomanager类对象。根据3)解析的数据帧和数据对象配置信息创建cpdo对象和csignal对象;
[0109]
6)读入数据分发器配置文件distributors.xml,完成系统分发器配置信息的解析;
[0110]
7)创建分发器管理者cdistributormanager类对象。根据6)解析的分发器配置信息创建cdistributor对象;
[0111]
8)读入通讯接口配置文件drivers.xml,完成系统通讯接口配置信息的解析;
[0112]
9)创建通讯接口管理者cdrivermanager类对象。根据8)解析的通讯接口配置信息创建cdriver对象。
[0113]
10)初始化结束。
[0114]
本实施例,为了适用不同舰船型号对应的不同的软硬件平台,以及操纵功能需求,从顶层的高度提供了一个通用的、可重用的软件框架,可将不同项目的软件整合成一个具有统一框架的软件,解决了嵌入式软件开发过程中具体产品具体定制、类似产品重复开发的问题,极大提高了软件的开发效率、复用性和稳定性。本实施例提供的软件分层架构在总结舰船操控系统软件需求和充分研究软总线技术优点的基础上,提出了基于软总线技术的底层数据交换接口设计,并详细介绍了基于软总线技术的舰船操控系统通用软件分层架构实现的技术细节,对于嵌入式系统通用软件设计具有重要参考意义。
[0115]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献