Data transmission method and device, electronic equipment, storage medium and program product

By obtaining the communication link quality evaluation value and dynamically provisioning the data transmission ratio, the problem of low communication link utilization in the prior art is solved, the maximum utilization of physical channel bandwidth and the improvement of data transmission reliability is achieved, and it is suitable for multi-channel serial communication between vehicle domain controllers and SOCs.

CN120583050APending Publication Date: 2025-09-02XIAOMI EV TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411641680.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-15
Publication Date
2025-09-02

Smart Images

  • Figure CN120583050A_ABST
    Figure CN120583050A_ABST
Patent Text Reader

Abstract

The invention relates to a data transmission method and device, electronic equipment, a storage medium and a program product, the data transmission method is executed by first equipment, and the first equipment is connected with second equipment through at least two communication links. The link quality evaluation value of each communication link in the at least two communication links between the first equipment and the second equipment can be acquired, and then the data transmission proportion of each communication link is determined according to the link quality evaluation value of each communication link in the at least two communication links; and transmitting the first target transmission data from the first device to the second device according to the data transmission proportion of each communication link, so that the transmission data on each communication link can be dynamically allocated according to the link quality evaluation value of each communication link, the bandwidth of a physical channel can be virtualized and shared, and the user experience is improved. The maximum utilization of the bandwidth resource of the existing physical channel is realized, and the reliability of data transmission can be effectively improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of communication technologies, and in particular to a data transmission method, device, electronic device, storage medium, and program product. Background Art

[0002] As vehicles become increasingly intelligent, the volume and real-time nature of in-vehicle signal transmission increases. This requires significant improvements in controller processing capabilities, while also increasing the real-time requirements for transmission and message flow between different controllers. However, existing communication methods often fail to maximize the utilization of existing communication links, making it difficult to meet these growing business demands. Summary of the Invention

[0003] To overcome the problems existing in the related art, the present disclosure provides a data transmission method, device, electronic device, storage medium and program product.

[0004] According to a first aspect of an embodiment of the present disclosure, a data transmission method is provided, which is performed by a first device, wherein the first device is connected to a second device via at least two communication links, wherein the at least two communication links include a physical communication link. The method includes:

[0005] Acquire first target transmission data to be sent to the second device and a link quality evaluation value of each of the at least two communication links, where the link quality evaluation value is used to characterize the reliability of the communication link;

[0006] Determining a data transmission ratio of each communication link according to a link quality evaluation value of each communication link in the at least two communication links;

[0007] The first target transmission data is transmitted from the first device to the second device according to the data transmission ratio of each of the communication links.

[0008] Optionally, obtaining a link quality assessment value of each of the at least two communication links includes:

[0009] For each communication link, send test request information to the second device, and the second device is configured to send reception feedback information to the first device in response to receiving the test request information;

[0010] Determining a first time for sending the test request information to the second device, and a second time for receiving the reception feedback information sent by the second device;

[0011] The link quality evaluation value is determined according to the first time and the second time.

[0012] Optionally, determining the link quality assessment value according to the first time and the second time includes:

[0013] Determining a duration between the first time and the second time;

[0014] The link quality evaluation value is determined according to the interval duration, and the link quality evaluation value is negatively correlated with the interval duration.

[0015] Optionally, determining the link quality assessment value according to the interval duration includes:

[0016] Determining a reciprocal value of the interval duration of the communication link;

[0017] The reciprocal value of the interval duration is used as the link quality evaluation value of the communication link.

[0018] Optionally, determining the data transmission ratio of each communication link according to the link quality evaluation value of each communication link in the at least two communication links includes:

[0019] determining a target and a value of the link quality assessment value for each of the at least two communication links;

[0020] For each communication link, a ratio of the link quality evaluation value of the communication link to the target sum value is determined to obtain the data transmission ratio corresponding to the communication link.

[0021] Optionally, the transmitting the first target transmission data from the first device to the second device according to the data transmission ratio of each of the communication links includes:

[0022] Splitting the first target transmission data according to the data transmission ratio of each communication link in the at least two communication links to obtain target data segments corresponding to each communication link and first sequence position information of each target data segment in the first target transmission data;

[0023] generating a target data frame corresponding to each communication link according to the first sequence position information of the communication link and the target data segment;

[0024] The target data frame is transmitted to the second device through the corresponding communication link of the at least two communication links, and the second device is used to splice the target data frame transmitted by each of the at least two communication links to obtain the first target transmission data.

[0025] Optionally, generating a target data frame corresponding to each communication link according to the first sequence position information and the target data segment of the communication link includes:

[0026] Obtaining first identification information corresponding to the first target transmission data;

[0027] For each target data segment, determining frame header information corresponding to the target data segment according to the first identification information and the first sequence position information;

[0028] A target data frame corresponding to the target data segment is generated according to the frame header information and the number of target data segments.

[0029] Optionally, the method further includes:

[0030] receiving a plurality of standby data frames sent by the second device through the at least two communication links, the standby data frames including second identification information of data before splitting, second sequence position information of data after splitting, and data segments;

[0031] The data segments in the multiple standby data frames are spliced ​​according to the second identification information and the second sequence position information of each of the multiple standby data frames to obtain second target transmission data sent by the second device to the first device.

[0032] Optionally, the splicing data fragments in the multiple standby data frames according to the second identification information and the second sequence position information of each of the multiple standby data frames to obtain second target transmission data sent by the second device to the first device includes:

[0033] Determining a plurality of standby data segments corresponding to the second identification information from the plurality of standby data frames;

[0034] The multiple standby data segments corresponding to the second identification information are spliced ​​according to the second sequence position information corresponding to each standby data segment to obtain the second target transmission data.

[0035] According to a second aspect of an embodiment of the present disclosure, a data transmission apparatus is provided, applied to a first device, wherein the first device is connected to a second device via at least two communication links, wherein the at least two communication links include a physical communication link, and the apparatus includes:

