Data transmission method, apparatus, and system

By mapping data units to multiple channels and cyclically shifting in each channel, the problem of insufficient anti-burst error capability in data transmission is solved, and higher anti-interference capability and lower power consumption and cost are achieved.

WO2025091949A1PCT designated stage expired Publication Date: 2025-05-08HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/100729
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-31
Filing Date
2024-06-21
Publication Date
2025-05-08

AI Technical Summary

Technical Problem

During data transmission, interference and noise lead to data transmission errors, and the prior art is difficult to effectively improve the system's ability to resist burst errors.

Method used

By mapping the data units to N channels and performing cyclic shifts in each g channel, the distance of the same code block data units transmitted in the same channel is increased, thereby improving the anti-burst interference capability.

Benefits of technology

This method greatly increases the system's anti-burst interference capability, while reducing power consumption and cost, without increasing the number of encoders and channels.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024100729_08052025_PF_FP_ABST
    Figure CN2024100729_08052025_PF_FP_ABST
Patent Text Reader

Abstract

A data transmission method, apparatus, and system, relating to the technical field of data transmission, and used for increasing the distance between data units of a same code block transmitted in a same channel to significantly improve the anti-burst interference capability and reduce the power consumption and cost. The method comprises: acquiring a logic block, wherein the logic block comprises X data units, and X is a positive integer; mapping the X data units into N channels, wherein each channel among the N channels comprises X / N data units, wherein an i-th data unit in an j-th channel is a v-th data unit among the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j, g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer smaller than M, mod represents a modulo operation, and int represents rounding down; and sending the processed data unit in each channel among the N channels.
Need to check novelty before this filing date? Find Prior Art

Description

Data transmission method, device and system

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on October 31, 2023, with application number 202311447642.1 and application name “A Data Transmission Method, Device and System”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of data transmission technology, and in particular to a data transmission method, device and system. Background Art

[0003] During the data transmission process, factors such as interference and noise can cause data transmission errors. In order to avoid such data transmission errors, error correction technology is usually used to correct the data. Forward error correction (FEC) is a commonly used error correction technology used to detect and correct a limited number of errors in transmitted data without the need for retransmission. The main principle of FEC is to perform certain algorithmic processing on the original data and add redundant content to ensure that even if only part of the normal data and redundant content is received, the original data can be fully restored. For example, the original data is divided into multiple code blocks of length k bytes, and then each k-byte code block is encoded into an n-byte code block and transmitted, where k is less than n.

[0004] To further improve a system's resilience to burst errors, interleaving is often employed. This technique distributes adjacent bytes within a code block across different times or channels for transmission. If a transmission error occurs at a certain time or channel, deinterleaving disperses the data transmission error across different code blocks, reducing the error probability within each code block. Interleaving discretizes a longer burst error into random errors, which are then eliminated using FEC. A higher interleaving depth increases the discretization and improves the burst error resilience. Therefore, the quality of the interleaving method determines the transmission path's resilience to burst interference.

[0005] Summary of the Invention

[0006] The present application provides a data transmission method, device and system for increasing the distance between data units of the same code block transmitted in the same channel, thereby greatly improving the ability to resist burst interference while reducing power consumption and cost.

[0007] To achieve the above objectives, the embodiments of the present application adopt the following technical solutions:

[0008] In a first aspect, a data transmission method is provided, which can be applied to a data sending device. The method includes: obtaining a logical block, which can also be called a logical layer data block, and can refer to a data code pattern used when the logical layer implements data processing, the logical block including X data units, where X is a positive integer, where x is the number of the X data units, and the value of x is 0, 1, 2, ..., (X-1); mapping the X data units to N channels; where each of the N channels includes X / N data units, where the i-th data unit in the j-th channel is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; where g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; and sending the processed data units in each of the N channels.

[0009] In the above technical solution, when a data transmitting device obtains a logical block having X data units, it can map these X data units to N channels. Each of the N channels includes at least one data set, and each data set includes multiple data groups corresponding to different cyclic shift values. This increases the distance between data units of the same code block transmitted on the same channel, i.e., increases the number difference between data units of the same code block transmitted on the same channel. This significantly improves the ability to resist burst interference when transmitting the processed data units of the N channels. Furthermore, this solution does not require an increase in the number of encoders or channels, thereby significantly reducing power consumption and costs.

[0010] In a possible implementation of the first aspect, mapping the X data units to N channels includes: allocating the X data units to the N channels, wherein each g channel of the N channels includes at least one data set, and each data set includes multiple data groups; and cyclically shifting the channels containing the data units in the multiple data groups of each data set, wherein the multiple data groups correspond to different cyclic shift values. In the above possible implementation, by performing different cyclic shift values ​​on the multiple data groups in the data set corresponding to each g channel, the distance between data units of the same code block transmitted in the same channel can be increased, that is, the difference in the numbering of data units of the same code block transmitted in the same channel is increased, thereby greatly improving the data's ability to resist burst interference during transmission.

[0011] In a possible implementation of the first aspect, the method further includes: determining g and the number m of rows of data units included in each of the multiple data groups based on M and N. In the above possible implementation, by determining g and the number m of rows of data units included in each of the multiple data groups based on M and N, it is possible to ensure that the distance between data units of the same code block transmitted in the same channel is large, that is, the difference in the numbers of data units of the same code block transmitted in the same channel is large, and the data distributed to the N channels is relatively balanced.

[0012] In a possible implementation of the first aspect, determining g and the number m of rows of data units included in each of the multiple data groups based on M and N includes: determining a greatest common divisor g based on M and N; and determining the number m of rows of data units included in each of the multiple data groups based on M and the greatest common divisor g, where m is a positive integer and M is greater than m. This possible implementation ensures that the distance between data units of the same code block transmitted in the same channel is relatively large, and that the data distributed to the N channels is relatively balanced.

[0013] In a possible implementation of the first aspect, mapping the X data units to N channels includes: for each of the X data units, querying preset corresponding information based on the position information of the data unit in the logical block to determine the mapping position information of the data unit in the N channels; and mapping the data unit to the N channels based on the mapping position information; wherein the preset corresponding relationship is used to indicate the corresponding relationship between the position information of each of the X data units in the logical block and the mapping position information in the N channels. In the above possible implementation, by querying the preset corresponding information, determining the mapping position information of each data unit in the N channels, and then mapping, the data mapping rate can be improved.

[0014] In a possible implementation of the first aspect, the cyclic shift value corresponding to the i-th data unit in the j-th channel is equal to int(i / m) mod g. In this possible implementation, the distance between data units of the same code block transmitted in the same channel can be increased, that is, the difference in the numbers of data units of the same code block transmitted in the same channel can be increased, thereby greatly improving the ability of data to resist burst interference during transmission.

[0015] In one possible implementation of the first aspect, obtaining the logical block includes: performing code block mapping on the data to be transmitted to obtain M pre-encoded code blocks; and encoding the M pre-encoded code blocks to obtain the logical block. In this possible implementation, by performing code block mapping and encoding on the data to be transmitted, the distance between data units of the same code block transmitted on the same channel can be increased. Furthermore, when data transmission errors occur, error correction can be performed using check bits in the encoding process, thereby providing resistance to sudden interference.

[0016] In a possible implementation of the first aspect, encoding the M pre-encoded code blocks to obtain the logical block includes: encoding the M pre-encoded code blocks to obtain M post-encoded code blocks; and multiplexing the M post-encoded code blocks with logical layer management information to obtain the logical block. In this possible implementation, multiplexing the M post-encoded code blocks with the logical layer management information can improve data transmission efficiency and reduce the number of interactions between devices.

[0017] In a second aspect, a data transmission method is provided, the method comprising: receiving data units from each of N channels; wherein each of the N channels includes X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit in the X data units, v = int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k = i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; demapping the data units in the N channels to obtain a logical block including the X data units. Optionally, the cyclic shift value corresponding to the i-th data unit in the j-th channel is equal to int(i / m)mod g.

[0018] In a possible implementation of the second aspect, the data units in the N channels are demapped, including: performing a cyclic shift on the channels where the data units in the multiple data groups of each data set are located, the multiple data groups corresponding to different cyclic shift values; obtaining the data units in the N channels after the cyclic shift to obtain the logical block.

[0019] In a possible implementation manner of the second aspect, the method further includes: determining g and the number m of rows of data units included in each data group in the multiple data groups based on M and N.

[0020] In a possible implementation of the second aspect, g and the number of rows m of data units included in each data group in the multiple data groups are determined based on M and N, including: determining the greatest common divisor g based on the M and the N; determining the number of rows m of data units included in each data group in the multiple data groups based on the M and the greatest common divisor g, where m is a positive integer and M is greater than m.

[0021] In a possible implementation of the second aspect, demapping the data units in the N channels to obtain a logical block including X data units includes: for each data unit in the N channels, querying preset corresponding information based on mapping position information of the data unit in the N channels to determine position information of the data unit in the X data units; and demapping the data unit into the logical block based on the position information; wherein the preset corresponding relationship is used to indicate a corresponding relationship between position information of each data unit in the X data units in the logical block and mapping position information in the N channels.

[0022] In a possible implementation manner of the second aspect, the method further includes: decoding the logic block to obtain M decoded code blocks; and performing channel demapping on the M decoded code blocks to obtain data to be transmitted.

[0023] In a possible implementation of the second aspect, decoding the logical block to obtain M decoded code blocks includes: demultiplexing the logical block to obtain M pre-decoding code blocks and logical layer management information; decoding the M pre-decoding code blocks to obtain the M decoded code blocks.

[0024] According to a third aspect, a data sending device is provided, comprising: an acquisition unit for acquiring a logical block, the logical block comprising X data units, where X is a positive integer; a processing unit for mapping the X data units to N channels; wherein each of the N channels comprises X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit in the X data units, v = int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), and k = i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; and a sending unit for sending the processed data units in each of the N channels.

[0025] In a possible implementation of the third aspect, the processing unit is further used to: allocate the X data units to the N channels, where each g channel of the N channels includes at least one data set, and each data set includes multiple data groups; and cyclically shift the channels where the data units in the multiple data groups of each data set are located, where the multiple data groups correspond to different cyclic shift values.

[0026] In a possible implementation manner of the third aspect, the processing unit is further configured to: determine, based on M and N, g and the number m of rows of data units included in each of the multiple data groups.

[0027] In a possible implementation of the third aspect, the processing unit is also used to: determine the greatest common divisor g based on M and N; determine the number of rows m of data units included in each data group in the multiple data groups based on M and the greatest common divisor g, where m is a positive integer and M is greater than m.

