Data transmission method, communication device and storage medium

By introducing error correction and error detection mechanisms in data transmission, code blocks containing redundant codes are generated, and these redundant codes are used on the receiving end for error correction and error detection, the data transmission problem of high reliability and low latency in the field of on-board communications is solved, and efficient and reliable data transmission is achieved.

CN120050006APending Publication Date: 2025-05-27YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510227879.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2020-09-18
Publication Date
2025-05-27

AI Technical Summary

Technical Problem

In the field of in-vehicle communication, the prior art is difficult to meet the data transmission requirements of high reliability and low latency at the same time, especially in data transmission between high-precision cameras, lidars and multi-domain controllers. The bit error rate requirements are high, resulting in increased transmission delay and overhead.

Method used

By correcting and detecting errors to be transmitted data, a first code block and a second code block containing the first redundant code and the second redundant code are generated. The receiver uses these redundant codes to correct and detect errors, determine the part of the transmission error and request retransmission, which improves the retransmission efficiency.

Benefits of technology

It realizes high reliability and low latency data transmission, meets the high accuracy and low latency requirements for data transmission in the field of on-board communications, and improves the efficiency and reliability of transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120050006A_ABST
    Figure CN120050006A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method, a communication device and a storage medium. The method comprises the steps that a first code block is generated, the first code block comprises a first load and a first redundant code, the first load comprises N second code blocks, the first redundant code is used for conducting error correction on the first load, the ith second code block comprises a second load and a second redundant code, and the ith second code block comprises a second load and a second redundant code; the second redundancy code is used for performing error detection on a second load in the ith second code block, the value of i is an integer from 1 to N, and N is an integer greater than or equal to 1; and sending the first code block to a receiving end. According to the embodiment of the invention, the reliability and efficiency of data transmission can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The application number of the original application is 202080105304.8, the original application date is September 18, 2020, and the entire content of the original application is incorporated herein by reference. Technical Field

[0002] This application relates to the field of communication technologies, and in particular, to a data transmission method, a communication device, and a storage medium. Background Art

[0003] With the development of technology, intelligent cars, especially self-driving cars, have become an important development direction in the global automotive industry. Various in-vehicle devices play a very important role in the intelligent driving, assisted driving, autonomous driving, communication, etc. of intelligent cars. Transmitting various data collected by perception or for communication at any time during the driving process of the car has an important role and significance for vehicle interconnection and vehicle-to-vehicle and vehicle-to-person communication, and at the same time effectively improves the safety and comfort of car driving. Specifically, an autonomous vehicle can detect information about the position of the car and surrounding things through devices such as acoustic radars, lidars, navigation systems, odometers, accelerometers, cameras, etc., and can interpret the detected information and identify the navigation path through a control system, and drive an actuator to complete autonomous driving.

[0004] Currently, in the communication field, a relatively high requirement is imposed on the bit error ratio (BER) of data. For example, in the field of vehicle-mounted communication, it is required that the BER reaches 10 -10 ~10 -12 magnitude. For the data transmission between some key sensors and controllers, such as the data transmission between a high-precision camera for autonomous driving, a lidar, and a multiple domain controller (MDC), the requirement for the BER may reach 10 -15 magnitude.

[0005] The industry usually uses various redundant coding mechanisms to improve the reliability of data transmission, but at the same time, problems of transmission delay and overhead are brought. How to balance reliability and transmission delay is an urgent problem to be solved. Summary of the Invention

[0006] Embodiments of this application provide a data transmission method, a communication device, and a storage medium. By performing error correction and error detection on data to be transmitted, the reliability of data transmission is improved and the transmission delay is reduced.

[0007] In a first aspect, an embodiment of the present application provides a data transmission method. The execution subject of this method can be a sending end or a chip applied in the sending end. Hereinafter, the description will be given taking the execution subject as the sending end as an example. Generate a first code block, where the first code block includes a first payload and a first redundant code. The first payload includes N second code blocks, and the first redundant code is used to correct errors in the first payload. The i-th second code block includes a second payload and a second redundant code, and the second redundant code is used to detect errors in the second payload of the i-th second code block. The value of i is an integer from 1 to N, and N is an integer greater than or equal to 1. Send the first code block to the receiving end.

[0008] It can be seen that the first code block contains a first redundant code for error correction, and each second code block contains a second code block for error detection. After receiving the first code block, the receiving end first uses the first redundant code to correct errors in the first payload, reducing the number of error bits in the first payload. Then, the second redundant code of each second code block is used to detect errors in each second code block, so as to determine which of the N second code blocks have error bits, that is, have not been successfully received. In this way, the receiving end can let the sending end retransmit these second code blocks without retransmitting the entire first code block, improving the retransmission efficiency and meeting the high-reliability and low-latency requirements for data transmission.

[0009] It should be understood that if the sending end and the receiving end are devices in a vehicle-mounted system, through the above data transmission method, the reliability of data transmission in the vehicle-mounted communication field is improved, the transmission latency is reduced, and the requirements for data transmission in the vehicle-mounted field are met.

[0010] In some possible implementation manners, the method further includes: receiving a first acknowledgment message from the receiving end, where the first acknowledgment message indicates the reception status of at least one of the N second code blocks.

[0011] It should be understood that the first acknowledgment message can indicate the second code blocks that have not been successfully received among the N second code blocks, and the sending end can retransmit these second code blocks that have not been successfully received according to the first acknowledgment message, realizing the retransmission of part of the payload in the first code block and improving the retransmission efficiency.

[0012] In some possible implementation manners, the first redundant code is obtained by performing Reed-Solomon forward error correction (RS-FEC) encoding on the first payload, and the second redundant code is obtained by performing cyclic redundancy check (CRC) encoding on the second payload of the i-th second code block.

[0013] In some possible implementation manners, the second payload in the i-th second code block includes indication information and data to be transmitted, and the indication information is used to indicate the identifier of the i-th second code block.

[0014] It can be seen that the identifier of the second code block is indicated by the indication information in the second code block, so that the receiving end can determine which second code blocks are not successfully received, and then send the first acknowledgment information to the sending end to trigger the sending end to retransmit these second code blocks, successfully realizing the retransmission of part of the payload in the first code block.

[0015] In some possible implementation manners, the indication information of the i-th second code block is further used to indicate the code block type of the i-th second code block, and the code block type includes supporting retransmission or not supporting retransmission.

[0016] It can be seen that the code block type of each second code block is indicated by the indication information of each second code block. In this way, when the receiving end fails to successfully receive a certain second code block and identifies that the code block type of this second code block does not support retransmission, the receiving end does not need to wait for the retransmission of this second code block and can process the second code blocks that are successfully received later in a timely manner, reducing the processing delay. On the other hand, the receiving end does not need to feedback the reception status of this second code block to the sending end and defaults to successful reception, thereby reducing the feedback overhead of the first acknowledgment information.

[0017] In some possible implementation manners, if the value of the indication information is the first preset value, the code block type of the i-th second code block does not support retransmission; if the value of the indication information is not the first preset value, the code block type of the i-th second code block supports retransmission.

[0018] In some possible implementation manners, the indication information in the i-th second code block is further used to indicate the code block type of at least one second code block before the i-th second code block, and the code block type includes supporting retransmission or not supporting retransmission.

[0019] It can be seen that the code block type of at least one second code block before the i-th second code block is indicated by the indication information of the i-th code block. In this way, when the receiving end successfully receives the i-th second code block, it can determine the code block type of the second code blocks before the i-th second code block. If it is determined that the code block type of a certain second code block before the i-th second code block does not support retransmission and this second code block is not successfully received, the receiving end does not need to wait for the retransmission of this second code block and can process the second code blocks that are successfully received later in a timely manner, reducing the processing delay. On the other hand, at this time, the receiving end does not need to feedback the reception status of this second code block to the sending end and defaults to successful reception, thereby reducing the feedback overhead of the first acknowledgment information.