[0036] an acquisition module configured to acquire first target transmission data to be sent to the second device and a link quality evaluation value of each of the at least two communication links, wherein the link quality evaluation value is used to represent the reliability of the communication link;

[0037] a determination module configured to determine a data transmission ratio of each communication link according to a link quality evaluation value of each communication link in the at least two communication links;

[0038] The first transmission module is configured to transmit the first target transmission data from the first device to the second device according to the data transmission ratio of each of the communication links.

[0039] Optionally, the acquisition module is configured to:

[0040] For each communication link, send test request information to the second device, and the second device is configured to send reception feedback information to the first device in response to receiving the test request information;

[0041] Determining a first time for sending the test request information to the second device, and a second time for receiving the reception feedback information sent by the second device;

[0042] The link quality evaluation value is determined according to the first time and the second time.

[0043] Optionally, the acquisition module is configured to:

[0044] Determining a duration between the first time and the second time;

[0045] The link quality evaluation value is determined according to the interval duration, and the link quality evaluation value is negatively correlated with the interval duration.

[0046] Optionally, the acquisition module is configured to:

[0047] Determining a reciprocal value of the interval duration of the communication link;

[0048] The reciprocal value of the interval duration is used as the link quality evaluation value of the communication link.

[0049] Optionally, the determining module is configured to:

[0050] determining a target and a value of the link quality assessment value for each of the at least two communication links;

[0051] For each communication link, a ratio of the link quality evaluation value of the communication link to the target sum value is determined to obtain the data transmission ratio corresponding to the communication link.

[0052] Optionally, the first transmission module is configured to:

[0053] Splitting the first target transmission data according to the data transmission ratio of each communication link in the at least two communication links to obtain target data segments corresponding to each communication link and first sequence position information of each target data segment in the first target transmission data;

[0054] generating a target data frame corresponding to each communication link according to the first sequence position information of the communication link and the target data segment;

[0055] The target data frame is transmitted to the second device through the corresponding communication link of the at least two communication links, and the second device is used to splice the target data frame transmitted by each of the at least two communication links to obtain the first target transmission data.

[0056] Optionally, the first transmission module is configured to:

[0057] Obtaining first identification information corresponding to the first target transmission data;

[0058] For each target data segment, determining frame header information corresponding to the target data segment according to the first identification information and the first sequence position information;

[0059] A target data frame corresponding to the target data segment is generated according to the frame header information and the number of target data segments.

[0060] Optionally, the device further comprises:

[0061] a second transmission module configured to receive a plurality of standby data frames sent by the second device through the at least two communication links, the standby data frames including second identification information of the data before splitting, second sequence position information of the data after splitting, and data segments;

[0062] The merging module is configured to splice the data fragments in the multiple standby data frames according to the second identification information and the second sequence position information of each of the multiple standby data frames to obtain the second target transmission data sent by the second device to the first device.

[0063] Optionally, the merging module is configured to:

[0064] Determining a plurality of standby data segments corresponding to the second identification information from the plurality of standby data frames;

[0065] The multiple standby data segments corresponding to the second identification information are spliced ​​according to the second sequence position information corresponding to each standby data segment to obtain the second target transmission data.

[0066] According to a third aspect of an embodiment of the present disclosure, there is provided an electronic device, including:

[0067] processor;

[0068] a memory for storing processor-executable instructions;

[0069] The processor is configured to implement the steps of the method described in the first aspect above.

[0070] According to a fourth aspect of an embodiment of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored, characterized in that when the computer program is executed by a processor, the steps of the method described in the first aspect above are implemented.

[0071] According to a fifth aspect of an embodiment of the present disclosure, a computer program product is provided, characterized in that it includes a computer program, and when the computer program is executed by a processor, the steps of the method described in the first aspect above are implemented.

[0072] The technical solution provided by the embodiments of the present disclosure may include the following beneficial effects: it is possible to obtain the link quality evaluation value of each communication link in the at least two communication links between the first device and the second device, and then determine the data transmission ratio of each communication link according to the link quality evaluation value of each communication link in the at least two communication links; according to the data transmission ratio of each communication link, the first target transmission data is transmitted from the first device to the second device, so that the transmission data on each communication link can be dynamically allocated according to the link quality evaluation value of each communication link, so that the bandwidth of the physical channel can be virtualized and shared, thereby maximizing the utilization of the bandwidth resources of the existing physical channel and effectively improving the reliability of data transmission.

[0073] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0074] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0075] Figure 1 The figure is a flowchart showing a data transmission method according to an exemplary embodiment.

[0076] Figure 2 is based on Figure 1 The illustrated embodiment shows a flow chart of a data transmission method;

[0077] Figure 3FIG. 1 is a schematic diagram of a data transmission method according to an exemplary embodiment of the present disclosure.

[0078] Figure 4 is based on Figure 1 The illustrated embodiment shows a flow chart of another data transmission method.

[0079] Figure 5 is based on Figure 1 The illustrated embodiment shows a flow chart of yet another data transmission method.

[0080] Figure 6 is based on Figure 1 The illustrated embodiment shows a flow chart of yet another data transmission method.

[0081] Figure 7 FIG. 4 is a flowchart of a data transmission method shown in another exemplary embodiment of the present disclosure.

[0082] Figure 8 It is a block diagram of a data transmission device shown in an exemplary embodiment of the present disclosure.

[0083] Figure 9 is a block diagram of a vehicle according to an exemplary embodiment.

[0084] Figure 10 The figure is a block diagram showing a data transmission device according to an exemplary embodiment. DETAILED DESCRIPTION

[0085] Exemplary embodiments will be described in detail herein, with examples illustrated in the accompanying drawings. In the following description, when referring to the drawings, identical numerals in different figures represent identical or similar elements, unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all possible embodiments consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure, as detailed in the appended claims.