[0028] In a possible implementation of the third aspect, the processing unit is further configured to: for each data unit in the X data units, query preset corresponding information based on position information of the data unit in the logical block to determine mapping position information of the data unit in the N channels; and map the data unit to the N channels based on the mapping position information; wherein the preset corresponding relationship is used to indicate a corresponding relationship between the position information of each data unit in the X data units in the logical block and the mapping position information in the N channels.

[0029] In a possible implementation manner of the third aspect, the cyclic shift value corresponding to the data unit in the i-th row and the j-th column is equal to int(i / m) mod g.

[0030] In a possible implementation manner of the third aspect, the processing unit is further configured to: perform code block mapping on the data to be transmitted to obtain M pre-encoded code blocks; and perform encoding processing on the M pre-encoded code blocks to obtain the logical block.

[0031] In a possible implementation of the third aspect, the processing unit is further used to: perform encoding processing on the M pre-encoded code blocks to obtain M post-encoded code blocks; and multiplex the M post-encoded code blocks with the logical layer management information to obtain the logical block.

[0032] In a fourth aspect, a data receiving device is provided, comprising: a receiving unit, configured to receive data units of each of N channels; wherein each of the N channels includes X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit of the X data units, v = int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k = i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; and a processing unit, configured to demap the data units in the N channels to obtain a logical block including the X data units.

[0033] In a possible implementation of the fourth aspect, the processing unit is also used to: perform cyclic shift on the data units in the multiple data groups of each data set, the multiple data groups corresponding to different cyclic shift values; obtain the data units in the N channels after the cyclic shift to obtain the logical block.

[0034] In a possible implementation manner of the fourth aspect, the processing unit is further configured to: determine, based on M and N, g and the number m of rows of data units included in each of the multiple data groups.

[0035] In a possible implementation of the fourth aspect, the processing unit is also used to: determine the greatest common divisor g based on M and N; determine the number of rows m of data units included in each data group in the multiple data groups based on M and the greatest common divisor g, where m is a positive integer and M is greater than m.

[0036] In a possible implementation of the fourth aspect, the processing unit is further configured to: for each data unit in the N channels, query preset corresponding information based on mapping position information of the data unit in the N channels to determine position information of the data unit in the X data units; and demap the data unit to the logical block based on the position information; wherein the preset corresponding relationship is used to indicate a corresponding relationship between position information of each data unit in the X data units in the logical block and mapping position information in the N channels.

[0037] In a possible implementation manner of the fourth aspect, the cyclic shift value corresponding to the i-th data unit in the j-th channel is equal to int(i / m) mod g.

[0038] In a possible implementation manner of the fourth aspect, the processing unit is further used to: decode the logic block to obtain M decoded code blocks; and perform decoding block mapping on the M decoded code blocks to obtain data to be transmitted.

[0039] In a possible implementation of the fourth aspect, the processing unit is further used to: demultiplex the logical block to obtain M pre-decoding code blocks and logical layer management information; and decode the M pre-decoding code blocks to obtain the M post-decoding code blocks.

[0040] In a fifth aspect, a chip is provided, comprising: an interleaving circuit and a transmitter, wherein the interleaving circuit and the transmitter are used to support the chip in executing the data transmission method provided in the first aspect or any possible implementation manner of the first aspect.

[0041] In a sixth aspect, a chip is provided, comprising: an interleaving circuit and a receiver, wherein the interleaving circuit and the receiver are used to support the chip in executing the data transmission method provided in the second aspect or any possible implementation manner of the second aspect.

[0042] In the seventh aspect, a data transmission system is provided, which includes a data sending device and a data receiving device; wherein the data sending device includes the device provided by the third aspect or any possible implementation of the third aspect, or includes the chip provided by the fifth aspect, and is used to execute the data transmission method provided by the first aspect or any possible implementation of the first aspect; the data receiving device includes the device provided by the fourth aspect or any possible implementation of the fourth aspect, or includes the chip provided by the sixth aspect, and is used to execute the data transmission method provided by the second aspect or any possible implementation of the second aspect.

[0043] In an eighth aspect, a readable storage medium is provided, in which instructions are stored. When the instructions are executed on a device, the device executes the data transmission method provided in the first aspect or any possible implementation of the first aspect.

[0044] In a ninth aspect, a readable storage medium is provided, in which instructions are stored. When the instructions are executed on a device, the device executes the data transmission method provided in the second aspect or any possible implementation of the second aspect.

[0045] In the tenth aspect, a computer program product is provided, which includes: a computer program (also referred to as code, or instructions), which, when executed, enables a computer to execute the data transmission method provided in the first aspect or any possible implementation of the first aspect.

[0046] In the eleventh aspect, a computer program product is provided, which includes: a computer program (also referred to as code, or instructions), which, when executed, enables a computer to execute the data transmission method provided in the second aspect or any possible implementation of the second aspect.

[0047] It can be understood that the beneficial effects that can be achieved by any of the data sending devices, data receiving devices, chips, data transmission systems, computer-readable storage media and computer program products provided above can correspond to the beneficial effects of the data transmission method provided above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] FIG1 is a schematic structural diagram of a data transmission system provided in an embodiment of the present application;

[0049] FIG2 is a schematic diagram of the structure of another data transmission system provided in an embodiment of the present application;

[0050] FIG3 is a schematic diagram of basic components of an electronic device provided in an embodiment of the present application;

[0051] FIG4 is a schematic diagram of inter-interface transmission provided in an embodiment of the present application;

[0052] FIG5 is a schematic diagram of an RS encoding provided in an embodiment of the present application;

[0053] FIG6 is a schematic diagram of a code block transmission provided in an embodiment of the present application;

[0054] FIG7 is a schematic diagram of data processing during a data transmission process provided by an embodiment of the present application;

[0055] FIG8 is a diagram illustrating an example of data processing provided by an embodiment of the present application;

[0056] FIG9 is a diagram illustrating another example of data processing provided in an embodiment of the present application;

[0057] FIG10 is a flow chart of a data transmission method provided in an embodiment of the present application;

[0058] FIG11 is a schematic diagram of data processing during a data transmission process provided by an embodiment of the present application;

[0059] FIG12 is a schematic diagram of data processing during a data transmission process provided by an embodiment of the present application;

[0060] FIG13 is a schematic diagram of data processing in another data transmission process provided by an embodiment of the present application;

[0061] FIG14 is a schematic diagram of mapping a data unit to N channels according to an embodiment of the present application;

[0062] FIG15 is a schematic diagram of performing code block mapping on a data unit according to an embodiment of the present application;

[0063] FIG16 is a schematic diagram of encoding a code block according to an embodiment of the present application;

[0064] FIG17 is a schematic diagram of performing cyclic shift on a channel where a data unit in N channels is located, provided by an embodiment of the present application;

[0065] FIG18 is a diagram illustrating an example of a data transmission method provided in an embodiment of the present application;

[0066] FIG19 is a diagram illustrating another example of a data transmission method provided in an embodiment of the present application;

[0067] FIG20 is a schematic flow chart of another data transmission method provided in an embodiment of the present application;

[0068] FIG21 is a schematic diagram of data processing in another data transmission process provided by an embodiment of the present application;

[0069] FIG22 is a schematic structural diagram of a data sending device provided in an embodiment of the present application;

[0070] FIG23 is a schematic structural diagram of another data sending device provided in an embodiment of the present application;

[0071] FIG24 is a schematic structural diagram of a data receiving device provided in an embodiment of the present application;

[0072] FIG25 is a schematic structural diagram of another data receiving device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0073] The following will discuss in detail the making and use of various embodiments. However, it should be understood that many applicable inventive concepts provided herein can be implemented in a variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to implement and use the present application and technology and do not limit the scope of this application.

[0074] Unless defined otherwise, all technical and scientific terms used herein have the same meanings as commonly understood by one of ordinary skill in the art.

[0075] Various circuits or other components may be described or referred to as being "configured to" perform one or more tasks. In this case, "configured to" is used to imply structure by indicating that the circuit / component includes structure (e.g., circuitry) that performs the one or more tasks during operation. Thus, even when a specified circuit / component is not currently operational (e.g., not turned on), the circuit / component may be referred to as being configured to perform the task. Circuits / components used with the phrase "configured to" include hardware, such as circuitry that performs an operation, etc.

[0076] The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application. In the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that there may be three relationships. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b or c can represent: a, b, c, a and b, a and c, b and c, a, b and c; where a, b and c can be single or multiple.

[0077] The embodiments of this application use terms such as "first" and "second" to distinguish objects with similar names, functions, or effects. Those skilled in the art will understand that terms such as "first" and "second" do not limit the quantity or order of execution. The term "coupled" is used to indicate an electrical connection, including direct connection via wires or connectors or indirect connection via other devices. Therefore, "coupling" should be considered a broadly defined electronic communication connection.

[0078] It should be noted that, in this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described in this application as "exemplary" or "for example" should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.

[0079] The technical solution provided in this application can be applied to a data transmission system including multiple data transmission devices, which can be devices, chips applied to devices, or interface devices, etc. In this data transmission system, a data transmission device (for example, a data sending device) and a data transmission device (for example, a data receiving device) can be directly connected, or indirectly connected through a switching device such as a router, that is, the multiple data transmission devices can all be connected to the switching device. In this application, data transmission can be performed between the multiple data transmission devices in a wired manner or in a wireless manner. In addition, when data transmission is performed between the multiple data transmission devices, signals can be transmitted directly or through an interface device.

[0080] When the data transmission device is a chip in a device, the chips in the data transmission system can be interconnected via wired or wireless means. The chip can be a chip in the device, a chip in a docking station, or a chip in an adapter, etc. The docking station can be connected to a Gigabit Ethernet port, a video graphics array (VGA), an HDMI port, a flash memory (TF) card, a secure digital (SD) card, a charging port, and a USB port, etc.

[0081] Optionally, when the data transmission device is a chip, the chip may further include an interface module, that is, the present application may be applied to an interface module for interconnecting chips. The interface module may be understood as an intellectual property (IP) module integrated inside the chip. Alternatively, the interface module may also be sold separately as an IP module. For example, the chip may be a system on chip (SoC), a central processing unit (CPU), or a graphics processing unit (GPU), etc., and the above-mentioned interface module may be an interface module in the SoC, CPU, or GPU, etc. Optionally, the interface module may be a transmitting circuit and / or a receiving circuit.