[0020] In some possible implementation manners, the indication information in the i-th second code block is further used to indicate that the data to be transmitted in the i-th second code block is padding bits.

[0021] If there is a wired transmission between the sending end and the receiving end, it can be seen that the way of carrying padding bits in the first code block can ensure that the transmission rate is always a fixed value, thereby ensuring the stability of data transmission. In addition, the indication information in the i-th second code block is also used to indicate that the data to be transmitted in the i-th second code block is padding bits, so that the receiving end can determine that the i-th second code block is invalid data and can directly discard the second code block, reducing the processing complexity.

[0022] In some possible implementation manners, the data to be transmitted includes at least one data segment to be transmitted, where the length of each data segment to be transmitted in the at least one data segment to be transmitted is an integer multiple of the sum of the length of the indication information and the length of the second redundant code.

[0023] It can be seen that setting the length of each data segment to be transmitted in the second code block as an integer multiple of the sum of the length of the indication information and the length of the second redundant code. In this way, when the channel quality is good, for example, when there is no need to perform error detection on the second code block and the RS-FEC encoded data transmission can be directly used, the data to be transmitted can be placed at the positions corresponding to the indication information and the second redundant code, further improving the data transmission efficiency.

[0024] In some possible implementation manners, receiving the first acknowledgment information from the receiving end includes: receiving a third code block from the receiving end, where the third code block includes the first acknowledgment information and a third redundant code, and the third redundant code is used to correct errors in the first acknowledgment information.

[0025] It can be seen that during the process of the receiving end feeding back the first acknowledgment information, the first acknowledgment information and the data to be transmitted at the receiving end can be encoded together to form a third code block. In this way, the sending end can use the third redundant code in the third code block to correct errors in the first acknowledgment information, thereby ensuring the stability of the transmission of the first acknowledgment message. Since the third redundant code can be used to correct errors in the first acknowledgment information, there is no need to separately perform error detection on the first acknowledgment information, thereby reducing the feedback overhead of the first acknowledgment information.

[0026] In some possible implementation manners, receiving the first acknowledgment information from the receiving end includes: receiving the first acknowledgment information from the receiving end.

[0027] It can be seen that during the process of the receiving end feeding back the first acknowledgment message, the first acknowledgment information can be fed back separately, without encoding the first acknowledgment information and the data to be transmitted at the receiving end together to form a third code block and then feeding it back. Thereby, the flexibility of feeding back the first acknowledgment information is improved; and the sending end can receive and decode the first acknowledgment message earlier, and more quickly determine which second code blocks need to be retransmitted, further improving the retransmission efficiency.

[0028] In some possible embodiments, the method further includes: according to the first confirmation information, retransmitting at least one of the second code blocks that have not been successfully received among the N second code blocks to the receiving end.

[0029] It can be seen that in the case where the first code block is transmitted incorrectly, the sending end only needs to retransmit at least one of the second code blocks that have not been successfully received to the receiving end, instead of retransmitting the entire first code block, thus improving the retransmission efficiency.

[0030] In some possible embodiments, the method further includes: according to the first confirmation information, retransmitting at least one of the second code blocks that support retransmission and have not been successfully received among the N second code blocks to the receiving end.

[0031] It can be seen that in the case where the first code block is transmitted incorrectly, the sending end only needs to retransmit at least one of the second code blocks that support retransmission and have not been successfully received to the receiving end, instead of retransmitting the entire first code block and some second code blocks that do not support retransmission, further improving the retransmission efficiency.

[0032] In a second aspect, an embodiment of the present application provides a data transmission method, which is applied to a receiving end. The method includes: receiving a first code block from a sending end, where the first code block includes a first payload and a first redundant code, the first payload includes N second code blocks, the i-th second code block includes a second payload and a second redundant code, the value of i ranges from 1 to N, and N is an integer greater than or equal to 1; using the first redundant code to correct errors in the first payload, and using the second redundant code to detect errors in the second payload in the i-th second code block.

[0033] It can be seen that after receiving the first code block, the receiving end can first use the first redundant code to correct errors in the first payload, reducing the bits transmitted incorrectly in the first payload. Then, use the second redundant code of each second code block to detect errors in each second code block, so as to determine which of the N second code blocks have not been successfully received. In this way, the sending end can be allowed to retransmit these second code blocks, instead of retransmitting the entire first code block, improving the retransmission efficiency and meeting the requirements of high reliability and low latency for data transmission.

[0034] It should be understood that if the sending end and the receiving end are devices in a vehicle-mounted system, through the above data transmission method, the reliability of data transmission in the vehicle-mounted communication field is improved, the transmission latency is reduced, and the requirements for data transmission in the vehicle-mounted field are met.

[0035] In some possible embodiments, the method further includes: sending first confirmation information to the sending end, where the first confirmation information indicates the reception status of at least one of the N second code blocks.

[0036] It should be understood that the receiving end can indicate the second code blocks that have not been successfully received among the N second code blocks through the first acknowledgment information, so that the sending end can retransmit these second code blocks that have not been successfully received according to the first acknowledgment information, realizing the retransmission of part of the payload in the first code block and improving the retransmission efficiency.

[0037] In some possible implementation manners, the first redundant code is obtained by performing Reed - Solomon forward error correction (RS - FEC) encoding on the first payload, and the second redundant code is obtained by performing cyclic redundancy check (CRC) encoding on the second payload of the i-th second code block.

[0038] In some possible implementation manners, the second payload in the i-th second code block includes indication information and data to be transmitted, and the indication information is used to indicate the identifier of the i-th second code block.

[0039] It can be seen that since the second indication information of each second code block indicates the identifier of the second code block, in the case where some second code blocks are not received successfully, the receiving end determines which second code blocks have not been successfully received, and then sends the first acknowledgment information to the sending end to trigger the sending end to retransmit these second code blocks, successfully realizing the retransmission of part of the payload in the first code block.

[0040] In some possible implementation manners, the indication information of the i-th second code block is further used to indicate the code block type of the i-th second code block, and the code block type includes supporting retransmission or not supporting retransmission.

[0041] It can be seen that by indicating the code block type of each code block through the indication information of each second code block, when the receiving end fails to receive a certain second code block and identifies that the code block type of this second code block does not support retransmission, it can process the second code blocks that are successfully received later in a timely manner, reducing the processing delay. On the other hand, it is not necessary to feedback the reception status of this second code block to the sending end, and it is defaulted to be received successfully, thereby reducing the feedback overhead of the first acknowledgment information.

[0042] In some possible implementation manners, if the value of the indication information is the first preset value, the code block type of the i-th second code block does not support retransmission; if the value of the indication information is not the first preset value, the code block type of the i-th second code block supports retransmission.

[0043] In some possible implementation manners, the indication information in the i-th second code block is further used to indicate the code block types of at least one second code block before the i-th second code block, and the code block types include supporting retransmission or not supporting retransmission.

[0044] It can be seen that the indication information of the i-th code block indicates the code block types of at least one second code block before the i-th second code block. When the receiving end successfully receives the i-th second code block, it can determine the code block types of the second code blocks before the i-th second code block. If it is determined that the code block type of a certain second code block before the i-th second code block does not support retransmission and this second code block is not successfully received, the receiving end does not need to wait for the retransmission of this second code block and can process the subsequently successfully received second code blocks in a timely manner, reducing the processing delay. On the other hand, it is not necessary to feedback the reception status of this second code block to the sending end, and it is defaulted that the reception is successful, thereby reducing the feedback overhead of the first acknowledgment information.