[0086] Before introducing the specific embodiments of the present disclosure in detail, the application scenarios of the present disclosure are first described as follows. The data transmission method described in the present disclosure can be applied between any two devices with communication requirements, for example, it can be used in the communication scenario between an MCU (Microcontroller Unit) and an SOC (System on Chip). The MCU and the SOC may include one SPI (Serial Peripheral Interface, synchronous serial communication interface) link, one SCI (Serial Communicate Interface, asynchronous serial communication interface) link, or two or more SPI links, or two or more SCI links, or multiple SCI / UART (Universal Asynchronous Receiver / Transmitter) and multiple SPI transmission links. The data transmission method can also be applied to the multi-channel serial communication scenario between any two processors (for example, between two MCUs, between two SOCs, between an MCU and a DSP (Digital Signal Processor), etc.), and can also be used in the Ethernet / WIFI transmission scenario between any two network devices.

[0087] Most of the related technologies are based on dual UART serial ports or dual SPI for data transmission, or based on Ethernet / WIFI technology. However, whether it is a technology based on Ethernet / WIFI transmission or a technology based on dual UART serial ports or dual SPI communication transmission, it can usually only achieve seamless switching to the other link for transmission when one link is unavailable. It is unable to dynamically adjust the amount of data transmitted on each link based on the link quality of the two links, and it is even unable to dynamically adjust the size of each transmission data packet on different transmission links according to the link quality. It is usually impossible to maximize the effect of dual-path aggregation acceleration, nor can it maximize the use of physical links for efficient and stable transmission.

[0088] In order to solve the above technical problems, the present disclosure provides a data transmission method, device, electronic device, storage medium and program product. The data transmission method is executed by a first device, and the first device and the second device are connected through at least two communication links. The link quality evaluation value of each communication link in the at least two communication links between the first device and the second device can be obtained, and then the data transmission ratio of each communication link is determined according to the link quality evaluation value of each communication link in the at least two communication links; the first target transmission data is transmitted from the first device to the second device according to the data transmission ratio of each communication link. In this way, the transmission data on each communication link can be dynamically allocated according to the link quality evaluation value of each communication link, and the idea of ​​virtualization of server physical computing resources in cloud computing can be introduced into the serial communication link, and the bandwidth resources of the serial communication physical link can be virtualized, so that the bandwidth of the physical channel can be virtually shared, and the bandwidth resources of the existing physical channel can be maximized, and the reliability of data transmission can also be effectively improved.

[0089] Figure 1 FIG. 1 is a flow chart showing a data transmission method according to an exemplary embodiment. Figure 1 As shown, the data transmission method is performed by a first device, the first device is connected to a second device via at least two communication links, and includes:

[0090] Step 101: Acquire first target transmission data to be sent to a second device and a link quality evaluation value of each of the at least two communication links.

[0091] The at least two communication links may include a physical communication link and a virtual communication link. The link quality assessment value is used to characterize the reliability of the communication link. The first target transmission data may be service data sent by a preset application and received by the first device, meter data collected from other devices, or data locally stored by the first device.

[0092] In some embodiments, the first device may be an MCU in a vehicle domain controller, and the second device may be an SOC in a vehicle. The at least two communication links between the first device and the second device may include at least one SPI link and at least one SCI link, or may include two or more SPI links, or may include two or more SCI links, or multiple links based on dual-channel Ethernet / WIFI transmission.

[0093] In some embodiments, the link quality evaluation value can be determined based on the transmission delay. For example, the delay duration of the current communication link can be determined by sending test data, and the link quality evaluation value can be determined based on the delay duration. The link quality evaluation value can be inversely proportional to the delay duration.

[0094] In other embodiments, a weighted summation can be performed on multiple preset communication quality indicator values ​​(for example, data transmission efficiency, bit error rate, transmission delay, etc.) to obtain the link quality evaluation value. The larger the link quality evaluation value, the worse the quality of the communication link and the lower the reliability of data transmission.

[0095] Step 102: Determine the data transmission ratio of each communication link according to the link quality evaluation value of each communication link in the at least two communication links.

[0096] Among them, when the larger the link quality evaluation value, the worse the quality of the communication link and the lower the reliability of data transmission, the data transmission ratio of each communication link can be negatively correlated with the link quality evaluation value, that is, the larger the link quality evaluation value, the smaller the data transmission ratio of the communication link; when the larger the link quality evaluation value, the better the quality of the communication link and the higher the reliability of data transmission, the data transmission ratio of each communication link can be positively correlated with the link quality evaluation value, that is, the larger the link quality evaluation value, the larger the data transmission ratio of the communication link.

[0097] Step 103: Transmit the first target transmission data from the first device to the second device according to the data transmission ratio of each of the communication links.

[0098] For example, if the first target transmission data is a data packet of F bytes, there is one SPI link and one SCI link between the first device and the second device. When the delay of the SPI link is T1, the corresponding link quality evaluation value can be QoS1=1 / T1, and when the delay of the SCI link is T2, the corresponding link quality evaluation value can be QoS2=1 / T2. The size of the partial data packet transmitted by the SPI link can be: F*[QoS1 / (QoS1+QoS2)]; the size of the partial data packet transmitted by the SCI link can be: F*[QoS2 / (QoS1+QoS2)], that is, the F*[QoS1 / (QoS1+QoS2)] part of the F bytes corresponding to the first target transmission data transmitted through the SPI link, and the F*[QoS2 / (QoS1+QoS2)] part of the F bytes corresponding to the first target transmission data transmitted through the SCI link.

[0099] The above technical solution can dynamically allocate the transmission data on each communication link according to the link quality evaluation value of each communication link, thereby maximizing the utilization of existing bandwidth resources and effectively improving the reliability of data transmission.

[0100] Optionally, Figure 2 is based on Figure 1 The embodiment shown is a flowchart of a data transmission method, and the implementation method of obtaining the link quality evaluation value of each communication link in the at least two communication links described in step 101 above can be as follows Figure 2 Shown, including:

[0101] Step 1011: For each communication link, test request information is sent to the second device. The second device is configured to send reception feedback information to the first device in response to receiving the test request information.

[0102] In some embodiments, a heartbeat module can be set in the first device for each communication link, and the heartbeat module corresponding to each communication link periodically sends test request information to the second device through the communication link. In response to receiving the test request information, the second device sends reception feedback information to the first device.

