一种嵌入式RTOS上分布式实时通信中间件的构建方法技术

技术编号:21605092 阅读:142 留言:0更新日期:2019-07-13 18:05
DDS(数据分发服务)作为一种分布式通信中间件,目前的应用常见于PC端,而在嵌入式平台,尤其是像VxWorks这样的实时操作系统下进行数据分发服务的部署是现有技术的盲区。但在实时嵌入式系统中DDS良好的分布式数据分发特性具有很大的发挥空间,且具有巨大的市场应用前景。为了满足目前市场对于实时嵌入式平台中分布式数据分发功能的需要,同时解决上述的技术问题,本发明专利技术提出一种在VxWorks6.6嵌入式实时操作系统上利用RTI Connext DDS构建分布式实时通信中间件的构建方法。通过在Linux中构建交叉编译环境,对DDS源码进行编译,将生成的库文件通过配置Wind River Workbench实现系统调用。另外通过xml文件的方式实现对DDS各个实体以及QoS的配置,生成代码提供API供其他组件进行调用。

A Construction Method of Distributed Real-time Communication Middleware on Embedded RTOS

【技术实现步骤摘要】
一种嵌入式RTOS上分布式实时通信中间件的构建方法
本专利技术涉及到实时嵌入式操作系统开发、分布式数据分发服务,具体涉及一种嵌入式RTOS上分布式实时通信中间件的构建方法。
技术介绍
DDS(DataDistributionService)数据分发服务是对象管理组织(OMG)在HLA及CORBA等标准的基础上制定的新一代分布式实时通信中间件技术规范。DDS采用发布/订阅体系架构(DCPS)模型,强调以数据为中心,在该模型中,应用程序使用特定的API建立对应的DDS实体,进而使用实体实现发布/订阅模式的数据通信。同时DDS提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。VxWorks实时操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。由于VxWorks系统没有良好的桌面式的交互环境,甚至没有类似于Unix系统中较为完善的Shell系统,对于VxWorks系统的操作或者部署相应的组件驱动,需要针对kernel(内核)源码进行相关的部署和修改,并通过命令行或者专业的软件进行编译导入,所以对于VxWorks系统相关中间件的研究以及应用都相对较少。另外DDS是一套基于以太网的数据交互协议,RTI公司对于协议进行实现,但是并没有形成完整的可直接部署、使用的中间件,只提供了发送、接收以及QoS等相关功能的源码以及库文件的支持。在实际使用的时候需要将源文件、库文件进行工程的导入,另外完成极为复杂的编译环境的搭建工作,之后才可对源码进行编译。在目前常见的Windows或者Linux系统中配置DDS也是相对困难的事情,尤其在VxWorks这样的实时操作系统下进行数据分发服务的部署更是现有技术的盲区。但在实时嵌入式系统中DDS良好的分布式数据分发特性具有很大的发挥空间。在大数据以及物联网的大潮流下,嵌入式终端的联网通信,以及大量数据的实时交互具有巨大的市场应用前景。
技术实现思路
为了满足目前市场对于实时嵌入式平台中分布式数据分发功能的需要,同时解决上述的技术问题,本专利技术提出一种嵌入式RTOS上分布式实时通信中间件的构建方法。这种嵌入式RTOS上分布式实时通信中间件利用RTIConnextDDS在VxWorks6.6嵌入式实时操作系统上构建,其中中间件实体包括域参与者(DomainParticipant)、主题(Topic)、发布者(Publisher)和数据写入者(DataWriter)、接收者(Subscriber)和数据接收者(DataReader)、QoS策略等;中间件的构成文件包括发送、接收源码、DDS静态链接库、DDS源码、数据类型转换源码、xml中间件配置文件。这种嵌入式RTOS上分布式实时通信中间件的交互方式既可以通过所述XML中间件配置文件中特定节点的改写改指定各个实体的属性、定义数据结构或者重写QoS策略,也通过在程序中对中间件中特定的调用函数接口实现上述功能,并通过接收发送函数的调用就可以实现跨语言、跨平台、跨系统的数据实时分发服务。本专利技术中在VxWorks6.6嵌入式实时操作系统上利用RTIConnextDDS构建分布式实时通信中间件,如附图1所示,构建方法包括以下步骤:步骤S1:对RTIConnextDDS中有关于数据分发服务的源码进行编译,生成与嵌入式RTOS(实时操作系统)VxWorks6.6系统相匹配的DDS链接库文件。步骤S2:利用VxWorks6.6的开发环境WindRiverWorkbench对DDS的链接库文件进行导入,并完成相关内核组件以及环境变量的配置。步骤S3:利用XML文件对DDS中QoS策略进行配置,实现两种传输模式:采样模式和队列模式。采样模式以传输效率优先,对数据是否丢包要求不高的情况下适用;而队列模式则保证发送的所有数据都可被接收到,适用于对数据完整性要求较高的情况。并对其中的域参与者(DomainParticipant)、主题(Topic)、发布者(Publisher)和数据写入者(DataWriter)实体、接收者(Subscriber)和数据写入者(DataReader)进行参数配置,并注册各Topic对应的数据结构。步骤S4:在RTILauncher中利用Utilities的CodeGenerator工具将步骤S3中的XML文件导入,自动生成相关代码,并将代码加入到WindRiverWorkbench的开发环境中,其中发送和接收等相关的函数API可以供其他的功能模块调用。附图说明附图1构建方法流程图附图2makefile文件API层修改方法图附图3Workbench宏定义添加方法图附图4BuildTool中检查宏定义方法图附图5Workbench中添加编译库文件方法图附图6Workbench中添加DDS库文件方法图附图7Workbench中VxWorks组件添加方法图附图8Generator工具生成代码示意图具体实施方式下面参照附图,对本专利技术的具体实施方式进行描述。本专利技术中在VxWorks6.6嵌入式实时操作系统上利用RTIConnextDDS构建分布式实时通信中间件,构建方法包括以下步骤:步骤S1:对RTIConnextDDS中有关于数据分发服务的源码进行编译,生成与嵌入式RTOS(实时操作系统)VxWorks6.6系统相匹配的DDS链接库文件。步骤S1.1:修改RTIContextDDS根目录makefile文件在DDS源码的根目录下存在一个makefile文件,该文件用来编译生成DDS链接库。该文件对将要编译的DDS源文件的结构做出部署,并且要求一组模块的集合以文件夹的形式存在。DDS运行于VxWorks系统中,采用的是C/C++语言,参见附图2,在API层处,将除dds_c.1.0和dds_cpp.1.0之外的其他内容注释掉。如此一来,编译生成的链接库除了位于核心文件夹core.1.0处的文件外,还将包括dds_c.1.0和dds_cpp.1.0处的文件。对于支持其他语言的嵌入式平台,在使用时可根据所采用的编程语言选用相关链接库文件中的API。步骤S1.2:修改相关配置文件personal.mk步骤S1.2.1:配置文件perisonal.mk文件对编译使用的各种环境变量进行记录。环境变量OS_ARCH的值对应的是与链接库匹配的操作系统,默认环境为i86Linux2.6,可将默认的环境注释掉,新增语句:exportOS_ARCH=pentiumVx6.6gcc4.1.2OS_ARCH标识编译生成的链接库运行的环境信息。在源码编译成功后,将在/core.1.0/lib/$(OS_ARCH)目录下生成编译文件。其中pentiumVx6.6gcc4.1.2代表该链接库运行于VxWorks6.6平台,使用Pentium类型的BSP,其gcc版本为4.1.2.步骤S1.2.2:环境变量WAVEWORKSHOME代表DDS源码所在的本文档来自技高网
...