[0045] In some possible implementation manners, the indication information in the i-th second code block is further used to indicate that the data to be transmitted in the i-th second code block is padding bits.

[0046] If the transmission between the sending end and the receiving end is through wired transmission, it can be seen that the manner of carrying padding bits in the first code block can ensure that the transmission rate is always a fixed value, thereby ensuring the stability of data transmission. In addition, the indication information in the i-th second code block is further used to indicate that the data to be transmitted in the i-th second code block is padding bits. The receiving end can determine that the i-th second code block is invalid data and can directly discard the second code block, reducing the processing complexity.

[0047] In some possible implementation manners, the data to be transmitted includes at least one data segment to be transmitted, where the length of each data segment to be transmitted in the at least one data segment to be transmitted is an integer multiple of the sum of the length of the indication information and the length of the second redundant code.

[0048] It can be seen that setting the length of each data segment to be transmitted in the second code block to be an integer multiple of the sum of the length of the indication information and the length of the second redundant code. In this way, when the channel quality is good, for example, when there is no need to perform error detection on the second code block and RS-FEC coding data transmission can be directly used, the data to be transmitted can be placed at the positions corresponding to the indication information and the second redundant code, further improving the data transmission efficiency.

[0049] In some possible implementation manners, sending the first acknowledgment information to the sending end includes:

[0050] Sending a third code block to the sending end, where the third code block includes the first acknowledgment information and a third redundant code, and the third redundant code is used to correct errors in the first acknowledgment information.

[0051] It can be seen that during the process of feedback the first acknowledgment information, the receiving end can encode the first acknowledgment information together with the data to be transmitted at the receiving end to form a third code block, so that the sending end can use the third redundant code in the third code block to correct the error of the first acknowledgment information, thus ensuring the stability of the transmission of the first acknowledgment message. Since the third redundant code can be used to correct the error of the first acknowledgment information, there is no need to separately detect the error of the first acknowledgment information, thereby reducing the feedback overhead of the first acknowledgment information.

[0052] In some possible implementation manners, sending the first acknowledgment information to the sending end includes: sending the first acknowledgment information to the sending end.

[0053] It can be seen that during the process of feedback the first acknowledgment message, the receiving end can separately feedback the first acknowledgment information without encoding the first acknowledgment information together with the data to be transmitted at the receiving end to form a third code block and then feedback, thereby improving the flexibility of feedback the first acknowledgment information; in this way, the sending end can receive and decode the first acknowledgment message earlier, and determine more quickly which second code blocks need to be retransmitted, further improving the retransmission efficiency.

[0054] In some possible implementation manners, the method further includes: receiving at least one of the second code blocks that are not successfully received among the N second code blocks retransmitted by the sending end.

[0055] It can be seen that in the case where the first code block is transmitted incorrectly, the receiving end only receives at least one of the second code blocks that are not successfully received and retransmitted by the sending end, and the sending end does not need to retransmit the entire first code block, improving the retransmission efficiency.

[0056] In some possible implementation manners, the method further includes: receiving at least one of the second code blocks that support retransmission and are not successfully received among the N second code blocks retransmitted by the sending end.

[0057] It can be seen that in the case where the first code block is transmitted incorrectly, the receiving end only receives at least one of the second code blocks that support retransmission and are not successfully received and retransmitted by the sending end, and the sending end does not need to retransmit the entire first code block and some second code blocks that do not support retransmission, further improving the retransmission efficiency.

[0058] In a third aspect, an embodiment of the present application provides a communication device. For the beneficial effects, reference may be made to the description in the first aspect, which will not be elaborated here. The communication device has the functions to implement the behaviors in the method examples of the above first aspect. The functions can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In a possible design, the communication device includes: a processing module, configured to generate a first code block, where the first code block includes a first payload and a first redundancy code, the first payload includes N second code blocks, the first redundancy code is used to correct errors in the first payload, the i-th second code block includes a second payload and a second redundancy code, the second redundancy code is used to detect errors in the second payload in the i-th second code block, the value of i ranges from 1 to N, and N is an integer greater than or equal to 1; a transceiver module, configured to send the first code block to a receiving end. These modules can execute the corresponding functions in the method examples of the above first aspect. For the specific details, reference may be made to the detailed description in the method examples, which will not be elaborated here.

[0059] In a fourth aspect, an embodiment of the present application provides a communication device. For the beneficial effects, reference may be made to the description in the first aspect, which will not be elaborated here. The communication device has the functions to implement the behaviors in the method examples of the above first aspect. The functions can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In a possible design, the communication device includes: a transceiver module, configured to receive a first code block from a sending end, where the first code block includes a first payload and a first redundancy code, the first payload includes N second code blocks, the i-th second code block includes a second payload and a second redundancy code, the value of i ranges from 1 to N, and N is an integer greater than or equal to 1; a processing module, configured to use the first redundancy code to correct errors in the first payload and use the second redundancy code to detect errors in the second payload in the i-th second code block.

[0060] In a fifth aspect, a communication device is provided. The communication device can be the sending end in the above method embodiment or a chip disposed in the sending end. The communication device includes a communication interface and a processor. Optionally, a memory is further included. The memory is used to store computer programs or instructions. The processor is coupled to the memory and the communication interface. When the processor executes the computer programs or instructions, the communication device is enabled to execute the method performed by the sending end in the above method embodiment.

[0061] Sixthly, a communication device is provided. The communication device can be the receiving end in the above method embodiments or a chip disposed in the receiving end. The communication device includes a communication interface and a processor. Optionally, a memory is further included. The memory is used to store computer programs or instructions. The processor is coupled to the memory and the communication interface. When the processor executes the computer programs or instructions, the communication device executes the methods performed by the receiving end in the above method embodiments.

[0062] Seventhly, a computer program product is provided. The computer program product includes computer program code. When the computer program code runs, the methods performed by the sending end in the above aspects are executed.

[0063] Eighthly, a computer program product is provided. The computer program product includes computer program code. When the computer program code runs, the methods performed by the receiving end in the above aspects are executed.

[0064] Ninthly, the present application provides a chip system. The chip system includes a processor for implementing the functions of the sending end in the methods of the above aspects. In a possible design, the chip system further includes a memory for storing program instructions and / or data. The chip system can be composed of chips or can include chips and other discrete devices.

[0065] Tenthly, the present application provides a chip system. The chip system includes a processor for implementing the functions of the receiving end in the methods of the above aspects. In a possible design, the chip system further includes a memory for storing program instructions and / or data. The chip system can be composed of chips or can include chips and other discrete devices.

[0066] Eleventhly, the present application provides a computer-readable storage medium. The computer-readable storage medium stores a computer program. When the computer program runs, the methods performed by the sending end in the above aspects are implemented.

[0067] Twelfthly, the present application provides a computer-readable storage medium. The computer-readable storage medium stores a computer program. When the computer program runs, the methods performed by the receiving end in the above aspects are implemented.

[0068] Thirteenthly, the present application provides a communication system, including the communication device in the fifth aspect and the communication device in the sixth aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0069] Figure 1 is a schematic diagram of the architecture of a communication system according to an embodiment of the present application;

[0070] Figure 2 Schematic flowchart of a data transmission method according to an embodiment of the present application;

[0071] Figure 3 Schematic diagram of a first code block according to an embodiment of the present application;

[0072] Figure 4 Schematic diagram of a second code block according to an embodiment of the present application;

[0073] Figure 5 Schematic diagram of data to be transmitted according to an embodiment of the present application;

[0074] Figure 6 Schematic flowchart of another data transmission method according to an embodiment of the present application;

[0075] Figure 7 Schematic diagram of sending a first confirmation message according to an embodiment of the present application;

[0076] Figure 8 Schematic diagram of another sending of a first confirmation message according to an embodiment of the present application;