[0103] In other embodiments, steps 1011 to 1013 may be performed before data transmission to obtain the current link quality assessment value. For example, after receiving a data transmission instruction, steps 1011 to 1013 may be performed first, and after obtaining the current link quality assessment value, the data splitting and transmission actions may be performed. For another example, steps 1011 to 1013 may be performed after determining that the first target transmission data to be transmitted exists, and after receiving the data transmission instruction, data packet splitting and transmission may be performed based on the obtained current link quality assessment value.

[0104] Step 1012: Determine a first time for sending the test request information to the second device and a second time for receiving the reception feedback information sent by the second device.

[0105] Step 1013: Determine the link quality evaluation value according to the first time and the second time.

[0106] In some embodiments, the above step 1013 may be implemented by the following steps S11 and S12, specifically as follows:

[0107] S11, determining the interval between the first time and the second time.

[0108] S12: Determine the link quality evaluation value according to the interval duration, where the link quality evaluation value is negatively correlated with the interval duration.

[0109] In some embodiments, the implementation method of determining the link quality evaluation value based on the interval duration may be: determining the reciprocal value of the interval duration of the communication link; and using the reciprocal value of the interval duration as the link quality evaluation value of the communication link.

[0110] For example, Figure 3 is a schematic diagram of a data transmission method shown in an exemplary embodiment of the present disclosure, such as Figure 3 As shown, the first device is an MCU and the second device is an SOC. Between the MCU and the SOC, there is an SCI link and an SPI link. In the MCU, there are instrument signals, vehicle control signals, audio signals, diagnostic signals and other data sent by the APP, which need to be exchanged through the communication link between the SOC to realize the call of related services in the SOC. There can be two heartbeat modules in the transmission acceleration module within the MCU. One heartbeat module is the heartbeat of SPI, which periodically (for example, every 10ms) sends a request message to the SOC through SPI. After receiving the request message, the SOC replies ACK to the MCU through SPI. The MCU aggregation acceleration module determines the link quality evaluation value of the current SPI link based on the time difference between sending the request and receiving the ACK (that is, the length of the interval). If the time difference is T1, the corresponding link quality evaluation value can be QoS1=1 / T1; the other heartbeat module is the heartbeat of SCI, which periodically sends a request message to the SOC through SCI every 10ms. After receiving the request message, the SOC replies ACK to the MCU through SCI. The MCU aggregation acceleration module determines the current SCI link quality based on the time difference between sending the request and receiving the ACK. For example, when the time difference of the SCI link is T2, the corresponding link quality evaluation value is QoS2=1 / T2.

[0111] In addition, the transmission acceleration module in the SOC may also be provided with two heartbeat modules. One heartbeat module is the heartbeat of SPI, which periodically sends request messages to the MCU through SPI. After receiving the request message, the MCU replies ACK to the SOC through SPI. The SOC aggregation acceleration module judges the current SPI link quality based on the time difference between sending the request and receiving the ACK. If the time difference is T3, the corresponding link quality evaluation value can be QoS3=1 / T3; the other heartbeat module in the SOC is the heartbeat of SCI, which can periodically send request messages to the MCU through SCI. After receiving the request message, the MCU replies ACK to the SOC through SCI. The SOC aggregation acceleration module judges the current SCI link quality based on the time difference between sending the request and receiving the ACK. If the time difference is T4, the corresponding link quality evaluation value can be QoS4=1 / T4.

[0112] In other embodiments, the implementation method for determining the link quality evaluation value based on the interval duration may be: pre-configuring relationship data, which includes the correspondence between different link quality evaluation values ​​and different interval durations. The relationship data may be a correspondence table, a .doc file, or a functional relationship.

[0113] Through the above steps 1011 to 1013, a test request message can be sent to the second device for each communication link, and the second device is used to send reception feedback information to the first device in response to receiving the test request message; determine a first time for sending the test request message to the second device and a second time for receiving the reception feedback message sent by the second device; determine the link quality assessment value based on the first time and the second time, so that the link quality status of each communication link can be obtained in a timely and effective manner, and can provide a reliable data basis for the subsequent dynamic allocation of the transmission data volume.

[0114] Optionally, Figure 4 is based on Figure 1 The embodiment shown is a flowchart of another data transmission method, and the implementation method of determining the data transmission ratio of each communication link according to the link quality evaluation value of each communication link in the at least two communication links in the above step 102 can be as follows Figure 4 Shown, including:

[0115] Step 1021: Determine a target and a value of the link quality evaluation value of each of the at least two communication links.

[0116] Step 1022: For each communication link, determine the ratio of the link quality evaluation value of the communication link to the target sum value to obtain the data transmission ratio corresponding to the communication link.

[0117] For example, still Figure 3 The example shown is used as an example for explanation. When the first device is an MCU and the second device is an SOC, and there is one SCI link and one SPI link between the MCU and the SOC, when the MCU sends data to the SOC, the link quality evaluation value of the SPI link is QoS1, and the link quality evaluation value of the SCI link is QoS2. The target sum of the link quality evaluation values ​​of each communication link in the at least two communication links is QoS1+QoS2. The data transmission ratio corresponding to the SPI link is QoS1 / (QoS1+QoS2), and the data transmission ratio corresponding to the SCI link is QoS2 / (QoS1+QoS2).

[0118] Through the above steps 1021 to 1022, the data transmission ratio corresponding to each communication link can be effectively obtained, which can provide a reliable data basis for the subsequent dynamic allocation of transmission data volume.

[0119] Optionally, Figure 5 is based on Figure 1 The embodiment shown is a flowchart of another data transmission method. The implementation of transmitting the first target transmission data from the first device to the second device according to the data transmission ratio of each communication link in step 103 above may include:

[0120] Step 1031: split the first target transmission data according to the data transmission ratio of each communication link in the at least two communication links to obtain the target data segment corresponding to each communication link and the first sequence position information of each target data segment in the first target transmission data.

