Data transmission method, device and system
By encoding consecutively arranged data frames and check frames during data transmission, and using location tags to recover erroneous data frames, the problem of data packet loss under undesirable transmission environments is solved, and the data frame recovery capability and decoding rate are improved.
Patent Information
- Application Number
- CN202210749573.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-29
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2042-06-29
AI Technical Summary
In networks with less than ideal transmission environments, data frame packet loss is severe, and existing technologies struggle to effectively improve data recovery capabilities. In particular, channel fading in satellite bearer networks and deep space laser communications leads to high bit error rates, affecting the reception and decoding of data frames.
A data transmission method is adopted in which the transmitting device encodes consecutively arranged data frames and check frames, and the data frames with the same or different frame lengths carry position tags. The receiving device fills the data frames and check frames into the matrix positions according to the tags, and combined with the physical layer error marking mechanism, the erroneous data frames are recovered.
It improves the data frame recovery capability, reduces transmission overhead, and is especially effective in short frame cases, thereby increasing the data frame decoding rate.
Smart Images

Figure CN117354241B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of communication, in particular to a data transmission method, device and system. BACKGROUND
[0002] With the progress of science and technology, the reliability of data transmitted in a network is increasingly required. Different networks have different characteristics, and thus the contents carried by data frames and the like are increasingly diverse. For example, the frames transmitted in an Ethernet are non-fixed length frames. The transmission method of the prior art has a large transmission overhead.
[0003] In some networks in which the transmission environment is not ideal, such as networks in which the transmission distance is long or the transmission medium fluctuates greatly, a large amount of packet loss occurs during data transmission. In this case, effectively improving the data recovery capability when receiving data frames becomes a problem to be solved. SUMMARY
[0004] The present application provides a data transmission method, device and system, which can effectively improve the data recovery capability when receiving data.
[0005] In a first aspect, an embodiment of the present application provides a data transmission method, comprising: receiving a group of frames, the group of frames comprising at least two data frames and a predetermined number of check frames arranged continuously, wherein the frame lengths of the at least two data frames are the same or different; if the first data frame is included in the received group of frames, filling the data generated by encoding the first data frame, which comprises a start code block, a data code block and an end code block, into the corresponding positions of a matrix according to the position tag (Tag) in the first data frame, wherein the first data frame is a correct data frame and contains a correct position tag; if the first check frame is included in the received group of frames, filling the data corresponding to the first check frame into the corresponding positions of the matrix according to the position tag in the first check frame, wherein the check frame is a correct check frame and contains a correct position tag.
[0006] The data transmitted in a network will be lost and damaged to a certain extent due to the influence of network environment and other factors. For example, in a satellite bearer network, the space link of a satellite is easily affected by various interferences, and the space link is highly dynamic. When the satellite moves, vibration occurs, which increases the bit error rate of the space channel. In deep space laser communication, atmospheric disturbances caused by optical turbulence and other factors can cause the length of channel fading time to last for milliseconds (ms), thereby causing a large amount of packet loss. Affected by a large amount of packet loss, the ability of a receiving device to decode more effective content from the data that can be received is particularly important.
[0007] The data frame generates data including a start code block, a data code block and an end code block when being encoded in a sending device, and the data of the start code block, the data code block and the end code block of the first data frame can be filled into corresponding positions of the matrix according to the position tag when the first data frame is received.
[0008] The start code block and the end code block can be denoted as S code block and T code block respectively according to standard definition in the Ethernet. The S code block indicates the start of the data frame, and the T code block indicates the end of the data frame. One S code block and one T code block form a delimiter.
[0009] In a possible manner, after the receiving the group of frames, the method further includes: if the received group of frames includes a second data frame, filling data including a start code block and a data code block generated by encoding in a part before a first error code block in the second data frame into corresponding positions of the matrix according to a position tag in the second data frame, wherein the second data frame is a data frame including a correct position tag and the error code block.
[0010] In the Ethernet, the error code block is an E code block, which is defined in a standard.
[0011] In a possible manner, after the receiving the group of frames, the method further includes: if the received group of frames includes a third data frame, discarding the third data frame, wherein the third data frame includes an incorrect position tag and is an incorrect data frame.
[0012] If a data frame in a group of frames includes a Tag and a delimiter and does not include an E code block, the data frame can be denoted as a first data frame. If a data frame includes a Tag and a delimiter and includes an E code block, the data frame can be denoted as a second data frame. If a data frame includes an E code block and does not include a Tag or the Tag is incorrect, the data frame can be denoted as a third data frame. If a data frame is not identifiable in terms of boundary, i.e., the delimiter is incomplete (the delimiter only includes an S code block or a T code block) or does not include the delimiter, the data frame can be denoted as a fourth data frame. The third data frame and the fourth data frame need to be discarded.
[0013] In a possible manner, the position tag indicates a row number and a column number of a first symbol of a first code word generated by encoding in a frame where the position tag is located in the matrix.
[0014] In a possible manner, if a number of unfilled data symbols in each row of the matrix is not greater than a number of preset check frames filled in the corresponding row, data is decoded from the matrix.
[0015] If each row of the judgment matrix can be decoded, the receiving device decodes successfully, and the S code blocks and the T code blocks can be recovered, and the boundary of the error data frame is identified. Otherwise, the receiving device decodes unsuccessfully, and the error frame cannot be recovered.
[0016] The embodiment of the present application can combine the error correction mechanism of the physical layer when recovering the error data frame, fully utilize the partial code block decoding recovery in the error data frame, effectively improve the recovery capability of the error data frame, and improve the decoding rate. The encoding scheme provided is to encode the frames of different lengths closely back to back, and the scheme of encoding according to the longest frame in the prior art is no longer used, so that the overhead can be saved, and especially when the data frame is a short frame, the overhead is smaller by introducing the method of the embodiment of the present application.
[0017] In a second aspect, the embodiment of the present application provides a data transmission method, including: encoding at least two data frames and a predetermined number of check frames arranged continuously to obtain a group of frames, wherein the frame lengths of the at least two data frames are the same or different, and the data frames carry a position label, which is used to make a receiving device fill data generated by encoding the data frame into corresponding positions of a matrix, the data including a start code block, a data code block, and an end code block, and the check frames carry the position label, which is used to make the receiving device fill corresponding data of the check frame into corresponding positions of the matrix; and transmitting the group of frames.
[0018] In a possible manner, the position label indicates the row number and the column number of the first symbol of the first code word generated by encoding in the frame where the position label is located in the matrix.
[0019] In a third aspect, the embodiment of the present application provides a receiving device, including: a receiving module, configured to receive a group of frames, the group of frames including at least two data frames and a predetermined number of check frames arranged continuously, wherein the frame lengths of the at least two data frames are the same or different; and a processing module, configured to, if the group of frames received by the receiving module includes a first data frame, fill data generated by encoding the first data frame into corresponding positions of a matrix according to a position label in the first data frame, wherein the first data frame is a correct data frame, and includes a correct position label; and the processing module is further configured to, if the group of frames received by the receiving module includes a first check frame, fill corresponding data of the first check frame into corresponding positions of the matrix according to a position label in the first check frame, wherein the check frame is a correct check frame, and includes a correct position label.
[0020] In a possible implementation, the processing module is further configured to, if the set of frames received by the receiving module includes a second data frame, fill, according to a position label in the second data frame, data generated by encoding in a part before a first error code block in the second data frame, including a start code block and a data code block, into a corresponding position in the matrix, where the second data frame is a data frame including a correct position label and the error code block.
[0021] In a possible implementation, the processing module is further configured to, if the set of frames received by the receiving module includes a third data frame, discard the third data frame, where the third data frame includes an incorrect position label and is an incorrect data frame.
[0022] In a possible implementation, the position label indicates a row number and a column number in the matrix of a first symbol of a first code word generated by encoding in a frame where the position label is located.
[0023] In a possible implementation, the decoding module is configured to, if a number of unfilled data symbols in each row of the matrix is not greater than a number of pre-set check frames filled in the corresponding row, decode the matrix to obtain data.
[0024] In a fourth aspect, an embodiment of the present application provides a sending device, including: an encoding module configured to encode at least two data frames arranged continuously and a predetermined number of check frames to obtain a set of frames, where the at least two data frames have the same or different frame lengths, and the data frames carry a position label, used to enable a receiving device to fill data generated by encoding, including a start code block, a data code block and an end code block, into a corresponding position in a matrix, and the check frames carry the position label, used to enable the receiving device to fill corresponding data of the check frames into a corresponding position in the matrix; and a sending module configured to send the set of frames.
[0025] In a possible implementation, the position label indicates a row number and a column number in the matrix of a first symbol of a first code word generated by encoding in a frame where the position label is located.
[0026] In a fifth aspect, an embodiment of the present application provides a data transmission system, including: the sending device provided in the third aspect; and the receiving device provided in the fourth aspect.
[0027] It should be understood that the third aspect of the present application is consistent with the technical solution of the first aspect of the present application, the fourth aspect is consistent with the technical solution of the second aspect of the present application, and the beneficial effects obtained by each aspect and the corresponding possible implementation manners are similar, which will not be repeated. BRIEF DESCRIPTION OF DRAWINGS
[0028] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the description of the embodiments of the present application. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained from these drawings without creative labor.
[0029] Figure 1A Format diagram of data frame of Ethernet;
[0030] Figure 1B Format diagram of Ethernet physical layer architecture;
[0031] Figure 2 Flow diagram of data transmission method provided by the embodiments of the present application;
[0032] Figure 3 Format diagram of 64B / 66B code block structure of Ethernet;
[0033] Figure 4 Format diagram of a group of frame structures provided by the embodiments of the present application;
[0034] Figure 5 Flow diagram of another data transmission method provided by the embodiments of the present application;
[0035] Figure 6A Format diagram of a group of frame structures received by the embodiments of the present application;
[0036] Figure 6B Format diagram of decodable part structure of a group of frames received by the embodiments of the present application;
[0037] Figure 7A Format diagram of another group of frame structures received by the embodiments of the present application;
[0038] Figure 7B Format diagram of decodable part structure of another group of frames received by the embodiments of the present application;
[0039] Figure 8 Format diagram of receiving device structure provided by the embodiments of the present application;
[0040] Figure 9 Format diagram of sending device structure provided by the embodiments of the present application;
[0041] Figure 10 Format diagram of data transmission system structure provided by the embodiments of the present application;
[0042] Figure 11 Format diagram of device provided by the embodiments of the present application. DETAILED DESCRIPTION
[0043] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are some of the embodiments of the present application, but not all of them. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative effort belong to the scope of protection of the present application.
[0044] The term "and / or" in the present application is only used to describe an association relationship of associated objects, and means that there can be three relationships, for example, A and / or B can mean that A exists alone, A and B exist together, and B exists alone.
[0045] The terms "first" and "second" and the like in the description and claims of the embodiments of the present application are used to distinguish different objects, and are not used to describe a specific order of the objects. For example, the first target object and the second target object are used to distinguish different target objects, and are not used to describe a specific order of the target objects.
[0046] In the embodiments of the present application, the words "exemplary" or "for example" are used to mean serving as an example, instance, or illustration. Any embodiment or design presented as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or advantageous than other embodiments or design solutions. Rather, the use of "exemplary" or "for example" is intended to present concepts in a particular manner. The words "exemplary" and "for example" are used in the embodiments of the present application to mean serving as an example, instance, or illustration.
[0047] In the description of the embodiments of the present application, unless otherwise specified, "a plurality of" means two or more. For example, a plurality of processing units means two or more processing units; a plurality of systems means two or more systems.
[0048] The data transmission method provided by the embodiments of the present application can be applied in a network with different frame lengths in a group of frames. Each group of frames is encoded by a sending device and then transmitted to a receiving device, and the receiving device decodes to obtain data. In order to illustrate how the data transmission is encoded at the sending device end and how it is decoded at the receiving device end, the embodiments of the present application take the transmission of data in an Ethernet as an example to illustrate, which complies with the related standards of the Ethernet, such as IEEE802.3. Other networks can refer to the method for transmission.
[0049] The terms mentioned in the present application can be explained as follows, and in practice, the technical explanation known to those skilled in the art can also be referred to.
[0050] 1. Data frame, Figure 1A The format of the data frame of the Ethernet is shown in the following figure: Figure 1AAs shown, the format of the data frame can include a 7-byte preamble, a 1-byte start of frame delimiter (SFD), a 6-byte destination address (DA), a 6-byte source address (SA), a 2-byte length / type field, a 46-byte to 1500-byte or 1504-byte to 1982-byte medium access control client data field, a pad, and a 4-byte frame check sequence (FCS).
[0051] 2. The check frame is a frame generated by the application according to the data frame, and can be recovered from a group of data frames and check frames received when a part of the data frame FCS check is wrong. The check frame has a similar structure to the data frame.
[0052] 3. The group of frames is a group of data frames and check frames sent or received in an Ethernet window.
[0053] 4. A position tag (Tag) is a field inserted by the application in the data frame / check frame, which can indicate the row number and column number of the first symbol of the first code word generated by encoding in the frame.
[0054] Figure 1B An Ethernet physical layer architecture is shown in FIG. 1. Figure 1B As shown, taking 40-bit Ethernet (GE) and 100 GE as examples, the data transmitted in the Ethernet by the application is based on the 64B / 66B encoding standard of IEEE 802.3 specification, and the content and rules of encoding and decoding are improved. Figure 2 A flowchart of a data transmission method provided by an embodiment of the application is shown in FIG. 2. Figure 2 As shown, the method is as follows.
[0055] S101. The sending device encodes at least two data frames arranged continuously and a predetermined number of check frames to obtain a group of frames.
[0056] There can be multiple data frames in the group of frames, and the frame lengths of the data frames are the same or different. A next data frame is arranged continuously and closely after a data frame, and the group of frames can also include a predetermined number of check frames. In some scenarios, the group of frames can also be data frames and a predetermined number of check frames that can be sent in a window.
[0057] It should be noted that in the Ethernet, as shown in FIG. 1, Figure 1BAt the transmitting device side, when the data to be transmitted of the Ethernet enters the Medium Access Control (MAC) layer or the Reconciliation Sublayer (RS), it needs to be checked and encoded according to the corresponding medium independent interface (MII) requirements, and then transmitted to the Physical Coding Sublayer (PCS) through some kind of MII (xMII). The xMII is generally applied between the MAC layer and the physical layer of the Ethernet device, and in some examples, the xMII interface can exist in an integrated circuit. The PCS layer receives the xMII information transmitted by various interfaces, and performs bit code block encoding and rate matching on them. For example, the PCS layer encodes according to the 64-bit (B) / 66B rule, forms a serial stream, and then transmits the 64B / 66B code block to the Forward Error Correction (FEC) layer. After the FEC encoding, the data stream can be transmitted to the receiving device through the physical medium attachment (PMA) and the physical medium dependent (PMD). Based on the working principle of each layer of the Ethernet, the transmitting device can encode the data or control information to be transmitted. The code block can refer to the encoding rule of IEEE 802.3, that is, the 64B / 66B encoding encodes 64-bit data or control information into a 66-bit code block for transmission. For example, Figure 3 Figure 1 is a schematic diagram of the Ethernet 64B / 66B code block structure. As shown in Figure 3 , the first 2 bits of the 66B code block represent the synchronization header, and the last 64 bits can be the data payload. The synchronization header has two types, "01" and "10". When the synchronization header is "01", it indicates that the code block is a data code block, and the 64 bits after the synchronization header "01" are all data. When the synchronization header is "10", it indicates that the code block is a control code block, and the 64 bits after the synchronization header "10" include one or both of data and control information. In the control code block, the 8 bits adjacent to the synchronization header after the synchronization header are the type field, that is, the first 8 bits of the data payload can be used to represent the type of the control code block. The 56 bits after the type field are one or both of data and control information. For example, Figure 3As shown in the middle, in the 64B / 66B code block, D represents a data byte, each data byte occupies 8 bits; C represents a control byte, each control byte occupies 7 bits; S represents the start of a group of frames, T represents the end of a data frame; O represents an ordered set control code block, the value of O is different, the use scene is different, and the type can be marked as 0x4B, etc. In the 64B / 66B code block, S can only appear at the 0th byte and the 4th byte in the 8th byte, and T can appear on any byte. The code block containing S can be called an S code block, that is, a start code block, and the code block containing T can be called a T code block, that is, an end code block. C0-C7 in the idle code block are 0, and C0-C7 in the low power interference (LPI) code block are 6. Therefore, as shown in the left part of Figure 2 , the corresponding code block of a data frame of a MAC layer at the physical layer is SDDD…DT, and the boundaries of different data frames can be distinguished by S code blocks and T code blocks, that is, the S code block and the T code block constitute a delimiter.
[0058] In different scenarios, the data and control information to be transmitted are different, and the lengths of the data frames are also different. For example, in some networks, short frames are more common, and in some networks, long and short frames are interleaved. If a group of frames is encoded according to the longest frame and then transmitted in the prior art, the system will be increased, resulting in low transmission efficiency. The embodiments of the present application can effectively reduce the transmission overhead by compactly filling each data frame together and arranging them continuously for encoding. Figure 4 The structure diagram of a group of frames provided by the embodiments of the present application is shown in Figure 4 , in which a group of frames to be transmitted by a sending device includes 7 data frames and 3 check frames, that is, the predetermined number of check frames is 3. The data frames are denoted as D1, D2, D3, D4, D5, D6, and D7, and the check frames are denoted as P1, P2, and P3. A group of frames can be regarded as data in a window, and the data in the window can be encoded into a code block. Figure 4 It can be seen that the lengths of the data frames are not the same, the content of D1 frame is filled and then the content of D2 frame is filled, and the data frame is also filled with a check frame. The number of characters of each data frame and the number of characters of each check frame in each row of the group of frames can be defined differently according to different requirements of different Ethernet rates, which can be denoted as RS(n, k), where n represents the length of a code word in symbols, and the symbol length of the Reed Solomon forward error correction (RS-FEC) used by the current Ethernet is 10-bit; k is the length of the data symbol in a code word, for example, Figure 4As shown in the diagram, RS(9,6) means that in a transmission of a set of frames, there are a total of 9 symbols in a row, including 4 symbols for data frames and 2 symbols for check frames.
[0059] Furthermore, the MAC layer uses frame redundancy encoding to distinguish the start block, data block, and end block, and then fills them back-to-back to generate a check frame. For example, the MAC layer can use 64B / 66B code blocks generated by 64B / 66B encoding of the data frame as frame redundancy encoding and fill them back-to-back to generate a check frame. This encoding is not limited to 64B / 66B encoding; it can also be other encodings, such as 256B / 257B encoding, 512B / 514B encoding, etc. The compact filling of the encoding is as described in the example above: after filling one part of the content, the next part of the content is immediately filled in without leaving any empty spaces, which will not be described in detail here.
[0060] For example, the transmitting device transmits including, Figure 4 The seven data frames shown are denoted as D, and the three-check frame is denoted as P. Each data frame (D) and check frame (P) carries a tag, which indicates the row and column number of the first symbol of the first codeword encoded in the frame within the matrix. For example, the tag in data frame D1 may include the row and column number of the first symbol of the first codeword in D1 within the matrix, and the tag in check frame P1 may include the row and column number of the first symbol of the first codeword in P1 within the matrix. The tag may also contain Ethernet type identifiers (EthType), etc. Furthermore, the tag can be inserted at any position in each frame; preferably, the tag is placed in the frame header.
[0061] S102, The transmitting device sends a set of frames.
[0062] The transmitting device can use the MAC layer to take all 64B / 66B code blocks generated by 64B / 66B encoding of the data frame as input for frame redundancy coding, and fill them back-to-back to generate check frames, forming at least two consecutively arranged data frames and a predetermined number of check frames, which are then sent to the receiving device. In some instances, frames also use tags in frame duplication technology. In this embodiment, the content of the tag can be modified so that each tag placed in a frame can carry at least the EthType, the row number and column number of the first symbol of the first codeword generated by encoding in that frame, and a set of frames. By sending such data frames and check frames, the receiving device can fill the data frames and check frames into the matrix according to the positions indicated by the tags when it receives them, thus recovering erroneous or lost code blocks to a greater extent and increasing the probability of successful decoding.
[0063] Figure 5Another flowchart of a data transmission method provided by an embodiment of the present application is shown in FIG. 2, and the method is as follows. Figure 5
[0064] In S103, the receiving device receives a group of frames.
[0065] The group of frames includes at least two data frames and a predetermined number of check frames arranged continuously, wherein the frame lengths of the at least two data frames are the same or different from each other. The content of the group of frames can refer to the above example, and will not be repeated here. Due to the influence of network environment and other factors, data transmitted in the network will be lost and damaged to a certain extent. For example, in a satellite bearer network, the space link of a satellite is easily affected by various interferences, and the space link is also highly dynamic. When the satellite is moving, it will vibrate, which increases the bit error rate of the space channel. In deep space laser communication, atmospheric disturbances caused by optical turbulence and other factors can cause channel fading time to last for milliseconds (ms), resulting in a large number of packet losses. Affected by a large number of packet losses, the ability of the receiving device to decode more valid content from the data it can receive is particularly important. In this case, a large number of error code blocks may appear in the data frames received by the receiving device, and these error code blocks are E code blocks defined by the physical layer. Each data frame carries an S code in the start code block, denoted as an S code block, and carries a T code in the end code block of each data frame, denoted as a T code block. The physical layer defines an S code block and a T code block as a delimiter, and each data frame and check frame contains a Tag. However, due to various influences during transmission, the delimiter may be lost, and the Tag may be lost or incorrect. The receiving device will judge the received data frames when receiving each group of frames, determine the type of the data frames according to the content carried by the received data frames, and then perform different processing. The receiving device will also judge the check frames to determine whether the check frames are correct check frames containing correct Tags, and then fill the data corresponding to the check frames into the corresponding positions of the matrix according to the Tags.
[0066] Further, if the group of frames received by the receiving device includes a first data frame, the receiving device fills the data including the start code block, the data code block, and the end code block generated by encoding the first data frame into the corresponding positions of the matrix according to the position tag in the first data frame, wherein the first data frame is a correct data frame containing a correct position tag.
[0067] If the group of frames received by the receiving device includes a second data frame, the receiving device fills the data including the start code block and the data code block generated by encoding the part before the first error code block in the second data frame into the corresponding positions of the matrix according to the position tag in the second data frame, wherein the second data frame is a data frame containing a correct position tag and an error code block.
[0068] If the receiving device receives a set of frames including a third data frame, it discards the third data frame, which contains an incorrect location tag and is therefore an erroneous data frame.
[0069] If the receiving device receives a set of data frames that are different from the first, second, and third data frames mentioned above, it can identify it as the fourth data frame, that is, a data frame with an incomplete start or end code block and unidentifiable boundaries.
[0070] In addition, if the receiving device receives a set of frames including a first check frame, it fills the data corresponding to the first check frame into the corresponding position of the matrix according to the position label in the first check frame. The check frame is a correct check frame and contains the correct position label.
[0071] For example, such as Figure 5 As shown, the receiving device judges each data frame and check frame in a received set of frames. If a data frame has an identifiable boundary and no E-code block, this type of data frame can be recorded as the first data frame, and the receiving device performs step S104 on the first data frame. If a data frame has an identifiable boundary, contains an E-code block, and the tag is not erroneous, this type of data frame can be recorded as the second data frame, and the receiving device performs step S105 on the second data frame. If a data frame has an identifiable boundary, the error includes an E-code block, but does not include the tag or the tag is erroneous, this type of data frame can be recorded as the third data frame, and the receiving device performs step S106 on the third data frame. If a data frame has an indistinguishable boundary, this type of data frame can be recorded as the fourth data frame, and the receiving device performs step S107 on the fourth data frame.
[0072] S104. The receiving device fills the data, which includes a start code block, a data code block, and an end code block, generated by encoding the first data frame into the corresponding positions of the matrix according to the Tag in the first data frame.
[0073] S105. The receiving device fills the corresponding positions in the matrix with the data generated by encoding the part before the first E code block in the second data frame, which includes the start code block and the data code block, according to the Tag in the second data frame.
[0074] S106, The receiving device discards the third data frame.
[0075] S107, The receiving device discards the fourth data frame.
[0076] After steps S104 and S105, it is determined whether the matrix containing the data meets the preset conditions. If it does, the data is obtained by decoding the matrix based on a predetermined number of verification frames. For example, it is determined whether each row of the matrix can be decoded. If it can, step S108 is executed; otherwise, step S109 is executed.
[0077] S108, the receiving device decodes successfully, and identifies the boundary of the error data frame through the recovered S code blocks and T code blocks.
[0078] For example, the receiving device can determine whether the matrix can be decoded successfully according to each row in the matrix being filled with code blocks and corresponding check frame code blocks, and if so, the missing S code blocks and T code blocks in each data frame can be recovered, and then the boundary of the error frame is identified.
[0079] Further, if the number of data symbols not filled in each row of the matrix is not greater than the number of preset check frames filled in the corresponding row, the data is obtained by decoding the matrix.
[0080] S109, the receiving device fails to decode, and cannot recover the error frame.
[0081] Further, the matrix has X rows, and the number of data symbols not filled in each row is M, and the predetermined number of check frames is N, wherein X, M and N are positive integers, and X is greater than M, if M of each row of the X rows is not greater than N, the data is obtained by decoding the matrix.
[0082] For example, Figure 6A A schematic diagram of a received group of frame structures provided by an embodiment of the present application, Figure 6B A schematic diagram of a decodable part of a received group of frames provided by an embodiment of the present application, as shown in Figure 6A During the transmission of the data frames, the S, D and T corresponding to the data frame 2 and the data frame 3 are all marked as E code blocks, and the receiving device cannot determine the boundary of the data frame 2 and the data frame 3 when implementing decoding, and the blank part in Figure 6B does not participate in decoding, and other data frames normally participate in decoding, and through the decoding of the received other correct data frames and check frames, the S / T of the error data frames can be recovered to realize the delimiting.
[0083] In this example, the rectangle is 192 rows, 60 columns of data frames, and 3 columns of check frames, that is, the matrix corresponding to this group of frames has X = 192, 60 data symbols per row, and 3 check symbols. If the set error rate is that the missing data in each row does not exceed 3, that is, the predetermined number of check frames is set to 3, N = 3, as shown in Figure 6B the number of data symbols not filled in each row is M = 2, and M is less than N, so the rectangle can be correctly decoded to obtain data.
[0084] Figure 7A A schematic diagram of another received group of frame structures provided by an embodiment of the present application, Figure 7B A schematic diagram of another decodable part of a received group of frames provided by an embodiment of the present application, as shown in Figure 7AAs shown, in the data frame transmission process, the part D corresponding to the data frame 2, the data frame 3, the data frame 4 and the data frame 5 is marked as the E code block, and when the decoding side implements the decoding, the part before the first E code block of the data frame 2, the data frame 3, the data frame 4 and the data frame 5 is filled into the corresponding position of the matrix to participate in the decoding, and the data generated by the encoding includes the start code block and the data code block, as shown in the following figure. Figure 7B As shown, M of the second row is 1, M of the third to fifth rows is 3, M of the sixth row is 2, and so on, and M of each row is not greater than N, that is, each row can be decoded, and the matrix can be successfully decoded.
[0085] The receiving device can improve the data recovery capability by processing different contents carried by different data frames in the received group of frames, for example, the receiving device can recognize the boundary of the data frame without the E code block and the check frame, and can put all the 64B / 66B code blocks corresponding to the frame redundancy decoding as the input into the correct position in the matrix according to the indication of the Tag; for the data frame and the check frame with the E code block and the correct Tag, the S code block and the D code block before the first E code block are taken as the input of the frame redundancy decoding, and are put into the correct position in the matrix according to the indication of the Tag; the other frames are discarded, and when the decoding is completed, the boundary of the error data frame can be recognized according to the recovered S code and T code. The embodiment of the present application can combine the error correction mechanism of the physical layer FEC when the error data frame is recovered, fully utilize the partial code block decoding recovery in the error data frame, and effectively improve the recovery capability of the error data frame and the decoding rate.
[0086] In the embodiment of the present application, the provided encoding scheme is to arrange the frames of different lengths continuously and closely in back-to-back, and the scheme of encoding according to the longest frame in the prior art is no longer used, so that the overhead can be saved, especially when the data frame is a short frame, the overhead of the method introduced in the embodiment of the present application is smaller.
[0087] Figure 8 The structure schematic diagram of the receiving device provided in the embodiment of the present application is shown in the following figure. Figure 8 As shown, the receiving device 200 comprises:
[0088] The receiving module 20 is configured to receive a group of frames, and the group of frames comprises at least two data frames and a predetermined number of check frames arranged continuously, wherein the frame lengths of the at least two data frames are the same or different.
[0089] The processing module 21 is configured to, if the group of frames received by the receiving module 20 comprises a first data frame, fill the data generated by the encoding of the first data frame into the corresponding position in the matrix according to the position tag in the first data frame, wherein the first data frame is a correct data frame and comprises a correct position tag.
[0090] The processing module 21 is further configured to, if the set of frames received by the receiving module 20 includes a first check frame, fill the corresponding data of the first check frame into the corresponding position of the matrix according to the position label in the first check frame, wherein the check frame is a correct check frame containing a correct position label. In one possible implementation, the processing module 21 is further configured to, if the set of frames received by the receiving module 20 includes a second data frame, fill the encoded data (including a start code block and a data code block) generated from the portion of the second data frame before the first error code block into the corresponding position of the matrix according to the position label in the second data frame, wherein the second data frame is a data frame containing a correct position label and an error code block.
[0091] In one possible implementation, the processing module 21 is further configured to discard a third data frame if a set of frames received by the receiving module 20 includes a third data frame, wherein the third data frame contains an incorrect location label and is an erroneous data frame.
[0092] In some instances, the position label indicates the row and column number in the matrix of the first symbol of the first codeword generated after encoding in the frame where the position label is located.
[0093] In one possible implementation, a decoding block 22 is also included, used to decode the matrix to obtain data if the number of unfilled data symbols in each row of the matrix is not greater than the number of preset check frames filled in the corresponding row.
[0094] Figure 9 This is a schematic diagram of the transmitting device structure provided in an embodiment of this application, such as... Figure 9 As shown, the transmitting device 300 includes:
[0095] Encoding block 30 is used to encode at least two consecutively arranged data frames and a predetermined number of check frames to obtain a set of frames, wherein at least two data frames have the same or different frame lengths, and the data frames carry position tags, which are used to enable the receiving device to fill the data containing start code block, data code block and end code block generated by encoding the data frames into the corresponding positions of the matrix. The check frames carry position tags, which are used to enable the receiving device to fill the data corresponding to the check frames into the corresponding positions of the matrix.
[0096] The sending module 31 is used to send a set of frames.
[0097] In some instances, the position label indicates the row and column number in the matrix of the first symbol of the first codeword generated after encoding in the frame where the position label is located.
[0098] Figure 10 This is a schematic diagram of the data transmission system structure provided in the embodiments of this application, such as... Figure 10 As shown, system 1 includes a receiving device 200 and a transmitting device 300.
[0099] As Figure 10 As shown in Fig. a, the system can be a network comprising a head node A and a tail node B, wherein the head node A can be the sending device 300 and the tail node B can be the receiving device 200. As shown in Fig. b, it can also be applied to a larger scale network, and the method can be applied as a link technology between adjacent nodes (A-B, B-C) or end to end (A-C). As shown in Fig. a, the node A is the sending device 300, the adjacent node B is the receiving device 200, the node B is the sending device 300, and the adjacent node C is the receiving device 200, or vice versa, the node B is the sending device 300, the adjacent node A is the receiving device 200, and so on. The same is true between end to end (A-C), the head node A can be the sending device 300 and the tail node C can be the receiving device 200, or the head node A can be the receiving device 200 and the tail node C can be the sending device 300. The sending device and the receiving device are determined according to the specific transceiving side of the data, and no other limitations are made.
[0100] Further, Figure 11 The device schematic diagram provided by the embodiment of the application is shown in Fig. a, Figure 11 As shown in Fig. a, 400 is the device of the embodiment of the application, which can be the transmitting device or the receiving device provided by the above-mentioned embodiment, or an element or a virtual device integrated with the method provided by the embodiment of the application, etc. The embodiment of the application supports the landing of the device product connected by the Ethernet technology, including computers, servers, etc., or box-type or frame-type Ethernet switches, routers, etc. The embodiment of the application is implemented in the interface processing unit of the device.
[0101] It is pointed out that the embodiment of the application is applicable to the inter-satellite long-distance scenario, and can quickly build a high-reliability data link solution based on the technology to meet the on-board networking requirements, such as through a Network Processor (NP) microcode or an external FPGA (Field Programmable Gate Array) implementation, which can be landed and has low investment costs.
[0102] Those skilled in the art should be aware that in one or more examples described above, the functions described in the embodiments of the application can be implemented in hardware, software, firmware or any combination thereof. When implemented in software, the functions can be stored in a computer readable medium or transmitted as one or more instructions or codes on a computer readable medium. The computer readable medium includes computer storage medium and communication medium, wherein the communication medium includes any medium that facilitates the transmission of computer programs from one place to another. The storage medium can be any available medium accessible by a general or special purpose computer.
[0103] The embodiments of the present application are described above with reference to the accompanying drawings, but the present application is not limited to the above-described specific embodiments, and the above-described specific embodiments are merely illustrative, but not restrictive, and a person of ordinary skill in the art can make many forms under the inspiration of the present application without departing from the purpose of the present application and the scope protected by the claims.
Claims
1. A data transmission method, characterized in that, include: Receive a set of frames, the set of frames including at least two data frames arranged consecutively and a predetermined number of check frames, wherein the at least two data frames have the same or different frame lengths; If the received set of frames includes a first data frame, then according to the position label in the first data frame, the data of the first data frame, which is encoded and includes a start code block, a data code block, and an end code block, is filled into the corresponding position in the matrix, wherein the first data frame is a correct data frame and contains the correct position label; If the received set of frames includes a first verification frame, then according to the position label in the first verification frame, the data corresponding to the first verification frame is filled into the corresponding position in the matrix, wherein the verification frame is a correct verification frame and contains the correct position label.
2. The method according to claim 1, characterized in that, After receiving a set of frames, the process also includes: If the received set of frames includes a second data frame, then according to the position label in the second data frame, the data containing the start code block and data code block generated by encoding in the part before the first error code block in the second data frame is filled into the corresponding position of the matrix, wherein the second data frame is a data frame containing the correct position label and the error code block.
3. The method according to claim 1 or 2, characterized in that, After receiving a set of frames, the method further includes: if the received set of frames includes a third data frame, then discard the third data frame, wherein the third data frame contains an incorrect location label and is an incorrect data frame.
4. The method according to any one of claims 1 to 3, characterized in that, The location label indicates the row and column number of the first symbol of the first codeword generated after encoding in the frame where the location label is located in the matrix.
5. The method according to any one of claims 1 to 4, characterized in that, Also includes: If the number of unfilled data symbols in each row of the matrix is not greater than the number of preset verification frames filled in the corresponding row, then the matrix is decoded to obtain data.
6. A data transmission method, characterized in that, include: A set of frames is obtained by encoding at least two consecutively arranged data frames and a predetermined number of check frames, wherein the at least two data frames have the same or different frame lengths, and the data frames carry position tags, which are used to enable the receiving device to fill the data containing start code blocks, data code blocks and end code blocks generated by encoding the data frames into the corresponding positions of the matrix; the check frames carry the position tags, which are used to enable the receiving device to fill the data corresponding to the check frames into the corresponding positions of the matrix. Send the set of frames.
7. The method according to claim 6, characterized in that, The location label indicates the row and column number of the first symbol of the first codeword generated after encoding in the frame where the location label is located in the matrix.
8. A receiving device, characterized in that, include: A receiving module is configured to receive a set of frames, wherein the set of frames includes at least two data frames arranged consecutively and a predetermined number of check frames, wherein the at least two data frames have the same or different frame lengths. The processing module is configured to, if the set of frames received by the receiving module includes a first data frame, fill the data of the first data frame, which is encoded and includes a start code block, a data code block, and an end code block, into the corresponding positions of the matrix according to the position label in the first data frame, wherein the first data frame is a correct data frame and contains the correct position label; The processing module is further configured to, if the set of frames received by the receiving module includes a first verification frame, fill the data corresponding to the first verification frame into the corresponding position of the matrix according to the position label in the first verification frame, wherein the verification frame is a correct verification frame and contains the correct position label.
9. The device according to claim 8, characterized in that, The processing module is further configured to, if the set of frames received by the receiving module includes a second data frame, fill the data containing a start code block and a data code block generated by encoding in the part before the first error code block in the second data frame into the corresponding position of the matrix according to the position label in the second data frame, wherein the second data frame is a data frame containing the correct position label and the error code block.
10. The device according to claim 8 or 9, characterized in that, The processing module is further configured to discard the third data frame if the set of frames received by the receiving module includes a third data frame, wherein the third data frame contains an incorrect location label and is an incorrect data frame.
11. The device according to any one of claims 8 to 10, characterized in that, The location label indicates the row and column number of the first symbol of the first codeword generated after encoding in the frame where the location label is located in the matrix.
12. The device according to any one of claims 8 to 11, characterized in that, Also includes: The decoding module is used to decode the matrix to obtain data if the number of unfilled data symbols in each row of the matrix is not greater than the number of preset check frames filled in the corresponding row.
13. A transmitting device, characterized in that, include: An encoding module is used to encode at least two consecutively arranged data frames and a predetermined number of check frames to obtain a set of frames, wherein the at least two data frames have the same or different frame lengths, and the data frames carry position tags, which are used to enable the receiving device to fill the data containing start code blocks, data code blocks and end code blocks generated by encoding the data frames into the corresponding positions of the matrix; the check frames carry the position tags, which are used to enable the receiving device to fill the data corresponding to the check frames into the corresponding positions of the matrix. A sending module is used to send the set of frames.
14. The device according to claim 13, characterized in that, The location label indicates the row and column number of the first symbol of the first codeword generated after encoding in the frame where the location label is located in the matrix.
15. A data transmission system, characterized in that, include: The receiving device according to any one of claims 8 to 12; The transmitting device as described in claim 13 or 14.
Citation Information
Patent Citations
Forward error correction encoding,decoding method,apparatus and system
CN102687445A
Column-row interleaving for bit interleaved coded modulation
CN111183590A