【技术保护点】
1.一种嵌入式实时操作系统(RTOS)上分布式实时通信中间件的构建方法,其特征在于,所述的实时通信中间件利用RTIConnext DDS在VxWorks实时嵌入式操作系统上构建,其中中间件实体包括域参与者(Domain Participant)、主题(Topic)、发布者(Publisher)和数据写入者(Data Writer)、接收者(Subscriber)和数据接收者(Data Reader)、QoS策略等;中间件构成文件包括发送、接收源码、DDS静态链接库、DDS源码、数据类型转换源码、xml中间件配置文件等;其中中间件各个实体对应数据分发服务各个功能模块,利用RTIConnext DDS中的函数接口对各个实体进行创建,实现数据分发,并对数据发送领域、特定数据接收对象和数据发送接收方法进行控制;其中中间件的DDS链接库需要通过构建特定交叉编译环境对DDS源码进行编译,实现对VxWorks系统的支持,数据类型转化源码利用RTIConnext DDS工具针对特定数据结构生成,对开发者使用特定的数据结构便于数据管理,在传送过程中将特定的数据结构转化成字符串类型,便于以太网的打包传输,xml配置文件可以实现对中间件各个实体参数(如Mask、ID等)进行指定,另外可以注册数据类型和指定QoS策略。...