[0077] Figure 9 Schematic diagram of sending a confirmation message according to an embodiment of the present application;

[0078] Figure 10 Schematic diagram of the structure of a communication device according to an embodiment of the present application;

[0079] Figure 11 Schematic diagram of the structure of another communication device according to an embodiment of the present application. Detailed implementation manners

[0080] The technical solutions in the embodiments of the present application can be applied to various communication systems. For example, vehicle-mounted systems, Long Term Evolution (LTE) mobile communication systems, 5th generation (5G) mobile communication systems, and so on.

[0081] It should be understood that in the case of applying the technical solutions of the present application to a vehicle-mounted system, the sending end and the receiving end in the embodiments of the present application can be the MDC, vehicle-mounted large screen, center control screen, and various sensors. Usually, the sending end and the receiving end communicate through cables. Among them, the sensor includes a positioning system (the positioning system can be a GPS system, or a Beidou system or other positioning systems), an inertial measurement unit (IMU), a radar (such as a lidar), a laser rangefinder, and a camera (such as a high-definition camera). The sensor can also include sensors of the internal system of the vehicle being monitored (such as an in-vehicle air quality monitor, a fuel gauge, an engine oil temperature gauge, etc.).

[0082] It should be understood that when the technical solution of this application is applied to a Long Term Evolution (LTE) mobile communication system or a 5th generation (5G) mobile communication system, the transmitter and receiver in the embodiments of this application can be one of a network device and a User Equipment (UE).

[0083] Among them, the UE may include a mobile phone (or a "cellular" phone), a wireless user device, a mobile user device, a device-to-device (D2D) user device, a vehicle-to-everything (V2X) user device, a machine-to-machine / machine-type communications (M2M / MTC) user device, an Internet of Things (IoT) user device, a subscriber unit, a subscriber station, a mobile station, a remote station, an access point (AP), a remote terminal, an access terminal, a user terminal, a user agent, or a user device, etc.

[0084] Among them, the network device may be an Access network (AN) device. The AN device may refer to a device in the access network that communicates with a wireless user device through one or more cells over the air interface. For example, a base station NodeB (such as an access point). For example, an evolved NodeB (NodeB or eNB or e-NodeB, evolutional Node B), or a new radio network device gNB. Furthermore, a road side unit (RSU). In addition, the AN device may also include a centralized unit (CU) and a distributed unit (DU) in a cloud radio access network (CloudRAN) system. The embodiments of this application do not limit the AN device.

[0085] To facilitate the understanding of this application, relevant technical knowledge involved in the embodiments of this application is first introduced herein.

[0086] To improve reliability during data transmission, one implementation provides two encoding methods: Reed Solomon Forward Error Correction (RS-FEC) encoding and Cyclic Redundancy Check (CRC) encoding.

[0087] Among them, a specific encoding method of RS-FEC can be represented by RS(N, K, U), where U represents the number of bits corresponding to one unit, K is the number of units of input data, and N is the number of units of output data after encoding. Taking RS(360, 326, 10) as an example, the input data is 3260 bits, with 10 bits as one unit, divided into 326 input data units. After the input data is encoded by RS-FEC, 360 units are output, that is, an RS code block of 3600 bits. The 360 units are composed of 326 input data units and 34 redundant units. Among them, the 326 input data units are the payload of the RS code block, that is, the valid data; the 34 redundant units are the redundant codes of the RS code block, that is, the invalid data. The 34 redundant units are obtained by performing Galois field operations on the 326 input data units and are used to correct errors in the 326 input data units.

[0088] The following uses an example to illustrate the implementation method of the 34 redundant units for error correction encoded by RS-FEC.

[0089] Exemplarily, the data to be transmitted can be represented by formula (1):

[0090] m(x) = m 325 *x 359 +m 324 *x 358 +…+m 1 *x 35 +m 0 *x 34 (Formula 1);

[0091] Among them, the coefficients m 0 ~m 325 represent the 326-bit data to be transmitted, and each coefficient corresponds to one 10-bit unit.

[0092] Then, a polynomial g(x) is constructed through a preset primitive polynomial. The transceiver agrees on the primitive polynomial. Assuming the primitive polynomial is x 10 +x 3 +1, 33 α is the primitive element of this primitive polynomial, then this polynomial g(x) can be represented by formula 2:

[0093] g(x) = ∏(x - α j ) = g 34 *x 34 + g 33 *x 33 + … + g 4 *x 4 + g 3 *x 3 + g 2 *x 2 + g 1 *x 1 + g 0 (Formula 2);

[0094] Finally, through the Galois field operation with j = 0, the remainder polynomial p(x) of m(x) / g(x) is determined, and this remainder polynomial p(x) can be expressed by Formula (3):

[0095] p(x) = p 33 *x 33 + p 32 *x 32 + … + p 2 *x 2 + p 1 *x 1 + p 0 (Formula 3);

[0096] Among them, the 34 coefficients p 0 ~ p 33 are used for error correction, and each coefficient corresponds to a 10-bit unit; 360 units m 325 、m 324 、…、m 0 、p 33 、p 32 、…、p 0 are arranged in sequence to form an RS code block, and the sender sends this RS code block to the receiver. The receiver uses these 34 redundant units to correct errors in 326 input data units and obtain the correct valid data.

[0097] Therefore, RS-FEC coding provides an error correction mechanism for the data transmission process. However, RS-FEC coding can only combat up to (N - K) / 2 * U consecutive bit errors. Once the number of consecutive error bits in the RS code block exceeds (N - K) / 2 * U, the receiver cannot restore the payload, and at this time, the sender needs to retransmit the entire RS code block. Since the number of bits contained in the entire RS code block is large, the entire retransmission process is relatively slow and occupies more bandwidth resources.

[0098] For CRC encoding, the transmitter and receiver pre - agree on a generating polynomial. Based on this generating polynomial and the input data, a CRC checksum is generated; the CRC checksum is added after the input data bits to obtain a CRC code block. The input data is the payload of the CRC code block, i.e., the valid data, and the CRC checksum is the redundant code of the CRC code block, which is invalid data. The receiver uses this CRC checksum to detect errors in the payload of the CRC code block. After the received payload undergoes the same CRC processing as at the transmitter end, a local CRC checksum is obtained. If the local CRC checksum is the same as the received CRC checksum, there are no error bits in the payload; otherwise, there are error bits in the payload.

[0099] CRC encoding provides an error - detection mechanism, but it cannot correct data. Once a transmission error occurs, the CRC code block has to be re - transmitted. During the entire process of data transmission, a large number of CRC code block re - transmissions result in a relatively large transmission delay.

[0100] The above - mentioned encoding method is difficult to simultaneously meet the requirements of high reliability and low latency for data transmission in the communication field. How to balance reliability and transmission latency is an urgent problem to be solved.

[0101] Refer to Figure 1 , Figure 1 which is a schematic diagram of the architecture of a communication system provided by an embodiment of the present application. The communication system includes a transmitter 10 and a receiver 20. It can be understood that the communication system may include one or more transmitters and may also include one or more receivers. Figure 1 Only 2 transmitters and one receiver are shown, but it does not limit the present application.

[0102] The method provided by an embodiment of the present application includes: The transmitter 10 generates a first code block. The first code block includes a first payload and a first redundant code. The first payload includes N second code blocks. The first redundant code is used to correct errors in the first payload. The i - th second code block includes a second payload and a second redundant code. The second redundant code of the i - th second code block is used to detect errors in the second payload of the i - th second code block. The value of i ranges from 1 to N (including 1 and N), and N is an integer greater than or equal to 1. That is, the i - th second code block can be any one of the N second code blocks, and the transmitter 10 sends the first code block to the receiver 20.

