Systems and methods for automatic networking and efficient data communication based on domestically produced DDS and SRIO technologies.
By changing the underlying transmission of DDS to SRIO, and combining DMA data transmission and doorbell technology, automatic networking between DDS and SRIO is achieved, which solves the efficiency problem of traditional Ethernet in large-capacity data transmission and improves the real-time performance and throughput of data transmission.
Patent Information
- Application Number
- CN202411620627.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-14
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2044-11-14
AI Technical Summary
In traditional Ethernet devices, the QoS configuration using DDS cannot overcome the limitations of hardware device transmission real-time performance and throughput, especially in terms of efficiency for large-capacity data transmission.
The system adopts domestically produced DDS and SRIO for automatic networking and efficient data communication. The underlying transmission of DDS is changed to SRIO mode. Combined with SRIO's DMA data transmission and doorbell technology, a DMA data read and write method compatible with SRIO is designed to realize automatic discovery and networking of DDS, thereby improving the real-time performance and throughput of data transmission.
It greatly improves the real-time performance and throughput of data transmission, especially the transmission efficiency of large-capacity data, solves the shortcomings of traditional Ethernet in large-capacity data transmission, and does not require developers to change their existing DDS development methods.
Smart Images

Figure CN119728800B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of distributed communication, specifically relating to a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO. Background Technology
[0002] DDS (Data Distribution Service) is a data-centric publish-subscribe (DCPS) middleware model for distributed application communication and integration. It provides rich QoS (Quality of Service) policies to ensure real-time, efficient, and flexible data distribution, meeting the needs of various distributed real-time communication applications. DDS defines a publish-subscribe pattern for distributing high-speed data over a network and can handle various aspects of data transmission reliability, priority, and security. It is a standard developed by the Object Management Group (OMG).
[0003] RTPS is a protocol used by DDS, forming the network layer of DDS. The RTPS protocol ensures that DDS can communicate in real time, and RTPS is responsible for defining how to exchange data effectively and reliably between different participants.
[0004] SRIO technology is primarily designed for interconnect communication in high-performance embedded systems. It employs high-performance LVDS technology, achieving an effective transmission rate of 10Gbps over four differential pairs, and boasts higher transmission efficiency than 10 Gigabit Ethernet. The SRIO (Serial RapidIO) protocol is a high-speed serial communication protocol characterized by low latency, high bandwidth, and high reliability. It is commonly used in data centers, communication equipment, wireless base stations, radar, and avionics.
[0005] Both DDS and SRIO share the same requirements for real-time, high reliability, and low latency in data interaction, aiming to improve these aspects. In typical DDS usage, data interaction is generally based on 100Mbps / Gigabit Ethernet. However, DDS middleware, located at the application layer of the OSI network model, is limited by the performance requirements of the physical layer's network transmission medium. In terms of data transmission, SRIO offers superior efficiency compared to 10 Gigabit Ethernet, especially in high-volume data transmission, significantly exceeding that of ordinary 100Mbps / Gigabit Ethernet.
[0006] This invention aims to improve the transmission efficiency and reliability of DDS data transmission and solve the problem of limited Ethernet transmission efficiency used by conventional DDS. It replaces the underlying transmission medium of DDS without changing the way DDS middleware developers use it, allowing DDS developers to use the high-efficiency transmission function of SRIO without changing any program code. Summary of the Invention
[0007] (a) Technical problems to be solved
[0008] The technical problem this invention aims to solve is how to provide a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO, in order to address the limitations of real-time transmission and throughput of traditional Ethernet devices, particularly the efficiency problem of large-capacity data transmission, which cannot be overcome by using the QoS configuration of DDS itself.
[0009] (II) Technical Solution
[0010] To solve the above-mentioned technical problems, the present invention proposes...
[0011] (III) Beneficial Effects
[0012] This invention proposes a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO. Traditional DDS middleware uses 100Mbps / Gigabit Ethernet for data interaction, and since it resides at the application layer of the OSI network model, it is limited by the performance requirements of the physical layer's network transmission medium. SRIO technology is primarily designed for interconnection communication in high-performance embedded systems. It employs high-performance LVDS technology, achieving an effective transmission rate of 10Gbps on four differential pairs, and boasts higher transmission efficiency than 10Gbps Ethernet. To improve the real-time performance and transmission efficiency of DDS, especially for large-capacity data, the underlying DDS transmission is replaced with the more efficient SRIO method. This allows developers using domestically produced DDS middleware to focus solely on the business modules, without needing to consider the data transmission method used by the physical devices, while still achieving more efficient data communication. Therefore, this invention combines DDS middleware with the high-speed SRIO data bus, significantly improving the real-time performance and throughput of data transmission, particularly for large-capacity data transmission, thus overcoming the shortcomings of traditional Ethernet in large-capacity data transmission. Attached Figure Description
[0013] Figure 1 This is a system and method architecture diagram for automatic networking and efficient data communication based on domestically produced DDS and SRIO.
[0014] Figure 2Flowchart of secure TSN data transmission for DDS publisher;
[0015] Figure 3 A flowchart illustrating the secure data transmission process for DDS subscribers using TSN. Detailed Implementation
[0016] To make the objectives, contents, and advantages of the present invention clearer, the specific embodiments of the present invention will be described in further detail below with reference to the accompanying drawings and examples.
[0017] The technical problem this invention aims to solve is how to provide a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO. Traditional DDS middleware uses 100Mbps / 1Gbps Ethernet for data interaction. However, DDS middleware resides at the application layer of the OSI network model, which is limited by the performance requirements of the physical layer's network transmission medium. To improve the real-time performance and transmission efficiency of DDS, especially for large-capacity data, the underlying DDS transmission is changed to the more efficient SRIO method. This allows developers using domestically produced DDS middleware to focus only on the business modules, without needing to consider the underlying data transmission method, while still achieving more efficient data communication.
[0018] This invention provides a network communication middleware based on the DDS protocol and SRIO serial data bus, conforming to the OMG standard and featuring a domestically produced DDS publish / subscribe mode. It enables automatic discovery and networking between devices, achieving real-time, efficient, and high-capacity data transmission. Firstly, to adapt to the distributed nature of DDS, a DMA data read / write communication master-slave relationship method compatible with SRIO is designed using doorbell and DMA technologies on the SRIO communication data bus hardware platform. In this method, the DDS publisher and subscriber programs do not need to consider the master-slave relationship of the SRIO transmission bus, allowing either the publisher or subscriber program to achieve DDS's automatic discovery, networking, data publishing, and data subscription functions regardless of which program runs first. Secondly, to ensure the real-time and efficient publishing / subscribing of DDS data, and leveraging the real-time nature of the SRIO doorbell and the high efficiency of DMA data transfer, a method for rapid positioning and data reading / writing based on the doorbell and DMA data window is designed. The DMA data window is divided into an address index area and a data area. The address index area is responsible for storing the starting address of the data offset in the data area, and the data block storage manages the RTPS encoded data published / subscribed by DDS. Then, through real-time and efficient doorbell technology, the DMA index number is notified to the other end. The other end finds the storage address of the RTPS encoded data through the doorbell index, and reads the RTPS data through decoding, thus realizing the real-time and efficient transmission of DDS data.
[0019] To address the aforementioned technical problems, this invention proposes a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO. Referring to the OSI network model, this method, based on the domestically produced DDS protocol, modifies the underlying data communication transmission method for both the publisher and subscriber ends to use the SRIO data bus to improve transmission efficiency. Since DDS is a distributed peer-to-peer network interconnection method, while SRIO's DMA data transmission method is a master-slave method, a method to resolve the DMA master-slave issue must also be designed to ensure normal communication between the DDS publisher and subscriber ends.
[0020] The publisher and subscriber devices are connected via an SRIO high-speed data bus device.
[0021] The publisher and subscriber sides include: DDS-RTPS data communication module, SRIO communication module, SRIO underlying interface module and SRIO physical device. The publisher side also includes a publisher program, and the subscriber side also includes a subscriber program. The publisher / subscriber side consists of 5 modules in total. Except for the publisher program and the subscriber program, the other modules are the same. Developers do not need to care about the underlying differences.
[0022] The publisher and subscriber programs are mainly programs written by DDS middleware developers. If SRIO transmission is to be used, developers need to configure QoS in the publisher program and enable SRIO transmission when using DDS communication.
[0023] The QoS configured by the publisher / subscriber is passed to the DDS-RTPS data communication module. During initialization, the DDS-RTPS data communication module registers and initializes the SRIO communication module configured with QoS.
[0024] After the SRIO communication module starts, it begins to call the startup interface of the SRIO underlying interface module to start the SRIO communication device.
[0025] The SRIO communication module calls the SRIO underlying interface module to initialize the doorbell module and starts the SRIO communication module according to the QoS parameters configured in the publishing program.
[0026] Furthermore, in order to automatically discover the launched subscriber program in a timely manner, the SRIO communication module starts the automatic networking submodule, which periodically sends networking messages to the subscriber device. At the same time, the automatic networking module receives networking doorbell messages in real time. This mechanism is used regardless of whether the publisher or the subscriber runs first, which solves the master-slave relationship in SRIO when using DMA data communication and realizes a peer-to-peer discovery networking method consistent with DDS.
[0027] Furthermore, once the publisher / subscriber has discovered the network formation, the automatic networking module's work is complete. The real-time data communication module then begins operation.
[0028] Furthermore, after the real-time data communication module starts, it enables the DMA data transfer function of SRIO, creates the SRIO data read and write cache window, and simultaneously enables the data cache management module to manage the read and write of DMA data according to the size of the SRIO data read and write cache window, thereby initializing the index area and the data cache area.
[0029] Furthermore, when the publisher / subscriber needs to send data, it transmits the RTPS data to the SRIO communication module through the DDS-RTPS data communication module.
[0030] Furthermore, the SRIO communication module obtains the RTPS data to be sent and, through the data cache management module, finds the free index number and DMA cache data area address.
[0031] Furthermore, the SRIO communication module re-encapsulates the RTPS data based on the free index and free DMA cache data area address obtained by the data cache management module, and writes it to the subscriber / publisher via DMA.
[0032] Furthermore, after the SRIO communication module writes the encoded RTPS to the subscriber / publisher, it uses a doorbell to send a data doorbell notification message to the subscriber / publisher in real time, informing the subscriber / publisher of the index number.
[0033] Furthermore, after receiving the data doorbell notification message from the publisher / subscriber, the real-time data communication module of the subscriber / publisher SRIO communication module locates the DMA data address through the data cache management module based on the index number carried by the doorbell, and decodes it into RTPS data according to the size of the encoded RTPS data obtained.
[0034] Furthermore, the subscription / publishing real-time data communication module transmits the read RTPS data to the DDS-RTPS data communication module, and then changes the status of this DMA data area and index content to idle.
[0035] Furthermore, after the DDS-RTPS data communication module of the subscriber / publisher obtains the RTPS data, it processes the data into the data format required by the subscriber / publisher through the DDS middleware and notifies the subscriber / publisher.
[0036] Furthermore, the publisher and subscriber have completed the data publishing / subscription function for automatic networking and real-time data communication of DMA.
[0037] Example 1:
[0038] The purpose of this invention is to propose a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO. This invention is based on the standard DDS framework and does not change the premise of developers using DDS methods. It replaces the DDS data transmission module, which greatly improves data transmission efficiency, especially solving the problem of reduced DDS transmission efficiency when transmitting large amounts of data.
[0039] like Figure 1 This is a system model architecture diagram of the present invention. This model pertains to network data communication and therefore consists of two devices: a publisher and a subscriber, connected via a high-speed SRIO communication bus. The publisher device comprises five modules: a publisher program, a DDS-RTPS data communication module, an SRIO communication module, an SRIO underlying interface module, and an SRIO physical device. The subscriber device also comprises five modules: a subscriber program, a DDS-RTPS data communication module, an SRIO communication module, an SRIO underlying interface module, and an SRIO physical device. Except for the publisher and subscriber programs, all other modules are identical, greatly ensuring versatility.
[0040] The publishing process is implemented by developers who write the code. Developers use the DDS data publishing function by calling the OMG standard DDS middleware interface. To use the SRIO high-speed data bus for data transmission, developers only need to configure the SRIO transmission method using the DDS middleware's QoS policy. After configuration, data can be published by calling the DDS publishing interface, and matching subscription programs will receive the published real-time data.
[0041] Similar to publishers, subscribers are written by developers who use DDS data subscription functionality by calling the OMG standard DDS middleware interface. To use the SRIO high-speed data bus for data transmission, developers only need to configure the SRIO transmission mode using the DDS middleware's QoS policy. The difference between subscribers and publishers is that subscribers receive data from publishers.
[0042] The DDS-RTPS data communication module is mainly used to encapsulate the standard DDS middleware protocol. DDS (Data Distribution Service) is a middleware protocol and API standard defined by OMG (Object Management Group) based on the DCPS (Data-Centric Publish-Subscribe) model. Published / subscribed data is ultimately converted into RTPS data format for communication.
[0043] The SRIO communication module is the core module of this invention. Through the automatic networking module, real-time data communication module, and data cache management module, it realizes the combination of DDS and SRIO high-speed data bus to complete the functions of automatic networking and high-speed data communication.
[0044] The SRIO communication module's automatic networking module primarily adapts the SRIO master-slave data communication mode to the DDS distributed communication mode. To adapt to DDS's distributed dynamic discovery and automatic networking, the automatic networking module utilizes SRIO's doorbell technology. Doorbell parameters are configured through the QoS policies of the publisher / subscriber program. The automatic networking module activates the doorbell according to the QoS policy, periodically sending networking messages to devices in the subscriber / publisher program. Simultaneously, the automatic networking module receives networking doorbell messages in real time. This mechanism is used regardless of whether the publisher or subscriber program runs first, resolving the master-slave relationship in SRIO's DMA data communication and achieving a peer-to-peer automatic networking method consistent with DDS. Once the subscriber / publisher program's automatic networking module receives the doorbell's networking message, its function is complete. It then notifies the SRIO communication module to run the real-time data communication module and data cache management module for DMA data transfer.
[0045] The real-time data communication module of the SRIO communication module starts running after automatic network formation. It mainly realizes the creation of DMA data buffer window, data transmission and reading functions, and sends data doorbell messages to notify the peer program's real-time data communication module to perform timely data reception and subscription processing.
[0046] The SRIO communication module's data cache management module uses a cache window created by the real-time data communication module. This cache window is divided into an index area and a data area. The main function of the index area is to record the address offset of the transmitted data within the data area. The main function of the data area is to encode the RTPS data from the DDS-RTPS data communication module. After encoding, the real-time data communication module's sending function is invoked to write the contents of the index area and data area into the idle data block area of the peer, thus completing the data transmission function. A data doorbell message is then sent to notify the peer's real-time data communication module to promptly receive and process the data.
[0047] The SRIO underlying interface module mainly encapsulates the SRIO high-speed data bus interface and is responsible for providing developers with functional interfaces for SRIO features, including a doorbell module and a DMA module. This invention uses these two modules to use the doorbell function and DMA data transfer function to complete the automatic networking function and high-speed data communication function.
[0048] The doorbell module of the SRIO underlying interface module is a fast notification type of short message. The header and the information carried are very short. It is used for message notification between master and slave devices and has extremely high timeliness.
[0049] The DMA module of the SRIO underlying interface module is a data exchange mode that accesses and retrieves data directly from memory without going through the CPU. In DMA mode, the CPU only needs to issue instructions to the DMA controller, which will then handle the data transfer. Once the data transfer is complete, the controller will send the information back to the CPU, thus greatly reducing the CPU resource consumption.
[0050] An SRIO physical device is a hardware module for SRIO communication. The publisher and subscriber devices are connected through the SRIO physical device to complete data transmission.
[0051] Figure 2 This is a flowchart of the SRIO data publishing process on the DDS publisher, as follows: Figure 2 As shown, the process of DDS data publishing describes in detail the automatic networking and data communication process of DDS using the SRIO high-speed data bus. The specific process is as follows.
[0052] S11. In the release program, call the DDS middleware initialization module interface DDS_DomainParticipantFactory_create_participant() to start and initialize the domestic DDS module, and at the same time read the SRIO transmission QoS configuration.
[0053] S12. Read the SRIO high-speed data bus configuration from the QoS configuration, and start the SRIO communication module using the CreateSrioTransportPlugin() interface; obtain the SRIO device ID and DMA data buffer window address of the subscriber through the QoS configuration content; then call the SrioDeviceCreate() interface to initialize the SRIO device, run the automatic networking module, and listen for the doorbell message of the automatic networking module of the subscriber in real time through the DmaDbGetEvent() and DmaDbSendEvent() interfaces. When the doorbell message of the subscriber is received, the automatic networking is completed.
[0054] S13. After the DDS middleware is initialized, the DDS publishing program uses the standard interface DDS_DomainParticipant_create_datawriter() to create and enable the data publishing function of the DDS middleware to publish data.
[0055] S14. After successful network setup, call the DmaBufferAlloc() interface to start the real-time data communication module and the data buffer management module, and create the DMA data buffer window, index area and data area; then the program can publish data.
[0056] S15. When publishing data, determine whether the network is completed. If it is completed, the publishing program calls the DDS middleware standard interface DataWriter_write() to send the data. The DDS-RTPS data communication module converts the published data into RTPS format data.
[0057] S16. Determine whether the SRIO communication module is running successfully. If it is running successfully, call the data cache management module to obtain the index number of the free index area and the address of the data area, and encode the RTPS data into data that can be recognized by the data cache management module.
[0058] S17. Next, the real-time data communication module is called to write the encoded RTPS data into the DMA data cache address of the subscription program using the DMA send interface DmaSendData(); then the offset address of the DMA data cache address is written into the index area of the corresponding free number.
[0059] S18. After the DMA data is written, the real-time data communication module sends a data doorbell message to the subscription program, carrying the index number of the data written, to notify the subscription program to receive the sent data.
[0060] Figure 3 This is a flowchart of the SRIO data publishing process for the DDS subscriber, as follows: Figure 3 As shown, the DDS data subscription process describes in detail the process of automatic networking and data communication using the SRIO high-speed data bus. The specific process is as follows.
[0061] S21. In the subscription program, call the DDS middleware initialization module interface DDS_DomainParticipantFactory_create_participant() to start and initialize the domestic DDS module, and at the same time read the SRIO transmission QoS configuration.
[0062] S22. After the DDS middleware is initialized, call the DDS_DomainParticipant_create_datareader() interface to start the DDS subscription module and begin receiving RTPS data from the publisher.
[0063] S23. Read the SRIO high-speed data bus configuration from the QoS configuration, and start the SRIO communication module using the CreateSrioTransportPlugin() interface; obtain the SRIO device ID and DMA data buffer window address of the subscriber through the QoS configuration content; then call the SrioDeviceCreate() interface to initialize the SRIO device, run the automatic networking module, and listen for the doorbell message of the automatic networking module of the subscriber in real time through the DmaDbGetEvent() and DmaDbSendEvent() interfaces. When the doorbell message of the subscriber is received, the automatic networking is completed.
[0064] S24. After automatic networking is completed, the DmaBufferAlloc() interface is called to start the real-time data communication module and the data cache management module, and to create the DMA data cache window, the index area and the data area.
[0065] S25. Run the real-time data communication module to receive data doorbell messages in real time and obtain the index number of the index area of the data cache management module;
[0066] S26. When the real-time data communication module receives the data doorbell message, it uses the data cache management module to read the index content of the DMA data written by the publishing program according to the index number carried by the doorbell, and reads the content of the data area written by the publishing program according to the read address offset.
[0067] S27. The data cache management module decodes the read cache data into RTPS data format that DDS can recognize;
[0068] S28, the DDS subscription module parses the RTPS data into the data content of the publishing program and sends it to the subscription program to complete the data subscription function.
[0069] This invention, based on domestically produced DDS middleware and SRIO high-speed data bus, solves the problem that traditional Ethernet devices, using DDS's own QoS configuration, cannot overcome the limitations of hardware transmission real-time performance and throughput, especially the efficiency of large-capacity data transmission. By leveraging the real-time and efficient data transmission characteristics of SRIO, this invention replaces the SRIO high-speed data bus with a traditional communication method, significantly improving the real-time performance and data throughput of DDS in traditional networks. The designed automatic networking method resolves the issue of DDS using a distributed topology architecture versus SRIO using a master-slave architecture, allowing developers to avoid designing and developing using non-OMG standard methods, which can lead to reduced standardization and compatibility. In the SRIO data communication module, a fast indexing and positioning data transmission method is designed, using DMA to quickly write the RTPS data sent by DDS to the peer device and notifying the peer directly via a high-efficiency, real-time doorbell message for direct data retrieval.
[0070] Example 2:
[0071] A system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO are disclosed. This method utilizes the distributed peer-to-peer communication characteristics of DDS and the real-time and efficient communication characteristics of SRIO. The application uses a domestically produced DDS protocol middleware module conforming to the OMG specification to realize the functions of automatic discovery, interconnection and communication. During the data transmission and interaction process, the doorbell and DMA technology characteristics of SRIO are used, and a fast data location and read / write method is designed, which greatly improves the communication efficiency and real-time performance.
[0072] The publisher / subscriber device consists of five modules: publisher / subscriber, DDS-RTPS data communication module, SRIO communication module, SRIO underlying interface module, and SRIO physical device.
[0073] The DDS uses the SRIO automatic networking method. After the publisher program on the publisher device or the subscriber program on the subscriber device starts, it calls the SRIO communication module through the DDS-RTPS data communication module. Since SRIO has not yet started running, the SRIO communication module calls the SRIO underlying interface module to start the SRIO module. Then, it uses the doorbell function of SRIO to realize the function of automatic discovery and establishment of SRIO communication between the publisher and subscriber programs, thus completing the DDS-RTPS automatic networking method.
[0074] When DDS publishes data, the publishing program of the publishing device converts the publishing program data and DDS communication data into OMG standard RTPS data through the DDS-RTPS data communication module. Then, through the automatic networking module, real-time data communication module, and data cache management module of the SRIO communication module, it calls the doorbell module and DMA module of the SRIO underlying interface module to start the SRIO bus function, so as to send and receive SRIO doorbell messages and DMA data in real time and efficiently. The published data is written to the specified address of the subscriber data cache module through the DMA module of the SRIO underlying interface via the real-time data communication module. At the same time, the address offset of the published data is written to the free index area of the subscriber data cache module. The SRIO physical device then sends a real-time doorbell message to notify the subscriber of the written index number for data reception and subscription.
[0075] When the DDS subscribes to data, after the SRIO physical device of the subscribing end receives the data doorbell message from the publishing end, it notifies the SRIO communication module through the SRIO underlying interface module. The SRIO communication module reads the relative address offset of the index number transmitted by the doorbell through the data cache management module, locates the data address of the published data, reads the published data, and then parses and transmits the data to the subscription program through the DDS-RTPS data communication module to complete the reception and subscription of the published data.
[0076] Furthermore, the domestically developed DDS distributed middleware framework utilizes the characteristics of the SRIO high-speed bus to realize the functions of the automatic networking module and the real-time data communication module in the SRIO communication module.
[0077] Furthermore, instead of using DDS's default UDP, TCP, and shared memory communication methods, the SRIO high-speed data bus is started when the DDS middleware starts to transmit data.
[0078] Furthermore, the DDS middleware communication module uses SRIO's doorbell technology to solve the compatibility between the DDS middleware distributed mode and the SRIO data communication master-slave mode. The publisher and subscriber programs can use DMA to publish and subscribe data normally even without a master-slave relationship.
[0079] Furthermore, the automatic networking process is as follows:
[0080] S1. After the publish / subscribe program runs, it calls the SRIO communication module through the initialization interface of the DDS-RTPS data communication module. The SRIO communication module then starts the SRIO doorbell module.
[0081] S2. After the SRIO doorbell module of the publisher / subscriber starts, it sends a doorbell start message to the subscriber / publisher on the other end, and at the same time starts the doorbell receiving response function.
[0082] S3. After the subscription / publishing program starts, the operations of S1 and S2 are performed in the same way.
[0083] S4. After receiving the doorbell message from the subscriber / publisher, the publisher / subscriber confirms that both the publisher and subscriber are running normally and completes the automatic networking function of DDS.
[0084] Furthermore, the publisher and subscriber programs interact with the SRIO communication module through the DDS middleware's automatic discovery networking function to publish and subscribe to data, thereby completing the DDS's automatic discovery networking function.
[0085] Furthermore,
[0086] The doorbell message module is responsible for sending high-speed real-time notification messages to the publisher / subscriber on the other end and responding to messages from the publisher / subscriber. The doorbell message carries the index number of the index module, which allows the responding publisher / subscriber to quickly locate the DMA data address to be read based on the index number.
[0087] The data communication module is responsible for reading and writing DMA data. After the DMA data writing is completed, it sends a data doorbell message notification.
[0088] The data cache management module is responsible for encoding or decoding RTPS data and calculating the available storage addresses for the DMA data area and index area.
[0089] Furthermore, the real-time data communication module establishes data cache management through DMA features, enabling rapid location of DMA data. It writes the encoded RTPS data storage address and the encoded RTPS data into the publisher / subscriber device and notifies the publisher / subscriber device in real time via a doorbell. Upon receiving the doorbell message notification, the subscriber / publisher device quickly locates the publisher / subscriber device's RTPS data based on the index number of the data message.
[0090] Furthermore, the process of DDS publishing data via the SRIO high-speed data bus is as follows:
[0091] S1. The publishing program of the publishing terminal device publishes data and packages the data into standard RTPS data through the DDS-RTPS data communication module.
[0092] S2. When RTPS data is transmitted to the SRIO communication module, the data cache management module will obtain the address of the free data area and the free index number according to the size of the RTPS data.
[0093] The S3 and SRIO communication modules call the real-time data communication module, and use the DMA module to write the encoded RTPS data from the data cache management module into the subscriber's DMA data area. Then, the index module calculates the address offset of the data area and writes the address offset data into the subscriber's DMA free index number address.
[0094] S4. After the DMA data is written, the data communication module sends a data doorbell message to the subscriber. The message carries the written data index number. After receiving the doorbell notification message, the subscriber device restores the data into RTPS data through the real-time data communication module and the data cache management module according to the index number carried. Then, it is transmitted to the DDS-RTPS data communication module and parsed into the published data format that the subscriber program can recognize.
[0095] Furthermore, the process of DDS subscribing to data via the SRIO high-speed data bus is as follows:
[0096] S1. The subscription program of the subscription device subscribes to the data. The SRIO physical device receives the published data from the subscription device and then notifies the SRIO communication module through the SRIO underlying interface module.
[0097] The real-time data communication module of the S2 and SRIO communication modules receives the data doorbell message sent by the publishing end. It obtains the index number written by the publishing end according to the index parameter carried in the doorbell message. The data cache management module finds the index module data written by the publishing end through DMA in the index area and obtains the data offset address written by the publishing end.
[0098] S3. The data cache management module locates the address of the DMA data area based on the data offset address obtained by the index module, decodes the DMA data, and obtains the published RTPS data content.
[0099] After the S4 and SRIO communication modules obtain the RTPS data, they transmit the data to the DDS-RTPS data communication module.
[0100] The S5 and DDS-RTPS data communication modules restore the data to the content of the publishing program and send it to the subscribing program to realize data subscription.
[0101] Beneficial effects:
[0102] This invention proposes a system and method for automatic networking and efficient data communication based on domestically produced DDS and SRIO. Traditional DDS middleware uses 100Mbps / Gigabit Ethernet for data interaction. However, DDS middleware resides at the application layer of the OSI network model, limited by the performance requirements of the physical layer's network transmission medium. SRIO technology is primarily designed for interconnect communication in high-performance embedded systems. It employs high-performance LVDS technology, achieving an effective transmission rate of 10Gbps over four differential pairs, and boasts higher transmission efficiency than 10Gbps Ethernet. To improve the real-time performance and transmission efficiency of DDS, especially for large-capacity data, the underlying DDS transmission is replaced with the more efficient SRIO method. This allows developers using domestically produced DDS middleware to focus solely on business modules, without needing to consider the data transmission method used by the physical devices, while still achieving more efficient data communication. Therefore, this invention combines DDS middleware with the high-speed SRIO data bus, significantly improving the real-time performance and throughput of data transmission, particularly for large-capacity data transmission, thus overcoming the shortcomings of traditional Ethernet in large-capacity data transmission.
[0103] The above description is only a preferred embodiment of the present invention. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the technical principles of the present invention, and these improvements and modifications should also be considered within the scope of protection of the present invention.
Claims
1. A system for automatic networking and efficient data communication based on domestically produced DDS and SRIO, characterized in that, The system includes: a publisher device and a subscriber device, which are connected via an SRIO high-speed communication bus; the publisher device includes: a publisher program, a DDS-RTPS data communication module, an SRIO communication module, an SRIO underlying interface module, and an SRIO physical device; the subscriber device includes: a subscriber program, a DDS-RTPS data communication module, an SRIO communication module, an SRIO underlying interface module, and an SRIO physical device. The publishing program is written by the developers. The developers use the DDS data publishing function by calling the DDS middleware interface of the OMG standard. To use the SRIO high-speed data bus to transmit data, the developers only need to use the QoS policy of the DDS middleware to configure the SRIO transmission mode. After the configuration is completed, the data can be published by calling the DDS publishing interface, and the matching subscription program will receive the published real-time data. The subscription program is written by the developer. The developer uses the DDS data subscription function by calling the OMG standard DDS middleware interface. To use the SRIO high-speed data bus to transmit data, the developer only needs to configure the SRIO transmission mode using the QoS policy of the DDS middleware. The subscription program receives data from the publishing program. The DDS-RTPS data communication module is used to encapsulate the standard DDS middleware protocol, and the published and subscribed data are ultimately converted into RTPS data format for communication. The SRIO communication module combines the DDS and SRIO high-speed data bus through an automatic networking module, a real-time data communication module, and a data cache management module to achieve automatic networking and high-speed data communication functions. The SRIO underlying interface module is used to encapsulate the SRIO high-speed data bus interface and is responsible for providing developers with functional interfaces for SRIO features, including the doorbell module and the DMA module. The doorbell function is used through these two modules, and the DMA data transfer function completes the automatic networking function and high-speed data communication function. An SRIO physical device is a hardware module for SRIO communication. The publisher and subscriber devices are connected through the SRIO physical device to complete data transmission.
2. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 1, characterized in that, The SRIO communication module's automatic networking module is used to adapt the SRIO master-slave data communication mode to the DDS distributed communication mode. To adapt to DDS distributed dynamic discovery and automatic networking, the automatic networking module uses SRIO's doorbell technology. The doorbell parameters are configured through the QoS policy of the publisher / subscriber program. The automatic networking module starts the doorbell according to the QoS policy and periodically sends networking messages to the devices of the subscriber / publisher program. At the same time, the automatic networking module receives networking doorbell messages in real time. This mechanism is used regardless of whether the publisher program or the subscriber program runs first, to achieve a peer-to-peer automatic networking method consistent with DDS. Once the subscription / publishing program's automatic networking module receives the doorbell's networking message, the automatic networking module's function is complete. Next, it notifies the SRIO communication module to run the real-time data communication module and the data cache management module to perform DMA data transfer.
3. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 1, characterized in that, The real-time data communication module of the SRIO communication module starts running after automatic networking is completed. It is used to create DMA data buffer windows, transmit and read data, and send data doorbell messages to notify the peer program's real-time data communication module to promptly receive and subscribe to data.
4. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 1, characterized in that, The SRIO communication module's data cache management module uses a cache window created by the real-time data communication module. This cache window is divided into an index area and a data area. The index area records the address offset of the transmitted data within the data area, while the data area encodes the RTPS data from the DDS-RTPS data communication module. After encoding, the real-time data communication module's sending function is invoked to write the contents of the index area and data area into the idle data block area of the peer, thus completing the data transmission function. A data doorbell message is then sent to notify the peer's real-time data communication module to promptly receive and process the data.
5. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 1, characterized in that, The doorbell module of the SRIO underlying interface module is a fast notification type of short message, with a very short header and message content, used for message notification between master and slave devices.
6. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 1, characterized in that, The DMA module of the SRIO underlying interface module is a data exchange mode that directly accesses and retrieves data from memory without going through the CPU. In DMA mode, the CPU only needs to issue instructions to the DMA controller to handle the data transfer, and then feed back the information to the CPU after the data transfer is completed.
7. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 1, characterized in that, When the publisher / subscriber needs to send data, it transmits the RTPS data to the SRIO communication module through the DDS-RTPS data communication module; the SRIO communication module obtains the RTPS data to be sent and finds the free index number and DMA cache data area address through the data cache management module; The SRIO communication module re-encapsulates the RTPS data based on the free index and free DMA cache data area address obtained from the data cache management module, and writes it to the subscriber / publisher via DMA.
8. The system for automatic networking and efficient data communication based on domestically produced DDS and SRIO as described in claim 7, characterized in that, After the SRIO communication module writes the encoded RTPS to the subscriber / publisher, it uses a doorbell to send data doorbell notification messages to the subscriber / publisher in real time, informing the subscriber / publisher of the index number. After receiving the data doorbell notification message from the publisher / subscriber, the real-time data communication module of the subscriber / publisher SRIO communication module locates the DMA data address through the data cache management module based on the index number carried by the doorbell. It then decodes the RTPS data into RTPS data according to the size of the encoded RTPS data. The subscriber / publisher real-time data communication module then transmits the read RTPS data to the DDS-RTPS data communication module and changes the status of this DMA data area and index content to idle.
9. A method for automatic networking and efficient data communication based on domestically produced DDS and SRIO according to any one of claims 1-8, characterized in that, The method includes the following steps: S11. In the release program, call the DDS middleware initialization module interface DDS_DomainParticipantFactory_create_participant() to start and initialize the domestic DDS module, and at the same time read the SRIO transmission QoS configuration. S12. Read the configuration of the SRIO high-speed data bus from the QoS configuration, and start the SRIO communication module using the CreateSrioTransportPlugin() interface; The system obtains the SRIO device ID and DMA data buffer window address of the subscriber by configuring the QoS settings. Then, it calls the SrioDeviceCreate() interface to initialize the SRIO device, runs the automatic networking module, and listens for the doorbell message of the automatic networking module of the subscriber in real time through the DmaDbGetEvent() and DmaDbSendEvent() interfaces. When the doorbell message of the subscriber is received, the automatic networking is completed. S13. After the DDS middleware is initialized, the DDS publishing program uses the standard interface DDS_DomainParticipant_create_datawriter() to create and enable the data publishing function of the DDS middleware to publish data. S14. After successful network setup, call the DmaBufferAlloc() interface to start the real-time data communication module and the data buffer management module, and create the DMA data buffer window, index area and data area; then the program can publish data. S15. When publishing data, determine whether the network is completed. If it is completed, the publishing program calls the DDS middleware standard interface DataWriter_write() to send the data. The DDS-RTPS data communication module converts the published data into RTPS format data. S16. Determine whether the SRIO communication module is running successfully. If it is running successfully, call the data cache management module to obtain the index number of the free index area and the address of the data area, and encode the RTPS data into data that can be recognized by the data cache management module. S17. Next, the real-time data communication module is called to write the encoded RTPS data into the DMA data cache address of the subscription program using the DMA send interface DmaSendData(); then the offset address of the DMA data cache address is written into the index area of the corresponding free number. S18. After the DMA data is written, the real-time data communication module sends a data doorbell message to the subscription program, carrying the index number of the data written, to notify the subscription program to receive the sent data.
10. A method for automatic networking and efficient data communication based on domestically produced DDS and SRIO in the system described in any one of claims 1-8, characterized in that, The method includes the following steps: S21. In the subscription program, call the DDS middleware initialization module interface DDS_DomainParticipantFactory_create_participant() to start and initialize the domestic DDS module, and at the same time read the SRIO transmission QoS configuration. S22. After the DDS middleware is initialized, call the DDS_DomainParticipant_create_datareader() interface to start the DDS subscription module and begin receiving RTPS data from the publisher. S23. Read the configuration of the SRIO high-speed data bus from the QoS configuration and start the SRIO communication module using the CreateSrioTransportPlugin() interface; The system obtains the SRIO device ID and DMA data buffer window address of the subscriber by configuring the QoS settings. Then, it calls the SrioDeviceCreate() interface to initialize the SRIO device, runs the automatic networking module, and listens for the doorbell message of the automatic networking module of the subscriber in real time through the DmaDbGetEvent() and DmaDbSendEvent() interfaces. When the doorbell message of the subscriber is received, the automatic networking is completed. S24. After automatic networking is completed, the DmaBufferAlloc() interface is called to start the real-time data communication module and the data cache management module, and to create the DMA data cache window, the index area and the data area. S25. Run the real-time data communication module to receive data doorbell messages in real time and obtain the index number of the index area of the data cache management module; S26. When the real-time data communication module receives the data doorbell message, it uses the data cache management module to read the index content of the DMA data written by the publishing program according to the index number carried by the doorbell, and reads the content of the data area written by the publishing program according to the read address offset. S27. The data cache management module decodes the read cache data into RTPS data format that DDS can recognize; S28, the DDS subscription module parses the RTPS data into the data content of the publishing program and sends it to the subscription program to complete the data subscription function.
Citation Information
Patent Citations
DDS software and hardware cooperative transmission method based on FPGA and RapidIO
CN117896241A
System, method and computer program product implementing a decentralized avionic channel
WO2021038558A1