Data transmission method and device under automobile open system architecture
By creating a complex device driver socket module under the AUTOSAR architecture and calling the transmission acknowledgment function, the problem of RAM resource limitation in Ethernet data transmission is solved, achieving efficient data transmission bandwidth improvement and system smoothness.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- ROBERT BOSCH GMBH
- Filing Date
- 2024-12-04
- Publication Date
- 2026-06-05
Smart Images

Figure CN122160443A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and more specifically, to a data transmission method and apparatus, computing device, and computer storage medium under the AUTOSAR (Automotive Open System Architecture) architecture. Background Technology
[0002] With the continuous development of technology, Ethernet is becoming increasingly prevalent in automotive devices. In the field of autonomous driving, the transmission of radar data, DoIP (Diagnostic Communication over Internet Protocol) data based on Internet Protocol (IP) networks, and communication data between microcontroller units (MCUs) and system-on-chips (SoCs) all place higher demands on the communication bandwidth and real-time performance of automotive electronic control units (ECUs).
[0003] The autonomous driving project deploys Ethernet on the MCU side to meet the high bandwidth and real-time requirements of data transmission. The overall MCU program is based on the AUTOSAR architecture, and the Ethernet protocol stack used does not support interrupt mode, so only polling mode is used to handle the sending and receiving of Ethernet data frames. Polling mode consumes a large amount of random access memory (RAM), so an efficient way to handle the large data transmission requirements is needed. Summary of the Invention
[0004] In view of this, the present disclosure provides a method and apparatus for motion compensation of point cloud data, a computing device and a storage medium, which are intended to overcome some or all of the defects mentioned above and other possible defects.
[0005] According to a first aspect of this disclosure, a data transmission method under an open automotive system architecture is provided. The method includes: creating a complex device driver socket module at a transmission control protocol / internet protocol layer; pre-allocating random access memory (RAM) via the complex device driver socket module and locking the pre-allocated RAM; transmitting data in the locked RAM via the complex device driver socket module; counting the number of times data is transmitted in the pre-allocated RAM; and, in response to the number of data transmissions exceeding a predetermined threshold, calling a transmission acknowledgment function to confirm whether the transmission is complete and releasing the RAM resources for which the transmission has been completed.
[0006] According to a second aspect of this disclosure, a data transfer controller under an open system architecture for automobiles is provided, comprising: a memory configured to store computer-executable instructions; and a processor configured to perform any of the methods described above when the computer-executable instructions are executed by the processor.
[0007] According to a third aspect of this disclosure, a computer program product includes computer-executable instructions, wherein the computer-executable instructions, when executed by an executor, perform any of the methods described above.
[0008] According to a fourth aspect of this disclosure, a computer-readable storage medium is provided that stores computer-executable instructions that, when executed, perform any of the methods described above.
[0009] In the data transmission method and apparatus under the AUTOSAR architecture claimed in this disclosure, a call to the transmission acknowledgment function (Eth_TxConfirmation()) is added. This scenario creates a complex device driver (CDD) socket module above the Transmission Control Protocol / Internet Protocol (TCP / IP) layer. In interrupt mode, the underlying driver generates an interrupt for each frame it sends, calls the transmission acknowledgment function within the interrupt to immediately unlock the buffer, and can immediately request the buffer again. Both the method and the interrupt scenario proposed in this application can send frames without RAM limitations. In large data transmission scenarios, this approach avoids frequent interrupts, making the entire system run more smoothly.
[0010] These and other aspects of this application will become clearer from the embodiments described below, and will be elucidated with reference to the embodiments described below. Attached Figure Description
[0011] Embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings, in which:
[0012] Figure 1 The illustration shows an exemplary application scenario for data transmission using the AUTOSAR architecture;
[0013] Figure 2 A signaling diagram showing the detailed transmission process in polling mode in the AUTOSAR specification is provided.
[0014] Figure 3 The diagram illustrates a signaling diagram showing a detailed transmission process in polling mode of Ethernet transmission according to an embodiment of the present disclosure;
[0015] Figure 4 The illustration shows a flowchart of a data transmission method under an AUTOSAR architecture according to an embodiment of the present disclosure;
[0016] Figure 5 The illustration shows a flowchart of a data transmission method under an AUTOSAR architecture according to another embodiment of the present disclosure;
[0017] Figure 6 An exemplary structural block diagram of an exemplary electronic device is illustrated, which can be configured to implement a data transmission method under an AUTOSAR architecture according to an embodiment of the present disclosure. Detailed Implementation
[0018] The following description provides specific details of various embodiments of this disclosure to enable those skilled in the art to fully understand and implement the various embodiments of this disclosure. It should be understood that the technical solutions of this disclosure can be implemented without some of these details. In some cases, this disclosure does not show or describe in detail some well-known structures or functions to avoid such unnecessary descriptions that would obscure the description of the embodiments of this disclosure. The terminology used in this disclosure should be understood in its broadest and most reasonable manner, even when used in conjunction with specific embodiments of this disclosure.
[0019] Figure 1 The illustration depicts an exemplary application scenario for data transmission using the AUTOSAR architecture. For example... Figure 1 As shown, various methods provided according to embodiments of this application (see below) can be applied in vehicle 110, which is situated in vehicle environment 100. Vehicle 110 may include various vehicles, such as passenger cars like sedans and SUVs (sports utility vehicles), logistics and freight vehicles like trucks and automated guided vehicles (AGVs), mining and construction vehicles like dump trucks and excavators, etc. Vehicle 110 may also include various aircraft and vessels, such as drones for cargo delivery, agricultural spraying, monitoring, etc., and vessels for recreation or transportation, etc. Accordingly, vehicle environment 100 can be various environments such as urban environments, rural environments, off-road environments, mountain environments, and aerial environments.
[0020] Figure 2 Signaling diagram 200 illustrates the detailed transmission process of polling mode in the AUTOSAR specification. The detailed transmission process of polling mode is defined in the AUTOSAR specification as follows:
[0021] Before sending the stored data, a buffer is requested from statically pre-allocated RAM to cache the data. The buffer is locked after being requested and cannot be requested again.
[0022] After a successful request, the data stored in the cache is sent.
[0023] When the `EthIf_MainFunctionTx()` cycle expires, the `EthIf_TxConfirmation()` function is called to confirm the transmission by checking register flags. If transmission is complete, the buffer is unlocked. After unlocking, the buffer can be requested again. In other words, a buffer can only be used once within an `EthIf_MainFunctionTx()` cycle. Because RAM resources are statically allocated in the AUTOSAR architecture, if M RAM buffers are allocated, a maximum of M transmissions can be performed per cycle, meaning M frames can be sent. When sending the (M+1)th frame, the request fails because all buffers are locked, causing the entire transmission process to fail.
[0024] The inventors discovered that bandwidth in polling mode is limited by RAM resources. To send more frames in a single cycle, more RAM buffer resources need to be pre-allocated, but RAM resources are limited on the MCU. However, without significant RAM utilization, Ethernet's transmission capacity is insufficient to meet the demands of upper-layer applications.
[0025] On the other hand, shortening the execution cycle of EthIf_MainFunctionTx() can speed up cache unlocking and increase bandwidth. However, the current EthIf_MainFunctionTx() cycle is 10ms, while the minimum scheduling cycle used in the project is 5ms. Changing the cycle time from 10ms to 5ms only doubles the transmission capacity and cannot handle sudden situations. For example, when sending a large amount of data in a short period of time (less than one cycle), performance is still limited by RAM resources.
[0026] Therefore, based on the existing polling model, a method is needed to significantly increase transmission bandwidth without consuming excessive RAM resources to meet the large amounts of data sent by upper-layer applications. The solution of this invention can multiply the transmission bandwidth while consuming only a small amount of RAM.
[0027] Figure 3 Signaling diagram 300 illustrates a detailed transmission process in polling mode Ethernet transmission according to an embodiment of the present disclosure.
[0028] This scenario considers creating a CDD socket module above the TCP / IP layer. CDD stands for complex device driver, a concept in the AUTOSAR standard, which is generally used to implement non-standard complex drivers or user-defined flexible programs. Figure 3 Before transmission, there's a buffering process. Actually, buffering is done internally by `cddtransmit`. The raw Ethernet transmission interface is encapsulated as `Cdd_transmit()` within a CDD socket. `Cdd_transmit()` records the number of transmissions and manually calls `TxConfirmation()` after a certain number of transmissions to attempt to unlock the buffer upon completion of transmission. In existing technologies, the upper layer calls `TCP / IP transmit`. `TCP / IPtransmit` performs buffering and `Ethif_transmit()`. `Cdd_transmit()` is a wrapper around this `TCP / IPtransmit`. Therefore, the buffer doesn't have to wait until `EthIf_MainFuncionTx()` runs to unlock, allowing each buffer to be used multiple times within a single cycle, breaking the RAM resource limitation on its transmission capacity.
[0029] Additionally, if a transmission fails, it might be due to a failed cache request, and it's suspected that the entire cache is locked. In this case, TxConfirmation() will be called to check if any cached data has actually been sent and to unlock it. Simultaneously, a resend will be attempted to ensure the transmission doesn't fail due to cached data not being unlocked in time.
[0030] Figure 4 The illustration shows a flowchart of a data transmission method 400 under an open automotive system architecture according to an embodiment of the present disclosure.
[0031] In step S401, a complex device driver socket module is created at the Transmission Control Protocol / Internet Protocol layer. CDD stands for Complex Device Driver, a concept in the AUTOSAR standard, generally used to implement non-standard complex drivers or user-defined flexible programs.
[0032] In step S402, the random access memory is pre-allocated and locked via the complex device driver socket module. Before sending the stored data, a buffer is requested from the statically pre-allocated RAM to cache the data. The buffer is locked after being requested and cannot be requested again.
[0033] In step S403, data is transferred in the locked random access memory via the complex device driver socket module. Upon successful request, the data stored in the buffer is sent.
[0034] In step S404, the number of times data is transferred in the pre-allocated random access memory is counted. This is in Figure 3As can be seen from Tx_Cnt++, before the transmission begins, the initial value of the counter is first set, for example, by resetting the counter to zero. Afterward, the counter is incremented by 1 after each transmission is completed.
[0035] In step S405, in response to the number of data transmissions exceeding a predetermined threshold, a transmission confirmation function is called to confirm whether the transmission is complete and to release the random access memory resources used for the completed transmission. The number of transmissions is recorded in `Cdd_transmit()`, and `TxConfirmation()` is manually called manually after each certain number of transmissions to attempt to unlock the buffer upon completion of transmission. This step manifests as... Figure 3 The signaling is in the first dashed box in the diagram.
[0036] In one embodiment, in response to confirmation that the transfer has been completed and the random access memory resource has been released, the pre-allocated random access memory resource is unlocked; and the count of the number of times data was transferred in the pre-allocated random access memory is reset to zero and the counting restarts. The counter is reset to zero. Figure 3 In the signaling diagram, it is marked as Tx_Cnt=0.
[0037] Figure 5 A flowchart illustrating a data transmission method 500 under an open automotive system architecture according to another embodiment of the present disclosure is shown. Figure 5 In the middle, steps S401 to S405 and Figure 4 The same applies, so I won't go into details here.
[0038] In step S406, in response to a failure to transfer data in the provided random access memory, a transfer acknowledgment function is called to confirm whether the transfer was complete, and the random access memory resources for which the transfer was completed are released. This step is based on... Figure 3 The signaling is shown in the second dashed box.
[0039] In one embodiment, in response to confirmation that the transmission has been completed and the random access memory resources have been released, the pre-allocated random access memory resources are unlocked; and the count of the number of times data was transmitted in the pre-allocated random access memory is reset to zero and the count is restarted.
[0040] In another embodiment, data that fails to be transmitted in the provided random access memory is retransmitted.
[0041] In another embodiment, after restarting the counting: RAM is pre-allocated via the CDD socket module and the pre-allocated RAM is locked; data is transferred in the locked RAM via the CDD socket module; and the number of times data is transferred in the pre-allocated RAM is counted.
[0042] In one embodiment, in response to the expiration of the data transmission period, a transmission confirmation function is invoked to confirm whether the transmission is complete and to release the RAM resources for which the transmission has been completed; and in response to the confirmation that the transmission has been completed and the RAM resources have been released, the pre-allocated RAM resources are unlocked.
[0043] Here, calling the transmission confirmation function to confirm whether the transmission is complete and to release the RAM resources after the transmission is complete includes: calling the transmission confirmation function to confirm whether the transmission is complete based on the register flags and to release the RAM resources after the transmission is complete.
[0044] In the original polling mode, the number of frames that can be sent per cycle (10ms) is limited by the number of buffers. Assuming 20 buffers are allocated, each with 1536 bytes, the total RAM consumption is 30720 bytes, and the maximum bandwidth is 24.29 Mbps. In this application, assuming 10 buffers are allocated, the total RAM consumption is 15360 bytes, and with a CPU load of approximately 20%, the measured transmission bandwidth reaches 133.58 Mbps. This consumes only 50% of the RAM, but the bandwidth increases by approximately 5.5 times. Even greater bandwidth can be achieved by allowing more CPUs.
[0045] In this application, a call to Eth_TxConfirmation() is added. According to measurements, each run of Eth_TxConfirmation() takes about a few microseconds, which can be ignored during the entire system loading process.
[0046] In interrupt mode, the underlying driver generates an interrupt for each frame it sends, calling `Eth_TxConfirmation()` within the interrupt to immediately unlock the buffer, and can immediately request the buffer again. Theoretical analysis shows that both the method proposed in this application and the interrupt scenario can send frames without RAM limitations, mainly limited by network interface speed (such as RGMII) and CPU load, so there should be no significant performance difference. In high-data-rate scenarios, this approach avoids frequent interrupts, making the entire system run more smoothly, and the overall load may theoretically be slightly lower.
[0047] Figure 6 An exemplary structural block diagram of an exemplary electronic device 600 is illustrated. The electronic device 600 can be configured to implement a data transmission method under an AUTOSAR architecture according to an embodiment of the present disclosure.
[0048] Electronic device 600 includes one or more processors or processing units 610, one or more memories or storage devices 620, one or more input / output (I / O) devices 630, and a bus 640 that allows various components and devices to communicate with each other. The one or more memories or storage devices 620 and the one or more input / output (I / O) devices 630 may be part of electronic device 600, or alternatively coupled to electronic device 600. Bus 640 represents one or more types of bus architectures, including memory buses or memory controllers using various different bus architectures, peripheral buses, accelerated graphics ports, processor or local buses, etc. Bus 640 may include wired and / or wireless buses.
[0049] The memory or storage device 620 may include volatile storage media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disk, magnetic disk, etc.).
[0050] The techniques discussed herein can be implemented as software having instructions executable by one or more processors or processing units 610. It should be understood that different instructions can be stored in different components of the electronic device 600, such as in the processor or processing unit 610, in various cache memories of the processor or processing unit 610, in other cache memories of the electronic device 600 (not shown), in memory or storage devices 620, etc.
[0051] One or more input / output (I / O) devices 630 allow commands and information to be input into electronic device 600, and also allow information to be presented to a user and / or other devices. Examples of input devices include keyboards, cursor controls (e.g., mice), microphones, scanners, data receivers, and so on. Examples of output devices include display devices (e.g., monitors or projectors), speakers, printers, network interface cards (NICs), and so on.
[0052] Here, various technologies are described in the general context of software or program modules. Typically, software includes routines, programs, objects, data structures, etc., that perform specific tasks or implement specific abstract data types. Implementations of these modules and technologies may be stored in or transferred across some form of computer-readable storage medium. Computer-readable storage media can be any available medium accessible to an electronic device.
[0053] "Computer-readable storage media" includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media includes, but is not limited to, RAM, ROM, flash memory or other memory technologies, CD-ROM, or other optical storage devices, magnetic tape, disk storage devices or other magnetic storage devices, or any other media that can be used to store desired information and can be accessed by a computer.
[0054] The technical solution disclosed herein can be implemented in electronic device 600. The electronic device may include lidar or domain controllers, etc. A domain controller is an integrated electronic control unit that has emerged with the development of automotive electrification and intelligence, improving the vehicle's intelligence level by integrating the functions of multiple electronic control units (ECUs). Depending on its function or application area, the domain controller can be implemented as a powertrain domain controller, body domain controller, autonomous driving domain controller, cockpit domain controller, etc.
[0055] This disclosure also provides a computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of an electronic device or computing device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the electronic device or computing device to perform any of the methods provided in the various optional implementations described above.
[0056] By studying the accompanying drawings, the disclosure, and the appended claims, those skilled in the art can understand and implement variations of the disclosed embodiments in practicing the claimed subject matter. In the claims, the word "comprising" does not exclude other elements or steps, and "a" or "an" does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used advantageously.
Claims
1. A data transmission method under an open system architecture for automobiles, the method comprising: Create complex device driver socket modules at the Transmission Control Protocol / Internet Protocol layer; The complex device drive socket module pre-allocates and locks the random access memory. Data is transmitted in a locked random access memory via the complex device-driven socket module; Count the number of times data is transferred in the pre-allocated random access memory; In response to the number of times the data is transmitted exceeding a predetermined threshold, a transmission confirmation function is invoked to confirm whether the transmission is complete and to release the random access memory resources for which the transmission has been completed.
2. The method according to claim 1, further comprising: In response to a failure to transfer data in the provided random access memory, the transfer confirmation function is invoked to confirm whether the transfer is complete and to release the random access memory resources for which the transfer has been completed.
3. The method according to claim 1, further comprising: In response to confirmation that the transfer has been completed and the random access memory resources have been released, the pre-allocated random access memory resources are unlocked; and The count of data transfers in the pre-allocated random access memory is reset to zero and restarted.
4. The method according to claim 2, further comprising: In response to confirmation that the transfer has been completed and the random access memory resources have been released, the pre-allocated random access memory resources are unlocked; and The count of data transfers in the pre-allocated random access memory is reset to zero and restarted.
5. The method according to claim 4, further comprising: Retransmit data that fails to be transferred in the provided random access memory.
6. The method according to any one of claims 2-5, further comprising, after starting to recount: The complex device drive socket module pre-allocates and locks the random access memory. Data is transmitted in a locked random access memory via the complex device-driven socket module; The number of times data is transferred in the pre-allocated random access memory is counted.
7. The method according to any one of claims 1-5, further comprising: In response to the expiration of the data transmission cycle, a transmission confirmation function is called to confirm whether the transmission is complete and to release the random access memory resources used for the completed transmission. and In response to confirmation that the transfer has been completed and the random access memory resources have been released, the pre-allocated random access memory resources are unlocked.
8. The method according to any one of claims 1-5, wherein calling the transmission confirmation function to confirm whether the transmission is complete and releasing the random access memory resources after the transmission is complete comprises: The transmission confirmation function is invoked to confirm whether the transmission is complete based on the register flags, and the random access memory resources for which the transmission is complete are released.
9. A data transmission controller for an open automotive system architecture, comprising: Memory, which is configured to store computer-executable instructions; A processor configured to perform the method according to any one of claims 1 to 8 when the computer-executable instructions are executed by the processor.
10. A computer-readable storage medium storing computer-executable instructions that, when executed, perform the method as claimed in any one of claims 1 to 8.
11. A computer program product, characterized in that, The computer program product includes computer-executable instructions that, when executed, implement the method according to any one of claims 1 to 8.