[0103] It should be understood that the receiver 20 can first use the first redundant code to correct errors in the first payload, improving the reliability of the first code block transmission. Then, it uses the second redundant code of each second code block to detect errors in each second code block. In the case of detecting an error in a certain second code block, it can instruct the transmitter 10 to re - transmit the second code block. In this way, in the case of a transmission error of the first code block, the transmitter 10 can only re - transmit the part of the data carried in the first code block, improving the re - transmission efficiency and reducing the transmission delay.

[0104] It should be understood that when the sending end 10 and the receiving end 20 are devices in a vehicle-mounted system, the technical solution of the present application can meet the requirements of high reliability and low latency for data transmission in the vehicle-mounted communication field.

[0105] Refer to Figure 2 , Figure 2 which is a schematic flowchart of a data transmission method provided by an embodiment of the present application. This embodiment includes the following steps:

[0106] 201: The sending end generates a first code block.

[0107] As Figure 3 shown, the first code block includes a first payload and a first redundant code. The first payload includes N second code blocks. The first redundant code is used to correct errors in the first payload. The i-th second code block includes a second payload and a second redundant code. The second redundant code of the i-th second code block is used to detect errors in the second payload of the i-th second code block. The value of i is an integer from 1 to N (including 1 and N), that is, the i-th second code block can be any one of the N second code blocks, and N is an integer greater than or equal to 1.

[0108] Exemplarily, the second redundant code in the i-th second code block can be a CRC check code. That is, the second payload in the i-th second code block is used as the valid data in the CRC encoding process, and the second payload of the i-th second code block is CRC encoded to obtain the i-th second code block, and the N second code blocks are encapsulated as the valid data (first payload) in the RS-FEC encoding process. Exemplarily, the first redundant code can be obtained by performing RS-FEC encoding on the first payload, that is, performing RS-FEC encoding on the N second code blocks to generate the first code block.

[0109] It should be understood that the above RS-FEC encoding and CRC encoding are only for illustrative purposes. In practical applications, other encoding methods can also be used to encode the first payload and the second payload to obtain the first redundant code and the second redundant code, such as using Low Density Parity Check (LPDC) and CRC encoding. The present application does not limit the encoding method.

[0110] Exemplarily, as Figure 4As shown, the second payload in the i-th second code block includes indication information and data to be transmitted. The indication information is used to indicate the identity of the i-th second code block, and the identity can uniquely correspond to a second code block within a certain time range. For example, if the value of the indication information is 0001, it indicates that the i-th second code block is the first second code block among the N second code blocks. After adding an identity to each second code block, the receiving end can feedback the reception status of each second code block in combination with the identity of each second code block. In this way, the sending end can retransmit the second code blocks that are not successfully received according to the reception status of each second code block, without retransmitting the entire first code block, improving the retransmission efficiency.

[0111] Exemplarily, the indication information of the i-th second code block is also used to indicate the code block type of the i-th second code block, where the code block type includes supporting retransmission or not supporting retransmission. For example, when the data to be transmitted in the second code block is image data, the second code block is a second code block that does not support retransmission; when the data to be transmitted in the second code block is a control message, the second code block is a second code block that supports retransmission.

[0112] Specifically, when the value of the indication information is the first preset value, the code block type of the i-th second code block is not supporting retransmission; when the indication information is not the first preset value, the code block type of the i-th second code block is supporting retransmission.

[0113] For example, the indication information includes 4 bits. When the value of the indication information is 0000, it indicates that the code block type of the second code block does not support retransmission; when the value of the indication information is not 0000, it indicates that the code block type of the second code block supports retransmission.

[0114] Furthermore, the values of the indication information of the second code blocks that support retransmission can be encoded in ascending order, and when the value of the indication information reaches the maximum value, it automatically rolls back to the minimum value to continue encoding, so that the receiving end can determine the code block type of the second code block through the continuity of the values of the indication information. When the second code blocks that support retransmission are transmitted for the first time, they are transmitted in ascending order of the values of the indication information.

[0115] For example, if the block types of the first, third, and fourth second code blocks all support retransmission, the values of the indication information for the first, third, and fourth second code blocks can be set to 0001, 0010, and 0011 respectively. If the block type of the second code block does not support retransmission, the value of the indication information for the second second code block can be set to 0000. In this way, when the receiving end successfully receives the first and third second code blocks and fails to receive the second second code block, since the values of the indication information for the first second code block and the third second code block are consecutive, it is determined that the second second code block that has not been successfully received is a second code block that does not support retransmission; when the receiving end successfully receives the first second code block, the second second code block, and the fourth code block and fails to receive the third second code block, since the identifiers of the second second code block and the fourth second code block are not consecutive, it can be determined that the third second code block that has not been successfully received supports retransmission and the value of the indication information is 0010.

[0116] Exemplarily, the indication information of the i-th second code block is further used to indicate the block types of at least one second code block before the i-th second code block, and the block types include supporting retransmission or not supporting retransmission.

[0117] Exemplarily, the block types of at least one second code block before the i-th second code block can be indicated by means of a bitmap.

[0118] For example, when the indication information of the i-th second code block is used to indicate the block types of 3 second code blocks before the i-th second code block, the block types of these 3 second code blocks can be indicated by 3 bits in the indication information. Moreover, when the bit value is 1, it indicates that the block type of the second code block corresponding to this bit supports retransmission, and when the bit value is 0, it indicates that the block type of the second code block corresponding to this bit supports retransmission. It should be noted that when the i-th second code block is the first second code block in the first code block of the first transmission, the values of these three bits can all be set to 0. It should be understood that 0 can also be used to represent supporting retransmission and 1 to represent not supporting retransmission.

[0119] It should be understood that in practical applications, the indication information of each second code block can also be used to indicate the code block type of the N second code blocks, or the code block type of the N second code blocks can be indicated by the indication information of one or more second code blocks selected from the N second code blocks. After successfully receiving such second code blocks, the receiving end can obtain the code block types of the N second code blocks, increasing the flexibility of indicating the code block type. It can be seen that the sending end indicates the code block type of the second code block through the indication information of the second code block, so that the receiving end can clarify the code block types of each second code block. In the case where some second code blocks fail to be transmitted and these second code blocks are second code blocks that do not support retransmission, it is not necessary to send an acknowledgment message indicating retransmission of these second code blocks to the sending end, reducing the feedback overhead of the acknowledgment message.

[0120] Exemplarily, the indication information of the i-th second code block is further used to indicate that the data to be transmitted in the i-th second code block is padding bits. For example, the value of 1 bit in the indication information is used to indicate whether the data to be transmitted in the second code block is all padding bits. If the value is 0, it indicates all padding bits, and if the value is 1, it indicates not all padding bits. It should be understood that the bit position used to indicate that the data to be transmitted is padding bits and the bit position used to indicate the code block type of the second code block can be different bit positions in the indication information.

[0121] It should be understood that for a second code block whose data to be transmitted is all padding bits, the code block type of this second code block does not support retransmission. For a second code block whose data to be transmitted is not all padding bits, the code block type of this second code block is determined by the type of the data to be transmitted in this second code block. For example, if the data to be transmitted in this second code block is a control message, the code block type of this second code block supports retransmission, and if the data to be transmitted in this second code block is image data, the code block type of this second code block does not support retransmission.

[0122] In a wired transmission system, the transmission rate can be ensured to be a fixed value by filling meaningless bits, thereby ensuring the stability of the transmission. If the receiving end recognizes that the data to be transmitted in the i-th second code block is all padding bits, the i-th second code block can be directly discarded to avoid subsequent processing and reduce the processing complexity.

[0123] Exemplarily, as Figure 5 shown, the data to be transmitted in the i-th second code block includes at least one data segment to be transmitted, where the length of each data segment to be transmitted in the at least one data segment to be transmitted is an integer multiple of the sum of the length of the indication information of the i-th second code block and the length of the second redundant code. Here, the length mentioned in this application can be understood as the number of bits.