[0121] The first sequence position information is used to represent the position information of the target data segment in the first target transmission data. For example, a sequence number can be used to represent the order of the target data segment in the first target transmission data, or a designated character can be used to represent the position information such as the front, middle, or back in the first target transmission data. For example, the character Q can be used to represent the front, the character Z can be used to represent the middle, and the character H can be used to represent the back.

[0122] In some embodiments, the first target transmission data is a service data packet sent by an APP. The service data packet may be data with a frame structure. For example, the service data packet includes multiple frames of data. In the present disclosure, each frame of data in the service data packet may be split. For example, if the service data includes 100 bytes of data in the 01 frame data, the 01 frame data may be split into multiple data segments according to the data transmission ratio of each communication link. For example, in the case of two communication links, the data transmission ratio of the first communication link is 0.8 and the data transmission ratio of the second communication link is 0.2. The first 80 bytes of the 100 bytes in the 01 frame data may be used as the target data segment of the first communication link, and the last 20 bytes of the 100 bytes in the 01 frame data may be used as the target data segment of the second communication link. The first sequence position information corresponding to the first 80 bytes of the 100 bytes in the 01 frame data may be 01, and the first sequence position information corresponding to the last 20 bytes of the 100 bytes in the 01 frame data may be 11 in binary.

[0123] Step 1032: Generate a target data frame corresponding to each communication link according to the first sequence position information of each communication link and the target data segment.

[0124] This step can be implemented through the following steps S21 to S23, as follows:

[0125] S21: Obtain first identification information corresponding to the first target transmission data.

[0126] Among them, the first identification information can be the serial number of the data frame of the first target transmission data before splitting during the historical transmission. For example, when the first target transmission data is a business data packet sent by an APP, the data packet includes 3 frames of data, and the frame serial numbers corresponding to the three frames of data are decimal 1, 2, and 3 respectively. The first representation information can be one of the frame serial numbers; it can also be the storage path identifier of the first target transmission data before splitting, or it can be identification information including the data source and transmission time of the first target transmission data.

[0127] S22: For each target data segment, determine frame header information corresponding to the target data segment according to the first identification information and the first sequence position information.

[0128] The frame header information may include the first identification information field and the first sequence position information field, and may also include the length of the target data segment.

[0129] S23: Generate a target data frame corresponding to the target data segment according to the frame header information and the number of target data segments.

[0130] The target data frame may further include a check field, and the frame structure of the target data frame may be as follows:

[0131]

[0132] In the above frame structure, the SequenceNumber1 field can be understood as the first identification information field, the SequenceNumber2 field can be understood as the first sequence position information field, Length is the length field, Data is the data field, M+N bytes belong to the target data segment, CRC-16 is the check field, and the value of the check field is used to verify whether the target data segment of the data field is correct.

[0133] For example, if the first target transmission data before splitting is the first frame data sent by APP, that is, the first identification information of the first target transmission data is 01, the first frame data is split into two target data fragments, one target data fragment is M bytes, and the other target data fragment is N bytes. The data corresponding to the first sequence position information field of one target data fragment is 01, and the data corresponding to the first sequence position information field of the other target data fragment is binary 11. The frame structure of the two generated target data frames can be as follows:

[0134]

[0135] Frame 1

[0136]

[0137] Frame 2

[0138] Among them, frame 1 and frame 2 can be understood as two subframes corresponding to the total frame 01. The values ​​of the check fields in frame 1 and frame 2 can be the same as or different from the values ​​of the check fields in the total frame 01. The specific implementation method of generating the values ​​of the check fields in the frame structure in this disclosure can refer to the provisions in the relevant communication protocol, and this disclosure does not limit this.

[0139] Step 1033: Transmit the target data frame to the second device through a corresponding communication link among the at least two communication links.

[0140] The second device is used to splice the target data frames transmitted by each of the at least two communication links to obtain the first target transmission data.

[0141] It should be noted that when splicing the target data frames transmitted by each of the at least two communication links, the standby target data frames with the same value of the first identification information field in the multiple target data frames can be first determined, and then the splicing position of the target data fragment in each target data frame can be determined according to the value of the first sequence position information field in the standby target data frame, and the target data fragment in each target data frame can be placed at the corresponding splicing position to obtain the first target transmission data.

[0142] For example, still taking the example described in the above S23 as an example, the frame 1 can be transmitted from the first device to the second device through the first communication link, and the frame 2 can be transmitted from the first device to the second device through the second communication link. After the second device obtains the frame 1 and the frame 2, it parses and obtains the value of the first identification information field and the value of the first sequence position information field in the frame 1 and the frame 2. Since the value of the first identification information field is 01, it can be determined that the frame 1 and the frame 2 are subframes of the total frame 01. Then, according to the value of the first sequence position information field in the frame 1 and the frame 2, it can be determined that the target data segment in the frame 1 is arranged before the target data segment in the frame 2. Therefore, after the target data segment in the frame 1 is arranged before the target data segment in the frame 2, the first target transmission data can be obtained, that is, the data in the data frame before splitting.

[0143] The above technical solution can effectively realize the transmission of the first target transmission data from the first device to the second device according to the data transmission ratio of each communication link, so as to dynamically allocate the transmission data on each communication link according to the link quality evaluation value of each communication link, thereby maximizing the utilization of existing bandwidth resources and effectively improving the reliability of data transmission.

[0144] Optionally, Figure 6 is based on Figure 1 The embodiment shown is a flowchart of another data transmission method, as shown in FIG. Figure 6 As shown, the method further includes:

[0145] Step 104: Receive a plurality of standby data frames sent by the second device through the at least two communication links.

[0146] The standby data frame includes the second identification information of the data before splitting, the second sequence position information of the data after splitting, and the data fragments.

[0147] Step 105: splice the data fragments in the multiple standby data frames according to the second identification information and the second sequence position information of each of the multiple standby data frames to obtain second target transmission data sent by the second device to the first device.