【技术特征摘要】
1.一种嵌入式实时操作系统(RTOS)上分布式实时通信中间件的构建方法,其特征在于,所述的实时通信中间件利用RTIConnextDDS在VxWorks实时嵌入式操作系统上构建,其中中间件实体包括域参与者(DomainParticipant)、主题(Topic)、发布者(Publisher)和数据写入者(DataWriter)、接收者(Subscriber)和数据接收者(DataReader)、QoS策略等;中间件构成文件包括发送、接收源码、DDS静态链接库、DDS源码、数据类型转换源码、xml中间件配置文件等;其中中间件各个实体对应数据分发服务各个功能模块,利用RTIConnextDDS中的函数接口对各个实体进行创建,实现数据分发,并对数据发送领域、特定数据接收对象和数据发送接收方法进行控制;其中中间件的DDS链接库需要通过构建特定交叉编译环境对DDS源码进行编译,实现对VxWorks系统的支持,数据类型转化源码利用RTIConnextDDS工具针对特定数据结构生成,对开发者使用特定的数据结构便于数据管理,在传送过程中将特定的数据结构转化成字符串类型,便于以太网的打包传输,xml配置文件可以实现对中间件各个实体参数(如Mask、ID等)进行指定,另外可以注册数据类型和指定QoS策略。2.基于权利要求1所述的一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于,所述构建方法包括以下步骤:步骤S1:对RTIConnextDDS中有关于数据分发服务的源码进行编译,生成与VxWorks6.6系统相匹配的DDS链接库文件;步骤S2:利用VxWorks6.6的开发环境WindRiverWorkbench对DDS的链接库文件进行导入,并完成相关内核组件以及环境变量的配置;步骤S3:利用XML文件对DDS中QoS策略进行配置,实现两种传输模式:采样模式和队列模式;对域参与者(DomainParticipant)、主题(Topic)、发布者(Publisher)和数据写入者(DataWriter)实体、接收者(Subscriber)和数据接收者(DataReader)实体进行参数配置,并注册各Topic对应的数据结构;步骤S4:在RTILauncher中利用Utilities的CodeGenerator工具将步骤S3中的XML文件导入,自动生成相关代码,并将代码加入到WindRiverWorkbench的开发环境中。3.基于权利要求2所述的一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于所述步骤S1中具体步骤如下:步骤S1.1:修改根目录Makefile文件:DDS运行于VxWorks系统中,采用的是C/C++语言,将除dds_c.1.0和dds_cpp.1.0之外的其他内容注释掉,编译生成的链接库除了位于核心文件夹core.1.0处的文件外,还将包括dds_c.1.0和dds_cpp.1.0处的文件;步骤S1.2:修改配置文件perisonal.mk:S1.2.1:环境变量OS_ARCH新增语句:exportOS_ARCH=pentiumVx6.6gcc4.1.2;S1.2.2:环境变量WAV...

【专利技术属性】
技术研发人员:肖瑾朱志伟胡晓光贾海恩刘相君
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1