[0082] The following uses the data transmission system including multiple devices as an example to illustrate the structure of the data transmission device.

[0083] Figure 1 is a structural diagram of a data transmission system provided by an embodiment of the present application. The data transmission system includes a first device 110 and a second device 120, and the first device 110 and the second device 120 are connected by wired or wireless means, for example, by a cable. Among them, signals can be transmitted between the first device 110 and the second device 120, for example, audio and video data can be transmitted or charging signals can be transmitted. In one example, the first device 110 can be a set-top box, and the second device 120 can be a TV. The set-top box and the TV can be connected by a cable, and the set-top box can transmit audio and video data to the TV via a cable. In another example, the first device 110 is a display, and the second device 120 is a game controller. The display and the game controller can be connected by a cable, and the game controller can transmit control information to the display via a cable.

[0084] Optionally, the first device 110 may include interface A, and the second device may include interface B. The connection between the first device 110 and the second device 120 can be specifically a connection between interface A of the first device 110 and interface B of the second device 120. For example, interface A of the first device 110 and interface B of the second device 120 are connected via a cable.

[0085] FIG2 is a structural diagram of another data transmission system provided in an embodiment of the present application. The data transmission system includes a plurality of devices 210 and a router 220. The plurality of devices 210 can be connected to the router 220 by wired or wireless means. For example, the plurality of devices 210 can all be connected to the router 220 by cables. Among them, any two devices in the plurality of devices 210 can transmit signals through the router 220, for example, transmitting audio and video data or transmitting charging signals. In one example, the plurality of devices 210 can include a display 211, a set-top box 212 and an audio player (e.g., MP3) 213. The set-top box 212 can transmit audio and video data to the display 211 through the router 220. The set-top box 212 can also transmit audio data to the audio player 213 through the router 220. In addition, there can also be two interconnected devices in the plurality of devices 210. For example, the plurality of devices 210 can also include a game controller 214. The game controller 214 can be connected to the display 211 and transmit control information to the display 211.

[0086] Optionally, each of the multiple devices 210 may include an interface, and the router 220 may include multiple interfaces, and the interface of each of the multiple devices 210 may be connected to one of the multiple interfaces of the router 220. For example, the multiple devices 210 include a display, a set-top box, a game controller, and an audio player, and the multiple interfaces of the router 220 include a first interface to a fourth interface, the interface of the display is connected to the first interface of the router 220 via a cable, the interface of the set-top box is connected to the second interface of the router 220 via a cable, the interface of the game controller is connected to the third interface of the router 220 via a cable, and the interface of the audio player is connected to the fourth interface of the router 220 via a cable.

[0087] The devices in the above-mentioned system with data transmission capabilities can be referred to as communication devices. The communication devices can be deployed on land, including indoors or outdoors, and can be handheld or vehicle-mounted. The communication devices can also be deployed on water (such as ships) or in the air (such as aircraft, balloons, and satellites). The communication devices can be applied in different scenarios. Exemplarily, the communication device may include, but is not limited to: a mobile phone, a tablet computer, a laptop computer, a PDA, a mobile internet device (MID), a camera, a wearable device (such as a smart watch, a smart bracelet, a pedometer, etc.), an audio device, an audio and video player, a set-top box, a game console, a printer, a mouse, a keyboard, an in-vehicle device (such as a car, a bicycle, an electric car, an airplane, a ship, a train, a high-speed train, etc.), a virtual reality (VR) device, an augmented reality (AR) device, a wireless terminal in industrial control, a smart home device (such as a refrigerator, a television, an air conditioner, an electric meter, etc.), an intelligent robot, a workshop device, a wireless terminal in self-driving, a wireless terminal in remote medical surgery, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, or a smart home. Wireless terminals in homes, flying devices (e.g., smart robots, hot air balloons, drones, airplanes), etc. Optionally, the signals transmitted between the above communication devices may include, but are not limited to: audio and video signals, radio frequency signals, IoT data, and charging signals.

[0088] In the present application, the interface specifications used for signal transmission between devices in a data transmission system may include, but are not limited to: universal serial bus (USB) interface specifications, high definition multimedia interface (HDMI) interface specifications, display port (DP) interface specifications, unified multimedia interconnection (UMI) interface specifications, and peripheral component interconnect express (PCI-Express) interface specifications, etc. Accordingly, the interface may be HDMI, miniHDMI, micro HDMI, type-A interface, type-B interface, Micro-B, and type-C interface, etc.

[0089] For example, in the above examples, the interface connection method between the set-top box and the TV, or the interface connection method between the game console and the monitor can be connected through a USB cable, and the interface standard followed is the USB interface specification, or the connection method can be connected through an HDMI cable, and the interface standard followed is the HDMI interface specification.

[0090] It will be understood that the interface specifications used for signal transmission between the above-mentioned devices are merely exemplary. In actual applications, the interface specifications may also include other or any interface specifications that may appear in the future, such as a unified media interconnection (UMI) interface, etc., and the embodiments of the present application are not specifically limited to this.

[0091] In this application, when the device is an electronic device, FIG3 shows a schematic diagram of the basic components of such an electronic device. The electronic device includes an interface chip 200 (UMI interface), which includes one or more adapters 201, a management and control adapter 202, and a port 203. Alternatively, when the electronic device is a routing device, the interface chip 200 includes only one or more ports 203. Each of the one or more adapters 201 can be coupled to an external component of the interface chip 200. The one or more management and control adapters 202 can be coupled to a component external to the interface chip 200 for management and control. The port 203 can be coupled to a connector 204 of the electronic device, which is used to couple to external devices of the electronic device. One or more adapters 201 can be a transmit / receive adapter. For example, when the adapter 201 is used to adapt audio and video formats, the adapter 201 can be an audio and video transmit / receive adapter. When the adapter 201 is used to adapt a third-party protocol, the adapter 201 can be a third-party protocol adapter.

[0092] For example, when port 203 is a downlink port, the transmission adapter can be used to adapt the service information to be sent into service information that can be transmitted on port 203 of the interface chip, and then send the service information out through port 203. When port 203 is an uplink port, the reception adapter 201 can be used to adapt the service information received from port 203 into service information to be processed internally by the electronic device. The management and control adapter 202 can be used to adapt control information.

[0093] The basic components of different electronic devices can be combined to form a variety of different device types. For example, an electronic device may include a source device comprising at least one downstream port and at least one audio and video transmitter adapter, or a source device comprising at least one upstream port and an audio and video receiver adapter, or a docking station device comprising at least one upstream port, at least one audio and video receiver adapter, and at least one traditional audio and video interface, or a routing device comprising at least one downstream port and at least one upstream port without an audio and video transmitter adapter or an audio and video receiver adapter, or a composite device having both an upstream port and a downstream port.

[0094] Figure 4 shows a schematic diagram of inter-interface transmission provided by an embodiment of the present application. The uplink and downlink ports between devices include a main link (ML) and a sideband link (SL). Furthermore, a power bus link (PL) and a cable information link (CL) may also be included. The cable information link can be used to transmit cable information, such as cable model and cable capability information.

[0095] The primary link is used for high-speed data transmission, such as the transmission of audio and video signals, while the auxiliary link is mainly used for device management and control, such as device discovery, capability query, device configuration, device control, etc. It can also be used for low-speed data transmission and control message transmission.

[0096] In some scenarios, the primary link consists of one or more lanes, each supporting only unidirectional transmission, while the auxiliary link consists of two single-ended lanes in different directions. Alternatively, some lanes in the primary link are unidirectional, others are bidirectional, and the auxiliary link is bidirectional. A primary link can include multiple lanes, for example, 2, 5, or 9. The greater the number of lanes, the faster the data transmission speed.

[0097] In addition, both the uplink port and the downlink port may include multiple pins, such as a pin connected to a ground line, a pin connected to a power line, a pin connected to a main link channel, and a pin connected to an auxiliary link channel.

[0098] During signal transmission, factors such as interference and noise can cause data transmission errors. To prevent these errors, error correction techniques are often used. Forward error correction (FEC) is a commonly used error correction technique used to detect and correct a limited number of errors in transmitted data without requiring retransmission. Common FEC encoding schemes include low-density parity check codes (LDPC), turbo codes, polar codes, Reed-Solomon (RS) codes, and convolutional codes. Reed-Solomon codes are also referred to as Reed-Solomon codes. The main principle of FEC is to perform certain algorithmic processing on the original data to add redundancy, sacrificing a certain amount of transmission bandwidth. This ensures that even if only partial normal data and redundant content are received, the original data can be fully recovered. Among them, RS code is a common FEC encoding scheme. The following uses RS code as an example to illustrate the FEC encoding process.

[0099] For example, FIG5 is a schematic diagram of FEC encoding using RS code. The encoding process may include: dividing the data to be transmitted into code blocks of k bytes (i.e., including information bits), where one byte is equal to 8 bits; performing RS encoding on each code block to obtain an encoded code block of n bytes (i.e., including information bits and check bits), where k is less than or equal to n. For example, in one example, an RS (194, 192) code based on GF (256) is used, in which case k = 192 and n = 194. For another example, an RS (48, 46) code based on GF (256) is used, in which case k = 46 and n = 48. GF refers to a Galois field (GF), which can also be called a finite field.

[0100] To further improve the system's ability to withstand burst errors, interleaving is often used. This technique disperses adjacent code blocks across different times or channels for transmission. If a transmission error occurs on a channel during a certain period of time, deinterleaving disperses the erroneous data across different code blocks, reducing the error probability for each code block.

[0101] For example, as shown in Figure 6, after four code blocks ([A1 A2 A3 A4][B1 B2 B3 B4][C1 C2 C3 C4][D1 D2 D3 D4]) are interleaved, [A1 B1 C1 D1] is transmitted on channel 1, [A2 B2 C2 D2] is transmitted on channel 2, [C1 C2 C3 C4] is transmitted on channel 3, and [D1 D2 D3 D4] is transmitted on channel 4. If a transmission error occurs in [A2 B2 C2 D2] on channel 2, then after deinterleaving, A2 to D2 are dispersed into four code blocks ([A1 A2 A3 A4][B1 B2 B3 B4][C1 C2 C3 C4][D1 D2 D3 D4]), thereby reducing the error rate of a single code block. Since the error rate of a single code block is below a certain value, it can be corrected using error correction codes, and the receiving end can finally obtain completely correct data. Among them, the farther the data of the same code block transmitted in the same channel are separated after interleaving, the greater the interleaving depth, the greater the discreteness, and the stronger the ability to resist burst errors.