[0148] In this step, multiple standby data fragments corresponding to the second identification information can be first determined from the multiple standby data frames; the multiple standby data fragments corresponding to the second identification information can be spliced ​​according to the second sequence position information corresponding to each standby data fragment to obtain the second target transmission data.

[0149] For example, still taking the frame 1 and frame 2 shown in the above S23 as an example for explanation, if the frame 1 is a standby data frame sent by the second device and received by the first device through the first communication link, and the frame 2 is another standby data frame sent by the second device and received by the first device through the second communication link, after the first device obtains the frame 1 and the frame 2, it parses and obtains the value of the first identification information field and the value of the first sequence position information field in the frame 1 and the frame 2. Since the value of the first identification information field is both 01, it can be determined that the frame 1 and the frame 2 are subframes of the total frame 01. Then, according to the value of the first sequence position information field in the frame 1 and the frame 2, it can be determined that the target data segment in the frame 1 is arranged before the target data segment in the frame 2. Therefore, after the target data segment in the frame 1 is arranged before the target data segment in the frame 2, the second target transmission data, that is, the data in the data frame before splitting, can be obtained.

[0150] The above technical solution can effectively splice multiple standby data frames sent by the second device through the at least two communication links, thereby obtaining complete data before splitting, and further achieving the effect of complete data transmission.

[0151] Figure 7 is a flow chart of a data transmission method shown in another exemplary embodiment of the present disclosure; Figure 7 The data transmission method is applied to a second device, where the second device is connected to the first device via at least two communication links, and the method includes:

[0152] Step 701: Receive multiple target data frames sent by the first device through the at least two communication links, each of the target data frames includes a target data segment in the first target transmission data, and the data amount of the target data segment is related to the link quality evaluation value of the communication link that transmits the target data frame in the at least two communication links.

[0153] Step 702: Generate the first target transmission data sent by the first device according to the multiple target data frames.

[0154] The target data frame includes first identification information of the first target transmission data before being split, and first sequence position information of target data segments in the target data frame in the first target transmission data.

[0155] In this step, the data segments in the multiple target data frames may be spliced ​​according to the first identification information and the first sequence position information of each of the multiple target data frames to obtain the first target transmission data.

[0156] It should be noted that the specific implementation process of step 701 to step 702 can refer to the relevant description in the above step 1033, and this disclosure will not go into details here.

[0157] The technical solution described in steps 701 to 702 above enables the second device to effectively splice multiple target data frames sent by the first device through the at least two communication links, thereby obtaining complete data before splitting, and further realizing data transmission from the first device to the second device.

[0158] Figure 8 is a block diagram of a data transmission device shown in an exemplary embodiment of the present disclosure, such as Figure 8 As shown, the data transmission apparatus is applied to a first device, the first device is connected to a second device via at least two communication links, wherein the at least two communication links include a physical communication link, and the apparatus includes:

[0159] an acquisition module 801 configured to acquire first target transmission data to be sent to a second device and a link quality evaluation value of each of the at least two communication links, wherein the link quality evaluation value is used to represent the reliability of the communication link;

[0160] A determination module 802 is configured to determine a data transmission ratio of each communication link according to a link quality evaluation value of each communication link in the at least two communication links;

[0161] The first transmission module 803 is configured to transmit the first target transmission data from the first device to the second device according to the data transmission ratio of each of the communication links.

[0162] The above technical solution can dynamically allocate the transmission data on each communication link according to the link quality evaluation value of each communication link, thereby maximizing the utilization of existing bandwidth resources and effectively improving the reliability of data transmission.

[0163] Optionally, the acquisition module 801 is configured to:

[0164] For each communication link, send test request information to the second device, and the second device is configured to send reception feedback information to the first device in response to receiving the test request information;

[0165] Determining a first time for sending the test request information to the second device, and a second time for receiving the reception feedback information sent by the second device;

[0166] The link quality evaluation value is determined according to the first time and the second time.

[0167] Optionally, the acquisition module 801 is configured to:

[0168] Determining a duration between the first time and the second time;

[0169] The link quality evaluation value is determined according to the interval duration, and the link quality evaluation value is negatively correlated with the interval duration.

[0170] Optionally, the acquisition module 801 is configured to:

[0171] Determining a reciprocal value of the interval duration of the communication link;

[0172] The reciprocal value of the interval duration is used as the link quality evaluation value of the communication link.

[0173] Optionally, the determining module 801 is configured to:

[0174] determining a target and a value of the link quality assessment value for each of the at least two communication links;

[0175] For each communication link, a ratio of the link quality evaluation value of the communication link to the target sum value is determined to obtain the data transmission ratio corresponding to the communication link.

[0176] Optionally, the first transmission module 803 is configured to:

[0177] Splitting the first target transmission data according to the data transmission ratio of each communication link in the at least two communication links to obtain target data segments corresponding to each communication link and first sequence position information of each target data segment in the first target transmission data;

[0178] generating a target data frame corresponding to each communication link according to the first sequence position information of the communication link and the target data segment;

[0179] The target data frame is transmitted to the second device through the corresponding communication link of the at least two communication links, and the second device is used to splice the target data frame transmitted by each of the at least two communication links to obtain the first target transmission data.

[0180] Optionally, the first transmission module 803 is configured to:

[0181] Obtaining first identification information corresponding to the first target transmission data;

[0182] For each target data segment, determining frame header information corresponding to the target data segment according to the first identification information and the first sequence position information;

[0183] A target data frame corresponding to the target data segment is generated according to the frame header information and the number of target data segments.

[0184] Optionally, the device further comprises:

[0185] The second transmission module 804 is configured to receive a plurality of standby data frames sent by the second device through the at least two communication links, the standby data frames including second identification information of the data before splitting, second sequence position information of the data after splitting, and data segments;

[0186] The merging module 805 is configured to splice the data fragments in the multiple standby data frames according to the second identification information and the second sequence position information of each of the multiple standby data frames to obtain the second target transmission data sent by the second device to the first device.

[0187] Optionally, the merging module 805 is configured to:

[0188] Determining a plurality of standby data segments corresponding to the second identification information from the plurality of standby data frames;