[0124] For example, if each data segment to be transmitted is obtained by 64 / 66B encoding, the length of each data segment to be transmitted is 66 bits. Then, the sum of the length of the indication information and the length of the second redundancy code can be set to 6 bits, 11 bits, 22 bits, 33 bits, or 66 bits. For example, the length of the indication information can be set to 14 bits, and the length of the second redundancy code can be set to 8 bits.

[0125] It can be seen that setting the length of each data segment to be transmitted in the second code block as an integer multiple of the sum of the length of the indication information and the length of the second redundancy code. In this way, when the channel quality is good, for example, when there is no need to perform error detection on the second code block and RS-FEC encoded data transmission can be directly used, the data to be transmitted can be placed at the positions corresponding to the indication information and the second redundancy code, further improving the data transmission efficiency. For example, when 64 / 66B encoding is adopted and the length of the data segment to be transmitted is 3 times the sum of the length of the indication information and the length of the second redundancy code, every 3 second code blocks, compared with the method of placing the indication information and the second redundancy code in the second code block, one more data segment to be transmitted with a length of 66 bits can be transmitted, improving the data transmission efficiency.

[0126] 202: The sending end sends the first code block to the receiving end. Correspondingly, the receiving end receives the first code block.

[0127] It should be understood that the receiving end can first use the first redundancy code to correct the error of the first payload, improving the reliability of the first code block transmission, and then use the second redundancy code of each second code block to detect the error of the second payload of each second code block. In the case of detecting that a certain second code block is transmitted incorrectly, the sending end can be instructed to retransmit the second code block. In this way, in the case of the first code block being transmitted incorrectly, the sending end can retransmit the part of the data (the incorrectly transmitted second code block) carried in the first code block, improving the retransmission efficiency and reducing the transmission delay, meeting the requirements of high reliability and low latency for data transmission.

[0128] Refer to Figure 6 , Figure 6 which is a schematic flow chart of another data transmission method provided by the embodiment of the present application. The same content as that in the embodiment shown in Figure 2 is not described again here. This embodiment includes the following steps:

[0129] 601: The sending end generates the first code block.

[0130] 602: The sending end sends the first code block to the receiving end. Correspondingly, the receiving end receives the first code block.

[0131] 603: The receiving end sends the first acknowledgment information to the sending end. Correspondingly, the sending end receives the first acknowledgment information.

[0132] Wherein, the first acknowledgment information indicates the reception status of at least one of the N second code blocks, and the reception status of each second code block includes successful reception or unsuccessful reception.

[0133] Exemplarily, the reception status of at least one of the N second code blocks can be indicated by setting a bitmap in the first acknowledgment information. For example, the reception status of each second code block can be indicated by the bitmap. When the value in the bitmap is 1, it indicates that the reception status of the second code block corresponding to this value is successful reception, and when the value is 0, it indicates that the reception status of the second code block corresponding to this value is unsuccessful reception. It should be understood that if the code block type of a certain second code block does not support retransmission, even if the receiving end does not successfully receive this second code block during this transmission process, the value corresponding to this second code block in the bitmap can be set to 1, so that the sending end does not need to retransmit this second code block, avoiding ineffective retransmission and improving the retransmission efficiency.

[0134] Exemplarily, the reception status of at least one of the N second code blocks can also be indicated by carrying the identifier of the second code block in the first acknowledgment information. For example, the second code blocks that are not successfully received among the N second code blocks can be indicated by the first acknowledgment information, that is, only the identifiers of the second code blocks that are not successfully received can be carried in the first acknowledgment information. For the second code blocks without carrying indication information, it is defaulted that these second code blocks are successfully received. In this way, the sending end can determine which second code blocks are not successfully received through the identifiers of the second code blocks carried in the first acknowledgment information.

[0135] It can be seen that in the embodiment, the receiving end can first use the first redundant code to correct errors in the first payload, improving the reliability of the first code block transmission, and then use the second redundant code of each second code block to detect errors in the second payload of each second code block. In the case of detecting that a certain second code block has a transmission error, the first acknowledgment information can be fed back to the sending end to indicate these second code blocks with transmission errors. In this way, in the case of a transmission error of the first code block, the sending end can retransmit the part of the data carried in the first code block (i.e., the second code blocks with transmission errors) according to the acknowledgment information, improving the retransmission efficiency, reducing the transmission delay, and meeting the requirements of high reliability and low latency for data transmission.

[0136] It should be understood that if the code block type of a certain second code block does not support retransmission, even if it is not successfully received during this transmission process, the identifier of this second code block may not be carried in the first acknowledgment information.

[0137] Exemplarily, such as Figure 7As shown, the receiving end sends a third code block to the sending end. The third code block includes the first Acknowledge character (ACK) information and a third redundant code. That is, the first ACK is included in the third code block, and the first ACK is encoded together with data as part of the third payload of the third code block to obtain the third code block. The encoding method of the third code block is similar to that of the first code block above (specific parameters may be different), which will not be described again. Therefore, the third redundant code can be used to correct errors in the first ACK. Since the third redundant code is used to correct errors in the first ACK, the reliability of the first ACK during transmission is improved.

[0138] Exemplarily, when the first ACK is included in the third code block and the third redundant code in the third code block is used for error correction, the first ACK can be detected for errors or not detected for errors using an error detection method with fewer check codes. For example, the parity check method can be used to detect errors in the first ACK. Since fewer check codes are used in the process of detecting errors in the first ACK, the feedback overhead of the first ACK is reduced.

[0139] It should be understood that Figure 7 shows that the third payload of the third code block includes Figure 7 the fourth code block and the first acknowledgement information shown, and the way the receiving end generates the third code block can be similar to the way the sending end generates the first code block above, which will not be repeated. In addition, as Figure 7 shown, each fourth code block includes a fourth payload and a fourth redundant code. The fourth payload includes indication information and data to be transmitted. It should be understood that the way the receiving end generates the fourth code block can be similar to the way the sending end generates the second code block above, which will not be repeated.

[0140] Exemplarily, as Figure 8 shown, the receiving end sends the first ACK to the sending end, that is, the receiving end independently sends the first ACK to the sending end. That is to say, the first ACK is outside the third code block. For example, the receiving end can periodically send the first ACK to the sending end. In this way, the receiving end can flexibly send the first ACK to the sending end, and the process of the sending end obtaining the first ACK is not affected by the third code block. That is, the sending end can obtain the first ACK without decoding the third code block, can more quickly determine the second code block that needs to be retransmitted, further improving the retransmission efficiency and reducing the delay.

[0141] It should be understood that Figure 8 the payload of the third code block in Figure 8 includes the fourth code block shown, and the way the receiving end generates the fourth code block can be similar to the way the sending end generates the third code block, which will not be repeated. In addition, as Figure 8As shown, each fourth code block includes a fourth payload and a fourth redundant code, and each fourth code block includes indication information and data to be transmitted. It should be understood that the manner in which the receiving end generates the fourth code block may be similar to the manner in which the sending end generates the second code block as described above, and will not be repeated here.

[0142] In one embodiment of the present application, the sending end may also retransmit at least one of the second code blocks that have not been successfully received among the N second code blocks to the receiving end according to the first acknowledgment information. For example, when the first acknowledgment information indicates that the reception status of at least one of the N second code blocks is not successfully received, the sending end may determine, according to the first acknowledgment information, the second code blocks that have not been successfully received among the N second code blocks. For example, the second code blocks that have not been successfully received among the N second code blocks may be determined according to the bitmap in the first acknowledgment information, and at least one of the second code blocks that have not been successfully received is retransmitted to the receiving end.

[0143] In addition, when the bandwidth is sufficient, the sending end may retransmit all the second code blocks that have not been successfully received to the receiving end. When the bandwidth is insufficient, one or more of the second code blocks that have not been successfully received may be retransmitted to the receiving end.

[0144] In one embodiment of the present application, the sending end may also retransmit at least one of the second code blocks that support retransmission and have not been successfully received among the N second code blocks to the receiving end according to the first acknowledgment information. Exemplarily, when the reception status of at least one of the N second code blocks indicated by the first acknowledgment information is not successfully received, the sending end may determine, according to the first acknowledgment information, the second code blocks that have not been successfully received among the N second code blocks, and determine that the code block type of the second code blocks that have not been successfully received is the second code blocks that support retransmission. Then, at least one of the second code blocks that support retransmission and have not been successfully received among the N second code blocks is retransmitted to the receiving end.

[0145] It should be understood that the receiving end itself takes into account the code block type of the second code block during the process of feedbacking the first acknowledgment information. Without feedbacking the second code blocks that do not support retransmission, the second code blocks that are indicated by the first acknowledgment information as not successfully received are actually the second code blocks that support retransmission and have not been successfully received.

[0146] In one embodiment of the present application, the receiving end may also send second acknowledgment information to the sending end, where the second acknowledgment information indicates the reception status of at least one of the N second code blocks. That is to say, the receiving end may send multiple acknowledgment messages to the sending end at different times, and there may be an overlap between the second code blocks indicated by the acknowledgment messages sent at different times.

[0147] Exemplarily, such as Figure 9As shown, the receiving end can periodically send acknowledgment information to the sending end. For example, the receiving end sends the first acknowledgment information to the sending end at time t1, and this first acknowledgment information indicates the reception status of at least one of the N code blocks. However, it is possible that during the transmission of the first acknowledgment information, the sending end fails to decode the first acknowledgment information, that is, the sending end does not successfully receive the first acknowledgment information, or the sending end successfully receives the first acknowledgment information, but the sending end has not retransmitted the second code block that was not successfully received to the receiving end. Then, when the timing period arrives, for example, at time t2, the receiving end can still send the second acknowledgment information to the sending end, and through this second acknowledgment information, indicate the reception status of at least one of the N second code blocks. It should be understood that if, before the receiving end sends the second acknowledgment information to the sending end, it also receives another first code block sent by the sending end, then this second acknowledgment information can also be used to indicate the reception status of at least one second code block in this other first code block.

[0148] It should be understood that in the case where the sending end receives the second acknowledgment information and has not retransmitted the second code block that was not successfully received among the N second code blocks to the receiving end, then at least one of the second code blocks that were not successfully received among the N second code blocks can be retransmitted to the receiving end according to this first acknowledgment information and / or this second acknowledgment information; or, at least one of the second code blocks that support retransmission and were not successfully received among the N second code blocks can be retransmitted to the receiving end according to this first acknowledgment information and / or this second acknowledgment information.

[0149] Correspondingly, as Figure 9 shown, the receiving end can also send the third acknowledgment information, the fourth acknowledgment information, the fifth acknowledgment information, and so on to the sending end; moreover, there can be an overlap between the second code blocks indicated by adjacent acknowledgment information.

[0150] It should be understood that in the case where the time for feedback on the status of the second code block that was not successfully received times out and the sending end has not retransmitted the second code block that was not successfully received to the receiving end, the receiving end no longer sends acknowledgment information to the sending end to indicate these second code blocks that were not successfully received, and will discard these second code blocks that were not successfully received.

[0151] In the above embodiments provided by this application, the method provided by the embodiments of this application is introduced from the perspectives of the sending end, the receiving end, and the interaction between the sending end and the receiving end. To implement each function in the method provided by the above embodiments of this application, the sending end and the receiving end can include a hardware structure and / or software modules, and implement the above functions in the form of a hardware structure, a software module, or a combination of a hardware structure and a software module. Whether a certain function among the above functions is executed in the form of a hardware structure, a software module, or a combination of a hardware structure and a software module depends on the specific application and design constraints of the technical solution.

[0152] Figure 10 and Figure 11 The present embodiment of the application provides a schematic structural diagram of a communication device. These communication devices can implement the functions of the sending end or the receiving end in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments. In the embodiments of the present application, the communication device may be, for example, Figure 1 the sending end 10 shown in Figure 1 , or may be the receiving end 20 shown in

[0153] , or may also be a module (such as a chip) applied to the sending end or the receiving end. Figure 10 As shown in Figure 2 and Figure 6 , the communication device 1000 includes a transceiver module 1001 and a processing module 1002. The communication device 1000 can be used to implement the functions of the sending end or the receiving end in the above

[0154] method embodiments. Figure 2 and Figure 6 When the communication device 1000 is used to implement the function of the sending end in the

[0155] method embodiments:

[0156] The processing module 1002 is used to generate a first code block. The first code block includes a first payload and a first redundant code. The first payload includes N second code blocks. The first redundant code is used to correct errors in the first payload. The i-th second code block includes a second payload and a second redundant code. The second redundant code is used to detect errors in the second payload in the i-th second code block. The value of i ranges from 1 to N, and N is an integer greater than or equal to 1.

[0157] The transceiver module 1001 is used to send the first code block to the receiving end. Figure 2 and Figure 6 When the communication device 1000 is used to implement the function of the receiving end in the

[0158] method embodiments:

[0159] The transceiver module 1001 is used to receive the first code block from the sending end. The first code block includes a first payload and a first redundant code. The first payload includes N second code blocks. The i-th second code block includes a second payload and a second redundant code. The value of i ranges from 1 to N, and N is an integer greater than or equal to 1.

[0160] For a more detailed description of the above transceiver module 1001 and processing module 1002, reference may be made to the relevant descriptions in the above method embodiments, which will not be elaborated here.

[0161] As shown Figure 11 in FIG. 1, the communication device 1100 includes a processor 1101 and an interface circuit 1102. The processor 1101 and the interface circuit 1102 are coupled to each other. It can be understood that the interface circuit 1102 can be a transceiver or an input / output interface. Optionally, the communication device 1100 may further include a memory 1103 for storing instructions executed by the processor 1101 or input data required for the processor 1101 to execute instructions or data generated after the processor 1101 executes instructions.

[0162] When the communication device 1100 is used to implement the method in the above method embodiment, the processor 1101 is used to execute the functions of the above processing module 1002, and the interface circuit 1102 is used to execute the functions of the above transceiver module 1001.

[0163] When the above communication device is a chip applied to the sending end, the chip in the sending end implements the functions of the sending end in the above method embodiment. The chip in the sending end receives information from other modules (such as a radio frequency module or an antenna) in the sending end, and this information is sent by the receiving end to the sending end; or, the chip in the sending end sends information to other modules (such as a radio frequency module or an antenna) in the sending end, and this information is sent by the sending end to the receiving end.

[0164] When the above communication device is a chip applied to the receiving end, the chip in the receiving end implements the functions of the receiving end in the above method embodiment. The chip in the receiving end receives information from other modules (such as a radio frequency module or an antenna) in the receiving end, and this information is sent by the sending end to the receiving end; or, the chip in the receiving end sends information to other modules (such as a radio frequency module or an antenna) in the receiving end, and this information is sent by the receiving end to the sending end.

[0165] The embodiment of the present application further provides a communication system, including the communication device implementing the functions of the sending end and the communication device implementing the functions of the receiving end as described above.

[0166] It can be understood that the processor in the embodiment of the present application may be a central processing unit (CPU), or may also be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0167] The method steps in the embodiments of this application can be implemented in a hardware manner or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in a random access memory (RAM), flash memory, read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), registers, hard disks, removable hard disks, CD-ROMs, or any other form of storage medium well-known in the art. An exemplary storage medium is coupled to the processor, enabling the processor to read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC. Additionally, the ASIC can be located in the receiving end or the transmitting end. Of course, the processor and the storage medium can also exist as discrete components in the receiving end or the transmitting end.

