Data transmission method, communication device and storage medium
By using error correction and error detection mechanisms in data transmission, redundant code blocks are generated and only the error part is retransmitted, which solves the problem of difficulty in balancing reliability and delay in on-board communication, and achieves efficient and reliable data transmission.
Patent Information
- Application Number
- CN202510233545.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2020-09-18
- Publication Date
- 2025-05-02
AI Technical Summary
In the field of in-vehicle communication, the prior art is difficult to balance the reliability and delay of data transmission, especially when high-precision data transmission is required.
By correcting and detecting errors to be transmitted data, a code block containing redundant code is generated, and redundant code is used on the receiving end for error correction and detecting errors, and only some of the wrong data is retransmitted to improve retransmission efficiency and reduce delay.
It realizes improving the reliability of data transmission and reducing transmission delay in the field of in-vehicle communications, and meets the high reliability and low delay requirements for high-precision data transmission.
Smart Images

Figure CN119921912A_ABST
Abstract
Description
[0001] This application is a divisional application. The application number of the original application is 202080105304.8, and the original application date is September 18, 2020. The entire contents of the original application are incorporated into this application by reference. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a data transmission method, a communication device and a storage medium. Background Art
[0003] With the development of science and technology, intelligent vehicles, especially self-driving cars, have become an important development direction of the global automotive industry. Various on-board devices in the car play a very important role in the intelligent driving, assisted driving, automatic driving, communication and other processes of smart cars. Transmitting various data for sensing, collection or communication at any time during the driving process of the car has an important role and significance for vehicle interconnection and workshop and vehicle-to-person communication, and effectively increases the safety and comfort of car driving. Specifically, self-driving vehicles can detect information about the location of the car and surrounding objects through devices such as sonic radar, laser radar, navigation system, odometer, accelerometer, camera, etc., and can interpret the detected information and identify the navigation path through the control system, and drive the execution device to complete automatic driving.
[0004] At present, the bit error rate (BER) of data is required to be high in the communication field. For example, in the field of vehicle communication, the BER is required to reach 10 -10 ~10 -12 For data transmission between some key sensors and controllers, such as data transmission between high-precision cameras and lidars for autonomous driving and multiple domain controllers (MDCs), the BER requirement may reach 10. -15 Magnitude.
[0005] The industry usually uses various redundant coding mechanisms to improve the reliability of data transmission, but this also brings problems of transmission delay and overhead. How to balance reliability and transmission delay is an issue that needs to be solved urgently. Summary of the invention
[0006] The embodiments of the present application provide a data transmission method, a communication device and a storage medium, which improve the reliability of data transmission and reduce the transmission delay by performing error correction and error detection on the data to be transmitted.
[0007] In the first aspect, an embodiment of the present application provides a data transmission method, the execution subject of the method can be a transmitting end, or a chip applied to the transmitting end. The following description is taken as an example that the execution subject is the transmitting end. Generate a first code block, the first code block includes a first load and a first redundant code, the first load includes N second code blocks, the first redundant code is used to correct errors in the first load, the i-th second code block includes a second load and a second redundant code, the second redundant code is used to detect errors in the second load in 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 the first load, reducing the bits of transmission errors in the first load. Then, the second redundant code of each second code block is used to detect errors in each second code block, so that it can be determined which second code blocks among the N second code blocks have error bits, that is, they are not successfully received. In this way, the receiving end can ask the sending end to retransmit these second code blocks without retransmitting the entire first code block, thereby improving the retransmission efficiency and achieving the high reliability and low latency requirements for data transmission.
[0009] It should be understood that if the transmitting end and the receiving end are devices in the vehicle-mounted system, the above-mentioned data transmission method improves the reliability of data transmission in the vehicle-mounted communication field, reduces the transmission delay, and meets the requirements for data transmission in the vehicle-mounted field.
[0010] In some possible implementations, the method further includes: receiving first confirmation information from a receiving end, where the first confirmation information indicates a reception status of at least one of the N second code blocks.
[0011] It should be understood that the first confirmation information can indicate the second code blocks that were not successfully received among the N second code blocks. The sending end can retransmit these unsuccessfully received second code blocks based on the first confirmation information, thereby retransmitting part of the load in the first code block and improving the retransmission efficiency.
[0012] In some possible implementations, 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 implementations, the second payload in the i-th second code block includes indication information and data to be transmitted, where the indication information is used to indicate an identifier of the i-th second code block.
[0014] It can be seen that the identification 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 have not been successfully received, and then send the first confirmation information to the sending end to trigger the sending end to retransmit these second code blocks, thereby successfully retransmitting part of the load in the first code block.
[0015] In some possible implementations, 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, where the code block type includes supporting retransmission or not supporting retransmission.
[0016] It can be seen that the code block type of each code block is indicated by the indication information of each second code block, so that when the receiving end fails to successfully receive a second code block and identifies that the code block type of the second code block does not support retransmission, the receiving end does not need to wait for the second code block to be retransmitted, and can promptly process the second code block that is successfully received later, thereby reducing the processing delay. On the other hand, the receiving end does not need to feedback the reception status of the second code block to the sending end, and assumes that the reception is successful, thereby reducing the feedback overhead of the first confirmation information.
[0017] In some possible implementations, if the indication information value is the first preset value, the code block type of the i-th second code block does not support retransmission; if the indication information value is not the first preset value, the code block type of the i-th second code block supports retransmission.
[0018] In some possible implementations, the indication information in the i-th second code block is further used to indicate a code block type of at least one second code block before the i-th second code block, where the code block type includes supporting retransmission or not supporting retransmission.
[0019] It can be seen that the indication information of the i-th code block indicates the code block type of at least one second code block before the i-th second code block, so that when the receiving end successfully receives the i-th second code block, it can determine the code block type of the second code block before the i-th second code block. If it is determined that the code block type of a 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 the second code block, and can process the second code block successfully received later in time, thereby reducing the processing delay. On the other hand, at this time, the receiving end does not need to feedback the reception status of the second code block to the sending end, and the reception is successful by default, thereby reducing the feedback overhead of the first confirmation information.
[0020] In some possible implementations, 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 the transmission between the transmitting end and the receiving end is via wired transmission, it can be seen that the method of carrying the 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 the padding bit, so that the receiving end determines 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 implementations, 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.
[0023] It can be seen that the length of each data segment to be transmitted in the second code block is set to 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 the second code block does not need to be error-checked and RS-FEC encoded data can be directly used for data transmission, the data to be transmitted can be placed at the positions corresponding to the indication information and the second redundant code, thereby further improving the data transmission efficiency.
[0024] In some possible implementations, receiving the first confirmation information from the receiving end includes: receiving a third code block from the receiving end, the third code block including the first confirmation information and a third redundant code, and the third redundant code is used to correct errors of the first confirmation information.
[0025] It can be seen that, in the process of feeding back the first confirmation information, the receiving end can encode the first confirmation information and the data to be transmitted of the receiving end together 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 confirmation information, thereby ensuring the stability of the transmission of the first confirmation message. Since the third redundant code can be used to correct the error of the first confirmation information, it is not necessary to perform error detection on the first confirmation information separately, thereby reducing the feedback overhead of the first confirmation information.
[0026] In some possible implementations, receiving first confirmation information from a receiving end includes: receiving first confirmation information from a receiving end.
[0027] It can be seen that, in the process of feeding back the first confirmation message, the receiving end can feed back the first confirmation information alone, without encoding the first confirmation information and the data to be transmitted of the receiving end together to form a third code block and then feeding back the third code block, thereby improving the flexibility of feeding back the first confirmation information; and the sending end can receive and decode the first confirmation message earlier, and determine which second code blocks need to be retransmitted more quickly, thereby further improving the retransmission efficiency.
[0028] In some possible implementations, the method further includes: retransmitting at least one of the unsuccessfully received second code blocks among the N second code blocks to the receiving end according to the first confirmation information.
[0029] It can be seen that in the case of a first code block transmission error, the transmitter only needs to retransmit at least one of the unsuccessfully received second code blocks to the receiver, without retransmitting the entire first code block, thereby improving retransmission efficiency.
[0030] In some possible implementations, the method further includes: retransmitting at least one of the N second code blocks that supports retransmission and is not successfully received to the receiving end according to the first confirmation information.
[0031] It can be seen that in the case of a transmission error in the first code block, the transmitter only needs to retransmit to the receiver at least one of the second code blocks that support retransmission and have not been successfully received, without retransmitting the entire first code block and some second code blocks that do not support retransmission, thereby 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, and the method includes: receiving a first code block from a transmitting end, the first code block including a first load and a first redundant code, the first load including N second code blocks, the i-th second code block including a second load and a second redundant code, the value of i is an integer 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 load, and using the second redundant code to detect errors in the second load 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 the first payload, reducing the number of bits with transmission errors 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 second code blocks among the N second code blocks have not been successfully received. In this way, the sending end can retransmit these second code blocks without retransmitting the entire first code block, thereby improving the retransmission efficiency and achieving the high reliability and low latency requirements for data transmission.
[0034] It should be understood that if the transmitting end and the receiving end are devices in the vehicle-mounted system, the above-mentioned data transmission method improves the reliability of data transmission in the vehicle-mounted communication field, reduces the transmission delay, and meets the requirements for data transmission in the vehicle-mounted field.
[0035] In some possible implementations, the method further includes: sending first confirmation information to the transmitting end, where the first confirmation information indicates a receiving status of at least one of the N second code blocks.
[0036] It should be understood that the receiving end can indicate the unsuccessfully received second code blocks among the N second code blocks through the first confirmation information, so that the sending end can retransmit these unsuccessfully received second code blocks according to the first confirmation information, thereby retransmitting part of the load in the first code block and improving the retransmission efficiency.
[0037] In some possible implementations, 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 implementations, the second payload in the i-th second code block includes indication information and data to be transmitted, where the indication information is used to indicate an 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 identification of the second code block, when some second code blocks fail to be received, the receiving end determines which second code blocks have not been successfully received, and then sends a first confirmation information to the sending end to trigger the sending end to retransmit these second code blocks, thereby successfully retransmitting part of the load in the first code block.
[0040] In some possible implementations, 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, where the code block type includes supporting retransmission or not supporting retransmission.
[0041] It can be seen that the code block type of each code block is indicated by the indication information of each second code block. When the receiving end fails to successfully receive a second code block and identifies that the code block type of the second code block does not support retransmission, the receiving end can promptly process the second code block that is successfully received later, thereby reducing the processing delay. On the other hand, it is not necessary to feed back the receiving status of the second code block to the sending end, and the reception is successful by default, thereby reducing the feedback overhead of the first confirmation information.
[0042] In some possible implementations, if the indication information value is the first preset value, the code block type of the i-th second code block does not support retransmission; if the indication information value is not the first preset value, the code block type of the i-th second code block supports retransmission.
[0043] In some possible implementations, 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, where the code block type includes supporting retransmission or not supporting retransmission.
[0044] 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. When the receiving end successfully receives the i-th second code block, it can determine the code block type of the second code block before the i-th second code block. If it is determined that the code block type of a 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 the second code block, and can process the second code block successfully received later in time, thereby reducing the processing delay. On the other hand, it is not necessary to feedback the reception status of the second code block to the sending end, and the reception is assumed to be successful, thereby reducing the feedback overhead of the first confirmation information.
[0045] In some possible implementations, 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 transmitting end and the receiving end is via wired transmission, it can be seen that the method of carrying the 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 the padding bit. 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 implementations, 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.
[0048] It can be seen that the length of each data segment to be transmitted in the second code block is set to 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 the second code block does not need to be error-checked and RS-FEC encoded data can be directly used for data transmission, the data to be transmitted can be placed at the positions corresponding to the indication information and the second redundant code, thereby further improving the data transmission efficiency.
[0049] In some possible implementations, sending the first confirmation information to the sending end includes:
[0050] A third code block is sent to the transmitting end, where the third code block includes the first confirmation information and a third redundant code, and the third redundant code is used to correct errors of the first confirmation information.
[0051] It can be seen that in the process of feeding back the first confirmation information, the receiving end can encode the first confirmation information and the data to be transmitted at the receiving end together 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 confirmation information, thereby ensuring the stability of the transmission of the first confirmation message. Since the third redundant code can be used to correct the error of the first confirmation information, it is not necessary to perform error detection on the first confirmation information separately, thereby reducing the feedback overhead of the first confirmation information.
[0052] In some possible implementations, sending the first confirmation information to the sending end includes: sending the first confirmation information to the sending end.
[0053] It can be seen that in the process of feeding back the first confirmation message, the receiving end can feed back the first confirmation information alone, without encoding the first confirmation information and the data to be transmitted of the receiving end together to form a third code block and then feeding back the third code block, thereby improving the flexibility of feeding back the first confirmation information; in this way, the sending end can receive and decode the first confirmation message earlier, and determine which second code blocks need to be retransmitted more quickly, thereby further improving the retransmission efficiency.
[0054] In some possible implementations, the method further includes: receiving at least one of the unsuccessfully received second code blocks among the N second code blocks retransmitted by the transmitting end.
[0055] It can be seen that in the case of a first code block transmission error, the receiving end only receives at least one of the unsuccessfully received second code blocks retransmitted by the sending end, and the sending end does not need to retransmit the entire first code block, thereby improving retransmission efficiency.
[0056] In some possible implementations, the method further includes: receiving at least one of the second code blocks that supports retransmission and is not successfully received among the N second code blocks retransmitted by the transmitting end.
[0057] It can be seen that in the case of a transmission error in the first code block, the receiving end only receives at least one of the second code blocks that are retransmitted by the sending end and support retransmission and are not successfully received. The sending end does not need to retransmit the entire first code block and some second code blocks that do not support retransmission, thereby further improving the retransmission efficiency.
[0058] In the third aspect, the embodiment of the present application provides a communication device, and the beneficial effects can be referred to the description of the first aspect and will not be repeated here. The communication device has the function of implementing the behavior in the method example of the first aspect above. The function can be implemented by hardware, or it can be implemented by hardware executing the corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the communication device includes: a processing module for generating a first code block, the first code block includes a first load and a first redundant code, the first load includes N second code blocks, the first redundant code is used to correct errors in the first load, the i-th second code block includes a second load and a second redundant code, and the second redundant code is used to detect errors in the second load in the i-th second code block, and the value of i is an integer from 1 to N, and N is an integer greater than or equal to 1; a transceiver module for sending the first code block to the receiving end. These modules can perform the corresponding functions in the method example of the first aspect above, and refer to the detailed description in the method example for details, which will not be repeated here.
[0059] In a fourth aspect, an embodiment of the present application provides a communication device, and the beneficial effects can be found in the description of the first aspect and will not be repeated here. The communication device has the function of implementing the behavior in the method example of the first aspect above. The function can be implemented by hardware, or by hardware executing corresponding software implementation. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the communication device includes: a transceiver module for receiving a first code block from a transmitting end, the first code block including a first load and a first redundant code, the first load including N second code blocks, the i-th second code block including a second load and a second redundant code, the value of i is an integer from 1 to N, and N is an integer greater than or equal to 1; a processing module for using the first redundant code to correct errors in the first load, and using the second redundant code to detect errors in the second load in the i-th second code block.
[0060] In a fifth aspect, a communication device is provided, which may be a transmitting end in the above method embodiment, or a chip arranged in the transmitting end. The communication device includes a communication interface and a processor, and optionally, a memory. The memory is used to store a computer program or instruction, and the processor is coupled to the memory and the communication interface. When the processor executes the computer program or instruction, the communication device executes the method executed by the transmitting end in the above method embodiment.
[0061] In a sixth aspect, a communication device is provided, which may be a receiving end in the above method embodiment, or a chip arranged in the receiving end. The communication device includes a communication interface and a processor, and optionally, also includes a memory. The memory is used to store a computer program or instruction, and the processor is coupled to the memory and the communication interface. When the processor executes the computer program or instruction, the communication device executes the method executed by the receiving end in the above method embodiment.
[0062] In a seventh aspect, a computer program product is provided, the computer program product comprising: a computer program code, when the computer program code is run, the method performed by the sending end in the above aspects is executed.
[0063] In an eighth aspect, a computer program product is provided, the computer program product comprising: a computer program code, when the computer program code is executed, the method performed by the receiving end in the above aspects is executed.
[0064] In a ninth aspect, the present application provides a chip system, which includes a processor for implementing the functions of the transmitting end in the above-mentioned methods. In a possible design, the chip system also includes a memory for storing program instructions and / or data. The chip system can be composed of a chip, or can include a chip and other discrete devices.
[0065] In a tenth aspect, the present application provides a chip system, which includes a processor for implementing the functions of the receiving end in the above-mentioned methods. In a possible design, the chip system also includes a memory for storing program instructions and / or data. The chip system can be composed of a chip, or it can include a chip and other discrete devices.
[0066] In an eleventh aspect, the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed, the method performed by the sending end in the above aspects is implemented.
[0067] In a twelfth aspect, the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed, the method performed by the receiving end in the above aspects is implemented.
[0068] In a thirteenth aspect, the present application provides a communication system, comprising the communication device of the fifth aspect and the communication device of the sixth aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0069] Figure 1 A schematic diagram of the architecture of a communication system according to an embodiment of the present application;
[0070] Figure 2 A schematic diagram of a data transmission method according to an embodiment of the present application;
[0071] Figure 3 A schematic diagram of a first code block according to an embodiment of the present application;
[0072] Figure 4 A schematic diagram of a second code block according to an embodiment of the present application;
[0073] Figure 5 A schematic diagram of data to be transmitted according to an embodiment of the present application;
[0074] Figure 6 A flowchart of another data transmission method according to an embodiment of the present application;
[0075] Figure 7 This is a schematic diagram of sending first confirmation information according to an embodiment of the present application;
[0076] Figure 8 This is another schematic diagram of sending first confirmation information according to an embodiment of the present application;
[0077] Fig. 9 A schematic diagram of sending confirmation information according to an embodiment of the present application;
[0078] Fig.10 A schematic diagram of the structure of a communication device according to an embodiment of the present application;
[0079] Fig.11 A schematic diagram of the structure of another communication device according to an embodiment of the present application. DETAILED DESCRIPTION
[0080] The technical solutions in the embodiments of the present application can be applied to various communication systems, such as vehicle-mounted systems, Long Term Evolution (LTE) mobile communication systems, fifth generation (5G) mobile communication systems, and the like.
[0081] It should be understood that when the technical solution of the present application is applied to a vehicle-mounted system, the transmitting end and the receiving end in the embodiment of the present application can be an MDC, a large vehicle-mounted screen, a central control screen, and various sensors, and the transmitting end and the receiving end usually communicate through a cable. Among them, the sensor includes a positioning system (the positioning system can be a GPS system, or a Beidou system or other positioning system), 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 may also include sensors of the internal system of the monitored vehicle (such as an in-vehicle air quality monitor, a fuel gauge, an oil temperature gauge, etc.).
[0082] It should be understood that when the technical solution of the present application is applied to a long term evolution (LTE) mobile communication system and a fifth generation (5G) mobile communication system, the transmitting end and the receiving end in the embodiment of the present application may be one of a network device and a user equipment (UE).
[0083] Among them, UE may include a mobile phone (or "cellular" phone), a wireless user equipment, a mobile user equipment, a device-to-device communication (D2D) user equipment, a vehicle-to-everything (V2X) user equipment, a machine-to-machine / machine-type communication (M2M / MTC) user equipment, an Internet of Things (IoT) user equipment, 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 at the air interface, such as a base station NodeB (e.g., access point). For example, an evolved base station (NodeB or eNB or e-NodeB, evolutionary Node B), or a new air interface 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 the present application do not limit the AN device.
[0085] In order to facilitate the understanding of the present application, the relevant technical knowledge involved in the embodiments of the present application is first introduced here.
[0086] In order to improve the reliability of 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 a 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, which is divided into 326 input data units with 10 bits as a unit. After the input data is encoded by RS-FEC, 360 units are output, that is, a 3600-bit RS code block. The 360 units are composed of 326 input data units and 34 redundant units. Among them, the 326 input data units are the load of the RS code block, that is, valid data; the 34 redundant units are the redundant codes of the RS code block, that is, invalid data. The 34 redundant units are obtained by Galois field operation on the 326 input data units and are used to correct errors in the 326 input data units.
[0088] The following example illustrates how to implement RS-FEC encoding of 34 redundant units for error correction.
[0089] Exemplarily, the data to be transmitted can be expressed by formula (1):
[0090] m(x)=m 325 *x 359 +m 324 *x 358 +…+m1*x 35 +m0*x 34 (Formula 1);
[0091] Among them, the coefficients m0~m 325 Represents 326 bits of data to be transmitted, with each coefficient corresponding to a 10-bit unit.
[0092] Then, a polynomial g(x) is constructed through the preset primitive polynomial. The sender and receiver agree on the primitive polynomial, assuming that the primitive polynomial is x 10 +x 3 +1, 33 α is the primitive element of the primitive polynomial, then the polynomial g(x) can be expressed by formula 2:
[0093] g(x) = ∏(x-α j ) = g34 *x 34 +g 33 *x 33 +…+g4*x 4 +g3*x 3 +g2*x 2 +g1*x 1 +g0(formula 2);
[0094] Finally, through the Galois field operation with j=0, the remainder polynomial p(x) of m(x) / g(x) is determined. The remainder polynomial p(x) can be expressed by formula (3):
[0095] p(x)=p 33 *x 33 +p 32 *x 32 +…+p2*x 2 +p1*x 1 +p0(Formula 3);
[0096] Among them, the 34 coefficients p0~p in the remaining polynomial 33 For error correction, each coefficient corresponds to a 10-bit unit; 360 units m 325 、m 324 ,…,m0,p 33 、p 32 , ..., p0 are arranged in sequence to form an RS code block, and the transmitting end sends the RS code block to the receiving end. The receiving end uses the 34 redundant units to correct the errors of the 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 resist a maximum of (NK) / 2*U continuous bit errors. Once the number of consecutive error bits in the RS code block exceeds (NK) / 2*U, the receiver cannot restore the payload, and the transmitter must retransmit the entire RS code block. Since the entire RS code block contains a large number of bits, the entire retransmission process is relatively slow and occupies more bandwidth resources.
[0098] For CRC encoding, the sender and the receiver agree on a generating polynomial in advance. Based on the generating polynomial and the input data, a CRC check code is generated; after the CRC check code is added to the input data bits, a CRC code block is obtained. The input data is the payload of the CRC code block, that is, the valid data, and the CRC check code is the redundant code of the CRC code block, which is invalid data. The receiving end uses the CRC check code to detect errors in the payload of the CRC code block. After the received payload undergoes the same CRC processing as the sending end, a local CRC check code is obtained. If the local CRC check code is the same as the received CRC check code, there are no error bits in the payload, otherwise there are error bits in the payload.
[0099] CRC coding provides an error detection mechanism, but it cannot correct data errors. Once a transmission error occurs, the CRC code block must be retransmitted. During the entire data transmission process, a large number of CRC code blocks are retransmitted, resulting in a large transmission delay.
[0100] The above encoding methods are 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] See also Figure 1 , Figure 1 The present invention provides a schematic diagram of the architecture of a communication system. The communication system includes a transmitter 10 and a receiver 20. It is understandable that the communication system may include one or more transmitters and one or more receivers. Figure 1 Only two transmitting ends and one receiving end are shown, but this does not constitute a limitation to the present application.
[0102] The method provided by the implementation of the present application includes: the transmitting end 10 generates a first code block, the first code block includes a first load and a first redundant code, the first load includes N second code blocks, the first redundant code is used to correct errors in the first load, the i-th second code block includes a second load and a second redundant code, the second redundant code of the i-th second code block is used to detect errors in the second load in the i-th second code block, i is an integer from 1 to N (including 1 and N), N is an integer greater than or equal to 1, that is, the i-th second code block can be any second code block among the N second code blocks, and the first code block is sent to the receiving end 20.
[0103] It should be understood that the receiving end 20 can first use the first redundant code to correct the error of the first payload, thereby improving the reliability of the transmission of the first code block, and then use the second redundant code of each second code block to detect the error of each second code block. When a second code block is detected to be erroneous, the transmitting end 10 can be instructed to retransmit the second code block. In this way, when the first code block is transmitted with an error, the transmitting end 10 can only retransmit part of the data carried in the first code block, thereby improving the retransmission efficiency and reducing the transmission delay.
[0104] It should be understood that when the transmitting 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 field of vehicle-mounted communications.
[0105] See also Figure 2 , Figure 2 A flow chart of a data transmission method provided in an embodiment of the present application. This embodiment includes the following steps:
[0106] 201: The transmitter generates a first code block.
[0107] like Figure 3 As shown, the first code block includes a first load and a first redundant code, the first load includes N second code blocks, the first redundant code is used to correct errors in the first load, the i-th second code block includes a second load and a second redundant code, the second redundant code of the i-th second code block is used to detect errors in the second load in 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 second code block among 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 may be a CRC check code, that is, the second payload in the i-th second code block is used as valid data in the CRC encoding process, 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 valid data (first payload) in the RS-FEC encoding process. Exemplarily, the first redundant code may be obtained by RS-FEC encoding the first payload, that is, RS-FEC encoding is performed 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 illustration. In practical applications, the first load and the second load may be encoded by other encoding methods to obtain the first redundant code and the second redundant code, such as using low density convolutional coding (Low Density Parity Check, LPDC) and CRC coding. This application does not limit the encoding method.
[0110] For example, Figure 4As shown, the second load in the i-th second code block includes indication information and data to be transmitted. The indication information is used to indicate the identifier of the i-th second code block, and the identifier 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 identifier to each second code block, the receiving end can feedback the receiving status of each second code block in combination with the identifier of each second code block, so that the sending end can retransmit the second code block that was not successfully received according to the receiving status of each second code block, without retransmitting the entire first code block, thereby 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, wherein 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, and 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 indication information value is the first preset value, the code block type of the i-th second code block does not support retransmission; when the indication information is not the first preset value, the code block type of the i-th second code block supports retransmission.
[0113] For example, the indication information includes 4 bits. When the indication information value is 0000, it indicates that the code block type of the second code block does not support retransmission. When the indication information value is not 0000, it indicates that the code block type of the second code block supports retransmission.
[0114] Furthermore, the indication information value of the second code block supporting retransmission may be encoded in ascending order, and when the indication information value reaches the maximum value, it is automatically rolled back to the minimum value to continue encoding, so that the receiving end can determine the code block type of the second code block by the continuity of the indication information value. When the second code block supporting retransmission is transmitted for the first time, it is transmitted in ascending order according to the indication information value.
[0115] For example, if the code block types of the first, third and fourth second code blocks all support retransmission, the indication information values of the first, third and fourth second code blocks can be set to 0001, 0010 and 0011, and if the code block type of the second code block does not support retransmission, the indication information value of 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, but fails to successfully receive the second second code block, since the indication information values of the first second code block and the third second code block are continuous, it is determined that the second second code block that is not successfully received is not 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, but fails to successfully receive the third second code block, since the identifiers of the second second code block and the fourth second code block are discontinuous, it can be determined that the third second code block that is not successfully received supports retransmission, and the indication information value is 0010.
[0116] Exemplarily, the indication information of the i-th second code block is further used to indicate a code block type of at least one second code block located before the i-th second code block, and the code block type includes supporting retransmission or not supporting retransmission.
[0117] Exemplarily, the code block type of at least one second code block before the i-th second code block may be indicated in a bitmap manner.
[0118] For example, if the indication information of the i-th second code block is used to indicate the code block type of the three second code blocks located before the i-th second code block, the code block type of the three second code blocks can be indicated by the three bits in the indication information. And, when the bit value is 1, it indicates that the code block type of the second code block corresponding to the bit supports retransmission, and when the bit value is 0, it indicates that the code block type of the second code block corresponding to the 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 indicate support for retransmission and 1 to indicate non-support for retransmission.
[0119] It should be understood that, in practical applications, the code block type of the N second code blocks can also be indicated by the indication information of each second code block, 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 type of the N second code blocks, which increases 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 clearly understand the code block type of each second code block. In the case that 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 confirmation information to the sending end to indicate the retransmission of these second code blocks, thereby reducing the feedback overhead of the confirmation information.
[0120] Exemplarily, the indication information of the i-th second code block is also used to indicate that the data to be transmitted of the i-th second code block is a filling bit. For example, the value of one bit in the indication information indicates whether the data to be transmitted of the second code block is all filling bits, such as a value of 0 indicating that it is all filling bits, and a value of 1 indicating that it is not all filling bits. It should be understood that the bit used to indicate that the data to be transmitted is a filling bit and the bit used to indicate the code block type of the second code block can be different bits in the indication information.
[0121] It should be understood that, for the second code block whose data to be transmitted is all filling bits, the code block type of the second code block is not supporting retransmission; for the second code block whose data to be transmitted is not all filling bits, the code block type of the second code block is determined by the type of data to be transmitted of the second code block. For example, if the data to be transmitted of the second code block is a control message, then the code block type of the second code block is supporting retransmission; if the data to be transmitted of the second code block is image data, then the code block type of the second code block is not supporting retransmission.
[0122] In a wired transmission system, the transmission rate can be kept constant by filling meaningless bits, thereby ensuring the stability of transmission. If the receiving end recognizes that the data to be transmitted in the i-th second code block is all filled bits, the i-th second code block can be directly discarded to avoid subsequent processing and reduce processing complexity.
[0123] For example, Figure 5 As shown, the data to be transmitted in the i-th second code block 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 of the i-th second code block and the length of the second redundant code, wherein the length mentioned in the present application can be understood as the number of bits.
[0124] For example, if each data segment to be transmitted is obtained by encoding in a 64 / 66B manner, the length of each data segment to be transmitted is 66 bits, and the sum of the length of the indication information and the length of the second redundant 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 redundant code can be set to 8 bits.
[0125] It can be seen that the length of each data segment to be transmitted in the second code block is set to 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 the second code block does not need to be error-checked and RS-FEC encoded data can be directly used for data transmission, the data to be transmitted can be placed at the position corresponding to the indication information and the second redundant code, further improving the data transmission efficiency. For example, when 64 / 66B encoding is used 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 redundant code, every 3 second code blocks, compared with the method of placing the indication information and the second redundant code in the second code block, one more data segment to be transmitted with a length of 66 bits can be transmitted, thereby improving the data transmission efficiency.
[0126] 202: The transmitting end sends a 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 redundant code to correct the error of the first load, thereby improving the reliability of the first code block transmission, and then use the second redundant code of each second code block to detect the error of the second load of each second code block. When a transmission error of a second code block is detected, the sending end can be instructed to retransmit the second code block. In this way, when the first code block is transmitted incorrectly, the sending end can retransmit part of the data carried in the first code block (the second code block with transmission error), thereby improving the retransmission efficiency, reducing the transmission delay, and meeting the requirements for high reliability and low delay of data transmission.
[0128] See also Figure 6 , Figure 6 A flow chart of another data transmission method provided in an embodiment of the present application. Figure 2 The same contents as those in the embodiment shown are not described again here. This embodiment includes the following steps:
[0129] 601: The transmitter generates a first code block.
[0130] 602: The transmitting end sends a first code block to the receiving end. Correspondingly, the receiving end receives the first code block.
[0131] 603: The receiving end sends first confirmation information to the sending end. Correspondingly, the sending end receives the first confirmation information.
[0132] The first confirmation information indicates a receiving status of at least one of the N second code blocks, and the receiving status of each second code block includes successful reception or unsuccessful reception.
[0133] Exemplarily, a bitmap may be set in the first confirmation information to indicate the receiving status of at least one of the N second code blocks. For example, the receiving status of each second code block may be indicated by a bitmap. When the value in the bitmap is 1, it indicates that the receiving status of the second code block corresponding to the value is successfully received, and when the value is 0, it indicates that the receiving status of the second code block corresponding to the value is unsuccessfully received. It should be understood that if the code block type of a second code block does not support retransmission, even if the receiving end does not successfully receive the second code block during this transmission, the value corresponding to the second code block may be set to 1 in the bitmap, so that the sending end does not need to retransmit the second code block, thereby avoiding invalid retransmission and improving retransmission efficiency.
[0134] Exemplarily, the reception status of at least one of the N second code blocks may also be indicated in the first confirmation information by carrying an identifier of the second code block. For example, the second code block that was not successfully received among the N second code blocks may be indicated by the first confirmation information, that is, only the identifier of the second code block that was not successfully received may be carried in the first confirmation information, and for the second code blocks that do not carry the indication information, it is assumed that these second code blocks are successfully received. In this way, the transmitting end may determine which second code blocks were not successfully received by the identifier of the second code block carried in the first confirmation information.
[0135] It can be seen that in the embodiment, the receiving end can first use the first redundant code to correct the first load, thereby improving the reliability of the first code block transmission, and then use the second redundant code of each second code block to detect the error of the second load of each second code block. When a second code block transmission error is detected, the first confirmation information can be fed back to the sending end to indicate these second code blocks with transmission errors. In this way, when the first code block is transmitted incorrectly, the sending end can retransmit part of the data carried in the first code block (i.e., the second code block with transmission error) according to the confirmation information, thereby improving the retransmission efficiency, reducing the transmission delay, and meeting the requirements of high reliability and low delay for data transmission.
[0136] It should be understood that if the code block type of a second code block is not supported for retransmission, even if it is not successfully received during the current transmission process, the identifier of the second code block may not be carried in the first confirmation information.
[0137] For example, Figure 7As shown, the receiving end sends a third code block to the sending end, wherein the third code block includes the first confirmation (Acknowledge character, ACK) information and the third redundant code, that is, the first ACK is included in the third code block, and the first ACK is encoded together with the data as a part of the third load of the third code block to obtain the third code block. The encoding method of the third code block is similar to the encoding method of the first code block mentioned above (the specific parameters may be different), which will not be described again. Therefore, the third redundant code can be used to correct errors of the first ACK. Since the third redundant code is used to correct errors of the first ACK, the reliability of the first ACK transmission process is improved.
[0138] Exemplarily, when the first ACK is included in the third code block, the third redundant code in the third code block is used for error correction, and the first ACK can be error-checked or not error-checked using an error-checking method with relatively few check codes, for example, the first ACK can be error-checked using a parity check method. Since relatively few check codes are used in the error detection process of the first ACK, the feedback overhead of the first ACK is reduced.
[0139] It should be understood that Figure 7 The third load of the third code block shown in FIG. 1 includes Figure 7 The fourth code block and the first confirmation information shown in the figure, and the way in which the receiving end generates the third code block can be similar to the way in which the sending end generates the first code block, and no further description is given. Figure 7 As shown, each fourth code block includes a fourth load and a fourth redundant code, wherein the fourth load includes indication information and data to be transmitted. It should be understood that the way in which the receiving end generates the fourth code block can be similar to the way in which the transmitting end generates the second code block, and the description will not be repeated.
[0140] For example, Figure 8 As 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. In other words, 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 sending end is not affected by the third code block when obtaining the first ACK. That is, the sending end does not need to decode the third code block to obtain the first ACK, and can more quickly determine the second code block that needs to be retransmitted, further improving the efficiency of retransmission and reducing latency.
[0141] It should be understood that Figure 8 The payload of the third code block includes Figure 8 The fourth code block shown in FIG. 1 and the receiving end may generate the fourth code block in a manner similar to the sending end generating the third code block, and the description thereof will not be repeated. Figure 8As shown, each fourth code block includes a fourth load and a fourth redundant code, and each fourth code block includes indication information and data to be transmitted. It should be understood that the way in which the receiving end generates the fourth code block can be similar to the way in which the transmitting end generates the second code block, and the description will not be repeated.
[0142] In one embodiment of the present application, the transmitting end may also retransmit at least one of the unsuccessfully received second code blocks in the N second code blocks to the receiving end according to the first confirmation information. For example, when the first confirmation information indicates that the reception status of at least one of the N second code blocks is unsuccessfully received, the transmitting end may determine the unsuccessfully received second code blocks in the N second code blocks according to the first confirmation information, for example, the unsuccessfully received second code blocks in the N second code blocks may be determined according to the bitmap in the first confirmation information, and retransmit at least one of the unsuccessfully received second code blocks to the receiving end.
[0143] In addition, when the bandwidth is sufficient, the transmitting end may retransmit all the second code blocks that are not successfully received to the receiving end, and when the bandwidth is insufficient, one or more of the second code blocks that are not successfully received may be retransmitted to the receiving end.
[0144] In one embodiment of the present application, the transmitting end may also retransmit at least one of the second code blocks that supports retransmission and is not successfully received in the N second code blocks to the receiving end according to the first confirmation information. Exemplarily, in the case where the reception status of at least one of the N second code blocks indicated by the first confirmation information is unsuccessful reception, the transmitting end may determine the unsuccessfully received second code blocks in the N second code blocks according to the first confirmation information, and determine that the code block type in the unsuccessfully received second code blocks is a second code block that supports retransmission, and then retransmit at least one of the second code blocks that supports retransmission and is not successfully received in the N second code blocks to the receiving end.
[0145] It should be understood that the receiving end has already taken into account the code block type of the second code block during the process of feeding back the first confirmation information. When the second code block that does not support retransmission is not fed back, the second code block that is not successfully received indicated by the first confirmation information is actually the second code block that supports retransmission and is not successfully received.
[0146] In one embodiment of the present application, the receiving end may further send second confirmation information to the transmitting end, wherein the second confirmation information indicates the receiving status of at least one of the N second code blocks. That is, the receiving end may send multiple confirmation information to the transmitting end at different times, and the second code blocks indicated by the confirmation information sent at different times may overlap.
[0147] For example, Fig. 9As shown, the receiving end can periodically send confirmation information to the sending end. For example, the receiving end sends the first confirmation information to the sending end at time t1, and the first confirmation information indicates the receiving status of at least one of the N code blocks. However, it may be due to the fact that the sending end fails to decode the first confirmation information during the transmission of the first confirmation information, that is, the sending end does not successfully receive the first confirmation information, or the sending end successfully receives the first confirmation 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, when it reaches time t2, the receiving end can also send the second confirmation information to the sending end, and indicate the receiving status of at least one of the N second code blocks through the second confirmation information. It should be understood that if the receiving end receives another first code block sent by the sending end before sending the second confirmation information to the sending end, the second confirmation information can also be used to indicate the receiving status of at least one second code block in the other first code block.
[0148] It should be understood that when the sending end receives the second confirmation information and has not yet retransmitted the unsuccessfully received second code blocks among the N second code blocks to the receiving end, at least one of the unsuccessfully received second code blocks among the N second code blocks may be retransmitted to the receiving end based on the first confirmation information and / or the second confirmation information; or, at least one of the second code blocks among the N second code blocks that supports retransmission and is not successfully received may be retransmitted to the receiving end based on the first confirmation information and / or the second confirmation information.
[0149] Correspondingly, such as Fig. 9 As shown, the receiving end may also send third confirmation information, fourth confirmation information, fifth confirmation information, and so on to the transmitting end; and, the second code blocks indicated by adjacent confirmation information may overlap.
[0150] It should be understood that when the time for feedback of the status of the unsuccessfully received second code block times out, the sending end has not retransmitted the unsuccessfully received second code block to the receiving end, the receiving end no longer sends confirmation information to the sending end to indicate these unsuccessfully received second code blocks, and will discard these unsuccessfully received second code blocks.
[0151] In the embodiments provided by the present application, the method provided by the embodiments of the present application is introduced from the perspective of the transmission end, the receiving end, and the interaction between the transmission end and the receiving end. In order to realize the functions in the method provided by the embodiments of the present application, the transmission end and the receiving end may include a hardware structure and / or a software module, and the functions are realized in the form of a hardware structure, a software module, or a hardware structure plus a software module. Whether a function in the functions is executed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution.
[0152] Fig.10 and Fig.11 A schematic diagram of the structure of a communication device is provided for an embodiment of the present application. These communication devices can implement the functions of the transmitting end or the receiving end in the above method embodiment, and thus can also achieve the beneficial effects possessed by the above method embodiment. In the embodiment of the present application, the communication device can be as follows Figure 1 The sending end 10 shown in FIG. 1 may also be as follows Figure 1 The receiving end 20 shown may also be a module (such as a chip) applied to a transmitting end or a receiving end.
[0153] like Fig.10 As shown, the communication device 1000 includes a transceiver module 1001 and a processing module 1002. The communication device 1000 can be used to implement the above Figure 2 and Figure 6 The functions of the sending end or the receiving end in the method embodiment shown in FIG.
[0154] When the communication device 1000 is used to implement Figure 2 and Figure 6 The functions of the sending end in the method embodiment are:
[0155] 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, and the value of i is an integer from 1 to N, and N is an integer greater than or equal to 1;
[0156] The transceiver module 1001 is configured to send a first code block to a receiving end.
[0157] When the communication device 1000 is used to implement Figure 2 and Figure 6 The function of the receiving end in the method embodiment is:
[0158] The transceiver module 1001 is configured to receive a first code block from a transmitting 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, where i is an integer from 1 to N, and N is an integer greater than or equal to 1;
[0159] The processing module 1002 is configured to use the first redundant code to perform error correction on the first payload, and use the second redundant code to perform error detection on the second payload in the i-th second code block.
[0160] For a more detailed description of the transceiver module 1001 and the processing module 1002 , please refer to the relevant description in the above method embodiment, which will not be described again here.
[0161] like Fig.11 As shown, 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 is understood that the interface circuit 1102 can be a transceiver or an input-output interface. Optionally, the communication device 1100 may also include a memory 1103 for storing instructions executed by the processor 1101 or storing input data required by the processor 1101 to execute instructions or storing 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 function of the above processing module 1002 , and the interface circuit 1102 is used to execute the function of the above transceiver module 1001 .
[0163] When the above communication device is a chip used in a transmitting end, the chip in the transmitting end implements the functions of the transmitting end in the above method embodiment. The chip in the transmitting end receives information from other modules in the transmitting end (such as a radio frequency module or an antenna), and the information is sent by the receiving end to the transmitting end; or the chip in the transmitting end sends information to other modules in the transmitting end (such as a radio frequency module or an antenna), and the information is sent by the transmitting 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 function of the receiving end in the above method embodiment. The chip in the receiving end receives information from other modules in the receiving end (such as a radio frequency module or an antenna), and the information is sent from the transmitting end to the receiving end; or the chip in the receiving end sends information to other modules in the receiving end (such as a radio frequency module or an antenna), and the information is sent from the receiving end to the transmitting end.
[0165] An embodiment of the present application also provides a communication system, including the above-mentioned communication device for implementing the function of the transmitting end and the above-mentioned communication device for implementing the function of the receiving end.
[0166] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) 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 the present application can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can 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. In addition, the ASIC can be located in a receiving end or a transmitting end. Of course, the processor and the storage medium can also be present in a receiving end or a transmitting end as discrete components.
[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 a computer program or instruction is loaded and executed on a computer, the process or function described in the embodiment of the present application is executed in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer program or instruction may be stored in a computer-readable storage medium or transmitted via a computer-readable storage medium. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server that integrates one or more available media. Available media may be magnetic media, such as a floppy disk, a hard disk, or a tape; it may also be an optical medium, such as a DVD; it may also be a semiconductor medium, such as a solid state disk (SSD).
[0169] In the various embodiments of the present application, unless otherwise specified or provided for in any logical conflict, the terms and / or descriptions between the different embodiments are consistent and may be referenced to each other, and the technical features in the different embodiments may be combined to form new embodiments according to their inherent logical relationships.
[0170] In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In the text description of this application, the character " / " generally indicates that the previous and next associated objects are in an "or" relationship; in the formula of this application, the character " / " indicates that the previous and next associated objects are in a "division" relationship.
[0171] It is understood that the various numbers involved in the embodiments of the present application are only for the convenience of description and are not used to limit the scope of the embodiments of the present application. The size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic.
Claims
1. A data transmission method, characterized in that: Applied to the sending end, the method includes: generating a second code block, wherein the second code block includes a second payload and a second redundant code, wherein the second redundant code is used to perform error detection on the second payload; generating a first code block, wherein the first code block includes the second code block and a first redundant code, wherein the first redundant code is used to correct errors of the second code block; The first code block is sent to a receiving end.
2. The method according to claim 1, characterized in that The method further comprises: First confirmation information is received from the receiving end, where the first confirmation information indicates a 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 second code block.
4. The method according to any one of claims 1 to 3, characterized in that The second redundant code is obtained by performing cyclic redundancy check (CRC) encoding on the second load.
5. The method according to any one of claims 1 to 4, characterized in that The second load includes indication information and data to be transmitted, and the indication information is used to indicate an identifier of the second code block.
6. The method according to claim 5, characterized in that The indication information is further used to indicate a code block type of the second code block, where the code block type includes supporting retransmission or not supporting retransmission.
7. The method according to claim 6, characterized in that: If the value of the indication information is a first preset value, then the code block type of the second code block is not supporting retransmission; If the value of the indication information is not the first preset value, the code block type of the second code block supports retransmission.
8. The method according to any one of claims 5 to 7, characterized in that: The indication information is also used to indicate that the data to be transmitted includes padding bits.
9. The method according to any one of claims 5 to 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 to 9, characterized in that: The receiving first confirmation information from the receiving end includes: A third code block is received from the receiving end, wherein the third code block includes the first confirmation information and a third redundant code, and the third redundant code is used to correct errors of the first confirmation information.
11. The method according to any one of claims 2 to 10, characterized in that: The method further comprises: determining, according to the first confirmation information, that the second code block is not successfully received; The second code block is retransmitted to the receiving end, wherein the code block type of the second code block supports retransmission.
12. A data transmission method, characterized in that: Applied to the receiving end, the method comprises: Receive a first code block from a transmitting end, the first code block including a second code block and a first redundant code, the second code block including a second payload and a second redundant code; The first redundant code is used to correct errors in the second code block, and the second redundant code is used to detect errors in a second payload in the second code block.
13. The method according to claim 12, characterized in that The method further comprises: Sending first confirmation information to the transmitting end, where the first confirmation information indicates a reception status of the second code block.
14. The method according to claim 12 or 13, characterized in that The first redundant code is obtained by performing Reed-Solomon forward error correction RS-FEC encoding on the first payload.
15. The method according to any one of claims 12 to 14, characterized in that: The second redundant code is obtained by performing cyclic redundancy check (CRC) encoding on the second load.
16. The method according to any one of claims 12 to 15, characterized in that: The second load includes indication information and data to be transmitted, and the indication information is used to indicate an identifier of the second code block.
17. The method according to claim 16, characterized in that The indication information is further used to indicate a code block type of the second code block, where the code block type includes supporting retransmission or not supporting retransmission.
18. The method according to claim 17, characterized in that If the value of the indication information is a first preset value, then the code block type of the second code block is not supporting retransmission; If the value of the indication information is not the first preset value, the code block type of the second code block supports retransmission.
19. The method according to any one of claims 16 to 18, characterized in that: The indication information is also used to indicate that the data to be transmitted includes padding bits.
20. The method according to any one of claims 16 to 19, 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.
21. The method according to any one of claims 13 to 20, characterized in that: The sending of the first confirmation information to the sending end includes: A third code block is sent to the sending end, where the third code block includes the first confirmation information and a third redundant code, and the third redundant code is used to correct errors of the first confirmation information.
22. The method according to any one of claims 13 to 21, characterized in that The method further comprises: The second code block retransmitted by the transmitting end is received, wherein a code block type of the second code block supports retransmission.
23. A communication device, characterized in that: Comprising modules for performing the method as claimed in any one of claims 1-11 or 12-22.
24. A communication device, characterized in that: It includes a processor and a communication interface, wherein the communication interface is used to receive signals from other communication devices outside the communication device and transmit them to the processor or send signals from the processor to other communication devices outside the communication device, and the processor is used to implement the method as described in any one of claims 1-11 or 12-22 through logic circuits or execution code instructions.
25. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 11 or 12 to 22 is implemented.
26. A data transmission method, characterized in that: The method is applied to a communication system, which includes a transmitting end for executing the method as claimed in any one of claims 1 to 11 and a receiving end for executing the method as claimed in any one of claims 12 to 22.