[0189] The multiple standby data segments corresponding to the second identification information are spliced ​​according to the second sequence position information corresponding to each standby data segment to obtain the second target transmission data.

[0190] The above technical solution can effectively splice multiple standby data frames sent by the second device through the at least two communication links, thereby obtaining complete data before splitting, and further achieving the effect of complete data transmission.

[0191] Regarding the apparatus in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.

[0192] The present disclosure also provides a computer-readable storage medium having computer program instructions stored thereon, which implement the steps of the data transmission method provided by the present disclosure when the program instructions are executed by a processor.

[0193] Figure 9is a block diagram of a vehicle according to an exemplary embodiment. For example, vehicle 900 may be a hybrid vehicle, a non-hybrid vehicle, an electric vehicle, a fuel cell vehicle, or another type of vehicle. Vehicle 900 may be an autonomous vehicle, a semi-autonomous vehicle, or a non-autonomous vehicle.

[0194] Reference Figure 9 Vehicle 900 may include various subsystems, such as an infotainment system 910, a perception system 920, a decision-making and control system 930, a drive system 940, and a computing platform 950. Vehicle 900 may also include more or fewer subsystems, and each subsystem may include at least two components. Furthermore, each subsystem and each component of vehicle 900 may be interconnected via wired or wireless means.

[0195] In some embodiments, the infotainment system 910 may include a communication system, an entertainment system, a navigation system, and the like.

[0196] The perception system 920 may include several sensors for sensing information about the environment surrounding the vehicle 900. For example, the perception system 920 may include a global positioning system (which may be a GPS system, a BeiDou system, or another positioning system), an inertial measurement unit (IMU), a laser radar, a millimeter-wave radar, an ultrasonic radar, and a camera.

[0197] The decision control system 930 may include a computing system, a vehicle controller, a steering system, a throttle, and a braking system.

[0198] The drive system 940 may include components that provide power to the vehicle 900. In one embodiment, the drive system 940 may include an engine, a power source, a transmission system, and wheels. The engine may be an internal combustion engine, an electric motor, an air compression engine, or a combination thereof. The engine is capable of converting energy provided by the power source into mechanical energy.

[0199] Some or all functions of the vehicle 900 are controlled by a computing platform 950. The computing platform 950 may include at least one processor 951 and a memory 952. The processor 951 may execute instructions 953 stored in the memory 952.

[0200] The processor 951 can be any conventional processor, such as a commercially available CPU. The processor can also include a graphics processor (GPU), a field programmable gate array (FPGA), a system on chip (SOC), an application specific integrated circuit (ASIC), or a combination thereof.

[0201] The memory 952 can be implemented by any type of volatile or non-volatile memory device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.

[0202] In addition to instructions 953 , memory 952 may also store data, such as road maps, route information, and vehicle location, direction, speed, etc. The data stored in memory 952 may be used by computing platform 950 .

[0203] In the embodiment of the present disclosure, the processor 951 may execute the instruction 953 to complete all or part of the steps of the above-mentioned data transmission method.

[0204] Figure 10 1 is a block diagram of a data transmission device according to an exemplary embodiment. For example, the device 1000 may be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a game console, a tablet device, a medical device, a fitness device, a personal digital assistant, etc.

[0205] Reference Figure 10 The device 1000 may include one or at least two of the following components: a processing component 1002 , a memory 1004 , a power component 1006 , a multimedia component 1008 , an audio component 1010 , an input / output interface 1012 , a sensor component 1014 , and a communication component 1016 .

[0206] The processing component 1002 generally controls the overall operation of the device 1000, such as operations associated with display, phone calls, data communications, camera operation, and recording operations. The processing component 1002 may include one or at least two processors 1020 to execute instructions to perform all or part of the steps of the above-described data transmission method. In addition, the processing component 1002 may include one or at least two modules to facilitate interaction between the processing component 1002 and other components. For example, the processing component 1002 may include a multimedia module to facilitate interaction between the multimedia component 1008 and the processing component 1002.

[0207] The memory 1004 is configured to store various types of data to support the operation of the device 1000. Examples of such data include instructions for any application or method operating on the device 1000, contact data, phone book data, messages, pictures, videos, etc. The memory 1004 can be implemented by any type of volatile or non-volatile storage device, or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk, or optical disk.

[0208] The power supply component 1006 provides power to the various components of the device 1000. The power supply component 1006 may include a power management system, one or at least two power supplies, and other components associated with generating, managing, and distributing power to the device 1000.

[0209] The multimedia component 1008 includes a screen that provides an output interface between the device 1000 and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user. The touch panel includes one or at least two touch sensors to sense touch, slide, and gestures on the touch panel. The touch sensor can not only sense the boundaries of the touch or slide action, but also detect the duration and pressure associated with the touch or slide operation. In some embodiments, the multimedia component 1008 includes a front camera and / or a rear camera. When the device 1000 is in an operating mode, such as a shooting mode or a video mode, the front camera and / or the rear camera can receive external multimedia data. Each front camera and rear camera can be a fixed optical lens system or have a focal length and optical zoom capability.

[0210] The audio component 1010 is configured to output and / or input audio signals. For example, the audio component 1010 includes a microphone (MIC) that is configured to receive external audio signals when the device 1000 is in an operating mode, such as a call mode, a recording mode, and a voice recognition mode. The received audio signal can be further stored in the memory 1004 or transmitted via the communication component 1016. In some embodiments, the audio component 1010 also includes a speaker for outputting audio signals.

[0211] The input / output interface 1012 provides an interface between the processing component 1002 and peripheral interface modules, such as a keyboard, a click wheel, buttons, etc. These buttons may include but are not limited to: a home button, a volume button, a start button, and a lock button.