[0168] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are executed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer program or instructions can be stored in a computer-readable storage medium or transmitted through a computer-readable storage medium. The computer-readable storage medium can be any available medium that the computer can access or a data storage device such as a server integrating one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a DVD; or it can be a semiconductor medium, such as a solid state disk (SSD).

[0169] In the various embodiments of this application, if there is no special indication and logical conflict, the terms and / or descriptions between different embodiments are consistent and can be cross-referenced, and the technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.

[0170] In this application, "at least one" means one or more, and "a plurality" means two or more. "And / or" describes the relationship between associated objects and indicates that there can be three relationships. For example, A and / or B can represent: A exists alone, both A and B exist simultaneously, or B exists alone, where A and B can be singular or plural. In the written description of this application, the character " / " generally indicates an "or" relationship between the associated objects before and after; in the formulas of this application, the character " / " indicates a "division" relationship between the associated objects before and after.

[0171] It can be understood that the various numerical numbers involved in the embodiments of this application are only for the convenience of description and are not used to limit the scope of the embodiments of this application. The magnitudes of the serial numbers of the above processes do not mean the sequence of execution, and the execution sequence of each process should be determined by its function and internal logic.

Claims

1. A data transmission method, characterized in that, applied to a sending end, the method includes: generating N second code blocks, the i-th second code block includes a second payload and a second redundant code, the second redundant code is used to detect errors in the second payload in the i-th second code block, the value of i ranges from 1 to N, and N is an integer greater than or equal to 1; generating a first code block, the first code block includes a first payload and a first redundant code, the first redundant code is used to correct errors in the first payload, and the first payload includes the N second code blocks; sending the first code block to a receiving end.

2. The method according to claim 1, characterized in that, the method further includes: receiving first confirmation information from the receiving end, the first confirmation information indicating the reception status of at least one of the N second code blocks.

3. The method according to claim 1 or 2, characterized in that, the first redundant code is obtained by performing Reed-Solomon forward error correction RS-FEC encoding on the first payload, and the second redundant code is obtained by performing cyclic redundancy check CRC encoding on the second payload of the i-th second code block.

4. The method according to any one of claims 1-3, characterized in that, the second payload in the i-th second code block includes indication information and data to be transmitted, and the indication information is used to indicate the identifier of the i-th second code block.

5. The method according to claim 4, characterized in that, the indication information of the i-th second code block is further used to indicate the code block type of the i-th second code block, and the code block type includes supporting retransmission or not supporting retransmission.

6. The method according to claim 5, characterized in that, if the indication information takes a first preset value, then the code block type of the i-th second code block is not supporting retransmission; if the indication information does not take the first preset value, then the code block type of the i-th second code block is supporting retransmission.

7. The method according to any one of claims 4-6, characterized in that, the indication information in the i-th second code block is further used to indicate the code block type of at least one of the second code blocks before the i-th second code block, and the code block type includes supporting retransmission or not supporting retransmission.

8. The method according to any one of claims 4-7, characterized in that, the indication information in the i-th second code block is further used to indicate that the data to be transmitted in the i-th second code block is padding bits.

9. The method according to any one of claims 4-8, characterized in that, the data to be transmitted includes at least one data segment to be transmitted, wherein the length of each data segment to be transmitted in the at least one data segment to be transmitted is an integer multiple of the sum of the length of the indication information and the length of the second redundant code.

10. The method according to any one of claims 2-9, characterized in that, the receiving the first confirmation information from the receiving end includes: receiving a third code block from the receiving end, the third code block includes the first confirmation information and a third redundant code, and the third redundant code is used to correct errors in the first confirmation information.

11. The method according to any one of claims 2 - 10, wherein, the method further comprises: re - transmitting at least one of the second code blocks that have not been successfully received among the N second code blocks to the receiving end according to the first confirmation information.

12. The method according to any one of claims 5 - 10, wherein, the method further comprises: re - transmitting at least one of the second code blocks that support re - transmission and have not been successfully received among the N second code blocks to the receiving end according to the first confirmation information.

13. A data transmission method, wherein, applied to the receiving end, the method comprises: receiving a first code block from a sending end, the first code block including a first payload and a first redundant code, the first payload including N second code blocks, the i - th second code block including a second payload and a second redundant code, where the value of i ranges from 1 to N, and N is an integer greater than or equal to 1; obtaining the N second code blocks according to the first code block; wherein, the first redundant code is used for error correction of the first payload, and the second redundant code is used for error detection of the second payload in the i - th second code block.

14. The method according to claim 13, wherein, the method further comprises: sending a first confirmation information to the sending end, the first confirmation information indicating the reception status of at least one of the N second code blocks.

15. The method according to claim 13 or 14, wherein, the first redundant code is obtained by performing Reed - Solomon forward error correction (RS - FEC) encoding on the first payload, and the second redundant code is obtained by performing cyclic redundancy check (CRC) encoding on the second payload of the i - th second code block.

16. The method according to any one of claims 13 - 15, wherein, the second payload in the i - th second code block includes indication information and data to be transmitted, and the indication information is used to indicate the identity of the i - th second code block.

17. The method according to claim 16, wherein, the indication information of the i - th second code block is further used to indicate the code block type of the i - th second code block, and the code block type includes supporting re - transmission or not supporting re - transmission.

18. The method according to claim 17, wherein, if the indication information takes a first preset value, the code block type of the i - th second code block is not supporting re - transmission; if the indication information does not take the first preset value, the code block type of the i - th second code block is supporting re - transmission.

19. The method according to any one of claims 16 - 18, wherein, the indication information in the i - th second code block is further used to indicate the code block type of at least one of the second code blocks before the i - th second code block, and the code block type includes supporting re - transmission or not supporting re - transmission.

20. The method according to any one of claims 16 - 19, wherein, the indication information in the i - th second code block is further used to indicate that the data to be transmitted in the i - th second code block is padding bits.

21. The method according to any one of claims 16 - 20, wherein, The data to be transmitted includes at least one data segment to be transmitted, wherein the length of each data segment to be transmitted in the at least one data segment to be transmitted is an integer multiple of the sum of the length of the indication information and the length of the second redundant code.

22. The method according to any one of claims 14-21, wherein, sending the first acknowledgment information to the sending end includes: sending a third code block to the sending end, the third code block including the first acknowledgment information and a third redundant code, the third redundant code being used for error correction of the first acknowledgment information.

23. The method according to any one of claims 14-22, wherein, the method further includes: receiving at least one of the second code blocks that were not successfully received among the N second code blocks retransmitted by the sending end.

24. The method according to any one of claims 17-22, wherein, the method further includes: receiving at least one of the second code blocks that support retransmission and were not successfully received among the N second code blocks retransmitted by the sending end.

25. A communication device, wherein, it includes a module for executing the method according to any one of claims 1-12 or 13-24.

26. A communication device, wherein, it includes a processor and a communication interface, the communication interface being used for receiving a signal from another communication device outside the communication device and transmitting it to the processor or sending a signal from the processor to another communication device outside the communication device, and the processor is used for implementing the method according to any one of claims 1-12 or 13-24 through logic circuits or executing code instructions.

27. A computer-readable storage medium, wherein, the computer-readable storage medium stores a computer program, and when the computer program is run, it implements the method according to any one of claims 1-12 or 13-24.

28. A data transmission method, wherein, the method is applied to a communication system, the communication system including a sending end for executing the method according to any one of claims 1-12 and a receiving end for executing the method according to any one of claims 13-24.