[go: up one dir, main page]

CN110008044B - Method for constructing distributed real-time communication middleware on embedded RTOS - Google Patents

Method for constructing distributed real-time communication middleware on embedded RTOS Download PDF

Info

Publication number
CN110008044B
CN110008044B CN201910287484.5A CN201910287484A CN110008044B CN 110008044 B CN110008044 B CN 110008044B CN 201910287484 A CN201910287484 A CN 201910287484A CN 110008044 B CN110008044 B CN 110008044B
Authority
CN
China
Prior art keywords
dds
data
file
real
middleware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910287484.5A
Other languages
Chinese (zh)
Other versions
CN110008044A (en
Inventor
肖瑾
朱志伟
胡晓光
贾海恩
刘相君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201910287484.5A priority Critical patent/CN110008044B/en
Publication of CN110008044A publication Critical patent/CN110008044A/en
Application granted granted Critical
Publication of CN110008044B publication Critical patent/CN110008044B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Figure 201910287484

As a kind of distributed communication middleware, DDS (Data Distribution Service) is currently applied on the PC side, and the deployment of data distribution services on embedded platforms, especially real-time operating systems such as VxWorks, is an existing technology. blind spot. But in the real-time embedded system, the good distributed data distribution characteristic of DDS has a lot of room to play, and has a huge market application prospect. In order to meet the needs of the current market for distributed data distribution functions in real-time embedded platforms, and at the same time to solve the above-mentioned technical problems, the present invention proposes a distributed real-time communication center constructed by using RTI Connext DDS on the VxWorks6.6 embedded real-time operating system. how to build the piece. By building a cross-compilation environment in Linux, the DDS source code is compiled, and the generated library file is configured to implement system calls through Wind River Workbench. In addition, the configuration of each entity of DDS and QoS is realized by means of xml file, and the generated code provides API for other components to call.

Figure 201910287484

Description

Method for constructing distributed real-time communication middleware on embedded RTOS
Technical Field
The invention relates to development of a real-time embedded operating system and distributed data distribution service, in particular to a method for constructing a distributed real-time communication middleware on an embedded RTOS.
Background
The DDS (data Distribution service) data Distribution service is a new generation of distributed real-time communication middleware technical specification made by an Object Management Group (OMG) on the basis of standards such as HLA (high level architecture) and CORBA (common object architecture). The DDS adopts a publish/subscribe architecture (DCPS) model, emphasizing data as a center, in which an application uses a specific API to establish a corresponding DDS entity, and further uses the entity to implement data communication in a publish/subscribe mode. Meanwhile, the DDS provides rich QoS service quality strategies, can ensure that data can be distributed efficiently and flexibly in real time, and can meet the application requirements of various distributed real-time communication.
The VxWorks real-time operating system is an embedded real-time operating system (RTOS) designed and developed by Windriver corporation in 1983 in the United states and is a key component of an embedded development environment. The embedded real-time operating system has good continuous development capability, a high-performance kernel and a friendly user development environment, and occupies a place in the field of embedded real-time operating systems. The method is widely applied to the fields with high-precision technologies such as communication, military, aviation, aerospace and the like and extremely high real-time requirements by virtue of good reliability and excellent real-time performance.
Because the VxWorks system has no good desktop type interactive environment, even does not have a perfect Shell system similar to the Unix system, for the operation of the VxWorks system or the deployment of corresponding component drivers, the kernel source code needs to be relatively deployed and modified, and compiling and importing are performed through a command line or professional software, so that the research and application of the related middleware of the VxWorks system are relatively less. In addition, the DDS is a set of data interaction protocols based on ethernet, and the RTI company implements the protocols, but does not form a complete middleware that can be directly deployed and used, and only provides support for source codes and library files of related functions such as transmission, reception, QoS, and the like. In actual use, a source file and a library file need to be imported into a project, and in addition, the construction work of a very complex compiling environment is completed, and then the source code can be compiled. It is also relatively difficult to configure DDS in a current common Windows or Linux system, and particularly, deployment of data distribution service under a real-time operating system such as VxWorks is a blind area in the prior art.
But the good distributed data distribution characteristic of the DDS in the real-time embedded system has a large play space. Under the heavy stream of big data and the Internet of things, the networking communication of the embedded terminal and the real-time interaction of a large amount of data have huge market application prospects.
Disclosure of Invention
In order to meet the requirement of the current market on the distribution function of distributed data in a real-time embedded platform and solve the technical problem, the invention provides a construction method of a distributed real-time communication middleware on an embedded RTOS.
The distributed real-time communication middleware on the embedded RTOS is constructed on a VxWorks6.6 embedded real-time operating system by utilizing an RTI (real time desktop) DDS, wherein the middleware entity comprises a Domain Participant (Domain Participant), a theme (Topic), a Publisher (Publisher) and a Data Writer (Data Writer), a receiver (Subscriber) and a Data receiver (Data Reader), a QoS (quality of service) strategy and the like; the middleware composition file comprises a sending source code, a receiving source code, a DDS static link library, a DDS source code, a data type conversion source code and an xml middleware configuration file.
The interactive mode of the distributed real-time communication middleware on the embedded RTOS can not only specify the attribute of each entity, define the data structure or rewrite the QoS policy through the rewriting of a specific node in the configuration file of the XML middleware, but also realize the functions through a specific calling function interface in the middleware in a program, and can realize cross-language, cross-platform and cross-system data real-time distribution service through receiving the calling of a sending function.
In the invention, a distributed real-time communication middleware is constructed by utilizing RTI (real time interface) Next DDS (direct digital synthesis) on a VxWorks6.6 embedded real-time operating system, and as shown in the attached figure 1, the construction method comprises the following steps:
step S1: compiling source codes related to data distribution service in the RTI context DDS to generate a DDS link library file matched with an embedded RTOS (real-time operating system) VxWorks6.6 system.
Step S2: and importing the link library file of the DDS by utilizing a development environment Wind River Workbench of VxWorks6.6, and completing configuration of related kernel components and environment variables.
Step S3: the QoS strategy in the DDS is configured by utilizing an XML file, and two transmission modes are realized: a sampling mode and a queue mode. The sampling mode is applied under the condition that the requirement on whether the data packet is lost is not high by taking transmission efficiency as priority; the queue mode ensures that all data sent can be received, and is suitable for the condition with higher requirement on data integrity.
And parameter configuration is carried out on Domain participators (Domain participants), topics (Topic), publishers (publishers) and Data writers (Data writers) entities, receivers (subscribers) and Data writers (Data readers) in the Domain participators, and Data structures corresponding to the topics are registered.
Step S4: and importing the XML file in the step S3 by using a Code Generator tool of Utilities in the RTI Launcher, automatically generating related codes, and adding the codes into a development environment of the Wind River Workbench, wherein related function APIs such as sending and receiving can be called by other function modules.
Drawings
FIG. 1 shows a flow chart of a construction method
FIG. 2 is a diagram of a method for modifying API layer of makefile
FIG. 3 is a diagram of a method for adding workflow macro definitions
FIG. 4 is a diagram of a method for checking macro definition in BuildTool
FIG. 5 is a diagram of a method for adding a compiler file to a Workbench
FIG. 6 is a method diagram for adding DDS library files in Workbench
FIG. 7 is a diagram of VxWorks component adding method in Workbench
FIG. 8 Generation code Diagram for the Generator tool
Detailed Description
The following describes a specific embodiment of the present invention with reference to the drawings.
The invention utilizes RTI Next DDS to construct a distributed real-time communication middleware on a VxWorks6.6 embedded real-time operating system, and the construction method comprises the following steps:
step S1: compiling source codes related to data distribution service in the RTI context DDS to generate a DDS link library file matched with an embedded RTOS (real-time operating system) VxWorks6.6 system.
Step S1.1: modifying RTI Context DDS root directory makefile
A makefile exists in the root directory of the DDS source code, and the makefile is used for compiling and generating a DDS link library. This file makes a deployment of the structure of the DDS source file to be compiled and requires that a set of modules exist in the form of a folder. The DDS runs in the VxWorks system in C/C + + language, see fig. 2, and at the API level, the contents other than DDS _ c.1.0 and DDS _ cpp.1.0 are annotated away. As such, the compiled linked library will include files at dds _ c.1.0 and dds _ cpp.1.0 in addition to the files at core folder core.1.0. For embedded platforms supporting other languages, the API in the relevant link library file can be selected according to the adopted programming language when in use.
Step S1.2, modifying related configuration file personal
Step S1.2.1: mk file records various environment variables used for compilation. The value of the environment variable OS _ ARCH corresponds to an operating system matched with the link library, the default environment is ia86linux 2.6, the default environment can be annotated, and a statement is added:
export OS_ARCH=pentiumVx6.6gcc4.1.2
the OS _ ARCH identifies environment information in which the compiled linked library runs. After the source code is compiled successfully, a compiled file will be generated under the/core.1.0/lib/$ (OS _ ARCH) directory. Where Pentium vx6.6gccc 4.1.2 represents that the link library runs on the vxworks6.6 platform, using a Pentium type BSP with a gcc version of 4.1.2.
Step S1.2.2: the environment variable WAVEWORKSHOME represents the path of the DDS source code and modifies the path into the actual path of the DDS source code, such as
export WAVEWORKSHOME=/home/admin/ndds500-buildsrc。
Step S1.3, modifying the source code generation file pentium Vx6.6gCC4.1.2.mk
Step S1.3.1: the source code generation file pentium Vx6.6gCC4.1.2.mk is located in resource.2.0\ makehome folder under the source code directory. It can be seen in the Makefile of BSP that the CPU corresponding to the BSP used in the present invention is Pentium4, and there is no corresponding source generated file in the target, so in the Pentium vx6.6gccc 4.1.2.mk file, the CPU type needs to be modified from the original Pentium to Pentium 4.
Step S1.3.2: and modifying variables WIND _ BASE and WIND _ HOME related to the VxWorks development environment workbench. The default values are:
export WIND_HOME=/local/VxWorks/GPP-3.6
export WIND_BASE=/local/VxWorks/GPP-3.6/vxworks-6.6
and modifying the default value into an actual installation directory of the workbench.
And then adding a compiling head file path under the C and C + + compilers:
-I/home/admin/WindRiver/gnu\4.1.2-vxworks-6.6\lib\gcc\i586-wrs-vxworks\4.1.2\include
s1.4, building a cross compiling environment based on a Linux operating system
In the invention, compiling environment configuration is carried out according to a source code generation file pentium Vx6.6gCC4.1.2. mk. And in a Linux operating system environment, compiling according to the modified makefile to generate a DDS link library.
And installing a Linux operating system in the VMware, decompressing the DDS source code, installing a VxWorks system Development environment, and starting a VxWorks Development shell, namely completing the construction of the cross-compiling environment.
Step S1.5, compiling DDS link library
The following instructions are entered in the VxWorks653Development shell:
Cd/home/admin/WindRiver
./wienv.sh–p vxworks6.6
Cd/home/admin/ndds500-buildsrc
Make PentiumVx6.6gcc4.1.2
and a first sentence of the instructions switches the current directory to the folder where the installed VxWorks is located, and then the second sentence is used for opening the wrenv. And next, switching the directory to a folder where a DDS source code is located, and finally executing a make instruction on a source generation file pentium Vx6.6gccc 4.1.2.mk to generate a DDS link library file which can be used in a VxWorks6.6 system.
The generated link library file has a core part positioned in a source code directory core.1.0\ lib \ pentium Vx6.6gCC4.1.2 and API parts positioned in dds _ c.1.0\ lib \ pentium Vx6.6gCC4.1.2 and dds _ cpp.1.0\ lib \ pentium Vx6.6gCC4.1.2.
And step S2, importing the link library file of the DDS by utilizing the development environment Wind River Workbench of VxWorks6.6, and completing the configuration of the related kernel component and the environment variable.
In the invention, the VxWorks6.6 development environment is Wind River Workbench, and corresponding configuration needs to be carried out in the VxWorks system when a DDS is used in the VxWorks system.
Step S2.1: adding macro definitions
Referring to fig. 3, a makefile is found in the BSP corresponding to the embedded platform, and a macro definition is added thereto:
EXTERN_DEFINE=-DFAST_REBOOT–DRTI_VXWORKS
as shown in FIG. 4, the BSP is recompiled, the property dialog box is opened according to the project built by the compiled BSP, and whether the macro definition is correctly added is checked at Build Properties, namely Build Tools.
Step S2.2: adding a Linked library File Path
In the project created in step S2.1, as shown in fig. 5, the property page is opened, and the directory where the LINK library generated above is located is added at the Build Properties — Build robots — LD _ LINK _ PATH. The edge button is clicked at LD _ LINK _ PATH, and then the address is added thereto.
Step S2.3 adding library file directory
And opening the property page of the project established in the step S2.1, and adding the address of the DDS library file at the Build Properties-Build pages as shown in the attached figure 6. An example of an address is:
D:\RTI\ndds.5.0.0\include
D:\RTI\ndds.5.0.0\include\ndds
s0604 adding VxWorks component
Step S2.4: adding kernel components
Referring to FIG. 7, the Kernel Configuration page of the project built in S0601 is opened, and the operating system components- -Real Time Process components are selected, and the components are added to the project.
Step S3: the QoS strategy in the DDS is configured by utilizing an XML file, and two transmission modes are realized: a sampling mode and a queue mode. The sampling mode is applied under the condition that the requirement on whether the data packet is lost is not high by taking transmission efficiency as priority; the queue mode ensures that all data sent can be received, and is suitable for the condition with higher requirement on data integrity.
And parameter configuration is carried out on Domain participators (Domain participants), topics (Topic), publishers (publishers) and Data writers (Data writers) entities, receivers (subscribers) and Data writers (Data readers) in the Domain participators, and Data structures corresponding to the topics are registered.
Step S3.1: setting QoS parameters
QoS policies are methods used by applications to control, manage and optimize the flow of data transmitted in a network, which can be viewed as a contract between a data provider and a receiver. The entities in the DDS all have default QoS policies, and when not modified, the application will implement communication between the entities according to the default QoS policies.
The corresponding functions are realized through corresponding settings of History, Reliability and Resource _ limits:
the History (History) policy describes the number of data samples that should be kept in the buffer when the DDS is used to effect the transfer of data. The reserved category is set by the kid parameter, ALL reservations (DDS _ KEEP _ ALL _ HISTORY _ QOS) can be selected, and the LAST N reservations in the HISTORY data (DDS _ KEEP _ LAST _ HISTORY _ QOS) can be selected, wherein the N is determined by the depth parameter. The default setting of the history policy is to keep the last history data, i.e. the value of N is set to 1.
Historical policies in QoS dictate the number of sample data retained. For data writers, these samples will be stored until the publisher sends them to the opposing data writer. For a data reader, after receiving the data, the data will be retained until the application retrieves the data. The policy applies to the subject, data reader and data writer entities through the history member of the QoS structure.
The reliability (reliability) policy describes the reliability of data transmission using DDS, and includes two sub-parameters, reliability category and duration, respectively. Wherein kind is divided into a reusable and a best effort.
If the reliability type kid is set as the default best effort, the transmission of the data takes the transmission efficiency as the primary factor, and the method is suitable for data transmission with high real-time requirement on the data. If the data requiring transmission cannot be missed, the kid value should be set to valid.
The persistence (duration) is effective only when the kind of reliability kind is set to enable. In this case, the data writer will retain the message that has been sent until notified by the data reader to confirm that the message has been received, and will not remove the retained message. If not notified by the data reader, the data is retransmitted until received.
The reliability policy applies to the subject, data reader and data writer entities.
The RESOURCE restriction (RESOURCE _ LIMITS) policy describes the local storage space that needs to be consumed when using DDS to pass through, and the declaration of the RESOURCE amount is implemented by the RESOURCE _ LIMITS member.
The resource restriction policy applies to topics, data readers, and data writers.
The functions are realized through corresponding settings of History, Reliability and Resource _ limits. Under the QoS default setting, the transmission of data can implement the sampling mode, and to implement the queue mode, the QoS policies of the subject, the data writer, and the data reader need to be set, as shown in table 1 and table 2.
TABLE 1 topic and data reader QoS policies
Figure BDA0002023771260000061
Figure BDA0002023771260000071
TABLE 2 data writer QoS policies
Figure BDA0002023771260000072
Figure BDA0002023771260000081
Step S3.2: setting DDS-related entity parameters
DDS related entities include Domain Participant (Domain Participant), Topic (Topic), Publisher (Publisher) and Data Writer (Data Writer) entities, recipient (Subscriber) and Data Writer (Data Reader). And configuring the parameters of each entity by using the XML file, and registering a data structure corresponding to each Topic.
Step S3.2.1: the data structure is registered by using an XML file, and the data format needs to be rewritten according to a certain format, for example:
Figure BDA0002023771260000082
step S3.2.2: binding of data structures is done for related Topic (topics) in domains, for example:
Figure BDA0002023771260000083
step S3.2.3: data structure binding is performed on datareader and datawriter, for example:
Figure BDA0002023771260000084
Figure BDA0002023771260000091
and S4, importing the XML file in the step S3 by using a Code Generator tool of Utilities in an RTI Launcher, automatically generating related codes, and adding the codes into a development environment of a Wind River Workbench, wherein related function APIs such as sending and receiving can be called by other function modules.
Step S4.1: as shown in FIG. 8, the XML file written in step S3 is placed in a Code Generator tool using Utilities in RTI Launcher, and the relevant Code can be automatically generated after running.
Step S4.2: and copying and pasting the code generated in the step S4.1 into a corresponding project directory, refreshing a resource panel in the development environment of the Wind River Workbench, and finding the generated code.
Step S4.3: and modifying the generated code, exposing the function interface to the outside, and declaring the function. The cycle monitoring function of the DDS needs to be set as a task, and occupies a process space independently, otherwise unexpected errors such as insufficient memory space, task blockage and the like easily occur.
After the above steps are deployed, the DDS can be sent and received in other components by means of function call.

Claims (5)

1.一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于,所述的实时通信中间件利用RTIConnetx DDS在VxWorks实时嵌入式操作系统上构建,其中中间件实体包括域参与者(Domain Participant)、主题(Topic)、发布者(Publisher)和数据写入者(DataWriter)、接收者(Subscriber)和数据接收者(Data Reader)、QoS策略等;中间件构成文件包括发送、接收源码、DDS静态链接库、DDS源码、数据类型转换源码、xml中间件配置文件等;1. a construction method of distributed real-time communication middleware on embedded RTOS, is characterized in that, described real-time communication middleware utilizes RTIConnetx DDS to build on VxWorks real-time embedded operating system, and wherein middleware entity comprises domain participant (Domain Participant), topic (Topic), publisher (Publisher) and data writer (DataWriter), receiver (Subscriber) and data receiver (Data Reader), QoS policy, etc.; middleware composition files include sending, receiving Source code, DDS static link library, DDS source code, data type conversion source code, xml middleware configuration file, etc.; 其中中间件各个实体对应数据分发服务各个功能模块,利用RTIConnetx DDS中的函数接口对各个实体进行创建,实现数据分发,并对数据发送领域、特定数据接收对象和数据发送接收方法进行控制;Each entity of the middleware corresponds to each functional module of the data distribution service, and uses the function interface in RTIConnetx DDS to create each entity, realize data distribution, and control the data sending field, specific data receiving objects and data sending and receiving methods; 其中中间件的DDS链接库需要通过构建特定交叉编译环境对DDS源码进行编译,实现对VxWorks系统的支持,数据类型转换源码利用RTIConnext DDS工具针对特定数据结构生成,对开发者使用特定的数据结构便于数据管理,在传送过程中将特定的数据结构转化成字符串类型,便于以太网的打包传输,xml配置文件可以实现对中间件各个实体参数(如Mask、ID等)进行指定,另外可以注册数据类型和指定QoS策略;Among them, the DDS link library of the middleware needs to compile the DDS source code by building a specific cross-compilation environment to support the VxWorks system. The data type conversion source code is generated by the RTIConnext DDS tool for a specific data structure. Data management, converts specific data structures into string types during the transmission process, which is convenient for Ethernet packaging and transmission. The xml configuration file can specify various entity parameters (such as Mask, ID, etc.) of the middleware, and can also register data. Type and specify QoS policy; 其中,所述构建方法包括以下步骤:Wherein, the construction method comprises the following steps: 步骤S1:对RTIConnext DDS中有关数据分发服务的源码进行编译,生成与VxWorks6.6系统相匹配的DDS链接库文件;Step S1: Compile the source code related to the data distribution service in RTIConnext DDS, and generate a DDS link library file matching the VxWorks6.6 system; 步骤S2:利用VxWorks6.6的开发环境Wind River Workbench对DDS的链接库文件进行导入,并完成相关内核组件以及环境变量的配置;Step S2: use the development environment Wind River Workbench of VxWorks6.6 to import the link library file of DDS, and complete the configuration of relevant kernel components and environment variables; 步骤S3:利用XML文件对DDS中QoS策略进行配置,实现两种传输模式:采样模式和队列模式;对域参与者(Domain Participant)、主题(Topic)、发布者(Publisher)和数据写入者(Data Writer)实体、接收者(Subscriber)和数据接收者(Data Reader)实体进行参数配置,并注册各主题(Topic)对应的数据结构;Step S3: Configure the QoS policy in the DDS by using the XML file to realize two transmission modes: sampling mode and queue mode; Domain Participant, Topic, Publisher and Data writer (Data Writer) entity, receiver (Subscriber) and data receiver (Data Reader) entity configure parameters, and register the data structure corresponding to each topic (Topic); 步骤S4:在RTILauncher中利用Utilities的Code Generator工具将步骤S3中的XML文件导入,自动生成相关代码,并将代码加入到Wind River Workbench的开发环境中。Step S4: Import the XML file in Step S3 by using the Code Generator tool of Utilities in RTILauncher, automatically generate relevant codes, and add the codes to the development environment of Wind River Workbench. 2.基于权利要求1所述的一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于所述步骤S1中具体步骤如下:2. based on the construction method of distributed real-time communication middleware on a kind of embedded RTOS according to claim 1, it is characterized in that concrete steps are as follows in described step S1: 步骤S1.1:修改根目录Makefile文件:Step S1.1: Modify the root directory Makefile: DDS运行于VxWorks系统中,采用的是C/C++语言,将除dds_c.1.0和dds_cpp.1.0之外的其他内容注释掉,编译生成的链接库除了位于核心文件夹core.1.0处的文件外,还将包括dds_c.1.0和dds_cpp.1.0处的文件;DDS runs in the VxWorks system and uses the C/C++ language. Comment out other content except dds_c.1.0 and dds_cpp.1.0. The compiled link library is located in the core folder core.1.0 Except for the files in the core folder, Will also include files at dds_c.1.0 and dds_cpp.1.0; 步骤S1.2:修改配置文件perisonal.mk:Step S1.2: Modify the configuration file perisonal.mk: S1.2.1:环境变量OS_ARCH新增语句:export OS_ARCH=pentiumVx6.6gcc4.1.2;S1.2.1: Added statement for environment variable OS_ARCH: export OS_ARCH=pentiumVx6.6gcc4.1.2; S1.2.2:环境变量WAVEWORKSHOME代表DDS源码所在的路径,将其修改为实际的路径即可,如export WAVEWORKSHOME=/home/admin/ndds500-buildsrc;S1.2.2: The environment variable WAVEWORKSHOME represents the path where the DDS source code is located, which can be changed to the actual path, such as export WAVEWORKSHOME=/home/admin/ndds500-buildsrc; 步骤S1.3:修改源生成文件pentiumVx6.6gcc4.1.2.mk:Step S1.3: Modify the source generated file pentiumVx6.6gcc4.1.2.mk: S1.3.1针对嵌入式硬件平台处理器进行BSP修改,本发明中所使用的BSP对应的CPU为pentium4,在pentiumVx6.6gcc4.1.2.mk文件中,将CPU类型由原来的pentium修改为pentium4;S1.3.1 carries out BSP modification for the embedded hardware platform processor, the CPU corresponding to the BSP used in the present invention is pentium4, and in the pentiumVx6.6gcc4.1.2.mk file, the CPU type is modified from the original pentium to pentium4; S1.3.2修改与VxWorks开发环境workbench相关的变量WIND_BASE与WIND_HOME,将默认值修改为workbench的实际安装目录;S1.3.2 Modify the variables WIND_BASE and WIND_HOME related to the VxWorks development environment workbench, and change the default values to the actual installation directory of workbench; S1.3.3:在C与C++编译器下添加编译头文件路径:-I/home/admin/WindRiver/gnu\4.1.2-vxworks-6.6\lib\gcc\i586-wrs-vxworks\4.1.2\include;S1.3.3: Add the compiled header file path under the C and C++ compilers: -I/home/admin/WindRiver/gnu\4.1.2-vxworks-6.6\lib\gcc\i586-wrs-vxworks\4.1.2\ include; 步骤S1.4:搭建基于Linux操作系统的交叉编译环境:Step S1.4: Build a cross-compilation environment based on the Linux operating system: 在虚拟机中安装Linux操作系统,将DDS源码解压,然后安装VxWorks系统开发环境;随后启动VxWorks Development shell,即完成了交叉编译环境的搭建;Install the Linux operating system in the virtual machine, decompress the DDS source code, and then install the VxWorks system development environment; then start the VxWorks Development shell to complete the construction of the cross-compilation environment; 步骤S1.5:编译DDS链接库:Step S1.5: Compile the DDS link library: 在VxWorks653 Development shell中将目录切换至DDS源码所在的文件夹,最后对源生成文件pentiumVx6.6gcc4.1.2.mk执行make指令,即可生成可在VxWorks6.6系统中使用的DDS链接库文件。In the VxWorks653 Development shell, switch the directory to the folder where the DDS source code is located, and finally execute the make command on the source generated file pentiumVx6.6gcc4.1.2.mk to generate the DDS link library file that can be used in the VxWorks6.6 system. 3.基于权利要求2所述的一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于所述步骤S2中具体步骤如下:3. based on the construction method of distributed real-time communication middleware on a kind of embedded RTOS described in claim 2, it is characterized in that concrete steps are as follows in described step S2: 步骤S2.1:在BSP的Makefile文件中添加宏定义EXTRA_DEFINE=DRTI_VXWORKS,然后重新编译BSP;Step S2.1: Add the macro definition EXTRA_DEFINE=DRTI_VXWORKS to the Makefile of the BSP, and then recompile the BSP; 步骤S2.2:在Build Properties---Build Macros---LD_LINK_PATH处添加上文所生成的链接库所在目录;Step S2.2: Add the directory where the link library generated above is located at Build Properties---Build Macros---LD_LINK_PATH; 步骤S2.3:在Build Properties---Build Paths处添加DDS库文件所在地址;Step S2.3: Add the address of the DDS library file at Build Properties---Build Paths; 步骤S2.4:在工程的KernelConfiguration页,选择operating system components---RealTime Process Components,添加VxWorks组件。Step S2.4: On the KernelConfiguration page of the project, select operating system components---RealTime Process Components, and add VxWorks components. 4.基于权利要求3所述的一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于所述步骤S3中利用QoS中特定参数的配置方式实现:采样模式以传输效率优先,对数据是否丢包要求不高的情况下适用;而队列模式则保证发送的所有数据都可被接收到,适用于对数据完整性要求较高的情况。4. based on the construction method of distributed real-time communication middleware on a kind of embedded RTOS according to claim 3, it is characterized in that utilizing the configuration mode of specific parameter in QoS to realize in described step S3: sampling pattern takes priority with transmission efficiency, Applicable when the requirement for data packet loss is not high; while the queue mode ensures that all data sent can be received, and is suitable for high data integrity requirements. 5.基于权利要求4所述的一种嵌入式RTOS上分布式实时通信中间件的构建方法,其特征在于中间件的交互方式既可以通过所述步骤S4中对XML文件中特定节点的改写改指定各个实体的属性、定义数据结构或者重写QoS策略,也通过在程序中对中间件中特定的调用函数接口实现相应功能,并通过接收发送函数的调用就可以实现跨语言、跨平台、跨系统的数据实时分发服务。5. based on the construction method of the distributed real-time communication middleware on a kind of embedded RTOS described in claim 4, it is characterized in that the interactive mode of middleware can be changed by the rewriting of specific node in XML file in described step S4 Specify the attributes of each entity, define the data structure or rewrite the QoS policy, and also realize the corresponding functions by calling the specific function interface in the middleware in the program, and by receiving the call of the sending function, it can realize cross-language, cross-platform, cross-platform System data real-time distribution service.
CN201910287484.5A 2019-04-11 2019-04-11 Method for constructing distributed real-time communication middleware on embedded RTOS Active CN110008044B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910287484.5A CN110008044B (en) 2019-04-11 2019-04-11 Method for constructing distributed real-time communication middleware on embedded RTOS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910287484.5A CN110008044B (en) 2019-04-11 2019-04-11 Method for constructing distributed real-time communication middleware on embedded RTOS

Publications (2)

Publication Number Publication Date
CN110008044A CN110008044A (en) 2019-07-12
CN110008044B true CN110008044B (en) 2021-03-23

Family

ID=67170979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910287484.5A Active CN110008044B (en) 2019-04-11 2019-04-11 Method for constructing distributed real-time communication middleware on embedded RTOS

Country Status (1)

Country Link
CN (1) CN110008044B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704070B (en) * 2019-09-30 2021-04-13 北京航空航天大学 A construction method of DDS communication middleware under partitioned real-time operating system
GB2586913B (en) * 2020-06-05 2021-11-10 Iotech Systems Ltd Data processing
CN112532422B (en) * 2020-10-28 2021-12-07 南京航空航天大学 HLA/DDS bridge based on mixed time management system
CN112583927B (en) * 2020-12-23 2022-04-15 北京航空航天大学 Service management system based on airborne embedded real-time operating system
CN112583929B (en) * 2020-12-23 2022-07-26 北京航空航天大学 Service management method based on airborne embedded real-time operating system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010076790A (en) * 2000-01-28 2001-08-16 오길록 I/O-based high availability through middleware in the COTS RTOS
CN104407852A (en) * 2014-11-05 2015-03-11 中国航天科技集团公司第九研究院第七七一研究所 Code isolation-based construction method for embedded software and calling method for embedded software
CN105138339A (en) * 2015-09-10 2015-12-09 中国航空无线电电子研究所 Distributed communication midware developing method based on DDS standard
CN107454092A (en) * 2017-08-18 2017-12-08 北京海兰信数据科技股份有限公司 A kind of OPCUA and DDS protocol signals conversion equipment, communication system and communication means
CN109474466A (en) * 2018-11-13 2019-03-15 天津津航计算技术研究所 The method of dual redundant network interface card switching is realized on DDS middleware

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010076790A (en) * 2000-01-28 2001-08-16 오길록 I/O-based high availability through middleware in the COTS RTOS
CN104407852A (en) * 2014-11-05 2015-03-11 中国航天科技集团公司第九研究院第七七一研究所 Code isolation-based construction method for embedded software and calling method for embedded software
CN105138339A (en) * 2015-09-10 2015-12-09 中国航空无线电电子研究所 Distributed communication midware developing method based on DDS standard
CN107454092A (en) * 2017-08-18 2017-12-08 北京海兰信数据科技股份有限公司 A kind of OPCUA and DDS protocol signals conversion equipment, communication system and communication means
CN109474466A (en) * 2018-11-13 2019-03-15 天津津航计算技术研究所 The method of dual redundant network interface card switching is realized on DDS middleware

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于IP over RapidIO的DDS中间件优化实现》;仲维亮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131215;全文 *
嵌入式实时多处理系统的通信中间件技术研究;秦玉函;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190115;第2节-第5节 *

Also Published As

Publication number Publication date
CN110008044A (en) 2019-07-12

Similar Documents

Publication Publication Date Title
CN110008044B (en) Method for constructing distributed real-time communication middleware on embedded RTOS
Huston et al. The ACE programmer's guide: practical design patterns for network and systems programming
US10817284B2 (en) Melding of mediation flow service component architecture (SCA) components
CN111045668A (en) Cross-platform mobile terminal system development method and device
CN103473034A (en) Method and device for dynamically publishing Web service
Kraemer et al. Aligning UML 2.0 state machines and temporal logic for the efficient execution of services
Otte et al. Infrastructure for component-based DDS application development
Cabri et al. Implementing role-based interactions for internet agents
Bardaro et al. From models to software through automatic transformations: An AADL to ROS end-to-end toolchain
Radermacher et al. Generating execution infrastructures for component-oriented specifications with a model driven toolchain: a case study for MARTE's GCM and real-time annotations
CN115080049B (en) Method, system and computer readable storage medium for compiling a simulation model
CN116527577A (en) UI routing component, and inter-iOS module jumping method and device based on UI routing component
CN100424640C (en) Domestic network intermediate parts development platform and codes conversion method thereof
US20070214419A1 (en) Integrated service creation and execution platforms for the converged networks
Seco et al. Component J: A component-based programming language with dynamic reconfiguration
US20090133035A1 (en) Method and system for developing and deploying converged services
Quartel et al. Extending profiles with stereotypes for composite concepts
Pop et al. Introducing support for embedded and real-time devices into existing hierarchical component system: Lessons learned
Grieshofer Cloud Foundry Config File Generation Using JetBrains MPS and DSLs
Guan et al. The flow of software defined radio waveform development based on SCARI
CN116208558A (en) Traffic processing method, device, medium and computing equipment in micro-service architecture
Ciobanu et al. Mobile Agents with Timers, and Their Implementation
Adamopoulos et al. Enabling Web services: towards service grids
CN118113636A (en) Machine-card communication system, method and device based on terminal equipment
Keller Systems Management with Distributed Objects: Porting SNMP Agents to a CORBA Environment NM M

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant