Line coding method and apparatus
Patent Information
- Application Number
- JP2023518275
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-09-18
- Publication Date
- 2025-03-11
- Estimated Expiration
- 2040-09-18
AI Technical Summary
【0007】 本出願の実施形態においては、データフレームの最初のセグメント(すなわち、データフレームの始め)、最後のセグメント(すなわち、データフレームの終わり)、および中間のセグメント(すなわち、データフレームの続き)が、インジケータビットによって直接示され、データ/制御が、同期ワードによって示される。ペイロードフォーマットを示すためにブロックタイプフィールドが使用される方法と比較して、データフレームの開始位置および終了位置が、ブロックタイプフィールドから切り離され、インジケータビットによって直接示される。これは、データ処理の複雑性を簡単にして、有線送信の複雑性および遅延を減らすことができる。
Smart Images

Figure 0007644224000001 
Figure 0007644224000002 
Figure 0007644224000003
Abstract
Description
[Technical field]
[0001] The present application relates to the field of communication technologies, and in particular to a line coding method and apparatus. [Background technology]
[0002] In wired transmission, line coding, for example, 64-bit (bit, B) / 66B coding or 64B / 65B coding, is typically used to indicate the type, position, etc. of code block data.
[0003] For code blocks with line coding such as 64B / 66B and 64B / 65B, a sync field is used to indicate whether the following 64B carries control information. If the following 64B carries control information, then the 8B block type field in the 64B indicates another 56B format. For example, when the value of the block type field is 0x1e, the 56B contains eight 7B control sub-blocks, each of which is used to carry one piece of control information. As another example, when the value of the block type field is 0x33, the 56B contains four 7B control sub-blocks and three 8B data sub-blocks. The data sub-blocks are used to carry data information, and the first data sub-block is the start of a data frame. As yet another example, when the value of the block type field is 0x78, the 56B contains seven 8B data sub-blocks, and the first data sub-block is the start of a data frame. As yet another example, when the value of the block type field is 0xff, the 56B contains seven 8B data sub-blocks, with the last data sub-block being the end of the data frame.
[0004] In the current line coding scheme, the indication of the beginning and end of a data frame depends on further analysis of the block type field. Since the block type field has multiple values, the complexity of processing the block type field exceeds the complexity of processing the data. Furthermore, if the block type field is inaccurate, the start position of the data frame may be lost. Summary of the Invention [Means for solving the problem]
[0005] The present application provides a line coding method and apparatus to solve the problems of high processing complexity, long delay and low accuracy of data frames in the current line coding scheme.
[0006] According to a first aspect, an embodiment of the present application provides a line coding method. The method includes the steps of generating and transmitting a target code block, the target code block including an indicator bit and a payload, the indicator bit including a first value, a second value, a third value, and a fourth value, the first value being used to indicate that the payload includes a first segment of a data frame, the second value being used to indicate that the payload includes a middle segment of a data frame, the third value being used to indicate that the payload includes a last segment of a data frame, and the fourth value being used to indicate that the payload includes non-data information. A data frame generally refers to a packet of a specific frame format, for example, an Ethernet media access control (MAC) frame or an internet protocol (IP) frame. The specific type of the data frame is not limited in the embodiment of the present application.
[0007] In an embodiment of the present application, the first segment (i.e., the beginning of the data frame), the last segment (i.e., the end of the data frame), and the middle segment (i.e., the continuation of the data frame) of the data frame are directly indicated by indicator bits, and the data / control is indicated by the sync word. Compared to the method in which the block type field is used to indicate the payload format, the start and end positions of the data frame are separated from the block type field and directly indicated by the indicator bits. This can simplify the complexity of the data processing and reduce the complexity and delay of wired transmission.
[0008] In a possible design, when a target code block is generated, a data frame may be divided into N segments, where N is an integer greater than or equal to 2, and the N segments are encoded to obtain N code blocks, where the N code blocks include a target code block, and the indicator bit of the target code block is a first value if the payload of the target code block includes a first segment of the N segments, the indicator bit of the target code block is a second value if the payload of the target code block includes an nth segment of the N segments, n is an integer greater than or equal to 2 and less than N, or the indicator bit of the target code block is a third value if the payload of the target code block includes an Nth segment of the N segments. In the above design, the value of the indicator bit of the code block of each segment is carried as each segment of the data frame is transmitted. In this manner, a receiving node can determine the position of the segment carried in the code block within the data frame, and received segments may be spliced together to obtain a complete data frame.
[0009] In a possible design, the N segments may have equal lengths.
[0010] In a possible design, the non-data information includes at least one of the following: padding bits, sub-indicator bits, and control information. In the above design, the payload may carry multiple types of control information, Padding, etc., and thus the code block can support complex control information.
[0011] In a possible design, the indicator bit is a fourth value if the bits carried in the payload are padding bits.
[0012] In a possible design, the indicator bit is a fourth value and the payload carries a sub-indicator bit. The sub-indicator bit is used to indicate that the payload carries physical layer padding bits, or the sub-indicator bit is used to indicate that the payload carries control information, or the sub-indicator bit is used to indicate that the payload carries a data frame. In the above design, the payload may carry multiple types of control information, a small complete data frame, padding, etc., and the contents carried in the payload may be further indicated by the sub-indicator bit, so that the code block can support complex control information and the flexibility of the indication may be increased. Furthermore, the payload supports carrying a small complete data frame, which reduces the transmission overhead of the small complete data frame and enables the insertion of a small complete data frame between segments of a data frame, which reduces the transmission delay of the small complete data frame.
[0013] In a possible design, the sub-indicator bits may further indicate the type of control information carried in the payload. In the above design, the contents carried in the payload may be further indicated by the sub-indicator bits, which may result in increased flexibility of the indication.
[0014] In a possible design, the types of control information include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0015] In a possible design, if the payload carries control information, the payload further includes a cyclic redundancy check (CRC) field used for check protection. In the above design, the reliability of the control information can be guaranteed by using the CRC field, and therefore error control can be avoided.
[0016] According to a second aspect, an embodiment of the present application provides a line coding method, the method includes the steps of generating and transmitting a target code block, the target code block includes an indicator bit and a payload, the indicator bit includes a first value and a second value, the first value is used to indicate that the payload includes one segment of a first data frame, the second value is used to indicate that the payload includes non-data information, and if the indicator bit is the second value, the payload includes a sub-indicator bit, the sub-indicator bit is used to indicate at least one of the following information: a code block next to the target code block carries a first segment of a first data frame, a code block previous to the target code block carries a last segment of a first data frame, bits carried in the payload of the target code block are physical layer padding bits, the payload of the target code block carries control information, the payload of the target code block carries a first data frame, and the first data frame and at least one second data frame are spliced in the payload of the target code block. A data frame generally refers to a packet of a particular frame format, for example, an Ethernet MAC frame or an IP frame. The particular type of data frame is not limited in the embodiments of this application.
[0017] In an embodiment of the present application, the sub-indicator bits are used to indicate the beginning or end of a data frame, so that the overhead of indicator bits can be reduced. In addition, a code block indicating the beginning of a data frame and a code block indicating the end of a data frame are inserted before the first segment and after the last segment of a data frame, respectively. Compared with the way in which the block type field indicates the payload format, the sub-indicator bits directly indicate the beginning or end of a data frame. This can simplify the complexity of data processing and reduce the delay of wired transmission.
[0018] In a possible design, if the code block next to the target code block carries the first segment of the first data frame, the bits carried in the payload are physical layer padding bits, and the sub-indicator bits indicate that the code block next to the target code block carries the first segment of the first data frame. In the above design, one code block may be inserted before the code block carrying the first segment, and the code block may indicate the start of the data frame by using the value of the sub-indicator bits. This can simplify the data processing complexity and reduce the complexity and delay of wired transmission.
[0019] In a possible design, if the code block before the target code block carries the last segment of the first data frame, the bits carried in the payload are physical layer padding bits, and the sub-indicator bit indicates that the code block before the target code block carries the last segment of the first data frame. In the above design, one code block may be inserted before the code block carrying the last segment, and the code block may indicate the end of the data frame by using the value of the sub-indicator bit. This can simplify the data processing complexity and reduce the complexity and delay of wired transmission.
[0020] In a possible design, if the bits carried in the payload of the target code block are physical layer padding bits, the sub-indicator bits indicate that the bits carried in the payload of the target code block are physical layer padding bits.
[0021] In a possible design, if the payload of the target code block carries control information, the sub-indicator bit indicates that the payload carries control information. In the above design, the payload may carry multiple types of control information, and thus the code block can support complex control information and the flexibility of the indication may be increased.
[0022] In a possible design, the sub-control bits further indicate the type of control information. In the above design, the contents carried in the payload may be further indicated by the sub-indicator bits, which may result in increased flexibility of the indication.
[0023] In a possible design, if the payload of the target code block carries a first data frame, the sub-indicator bit indicates that the payload of the target code block carries the first data frame. According to the above design, the payload supports carrying a small complete data frame, thereby reducing the transmission overhead of the small complete data frame, enabling insertion of the small complete data frame between segments of a data frame, and reducing the transmission delay of the small complete data frame.
[0024] In a possible design, if the payload of the target code block carries all or a portion of the data of a first data frame and all or a portion of the data of at least one second data frame, the sub-indicator bit indicates that the first data frame and the at least one second data frame are spliced. According to the above design, the payload supports splicing of two or more data frames, which may increase the flexibility of data transmission.
[0025] In a possible design, the types of control information include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0026] In a possible design, when the target code block is generated, the first data frame may be divided into N segments, where N is an integer greater than or equal to 2, and the N data blocks are encoded to obtain N+2 code blocks, where the N+2 code blocks include the target code block, and if the target code block is the first code block of the N+2 code blocks, the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that the code block following the target code block carries the first segment of the first data frame; if the target code block is the nth code block of the N+2 code blocks, the indicator bit of the target code block is a first value, where n is an integer greater than or equal to 2 and less than N+2, or if the target code block is the (N+2)th code block of the N+2 code blocks, the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that the code block preceding the target code block carries the last segment of the first data frame.
[0027] In the above design, when each segment of a data frame is transmitted, the indicator bit values of the code block of each segment and the sub-indicator bit values of the previous and next code blocks are carried. In this way, a receiving node can determine the position of the carried segment within the code block within the data frame so that the received segments can be spliced together to obtain a complete data frame.
[0028] In a possible design, the N segments may have equal lengths.
[0029] In a possible design, if the sub-indicator bit indicates that the payload of the target code block carries control information, the payload includes a CRC field used for check protection. In the above design, the payload includes a CRC field, so that the reliability of the control information is guaranteed, thereby avoiding error control.
[0030] In a possible design, if the sub-indicator bits indicate that the code block following the target code block carries the first segment of the first data frame or if the sub-indicator bits indicate that the code block preceding the target code block carries the last segment of the first data frame, the payload includes a CRC field used for check protection. In the above design, the payload includes a CRC field such that the reliability of the code blocks indicating the beginning and end of the data frame can be guaranteed, thereby avoiding the indication of an error.
[0031] In a possible design, the sub-indicator bits indicating that the first data frame and the at least one second data frame are spliced includes the sub-indicator bits further indicating a boundary location of the first data frame and the at least one second data frame within the payload. According to the above design, accuracy of data transmission may be improved.
[0032] In a possible design, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include a first segment of one second data frame and the first data frame, the first segment being after the first data frame. According to the above design, splicing of one complete data frame with the first segment of another data frame may be supported.
[0033] In a possible design, all or a portion of the data of the first frame of data and all or a portion of the data of the at least one second frame of data include a first segment of one second frame of data and a last segment of the first frame of data, the first segment being after the last segment. According to the above design, splicing of the last segment of one frame of data with the first segment of another frame of data may be supported.
[0034] In a possible design, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include a last segment of the first data frame and at least one second data frame, the at least one second data frame being after the last segment. According to the above design, splicing of the last segment of one data frame with another complete data frame may be supported.
[0035] In a possible design, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include the first data frame and the at least one second data frame, where the at least one second data frame follows the first data frame. According to the above design, splicing of one complete data frame with another complete data frame may be supported.
[0036] In a possible design, there is an interframe space between two adjacent data frames in the first data frame and at least one second data frame. According to the above design, there may be a buffer between the two spliced data frames to improve the accuracy of data transmission.
[0037] According to a third aspect, an embodiment of the present application provides a line coding method. The method includes the steps of receiving and parsing a target code block, the target code block including an indicator bit and a payload, the indicator bit including a first value, a second value, a third value, and a fourth value, the first value being used to indicate that the payload includes a first segment of a data frame, the second value being used to indicate that the payload includes a middle segment of a data frame, the third value being used to indicate that the payload includes a last segment of a data frame, and the fourth value being used to indicate that the payload includes non-data information. The data frame generally refers to a packet of a specific frame format, for example, an Ethernet MAC frame or an IP frame. The specific type of the data frame is not limited in the embodiment of the present application.
[0038] In an embodiment of the present application, the first segment (i.e., the beginning of the data frame), the last segment (i.e., the end of the data frame), and the middle segment (i.e., the continuation of the data frame) of the data frame are directly indicated by indicator bits, and the data / control is indicated by the sync word. Compared to the method in which the block type field is used to indicate the payload format, the start and end positions of the data frame are separated from the block type field and directly indicated by the indicator bits. This can simplify the complexity of the data processing and reduce the complexity and delay of wired transmission.
[0039] In a possible design, when the target code block is analyzed, if the indicator bit of the target code block is a first value, the segment carried in the payload of the target code block may be determined to be the first segment of the data frame, if the indicator bit of the target code block is a second value, the segment carried in the payload of the target code block may be determined to be the middle segment of the data frame, or if the indicator bit of the target code block is a third value, the segment carried in the payload of the target code block may be determined to be the last segment of the data frame. In the above design, the value of the indicator bit of the code block of each segment is carried as each segment of the data frame is transmitted. In this manner, the receiving node can determine the position of the segment carried in the code block within the data frame, so that the received segments can be spliced together to obtain a complete data frame.
[0040] In a possible design, the N segments may have equal lengths.
[0041] In a possible design, the non-data information includes at least one of the following: padding bits, sub-indicator bits, and control information. In the above design, the payload may carry multiple types of control information, Padding, etc., and thus the code block can support complex control information.
[0042] In a possible design, the indicator bit is a fourth value if the bits carried in the payload are padding bits.
[0043] In a possible design, the indicator bit is a fourth value and the payload carries a sub-indicator bit. The sub-indicator bit is used to indicate that the payload carries physical layer padding bits, or the sub-indicator bit is used to indicate that the payload carries control information, or the sub-indicator bit is used to indicate that the payload carries a data frame. In the above design, the payload may carry multiple types of control information, a small complete data frame, padding, etc., and the contents carried in the payload may be further indicated by the sub-indicator bit, so that the code block can support complex control information and the flexibility of the indication may be increased. Furthermore, the payload supports carrying a small complete data frame, which reduces the transmission overhead of the small complete data frame and enables the insertion of a small complete data frame between segments of a data frame, which reduces the transmission delay of the small complete data frame.
[0044] In a possible design, the sub-indicator bits may further indicate the type of control information carried in the payload. In the above design, the contents carried in the payload may be further indicated by the sub-indicator bits, which may result in increased flexibility of the indication.
[0045] In a possible design, the types of control information include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0046] In a possible design, if the payload carries control information, the payload further includes a cyclic redundancy check (CRC) field used for check protection. In the above design, the reliability of the control information can be guaranteed by using the CRC field, and therefore error control can be avoided.
[0047] According to a fourth aspect, an embodiment of the present application provides a line coding method, the method includes the steps of receiving and parsing a target code block, the target code block includes an indicator bit and a payload, the indicator bit includes a first value and a second value, the first value is used to indicate that the payload includes one segment of a first data frame, the second value is used to indicate that the payload includes non-data information, and if the indicator bit is the second value, the payload includes a sub-indicator bit, the sub-indicator bit is used to indicate at least one of the following information: a code block next to the target code block carries a first segment of a first data frame, a code block previous to the target code block carries a last segment of a first data frame, bits carried in the payload of the target code block are physical layer padding bits, the payload of the target code block carries control information, the payload of the target code block carries a first data frame, and the first data frame and at least one second data frame are spliced in the payload of the target code block. A data frame generally refers to a packet of a particular frame format, for example, an Ethernet MAC frame or an IP frame. The particular type of data frame is not limited in the embodiments of this application.
[0048] In an embodiment of the present application, the sub-indicator bits are used to indicate the beginning or end of a data frame, so that the overhead of indicator bits can be reduced. In addition, a code block indicating the beginning of a data frame and a code block indicating the end of a data frame are inserted before the first segment and after the last segment of a data frame, respectively. Compared with the way in which the block type field indicates the payload format, the sub-indicator bits directly indicate the beginning or end of a data frame. This can simplify the complexity of data processing and reduce the delay of wired transmission.
[0049] In a possible design, if the code block next to the target code block carries the first segment of the first data frame, the bits carried in the payload are physical layer padding bits, and the sub-indicator bits indicate that the code block next to the target code block carries the first segment of the first data frame. In the above design, one code block may be inserted before the code block carrying the first segment, and the code block may indicate the start of the data frame by using the value of the sub-indicator bits. This can simplify the data processing complexity and reduce the complexity and delay of wired transmission.
[0050] In a possible design, if the code block before the target code block carries the last segment of the first data frame, the bits carried in the payload are physical layer padding bits, and the sub-indicator bit indicates that the code block before the target code block carries the last segment of the first data frame. In the above design, one code block may be inserted before the code block carrying the last segment, and the code block may indicate the end of the data frame by using the value of the sub-indicator bit. This can simplify the data processing complexity and reduce the complexity and delay of wired transmission.
[0051] In a possible design, if the bits carried in the payload of the target code block are physical layer padding bits, the sub-indicator bits indicate that the bits carried in the payload of the target code block are physical layer padding bits.
[0052] In a possible design, if the payload of the target code block carries control information, the sub-indicator bit indicates that the payload carries control information. In the above design, the payload may carry multiple types of control information, and thus the code block can support complex control information and the flexibility of the indication may be increased.
[0053] In a possible design, the sub-control bits further indicate the type of control information. In the above design, the contents carried in the payload may be further indicated by the sub-indicator bits, which may result in increased flexibility of the indication.
[0054] In a possible design, if the payload of the target code block carries a first data frame, the sub-indicator bit indicates that the payload of the target code block carries the first data frame. According to the above design, the payload supports carrying a small complete data frame, thereby reducing the transmission overhead of the small complete data frame, enabling insertion of the small complete data frame between segments of a data frame, and reducing the transmission delay of the small complete data frame.
[0055] In a possible design, if the payload of the target code block carries all or a portion of the data of a first data frame and all or a portion of the data of at least one second data frame, the sub-indicator bit indicates that the first data frame and the at least one second data frame are spliced. According to the above design, the payload supports splicing of two or more data frames, which may increase the flexibility of data transmission.
[0056] In a possible design, the types of control information include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0057] In a possible design, when the target code block is analyzed, if the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that the code block following the target code block carries the first segment of the first data frame, the segment carried in the payload of the target code block may be determined to be an intermediate segment of the first data frame if the indicator bit of the target code block is a first value, or the segment carried in the payload of the target code block may be determined to be a middle segment of the first data frame if the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that the code block preceding the target code block carries the last segment of the first data frame, and the segment carried in the code block preceding the target code block may be determined to be the last segment of the first data frame.
[0058] In the above design, when each segment of a data frame is transmitted, the indicator bit values of the code block of each segment and the sub-indicator bit values of the previous and next code blocks are carried. In this way, a receiving node can determine the position of the carried segment within the code block within the data frame so that the received segments can be spliced together to obtain a complete data frame.
[0059] In a possible design, the N segments may have equal lengths.
[0060] In a possible design, if the sub-indicator bit indicates that the payload of the target code block carries control information, the payload includes a CRC field used for check protection. In the above design, the payload includes a CRC field, so that the reliability of the control information is guaranteed, thereby avoiding error control.
[0061] In a possible design, if the sub-indicator bits indicate that the code block following the target code block carries the first segment of the first data frame or if the sub-indicator bits indicate that the code block preceding the target code block carries the last segment of the first data frame, the payload includes a CRC field used for check protection. In the above design, the payload includes a CRC field such that the reliability of the code blocks indicating the beginning and end of the data frame can be guaranteed, thereby avoiding the indication of an error.
[0062] In a possible design, the sub-indicator bits indicating that the first data frame and the at least one second data frame are spliced includes the sub-indicator bits further indicating a boundary location of the first data frame and the at least one second data frame within the payload. According to the above design, accuracy of data transmission may be improved.
[0063] In a possible design, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include a first segment of one second data frame and the first data frame, the first segment being after the first data frame. According to the above design, splicing of one complete data frame with the first segment of another data frame may be supported.
[0064] In a possible design, all or a portion of the data of the first frame of data and all or a portion of the data of the at least one second frame of data include a first segment of one second frame of data and a last segment of the first frame of data, the first segment being after the last segment. According to the above design, splicing of the last segment of one frame of data with the first segment of another frame of data may be supported.
[0065] In a possible design, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include a last segment of the first data frame and at least one second data frame, the at least one second data frame being after the last segment. According to the above design, splicing of the last segment of one data frame with another complete data frame may be supported.
[0066] In a possible design, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include the first data frame and the at least one second data frame, where the at least one second data frame follows the first data frame. According to the above design, splicing of one complete data frame with another complete data frame may be supported.
[0067] In a possible design, there is an interframe space between two adjacent data frames in the first data frame and at least one second data frame. According to the above design, there may be a buffer between the two spliced data frames to improve the accuracy of data transmission.
[0068] According to a fifth aspect, the present application provides a line coding apparatus. The apparatus may be a communication device, or may be a chip or chipset in the communication device. The communication device may be a transmitting node, or may be a receiving node. The apparatus may include a processing unit and a transceiver unit. When the apparatus is a communication device, the processing unit may be a processor, and the transceiver unit may be a transceiver. The apparatus may further include a storage module, and the storage module may be a memory. The storage module is configured to store instructions. The processing unit executes the instructions stored in the storage module to perform the corresponding function according to the first aspect or the corresponding function according to the second aspect, or the corresponding function according to the third aspect or the corresponding function according to the fourth aspect. When the apparatus is a chip or chipset in the communication device, the processing unit may be a processor, and the transceiver unit may be an input / output interface, a pin, a circuit, etc. The processing unit executes the instructions stored in the storage module to perform the corresponding function according to the first aspect or the corresponding function according to the second aspect, or to perform the corresponding function according to the third aspect or the corresponding function according to the fourth aspect. The storage module may be a storage module (e.g., a register or cache) within a chip or chipset, or may be a storage module (e.g., a read-only memory or a random access memory) within the communication device and located outside the chip or chipset.
[0069] According to a sixth aspect, the present application provides a line coding apparatus. The apparatus includes a processor and may further include a communication interface and a memory. The communication interface is used to transmit information, messages, and / or data between the apparatus and another apparatus. The memory is configured to store computer executable instructions. When the apparatus is executed, the processor executes the computer executable instructions stored in the memory such that the apparatus performs a method according to the first aspect or any one of the designs of the first aspect, the second aspect or any one of the designs of the second aspect, the third aspect or any one of the designs of the third aspect, or the fourth aspect or any one of the designs of the fourth aspect.
[0070] According to a seventh aspect, the present application further provides a computer readable storage medium. The computer readable storage medium stores instructions. When the instructions are executed on a computer, the computer is enabled to perform a method according to the first aspect or any one of the designs of the first aspect, the second aspect or any one of the designs of the second aspect, the third aspect or any one of the designs of the third aspect, or the fourth aspect or any one of the designs of the fourth aspect.
[0071] According to an eighth aspect, the present application further provides a computer program product comprising instructions, which when executed on a computer, enables the computer to perform a method according to the first aspect or any one of the designs of the first aspect, the second aspect or any one of the designs of the second aspect, the third aspect or any one of the designs of the third aspect, or the fourth aspect or any one of the designs of the fourth aspect.
[0072] According to a ninth aspect, the present application further provides a communication system, the system including a transmitting node and a receiving node, the transmitting node may perform corresponding functions according to the first aspect, and the receiving node may perform corresponding functions according to the third aspect.
[0073] According to a tenth aspect, the present application further provides a communication system, the system including a transmitting node and a receiving node, the transmitting node may perform corresponding functions according to the second aspect, and the receiving node may perform corresponding functions according to the fourth aspect.
[0074] According to an eleventh aspect, an embodiment of the present application provides a chip. The chip includes at least one processor and a communication interface. The processor is coupled to a memory and configured to read a computer program stored in the memory to execute a method according to the first aspect or any one of the designs of the first aspect, the second aspect or any one of the designs of the second aspect, the third aspect or any one of the designs of the third aspect, or any one of the designs of the fourth aspect or any one of the designs of the fourth aspect of the embodiments of the present application.
[0075] According to a twelfth aspect, an embodiment of the present application provides a chip. The chip includes a communication interface and at least one processor. The processor is executed to perform a method according to the first aspect or any one of the designs of the first aspect, the second aspect or any one of the designs of the second aspect, the third aspect or any one of the designs of the third aspect, or the fourth aspect or any one of the designs of the fourth aspect of the embodiments of the present application.
[0076] It should be noted that "coupling" in the embodiments of the present application refers to a direct combination or an indirect combination of two elements. [Brief description of the drawings]
[0077] [Figure 1] FIG. 2 is a schematic diagram of 64B / 66B line coding according to an embodiment of the present application; [Diagram 2] FIG. 2 is a schematic diagram of 64B / 65B line coding according to an embodiment of the present application; [Diagram 3] 1 is a schematic flow diagram of a line coding method according to an embodiment of the present application; [Figure 4] FIG. 2 is a schematic diagram of indicator bits of a code block according to an embodiment of the present application; [Diagram 5] FIG. 2 is a schematic diagram of a data frame transmission according to an embodiment of the present application; [Figure 6] FIG. 2 is a schematic diagram of transmitting a control code block according to an embodiment of the present application; [Figure 7] FIG. 2 is a schematic diagram of a CRC block according to an embodiment of the present application; [Figure 8] FIG. 2 is a schematic diagram of an intermittent testing process according to an embodiment of the present application. [Figure 9] FIG. 2 is a schematic diagram of a sleep process according to an embodiment of the present application. [Figure 10] FIG. 2 is a schematic diagram of a link retraining process according to an embodiment of the present application. [Figure 11] FIG. 2 is a schematic diagram of sub-indicator bits of a code block according to an embodiment of the present application; [Figure 12] FIG. 2 is a schematic diagram of a CRC field according to an embodiment of the present application; [Figure 13] 4 is a schematic flow diagram of another line coding method according to an embodiment of the present application; [Figure 14] FIG. 2 is a schematic diagram of a code block according to an embodiment of the present application; [Figure 15] FIG. 2 is a schematic diagram of a data frame transmission according to an embodiment of the present application; [Figure 16] FIG. 2 is a schematic diagram of transmission of code blocks carrying control information according to an embodiment of the present application; [Figure 17] FIG. 2 is a schematic diagram of a CRC field according to an embodiment of the present application; [Figure 18] FIG. 2 is a schematic diagram of another CRC field according to an embodiment of the present application; [Figure 19] FIG. 1 is a schematic diagram of the structure of a communication device according to an embodiment of the present application; [Figure 20] FIG. 2 is a schematic diagram of the structure of another communication device according to an embodiment of the present application; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0078] The terms "include," "have," and any other variations in this specification, claims, and accompanying drawings of embodiments of this application are meant to include a non-exclusive inclusion; for example, a process, method, system, product, or device that includes a list of steps or units is not necessarily limited to those steps or units and may include other steps or units that are not expressly listed or inherent to such process, method, system, product, or device.
[0079] Embodiments of the present application are applicable to wired high-speed point-to-point transmission, for example image and control transmission from a camera to a multi-domain controller (MDC) of an autonomous driving platform, and image transmission from an on-board device such as an on-board camera or a cockpit domain controller (cockpit domain controller or control domain cockpit, CDC) to a large screen.
[0080] For example, the communication device of the embodiment of the present application may be a device capable of transmitting information (such as data frames and control information) to another device, for example, an on-board image sensor such as a camera or laser radar, may be an image processing device such as an MDC or CDC, or may be an image display device such as a large screen. As another example, the communication device of the embodiment of the present application may alternatively be another transmitting device other than an on-board device.
[0081] In the embodiments of the present application, "at least one" means one or more, and "multiple" means two or more. The term and / or indicates an association relationship to describe related objects, and represents that three relationships may exist. For example, A and / or B may represent the following cases: only A is present, both A and B are present, and only B is present, where A and B may be singular or plural. The character " / " generally indicates an "or" relationship between related objects. At least one of the following (pieces), or similar expressions thereof, refers to any combination of these, including any combination of singular or multiple pieces. For example, at least one of a, b, or c may represent a, b, c, a and b, a and c, b and c, or a, b, and c, where a, b, and c may be singular or plural.
[0082] Furthermore, unless otherwise specified, in the embodiments of the present application, ordinals such as "first" and "second" are intended to distinguish between multiple objects, and are not intended to limit the size, content, order, chronological order, priority, importance, etc., of the multiple objects. For example, the first data packet and the second data packet are merely names given for ease of explanation, and the two data packets may be the same data packet or may be different data packets.
[0083] The technical features of the embodiments of the present application are described below.
[0084] In wired transmission, a line coding scheme such as 8B / 10B is usually used to encode data and control information. 8B / 10B can ensure that the amount of 0s is equal to the amount of 1s in the bit stream to maintain direct current balance and improve the transmission quality of the signal on the cable. However, it has a large overhead, reaching 20%.
[0085] As the wired transmission rate increases, it becomes more difficult to increase the operating frequency of the wired channel. Low-overhead line coding, such as 64B / 66B+scrambling code and 64B / 65B+scrambling code, gradually replaces 8B / 10B and becomes the mainstream of line coding schemes. The scrambling code is used for DC balance, and 64B / 66B and 64B / 65B are mainly used to distinguish data from control. Compared with 8B / 10B, 64B / 66B and 64B / 65B may reduce the overhead to 1.5%-3%.
[0086] A 64B / 66B line code block is similar to a 64B / 65B line code block. The difference is that each 64B / 66B line code block contains a 2-bit sync word and a 64-bit payload. When the sync word is 01, the 64-bit payload is data information, e.g., media access control (MAC) data. When the sync word is 10, the 64-bit payload contains control information. The two other states of the sync word, 00 and 11, are not used. When the sync word of a code block is 10, i.e., when the 64-bit payload of the code block contains control information, the first 8 bits of the 64-bit payload of the code block is a block type field. A 64B / 66B line code block may be shown in FIG. 1.
[0087] Each 64B / 65B line code block includes a 1-bit sync word and a 64-bit payload. When the sync word is 0, the 64-bit payload is data information, e.g., MAC data. When the sync word is 1, the 64-bit payload includes control information. When the sync word of a code block is 1, i.e., when the 64-bit payload of the code block includes control information, the first 8 bits of the 64-bit payload of the code block is a block type field. 64B / 65B line coding may be shown in FIG. 2.
[0088] In the 64B / 66B line code block shown in FIG. 1 and the 64B / 65B line code block shown in FIG. 2, C indicates control information, D indicates data information, O indicates sequence, S indicates the beginning of a data frame, and T indicates the end of a data frame.
[0089] The mapping relationship between the block type field and the payload format in the 64B / 66B line code block is the same as the mapping relationship between the block type field and the payload format in the 64B / 65B line code block.
[0090] In the following, the block type field is explained using a 64B / 66B line code block as an example.
[0091] When the block type field is 0x1e, the following 56 bits are eight 7-bit sub-blocks, with each 7-bit sub-block carrying a piece of control information, eg, Padding.
[0092] When the block type field is 0x2d, it indicates that the position O4D5D6D7 indicates that the sending node has a receiving exception.
[0093] A block type field of 0x33 indicates that D5D6D7 is data, with D5 being the first segment of a data frame, and 0x78 indicates that D1 through D7 are data, with D1 being the start of a data frame.
[0094] When the block type field is 0x87, 0x99, or 0xff, this field indicates the last segment of a data frame and indicates where the last segment of the data frame ends based on the type.
[0095] It should be understood that the value of the block type field may alternatively be another value not shown in Figure 1. The details will not be described one by one here.
[0096] The receiving node uses the value of the block type field to determine the code block whose payload carries S (used to indicate the first segment of a data frame), the code block whose payload is data information, and the code block whose payload carries T (used to indicate the last segment of a data frame), and sequentially extracts the data information carried in the spliced code blocks to obtain a complete data frame. For example, if a transmitting node sequentially transmits code blocks 1 to 7 to a receiving node, the synchronization word of code block 1 is 10 and the value of the block type field is 0x78, the synchronization word of code blocks 2 to 6 is 01, the synchronization word of code block 7 is 10, and the value of the block type field is 0xe1. Based on the values of the synchronization word and the block type field, the receiving node determines that D1 carried in the payload of code block 1 is the first segment of a data frame, the payloads of code blocks 2 to 6 each carry one segment of a data frame, and D5 carried in the payload of code block 7 is the last segment of the data frame. The receiving node may obtain a data frame by sequentially splicing together D1 through D7 carried in the payload of code block 1, D0 through D7 carried in the payload of code block 2, D0 through D7 carried in the payload of code block 3, D0 through D7 carried in the payload of code block 4, ..., D0 through D7 carried in the payload of code block 6, and D0 through D5 carried in the payload of code block 7.
[0097] In 64B / 66B line coding and 64B / 65B line coding, the indication of the beginning and end of a data frame depends on further analysis of the block type field. Because the sync word indicates that the 64-bit payload of the code block contains control information, the payload format of the code block has multiple states and the processing complexity is high. As a result, the delay of wired transmission is long. If the block type field is incorrect, the starting position of the data frame may be lost.
[0098] Based on this, the embodiment of the present application provides a line coding method and apparatus to solve the problems of high processing complexity, long delay and low accuracy of data frames in the above-mentioned line coding scheme. The method and the apparatus are based on the same inventive concept. Since the method and the device have similar problem-solving principles, the implementation of the apparatus and the method shall refer to each other and no duplicated description will be made. The embodiment of the present application provides a line coding method and apparatus, which may be applied to an in-vehicle network, especially the in-vehicle network of an autonomous vehicle, or may be applied to another wired transmission device.
[0099] Hereinafter, embodiments of the present application will be described in detail with reference to the accompanying drawings.
[0100] The present application provides a line coding method, which can be applied to a wired transmission system. As shown in Figure 3, the method includes the following steps:
[0101] S301: A transmitting node generates a target code block, where the target code block includes indicator bits and a payload, and the indicator bits include a first value, a second value, a third value, and a fourth value.
[0102] The first value is used to indicate that the payload contains the first segment of a data frame, i.e., when the indicator bit is the first value, it may indicate that the data carried in the code block is the beginning of a data frame.
[0103] In the embodiment of the present application, a data frame generally refers to a packet of a specific frame format, for example, an Ethernet MAC frame or an IP frame. The specific type of the data frame is not limited in the embodiment of the present application.
[0104] The second value is used to indicate that the payload contains a middle segment of a data frame, i.e., when the indicator bit is the second value, it may indicate that the data carried in the code block is a middle portion of a data frame.
[0105] The third value indicates that the payload contains the last segment of a data frame, i.e., when the indicator bit is the third value, it may indicate that the data carried in the code block is the end of a data frame.
[0106] The fourth value is used to indicate that the payload contains non-data information, i.e., when the indicator bit is the fourth value, it may indicate that the code block carries non-data information, e.g., physical layer padding bits, sub-indicator bits, and control information.
[0107] In a possible implementation, the indicator bits may include two bits, and four values of the two bits indicate that the payload includes the first segment of a data frame, that the payload includes a middle segment of a data frame, that the payload includes the last segment of a data frame, and that the payload includes non-data information, respectively. For example, as shown in FIG. 4, when the indicator bits are 00, it indicates that the payload includes a middle segment of a data frame. When the indicator bits are 01, it indicates that the payload includes the first segment of a data frame. When the indicator bits are 10, it indicates that the last segment of a data frame. When the indicator bits are 11, it indicates that the payload includes non-data information.
[0108] It should be understood that the two indicator bits are used only as an example for the purposes of explanation in this specification. In a specific implementation, the amount of bits included in the indicator bits may alternatively be another amount, for example, three bits or four bits. This is not particularly limited in this specification. When the amount of bits included in the indicator bits is three or more, another value of the indicator bits may be used to indicate other contents or may be reserved. This is not particularly limited in this specification.
[0109] In an embodiment of the present application, the amount of bits included in the payload may be Y, where Y is an integer equal to or greater than 1. For example, Y may be 64.
[0110] In an embodiment of the present application, the first segment (i.e., the beginning of the data frame), the last segment (i.e., the end of the data frame), and the middle segment (i.e., the continuation of the data frame) of the data frame are directly indicated by indicator bits, and the data / control is indicated by the sync word. Compared to the method in which the block type field is used to indicate the payload format, the start and end positions of the data frame are separated from the block type field and directly indicated by the indicator bits. This can simplify the complexity of the data processing and reduce the complexity and delay of wired transmission.
[0111] For ease of explanation, in the following, code blocks whose payload contains data information are referred to as data code blocks, i.e., code blocks whose indicator bit value is the first value, the second value or the third value are referred to as data code blocks, and code blocks whose payload contains non-data information are referred to as control code blocks, i.e., code blocks whose indicator bit value is the fourth value are referred to as control code blocks.
[0112] In the following, the target code block is described by using an example where the target code block is a data code block, i.e., the payload of the target code block contains data information, in other words, the indicator bit value of the target code block is a first value, a second value, or a third value.
[0113] In an implementation, when generating a target code block, a transmitting node may divide a data frame into N segments, where N is an integer greater than or equal to 2, and encode the N segments to obtain N data code blocks. One data code block may carry one segment of a data frame. The N data code blocks include a target code block, and if the payload of the target code block includes a first segment of the N segments, the indicator bit of the target code block is a first value, if the payload of the target code block includes an nth segment of the N segments, the indicator bit of the target code block is a second value, where n is an integer greater than or equal to 2 and less than N, or if the payload of the target code block includes an Nth segment of the N segments, the indicator bit of the target code block is a third value.
[0114] For example, when a data frame is segmented, the data frame may be divided into equal length segments, i.e., the data frame is divided into N equal length segments. For example, the data frame may be divided into N Y-bit segments, where Y bits is the length of the payload.
[0115] To facilitate understanding of the solution, with reference to the code block structure shown in FIG. 4, the encoding process of a data frame is described below using an example in which the indicator bits include 2 bits and the payload includes 64 bits.
[0116] A1: The sending node divides the first data frame into N 64-bit segments.
[0117] A2: The transmitting node encodes N segments to obtain N data code blocks, as shown in FIG. 5, the indicator bit value of the first data code block is 01, and the payload carries the first segment of the first data frame, the indicator bit value of the second data code block to the (N-1)th data code block is 00, and the payloads of the second data code block to the (N-1)th data code block carry the second segment to the (N-1)th segment of the first data frame, respectively, and the indicator bit value of the Nth data code block is 10, and the payload carries the Nth segment of the first data frame.
[0118] It should be noted that the N data code blocks may be transmitted consecutively or non-consecutively. Specifically, for transmission, a control code block may be interleaved between any two of the N code blocks. For example, as shown in FIG. 6, a control code block may be transmitted between the second and third data code blocks. The payload (64B) of the control code block may carry physical layer padding bits, or may carry control information, or may carry a second data frame. The second data frame is a complete (non-segmented) data frame. Optionally, the second data frame and the first data frame may be from different interfaces. For example, the first data frame is from a MAC layer interface and the second data frame is from an IP layer interface.
[0119] It should be understood that FIG. 6 is merely an example for the purpose of explanation, and does not particularly limit the amount of control code blocks and the transmission positions of the control code blocks interleaved with the data code blocks.
[0120] In the following, the target code block is described by using an example in which the target code block is a control code block, i.e., the payload of the target code block contains non-data information, in other words, the indicator bit value of the target code block is the fourth value.
[0121] In an exemplary illustration, if the bits carried within the payload of the target code block are physical layer padding bits, the indicator bits may be a fourth value.
[0122] In another exemplary description, when the indicator bit is a fourth value or when the payload carries non-data information such as physical layer padding bits, control information, or a data frame, the payload of the target code block includes sub-indicator bits. For example, the first X bits of the payload of the target code block are sub-indicator bits. For example, the first 8 bits of the payload are sub-indicator bits.
[0123] The sub-indicator bits may separately indicate that the payload carries physical layer padding bits, that the payload carries control information, and that the payload carries a data frame by using different values.
[0124] If the payload carries physical layer padding bits, the sub-indicator bits may indicate that the payload carries physical layer padding bits. The physical layer padding bits carried by the payload may be used for rate adapting, and the receiving node may discard the physical layer padding bits after receiving them.
[0125] If the payload carries control information, the sub-indicator bits may indicate that the payload carries control information.
[0126] Optionally, the sub-indicator bits may further indicate the type of control information carried in the payload. For example, the type of control information may include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information. Different types may be indicated by using different values of the sub-indicator bits.
[0127] The block identification information may be the control information of the CRC block (such as a cyclic redundancy check (CRC) block number and whether retransmission is supported). The CRC block may include the block identification information, multiple code blocks, and a CRC check. The CRC block may use one code block to carry the control information of the CRC block. For example, the control information of the CRC block may be carried in the payload of the first code block or the last code block of the CRC block, e.g., as shown in FIG. 7.
[0128] The transmission acknowledgement information may be used to indicate whether the CRC block is correctly received.
[0129] The intermittent test information is used to control a device to enter or exit an online test mode. With the online test, the device may temporarily suspend data transmission, transmit an agreed sequence, and perform an interference detection test, a bit error ratio (BER) test, a block error ratio (BLER) test, etc. After finishing the online test, the device may promptly resume data transmission. The intermittent test information may include the following information: a type of intermittent test information, e.g., intermittent test request information, intermittent test response information, intermittent test start information, and intermittent test end information; an intermittent test start time, e.g., an amount of code blocks or CRC blocks until the intermittent test starts, which may be carried in the intermittent test information of the intermittent test start type; a duration of the intermittent test, which may be a fixed duration or may be indicated in the request message; and an end of the online test, e.g., end when the time comes or end when the intermittent test ends. For example, an intermittent test process may be shown in FIG. 8.
[0130] The sleep information is used to control whether to enter or exit the low power consumption mode. When data communication is not needed, the device can enter the low power consumption mode to reduce power consumption. When transmission is needed again, the device may exit the low power consumption mode by using the wake-up information. The sleep information may include the type of sleep information, e.g., sleep request, sleep response, sleep initiation, or wake-up, and the time to enter the low power consumption mode, e.g., the amount of code blocks or CRC blocks until the low power consumption mode is entered, which may be carried in the sleep information of the sleep initiation type. For example, the sleep process may be shown in FIG. 9.
[0131] The link retraining information is used to control entering link retraining. Link quality deteriorates because the transport channel changes with time and environmental conditions such as temperature. By retraining, the device may obtain better transmission quality. The link retraining information may include a type of link retraining information, e.g., retraining request, retraining response, or retraining start, and a retraining start time, e.g., an amount of code blocks or an amount of CRC blocks until link retraining is started. For example, a link retraining process may be shown in FIG. 10.
[0132] If the sub-indicator bits indicate that the payload carries a data frame, the payload may carry a complete data frame, i.e., a data frame with no segments. It should be understood that the amount of bits of a data frame is less than or equal to the amount of bits contained in the payload.
[0133] To facilitate understanding of the solution, with reference to the code block structure shown in Fig. 4, an example in which the indicator bits includes 2 bits and the payload includes 64 bits is used below. It is assumed that the sub-indicator bits are the first 8 bits of the payload, and 7 values of the 8 bits may be used to indicate, respectively, that the payload carries physical layer padding bits, that the payload carries a data frame, that the payload carries link retraining information, that the payload carries sleep information, that the payload carries intermittent test information, that the payload carries block identification information, and that the payload sends transmission acknowledgment information. For example, as shown in FIG. 11, when the sub-indicator bits are 0x1e, it indicates that the payload carries physical layer padding bits, when the sub-indicator bits are 0x2d, it indicates that the payload carries a data frame, when the sub-indicator bits are 0x33, it indicates that the payload carries link retraining information, when the sub-indicator bits are 0x4b, it indicates that the payload carries sleep information, when the sub-indicator bits are 0x66, it indicates that the payload carries intermittent test information, when the sub-indicator bits are 0x78, it indicates that the payload carries block identification information, or when the sub-indicator bits are 0x87, it indicates that the payload carries transmission acknowledgment information.
[0134] It should be understood that the 8-bit sub-indicator bit is used only as an example for the purpose of explanation in this specification. In a specific implementation, the amount of bits included in the sub-indicator bit may alternatively be another amount, for example, 7 bits or 9 bits. This is not particularly limited in this specification. When the state value of the sub-indicator bit is 8 or more, another state value of the indicator bit may be used or reserved to indicate other contents. This is not particularly limited in this specification.
[0135] It should be understood that the contents indicated by the sub-indicator bits in the embodiments of the present application are merely examples for explanation. In a specific implementation, the contents indicated by the sub-indicator bits may include all or part of the above contents. In addition, the sub-indicator bits may further indicate other contents. Details are not listed one by one in this specification.
[0136] In an embodiment of the present application, the payload may carry multiple types of control information, a small complete data frame, padding, etc., and the contents carried in the payload may be further indicated by sub-indicator bits, thus the code block can support complex control information and the flexibility of the indication may be increased. Furthermore, in an embodiment of the present application, the payload supports carrying a small complete data frame, thereby reducing the transmission overhead of the small complete data frame, enabling the insertion of a small complete data frame between segments of a data frame, and reducing the transmission delay of the small complete data frame.
[0137] In some embodiments, when the payload carries control information, i.e., the indicator bit is the fourth value, the payload may further include a CRC field, which may be used to perform check protection on the control information. For example, the CRC field may be 8 bits or 16 bits.
[0138] For example, in the code block structure shown in Figure 4, an example is used in which the indicator bits include 2 bits and the payload includes 64 bits. Assuming that the sub-indicator bits are the first 8 bits of the payload, the CRC field may be the last 8 bits or 16 bits of the payload, as shown in Figure 12.
[0139] In the above designs, the reliability of the control information can be ensured by using a CRC field, and therefore error control may be avoided.
[0140] S302: A sending node sends a target code block, and a receiving node receives the target code block correspondingly.
[0141] S303: The receiving node analyzes the target code block.
[0142] In implementation, the receiving node may determine the contents carried in the payload based on the indicator bit value of the target code block. For details about the indicator bit of the target code block and the payload of the target code block, please refer to the relevant description of the target code block above. The details will not be described again in this specification.
[0143] In an example, if the payload carries one segment of a data frame, the receiving node may determine the position of the segment carried in the payload within the data frame based on the indicator bit value. For example, when the indicator bit is a first value, the segment carried in the payload is the first segment of the data frame, i.e., the beginning of the data frame. When the indicator bit is a second value, the segment carried in the payload is the middle segment of the data frame, i.e., the continuation of the data frame. When the indicator bit is a third value, the segment carried in the payload is the last segment of the data frame, i.e., the end of the data frame. The receiving node may splice the received segments based on the position of the segment carried in the payload within the data frame to obtain a complete data frame.
[0144] In an embodiment of the present application, the first segment (i.e., the beginning of the data frame), the last segment (i.e., the end of the data frame), and the middle segment (i.e., the continuation of the data frame) of the data frame are directly indicated by indicator bits, and the data / control is indicated by the sync word. Compared to the method in which the block type field is used to indicate the payload format, the start and end positions of the data frame are separated from the block type field and directly indicated by the indicator bits. This can simplify the complexity of the data processing and reduce the complexity and delay of wired transmission.
[0145] Furthermore, when the indicator bit is a fourth value, the payload may carry multiple types of control information, small complete data frames, padding, etc., so that the code block can support complex control information and the flexibility of the indication can be increased. Furthermore, in an embodiment of the present application, the payload supports carrying small complete data frames, thereby reducing the transmission overhead of small complete data frames, enabling insertion of small complete data frames between segments of a data frame, and reducing the transmission delay of small complete data frames.
[0146] Furthermore, when the payload carries control information, the reliability of the control information can be guaranteed by including a CRC field in the payload, and thus error control can be avoided.
[0147] This application provides another line coding method, which may be applied to a wired transmission system. As shown in Figure 13, the method includes the following steps:
[0148] S1301: A transmitting node generates a target code block, the target code block including indicator bits and a payload, the indicator bits including a first value and a second value, the first value being used to indicate that the payload includes one segment of a first data frame, and the second value being used to indicate that the payload includes non-data information.
[0149] In the embodiment of the present application, a data frame generally refers to a packet of a specific frame format, for example, an Ethernet MAC frame or an IP frame. The specific type of the data frame is not limited in the embodiment of the present application.
[0150] In a possible implementation, the indicator bit may include one bit, and two values of the one bit indicate that the payload includes a segment of the first data frame and that the payload includes non-data information, respectively. For example, when the indicator bit is 0, it indicates that the payload includes a segment of the first data frame. When the indicator bit is 1, it indicates that the payload includes non-data information.
[0151] It should be understood that one indicator bit is used only as an example for the purposes of explanation in this specification. In a specific implementation, the amount of bits included in the indicator bit may alternatively be another amount, for example, two bits or five bits. This is not particularly limited in this specification. When the amount of bits included in the indicator bit is two or more, another value of the indicator bit may be used to indicate other contents or may be reserved. This is not particularly limited in this specification.
[0152] In an embodiment of the present application, the amount of bits included in the payload may be Y, where Y is an integer equal to or greater than 1. For example, Y may be 64.
[0153] When the indicator bit is a second value, the payload includes sub-indicator bits that are used to indicate at least one of the following information: the code block following the target code block carries the first segment of the first data frame, the code block preceding the target code block carries the last segment of the first data frame, the bits carried in the payload of the target code block are physical layer padding bits, the payload of the target code block carries control information, the payload of the target code block carries the first data frame, and the first data frame and at least one second data frame are spliced together.
[0154] In an embodiment of the present application, the sub-indicator bits are used to indicate the beginning or end of a data frame, so that the overhead of indicator bits can be reduced. In addition, a code block indicating the beginning of a data frame and a code block indicating the end of a data frame are inserted before the first segment and after the last segment of a data frame, respectively. Compared with the way in which the block type field indicates the payload format, the sub-indicator bits directly indicate the beginning or end of a data frame. This can simplify the complexity of data processing and reduce the delay of wired transmission.
[0155] For example, if the next code block of the target code block carries the first segment of a first data frame, the bits carried within the payload of the target code block are physical layer padding bits, and the sub-indicator bits indicate that the next code block of the target code block carries the first segment of a first data frame.
[0156] Alternatively, if the code block preceding the target code block carries the last segment of the first data frame, the sub-indicator bits indicate that the code block preceding the target code block carries the last segment of the first data frame, and the bits carried within the payload of the target code block are physical layer padding bits.
[0157] Alternatively, if the bits carried within the payload of the target code block are physical layer padding bits, the sub-indicator bits indicate that the bits carried within the payload of the target code block are physical layer padding bits.
[0158] Alternatively, if the payload of the target code block carries control information and the sub-indicator bit indicates that the payload carries control information, the sub-indicator bit may further indicate the type of the control information. For details of the control information, please refer to the relevant description of the control information in step S301. The details will not be described again in this specification.
[0159] Alternatively, if the payload of the target code block carries the first data frame, the sub-indicator bit indicates that the payload of the target code block carries the first data frame.
[0160] Alternatively, if the payload of the target code block carries all or part of the data of a first data frame and all or part of the data of at least one second data frame, the sub-indicator bit indicates that the first data frame and at least one second data frame are spliced. In an example, the sub-indicator bit may indicate that the first data frame and at least one second data frame are spliced, and in particular indicate the boundary positions of the first data frame and at least one second data frame in the payload. The positions of the first data frame and at least one second data frame in the payload may refer to the boundary of the first data frame, i.e., the end position of the first data frame, and the boundary of the at least one second data frame, i.e., the start position and the end position of the at least one second data frame.
[0161] An example in which a first data frame and one second data frame are spliced together is used to explain the payload of the target code block.
[0162] Example 1: The payload of the target code block includes the first segment of a second data frame and a first data frame, where the first segment is after the first data frame. The first data frame is a complete data frame, i.e., a data frame with no segments.
[0163] Example 2: The payload of the target code block includes the first segment of the second data frame and the last segment of the first data frame, where the first segment is after the last segment.
[0164] Example 3: The payload of the target code block includes the last segment of a first data frame and a second data frame, the second data frame being after the last segment. The second data frame is a complete data frame, i.e., a data frame with no segments.
[0165] Example 4: The payload of the target code block includes a first data frame and a second data frame, where the second data frame follows the first data frame. The first data frame and the second data frame are complete data frames, i.e., data frames that do not include segments.
[0166] In a possible implementation, there is an interframe space between two adjacent data frames in the first data frame and at least one second data frame. The interframe space may have an interframe buffering function. For example, the interframe space may be 8 bits of padding, and the receiving node may discard the interframe space immediately.
[0167] To facilitate understanding of the solution, an example is used in which the indicator bit includes 1 bit and the payload includes 64 bits. Assume that the sub-indicator bit is the first 8 bits of the payload, and 9 values of the 8 bits may be used to indicate that the code block next to the target code block carries the first segment of the first data frame, that the code block before the target code block carries the last segment of the first data frame, that the bits carried in the payload of the target code block are physical layer padding bits, that the payload of the target code block carries the first data frame, that the payload of the target code block carries link retraining information, that the payload of the target code block carries sleep information, that the payload of the target code block carries intermittent test information, that the payload of the target code block carries block identification information, and that the payload of the target code block carries transmission acknowledgment information, respectively. The other 6 values of the 8 bits are used to indicate the splicing of the first data frame and at least one second data frame, and different splicing positions of the first data frame and at least one second data frame in the payload.
[0168] For example, as shown in FIG. 14, when the sub-indicator bits are 0x1e, it indicates that the payload of the target code block carries physical layer padding bits, when the sub-indicator bits are 0x2d, it indicates that the payload of the target code block carries the first data frame, when the sub-indicator bits are 0x33, it indicates that the payload of the target code block carries link retraining information, when the sub-indicator bits are 0x4b, it indicates that the payload of the target code block carries sleep information, when the sub-indicator bits are 0x66, it indicates that the payload of the target code block carries intermittent test information, when the sub-indicator bits are 0x78, it indicates that the payload of the target code block carries block identification information, when the sub-indicator bits are 0x87 ... It indicates that the payload of the target code block carries transmission acknowledgment information, if the sub-indicator bits are 0x99, it indicates that the code block following the target code block carries the first segment of the first data frame, if the sub-indicator bits are 0xAA, it indicates that the code block preceding the target code block carries the last segment of the first data frame, or if the sub-indicator bits are 0xE1 to 0xE6, it indicates that the first data frame and at least one second data frame are spliced together and the positions of the first data frame and the at least one second data frame in the payload are 1 byte, 2 bytes, 3 bytes, 4 bytes, 5 bytes, and 6 bytes of the payload, respectively, i.e., the last segment of the first data frame is 1 to 6 bytes, respectively.
[0169] It should be noted that 8 sub-indicator bits are used as an example for the purposes of explanation in this specification. In a specific implementation, the amount of bits included in the sub-indicator bits may alternatively be another amount, for example, 7 bits or 9 bits. This is not particularly limited in this specification. When the state value of the sub-indicator bits is 11 or more, another state value of the indicator bit may be used or reserved to indicate other contents. This is not particularly limited in this specification.
[0170] It should be understood that the contents indicated by the sub-indicator bits in the embodiments of the present application are merely examples for explanation. In a specific implementation, the contents indicated by the sub-indicator bits may include all or part of the above contents. In addition, the sub-indicator bits may further indicate other contents. Details are not listed one by one in this specification.
[0171] For ease of explanation, in the following, code blocks whose payload contains data information are referred to as data code blocks, i.e., code blocks whose indicator bit value is a first value are referred to as data code blocks, and code blocks whose payload contains non-data information are referred to as control code blocks, i.e., code blocks whose indicator bit value is a second value are referred to as control code blocks.
[0172] In an implementation, when generating the target code block, the transmitting node may divide the first data frame into N segments, where N is an integer greater than or equal to 2, and encode the N data blocks to obtain N+2 code blocks, where the N+2 code blocks include the target code block, and if the target code block is the first code block of the N+2 code blocks, the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that a code block following the target code block carries a first segment of the first data frame; if the target code block is the nth code block of the N+2 code blocks, the indicator bit of the target code block is a first value, where n is an integer greater than or equal to 2 and less than N+2, or if the target code block is the (N+2)th code block of the N+2 code blocks, the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that a code block preceding the target code block carries a last segment of the first data frame.
[0173] For example, when a data frame is segmented, the data frame may be divided into equal length segments, i.e., the data frame is divided into N equal length segments. For example, the data frame may be divided into N Y-bit segments, where Y bits is the length of the payload.
[0174] To facilitate understanding of the solution, with reference to the code block structure shown in FIG. 14, assuming that the payload contains 64 bits, the following uses an example to describe the encoding process of a data frame.
[0175] B1: The transmitting node divides data frame 1 into N 64-bit segments.
[0176] B2: The transmitting node encodes N segments to obtain N+2 code blocks, as shown in FIG. 15, where the indicator bit value of the first code block is 1, the sub-indicator bit value is 0x99, and the payload carries physical layer padding bits; the indicator bit value of the second data code block to the (N-1)th data code block is 0; the payloads of the second data code block to the (N+1)th data code block carry the first segment to the Nth segment of data frame 1, respectively; the indicator bit value of the (N+2)th data code block is 1, the sub-indicator bit value is 0xAA, and the payload carries physical layer padding bits.
[0177] It should be noted that the N+2 code blocks may be transmitted consecutively or non-consecutively. Specifically, the control code block may be interleaved between any two of the N+2 code blocks for transmission, as shown in FIG. 16. The payload of the control code block may carry physical layer padding bits, or may carry control information, or may carry a second data frame. The second data frame is a complete (non-segmented) data frame. Optionally, the second data frame and the first data frame may be from different interfaces. For example, the first data frame is from a MAC layer interface and the second data frame is from an IP layer interface.
[0178] It should be understood that FIG. 16 is merely an illustrative example and does not specifically limit the amount of other code blocks carrying control information or the transmission locations of the other code blocks.
[0179] In the above design, one code block is inserted before the first segment of the data frame and one code block is inserted after the last segment of the data frame to indicate the beginning and end of the data frame, so that the receiving node may simply directly determine the beginning and end of the data frame. Compared with the method in which the synchronization field is used to indicate data / control and then the block type field is used to indicate the payload format, this simplifies the data processing complexity and reduces the complexity and delay of wired transmission.
[0180] For example, if the sub-indicator bits indicate that the payload of the target code block carries control information, i.e., if the payload carries control information, the payload may include a CRC field, which is used to perform check protection on the control information.
[0181] If the sub-indicator bits indicate that the code block following the target code block carries the first segment of a first data frame, or if the sub-indicator bits indicate that the code block previous to the target code block carries the last segment of a first data frame, or if the sub-indicator bits indicate that the payload of the target code block carries physical layer padding bits, the payload may also include a CRC field.
[0182] For example, the CRC field may be 8 bits or 16 bits.
[0183] For example, in the code block structure shown in FIG. 14, assuming the payload contains 64 bits and the sub-indicator bits are the first 8 bits of the payload, the CRC field may be the last 8 or 16 bits of the payload, as shown in FIG. 17 or FIG. 18.
[0184] In the above designs, the reliability of the control information can be ensured by using a CRC field, and therefore error control may be avoided.
[0185] S1302: A transmitting node transmits a target code block, and a receiving node receives the target code block in response.
[0186] S1303: The receiving node analyzes the target code block.
[0187] In implementation, the receiving node may determine the contents carried in the payload based on the indicator bit value and indicator sub-bits of the target code block. For details about the indicator bit, payload, and sub-indicator bit of the target code block, please refer to the relevant description of the target code block in S1301. The details will not be described again in this specification.
[0188] In an example, if the payload of a first code block carries one segment of a data frame, the receiving node may determine the position of the segment carried in the payload of the first code block within the data frame based on the indicator bit value and the sub-indicator bit value of the second code block before the first code block and the third code block after the first code block. For example, if the indicator bit of the second code block is the second value and the sub-indicator bit indicates that the code block following the code block carries the first segment of the data frame, the segment carried in the payload of the first code block is the first segment of the data frame, i.e., the beginning of the data frame. If the indicator bit of the third code block is the second value and the sub-indicator bit indicates that the code block preceding the code block carries the last segment of the data frame, the segment carried in the payload of the first code block is the last segment of the data frame, i.e., the end of the data frame. If the indicator bits of the second code block and the third code block are both a first value, then the segment carried in the payload of the first code block is an intermediate segment of the data frame, i.e., a continuation of the data frame, and the receiving node may splice together the received segments based on the position of the segment carried in the payload of the first code block within the data frame to obtain a complete data frame.
[0189] In an embodiment of the present application, the sub-indicator bits are used to indicate the beginning or end of a data frame, so that the overhead of indicator bits can be reduced. In addition, a code block indicating the beginning of a data frame and a code block indicating the end of a data frame are inserted before the first segment and after the last segment of a data frame, respectively. Compared with the way in which the block type field indicates the payload format, the sub-indicator bits directly indicate the beginning or end of a data frame. This can simplify the complexity of data processing and reduce the delay of wired transmission.
[0190] Furthermore, when the indicator bit is a second value, the payload may carry multiple types of control information, a complete data frame with a small amount of data, padding, etc., so that the code block can support complex control information and the flexibility of the indication may be increased. In addition, in an embodiment of the present application, the payload supports carrying a complete data frame with a small amount of data, thereby reducing the transmission overhead of the data frame with a small amount of data. Also, in an embodiment of the present application, the payload supports splicing of two or more data frames, thereby increasing the flexibility of data transmission.
[0191] Furthermore, the reliability of the control information can be guaranteed by including a CRC field in the payload, so error control can be avoided.
[0192] Based on the same technical concept as the method embodiment, an embodiment of the present application provides a communication device. The structure of the device may be shown in Figure 19. The device includes: a processing unit 1901 and a transceiver unit 1902.
[0193] In implementation, the communication device may be specifically configured to perform the method performed by the transmitting node in the embodiments of Figures 3 to 12. The device may be a transmitting node or a chip, a chipset, or a component configured to perform the functions of the associated method in a chip in the transmitting node. The processing unit 1901 is configured to generate a target code block, the target code block including indicator bits and a payload, the indicator bits including a first value, a second value, a third value, and a fourth value, the first value being used to indicate that the payload includes a first segment of a data frame, the second value being used to indicate that the payload includes a middle segment of a data frame, the third value being used to indicate that the payload includes a last segment of a data frame, and the fourth value being used to indicate that the payload includes non-data information, and the transceiver unit 1902 is configured to transmit the target code block.
[0194] In an embodiment, the processing unit 1901 is specifically configured to divide a data frame into N segments, where N is an integer greater than or equal to 2, and encode the N segments to obtain N code blocks, the N code blocks including a target code block, and if the payload of the target code block includes a first segment among the N segments, the indicator bit of the target code block is a first value, if the payload of the target code block includes an nth segment among the N segments, the indicator bit of the target code block is a second value, n is an integer greater than or equal to 2 and less than N, or if the payload of the target code block includes the Nth segment among the N segments, the indicator bit of the target code block is a third value.
[0195] For example, the non-data information includes at least one of the following: padding bits, sub-indicator bits, and control information.
[0196] Optionally, if the bits carried in the payload are padding bits, the indicator bits are a fourth value.
[0197] Optionally, the sub-indicator bits are used to indicate that the payload carries physical layer padding bits, or the sub-indicator bits are used to indicate that the payload carries control information, or the sub-indicator bits are used to indicate that the payload carries a data frame.
[0198] For example, the types of control information include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0199] In the exemplary illustration, if the payload carries control information, the payload further includes a CRC field used for check protection.
[0200] In another implementation, a communication device may be specifically configured to implement the method performed by the transmitting node in the embodiments of Figures 13 to 18. The device may be the transmitting node itself, or may be a chip, chipset, or part of a chip in the transmitting node configured to perform the functions of the associated method. The processing unit 1901 is configured to generate a target code block, the target code block including an indicator bit and a payload, the indicator bit including a first value and a second value, the first value being used to indicate that the payload includes one segment of a first data frame, the second value being used to indicate that the payload includes non-data information, and if the indicator bit is the second value, the payload includes a sub-indicator bit.
[0201] The sub-indicator bits contain the following information: the code block next to the target code block carries a first segment of a first data frame; the code block preceding the target code block conveys the last segment of the first data frame; that the bits carried within the payload of the target code block are physical layer padding bits; the payload of the target code block carries control information; the payload of the target code block carries a first data frame; and It is used to indicate at least one of that a first data frame and at least one second data frame are spliced in the payload of a target code block.
[0202] The transceiver unit 1902 is configured to transmit a target code block.
[0203] For example, if the next code block of the target code block carries the first segment of the first data frame, the bits carried in the payload are physical layer padding bits and the sub-indicator bits indicate that the next code block of the target code block carries the first segment of the first data frame.
[0204] Alternatively, if the code block before the target code block carries the last segment of the first data frame, the bits carried in the payload are physical layer padding bits and the sub-indicator bits indicate that the code block before the target code block carries the last segment of the first data frame.
[0205] Alternatively, if the bits carried within the payload of the target code block are physical layer padding bits, the sub-indicator bits indicate that the bits carried within the payload of the target code block are physical layer padding bits.
[0206] Alternatively, if the payload of the target code block carries control information, the sub-indicator bits indicate that the payload carries control information. Optionally, the sub-control bits further indicate the type of control information.
[0207] Alternatively, if the payload of the target code block carries the first data frame, the sub-indicator bit indicates that the payload of the target code block carries the first data frame.
[0208] Alternatively, if the payload of the target code block carries all or a portion of the data of a first data frame and all or a portion of the data of at least one second data frame, the sub-indicator bit indicates that the first data frame and the at least one second data frame are spliced together.
[0209] Optionally, the type of control information includes at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0210] In an embodiment, the processing unit 1901 is specifically configured to: divide a first data frame into N segments, where N is an integer greater than or equal to 2, and encode the N data blocks to obtain N+2 code blocks, the N+2 code blocks including a target code block, where if the target code block is a first code block among the N+2 code blocks, the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that a code block following the target code block carries a first segment of the first data frame; where if the target code block is an n-th code block among the N+2 code blocks, the indicator bit of the target code block is a first value, where n is an integer greater than or equal to 2 and less than N+2, or if the target code block is an (N+2)-th code block among the N+2 code blocks, the indicator bit of the target code block is a second value and the sub-indicator bit is used to indicate that a code block preceding the target code block carries a last segment of the first data frame.
[0211] For example, if the sub-indicator bits indicate the type of control information contained in the payload of the target code block, the payload includes a CRC field used for check protection, and / or if the sub-indicator bits indicate that the code block following the target code block carries the first segment of a first data frame or the sub-indicator bits indicate that the code block preceding the target code block carries the last segment of a first data frame, the payload includes a CRC field used for check protection.
[0212] Optionally, indicating by the sub-indicator bits that the first data frame and the at least one second data frame are spliced includes further indicating by the sub-indicator bits a boundary location of the first data frame and the at least one second data frame within the payload.
[0213] In an exemplary illustration, all or a portion of the data of a first data frame and all or a portion of the data of at least one second data frame include an initial segment of one second data frame and the first data frame, the initial segment following the first data frame.
[0214] Alternatively, all or a portion of the data of the first data frame and all or a portion of the data of at least one second data frame include a first segment of one second data frame and a last segment of the first data frame, the first segment being after the last segment.
[0215] Alternatively, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include a last segment of the first data frame and at least one second data frame, the at least one second data frame being after the last segment.
[0216] Alternatively, all or a portion of the data in the first data frame and all or a portion of the data in the at least one second data frame include the first data frame and the at least one second data frame, where the at least one second data frame follows the first data frame.
[0217] Optionally, an interframe space exists between two adjacent data frames in the first data frame and the at least one second data frame.
[0218] In another implementation, the communication device may be specifically configured to implement the method performed by the receiving node in the embodiments of Figures 3 to 12. The device may be the receiving node itself, or may be a chip, chipset, or part of a chip in the receiving node configured to perform the functions of the associated method. The transceiver unit 1902 is configured to receive a target code block, the target code block including indicator bits and a payload, the indicator bits including a first value, a second value, a third value, and a fourth value, the first value being used to indicate that the payload includes a first segment of a data frame, the second value being used to indicate that the payload includes a middle segment of a data frame, the third value being used to indicate that the payload includes a last segment of a data frame, and the fourth value being used to indicate that the payload includes non-data information, and the processing unit 1901 is configured to parse the target code block.
[0219] In an embodiment, the processing unit 1901 is specifically configured to determine that the segment carried in the payload of the target code block is the first segment of a data frame if the indicator bit of the target code block is a first value, or to determine that the segment carried in the payload of the target code block is an intermediate segment of a data frame if the indicator bit of the target code block is a second value, and to determine that the segment carried in the payload of the target code block is the last segment of a data frame if the indicator bit of the target code block is a third value.
[0220] For example, the non-data information includes at least one of the following: padding bits, sub-indicator bits, and control information.
[0221] Optionally, if the bits carried in the payload are padding bits, the indicator bits are a fourth value.
[0222] Optionally, the sub-indicator bits are used to indicate that the payload carries physical layer padding bits, or the sub-indicator bits are used to indicate that the payload carries control information, or the sub-indicator bits are used to indicate that the payload carries a data frame.
[0223] For example, the types of control information include at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0224] In the exemplary illustration, if the payload carries control information, the payload further includes a CRC field used for check protection.
[0225] In yet another implementation, a communication device may be specifically configured to implement the method performed by the receiving node in the embodiments of Figures 13 to 18. The device may be the receiving node itself, or may be part of a chip, chipset, or chip in the receiving node configured to perform the functions of the associated method. The transceiver unit 1902 is configured to receive a target code block, the target code block including an indicator bit and a payload, the indicator bit including a first value and a second value, the first value being used to indicate that the payload includes one segment of a first data frame, the second value being used to indicate that the payload includes non-data information, and if the indicator bit is the second value, the payload includes a sub-indicator bit.
[0226] The sub-indicator bits contain the following information: the code block next to the target code block carries a first segment of a first data frame; the code block preceding the target code block conveys the last segment of the first data frame; that the bits carried within the payload of the target code block are physical layer padding bits; the payload of the target code block carries control information; the payload of the target code block carries a first data frame; and It is used to indicate at least one of that a first data frame and at least one second data frame are spliced in the payload of a target code block.
[0227] The processing unit 1901 is configured to analyze the target code block.
[0228] For example, if the next code block of the target code block carries the first segment of the first data frame, the bits carried in the payload are physical layer padding bits and the sub-indicator bits indicate that the next code block of the target code block carries the first segment of the first data frame.
[0229] Alternatively, if the code block before the target code block carries the last segment of the first data frame, the bits carried in the payload are physical layer padding bits and the sub-indicator bits indicate that the code block before the target code block carries the last segment of the first data frame.
[0230] Alternatively, if the bits carried within the payload of the target code block are physical layer padding bits, the sub-indicator bits indicate that the bits carried within the payload of the target code block are physical layer padding bits.
[0231] Alternatively, if the payload of the target code block carries control information, the sub-indicator bits indicate that the payload carries control information. Optionally, the sub-control bits further indicate the type of control information.
[0232] Alternatively, if the payload of the target code block carries the first data frame, the sub-indicator bit indicates that the payload of the target code block carries the first data frame.
[0233] Alternatively, if the payload of the target code block carries all or a portion of the data of a first data frame and all or a portion of the data of at least one second data frame, the sub-indicator bit indicates that the first data frame and the at least one second data frame are spliced together.
[0234] Optionally, the type of control information includes at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
[0235] In an embodiment, the processing unit 1901 is particularly configured to determine that the segment carried in the next code block of the target code block is the first segment of the first data frame if the indicator bit of the target code block is the second value and the sub-indicator bit is used to indicate that the next code block of the target code block carries the first segment of the first data frame, determine that the segment carried in the payload of the target code block is an intermediate segment of the first data frame if the indicator bit of the target code block is the first value, or determine that the segment carried in the previous code block of the target code block is the last segment of the first data frame if the indicator bit of the target code block is the second value and the sub-indicator bit is used to indicate that the previous code block of the target code block carries the last segment of the first data frame.
[0236] For example, if the sub-indicator bits indicate the type of control information contained in the payload of the target code block, the payload includes a CRC field used for check protection, and / or if the sub-indicator bits indicate that the code block following the target code block carries the first segment of a first data frame or the sub-indicator bits indicate that the code block preceding the target code block carries the last segment of a first data frame, the payload includes a CRC field used for check protection.
[0237] Optionally, indicating by the sub-indicator bits that the first data frame and the at least one second data frame are spliced includes further indicating by the sub-indicator bits a boundary location of the first data frame and the at least one second data frame within the payload.
[0238] In an exemplary illustration, all or a portion of the data of a first data frame and all or a portion of the data of at least one second data frame include an initial segment of one second data frame and the first data frame, the initial segment following the first data frame.
[0239] Alternatively, all or a portion of the data of the first data frame and all or a portion of the data of at least one second data frame include a first segment of one second data frame and a last segment of the first data frame, the first segment being after the last segment.
[0240] Alternatively, all or a portion of the data of the first data frame and all or a portion of the data of the at least one second data frame include a last segment of the first data frame and at least one second data frame, the at least one second data frame being after the last segment.
[0241] Alternatively, all or a portion of the data in the first data frame and all or a portion of the data in the at least one second data frame include the first data frame and the at least one second data frame, where the at least one second data frame follows the first data frame.
[0242] Optionally, an interframe space exists between two adjacent data frames in the first data frame and the at least one second data frame.
[0243] The division into modules in the embodiments of the present application is an example, and is merely a division into logical functions, and may be other divisions during actual implementation. In addition, the functional modules of the embodiments of the present application may be integrated into one processor, or each of the modules may exist physically independent, or two or more modules may be integrated into one module. The integrated module may be implemented in the form of hardware, or may be implemented in the form of a software functional module. It will be understood that the functions or implementations of the modules in the embodiments of the present application shall further refer to the relevant descriptions of the embodiments of the method.
[0244] In a possible manner, a communication device may be shown in FIG. 20. The device may be a transmitting node or a chip in a transmitting node. The device may include a processor 2001, a communication interface 2002, and a memory 2003. The processing unit 1901 may be the processor 2001. The transceiver unit 1902 may be the communication interface 2002.
[0245] The processor 2001 may be a CPU, a digital processing unit, etc. The communication interface 2002 may be a transceiver, an interface circuit such as a transceiver circuit, a transceiver chip, etc. The device further includes a memory 2003 configured to store a program executed by the processor 2001. The memory 2003 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), or a volatile memory, such as a random access memory (RAM). The memory 2003 may be any other medium that can carry or store expected program code in the form of instruction structures or data structures and can be accessed by a computer, but is not limited to such.
[0246] The processor 2001 is configured to execute program codes stored in the memory 2003, and is particularly configured to perform the actions of the processing unit 1901 described above. Details will not be described again herein in this application. The communication interface 2002 is particularly configured to perform the actions of the transceiver unit 1902. Details will not be described again herein in this application.
[0247] The specific connection medium between the communication interface 2002, the processor 2001, and the memory 2003 is not limited in the embodiment of the present application. In the embodiment of the present application, the memory 2003, the processor 2001, and the communication interface 2002 are connected by using the bus 2004 in FIG. 20. The bus is represented by using a thick line in FIG. 20. The manner of connection between the other components is only an example for explanation and is not limited thereto. The bus may include an address bus, a data bus, a control bus, etc. For ease of representation, there is only one thick line to represent the bus in FIG. 20, but this does not mean that there is only one bus or only one type of bus.
[0248] An embodiment of the present application further provides a communication system including a communication device configured to implement the functionality of a transmitting node of the embodiment of Figures 3 to 12 and a communication device configured to implement the functionality of a receiving node of the embodiment of Figures 3 to 12.
[0249] An embodiment of the present application further provides a communication system including a communication device configured to implement the functionality of a transmitting node of the embodiment of Figures 13 to 18 and a communication device configured to implement the functionality of a receiving node of the embodiment of Figures 13 to 18.
[0250] An embodiment of the present application further provides a computer-readable storage medium configured to store computer software instructions that need to be executed by the above-mentioned processor, the computer software instructions including a program that needs to be executed by the above-mentioned processor.
[0251] Those skilled in the art should understand that the embodiments of the present application may be provided as a method, a system, or a computer program product. Thus, the present application may take the form of a hardware-only embodiment, a software-only embodiment, or an embodiment with a combination of software and hardware. Furthermore, the present application may take the form of a computer program product embodied on one or more computer usable storage media (including, but not limited to, disk memory, CD-ROM, optical memory, etc.) that includes computer usable program code.
[0252] The present application is described with reference to flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that computer program instructions may be used to implement each process and / or each block of the flowcharts and / or block diagrams, and combinations of processes and / or blocks of the flowcharts and / or block diagrams. The computer program instructions may be provided to a general-purpose computer, a special-purpose computer, an embedded processor, or a processor of another programmable data processing device to generate a machine such that the instructions executed by the processor of the computer or another programmable data processing device generate an apparatus for implementing a particular function of one or more steps of the flowcharts and / or one or more blocks of the block diagrams.
[0253] The computer program instructions may alternatively be stored in a computer readable memory that may cause a computer or another programmable data processing device to act in a particular manner such that the instructions stored in the computer readable memory cause an article of manufacture that includes an instruction apparatus that implements a particular function of one or more steps of the flowcharts and / or one or more blocks of the block diagrams.
[0254] The computer program instructions may alternatively be loaded into a computer or another programmable data processing device such that a sequence of operations and steps are executed on the computer or another programmable device to generate a computer-implemented process. Thus, the instructions executing on the computer or another programmable device provide steps for implementing a particular function of one or more procedures of the flow charts and / or one or more blocks of the block diagrams.
[0255] It is obvious that a person skilled in the art can make various modifications and variations to this application without departing from the scope of this application. This application is intended to cover these modifications and variations of this application, provided that they fall within the scope of protection defined by the appended claims and their equivalent technologies. [Explanation of symbols]
[0256] 1901 Processing Unit 1902 Transceiver unit 2001 Processor 2002 Communication Interface 2003 Memory 2004 Bus
Claims
1. 1. A line coding method, comprising: generating a target code block, the target code block including indicator bits and a payload, the four values of the indicator bits indicating a first value, a second value, a third value, and a fourth value, the first value indicating that the payload includes a first segment of a first data frame, the second value indicating that the payload includes a middle segment of the first data frame, the third value indicating that the payload includes a last segment of the first data frame, and the fourth value indicating that the payload includes padding bits, control information, or a second data frame; transmitting the target code block; If the value of the indicator bit is the fourth value, the payload includes a sub-indicator bit. method.
2. The step of generating a target code block comprises:
2. The method of claim 1, comprising: obtaining N code blocks according to the first data frame, where N is an integer greater than or equal to 2, the N code blocks including the target code block and N segments, the indicator bit of the target code block being the second value if the indicator bit of the target code block is the first value or if the payload of the target code block includes the nth segment of the N segments, and the indicator bit of the target code block being the third value if n is an integer greater than or equal to 2 and less than N, or if the payload of the target code block includes the Nth segment of the N segments.
3. the sub-indicator bits are used to indicate that the payload carries physical layer padding bits, the sub-indicator bits are used to indicate that the payload carries the control information, or 2. The method of claim 1, wherein the sub-indicator bit is used to indicate that the payload carries the second data frame that is a complete, non-segmented data frame.
4. 4. The method according to claim 1, wherein the control information comprises at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
5. 5. The method of claim 1, wherein if the payload carries the control information, the payload further comprises a cyclic redundancy check (CRC) field used for check protection.
6. The method of claim 1 , wherein the indicator bits comprise two bits.
7. 1. A method of analysis comprising: receiving a target code block, the target code block including indicator bits and a payload, four values of the indicator bits indicating a first value, a second value, a third value, and a fourth value, the first value indicating that the payload includes a first segment of a first data frame, the second value indicating that the payload includes a middle segment of the first data frame, the third value indicating that the payload includes a last segment of the first data frame, and the fourth value indicating that the payload includes padding bits, control information, or a second data frame; and analyzing the target code block; The step of analyzing the target code block comprises: determining that the payload includes sub-indicator bits if a value of the indicator bit is the fourth value.
8. The step of analyzing the target code block comprises: determining that a segment carried within the payload of the target code block is the first segment of the first data frame if the indicator bit of the target code block is the first value; determining that the segment carried within the payload of the target code block is the intermediate segment of the first data frame if the indicator bit of the target code block is the second value; or 8. The method of claim 7, further comprising determining that the segment carried within the payload of the target code block is the last segment of the first data frame if the indicator bit of the target code block is the third value.
9. the sub-indicator bits are used to indicate that the payload carries physical layer padding bits, the sub-indicator bits are used to indicate that the payload carries the control information, or 8. The method of claim 7, wherein the sub-indicator bit is used to indicate that the payload carries the second data frame that is a complete, non-segmented data frame.
10. 10. The method according to any one of claims 7 to 9, wherein the control information comprises at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
11. 11. The method of claim 7, wherein if the payload carries the control information, the payload further comprises a cyclic redundancy check (CRC) field used for check protection.
12. A line coding device, comprising: a processing unit configured to generate a target code block, the target code block including indicator bits and a payload, wherein four values of the indicator bits indicate a first value, a second value, a third value, and a fourth value, the first value indicating that the payload includes a first segment of a first data frame, the second value indicating that the payload includes a middle segment of the first data frame, the third value indicating that the payload includes a last segment of the first data frame, and the fourth value indicating that the payload includes padding bits, control information, or a second data frame; a transceiver unit configured to transmit the target code block via a transmitter; When the value of the indicator bit is the fourth value, the payload includes a sub-indicator bit.
13. The processing unit comprises:
13. The apparatus of claim 12, further configured to obtain N code blocks according to the first data frame, where N is an integer greater than or equal to 2, the N code blocks including the target code block and N segments, and the indicator bit of the target code block is the second value if the indicator bit of the target code block is the first value or if the payload of the target code block includes an nth segment of the N segments, and the indicator bit of the target code block is the third value if n is an integer greater than or equal to 2 and less than N, or if the payload of the target code block includes an Nth segment of the N segments.
14. the sub-indicator bits are used to indicate that the payload carries physical layer padding bits, the sub-indicator bits are used to indicate that the payload carries the control information, or 13. The apparatus of claim 12, wherein the sub-indicator bit is used to indicate that the payload carries the second data frame that is a complete, non-segmented data frame.
15. 15. The apparatus of any one of claims 12 to 14, wherein the control information includes at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
16. 16. The apparatus of claim 12, wherein if the payload carries the control information, the payload further comprises a cyclic redundancy check (CRC) field used for check protection.
17. 17. Apparatus according to any one of claims 12 to 16, wherein the indicator bits comprise two bits.
18. An analysis device, comprising: a transceiver unit configured to receive a target code block, the target code block including indicator bits and a payload, wherein four values of the indicator bits indicate a first value, a second value, a third value, and a fourth value, the first value indicating that the payload includes a first segment of a first data frame, the second value indicating that the payload includes a middle segment of the first data frame, the third value indicating that the payload includes a last segment of the first data frame, and the fourth value indicating that the payload includes padding bits, control information, or a second data frame; a processing unit configured to analyze the target code block; The processing unit comprises: The apparatus, further configured to determine that the payload includes sub-indicator bits if a value of the indicator bit is the fourth value.
19. The processing unit comprises: determining that a segment carried within the payload of the target code block is the first segment of the first data frame if the indicator bit of the target code block is the first value; determining that the segment carried within the payload of the target code block is the intermediate segment of the first data frame if the indicator bit of the target code block is the second value; or 20. The apparatus of claim 18, further configured to determine that a segment carried within the payload of the target code block is the last segment of the first data frame if the indicator bit of the target code block is the third value.
20. the sub-indicator bits are used to indicate that the payload carries physical layer padding bits, the sub-indicator bits are used to indicate that the payload carries the control information, or 20. The apparatus of claim 18, wherein the sub-indicator bit is used to indicate that the payload carries the second data frame that is a complete, non-segmented data frame.
21. 21. The apparatus of any one of claims 18 to 20, wherein the control information includes at least one of the following: block identification information, transmission acknowledgment information, intermittent test information, sleep information, and link retraining information.
22. 22. The apparatus of claim 18, wherein if the payload carries the control information, the payload further comprises a cyclic redundancy check (CRC) field used for check protection.
23. A computer readable storage medium storing a program or instructions, which, when read and executed by one or more processors, performs the method of any one of claims 1 to 6, or which, when read and executed by one or more processors, performs the method of any one of claims 7 to 11.
24. A computer program product, which when executed on a device enables the device to perform the method according to any one of claims 1 to 6, or enables the device to perform the method according to any one of claims 7 to 11.
25. A communication system comprising a line coding device according to any one of claims 12 to 17 and an analysis device according to any one of claims 18 to 22.
Citation Information
Patent Citations
Signal housing method
JP2004080646A
Super framing error coding in digital audio broadcasting system
JP2005333629A
Coding and decoding of packet data
JP2006333478A
Method and apparatus for packet segmentation and concatenation signaling in communication system
JP2013153514A
Data transmission method, transmitter and receiver
JP2018523409A