Data transmission method, device and system
By mapping data units to multiple channels and cyclically shifting in data transmission, the problem of insufficient anti-burst interference capability in the prior art is solved, and efficient and low-cost anti-interference capability is improved.
Patent Information
- Application Number
- CN202311447642.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-31
- Publication Date
- 2025-05-02
AI Technical Summary
In the face of burst interference, existing data transmission technologies lack anti-interference capabilities, and methods to increase anti-interference capabilities usually increase power consumption and cost.
By mapping data units to multiple channels and performing cyclic shifts in each channel, the distance of the same code block data units transmitted in the same channel is increased, thereby improving the ability to resist burst interference.
This method can greatly improve the anti-burst interference capability of data transmission, while reducing power consumption and cost without increasing the number of encoders and the number of channels.
Smart Images

Figure CN119921786A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of data transmission, and in particular to a data transmission method, device and system. Background Art
[0002] 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 that is used to detect and correct a limited number of errors in transmitted data without retransmission. The main principle of FEC is to perform certain algorithmic processing on the original data and add redundant content to ensure that the original data can be completely restored even if only part of the normal data and redundant content are received. For example, the original data is divided into multiple code blocks with a length of k bytes, and then each k-byte code block is encoded into an n-byte code block for transmission, where k is less than n.
[0003] In order to further improve the system's ability to resist burst errors, interleaving technology is usually used. This interleaving technology disperses adjacent bytes in a code block to different times or different channels for transmission. If a transmission error occurs at a certain time or on a certain channel, after deinterleaving, the data transmission error will be dispersed to different code blocks, thereby reducing the error probability of each code block. Interleaving technology discretizes a longer burst error into random errors, and then uses FEC technology to eliminate random errors. The greater the interleaving depth, the greater the discreteness, and the stronger the ability to resist burst errors. Therefore, the quality of the interleaving method determines the ability of the transmission path to resist burst interference. Summary of the invention
[0004] The present application provides a data transmission method, device and system for increasing the distance of data units of the same code block transmitted in the same channel, thereby greatly increasing the ability to resist burst interference while reducing power consumption and cost.
[0005] To achieve the above objectives, the embodiments of the present application adopt the following technical solutions:
[0006] In a first aspect, a data transmission method is provided, which can be applied to a data sending device, the method comprising: obtaining a logic block, which may also be referred to as a logic layer data block, which may refer to a data pattern used when the logic layer implements data processing, the logic block comprising X data units, X being a positive integer, wherein 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; 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), 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 sending the processed data units in each of the N channels.
[0007] In the above technical solution, when the data sending device obtains a logical block with X data units, the X data units can be mapped to N channels, and each g channel 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, so that the distance of the data units of the same code block transmitted in the same channel is increased, that is, the number difference of the data units of the same code block transmitted in the same channel is increased, and then the ability to resist burst interference can be greatly increased when sending the processed data units of the N channels. In addition, the solution does not need to increase the number of encoders and the number of channels, thereby greatly reducing power consumption and cost.
[0008] 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; performing cyclic shift on the channel 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. 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 the data units of the same code block transmitted in the same channel can be increased, that is, the number difference of the data units of the same code block transmitted in the same channel is increased, thereby greatly increasing the ability of data to resist burst interference during transmission.
[0009] In a possible implementation manner of the first aspect, the method further includes: determining g and the number of rows m of data units included in each of the multiple data groups according to M and N. In the above possible implementation manner, by determining g and the number of rows m of data units included in each of the multiple data groups according to M and N, it can be ensured 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 allocated to the N channels is relatively balanced.
[0010] In a possible implementation of the first aspect, determining the number of rows m of the data units included in g and each of the multiple data groups according to the M and the N includes: determining the greatest common divisor g according to M and N; determining the number of rows m of the data units included in each of the multiple data groups according to M and the greatest common divisor g, where m is a positive integer and M is greater than m. In the above possible implementation, it can be ensured that the distance between the data units of the same code block transmitted in the same channel is large, and the data allocated to the N channels is relatively balanced.
[0011] 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 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; and mapping the data unit to the N channels according to 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 logic 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 mapping, the data mapping rate can be improved.
[0012] 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 the above possible implementation, the distance between the data units of the same code block transmitted in the same channel can be increased, that is, the difference in the numbers of the data units of the same code block transmitted in the same channel is increased, thereby greatly increasing the ability of data to resist burst interference during transmission.
[0013] In a possible implementation of the first aspect, obtaining the logic 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 logic block. In the above 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 in the same channel can be increased, and when a data transmission error occurs, the error can be corrected through the check bits in the encoding process, thereby providing the ability to resist burst interference.
[0014] 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 the above possible implementation, by multiplexing the M post-encoded code blocks with the logical layer management information, the efficiency of data transmission can be improved and the number of interactions between devices can be reduced.
[0015] In a second aspect, a data transmission method is provided, the method comprising: receiving 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; 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.
[0016] 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; and obtaining the data units in the N channels after the cyclic shift to obtain the logical block.
[0017] In a possible implementation manner of the second aspect, the method further includes: determining, based on M and N, g and the number of rows m of data units included in each of the multiple data groups.
[0018] In a possible implementation of the second aspect, g and the number of rows m of data units included in each of 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 of 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.
[0019] In a possible implementation manner 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 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; and demapping the data unit to the logical block according to 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.
[0020] 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 de-mapping on the M decoded code blocks to obtain data to be transmitted.
[0021] In a possible implementation of the second aspect, the logic block is decoded to obtain M decoded code blocks, including: demultiplexing the logic 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.
[0022] In a third aspect, a data sending device is provided, the device comprising: an acquisition unit, used to acquire a logical block, the logical block comprising X data units, X being a positive integer; a processing unit, used to map 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)+(kmod 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, used to send the processed data units in each of the N channels.
[0023] In a possible implementation of the third aspect, the processing unit is further used to: allocate the X data units to the N channels, each g channel of the N channels includes at least one data set, and each data set includes multiple data groups; cyclically shift 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.
[0024] In a possible implementation manner of the third aspect, the processing unit is further used to: determine, based on M and N, g and the number of rows m of data units included in each of the multiple data groups.
[0025] In a possible implementation of the third aspect, the processing unit is also used to: determine the greatest common divisor g based on the M and the N; determine 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.
[0026] In a possible implementation manner of the third aspect, the processing unit is further used to: for each data unit of the X data units, query preset corresponding information according to 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; according to the mapping position information, map the data unit to the N channels; wherein the preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit of the X data units in the logical block and the mapping position information in the N channels.
[0027] 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.
[0028] In a possible implementation manner of the third aspect, the processing unit is further used 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.
[0029] In a possible implementation of the third aspect, the processing unit is also used to: encode 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.
[0030] In a fourth aspect, a data receiving device is provided, the device comprising: a receiving unit, configured to receive data units 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; a processing unit, configured to demap the data units in the N channels to obtain a logical block including the X data units.
[0031] 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.
[0032] In a possible implementation manner of the fourth aspect, the processing unit is further used to: determine, based on M and N, g and the number of rows m of data units included in each of the multiple data groups.
[0033] 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.
[0034] In a possible implementation manner of the fourth aspect, the processing unit is further used to: for each data unit in the N channels, query preset corresponding information according to 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 demap the data unit to the logical block according to the position information; wherein the preset corresponding relationship 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.
[0035] 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.
[0036] 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.
[0037] In a possible implementation of the fourth aspect, the processing unit is also 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.
[0038] 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 to execute the data transmission method provided in the first aspect or any possible implementation manner of the first aspect.
[0039] 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 to execute the data transmission method provided in the second aspect or any possible implementation manner of the second aspect.
[0040] 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.
[0041] In an eighth aspect, a readable storage medium is provided, wherein instructions are stored in the readable storage medium. 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.
[0042] 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.
[0043] 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 a data transmission method provided in the first aspect or any possible implementation of the first aspect.
[0044] In the eleventh aspect, a computer program product is provided, which includes: a computer program (also referred to as code, or instruction), which, when executed, enables a computer to execute a data transmission method provided in the second aspect or any possible implementation of the second aspect.
[0045] 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
[0046] Figure 1 A schematic diagram of the structure of a data transmission system provided in an embodiment of the present application;
[0047] Figure 2 A schematic diagram of the structure of another data transmission system provided in an embodiment of the present application;
[0048] Figure 3 A schematic diagram of basic components of an electronic device provided in an embodiment of the present application;
[0049] Figure 4 A schematic diagram of transmission between interfaces provided in an embodiment of the present application;
[0050] Figure 5 A schematic diagram of RS encoding provided in an embodiment of the present application;
[0051] Figure 6 A schematic diagram of a code block transmission provided in an embodiment of the present application;
[0052] Figure 7 A schematic diagram of data processing in a data transmission process provided by an embodiment of the present application;
[0053] Figure 8 An example diagram of data processing provided for an application embodiment;
[0054] Fig. 9 Another example diagram of data processing provided for an embodiment of the application;
[0055] Fig.10 A flowchart of a data transmission method provided in an embodiment of the present application;
[0056] Fig.11 A schematic diagram of data processing in a data transmission process provided by an embodiment of the present application;
[0057] Fig.12 A schematic diagram of data processing in a data transmission process provided by an embodiment of the present application;
[0058] Fig.13 A schematic diagram of data processing in another data transmission process provided by an embodiment of the present application;
[0059] Fig.14 A schematic diagram of mapping a data unit to N channels provided in an embodiment of the present application;
[0060] Fig.15 A schematic diagram of performing code block mapping on a data unit provided in an embodiment of the present application;
[0061] Fig.16 A schematic diagram of encoding a code block provided in an embodiment of the present application;
[0062] Fig.17 A schematic diagram of cyclically shifting a channel where a data unit in N channels is located provided in an embodiment of the present application;
[0063] Fig.18 An example diagram of a data transmission method provided for an embodiment of the application;
[0064] Fig.19 An example diagram of another data transmission method provided for an embodiment of the application;
[0065] Fig. 20 A flowchart of another data transmission method provided in an embodiment of the present application;
[0066] Fig.21 A schematic diagram of data processing in another data transmission process provided by an embodiment of the present application;
[0067] Fig. 22 A schematic diagram of the structure of a data sending device provided in an embodiment of the present application;
[0068] Fig.23 A schematic diagram of the structure of another data sending device provided in an embodiment of the present application;
[0069] Fig.24 A schematic diagram of the structure of a data receiving device provided in an embodiment of the present application;
[0070] Fig.25 A schematic diagram of the structure of another data receiving device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0071] The following will discuss the making and use of each embodiment in detail. However, it should be understood that many applicable inventive concepts provided by this application can be implemented in a variety of specific environments. The specific embodiments discussed are only illustrative of the specific ways to implement and use this application and this technology, and do not limit the scope of this application.
[0072] 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.
[0073] 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 the 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 circuits that perform an operation, etc.
[0074] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application. In the present application, "at least one" means one or more, and "more" means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects before and after 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 items 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.
[0075] The embodiments of the present application use words such as "first" and "second" to distinguish objects with similar names, functions or effects. Those skilled in the art will understand that words such as "first" and "second" do not limit the quantity and execution order. The term "coupled" is used to indicate electrical connection, including direct connection through wires or connection terminals or indirect connection through other devices. Therefore, "coupled" should be regarded as a broad electronic communication connection.
[0076] 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 as "exemplary" or "for example" in this application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.
[0077] The technical solution provided in the present application can be applied to a data transmission system including multiple data transmission devices, and the data transmission device can be a device, a chip applied to a device, or an interface device, etc. In the 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 the present 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, the signal can be transmitted directly or through an interface device.
[0078] When the data transmission device is a chip in a device, the chips in the data transmission system can be interconnected by wire or wireless means, and 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 plugged with a gigabit network port, a video graphics array (VGA), an HDMI, a flash memory (TF) card, a secure digital card (SD) card, a charging port, and a USB port, etc.
[0079] 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 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.
[0080] The following uses the example that the data transmission system includes multiple devices to illustrate the structure of the data transmission device.
[0081] Figure 1A structural diagram of a data transmission system provided for 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, transmission of audio and video data or transmission of charging signals, etc. 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.
[0082] 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 may specifically be 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.
[0083] Figure 2 A structural diagram of another data transmission system provided for an embodiment of the present application. The data transmission system includes a plurality of devices 210 and a router 220, and 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, etc. In one example, the plurality of devices 210 can include a display 211, a set-top box 212, and an audio player (for example, MP3) 213, and the set-top box 212 can transmit audio and video data to the display 211 through the router 220, and the set-top box 212 can also transmit audio data to the audio player 213 through the router 220, etc. 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, and the game controller 214 can be connected to the display 211 and transmit control information to the display 211.
[0084] 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.
[0085] The above-mentioned device in the system with data transmission function can be called a communication device. The communication device can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted. The communication device can also be deployed on the water surface (such as a ship, etc.), and can also be deployed in the air (such as an airplane, a balloon, and a satellite, etc.), and the communication device can be applied to 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, a vehicle-mounted 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. Home), flying equipment (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, etc.
[0086] In the present application, the interface specifications used for signal transmission between devices in the 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 high-speed serial computer expansion bus (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.
[0087] 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.
[0088] It can be understood that the interface specification used for signal transmission between the above-mentioned devices is only exemplary. In practical applications, the interface specification may also include other interface specifications that may appear in the future, such as a unified media interconnection (UMI) interface, etc. The embodiment of the present application does not impose specific limitations on this.
[0089] In this application, when a device is an electronic device, such as Figure 3The figure shows a schematic diagram of basic components of an electronic device. The electronic device includes an interface chip 200 (UMI interface), the interface chip 200 includes one or more adapters 201, one or management control adapter 202 and one or port 203, or when the electronic device is a routing device, the interface chip 200 only includes 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. One or management control adapter 202 can be coupled to a component used for management and control outside the interface chip 200. Port 203 can be coupled to a connector 204 of the electronic device, and connector 204 is used to couple an external device of the electronic device. Among them, one or more adapters 201 can be a sending / receiving adapter. For example, when the adapter 201 is used for adapting audio and video formats, the adapter 201 can be an audio and video sending / receiving adapter. When the adapter 201 is used for third-party protocol adaptation, the adapter 201 can be a third-party protocol adapter.
[0090] For example, when port 203 is a downlink port, the sending 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 send the service information out through port 203. When port 203 is an uplink port, the receiving 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 for internal processing. The management control adapter 202 can be used to adapt control information.
[0091] The basic components of different electronic devices can be combined to form a variety of different types of devices. For example, the electronic device includes a source device including at least one downstream port and at least one video and audio transmission adapter, or a source device including at least one upstream port and a video and audio receiving adapter, or a docking device including at least one upstream port, at least one video and audio receiving adapter and at least one traditional video and audio interface, or a routing device including at least one downstream port and at least one upstream port without a video and audio transmission adapter and a video and audio receiving adapter, or a composite device having both an upstream port and a downstream port.
[0092] like Figure 4 The figure shows a schematic diagram of inter-interface transmission provided by an embodiment of the present application. The uplink port and the downlink port between devices include a main link (ML) and an auxiliary link (SL), and further, a power bus link (PL) and a cable information link (CL). The cable information link can be used to transmit cable information, such as the cable model and cable capability information.
[0093] The main 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 management and control between devices, 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.
[0094] In some scenarios, the main link consists of one or more lanes, each of which supports only unidirectional transmission, and the auxiliary link consists of two single-ended lanes in different directions. Alternatively, part of the main link is a unidirectional channel, the other part is a bidirectional channel, and the auxiliary link is a bidirectional channel. A main link may include multiple channels, such as 2 / 5 / 9 channels. The more channels there are, the faster the data transmission speed.
[0095] In addition, whether it is an uplink port or a downlink port, it may include multiple pins, for example, 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.
[0096] During the signal transmission process, factors such as interference and noise may 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 the transmitted data without retransmission. Common FEC encoding methods may include low density parity check codes (LDPC), turbo codes, polar codes, Reed-Solomon (RS) codes, convolutional codes, etc. The Reed-Solomon code may also be referred to as Reed-Solomon code. The main principle of FEC is to perform certain algorithm processing on the original data, increase redundant content, and sacrifice a certain transmission bandwidth to ensure that even if only part of the normal data and redundant content are received in the end, the original data can be completely restored. Among them, RS code is a common FEC encoding scheme. The following uses RS code as an example to illustrate the FEC encoding process.
[0097] For example, Figure 5The figure shows 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 may also be referred to as a finite field.
[0098] In order to further improve the system's ability to resist sudden bit errors, interleaving technology is usually used. This interleaving technology disperses adjacent code blocks to different times or different channels for transmission. If a transmission error occurs on a certain channel during a certain period of time, the erroneous data will be dispersed to different code blocks after deinterleaving, thereby reducing the error probability of each code block.
[0099] For example, Figure 6 As shown in the figure, after the 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 A2A3 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 lower than a certain value, it can be corrected by an error correction code, and finally the receiving end can 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.
[0100] In high-speed data transmission, the encoded data will be distributed to multiple channels for transmission (for example, in one embodiment, the encoded data is evenly distributed to the enabled channels by bytes). The more channels there are, the more code blocks are involved in interleaving, and the distance between the data of the same code block transmitted on the same channel is farther after interleaving, thereby increasing the ability to resist burst interference. However, more channels and more code blocks also mean greater power consumption. The following is an example of the data processing process in the high-speed data transmission process, which may include code block mapping, encoding, and channel mapping.
[0101] In one example, if Figure 7 As shown, it is a schematic diagram of data processing in a high-speed data transmission process. Figure 8 It is a schematic diagram of the code stream, code block and channel mapping corresponding to the data processing process. In the figure, RS encoding (the corresponding encoder is called RS-FEC encoder) is used, 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 the present application is applicable to various types of encoders, 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, obtaining three code blocks and representing them as code blocks E1 to E3 respectively; encoding code blocks E1 to E3 using the RS-FEC encoder, obtaining three encoded code blocks and representing them as code blocks C1 to C3 respectively, 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 (represented as channels 0 to N-1 respectively). Figure 8 In the example, N is equal to 4 and 4 channels are represented as 0 to 3. Code stream A includes 144 bytes of data, represented by B0, B1, ..., B233, where numbers 0 to 143 are the serial numbers of the 144 data units (bytes here) of code stream A. After code block mapping, the data units in code block E1 are [B0B3 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]. In order to simplify the description, only the byte numbers corresponding to the data units of each code block are shown in the figure.
[0102] 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, which is equal to the least common multiple of the number of RS-FEC encoders or code blocks 3 and the number of channels 4. For another example, Fig. 9As shown, if the number of RS-FEC encoders or code blocks is 6 and the number of channels is 9, the code stream A to be transmitted is subjected to code block mapping, encoding and channel mapping in a similar manner as described above, and the resulting interleaving depth is 18, that is, the interleaving depth 18 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. Fig. 9 In the figure, the six code blocks obtained after code block mapping of code stream A are represented as code blocks E1 to E6, the data unit in code block E1 is [0 6 12 18 ... 282], the data unit in code block E2 is [1 7 13 19 ... 283], the data unit in code block E3 is [2 8 14 20 ... 284], the data unit in code block E4 is [3 9 1521 ... 285], the data unit in code block E5 is [4 10 16 22 ... 286], the data unit in code block E6 is [5 11 17 23 ... 287], and the nine channels are represented as 0 to 8. In order to simplify the description, the figure only shows the byte number corresponding to the data unit of each code block.
[0103] It can be seen that in the above 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 (herein, referred to as the interleaving depth, 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 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 the cost and power consumption, that is, there are problems of high power consumption and high cost.
[0104] Based on this, an embodiment of the present application provides a data transmission method, which 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 of 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, and the specific process of the method is described below.
[0105] Fig.10 A flow chart of a data transmission method provided in an embodiment of the present application, the method may include the following steps. The method may be applied to a data transmission system including a data sending device and a data receiving device, the data sending device and the data receiving device may be connected by wire or wirelessly, and the connection may be a direct connection or an indirect connection. Fig.11 for Fig.10 The data transmission method shown is an example of data processing corresponding to the data transmission method, and S302 below is referred to as channel mapping.
[0106] S301: A data sending device obtains a data block to be channel mapped, where the data block to be channel mapped includes X data units, where X is a positive integer. Fig.11 The X data units are represented as B(0) to B(X-1).
[0107] The data unit may refer to a basic unit or a 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, etc.
[0108] The data block to be channel mapped may only include data to be transmitted, for example, the data block to be channel mapped only includes a block body, which is a logical layer data block (LLB) and includes X data units. Alternatively, the data block to be channel mapped includes both a block body and verification data, the block body is a logical layer data block, and the verification data may refer to verification data (or verification bytes) corresponding to FEC encoding of the block body, for example, the data block to be channel mapped includes a block body and a block tail, the block body is a logical layer data block, and the block tail includes verification 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 verification data of the logical layer data block).
[0109] To simplify the description, this article calls the data block to be channel mapped a logical block.
[0110] 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.
[0111] In an example, the logic block may be composed of 240 bytes, and the 240 bytes are all block bodies. If each data unit includes 1 byte of data, the logic block includes 240 data units. Alternatively, the logic block may be composed of 240 bytes, and the first 230 bytes of the 240 bytes are block bodies, and the last 10 bytes are block tails, and the block tails are check bytes corresponding to the block bodies. If each data unit includes 1 byte of data, the logic block includes 230 data units and 10 bytes of check data.
[0112] In another example, the logic block may be composed of 480 bytes, and the 480 bytes are all block bodies. If each data unit includes 1 byte of data, the logic block includes 480 data units. Alternatively, the logic block may be composed of 480 bytes, and the first 460 bytes of the 480 bytes are block bodies, and the last 20 bytes are block tails, and the block tails are check bytes corresponding to the block bodies. If each data unit includes 1 byte of data, the logic block includes 460 data units and 20 bytes of check data.
[0113] 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, etc. The specific value of M is not limited in the embodiment of the present application.
[0114] In a possible embodiment, Fig.12 As shown, the data sending device obtains the data block to be channel mapped, which may specifically include: performing code block mapping on the data to be transmitted (or referred to as the input code stream, which can be represented as A(0) to A(X'-1)), the data to be transmitted includes 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 and respectively represent them 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 respectively, to obtain M post-encoded code blocks and respectively represent them as code blocks C1 to CM, code blocks C1 to CM include 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 check information of M pre-encoded code blocks.
[0115] 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 may be an integer multiple of M. If X' and / or X are not an integer multiple of M, they may be filled by data filling so that X' and / or X are integer multiples of M after filling. The filled data may be predetermined (for example, filled with 00), or filled with random bits, and the embodiment of the present application does not impose specific restrictions on this. In addition, the M coded code blocks may be obtained by encoding using M encoders, in which case the encoding delay is relatively short; or, the M coded code blocks may also be obtained by time division multiplexing with less than M encoders, for example, serial encoding with 1 encoder, the latter method saves cost, but requires data caching and waiting for the M pre-coded code blocks to be fully encoded before channel mapping, and the delay is relatively long.
[0116] Furthermore, when there is other information to be sent in the logic layer, the data sending device may also multiplex (or multiplex) the M coded code blocks with the other information. Fig.12 ,like Fig.13 As shown, after obtaining the M encoded code blocks, the data sending device can multiplex the M encoded code blocks with the other information to obtain the above-mentioned data blocks to be channel mapped. For example, the other information may include logical layer management information, so that the data blocks to be channel mapped may include the M encoded code blocks and the logical layer management information.
[0117] 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 that 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.
[0118] S302: The data sending device maps the X data units to N channels, wherein each g channel 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, and the value of the cyclic shift 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. Fig.12In the example, N channels are represented as channel 0 to channel N-1, 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 the present application, mapping the X data units to the N channels is also referred to as allocating or distributing the X data units to the N channels for further processing.
[0119] Among them, the difference between the cyclic shift values corresponding to any two adjacent data groups in the multiple data groups may be equal. In an 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.
[0120] In addition, each of the multiple data groups may include m rows of data units, that is, the number of rows of data units included in each data group is m, 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 column of the g columns corresponds to one channel of the g channels.
[0121] Furthermore, the N channels may also be referred to as N enabled channels, which may specifically refer to enabled channels, or may be understood as channels actually used to transmit data. The number of channels of the data transmitting device may be greater than or equal to N, that is, the N channels may be part or all of all channels of the data transmitting device.
[0122] Optionally, each data group among the multiple data groups is obtained by cyclically shifting a data unit of the data group.
[0123] 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 g channel 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.
[0124] Optionally, the value of g and the value of m may be determined according to the number M of coding blocks and the number N of channels included in the logic block. That is, the data sending device may determine g and the number m of rows of data units included in each data group according to M and N. The following is an example of how to determine the value of g and the value of m.
[0125] 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.
[0126] 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 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, 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).
[0127] Combined with the above description, Fig.14 A distribution diagram after the X data units are mapped to the N channels is shown, and the N channels are divided into n interleaving areas (expressed 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. For illustration, the example is given. Fig.14 It is assumed that the multiple data groups include g data groups and are represented as the 0th group to the g-1th group respectively.
[0128] It is understandable that the g channels may be adjacent channels or non-adjacent channels. Although the following embodiments of the present application are described by taking the example of g adjacent channels, it is not limited to being adjacent in the specific implementation. Each g channels of the N channels may be determined as a channel mapping interleaving area in any manner. For example, the N channels include 8 channels, wherein the channels corresponding to the odd numbers are a group including g channels, and the channels corresponding to the even numbers are a group also including g channels.
[0129] For ease of understanding, the following example is taken in which the data stream code block to be transmitted includes X'=276 data units, the data block to be channel mapped includes X=288 data units, the encoder adopts RS (48, 46) encoding, M=6, N=9, and the like. Figures 15 to 17 The process of interleaving, encoding and channel mapping in the embodiment of the present application is illustrated by way of example. The numbers in the figure represent the serial numbers of the digital units, and the data units corresponding to the same filling pattern in the figure may represent different data units in the same code block.
[0130] Fig.15 A schematic diagram of code block mapping of the 276 data stream code blocks to be transmitted (denoted as code stream A) is shown. 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 [39 15 21 ... 273], the data units in code block E5 are [410 16 22 ... 274], and the data units in code block E6 are [5 1117 23 ... 275], wherein the numbers 0, 1, 2, ... 275 represent the sequence numbers of the data units.
[0131] Fig.16 The schematic diagram of the coding of code blocks E1 to E6 is shown. Assuming that RS (48, 46) coding is adopted, RSxx represents the check information corresponding to the code block. Accordingly, the coded code block C1 is [0 6 12 18 ... 270RS00 RS01], the code block C2 is [1 7 13 19 ... 271RS10 RS11], the code block C3 is [2 8 14 20 ... 272RS20 RS21], the code block C4 is [39 15 21 ... 273RS30 RS31], the code block C5 is [4 10 16 22 ... 274RS40 RS41], and the code block C6 is [5 11 1723 ... 275RS50 RS51]. In the figure, RS00, RS01, RS10, RS11, RS20, RS21, RS30, RS31, RS40, RS41, RS50, and RS51 represent check information. The data block to be mapped is [0 12…275 276 277 278…281 282 283 284 285286 287], where [276 277 278 279 280 281…286 287] respectively correspond to [RS00 RS01 RS10 RS11 RS20 R21…RS50 RS51], and the numbers 0, 1, 2, …275 represent the sequence numbers of the data units of the data block to be channel mapped.
[0132] Fig.17A schematic diagram of the data block to be channel mapped is shown in 9 channels, and the numbers in the figure represent the sequence numbers of the data units in the data block to be channel mapped. Among them, g = gcd (M, N) = gcd (6, 9) = 3, then every 3 adjacent channels are 1 interleaved area, and the 9 channels are correspondingly divided into 3 interleaved areas, each interleaved area (i.e., every 3 adjacent channels) includes multiple data sets, each data set includes 3 data groups and is represented as the 0th to the 2nd group, each data group includes 2 rows of data units, and the cyclic shift values corresponding to the 3 data groups are 0, 1, and 2 respectively. The figure takes the right cyclic shift as an example for explanation. In practical applications, the left cyclic shift can also be used, and the embodiment of the present application does not make 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 the mapping of all X = 288 data units can be completed according to step S302 of the present invention.
[0133] according to Fig.17 It can be seen that 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 the sequence numbers of any two data units from the same code block is 54. The minimum difference in the sequence numbers of any two data units in 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 the two data units B0 and B54 from the same code block C1 in the 0th channel of the same channel is 54 (the difference in the sequence numbers of the data units is 54). The above Fig.10 In the scheme shown, when the number of channels is equal to 9 and the number of code blocks is equal to 6, the corresponding interleaving depth is 18. Therefore, the technical solution provided by 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 increasing the ability to resist burst interference, and Fig.10 Compared with the solution shown in the figure, the number of encoders and channels does not need to be increased, thereby greatly reducing power consumption and cost.
[0134] Fig.18 A schematic diagram is shown of data units after X data units are mapped to the N channels when M=5 and N=1, 2, 3, 4. Fig.19 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 is shown. B1 to B54 in the figure represent different data units, and the data units corresponding to the same filling 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 the mapping of all X=288 data units can be completed according to step S302 of the present invention.
[0135] 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 according to 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 according to the mapping position information.
[0136] Wherein, 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 data units with W rows and N columns, 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))modg), 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 operation, / means division operation, and W is a positive integer.
[0137] It can be understood 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.
[0138] S303: The data sending device sends the processed data unit in each of the N channels according to the channel mapping result.
[0139] When the X data units are mapped to N channels, the data transmitting device may process the data allocated to the channel according to the channel mapping result, and the processing may include scrambling, precoding, etc. of the data units (for example, Fig.17 As shown in FIG. 1 , each channel in the N channels sends the processed data unit. Fig.17 For example, among the channels, the data unit sent by the j-th channel in the i-th time unit is represented by F(i, j), and F(i, j) is the data unit after D(i, j) is processed.
[0140] In the embodiment of the present application, after obtaining a data block to be channel-mapped with X data units, the data sending device can map the X data units to N channels, and each g channel 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, thereby increasing the distance when the data units from the same code block are transmitted in the same channel, and thus greatly increasing the ability to resist burst interference when sending the data units of the N channels. In addition, the solution does not need to increase the number of encoders and the number of channels, thereby greatly reducing power consumption and cost.
[0141] Further, after the data sending device sends 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 data blocks after channel demapping. That is, after S303, if Fig. 20 As shown, the method may further include: S304-S305. Fig. 20 S301 - S303 are not shown. Fig.21 for Fig. 20 The data transmission method shown is an example of data processing corresponding to the data transmission method, and S305 below is represented as channel demapping.
[0142] S304: The data receiving device receives the data unit of each channel in the N channels, and obtains the data unit to be de-mapped by the channel.
[0143] The N channels are represented as channel 0 to channel N-1, and the data received by the j-th channel at the i-th time unit is represented as G(i, j). After de-precoding and de-scrambling corresponding to the scrambling and precoding in the above step S303, the data unit H(i, j) mapped to the channel to be de-mapped 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.
[0144] S305: The data receiving device demaps the received data units in the N channels to obtain a channel-demapped data block including X data units.
[0145] 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 channel mapping is demapped.
[0146] Optionally, the X data units and the data units in the N channels satisfy the following conditions: assuming that the N channels include data units in W rows and N columns, 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 means taking the greatest common divisor, mod means taking the remainder, int means rounding down, * means multiplication operation, / means division operation, W is a positive integer, and 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 vth data unit of the data block after de-channeling, that is: P(v)=H(i, j).
[0147] For example, the following takes X=288, M=6, and N=9 as an example, assuming that the distribution of data units in N channels received by the data receiving device is as follows: Fig.17 As shown. The data receiving device can determine g=gcd(M, N)=gcd(6,9)=3 according to the above conditions, that is, every three adjacent channels are one interleaving area, and the nine channels are divided into three interleaving areas, each interleaving area (that is, 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 cyclic shift values corresponding to the three data groups are 0, 1, and 2 respectively. At this time, Fig.17 In the example, taking the first data set in each interleaved area as an example, the data receiving device may not perform a cyclic shift on the channel where the first data group is located (i.e., the cyclic shift value is 0), perform a left cyclic shift on the channel where the second data group is located, and the corresponding cyclic shift value is 1, and perform a left cyclic shift on the channel where the third data group is located, and the corresponding cyclic shift value is 2. When multiple data sets in each interleaved area are processed according to the above scheme, a schematic diagram of data units in N channels can be obtained. Furthermore, the data receiving device can obtain data units from N channels to achieve demapping of the data units in the N channels.
[0148] In another possible embodiment, the data receiving device demaps the data units in the N channels to obtain a data block (logical block) after de-channel mapping 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; 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.
[0149] 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 data units of W rows and N columns, the preset corresponding relationship can be: the data unit of 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))modg), k=i*N+j. 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 operation, / means division operation, 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 mapping, that is: P(v)=H(i,j).
[0150] It can be understood 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 constitute a limitation to the embodiments of the present application.
[0151] It can be understood that if no bit error occurs during the transmission process, for the same logical block, P(v)=B(v).
[0152] Optional, such as Fig. 20 As shown, after the data receiving device demaps the data units in the N channels, the method may further include: S306-S307. Fig.21 Other processing processes after channel mapping are also shown accordingly. For example, the other processing processes 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 code blocks QM, and the M post-decoding code blocks after decoding are represented as code blocks R1 to code blocks RM.
[0153] S306: The data receiving device decodes the logic block to obtain M decoded code blocks.
[0154] Wherein, if the data sending device does not multiplex the M coding blocks with the transport layer management information during the transmission of the X data units, the demapped data obtained by the data sending device includes the M pre-decoding code blocks. If the data sending 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.
[0155] In a possible embodiment, if the demapped data obtained by the data receiving device includes M pre-decoding code blocks, the data receiving device can perform RS-FEC decoding processing on the M pre-decoding code blocks to obtain M decoded 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 can demultiplex the demapped data to obtain M pre-decoding code blocks and transport layer management information; thereafter, the data receiving device can perform RS-FEC decoding processing on the M pre-decoding code blocks to obtain M decoded code blocks. Optionally, the M pre-decoding code blocks may include data units, or include data units and check data.
[0156] 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 used for RS-FEC decoding can be called a decoder or decoder.
[0157] It is understandable that if no bit error occurs during the transmission process, for the same logical block, the value of the code block Q1 before decoding is the same as the value of the code block C1 after encoding, the value of the code block Q2 before decoding is the same as the value of the code block C2 after encoding, and so on. For the same logical block, the value of the code block R1 after decoding is the same as the value of the code block E1 before encoding, the value of the code block R2 after decoding is the same as the value of the code block E2 before encoding, and so on.
[0158] S307: The data receiving device performs decoding block mapping on the M decoded code blocks to obtain data to be transmitted.
[0159] 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, which may specifically include: if the data sending 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 sending 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.
[0160] In the embodiment of the present application, the data receiving device receives the data unit of each channel in N channels, each g channel in 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, thereby increasing the distance of the data units of the same code block transmitted in the same channel, that is, the difference in the number of the data units of the same code block transmitted in the same channel is large, and thus the ability to resist burst interference can be greatly increased when transmitting the data units of the N channels. In addition, the scheme does not need to increase the number of decoders and the number of channels, thereby greatly reducing power consumption and cost.
[0161] The data blocks for channel mapping and demapping can include one or more logical blocks. One or more logical blocks constitute a logical layer data frame (LLDF). Channel mapping and channel demapping take the logical data frame as a whole. All data in a single LLDF are continuously allocated and combined on each channel. Data allocation and combination must ensure that the amount of data transmitted on each channel is the same, otherwise random data needs to be filled. It is recommended to fill with 0x00 to ensure that the LLCF code pattern transmitted on each channel after LLDF is in an aligned state.
[0162] 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, 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; cyclically shifting 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.
[0163] In a possible embodiment of the present application, the data transmission method may include: acquiring a logical block, the logical block including X data units, the X data units corresponding to M code blocks, X and M being positive integers; determining g and m according to the M and the number of N channels, M being greater than m; allocating the X data units to N channels, each g channel of the N channels including at least one data set, each data set including multiple data groups, each data group including n rows of data units; performing 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.
[0164] In a possible embodiment of the present application, the data transmission method may include: acquiring a logical block, the logical block including X data units, the X data units corresponding to M code blocks, X and M are positive integers; determining a greatest common divisor g according to the M and the number of N channels; determining m according to the M and the greatest common divisor g, M being greater than m; allocating the X data units to N channels, each g channels of the N channels including at least one data set, each data set including multiple data groups, each data group including 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.
[0165] In a possible embodiment of the present application, the data transmission method may include: acquiring a logical block, the logical block including X data units, where X is a positive integer; for each data unit of the X data units, querying preset corresponding information according to the position information of the data unit in the logical block to determine the mapping position information of the data unit in N channels; mapping the data unit to the N channels according to the mapping position information; wherein the preset corresponding relationship is used to indicate the corresponding relationship between the position information of each data unit of the X data units in the logical block and the mapping position information in the N channels; and sending the data unit of each channel of the N channels.
[0166] In a possible embodiment of the present application, the data transmission method may include: acquiring a logical block, the logical block including X data units, X being a positive integer; mapping the X data units to N channels; sending data units of each channel in the N channels; wherein the N channels include data units of W rows and N columns, wherein the cyclic shift value corresponding to the data unit of the i-th row and j-th column is equal to int(i / m)mod g; and / or, the data unit of 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))modg), k=i*N+j; wherein g=gcd(M,N), m=M / g, gcd represents taking the greatest common divisor, mod represents taking the remainder, and int represents rounding down.
[0167] In a possible embodiment of the present application, the data transmission method may include: receiving data units of each channel of N channels, each g channels of 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, and the channels where the multiple data groups are located correspond to different cyclic shift values; obtaining the data units in the N channels after the cyclic shift to obtain the logical block.
[0168] In a possible embodiment of the present application, the data transmission method may include: receiving a data unit of each channel in N channels, the N channels correspondingly receiving X data units, the X data units corresponding to M code blocks, and M is a positive integer; according to the M and the N, determining that each g channels in the N channels include at least one data set, each data set includes multiple data groups, each data group includes m rows of data, N and g are positive integers, and N is greater than or equal to g; performing a cyclic shift on the channel 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; and obtaining the data units in the N channels after the cyclic shift to obtain the logical block.
[0169] In a possible embodiment of the present application, the data transmission method may include: receiving a data unit of each channel in N channels, the N channels correspondingly receiving X data units, the X data units corresponding to M code blocks, and M is a positive integer; determining, according to the M and the N, the number of rows m of the data units included in the g and each data group in the multiple data groups, including: determining a greatest common divisor g according to the M and the N to determine that each g channels in the N channels include at least one data set; determining, according to 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, 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, and 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.
[0170] In a possible embodiment of the present application, the data transmission method may include: receiving a data unit of each channel in N channels, wherein the N channels receive X data units correspondingly: for each data unit in the N channels, querying preset corresponding information according to 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; demapping the data unit according to the position information to obtain the logical block; wherein 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.
[0171] In a possible embodiment of the present application, the data transmission method may include: receiving a data unit 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 taking the greatest common divisor, mod represents taking the remainder, and int represents rounding down.
[0172] In a possible embodiment of the present application, taking 5 encoders, the type-C port supports up to 4 channels to be enabled, and assuming that the number of enabled channels is from 1 to 4, the data interleaving method in the corresponding channels can be as follows: Fig.18As shown, 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 is distributed from low to high in 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.
[0173] In a possible embodiment of the present application, 10 encoders (ie, M=10) are used, the type-B port supports up to 8 channels to be enabled, and assuming that the number of enabled channels is from 1 to 8, the data interleaving method in the corresponding channels can be as follows: Fig.19As shown, the arrangement is cyclic after every 10 data on each channel, and the figure shows the smallest cyclic interleaving arrangement. Accordingly, the method is specifically implemented as follows: (1) All LLB data are distributed to each enabled channel byte by byte in byte order; (2) Data are distributed 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 that M = 10, for all even numbers less than or equal to 8, gcd(M, N) = 2, that is, g = 2, m = 10 / 2 = 5, and every two adjacent channels constitute a channel mapping interleaving area. 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. In this way, the processing of the entire LLDF data is completed in a 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 where the first two rows are located do not perform cyclic shift, that is, the cyclic shift value is 0, and the cyclic shift value of the channels where the next two rows of data are located is 1, that is, the two data units to be sent in channel 0 of these two rows are moved to channel 1 for transmission, the two data units to be sent in channel 1 are moved to channel 2 for transmission, the two data units to be sent in channel 2 are moved to channel 3 for transmission, the two data units to be sent in channel 3 are moved to channel 4 for transmission, and the two data units to be sent in 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 is restored to the initial distribution state.
[0174] The above mainly introduces the scheme 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. It should be easily appreciated by those skilled in the art 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 the form of hardware or computer software driving hardware 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 exceed the scope of the present application.
[0175] The embodiment of the present application can divide the functional modules of the data sending device and the data receiving device according to the above method example. For example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one module. The above 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 function division. There may be other division methods in actual implementation. The following is an example of dividing each functional module corresponding to each function.
[0176] In the case of an integrated unit, Fig. 22 A possible structural diagram of the data sending device involved in the above embodiment is shown. 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 article; 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.
[0177] On the basis of hardware implementation, the acquisition unit 401 and the processing unit 402 in the present application may be the interleaving circuit of the device, and the sending unit 403 may be the transmitter of the device, and the transmitter may also be referred to as a sending port. Optionally, the transmitter may be generally integrated with the receiver to be used as a transceiver, and the specific transceiver may also be referred to as a communication interface.
[0178] like Fig.23As shown, it is a structural schematic diagram of a data sending device provided by an embodiment of the present application. The device may be a transmitting end device, or a chip applied to a transmitting end device, and the device includes: an interleaving circuit 411 and a transmitter 412. The interleaving circuit 411 is used to support the device to perform S301, S302 in the above method embodiment, and / or other processes for the technology described herein. In addition, the transmitter 412 can be used to support the device to communicate, for example, to support the device to communicate with a data receiving device.
[0179] 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.
[0180] In the case of an integrated unit, Fig.24 A possible structural diagram of the data receiving device involved in the above embodiment is shown. The data receiving device can be a receiving end device, or a chip applied to a 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 execute S304 in the above method embodiment; the processing unit 502 can be used to support the device to execute S305, S306, S307 in the above method embodiment, and / or other technical processes described in this document. 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.
[0181] On the basis of hardware implementation, the processing unit 502 in the present application can be an interleaving circuit of the device, and the receiving unit 501 can be a 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 be used as a transceiver, and the specific transceiver can also be called a communication interface.
[0182] like Fig.25 As shown, it is a structural schematic diagram of a data receiving device provided by an embodiment of the present application. The data receiving device can be a receiving end device, or a chip applied to a receiving end device, and the device includes: a receiver 511 and an interleaving circuit 512. The interleaving circuit 512 is used to support the device to perform S305, S306, S307 in the above method embodiment, and / or other processes for the technology described herein. In addition, the receiver 511 can be used to support the device to communicate, for example, to support the device to communicate with a data sending device.
[0183] 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.
[0184] In another embodiment of the present application, a data transmission system is provided, the data transmission system comprising a data sending device and a data receiving device; wherein the data sending device may be or include the above-mentioned Fig. 22 or Fig.23 The data sending device provided is used to execute the steps of the data sending device in the method embodiment provided above; the data receiving device may be or include the above Fig.24 or Fig.25 The provided data receiving device is used to execute the steps of the data receiving device in the method embodiment provided above.
[0185] 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 only schematic, for example, the division of the modules or units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed.
[0186] The units described as separate components may or may not be physically separated, 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 different places. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0187] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium, which can include: a USB flash drive, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk, etc., which can store program codes. Based on this understanding, the technical solution of the embodiment of the present application can essentially or in other words, be embodied in the form of a software product, in part or in part, as a contribution to the prior art.
[0188] In another embodiment of the present application, a readable storage medium is also provided, which stores computer execution instructions. When a device (which may be a single-chip microcomputer, chip, etc.) or a processor executes the steps of the data sending device in the above method embodiment.
[0189] In another embodiment of the present application, a readable storage medium is also provided, which stores computer execution instructions. When a device (which may be a single-chip microcomputer, chip, etc.) or a processor executes the steps of the data receiving device in the above method embodiment.
[0190] 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 sending device in the above method embodiment.
[0191] 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.
[0192] Finally, it should be noted that the above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope 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 34, 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.