[0212] Sensor assembly 1014 includes one or at least two sensors for providing various aspects of the status assessment of device 1000. For example, sensor assembly 1014 can detect the open / closed state of device 1000, the relative positioning of components, such as the display and keypad of device 1000. Sensor assembly 1014 can also detect changes in the position of device 1000 or a component of device 1000, the presence or absence of user contact with device 1000, the orientation or acceleration / deceleration of device 1000, and changes in the temperature of device 1000. Sensor assembly 1014 can include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 1014 can also include an optical sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, sensor assembly 1014 can also include an accelerometer, a gyroscope, a magnetic sensor, a pressure sensor, or a temperature sensor.

[0213] The communication component 1016 is configured to facilitate wired or wireless communication between the device 1000 and other devices. The device 1000 can access a wireless network based on a communication standard, such as WiFi, 2G or 3G, or a combination thereof. In an exemplary embodiment, the communication component 1016 receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 1016 also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology and other technologies.

[0214] In an exemplary embodiment, the apparatus 1000 may be implemented by one or at least two application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the above-mentioned data transmission method.

[0215] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 1004 including instructions. The instructions can be executed by the processor 1020 of the apparatus 1000 to perform the above-mentioned data transmission method. For example, the non-transitory computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.

[0216] In another exemplary embodiment, a computer program product is further provided. The computer program product includes a computer program executable by a programmable device, and has a code portion for executing the above-mentioned data transmission method when executed by the programmable device.

[0217] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art not disclosed herein. The description and examples are to be considered as exemplary only, with the true scope and spirit of the present disclosure being indicated by the appended claims.

[0218] It should be understood that the present disclosure is not limited to the exact structures that have been described above and shown in the drawings, and that various modifications and changes can be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims

1. A data transmission method, characterized in that: The method is performed by a first device, where the first device is connected to a second device via at least two communication links, where the at least two communication links include a physical communication link. The method includes: Acquire first target transmission data to be sent to the second device and a link quality evaluation value of each communication link of the at least two communication links, wherein the link quality evaluation value is used to represent the reliability of the communication link; Determining a data transmission ratio of each communication link according to a link quality evaluation value of each communication link in the at least two communication links; The first target transmission data is transmitted from the first device to the second device according to the data transmission ratio of each of the communication links.

2. The data transmission method according to claim 1, wherein: Obtaining a link quality assessment value of each of the at least two communication links includes: For each communication link, send test request information to the second device, and the second device is configured to send reception feedback information to the first device in response to receiving the test request information; Determining a first time for sending the test request information to the second device, and a second time for receiving the reception feedback information sent by the second device; The link quality evaluation value is determined according to the first time and the second time.

3. The data transmission method according to claim 2, wherein: Determining the link quality evaluation value according to the first time and the second time includes: Determining a duration between the first time and the second time; The link quality evaluation value is determined according to the interval duration, and the link quality evaluation value is negatively correlated with the interval duration.

4. The data transmission method according to claim 3, wherein: Determining the link quality evaluation value according to the interval duration includes: Determining a reciprocal value of the interval duration of the communication link; The reciprocal value of the interval duration is used as the link quality evaluation value of the communication link.

5. The data transmission method according to claim 1, wherein: The determining the data transmission ratio of each communication link according to the link quality evaluation value of each communication link in the at least two communication links includes: determining a target and a value of the link quality assessment value for each of the at least two communication links; For each communication link, a ratio of the link quality evaluation value of the communication link to the target sum value is determined to obtain the data transmission ratio corresponding to the communication link.

6. The data transmission method according to claim 1, wherein: The transmitting the first target transmission data from the first device to the second device according to the data transmission ratio of each of the communication links includes: Splitting the first target transmission data according to the data transmission ratio of each communication link in the at least two communication links to obtain target data segments corresponding to each communication link and first sequence position information of each target data segment in the first target transmission data; generating a target data frame corresponding to each communication link according to the first sequence position information of the communication link and the target data segment; The target data frame is transmitted to the second device through the corresponding communication link of the at least two communication links, and the second device is used to splice the target data frame transmitted by each of the at least two communication links to obtain the first target transmission data.

7. The data transmission method according to claim 6, characterized in that: Generating a target data frame corresponding to each communication link according to the first sequence position information of each communication link and the target data segment includes: Obtaining first identification information corresponding to the first target transmission data; For each target data segment, determining frame header information corresponding to the target data segment according to the first identification information and the first sequence position information; A target data frame corresponding to the target data segment is generated according to the frame header information and the number of target data segments.

8. The data transmission method according to claim 1, wherein: The method further comprises: receiving a plurality of standby data frames sent by the second device through the at least two communication links, the standby data frames including second identification information of data before splitting, second sequence position information of data after splitting, and data segments; The data segments in the multiple standby data frames are spliced ​​according to the second identification information and the second sequence position information of each of the multiple standby data frames to obtain second target transmission data sent by the second device to the first device.

9. The data transmission method according to claim 8, characterized in that: The step of splicing the data fragments in the plurality of standby data frames according to the second identification information and the second sequence position information of each of the plurality of standby data frames to obtain second target transmission data sent by the second device to the first device includes: Determining a plurality of standby data segments corresponding to the second identification information from the plurality of standby data frames; The multiple standby data segments corresponding to the second identification information are spliced ​​according to the second sequence position information corresponding to each standby data segment to obtain the second target transmission data.

10. A data transmission device, characterized in that: Applied to a first device, the first device is connected to a second device via at least two communication links, wherein the at least two communication links include a physical communication link, the apparatus includes: an acquisition module configured to acquire first target transmission data to be sent to the second device and a link quality evaluation value of each of the at least two communication links, wherein the link quality evaluation value is used to represent the reliability of the communication link; a determination module configured to determine a data transmission ratio of each communication link according to a link quality evaluation value of each communication link in the at least two communication links; The first transmission module is configured to transmit the first target transmission data from the first device to the second device according to the data transmission ratio of each of the communication links.

11. An electronic device, characterized in that: include: processor; a memory for storing processor-executable instructions; The processor is configured to implement the steps of the method according to any one of claims 1 to 9.

12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 9 are implemented.

13. A computer program product, characterized in that The invention comprises a computer program, which implements the steps of the method according to any one of claims 1 to 9 when the computer program is executed by a processor.