[0102] In high-speed data transmission, encoded data is distributed across multiple channels for transmission (for example, in one embodiment, the encoded data is evenly distributed byte by byte across enabled channels). The more channels there are, the more code blocks are interleaved, and the interleaved distance between data within the same code block transmitted on the same channel is greater, thereby improving the ability to resist sudden interference. However, more channels and more code blocks also mean greater power consumption. The following example illustrates the data processing process during high-speed data transmission, which can include code block mapping, encoding, and channel mapping.

[0103] In one example, as shown in FIG7 , a schematic diagram of data processing during high-speed data transmission is shown, and FIG8 is a schematic diagram of the code stream, code block, and channel mapping corresponding to the data processing process. The figure uses RS encoding (the corresponding encoder is called an RS-FEC encoder) and the number of RS-FEC encoders is 3 (or the number of encoded code blocks is 3) as an example. It should be noted that the scheme described in this application is applicable to various types of encoders and is not limited to RS-FEC encoders. Specifically, the data processing process may include: performing code block mapping on the code stream A to be transmitted to obtain three code blocks and respectively represent them as code blocks E1 to E3; using the RS-FEC encoder to encode code blocks E1 to E3 to obtain three encoded code blocks and respectively represent them as code blocks C1 to C3, and three RS-FEC encoders can be used to encode E1 to E3 respectively, or one encoder can be used to encode code blocks E1 to E3 in sequence; channel mapping is performed on code blocks C1 to C3, that is, the data in code blocks C1 to C3 are mapped to N channels (respectively represented as channel 0 to channel N-1). In Figure 8, N is 4, and the four channels are numbered 0 to 3. Codestream A consists of 144 bytes of data, represented by B0, B1, ..., B233. The numbers 0 to 143 are the sequence numbers of the 144 data units (bytes) in codestream A. After code block mapping, the data units in code block E1 are [B0 B3 B6 B9 B12 ... B141], the data units in code block E2 are [B1 B4 B7 B10 B13 ... B142], and the data units in code block E3 are [B2 B5 B8 B11 B14 ... B143]. For simplicity, the figure shows only the byte numbers corresponding to the data units in each code block.

[0104] According to the above example, in the same channel, the distance between two data output by the same RS-FEC encoder is 12, or the interleaving depth is 12. This interleaving depth is equal to the least common multiple of the number of RS-FEC encoders or code blocks, which is 3, and the number of channels, which is 4. For another example, as shown in FIG9 , if the number of RS-FEC encoders or code blocks is 6 and the number of channels is 9, and code stream A to be transmitted is subjected to code block mapping, encoding, and channel mapping in a similar manner as described above, the resulting interleaving depth is 18, which is equal to the least common multiple of the number of RS-FEC encoders or code blocks, which is 6, and the number of channels, which is 9. In Figure 9, the six code blocks obtained after code block mapping of codestream A are represented as code blocks E1 to E6. The data units in code block E1 are [0 6 12 18 ... 282], the data units in code block E2 are [1 7 13 19 ... 283], the data units in code block E3 are [2 8 14 20 ... 284], the data units in code block E4 are [3 9 15 21 ... 285], the data units in code block E5 are [4 10 16 22 ... 286], and the data units in code block E6 are [5 11 17 23 ... 287]. The nine channels are represented as 0 to 8. To simplify the illustration, the figure only shows the byte numbers corresponding to the data units in each code block.

[0105] It can be seen that in the above-mentioned code block mapping, encoding, and mapping method, in the same channel, the minimum value of the byte number corresponding to any two data units of the same RS FEC encoder code block (referred to as the interleaving depth in this article, or the distance between any two data units) is equal to the least common multiple of the number of RS-FEC encoders and the number of channels. When this method is applied to scenarios with relatively long error or interference time, it is necessary to increase the number of RS-FEC encoders or open more channels to increase the interleaving depth. Increasing the number of encoders and the number of channels will increase cost and power consumption, that is, there are problems of high power consumption and high cost.

[0106] Based on this, an embodiment of the present application provides a data transmission method that can increase the distance between data units of the same code block transmitted in the same channel during data transmission (i.e., the difference between the byte numbers of any two data units in the same code block), thereby greatly increasing the interleaving depth and improving the system's ability to resist burst interference. Compared with the method in the above example, this method does not increase the number of encoders and the number of channels, thereby greatly reducing power consumption and cost. This method can be applied to any data transmission system, such as the data transmission system provided above. The specific process of this method is described below.

[0107] Figure 10 is a flow chart of a data transmission method provided in an embodiment of the present application. The method may include the following steps. This method may be applied to a data transmission system including a data transmitting device and a data receiving device. The data transmitting device and the data receiving device may be connected via a wired or wireless connection, and the connection may be a direct connection or an indirect connection. Figure 11 is an example of data processing corresponding to the data transmission method shown in Figure 10, and S302 below is referred to as channel mapping.

[0108] S301: The data transmitting apparatus obtains a data block to be channel mapped, the data block to be channel mapped includes X data units, where X is a positive integer. In FIG11 , the X data units are represented as B(0) to B(X-1).

[0109] The data unit may refer to a basic unit or basic element in the data block to be channel mapped. A data block to be channel mapped may include multiple data units, each of which may include data of a fixed length, for example, each data unit may include 1 bit of data, 1 byte of data, or 2 bytes of data.

[0110] The data block to be channel mapped may only include data to be transmitted, for example, the data block to be channel mapped may only include a block body, which is a logical layer data block (LLB) and includes X data units. Alternatively, the data block to be channel mapped may include both a block body and check data, the block body being a logical layer data block, and the check data may refer to check data (or check bytes) corresponding to FEC encoding of the block body. For example, the data block to be channel mapped may include a block body and a block tail, the block body being a logical layer data block, and the block tail including check data of the logical layer data block. For another example, the data block to be channel mapped may be formed by multiplexing a plurality of logical layer data blocks (optionally, also including check data of the logical layer data blocks).

[0111] To simplify the description, this article calls the data block to be channel mapped a logical block.

[0112] The length X of the logic block data may be a fixed value, or may be adjusted according to the actual amount of data to be transmitted.

[0113] In one example, the logical block may consist of 240 bytes, and all of the 240 bytes constitute the block body. If each data unit includes 1 byte of data, the logical block includes 240 data units. Alternatively, the logical block may consist of 240 bytes, and the first 230 bytes of the 240 bytes constitute the block body, and the last 10 bytes constitute the block trailer, which is a check byte corresponding to the block body. If each data unit includes 1 byte of data, the logical block includes 230 data units and 10 bytes of check data.

[0114] In another example, the logical block may consist of 480 bytes, all of which constitute the block body. If each data unit includes 1 byte of data, the logical block includes 480 data units. Alternatively, the logical block may consist of 480 bytes, with the first 460 bytes of the 480 bytes constituting the block body and the last 20 bytes constituting the block trailer, which contains the check bytes corresponding to the block body. If each data unit includes 1 byte of data, the logical block includes 460 data units and 20 bytes of check data.

[0115] Optionally, the X data units may correspond to M code blocks (or M encoders), where M is a positive integer. Exemplarily, the value of M may be a positive integer, such as 1, 3, 5, 6, 8, or 10. The specific value of M is not limited in this embodiment of the present application.

