Data transmission system, vehicle comprising a data transmission system and data transmission method
Patent Information
- Application Number
- CN202310340826.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-04-04
- Filing Date
- 2023-03-31
- Publication Date
- 2026-09-29
- Estimated Expiration
- 2043-03-31
Smart Images

Figure CN116896572B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a data transmission system, a vehicle including the data transmission system, a data transmission method, and a data transmission program for causing a computer to execute the data transmission method. Background Technology
[0002] Modern control systems utilize multiple data streams from different sensors to compute control commands. Therefore, such systems are typically implemented using a distributed approach, with each entity acting as a node capable of sending messages to different nodes. For example, in the commonly used multi-node system ROS / ROS2 (referred to as the "Robot Operating System"), nodes are implemented both distributedly and asynchronously. Here, messages are sent in a predetermined message format, wrapped around data structures. This multi-node system also maintains a degree of modularity, allowing a node to be replaced later with a different node having improved versions or added functionality.
[0003] For message exchange, a so-called publisher-subscriber pattern is typically implemented, where a node can provide (i.e., "publish") data as a message of a specific type under a specific name (e.g., a "topic"), and other nodes interested in that data can receive it by subscribing to that name and receiving the associated message once it becomes available. By implementing a predefined message format, nodes can be programmed in different programming languages and still communicate with each other despite having independent internal functionality. This independence contributes to flexibility in the development and prototyping process. Message transmission between nodes typically occurs via, for example, a proxy protocol over Ethernet. This allows nodes (even on different hosts within a network) to communicate and establish distributed systems. Summary of the Invention
[0004] The data transmission system, corresponding method, and computer program disclosed herein achieve secure data transmission while reducing computational overhead. In particular, overhead and latency are reduced because the use of a common data format avoids the need for deserialization / serialization of data, thus requiring fewer computational resources to prepare, send, and decode messages and data. Furthermore, data integrity and security are ensured because entities can be identified as having different read / write access permissions, thereby preventing, for example, accidental modification and corruption of data. Moreover, data transmission is synchronous because the use of communication channels (as described in detail below) ensures that entities can be notified of new data and can acquire data simultaneously.
[0005] Other advantages are explained in more detail in the following description of this disclosure and with reference to the accompanying drawings. Attached Figure Description
[0006] Figure 1 An exemplary representation of a data transmission system according to embodiments of the present disclosure is shown.
[0007] Figure 2A , Figure 2B and Figure 2C The stages of the process corresponding to the embodiments of this disclosure are shown. Detailed Implementation
[0008] However, in the context of Advanced Driver Assistance Systems (ADAS) and Autonomous Driving Systems (ADS), such distributed systems are not necessary, and traditional multi-node systems add additional computational and resource overhead, thereby increasing latency. For example, while some multi-node systems tout the potential advantages of using different programming languages or node technologies, this feature requires that messages be understood or comprehended by every node in the system. Specifically, the consequences of implementing this feature are:
[0009] a) Message serialization and deserialization:
[0010] To transmit information via a predefined (proxy) protocol, messages need to be serialized on the sender side and deserialized on the receiver side. Both steps introduce computational overhead and increase the amount of computational resources required on each side, for example, essentially buffering the data in local memory twice, but actually copying the data only once. Even with sufficient computational power, these two steps introduce latency. For small and infrequent messages (e.g., host status information), the total increased latency is almost negligible. However, in ADAS / ADS scenarios using larger data types (e.g., LiDAR point clouds, compressed data cubes (CDC) from radar, high-resolution camera feeds, etc.), the increased latency becomes too large, making real-time control impossible. For example, in the case of an emergency braking system based on CDC information, the increased latency significantly increases the time required to make a braking decision. Therefore, the latency introduced by message digestion directly impacts the quality and safety of ADAS / ADS.
[0011] b) Node synchronization:
[0012] As mentioned above, nodes are typically implemented as asynchronous distributed systems. Synchronization is required to ensure that control decisions are made based on relevant and non-expired data. However, this synchronization also introduces overhead and latency. After all, publishing nodes execute independently, but data consuming nodes must process multiple data points in the correct time sequence (i.e., in the correct order and at the correct time). This increased overhead and latency can also make real-time control impossible, leading to the same problems described above.
[0013] c) Trade-offs between waiting time and security:
[0014] Furthermore, the implemented message format is not necessarily secure. This means that messages transmitted between the sender and receiver may be lost due to various circumstances (e.g., packet loss in UDP / IP networks). Additionally, there is no guarantee that received messages have not been modified (accidentally or intentionally). Different message broker formats exist, offering varying trade-offs between latency and reliability. However, in the case of ADAS / ADS, such trade-offs have direct safety implications; for example, using outdated or falsified data to make control decisions for autonomous vehicles could lead to unexpected or inconvenient driving behavior (in better cases) or accidents or loss of life (in worse cases).
[0015] d) Limitations when configuring an autonomous driving system:
[0016] The development of ADAS / ADS requires the ReSim framework to replay recorded sensor data scenarios to validate and evaluate the performance of algorithms deployed with different parameters, configurations, or system pipelines. Therefore, the ReSim framework allows for the efficient simulation of a system within a vehicle, and as closely as possible to its actual deployment in a real vehicle (i.e., in live mode). This essentially allows for the development of a system relative to the ReSim framework, and subsequent testing in a real vehicle, without needing to adapt any interfaces or rebuild the system in a specific environment. The ReSim framework also allows for the accelerated and parallel execution of simulations with different parameters, thereby reducing the time spent configuring control systems. However, such acceleration requires considerable computational power, especially with the added overhead of multi-node systems, and any latency (even if negligible in live mode) hinders the validation and evaluation process as it slows down ReSim execution.
[0017] Publicly available frameworks such as dSPACE or ROS / ROS2 have attempted to address some of the aforementioned issues. For example, some latency problems have been solved by using shared memory in centralized systems, and serialization overhead can be partially reduced by restricting users to predetermined interfaces and data messages. However, as mentioned above, these methods only partially address the latency, overhead, and security issues.
[0018] Before proceeding with the description of the embodiments, some terms used in the specification are first described in the following subsections. The terms and concepts conveyed therein apply together to the embodiments described thereafter.
[0019] g) Terminology
[0020] i) Smart pointers
[0021] A pointer is a general concept that contains an address in memory. This address references or "points" to some other data. The most common type of pointer is a "reference pointer" (also simply a "reference"). References borrow the value they point to and have no special capabilities other than referencing data in memory. Moreover, they have no overhead and are the most frequently used pointer type.
[0022] On the other hand, "smart pointers" are structures that not only function like pointers but also have additional metadata and capabilities. For example, a reference-counting smart pointer is a type of smart pointer that can have multiple data owners by tracking the number of data owners and clean up the data when no owners remain, for example, by deallocating the smart pointer; the referenced memory can also be freed.
[0023] Furthermore, while reference pointers can typically modify the data they reference, smart pointers implement the concepts of "data ownership" and "data borrowing." Records in the metadata of a smart pointer can indicate which node is the owner of the smart pointer and can modify the referenced data, and which node is the borrower of the smart pointer and can only read (but not modify) the referenced data. Alternatively, instead of recording which node is the owner and borrower, a system implementing both reference pointers and smart pointers can be configured such that reference pointers are pointers that only allow borrowing (i.e., allow reading) of data, while smart pointers are pointers that own (i.e., allow modification) the data they point to. In either case, smart pointers can be implemented using a data structure (i.e., a "struct").
[0024] ii) Communication channel
[0025] In systems with multiple entities or "nodes" (these terms are used interchangeably), a device is needed that allows communication between nodes. This device is often referred to as a "communication channel," which can be used to operate nodes synchronously and asynchronously.
[0026] A communication channel can be implemented as a function or interface (e.g., an application programming interface or API) for receiving or "subscribing" nodes, allowing said nodes to respond to messages delivered to the communication channel. Here, the message can be a network message or a (smart / reference) pointer referencing data. If the communication channel is implemented as a separate node between the sending or "publishing" node and the subscribing node, then upon receiving a message, the communication channel notifies the subscribing node (e.g., via publishing, via argument passing, or via querying) that new data is available.
[0027] iii) Data security and integrity
[0028] Data security and integrity require that data in memory (such as the heap) not be modified by any node that does not have ownership through smart pointers.
[0029] h) Implementation
[0030] i) Data transmission system
[0031] According to embodiments of this disclosure, the data transmission system 100 includes a centralized controller 101, at least one publisher entity 102, and at least one subscriber entity 103. Figure 1 An example of such a data transmission system 100 is shown in the figure.
[0032] In the data transmission system 100 according to an embodiment of the present disclosure, publisher entity 102 and subscriber entity 103 are compiled with a predetermined data format F for data communication via communication channel 200. The data format F may contain information about data type and memory size, enabling entities reading data in the predetermined data format F to use that data.
[0033] In the data transmission system 100 according to an embodiment of the present disclosure, a publisher entity 102 is configured to register topic information S1 at a centralized controller 101, and after the publisher entity 102 registers S1, the centralized controller 101 is configured to store the topic information together with the information used for registration at the publisher entity 102. As a result, the centralized controller 101 can store records or lists of data sources and topic information (e.g., keywords) about the content of data provided or published by the data source. The information used for registration at the publisher entity 102 may be the address, identifier, function, or API of the publisher entity 102, used to allow another entity to communicate with or send data to the publisher entity 102, specifically, to notify the publisher entity 102 of the communication channel used for publishing messages.
[0034] In the data transmission system 100 according to an embodiment of this disclosure, a subscriber entity 103 is configured to subscribe to topic information S2 at a centralized controller 101, and after the subscriber entity 103 subscribes, the centralized controller 101 is configured to provide the subscriber entity 103 with information S3 for registering at a publisher entity 102. By subscribing at the centralized controller 101, the subscriber entity 103 can send a request message containing keywords as topic information to the centralized controller 101 to indicate its interest in obtaining data matching the keywords or topic information. If the publisher entity 102 has already registered as a data source at the centralized controller 101 (as described above), the aforementioned information for registering at the publisher entity 102 can be provided to allow the subscriber entity 103 to register at the publisher entity 102 (communication channel 200) / register with the publisher entity 102.
[0035] In the data transmission system 100 according to an embodiment of the present disclosure, subscriber entity 103 is configured to create a communication channel 200 between publisher entity 102 and subscriber entity 103 based on information used for registration with publisher entity 102. As a result, subscriber entity 103 notifies publisher entity 102 of the communication channel (e.g., the aforementioned function or API) that allows publisher entity 102 to publish or send messages to subscriber entity 103.
[0036] As another preferred embodiment, in the data transmission system 100 according to an embodiment of this disclosure, the publisher entity 102 is configured to create a pointer referencing data stored in memory according to a predetermined data format F, include the pointer in a message, and publish the message to the communication channel 200. As a result, the sent message does not need to contain actual data, but only a reference to the data in memory, preferably a smart pointer as described above. This makes data transmission lightweight because it avoids the overhead of deserializing / serializing the data in the message. After all, as mentioned above, both the publisher entity 102 and the subscriber entity 103 are aware of the predetermined data format F. Therefore, by associating the pointer with the predetermined (binary) data format F of the referenced data (e.g., by using a corresponding data type), the node receiving the pointer can immediately read, interpret, and use the referenced data without the need for deserialization / serialization. That is, because the data type conveys information about the type, structure, and size of the underlying data. Therefore, overhead and latency are reduced compared to conventional multi-node systems.
[0037] As another preferred embodiment, in the data transmission system 100 according to an embodiment of this disclosure, the pointer is a data structure with metadata indicating whether an entity has read / write access rights to the data referenced by the pointer. Here, the metadata provides a security mechanism because it allows read / write restrictions to be imposed on the entity. Although the metadata is preferably set as part of the entity's compilation, it can also be provided as a database or other document during runtime, which is referenced when data is read / written using the reference (or smart pointer).
[0038] As another preferred embodiment, in the data transmission system 100 according to an embodiment of this disclosure, when the publisher entity 102 publishes a message, the metadata of the pointer included in the message is set to indicate that the publisher entity 102 does not have read / write permissions. By setting the metadata of the pointer to indicate that the publisher entity 102 no longer has read / write permissions to the data, it is ensured that the data in memory cannot be changed (intentionally or accidentally). This improves data security on the communication channel 200. A reference (or smart pointer) received by the subscriber entity 103 can indicate that it owns the referenced data. Therefore, if needed (e.g., if a binary conversion from big-endian to little-endian is required), the subscriber entity 103 can modify or change the data. The pointer can also indicate that the referenced data is only borrowed by other entities, thereby allowing them to read the referenced data but preventing them from modifying it. This access restriction also reduces the risk of accidental data corruption or overwriting, because only a single entity can own the data, but some entities are still allowed to read and use it, thereby improving the security and robustness of the multi-node system.
[0039] To reiterate, because a pointer can indicate that only one entity (e.g., subscriber entity 103) owns the referenced data, only this single entity can modify the underlying data, and the pointer can be deallocated (e.g., by setting its reference to null) once the reference counter (i.e., the number of existing pointers indicating the referenced data) reaches zero, and (optionally) the memory containing the data can be released. Therefore, the chance of memory leaks is reduced without increasing the overhead or latency of memory management.
[0040] In another preferred embodiment, in the data transmission system 100, the publisher entity is configured to establish a set of communication channels to which messages are published, the subscriber entity 103 is configured to establish a communication channel (S4) and transmit information (S5) about the communication channel to the publisher entity, and the publisher entity 102 is configured to store the communication channels established by the subscriber entities in the set of communication channels when the subscriber entities 103 register. As a result, it becomes possible for multiple subscriber entities 103 to receive data from a single publisher entity 102. Since only the publisher entity 102 needs to record the communication channels 200 to which messages will be published, little or no overhead is introduced, while the same mechanism as described above can be used to broadcast data. This also leads to the benefit of data synchronization, as all subscriber entities 103 that have subscribed to the publisher entity 102 can receive messages substantially simultaneously. After all, the time difference between sending a (lightweight) message to one subscriber entity 103 or to many subscriber entities 103, as described above, is negligible.
[0041] In another preferred embodiment, the data stored in the memory of the data transmission system 100 is vehicle-related data. Specifically, this vehicle-related data may be radar data, light detection and ranging (LiDAR) data, sonar data, pressure data, voltage data, and / or current data. As a result, system 100 can be used as part of ADAS / DAS used in vehicles.
[0042] As another preferred embodiment, in the data transmission system 100, the data structure includes a portion for identifying: an entity with read / write permissions for the data; an indication of the type of data stored in memory; and / or the size of the data stored in memory. Here, this portion may refer to metadata, (binary) tags, or a data field containing information indicating the type of stored data and / or the size of the data stored in memory. As a result, the entity identified as having read / write permissions can perform data management including the reference counting and deallocation described above. Furthermore, when the type of data stored in memory is indicated in the data structure, the entity receiving the message does not need to examine the memory storing the data to determine its data type. Instead, the receiving entity (e.g., subscriber entity 103) can simply assume the data stored in memory is of the indicated type. Thus, multiple predetermined data formats F can be provided, and the overhead of determining the actual data format F is reduced. By providing the size of the data stored in memory as part of the data structure, the receiving entity (e.g., subscriber entity 103) can prepare or allocate memory internally in advance, i.e., before it has read the data referenced by the pointer. In this way, the receiving entity can determine whether it already has data available or (for example, if the data exceeds the receiving entity's current available data capacity) available space to use the data.
[0043] In another preferred embodiment, in the data transmission system 100, the portion used to identify an entity as having read / write privileges is a memory area that stores a pointer referencing the address of the memory storing the entity with read / write privileges. In other words, the identification of an entity with read / write privileges can be achieved by storing a reference to the address of the entity with read / write privileges. This reference can then be stored in a memory area belonging to a pointer data structure of a message, for example, in metadata. As a result, read / write privileges can be easily tracked and enforced to ensure data security.
[0044] In another preferred embodiment, the data structure in the data transmission system 100 also includes a counter that uses data to count the number of entities. This enables the implementation of a (automatic and / or dynamic) reference counting feature.
[0045] In another preferred embodiment, in the data transmission system 100, entities identified as having read / write permissions for data are configured to perform reference counting (e.g., automatically and / or dynamically) to deassign pointers to data stored in memory when the counter (i.e., the number of entities using the data) becomes zero. Thus, the centralized controller 101 does not need to perform any reference counting for each message or data transmitted on the communication channel 200; instead, entities different from the centralized controller 101 (e.g., one or more subscriber entities 103) supervise and manage the messages and data. This reduces the computational demands of the centralized controller 101, as they are distributed across other entities.
[0046] As another preferred embodiment, in the data transmission system 100, the data structure also includes a set identifying one or more entities as using the data. Here, the set can be implemented as a list (e.g., an ordered list) or set (e.g., a group or an unordered list) of IDs of one or more entities using the data (the IDs can be memory addresses of the entities). Thus, the concept of "borrowing" data described above can be implemented because the set allows identification of entities "borrowing" the data. As a result, it is possible to distinguish between entities with full read / write permissions and other entities with only partial read / write permissions (e.g., read-only permissions). Therefore, if the communication channel 200 is implemented as a single entity, it can forward references to data stored in memory only to the receiving entity (e.g., subscriber entity 103), thereby granting the receiving entity only read permissions and not write permissions. Similarly, if the receiving entity (e.g., subscriber entity 103) obtains a pointer while having full read / write permissions, it can forward references to data stored in memory to other entities, thereby granting those other entities only read permissions and not write permissions. As a result, in addition to the owner, it is possible to indicate and distinguish between entities that "own" data and entities that "borrow" or use data. Thus, data management becomes less complex, because only a single entity (i.e., the owner entity with full read / write permissions) needs to perform data management similar to reference counting.
[0047] In another preferred embodiment, in the data transmission system 100, entities identified as having read / write permissions for data are configured to perform reference counting (e.g., automatically and / or dynamically) to release pointers referencing data stored in memory when the set (i.e., used to identify one or more entities as using data) becomes empty (i.e., no entity is identified as using data). Thus, the above concept is implemented such that only the entity "owning" the data can be responsible for memory management, while the possibility of other entities "borrowing" the data can be preserved.
[0048] In another preferred embodiment, in the data transmission system 100, the data transmission system is an Advanced Driver Assistance System (ADAS), an Autonomous Driving System (ADS), and / or a simulation system. Here, the ADAS / ADS can be implemented as a vehicle participating in traffic, but it can also be implemented as part of a re-simulation / re-simulation system for training a control system (e.g., an Artificial Intelligence (AI) system) responsible for driving the vehicle. In the case of an AI system, the training of the AI system can be accelerated, while also reducing the computational load for performing the training. After all, when data is transmitted on the communication channel 200 of the data transmission system 100, deserialization / serialization or memory checks are not required. Especially when training is performed as a simulation that is faster than real-time operation, the latency caused by deserialization / serialization is avoided, and the training process is accelerated.
[0049] In another preferred embodiment, in the data transmission system 100, a centralized controller or communication channel is configured as an entity with read / write permissions for the data and is configured to provide subscriber entities with messages instructing them to use the data only. This achieves the aforementioned concept, whereby a single communication entity implements the communication channel 200 and "owns" the data, while all receiving entities (e.g., subscriber entity 103) merely "borrow" the data. Therefore, only the dedicated communication entity needs to perform memory management, including, for example, reference counting, while all other entities (e.g., publisher entity 102 and subscriber entity 103) are only responsible for data processing. As a result, data security is improved, and the computational load imposed on publisher entity 102 and subscriber entity 103 is reduced.
[0050] In another preferred embodiment, in the data transmission system 100, the centralized controller 101 or communication channel 200 is configured to notify the subscriber entity 103 that new data is available, and when notified that new data is available, the subscriber entity 103, as the entity using the data, obtains the data from the communication channel 200. As a result, the subscriber entity 103 does not need to actively pull or query for new data, but is notified of new data synchronously. This means that the subscriber entity 103 can be placed in sleep mode or power-saving mode after processing previous data or when no new data has been provided so far. Then, when the communication channel 200 receives new data, it notifies and / or wakes up the subscriber entity 103 to process the data. Therefore, the entire system becomes more energy-efficient.
[0051] Figure 2C An example of a data transmission system 100 during runtime is depicted, in which a publisher entity 102 sends a message to a communication channel 200 of a corresponding subscriber entity 103. However, the number of entities in this example is not limited to... Figure 2CThe quantity in. Here, the arrow marked "receive message" indicates that communication channel 200 notifies subscriber entity 103 as described above and / or subscriber entity 103 has been represented as an entity that "owns" or "borrows" data.
[0052] Preferably, the centralized controller 101 is implemented as part of the central domain controller of the multi-node system, and each entity is implemented as a separate node of the multi-node system. However, for example, if several entities perform a series of data processing tasks, they can be implemented as part of the same node.
[0053] Furthermore, subscriber entity 103 can act as another publisher entity 102 to send data to... Figure 2C Other subscriber entities 103 besides those shown in the example. This may be necessary if multiple (network) domains are managed by different centralized controllers 101 (or central domain controllers), or if data from multiple publisher entities 102 needs to be collected by a first subscriber entity 103 and compiled into different data before being published to a subsequent second subscriber entity 103. In this case, the first subscriber entity 103 could also be a publisher entity 102.
[0054] ii) Vehicles
[0055] Another embodiment of this disclosure is a vehicle including a processing unit comprising a data transmission system 100 in any configuration as described above. All the foregoing aspects regarding the data transmission system 100 apply here.
[0056] iii) Data transmission method
[0057] Another embodiment of this disclosure is a computer-implemented data transmission method. This data transmission method is compatible with the data transmission system 100 described above, and... Figures 2A to 2C The process is illustrated in the figure.
[0058] The data transmission method according to embodiments of this disclosure includes compiling at least one publisher entity 102 and at least one subscriber entity 103 using a predetermined data format F for data communication on a communication channel 200. This level in Figure 2A It is exemplified as compiler level.
[0059] The data transmission method according to embodiments of this disclosure further includes registering the publisher entity 102 (S1) with topic information at a centralized controller 101. This step S1... Figure 2B It is exemplified as part of the system startup.
[0060] The data transmission method according to the embodiments of this disclosure further includes: after the publisher entity 102 is registered by the centralized controller 101, storing the topic information together with the information used for registration at the publisher entity, and (by the centralized controller 101 or the subscriber entity 102) having the subscriber entity 102 subscribe to the topic information S2 at the centralized controller 101. This step S2 is... Figure 2B It is exemplified as part of the system startup.
[0061] The data transmission method further includes: when the subscriber entity 103 subscribes, the centralized controller 101 provides the subscriber entity 103 with the information used for registration with the publisher entity 102 in step S3. This step S3... Figure 2B It is exemplified as part of the system startup.
[0062] The data transmission method according to embodiments of this disclosure further includes, by the subscriber entity 103, creating (S4, S5) a communication channel 200 between the publisher entity 102 and the subscriber entity 103 based on information used for registration at the publisher entity 102. These steps S4 and S5 are exemplified as follows: Figure 2B It is part of the system startup process and can be executed together or separately.
[0063] As a result, the above-mentioned aspects of the data transmission system 100 are applied together to the data transmission method, thereby producing the same advantages as described above.
[0064] Compared to the data transmission system 100 described above, as another preferred embodiment, the data transmission method further includes: the publisher 102 creating a pointer to data stored in memory in a predetermined data format F, including the pointer in a message, and publishing the message to a communication channel. These steps of publishing the message to multiple communication channels 200 (belonging to each of multiple subscriber entities 103) are described in... Figure 2C This is exemplified as part of the system runtime. Here, the number of channels 200 and subscriber entities 103 is not limited to three, but can be any number including one or more. Similarly, the number of publisher entities 102 is not limited to... Figure 2C The number shown is not one, but can include any number of one or more.
[0065] As another preferred embodiment, in the data transmission method, the pointer is a data structure with metadata indicating whether an entity has read / write permissions for the data referenced by the pointer. Consequently, the pointer used in the transmission method is at least similar to, and preferably identical to, the pointer described above with reference to the data transmission system 100.
[0066] As another preferred embodiment, in the data transmission method, when a publisher entity publishes a message, the metadata of the pointer included in the message is set to indicate that the publisher entity does not have read / write permissions. As a result, the same advantages described above with reference to data transmission system 100 can be achieved.
[0067] In summary, regarding the implementation of the data transmission method, all the above-described aspects of the data transmission system 100 can be applied to the data transmission method in turn, thereby producing the same advantages as described above.
[0068] iv) Computer programs
[0069] Another embodiment of this disclosure is a computer program containing instructions that, when executed by a computer, cause the computer to perform the aforementioned transmission method. Therefore, all the aforementioned aspects of the data transmission system 100 and / or the data transmission method are applied together to this computer program, resulting in the same advantages as described above.
[0070] The above-described embodiments can be implemented in any of a variety of ways. For example, the embodiments can be implemented using hardware, software, or a combination thereof. When implemented in software, the software code can execute on any suitable processor or set of processors, whether provided in a single computing device or distributed among multiple computing devices. Such processors can be implemented as integrated circuits, with one or more processors in the integrated circuit or its components, including commercially available integrated circuit components known in this art, such as CPU chips, GPU chips, microprocessors, microcontrollers, or coprocessors. Alternatively, a dedicated processor can be implemented in custom circuitry, such as ASICs, FPGAs, or semi-custom circuitry that constitutes a programmable logic device. As another alternative, the processor can be part of a larger circuit or semiconductor device, whether commercially available, semi-custom, or custom. As a specific example, some commercially available microprocessors have multiple cores, such that one or a subset of these cores can constitute a processor. However, a processor can be implemented using circuitry of any suitable format.
Claims
1. A data transmission system (100), the data transmission system comprising a centralized controller (101), at least one publisher entity (102), and at least one subscriber entity (103), wherein: The publisher entity (102) and the subscriber entity (103) are provided with a predetermined data format (F) for data communication via a communication channel (200), the data format (F) containing information about data type and memory size; The publisher entity (102) is configured to register with topic information at the centralized controller (101); The centralized controller (101) is configured to store the topic information together with the information used for registration at the publisher entity (102) after the publisher entity (102) registers; The subscriber entity (103) is configured to subscribe to the topic information at the centralized controller (101); The centralized controller (101) is configured to provide the subscriber entity (103) with information for registration with the publisher entity (102) after the subscriber entity (103) subscribes; and The subscriber entity (103) is configured to create the communication channel (200) between the publisher entity (102) and the subscriber entity (103) based on information used for registration with the publisher entity (102). in: The publisher entity (102) is configured to create a pointer to data stored in memory in the predetermined data format (F), include the pointer in a message, and publish the message to the communication channel (200). The pointer is a data structure with metadata indicating whether an entity has read / write permissions for the data referenced by the pointer; and When the publisher entity (102) publishes the message, the metadata of the pointer contained in the message is set to indicate that the publisher entity (102) does not have read / write permissions.
2. The data transmission system (100) according to claim 1, wherein: The publisher entity (102) is configured to establish a set of communication channels to which the message is published; The subscriber entity (103) is configured to establish the communication channel (200) and transmit information about the communication channel (200) to the publisher entity (102); and The publisher entity (102) is configured to store the communication channel (200) established by the subscriber entity (103) in a collection of communication channels after the subscriber entity (103) registers.
3. The data transmission system (100) according to claim 1, wherein, The data stored in the memory is vehicle-related data.
4. The data transmission system (100) according to claim 1, wherein, The data structure includes a portion for identifying the following items: Entities with read / write permissions for data, An indication of the type of data stored in memory, and / or The size of the data stored in memory.
5. The data transmission system (100) according to claim 4, wherein, The portion used to identify an entity as having read / write permissions for data is a region of memory containing a pointer that references the address of the entity in the memory that has read / write permissions for data.
6. The data transmission system (100) according to claim 1, wherein, The data structure also includes a counter for counting the number of entities using the data.
7. The data transmission system (100) according to claim 6, wherein, Entities identified as having read / write permissions for data are configured to perform reference counting when the counter becomes zero, in order to release pointers that reference the data stored in memory.
8. The data transmission system (100) according to claim 5, wherein, The data structure also includes identifying one or more entities as a set of data that uses the data.
9. The data transmission system (100) according to claim 8, wherein, Entities identified as having read / write permissions for data are configured to perform reference counting to release pointers to data stored in memory when the set becomes empty.
10. The data transmission system (100) according to claim 1, wherein, The data transmission system (100) is used for Advanced Driver Assistance Systems (ADAS), Autonomous Driving Systems (ADS), and / or simulation systems.
11. The data transmission system (100) according to claim 1, wherein, The centralized controller (101) or the communication channel (200) is configured as an entity with read / write permissions for data and is configured to provide the subscriber entity (103) with a message instructing the subscriber entity (103) to use only the data.
12. The data transmission system (100) according to claim 1, wherein, The centralized controller (101) or the communication channel (200) is configured to notify the subscriber entity (103) that new data is available; When notified that new data is available, the subscriber entity (103), which is the entity using the new data, obtains the new data from the communication channel (200).
13. A vehicle including a processing unit, said processing unit comprising a data transmission system according to any one of claims 1 to 12.
14. A computer-implemented data transmission method, the data transmission method comprising the following steps: Provide at least one publisher entity (102) and at least one subscriber entity (103) with a predetermined data format (F) for data communication via a communication channel (200), the data format (F) containing information about data type and memory size; Register the publisher entity (102) with topic information at the centralized controller (101) (S1); The centralized controller (101) stores the topic information together with the information used for registration at the publisher entity (102) after the topic is registered by the publisher entity (102); At the centralized controller (101), the subscriber entity (103) subscribes to (S2) the topic information; The centralized controller (101) provides (S3) the subscriber entity (103) with information for registration at the publisher entity (102) after the subscriber entity (103) subscribes; The subscriber entity (103) creates the communication channel (200) between the publisher entity (102) and the subscriber entity (103) based on information used for registration with the publisher entity (102). The publisher entity (102) creates a pointer to data stored in memory in the predetermined data format (F), includes the pointer in a message, and publishes the message to the communication channel (200), wherein The pointer is a data structure with metadata indicating whether an entity has read / write permissions for the data referenced by the pointer. When the publisher entity (102) publishes the message, the metadata of the pointer contained in the message is set to indicate that the publisher entity (102) does not have read / write permissions.
15. A computer program product comprising instructions that, when executed by a computer, cause the computer to perform the data transmission method according to claim 14.
Citation Information
Patent Citations
Message communication method, computer system and agent device
WO2021143190A1