[0116] In a possible embodiment, as shown in FIG12 , a data sending device obtains a data block to be channel mapped, which may specifically include: performing code block mapping on the data to be transmitted (or referred to as an input code stream, which may be represented as A(0) to A(X'-1)), the data to be transmitted including X' data units, for example, performing code block mapping on the X' data units in a row-writing and column-reading manner, or column-writing and row-reading manner, to obtain M pre-encoded code blocks, which are respectively represented as code blocks E1 to EM; performing encoding processing on the M pre-encoded code blocks, for example, performing RS-FEC encoding processing on the M pre-encoded code blocks, to obtain M post-encoded code blocks, which are respectively represented as code blocks C1 to CM, code blocks C1 to CM including pre-encoded code blocks and check information, the number of data units of code blocks C1 to CM is X", X" is greater than or equal to X', and the data block to be channel mapped includes the M encoded code blocks; thereafter, the data block to be channel mapped may be channel mapped according to the following step S302. At this time, X" is equal to X, and the X data units include X' data units and parity information of M pre-encoded code blocks.

[0117] Optionally, when the number of data units X' included in the above-mentioned data to be transmitted is an integer of M, the number X of data units included in the above-mentioned data block to be channel mapped can be an integer multiple of M. If X' and / or X are not an integer multiple of M, they can be filled by data filling so that X' and / or X are an integer multiple of M after filling. The filled data can be predetermined (for example, filled with 00), or filled with random bits. The embodiment of the present application does not impose specific restrictions on this. In addition, the M encoded code blocks can be obtained by encoding using M encoders, in which case the encoding delay is relatively short; or, the M encoded code blocks can also be obtained by time division multiplexing less than M encoders, for example, serial encoding with 1 encoder. The latter method saves cost, but it is necessary to cache the data and wait until all the M pre-encoded code blocks are encoded before performing channel mapping, which has a longer delay.

[0118] Furthermore, when other information to be transmitted exists in the logical layer, the data transmitting apparatus may further multiplex (or multiplex) the M coded code blocks with the other information. For example, in conjunction with FIG12 , as shown in FIG13 , after obtaining the M coded code blocks, the data transmitting apparatus may multiplex the M coded code blocks with the other information to obtain the aforementioned data blocks to be channel-mapped. For example, the other information may include logical layer management information, so that the obtained data blocks to be channel-mapped may include the M coded code blocks and the logical layer management information.

[0119] It can be understood that when the data block to be channel mapped only includes the M encoded code blocks, the value of X” is equal to the value of X, that is, the X data units in the data block to be channel mapped are the X' data units in the data to be transmitted (optionally, also including the verification information of the M code blocks corresponding to the X' data units); when the data block to be channel mapped includes both the M encoded code blocks and the logical layer management information, the value of X” is less than the value of X, that is, the X data units in the data block to be channel mapped include the X' data units in the data to be transmitted, the verification information of the M code blocks, and the data units corresponding to the logical layer management information.

[0120] S302: The data sending device maps the X data units to N channels, where each g channel of the N channels includes at least one data set, and each data set includes multiple data groups. The multiple data groups correspond to different cyclic shift values, and the cyclic shift value is a non-negative integer less than g. Wherein, N and g are positive integers, N is greater than or equal to g, for example, the value of g can be a factor of N. In Figure 12, the N channels are represented as channel 0 to channel N-1, the data units mapped to the N channels are represented as D(0, 0) to D(W-1, N-1), and the i-th data unit of the j-th channel is represented as D(i, j), where W=int(X / N)+1, and int represents rounding down. In this application, mapping the X data units to N channels is also called allocating or distributing the X data units to N channels for the next step of processing.

[0121] The difference between the cyclic shift values ​​corresponding to any two adjacent data groups in the multiple data groups may be equal. In one example, the cyclic shift values ​​corresponding to the multiple data groups may be cyclically increasing in sequence. For example, the multiple data groups may include three data groups, and the cyclic shift values ​​corresponding to the three data groups may be 0, 1, and 2, respectively. For another example, the multiple data groups may include six data groups, and the cyclic shift values ​​corresponding to the six data groups may be 0, 1, 2, 0, 1, and 2, respectively.

[0122] In addition, each of the multiple data groups may include m rows of data units, that is, each data group includes m rows of data units, where M is greater than m and m is a positive integer. Each row of the m rows of data units includes g columns of data units, and each of the g columns corresponds to one of the g channels.

[0123] Furthermore, the N channels may also be referred to as N enabled channels, specifically referring to enabled channels, or being understood as channels actually used to transmit data. The number of channels possessed by the data transmitting device may be greater than or equal to N, i.e., the N channels may be part or all of all channels possessed by the data transmitting device.

[0124] Optionally, each data group among the multiple data groups is obtained by cyclically shifting the data units of the data group.

[0125] In a possible embodiment, the data sending device maps the X data units to N channels, which may specifically include: the data sending device distributes the X data units to the N channels according to a certain rule, each of the N channels includes at least one data set, each data set includes multiple data groups, and the multiple data groups correspond to different cyclic shift values.

[0126] Optionally, the values ​​of g and m may be determined based on the number M of coding blocks and the number N of channels included in the logic block. That is, the data transmitting apparatus may determine g and the number m of rows of data units included in each data group based on M and N. The following describes an example of how to determine the values ​​of g and m.

[0127] For example, the data sending device determines the value of g and the value of m, which may include: determining the greatest common divisor g based on M and N, that is, g is the greatest common divisor of M and N; determining the number of rows m of data units included in each data group based on M and the greatest common divisor g, such as m = M / g, that is, the value of m is equal to the quotient of M and g.

[0128] Exemplarily, the X data units satisfy the following conditions after being mapped to the N channels: assuming that the N channels include W rows and N columns of data units (or each channel includes X / N data units), the cyclic shift value corresponding to the data unit in the i-th row and j-th column (or the i-th data unit in the j-th channel) is equal to int(i / m) mod g; and / or, the data unit in the i-th row and j-th column is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j, v=0, 1, 2, ..., (X-1). Wherein, g=gcd(M, N), m=M / g, gcd represents the greatest common divisor, mod represents the remainder, int represents rounding down, * represents multiplication, / represents division, and W is a positive integer. The X data units are mapped to the N channels, that is, the i-th data unit D(i, j) of the j-th channel is equal to B(v).

[0129] In conjunction with the above description, FIG14 shows a distribution diagram after the X data units are mapped to the N channels, and the N channels are divided into n interleaving areas (represented as interleaving area 0 to interleaving area n-1, n=N / g) when each adjacent g channels are divided. The cyclic shift values ​​(or offsets) corresponding to the multiple data groups are 0, 1, 2, ..., g-1, respectively, and each data group includes m rows of data units. FIG14 assumes that the multiple data groups include g data groups and are represented as group 0 to group g-1, respectively.

[0130] It is understood that the g channels may be adjacent or non-adjacent. Although the following embodiments of this application use g adjacent channels as an example, this is not necessarily required in practice. Each g of the N channels may be defined as a channel mapping interleaving region in any manner. For example, the N channels may include 8 channels, where the channels corresponding to odd numbers form a group of g channels, and the channels corresponding to even numbers form a group of g channels.

[0131] For ease of understanding, the following uses an example in which a data stream code block to be transmitted includes X'=276 data units, a data block to be channel-mapped includes X=288 data units, the encoder uses RS (48, 46) encoding, M=6, and N=9, to illustrate the interleaving, encoding, and channel mapping processes in the embodiments of the present application through Figures 15 to 17. The numbers in the figures represent the sequence numbers of the digital units, and the data units corresponding to the same fill pattern in the figures can represent different data units in the same code block.

[0132] Figure 15 shows a schematic diagram of code block mapping for the 276 data stream code blocks to be transmitted (denoted as code stream A). After code block mapping, the data units in code block E1 are [0 6 12 18 ... 270], the data units in code block E2 are [1 7 13 19 ... 271], the data units in code block E3 are [2 8 14 20 ... 272], the data units in code block E4 are [3 9 15 21 ... 273], the data units in code block E5 are [4 10 16 22 ... 274], and the data units in code block E6 are [5 11 17 23 ... 275], where the numbers 0, 1, 2, ... 275 represent the sequence numbers of the data units.

[0133] Figure 16 shows a schematic diagram of the encoding of code blocks E1 to E6. Assuming RS (48, 46) encoding is used, RSxx represents the check information corresponding to the code block. Accordingly, the encoded code block C1 is [0 6 12 18 ... 270RS00 RS01], code block C2 is [1 7 13 19 ... 271RS10 RS11], code block C3 is [2 8 14 20 ... 272RS20 RS21], code block C4 is [3 9 15 21 ... 273RS30 RS31], code block C5 is [4 10 16 22 ... 274RS40 RS41], and code block C6 is [5 11 17 23 ... 275RS50 RS51]. In the figure, RS00, RS01, RS10, RS11, RS20, RS21, RS30, RS31, RS40, RS41, RS50, and RS51 represent parity information. The data block to be mapped is [0 1 2…275 276 277 278…281 282 283 284 285 286 287], where [276 277 278 279 280 281…286 287] correspond to [RS00 RS01 RS10 RS11 RS20 R21…RS50 RS51], respectively. The numbers 0, 1, 2, …275 represent the sequence numbers of the data units in the data block to be channel-mapped.

[0134] FIG17 shows a schematic diagram of mapping a data block to be channel mapped into 9 channels, where the numbers in the figure represent the sequence numbers of the data units in the data block to be channel mapped. Where g=gcd(M, N)=gcd(6,9)=3, then every three adjacent channels constitute an interleaving region, and the nine channels are correspondingly divided into three interleaving regions. Each interleaving region (i.e., every three adjacent channels) includes multiple data sets, each data set includes three data groups and is represented as group 0 to group 2, each data group includes two rows of data units, and the cyclic shift values ​​corresponding to the three data groups are 0, 1, and 2, respectively. The figure uses rightward cyclic shift as an example for illustration. In actual applications, leftward cyclic shift can also be used, and the embodiments of the present application do not impose specific restrictions on this. As an exemplary illustration, the figure only shows the results of channel mapping of some data units. It can be understood that according to step S302 of the present invention, the mapping of all X=288 data units can be completed.

[0135] As shown in FIG17 , in the same channel, the minimum distance between any two data units in the same code block is 54, that is, the minimum difference in sequence numbers between any two data units from the same code block is 54. The minimum difference in sequence numbers between any two data units from the same code block is defined as the interleaving depth, and the interleaving depth is 54, which is equal to the product of the number of channels (9) and the number of code blocks (6). For example, the distance between two data units B0 and B54 from the same code block C1 in the 0th channel of the same channel is 54 (the data unit sequence number difference is 54). In the solution shown in FIG10 , when the number of channels is 9 and the number of code blocks is 6, the corresponding interleaving depth is 18. Therefore, the technical solution provided in the embodiment of the present application can increase the distance between data units from the same code block transmitted in the same channel, thereby greatly improving the ability to resist burst interference. Compared with the solution shown in FIG10 , the number of encoders and channels does not need to be increased, thereby significantly reducing power consumption and cost.

[0136] Figure 18 shows a schematic diagram of data units after mapping X data units to the N channels when M=5, and N=1, 2, 3, 4. Figure 19 shows a schematic diagram of data units after mapping X data units to N channels when M=10, and N=1, 2, 3, 4, 5, 6, 7, 8. B1 to B54 in the figure represent different data units, and the data units corresponding to the same fill pattern in the figure can represent different data units in the same code block. As an exemplary illustration, the figure only shows the results of the channel mapping of some data units. It can be understood that according to step S302 of the present invention, the mapping of all X=288 data units can be completed.

[0137] In another possible embodiment, the data sending device maps the X data units to N channels, which may specifically include: for each data unit in the X data units, querying preset corresponding information based on the position information of the data unit in the logical block to determine the mapping position information of the data unit in the N channels; and mapping the data unit to the N channels based on the mapping position information.

[0138] The preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit in the X data units in the logical block and the mapping position information in the N channels. Exemplarily, assuming that the N channels include W rows and N columns of data units, the preset corresponding relationship can be: the data unit in the i-th row and j-th column is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j, v=0, 1, 2, ..., (X-1). Wherein, g=gcd(M, N), m=M / g, gcd means taking the greatest common divisor, mod means taking the remainder, int means rounding down, * means multiplication, / means division, and W is a positive integer.

[0139] It is understandable that the preset correspondence relationship can also be in other forms. For example, the preset correspondence relationship can be directly used to indicate the sequence number of each data unit in the X data units and the corresponding position number mapped to the N channels. The above diagram is only an example and does not constitute a limitation to the embodiments of the present application.

[0140] S303: The data sending device sends the processed data unit in each of the N channels according to the channel mapping result.

[0141] When the X data units are mapped to N channels, the data transmitting device can process the data assigned to the channel according to the channel mapping result. Such processing may include scrambling and precoding the data units (for example, as shown in FIG17 ), and then transmit the processed data units from each of the N channels. For example, using FIG17 as an example, the data unit transmitted by the j-th channel in the i-th time unit is represented as F(i, j), where F(i, j) is the data unit processed by D(i, j).

[0142] In an embodiment of the present application, after obtaining a data block with X data units to be channel-mapped, the data transmitting device can map the X data units to N channels, and each of the N channels includes at least one data set, each data set includes multiple data groups, and the multiple data groups correspond to different cyclic shift values. This increases the distance between data units from the same code block when transmitted on the same channel, thereby significantly improving the ability to resist burst interference when transmitting the data units of the N channels. In addition, this solution does not require an increase in the number of encoders and channels, thereby significantly reducing power consumption and cost.

[0143] Furthermore, after the data transmitting device transmits the data units in the N channels, the data receiving device may receive the data units in the N channels and demap the received data units to obtain the above-mentioned channel-demapped data blocks. That is, after S303, as shown in FIG20, the method may further include: S304-S305. S301-S303 are not shown in FIG20. FIG21 is an example of data processing corresponding to the data transmission method shown in FIG20, and S305 below is represented as channel demapping.

[0144] S304: The data receiving apparatus receives the data unit of each channel in the N channels, and obtains the data unit to be channel-mapped.

[0145] Let N channels be represented as channel 0 to channel N-1, and the data received by the j-th channel at the i-th time unit be represented as G(i, j). After deprecoding and descrambling corresponding to the scrambling and precoding in step S303 above, the data unit H(i, j) to be mapped to the channel to be received is obtained. H(i, j) represents the data unit mapped to the channel to be received at the j-th channel at the i-th time unit.

[0146] S305: The data receiving apparatus demaps the received data units in the N channels to obtain a de-channel mapped data block including X data units.

[0147] In a possible embodiment, the data receiving device demaps the data units in the N channels, which may specifically include: the data receiving device cyclically shifts the channels where the data units in the multiple data groups of each data set are located, and the multiple data groups correspond to different cyclic shift values; the data receiving device obtains the data units in the N channels after the cyclic shift, and obtains the data blocks after the de-channel mapping.

[0148] Optionally, the X data units and the data units in the N channels satisfy the following conditions: assuming that the N channels include W rows and N columns of data units, the cyclic shift value corresponding to the data unit in the i-th row and j-th column is equal to int(i / m) mod g; and / or, the data unit in the i-th row and j-th column is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j. Wherein, g=gcd(M,N), m=M / g, gcd represents the greatest common divisor, mod represents the remainder, int represents rounding down, * represents multiplication, / represents division, W is a positive integer, W=int(X / M)+1. H(i, j) represents the data unit to be de-channeled in the jth channel at the i-th time unit, and P(v) represents the v-th data unit of the data block after de-channeling, that is: P(v) = H(i, j).

[0149] For example, taking X=288, M=6, and N=9 as an example, assume that the distribution of data units in the N channels received by the data receiving device is as shown in FIG17 . Based on the above conditions, the data receiving device can determine g=gcd(M, N)=gcd(6, 9)=3, i.e., every three adjacent channels constitute one interleaving region, and the nine channels are correspondingly divided into three interleaving regions. Each interleaving region (i.e., every three adjacent channels) includes multiple data sets, each data set includes three data groups, each data group includes two rows of data units, and the corresponding cyclic shift values ​​of the three data groups are 0, 1, and 2, respectively. In this case, in FIG17 , taking the first data set in each interleaving region as an example, the data receiving device can perform no cyclic shift on the channel containing the first data group (i.e., the cyclic shift value is 0), perform a left cyclic shift on the channel containing the second data group with a corresponding cyclic shift value of 1, and perform a left cyclic shift on the channel containing the third data group with a corresponding cyclic shift value of 2. After the multiple data sets in each interleaved area are processed according to the above scheme, a schematic diagram of the data units in N channels can be obtained. Furthermore, the data receiving device can obtain data units from the N channels to implement demapping of the data units in the N channels.

[0150] In another possible embodiment, the data receiving device demaps the data units in the N channels to obtain a channel-demapped data block (logical block) including X data units, including: for each data unit in the N channels, the data receiving device queries preset corresponding information based on the mapping position information of the data unit in the N channels to determine the position information of the data unit in the X data units; and the data receiving device demaps the data unit to the logical block based on the position information. The preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit in the X data units in the logical block and the mapping position information in the N channels.

[0151] The preset correspondence is used to indicate the correspondence between the position information of each data unit in the X data units in the logical block and the mapping position information in the N channels. Exemplarily, assuming that the N channels include W rows and N columns of data units, the preset correspondence may be: the data unit in the i-th row and j-th column is the v-th data unit in the X data units, v = int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k = i*N+j. Wherein, g = gcd(M, N), m = M / g, gcd represents the greatest common divisor, mod represents the remainder, int represents rounding down, * represents multiplication, / represents division, and M is a positive integer. H(i, j) represents the data unit mapped to the waiting channel in the j-th channel in the i-th time unit, and P(v) represents the v-th data unit of the logical block after channel demapping, that is, P(v) = H(i, j).

[0152] It is understandable that the preset correspondence relationship can also be in other forms. For example, the preset correspondence relationship can be directly used to indicate the number of each data unit in the X data units and the corresponding position number mapped to the N channels. The above diagram is only an example and does not limit the embodiments of the present application.

[0153] It can be understood that if no bit error occurs during the transmission process, for the same logical block, P(v)=B(v).

[0154] Optionally, as shown in FIG20 , after the data receiving device demaps the data units in the N channels, the method may further include: S306-S307. FIG21 also correspondingly illustrates other processing steps after channel demapping. For example, these other processing steps may include demultiplexing, decoding, and code block inverse mapping. In the figure, the M pre-decoding code blocks after demultiplexing are represented as code blocks Q1 to QM, and the M post-decoding code blocks after decoding are represented as code blocks R1 to RM.

[0155] S306: The data receiving device decodes the logic block to obtain M decoded code blocks.

[0156] If the data transmitting device does not multiplex the M code blocks with the transport layer management information during the transmission of the X data units, the demapped data obtained by the data transmitting device includes the M pre-decoding code blocks. If the data transmitting device multiplexes the M pre-decoding code blocks with the transport layer management information during the transmission of the X data units, the demapped data obtained by the data receiving device includes the M pre-decoding code blocks and the transport layer management information.

[0157] In one possible embodiment, if the demapped data obtained by the data receiving device includes M pre-decoding code blocks, the data receiving device may perform RS-FEC decoding processing on the M pre-decoding code blocks to obtain M post-decoding code blocks. If the demapped data obtained by the data receiving device includes M pre-decoding code blocks and transport layer management information, the data receiving device may demultiplex the demapped data to obtain M pre-decoding code blocks and transport layer management information; thereafter, the data receiving device may perform RS-FEC decoding processing on the M pre-decoding code blocks to obtain M post-decoding code blocks. Optionally, the M pre-decoding code blocks may include data units, or include data units and check data.

[0158] It can be understood that the above decoding can also be called decoding, the M pre-decoding code blocks can also be called M pre-decoding code blocks, and the corresponding module for RS-FEC decoding can be called a decoder or decoder.

[0159] It is understandable that if no bit errors occur during transmission, for the same logical block, the value of the pre-decoding code block Q1 is the same as the value of the post-encoding code block C1, the value of the pre-decoding code block Q2 is the same as the value of the post-encoding code block C2, and so on. For the same logical block, the value of the post-decoding code block R1 is the same as the value of the pre-encoding code block E1, the value of the post-decoding code block R2 is the same as the value of the pre-encoding code block E2, and so on.

[0160] S307: The data receiving device performs decoding block mapping on the M decoded code blocks to obtain data to be transmitted.

[0161] Optionally, after the data receiving device obtains the M decoded code blocks, the data receiving device performs decoding block mapping on the M decoded code blocks. Specifically, this may include: if the data transmitting device performs interleaving according to row writing and column reading, the data receiving device may perform decoding block mapping according to column writing and row reading to obtain the data to be transmitted; if the data transmitting device performs code block mapping according to column writing and row reading, the data receiving device may perform decoding block mapping according to row writing and column reading to obtain the data to be transmitted. The data to be transmitted may also be referred to as output data.

[0162] In an embodiment of the present application, a data receiving device receives data units from each of N channels. Each of the N channels includes at least one data set, and each data set includes multiple data groups. The multiple data groups correspond to different cyclic shift values. This increases the distance between data units of the same code block transmitted on the same channel, that is, the difference in the numbers of data units of the same code block transmitted on the same channel is large, thereby significantly improving the ability to resist burst interference when transmitting data units of the N channels. In addition, this solution does not require an increase in the number of decoders or channels, thereby significantly reducing power consumption and cost.

[0163] Channel mapping and demapping data blocks can include one or more logical blocks. One or more logical blocks form a logical layer data frame (LLDF). Channel mapping and demapping treat the logical layer data frame as a whole. All data within a single LLDF is continuously distributed and combined across all channels. Data distribution and combination must ensure that the data transmission capacity on each channel is the same. Otherwise, random data padding is required. Padding with 0x00 is recommended to ensure that the LLCF pattern transmitted on each channel is aligned after the LLDF.

[0164] In a possible embodiment of the present application, the data transmission method may include: obtaining a logical block, the logical block including X data units, where X is a positive integer; allocating the X data units to N channels, each of the N channels including at least one data set, each data set including multiple data groups; performing a cyclic shift on the data units in the multiple data groups of each data set, the multiple data groups corresponding to different cyclic shift values; and sending the data units of each channel in the N channels.

[0165] In a possible embodiment of the present application, the data transmission method may include: obtaining a logical block, the logical block including X data units, the X data units corresponding to M code blocks, where X and M are positive integers; determining g and m based on the M and the number of N channels, where M is greater than m; allocating the X data units to N channels, where each g channels of the N channels include at least one data set, each data set includes multiple data groups, and each data group includes n rows of data units; performing a cyclic shift on the data units in the multiple data groups of each data set, where the multiple data groups correspond to different cyclic shift values; and sending the data units of each channel in the N channels.

[0166] In a possible embodiment of the present application, the data transmission method may include: obtaining a logical block, the logical block including X data units, the X data units corresponding to M code blocks, where X and M are positive integers; determining a greatest common divisor g based on M and the number of N channels; determining m based on M and the greatest common divisor g, where M is greater than m; allocating the X data units to N channels, where each g channels of the N channels include at least one data set, each data set includes multiple data groups, and each data group includes n rows of data units; performing a cyclic shift on the channels where the data units in the multiple data groups of each data set are located, the multiple data groups corresponding to different cyclic shift values; and sending the data units of each channel in the N channels.

[0167] In a possible embodiment of the present application, the data transmission method may include: obtaining a logical block, the logical block including X data units, where X is a positive integer; for each data unit in the X data units, querying preset corresponding information based on position information of the data unit in the logical block to determine mapping position information of the data unit in N channels; mapping the data unit to the N channels based on the mapping position information; wherein the preset corresponding relationship is used to indicate a corresponding relationship between position information of each data unit in the X data units in the logical block and mapping position information in the N channels; and sending the data unit of each channel in the N channels.

[0168] In a possible embodiment of the present application, the data transmission method may include: obtaining a logical block, the logical block including X data units, where X is a positive integer; mapping the X data units to N channels; and sending data units of each channel in the N channels; wherein the N channels include W rows and N columns of data units, wherein the cyclic shift value corresponding to the data unit in the i-th row and j-th column is equal to int(i / m) mod g; and / or, the data unit in the i-th row and j-th column is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; wherein g=gcd(M, N), m=M / g, gcd represents the greatest common divisor, mod represents the remainder, and int represents rounding down.

[0169] In a possible embodiment of the present application, the data transmission method may include: receiving data units of each channel in N channels, each g channels in the N channels include at least one data set, each data set includes multiple data groups, the multiple data groups correspond to different cyclic shift values, N and g are positive integers, N is greater than or equal to g; performing cyclic shift on the channels where the data units in the multiple data groups of each data set are located, the channels where the multiple data groups are located correspond to different cyclic shift values; obtaining the data units in the N channels after cyclic shift to obtain the logical block.

[0170] In a possible embodiment of the present application, the data transmission method may include: receiving data units from each of N channels, where the N channels receive X data units, where the X data units correspond to M code blocks, and where M is a positive integer; determining, based on the M and N, that each g channels in the N channels include at least one data set, where each data set includes multiple data groups, where each data group includes m rows of data, where N and g are positive integers, and where N is greater than or equal to g; performing a cyclic shift on the channels where the data units in the multiple data groups of each data set are located, where the multiple data groups correspond to different cyclic shift values; and obtaining the data units in the N channels after the cyclic shift to obtain the logical block.

[0171] In a possible embodiment of the present application, the data transmission method may include: receiving data units in each of N channels, the N channels corresponding to receiving X data units, the X data units corresponding to M code blocks, where M is a positive integer; determining, based on the M and the N, the number of rows m of data units included in g and each data group in the multiple data groups, including: determining a greatest common divisor g based on the M and the N to determine that each g channels in the N channels include at least one data set; determining, based on the M and the greatest common divisor g, that each data group in the multiple data groups included in each data set includes m rows of data, where N and g are positive integers and N is greater than or equal to g; performing a cyclic shift on the channels where the data units in the multiple data groups of each data set are located, the multiple data groups corresponding to different cyclic shift values; and obtaining the data units in the N channels after the cyclic shift to obtain the logical block.

[0172] In a possible embodiment of the present application, the data transmission method may include: receiving a data unit in each of N channels, where the N channels receive X data units; for each data unit in the N channels, querying preset corresponding information based on mapping position information of the data unit in the N channels to determine position information of the data unit in the X data units; and demapping the data unit based on the position information to obtain the logical block; wherein the preset corresponding relationship is used to indicate a corresponding relationship between position information of each data unit in the X data units in the logical block and mapping position information in the N channels.

[0173] In a possible embodiment of the present application, the data transmission method may include: receiving data units of each channel of N channels; demapping the data units in the N channels to obtain a logical block including X data units; wherein the N channels include W rows and N columns of data units, wherein the cyclic shift value corresponding to the data unit in the i-th row and j-th column is equal to int(i / m) mod g; and / or, the data unit in the i-th row and j-th column is the v-th data unit of the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; wherein g=gcd(M, N), m=M / g, gcd represents the greatest common divisor, mod represents the remainder, and int represents rounding down.

[0174] In a possible embodiment of the present application, taking the use of 5 encoders, the type-C port supports up to 4 channels, and assuming that the number of enabled channels ranges from 1 to 4, the data interleaving method in the corresponding channels can be as shown in Figure 18. At this time, M = 5, N = 4, gcd (M, N) = 1, that is, g = 1, m = M / 1 = 5, divided into 5 channel mapping interleaving areas, each channel mapping interleaving area contains 1 channel, and the corresponding cyclic shift value is 0, which means that no cyclic shift is required. Accordingly, the method is specifically implemented as follows: (1) All LLB data are distributed byte by byte to each enabled channel in byte order; (2) Data are distributed from low to high according to the channel order; (3) According to the above rules (1) and (2), the entire logical layer data frame (LLDF) data distribution is completed, and the next LLDF is restored to the initial distribution state.

[0175] In one possible embodiment of the present application, assuming that 10 encoders (i.e., M=10) are used and the type-B port supports up to 8 channels, and the number of channels enabled ranges from 1 to 8, the data interleaving method in the corresponding channels can be as shown in FIG19 , where the data is arranged in a cyclic manner after every 10 data on each channel, and the figure shows the minimum cyclic interleaving arrangement. Accordingly, the method is specifically implemented as follows: (1) All LLB data are distributed byte by byte to each enabled channel in byte order; (2) Data are distributed in order from low to high according to the channel order. (3) Based on the above rules (1) and (2), if the number of enabled channels N is an even number, considering M = 10, for all even numbers less than or equal to 8, gcd(M, N) = 2, that is, g = 2, m = 10 / 2 = 5, every two adjacent channels constitute a channel mapping interleaving area, and every 10 rows of each interleaving area constitute a cycle. The first 5 rows are not processed, that is, the cyclic shift is 0, and the data of the odd channels and the even channels in the last 5 rows are exchanged, and the processing of the entire LLDF data is completed in this cycle; the initial distribution state of LLDF is no exchange. Taking 8 channels as an example, channel 0 and channel 1 constitute a channel mapping interleaving area, channel 2 and channel 3 constitute a channel mapping interleaving area, channel 4 and channel 5 constitute a channel mapping interleaving area, and channel 6 and channel 7 constitute a channel mapping interleaving area. Every 10 rows of each interleaving area constitute a cycle, the first 5 rows are not exchanged, and the data of the odd channels and the even channels in the last 5 rows are exchanged. (4) Based on the above rules (1) and (2), when the number of enabled channels is equal to 5, considering that M = 10, gcd(M, N) = 5, that is, g = 5, m = 10 / 5 = 2, all 5 channels constitute a fair channel mapping interleaving area, and every 10 rows form a cycle, which is divided into 5 groups, each with 2 rows. The cyclic shift values ​​of each group are 0, 1, 2, 3, and 4 respectively. The channels containing the first two rows are not cyclically shifted, that is, the cyclic shift value is 0. The channels containing the next two rows of data are cyclically shifted by 1, that is, the two data units to be sent on channel 0 of these two rows are moved to channel 1 for transmission, the two data units to be sent on channel 1 are moved to channel 2 for transmission, the two data units to be sent on channel 2 are moved to channel 3 for transmission, the two data units to be sent on channel 3 are moved to channel 4 for transmission, and the two data units to be sent on channel 4 are moved to channel 0 for transmission. (5) The entire LLDF data distribution is completed according to the above rules, and the next LLDF returns to the initial distribution state.

[0176] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of the interaction between the data sending device and the data receiving device. It is understandable that, as a data sending device and a data receiving device, in order to realize the above functions, it includes a hardware structure and / or software module corresponding to the execution of each function. Those skilled in the art should easily appreciate that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in a hardware or computer software driven hardware manner depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0177] In the embodiment of the present application, the data sending device and the data receiving device can be divided into functional modules according to the above method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation. The following is an example of dividing each functional module according to each function.

[0178] In the case of adopting an integrated unit, Figure 22 shows a possible structural diagram of the data sending device involved in the above embodiment. The data sending device can be a sending end device, or a chip applied to a sending end device, and the device includes: an acquisition unit 401, a processing unit 402 and a sending unit 403. Among them, the acquisition unit 401 can be used to support the device to execute S301 in the above method embodiment; the processing unit 402 can be used to support the device to execute S302 in the above method embodiment, or other technical processes described in this document; the sending unit 403 can be used to support the device to execute S303 in the above method embodiment. All relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and the embodiments of this application will not be repeated here.

[0179] Based on the hardware implementation, the acquisition unit 401 and the processing unit 402 in this application can be the interleaving circuit of the device, and the sending unit 403 can be the transmitter of the device, which can also be called a sending port. Optionally, the transmitter can usually be integrated with the receiver to serve as a transceiver, and the specific transceiver can also be called a communication interface.

[0180] Figure 23 shows a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application. The device can be a transmitting device or a chip used in a transmitting device, and includes an interleaving circuit 411 and a transmitter 412. The interleaving circuit 411 is used to support the device in executing S301 and S302 in the above-mentioned method embodiment, and / or other processes used in the technology described herein. In addition, the transmitter 412 can be used to support the device in communicating, for example, with a data receiving device.

[0181] It can be understood that all relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and the embodiment of the present application will not be repeated here.

[0182] In the case of adopting an integrated unit, Figure 24 shows a possible structural diagram of the data receiving device involved in the above embodiment. The data receiving device can be a receiving end device, or a chip applied to the receiving end device, and the device includes: a receiving unit 501 and a processing unit 502. Among them, the receiving unit 501 can be used to support the device to perform S304 in the above method embodiment; the processing unit 502 can be used to support the device to perform S305, S306, S307 in the above method embodiment, and / or other technical processes described herein. All relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and the embodiments of this application will not be repeated here.

[0183] Based on the hardware implementation, the processing unit 502 in this application can be the interleaving circuit of the device, and the receiving unit 501 can be the receiver of the device, and the receiver can also be called a receiving port. Optionally, the receiver can usually be integrated with the transmitter to serve as a transceiver, and the specific transceiver can also be called a communication interface.

[0184] Figure 25 shows a schematic diagram of the structure of a data receiving device provided in an embodiment of the present application. The data receiving device can be a receiving device, or a chip used in a receiving device, and includes a receiver 511 and an interleaving circuit 512. Interleaving circuit 512 is used to support the device in executing steps S305, S306, and S307 of the aforementioned method embodiment, and / or other processes used in the technology described herein. Furthermore, receiver 511 can be used to support communication with the device, for example, with a data transmitting device.

[0185] It can be understood that all relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and the embodiment of the present application will not be repeated here.

[0186] In another embodiment of the present application, a data transmission system is provided, which includes a data sending device and a data receiving device; wherein the data sending device can be or include the data sending device provided in Figure 22 or Figure 23 above, and is used to execute the steps of the data sending device in the method embodiment provided above; the data receiving device can be or include the data receiving device provided in Figure 24 or Figure 25 above, and is used to execute the steps of the data receiving device in the method embodiment provided above.

[0187] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the modules or units is merely a logical functional division. In actual implementation, other division methods may be used, such as combining or integrating multiple units or components into another device, or ignoring or not implementing certain features.

[0188] The units described as separate components may or may not be physically separate, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple places. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0189] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. The readable storage medium may include: a USB flash drive, a mobile hard drive, a read-only memory, a random access memory, a magnetic disk, or an optical disk, etc., which can store program code. Based on this understanding, the technical solution of the embodiment of the present application, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product.

[0190] In another embodiment of the present application, a readable storage medium is also provided, which stores computer execution instructions. When a device (which can be a single-chip microcomputer, chip, etc.) or a processor executes the steps of the data sending device in the above method embodiment.

[0191] In another embodiment of the present application, a readable storage medium is also provided, which stores computer execution instructions. When a device (which can be a single-chip microcomputer, chip, etc.) or a processor executes the steps of the data receiving device in the above method embodiment.

[0192] In another embodiment of the present application, a computer program product is further provided, which includes computer instructions stored in a readable storage medium; at least one processor of the device can read the computer instructions from the readable storage medium, and at least one processor executes the computer instructions so that the device performs the steps of the data sending device in the above method embodiment.

[0193] In another embodiment of the present application, a computer program product is also provided, which includes computer instructions stored in a readable storage medium; at least one processor of the device can read the computer instructions from the readable storage medium, and at least one processor executes the computer instructions so that the device performs the steps of the data receiving device in the above method embodiment.

[0194] Finally, it should be noted that the above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A data transmission method, characterized in that: The method comprises: Acquire a logical block, where the logical block includes X data units, where X is a positive integer; Map the X data units to N channels; wherein each channel of the N channels includes X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit of the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; The processed data units in each of the N channels are transmitted.

2. The method according to claim 1, characterized in that Mapping the X data units to N channels includes: Allocate the X data units to the N channels, each of the N channels comprising at least one data set, and each data set comprising a plurality of data groups; Cyclic shift is performed on the channels where the data units in the multiple data groups of each data set are located, and the multiple data groups correspond to different cyclic shift values.

3. The method according to claim 2, characterized in that The method further comprises: According to the M and the N, the number m of rows of data units included in the g and each of the multiple data groups is determined.

4. The method according to claim 3, characterized in that Determining g and the number of rows m of data units included in each of the plurality of data groups according to M and N includes: Determine the greatest common divisor g according to the M and the N; According to M and the greatest common divisor g, the number of rows m of data units included in each data group in the multiple data groups is determined, where m is a positive integer and M is greater than m.

5. The method according to claim 1, characterized in that Mapping the X data units to N channels includes: For each data unit in the X data units, query preset corresponding information according to the position information of the data unit in the logic block to determine the mapping position information of the data unit in the N channels; Mapping the data unit to the N channels according to the mapping position information; The preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit in the X data units in the logic block and the mapping position information in the N channels.

6. The method according to any one of claims 1 to 5, characterized in that: The acquisition logic block includes: The data to be transmitted is subjected to code block mapping to obtain M pre-encoded code blocks; The M pre-encoding code blocks are encoded to obtain the logical block.

7. The method according to claim 6, characterized in that The step of encoding the M pre-encoded code blocks to obtain the logic block comprises: Performing encoding processing on the M pre-encoded code blocks to obtain M post-encoded code blocks; The M encoded code blocks are multiplexed with the logical layer management information to obtain the logical block.

8. A data transmission method, characterized in that: The method comprises: Receive a data unit of each channel in N channels; wherein each channel in the N channels includes X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; The data units in the N channels are demapped to obtain a logical block including X data units.

9. The method according to claim 8, characterized in that Demapping the data units in the N channels includes: Cyclic shifting is performed on the channels where the data units in the multiple data groups of each data set are located, and the multiple data groups correspond to different cyclic shift values; Acquire the data units in the N channels after cyclic shift to obtain the logic block.

10. The method according to claim 9, characterized in that The method further comprises: According to the M and the N, the number m of rows of data units included in the g and each of the multiple data groups is determined.

11. The method according to claim 10, characterized in that Determining g and the number of rows m of data units included in each of the plurality of data groups according to M and N includes: Determine the greatest common divisor g according to the M and the N; According to M and the greatest common divisor g, the number of rows m of data units included in each data group in the multiple data groups is determined, where m is a positive integer and M is greater than m.

12. The method according to claim 8, characterized in that Demapping the data units in the N channels to obtain a logical block including X data units includes: For each data unit in the N channels, query preset corresponding information according to mapping position information of the data unit in the N channels to determine position information of the data unit in the X data units; Demapping the data unit into the logic block according to the location information; The preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit in the X data units in the logic block and the mapping position information in the N channels.

13. The method according to any one of claims 8 to 12, characterized in that: The method further comprises: Decoding the logic block to obtain M decoded code blocks; Decoding block mapping is performed on the M decoded code blocks to obtain data to be transmitted.

14. The method according to claim 13, characterized in that The decoding process is performed on the logic block to obtain M pre-decoding code blocks, including: Demultiplexing the logic blocks to obtain M pre-decoding code blocks and logic layer management information; The M pre-decoding code blocks are decoded to obtain the M post-decoding code blocks.

15. A data sending device, characterized in that: The device comprises: An acquisition unit, used for acquiring a logic block, wherein the logic block includes X data units, where X is a positive integer; A processing unit, configured to map the X data units to N channels; wherein each of the N channels includes X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; A sending unit is used to send the processed data unit in each channel of the N channels.

16. The device according to claim 15, characterized in that The processing unit is also used for: Allocate the X data units to the N channels, each of the N channels comprising at least one data set, and each data set comprising a plurality of data groups; Cyclic shift is performed on the channels where the data units in the multiple data groups of each data set are located, and the multiple data groups correspond to different cyclic shift values.

17. The device according to claim 16, characterized in that The processing unit is also used for: According to the M and the N, the number m of rows of data units included in the g and each of the multiple data groups is determined.

18. The device according to claim 17, characterized in that The processing unit is also used for: Determine the greatest common divisor g according to the M and the N; According to M and the greatest common divisor g, the number of rows m of data units included in each data group in the multiple data groups is determined, where m is a positive integer and M is greater than m.

19. The device according to claim 15, characterized in that The processing unit is also used for: For each data unit in the X data units, query preset corresponding information according to the position information of the data unit in the logic block to determine the mapping position information of the data unit in the N channels; Mapping the data unit to the N channels according to the mapping position information; The preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit in the X data units in the logic block and the mapping position information in the N channels.

20. The device according to any one of claims 15 to 19, characterized in that The processing unit is also used for: The data to be transmitted is subjected to code block mapping to obtain M pre-encoded code blocks; The M code blocks are encoded to obtain the logic block.

21. The device according to claim 20, characterized in that The processing unit is also used for: Performing encoding processing on the M pre-encoded code blocks to obtain M post-encoded code blocks; The M encoded code blocks are multiplexed with the logical layer management information to obtain the logical block.

22. A data receiving device, characterized in that: The device comprises: A receiving unit, configured to receive a data unit of each channel in N channels; wherein each channel in the N channels includes X / N data units, wherein the i-th data unit in the j-th channel is the v-th data unit in the X data units, v=int(k / g)*g+(((int(int(k / N) / m)mod g)*(g-1)+(k mod g))mod g), k=i*N+j; wherein g is a factor of N, M is the number of code blocks corresponding to the X data units, m is a positive integer less than M, mod represents remainder, and int represents rounding down; The processing unit is used to demap the data units in the N channels to obtain a logical block including X data units.

23. The device according to claim 22, characterized in that The processing unit is also used for: Cyclic shifting is performed on the channels where the data units in the multiple data groups of each data set are located, and the multiple data groups correspond to different cyclic shift values; Acquire the data units in the N channels after cyclic shift to obtain the logic block.

24. The device according to claim 23, characterized in that The processing unit is also used for: According to the M and the N, the number m of rows of data units included in the g and each of the multiple data groups is determined.

25. The device according to claim 24, characterized in that The processing unit is also used for: Determine the greatest common divisor g according to the M and the N; According to M and the greatest common divisor g, the number of rows m of data units included in each data group in the multiple data groups is determined, where m is a positive integer and M is greater than m.

26. The device according to claim 22, characterized in that The processing unit is also used for: For each data unit in the N channels, query preset corresponding information according to mapping position information of the data unit in the N channels to determine position information of the data unit in the X data units; Demapping the data unit into the logic block according to the location information; The preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit in the X data units in the logic block and the mapping position information in the N channels.

27. The device according to any one of claims 22 to 26, characterized in that The processing unit is also used for: Decoding the logic block to obtain M decoded code blocks; Decoding block mapping is performed on the M decoded code blocks to obtain data to be transmitted.

28. The device according to claim 27, characterized in that The processing unit is also used for: Demultiplexing the logic blocks to obtain M pre-decoding code blocks and logic layer management information; The M pre-decoding code blocks are decoded to obtain the M post-decoding code blocks.

29. A chip, characterized in that: The chip comprises: an interleaving circuit and a transmitter, wherein the interleaving circuit and the transmitter are used to support the chip to execute the data transmission method according to any one of claims 1 to 7.

30. A chip, characterized in that: The chip comprises: an interleaving circuit and a receiver, wherein the interleaving circuit and the receiver are used to support the chip to execute the data transmission method according to any one of claims 8 to 14.

31. A data transmission system, characterized in that: The data transmission system includes a data sending device and a data receiving device, the data sending device includes the data sending device according to any one of claims 15 to 21 or the chip according to claim 29, and the data receiving device includes the data receiving device according to any one of claims 22 to 28 or the chip according to claim 30.

32. A readable storage medium, characterized in that: The readable storage medium stores instructions, and when the instructions are executed on a device, the device executes the data transmission method according to any one of claims 1 to 7.

33. A readable storage medium, characterized in that: The readable storage medium stores instructions, and when the instructions are executed on a device, the device executes the data transmission method according to any one of claims 8 to 14.

Citation Information

Patent Citations

  • Data block interleaving and de-interleaving method in communication equipment and device thereof

    CN104917587A

  • Data interleaving method and device

    CN108880740A

  • Block interleaving method and system based on data block transformation

    CN112929125A

  • Method for transmitting / receiving data in wireless communication system and apparatus supporting same

    WO2018030736A1

  • Interleaving and de-interleaving methods and apparatuses

    WO2022141326A1