US9634799B2 - Decoding device, information transmission system, and non-transitory computer readable medium - Google Patents

Decoding device, information transmission system, and non-transitory computer readable medium Download PDF

Info

Publication number
US9634799B2
US9634799B2 US14/689,850 US201514689850A US9634799B2 US 9634799 B2 US9634799 B2 US 9634799B2 US 201514689850 A US201514689850 A US 201514689850A US 9634799 B2 US9634799 B2 US 9634799B2
Authority
US
United States
Prior art keywords
data
error
bit
value
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US14/689,850
Other versions
US20160191205A1 (en
Inventor
Tsutomu Hamada
Yoshinori Awata
Atsushi Ugajin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Assigned to FUJI XEROX CO., LTD. reassignment FUJI XEROX CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AWATA, YOSHINORI, HAMADA, TSUTOMU, UGAJIN, ATSUSHI
Publication of US20160191205A1 publication Critical patent/US20160191205A1/en
Application granted granted Critical
Publication of US9634799B2 publication Critical patent/US9634799B2/en
Assigned to FUJIFILM BUSINESS INNOVATION CORP. reassignment FUJIFILM BUSINESS INNOVATION CORP. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FUJI XEROX CO., LTD.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • H04L1/0063Single parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code

Definitions

  • the present invention relates to a decoding device, an information transmission system, and a non-transitory computer readable medium.
  • a decoding device including:
  • a reception unit that receives data of which the number of bits is converted and encoded such that a ratio between appearance frequency of a first code and appearance frequency of a second code is a predetermined range, and to which an error correcting code including redundant bits for calculating an error position of the encoded data and a parity check bit of the encoded data is appended;
  • a detection unit that detects that there are an odd number of bit errors in the data when a value of a syndrome corresponding to an error position calculated based on the redundant bits included in the error correcting code appended to the encoded data received by the reception unit is a first predetermined value and an error occurs in the decoding on the encoded data, or when the value of the syndrome is not the first value and a value of the parity check bit is a second predetermined value and an error occurs in the decoding on the encoded data.
  • FIG. 1 is a schematic view showing an example of the configuration of an information transmission system according to a first exemplary embodiment of the present invention
  • FIG. 2 is a block diagram showing an example of the configuration of an encoding device according to the first exemplary embodiment
  • FIGS. 3A to 3E are diagrams for describing the operation of the encoding device
  • FIG. 4A is a diagram showing an example of an error correcting code
  • FIG. 4B is a diagram showing an example of data to be transmitted
  • FIG. 5 is a block diagram showing an example of the configuration of a decoding device according to the first exemplary embodiment
  • FIGS. 6A to 6E are diagrams for describing the operation of the decoding device
  • FIGS. 7A and 7B are diagrams for describing the operation of decoding error detection
  • FIG. 8A is a diagram for describing the operation of 1-bit error correction
  • FIG. 8B is a diagram for describing the operation of 2-bit error detection
  • FIGS. 9A and 9B are diagrams for describing the operation of 3-bit error detection
  • FIG. 10 is a diagram showing contents of an encoding process routine executed by the encoding device according to the first exemplary embodiment
  • FIG. 11 is a diagram showing contents of a decoding process routine executed by the decoding device according to the first exemplary embodiment.
  • FIG. 12 is a block diagram showing an example of the configuration of a decoding device according to a second exemplary embodiment.
  • FIG. 1 is a schematic diagram showing an example of the configuration of the information transmission system according to the exemplary embodiment of the present invention.
  • an information transmission system 10 includes an encoding device 12 that transmits information, and a decoding device 14 that receives information.
  • the encoding device 12 and the decoding device 14 are connected through a transmission line 16 .
  • the transmission line 16 is a transmission line for transmitting serialized data from the encoding device 12 to the decoding device 14 .
  • FIG. 2 is a block diagram showing an example of the configuration of the encoding device.
  • the encoding device 12 includes a data reception unit 120 , a header and start-of-packet (SOP) generating unit 122 , a conversion unit 123 , and a transmission unit 130 .
  • the encoding device 12 is mounted by integrated circuits (ICs) such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or gate arrays.
  • ICs integrated circuits
  • FPGAs field programmable gate arrays
  • ASICs application specific integrated circuits
  • the functional units of the encoding device 12 may be implemented by a computer including a central processing unit (CPU), a random access memory (RAM), and a read only memory (ROM), and the functions of the functional units may be implemented by executing programs stored in the ROM by the CPU.
  • CPU central processing unit
  • RAM random access memory
  • ROM read only memory
  • the data reception unit 120 receives parallel data.
  • parallel data In the present exemplary embodiment, an example in which parallel data of 16 bits ⁇ n blocks is used will be described.
  • FIG. 3A depicts an example of the parallel data of 16 bits ⁇ n blocks.
  • the data reception unit 120 receives the parallel data of 16 bits ⁇ n blocks.
  • the header and start-of-packet (SOP) generating unit 122 obtains the parallel data received by the data reception unit 120 , generates a header and a start of packet from the obtained parallel data, and outputs the generated header and start of packet.
  • the header and start-of-packet (SOP) generating unit 122 outputs data (1 bit) indicating the type of the start of packet.
  • the conversion unit 123 obtains the parallel data received by the data reception unit 120 , and the header and the start of packet generated by the header and start-of-packet (SOP) generating unit 122 .
  • the conversion unit 123 encodes the data such that direct current (DC) balance is maintained, generates an error correcting code including redundant bits for calculating a syndrome of the encoded data, a parity check bit of the data, and dummy bits for maintaining the DC balance, and adds the generated error correcting code to the 8B10B converted data.
  • the conversion unit 123 includes an 8B10B conversion unit 124 , an error correcting code generating unit 126 , and a parallel-to-serial (P/S) conversion unit 128 .
  • the 8B10B conversion unit 124 obtains the parallel data received by the data reception unit 120 , and the header and the start of packet generated by the header and start-of-packet (SOP) generating unit 122 , and adds the header and the start of packet to the obtained parallel data.
  • the 8B10B conversion unit 124 obtains the data (1 bit) indicating the type of the start of packet output from the header and start-of-packet (SOP) generating unit 122 , and uses a conversion table of an 8B10B encoding method corresponding to the type of the start of packet. For example, a K28.1 code and a D28.6 code are used as the start of packet.
  • the 8B10B conversion unit 124 converts the number of bits by encoding the parallel data to which the header and the start of packet are added according to a predetermined encoding method.
  • the 8B10B conversion unit 124 converts information of 8 bits into information of 10 bits according to the 8B10B encoding method.
  • information of 8 bits is converted into information of 10 bits using a predetermined conversion table.
  • a converted pattern such as the number of “1”s and the number of “0”s are equally obtained on the converted data is selected.
  • data of 16 bits ⁇ n blocks is used as a target, data of 16 bits is converted into data of 20 bits, as shown in FIG. 3C .
  • the 8-bit code is converted into the 10-bit code such that the direct current (DC) balance is maintained.
  • the DC balance refers to a ratio between the number of “1”s and the number of “0”s.
  • the DC balance being maintained means that a ratio between the appearance frequency of “1” and the appearance frequency of “0” becomes a predetermined range, and for example, means that the ratio is uniform.
  • “0” is used as a first code
  • “1” is used as a second code.
  • the data of which DC balance is maintained is generated by arranging bits such that “1”s and “0”s are not continued in a predetermined number or more.
  • a running disparity when a running disparity of the last code is a plus in the data encoded by the 8B10B encoding method, a code having a minus running disparity is subsequently sent. In contrast, when the running disparity thereof is a minus, a code having a plus running disparity is subsequently sent.
  • Such a configuration is an example in which the number of “1”s and the number of “0”s are equally obtained. However, when the number of “1”s and the number of “0”s are the same, polarities of the running disparity are continued.
  • a code of 10 bits corresponding to 8-bit input data is individually defined as two states of the running disparity, that is, “plus” and “minus”.
  • the code of which a current running disparity is a minus is a code of which the number of “1”s is equal to the number of “0”s (having a neutral disparity) or of which the number of “1”s is greater than the number of “0”s (having a plus disparity).
  • the code of which a current running disparity is a plus is a code which has a neutral disparity or of which the number of “1”s is less than the number of “0”s (having a minus disparity).
  • the next running disparity becomes a plus, and thus, the plus disparity is not generated in at least the next output bit array.
  • the code having the neutral disparity is output, the next running disparity is maintained as a minus.
  • the next running disparity becomes a minus, and thus, the minus disparity is not generated in at least the next output bit array.
  • the code having the neutral disparity is output, the next running disparity is maintained as a plus.
  • the output bit array is controlled such that the number of “0”s and the number of “1”s are equal to each other or approximately equal to each other.
  • the error correcting code generating unit 126 generates an error correcting code (ECC) from the parallel data converted by the 8B10B conversion unit 124 .
  • ECC error correcting code
  • the error correcting code used in the present exemplary embodiment includes redundant bits for calculating a syndrome corresponding to an error position of the data, a parity check bit, and dummy bits for maintaining DC balance in a neutral state.
  • the error correcting code obtained by an extended Hamming code is used. One bit error is corrected, and an even-bit error is detected by using the parity check bit obtained by the extended Hamming code.
  • FIG. 4A shows an example of the error correcting code.
  • an error correcting code of 20 bits in total in which dummy bits for maintaining DC balance are added to 11 bits obtained by combining a 10 redundant bits for calculating syndromes (S 0 ) to (S 9 ) and a parity check bit PO is generated.
  • the conversion unit 123 adds the error correcting code of 20 bits generated by the error correcting code generating unit 126 to the parallel data of 20 bits converted by the 8B10B conversion unit 124 .
  • the parallel-to-serial (P/S) conversion unit 128 converts the parallel data to which the error correcting code has been added into a serial bit array.
  • the header of 20 bits and the error correcting code of 20 bits are added to data of 20 ⁇ n bits, parallel-to-serial conversion on the data of 20 ⁇ (n+2) bits are performed, and the converted data is transmitted as a packet by the transmission unit 130 to be described below.
  • the transmission unit 130 outputs the serial data converted by the parallel-to-serial (P/S) conversion unit 128 to the transmission line 16 .
  • An example of the data output by the transmission unit 130 is shown in FIG. 3D .
  • the transmission unit 130 transmits IDLE codes.
  • the IDLE codes are inserted into the sections both of before and after the packet. For example, a K28.5 code and a D0.0 code are used as the IDLE code.
  • FIG. 5 is a block diagram showing an example of the configuration of the decoding device.
  • the decoding device 14 includes a reception unit 140 , a serial-to-parallel (S/P) conversion unit 142 , a buffer 144 , a SOP detecting unit 146 , a detection unit 147 , a DC balance compensating data adding unit 152 , an 8B10B inverse conversion unit 154 , an 8B10B error count unit 158 , a determination unit 160 , an error output unit 162 , and a data output unit 164 .
  • S/P serial-to-parallel
  • the decoding device 14 is mounted by integrated circuits (ICs) such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or gate arrays.
  • ICs integrated circuits
  • FPGAs field programmable gate arrays
  • ASICs application specific integrated circuits
  • the functional units of the decoding device 14 may be implemented by a computer including a central processing unit (CPU), a random access memory (RAM), and a read only memory (ROM), and the functions of the functional units may be executed by executing programs stored in the ROM by the CPU.
  • CPU central processing unit
  • RAM random access memory
  • ROM read only memory
  • the reception unit 140 receives the serial data transmitted from the encoding device 12 through the transmission line 16 .
  • the serial data received by the reception unit 140 is data encoded such that the DC balance is maintained, and is data to which the error correcting code is appended.
  • the error correcting code includes redundant bits for calculating an error position of the data, a parity check bit of the data, and dummy data for maintaining the DC balance.
  • FIG. 6A shows an example of the serial data received by the reception unit 140 .
  • the serial-to-parallel (S/P) conversion unit 142 converts the serial data received by the reception unit 140 into parallel data.
  • the serial-to-parallel (S/P) conversion unit 142 stores the converted parallel data in the buffer 144 .
  • the parallel data converted by the serial-to-parallel (S/P) conversion unit 142 is stored in the buffer 144 .
  • the SOP detecting unit 146 detects a start of packet (SOP) from the parallel data converted by the serial-to-parallel (S/P) conversion unit 142 , and outputs data obtained by removing the start of packet (SOP) from the parallel data.
  • SOP start of packet
  • the detection unit 147 calculates a syndrome corresponding to the error position from the redundant bits included in the error correcting code appended to the parallel data output from the SOP detecting unit 146 .
  • the detection unit 147 detects that there are an even number of bit errors in the data.
  • “0” is used as a first predetermined value
  • “1” is used as a second predetermined value.
  • the detection unit 147 detects that there are an odd number of bit errors of 3 bits or more in the data.
  • the detection unit 147 includes an error correcting code calculating unit 148 , the error correcting unit 150 , and an inverse conversion error detecting unit 156 .
  • the error correcting code calculating unit 148 detects a bit error of the parallel data by using the error correcting code included in the parallel data output from the SOP detecting unit 146 shown in FIG. 6B . Specifically, the error correcting code calculating unit 148 calculates a syndrome corresponding to the error position from the redundant bits of the error correcting code included in the parallel data. The error correcting code calculating unit 148 detects one bit error or an even number of bit errors based on a combination of the calculated syndrome and the parity check bit included in the error correcting code.
  • the error correcting code calculating unit 148 detects an even number of bit errors of the parallel data, and outputs the detection result to the error output unit 162 .
  • the error correcting code calculating unit 148 detects an odd number of bit errors of the parallel data, and outputs the detection result to the error correcting unit 150 and the inverse conversion error detecting unit 156 .
  • the syndrome corresponding to the error position is expressed using an error pattern e as represented in the following expression.
  • S m e i ⁇ e j ⁇ e k ( i ⁇ j ⁇ k ) [Expression 1]
  • i, j, k, and m represent positions of bit errors.
  • a syndrome when three bit errors occur is a position m different from i, j and k, and erroneous error correction is performed by the error correcting unit 150 to be described below.
  • the error correcting unit 150 When the parity check bit is “1” based on the detection result output from the error correcting code calculating unit 148 , that is, when there are an odd number of bit errors, the error correcting unit 150 performs 1-bit error correction on data stored in the buffer 144 . Specifically, the error correcting unit 150 obtains the position of the error bit from the syndrome calculated by the error correcting code calculating unit 148 , and corrects a bit error corresponding to the position.
  • the DC balance compensating data adding unit 152 adds the dummy bits of which the DC balance is maintained instead of the error correcting code included in the parallel data stored in the buffer 144 .
  • the dummy bits are bits for compensating for the DC balance, and, for example, data of 20 bits having a mark ratio of 0.5 is added in the present exemplary embodiment.
  • the 8B10B inverse conversion unit 154 decodes the parallel data stored in the buffer 144 using a predetermined conversion table according to the 8B10B encoding method, and outputs the decoded data.
  • FIG. 6D the data of 20 bits is converted into the original data of 16 bits.
  • the 8B10B inverse conversion unit 154 outputs the decoded data of 16 bits to the data output unit 164 .
  • FIG. 6E An example of the data output from the 8B10B inverse conversion unit 154 is shown in FIG. 6E .
  • the 8B10B inverse conversion unit 154 When an 8B10B decoding error occurs, the 8B10B inverse conversion unit 154 outputs information indicating that the decoding error occurs to the inverse conversion error detecting unit 156 .
  • the value of the syndrome calculated by the error correcting code calculating unit 148 is not “0” and the value of the parity check bit is “1”, and also when the error occurs in the 8B10B decoding on the data on which the error correction is performed by the error correcting unit 150 , the 8B10B inverse conversion unit 154 detects that there are an odd number of bit errors of 3 bits or more in the data by using the predetermined conversion table and the running disparity.
  • the 8B10B decoding error includes an out-of-code error in which decoding target data to be decoded by the 8B10B inverse conversion unit 154 is not present in the predetermined conversion table, and a running disparity error indicating that a running disparity of the decoding target data to be decoded by the 8B10B inverse conversion unit 154 is against the rules.
  • the 8B10B decoding error due to the decoding process of the 8B10B inverse conversion unit 154 does not occur. Meanwhile, when the bit errors are odd bits of 3 bits or more, since the bit to be corrected by the error correcting unit 150 is incorrect, the 8B10B decoding error (including running disparity error) occurs by the 8B10B inverse conversion unit 154 .
  • FIGS. 7A and 7B are diagrams for describing the 8B10B decoding error occurring by the decoding process of the 8B10B inverse conversion unit 154 .
  • FIG. 7A shows the running disparities (RD) of the data output up to the present time from the 8B10B conversion unit 124 of the encoding device 12 , a bit pattern of data to be output next, and a mark ratio of the bit pattern.
  • FIG. 7B shows the bit pattern of the data transmitted from the encoding device 12 , the bit error occurring in the bit pattern, and the decoding error occurring by the decoding process due to the 8B10B inverse conversion unit 154 of the decoding device 14 .
  • the value between parentheses shown in FIG. 7B represents the number of “1”s when the data is, for example, 10 bits. “a” represents the out-of-code error, “b” represents the running disparity error, and “c” represents the running disparity error occurring in the subsequent data.
  • the bit array output according to the 8B10B encoding method is output as data corresponding to the bit pattern A or C.
  • the bit array output according to the 8B10B encoding method is output as data corresponding to the bit pattern B or D.
  • the bit pattern E of FIG. 7A is data having a mark ratio of 30% or less or 70% or more, and represents that there is no conversion table of the 8B10B encoding method.
  • bit patterns shown in FIG. 7A are transmitted from the encoding device 12 to the decoding device 14 , it is assumed that one bit error occurs as shown in FIG. 7B .
  • a bit pattern A( 5 ) is transmitted by the encoding device 12 , one bit error occurs in the bit pattern A( 5 ), and the decoding device 14 receives the bit pattern D( 6 ).
  • the 8B10B inverse conversion unit 154 of the decoding device 14 determines that the running disparity error occurs from the mark ratio of the bit pattern D( 6 ) and the current running disparity. When the data having a mark ratio of 60% (plus) is received despite the fact that the current running disparity is a plus, it is determined that the running disparity error occurs.
  • the bit pattern A( 5 ) is transmitted by the encoding device 12 , one bit error occurs in the bit pattern A( 5 ), and the decoding device 14 receives the bit pattern C( 4 ).
  • the decoding device 14 receives the bit pattern C( 4 ).
  • the running disparity is against the rules.
  • the 8B10B inverse conversion unit 154 of the decoding device 14 determines that the running disparity error occurs.
  • the bit pattern C( 4 ) is transmitted by the encoding device 12 , one bit error occurs in the bit pattern C( 4 ), and the decoding device 14 receives the bit pattern E( 3 ).
  • the inverse conversion error detecting unit 156 of the decoding device 14 detects the out-of-code error.
  • FIGS. 8A, 8B, 9A and 9B show examples of the bit error.
  • the inverse conversion error detecting unit 156 detects that three or more bit errors occur within a range of the packet.
  • the inverse conversion error detecting unit 156 outputs information indicating that three or more bit errors occur to the 8B10B error count unit 158 and the determination unit 160 .
  • the 8B10B error count unit 158 counts the number of decoding errors detected by the inverse conversion error detecting unit 156 .
  • the 8B10B error count unit 158 outputs the number of decoding errors. When the number of decoding errors is equal to or greater than a predetermined threshold, the information transmission system 10 stops transmitting and receiving data.
  • the determination unit 160 When the start of packet is detected by the SOP detecting unit 146 , the determination unit 160 outputs the detection result detected by the inverse conversion error detecting unit 156 to the error output unit 162 .
  • the error output unit 162 outputs the detection result of odd number of bit errors of 3 bits or more output from the determination unit 160 and the detection result of an even number of bit errors output from the error correcting code calculating unit 148 , as a result.
  • the data output unit 164 When there is no bit error, the data output unit 164 outputs the data of 16 bits output from the 8B10B inverse conversion unit 154 based on the detection results output from the error output unit 162 .
  • the operation of the information transmission system 10 is executed in the encoding device 12 and the decoding device 14 .
  • FIG. 10 is a flowchart showing an example of a procedure of an encoding process routine executed by the encoding device 12 .
  • the encoding device 12 executes the encoding process routine shown in FIG. 10 .
  • step S 100 the parallel data is received by the data reception unit 120 .
  • step S 102 the header and the start of packet are generated from the parallel data received in step S 100 by the header and start-of-packet (SOP) generating unit 122 .
  • SOP start-of-packet
  • step S 104 the header and the start of packet generated in step S 102 are added to the parallel data received in step S 100 by the 8B10B conversion unit 124 .
  • the bit number of the parallel data to which the header and the start of packet are added is converted by the 8B10B conversion unit 124 according to the 8B10B encoding method.
  • step S 106 the error correcting code is generated from the parallel data of which the bit number is converted in step S 104 by the error correcting code generating unit 126 .
  • step S 108 a packet is generated by adding the error correcting code generated in step S 106 to the parallel data of which the bit number is converted in step S 104 .
  • step S 110 the packet generated in step S 108 is converted into the serial data by the parallel-to-serial (P/S) conversion unit 128 .
  • P/S parallel-to-serial
  • step S 112 the serial data converted in step S 110 is output to the transmission line 16 by the transmission unit 130 , and the encoding process routine is ended.
  • FIG. 11 is a flowchart showing an example of a procedure of a decoding process routine executed by the decoding device 14 .
  • the decoding device 14 executes the decoding process routine shown in FIG. 11 .
  • step S 200 the serial data transmitted by the encoding device 12 through the transmission line 16 is received by the reception unit 140 .
  • step S 201 the serial data received in step S 200 is converted into the parallel data by the serial-to-parallel (S/P) conversion unit 142 .
  • step S 202 the parallel data converted in step S 201 is stored in the buffer 144 by the serial-to-parallel (S/P) conversion unit 142 .
  • step S 204 the start of packet (SOP) is detected from the parallel data converted in step S 201 by the SOP detecting unit 146 , and the parallel data obtained by removing the start of packet (SOP) from the parallel data is output.
  • step S 206 the syndrome is calculated from the redundant bits of the error correcting code included in the parallel data converted in step S 201 by the error correcting code calculating unit 148 .
  • step S 208 it is determined by the error correcting code calculating unit 148 whether or not the syndrome calculated in step S 206 is “0”. When the syndrome is “0”, the process proceeds to step S 216 . Meanwhile, when the syndrome is not “0”, the process proceeds to step S 210 .
  • step S 210 it is determined by the error correcting code calculating unit 148 whether or not the parity check bit of the error correcting code included in the parallel data converted in step S 201 is “0”. When the parity check bit is “0”, the process proceeds to step S 214 . Meanwhile, when the parity check bit is not “0”, the process proceeds to step S 212 .
  • step S 212 the 1-bit error correction is performed on the data stored in the buffer 144 in step S 202 by the error correcting unit 150 .
  • step S 214 an even number of bit errors are detected by the error correcting code calculating unit 148 .
  • step S 216 the dummy bit of which the DC balance is maintained instead of the error correcting code included in the parallel data stored in the buffer 144 is added by the DC balance compensating data adding unit 152 .
  • step S 218 the parallel data stored in the buffer 144 is decoded according to the 8B10B encoding method by the 8B10B inverse conversion unit 154 , and the decoded data is output.
  • step S 220 it is determined by the 8B10B inverse conversion unit 154 whether or not the decoding error occurs by the decoding in step S 218 by using the predetermined conversion table and the value of the running disparity.
  • the process proceeds to step S 222 .
  • the process proceeds to step S 224 .
  • step S 222 it is detected by the inverse conversion error detecting unit 156 that there are an odd number of bit errors of 3 bits or more in the data.
  • step S 223 the 8B10B error count unit 158 increases the count of decoding errors by one.
  • step S 224 the parallel data stored in the buffer 144 is output, and the decoding process routine is ended.
  • step S 226 an even number of bit errors detected in step S 214 or an odd number of bit errors of 3 bits or more detected in step S 222 are output as results, and the decoding process routine is ended.
  • the decoding device 14 includes the error correcting unit 150 and the error correcting unit 150 performs the 1-bit error correction on the data stored in the buffer 144 when there are an odd number of bit errors in the data.
  • the 1-bit error correction is not performed.
  • the same configurations as those of the decoding device 14 of the first exemplary embodiment will be assigned the same reference numerals as those of the first exemplary embodiment, and the description thereof will be omitted.
  • FIG. 12 is a block diagram showing an example of the configuration of a decoding device 214 according to the second exemplary embodiment.
  • the decoding device 214 includes the reception unit 140 , the serial-to-parallel (S/P) conversion unit 142 , the buffer 144 , the SOP detecting unit 146 , a detection unit 247 , the DC balance compensating data adding unit 152 , the 8B10B inverse conversion unit 154 , the 8B10B error count unit 158 , the determination unit 160 , the error output unit 162 , and the data output unit 164 .
  • S/P serial-to-parallel
  • the detection unit 247 detects that there are an odd number of bit errors in the data.
  • the 1-bit error correction since the 1-bit error correction is not performed on the data, it is detected that there are an odd number of bit errors of 1 bit or more in the data.
  • the configuration of the information transmission system described in the exemplary embodiments is only an example, and the configuration thereof may be changed without departing from the gist of the present invention.
  • the information transmission system includes the encoding device and the decoding device, but an information transmission system in which devices including both of an encoding unit and a decoding unit are provided and serial transmission is performed between devices may be used.
  • the number of bits may be converted by a 10B12B conversion method in which a difference between the number of “1”s and the number of “0”s is +2/0/ ⁇ 2.
  • the present invention may be provided by a communication unit, and may also be provided while being stored in a recoding medium such as a CDROM.

Abstract

Provided is a decoding device including a reception unit that receives data of which the number of bits is converted and encoded such that a ratio between appearance frequency of a first code and appearance frequency of a second code is a predetermined range, and to which an error correcting code including redundant bits for calculating an error position of the data and a parity check bit of the data is appended, and a detection unit that detects that there are an odd number of bit errors in the data when a value of a syndrome corresponding to an error position is a first predetermined value and an error occurs in the decoding, or when the value of the syndrome is not the first value and a value of the parity check bit is a second predetermined value and an error occurs in the decoding on the data.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2014-265490 filed, Dec. 26, 2014.
BACKGROUND Technical Field
The present invention relates to a decoding device, an information transmission system, and a non-transitory computer readable medium.
SUMMARY
According to an aspect of the invention, there is provided a decoding device including:
a reception unit that receives data of which the number of bits is converted and encoded such that a ratio between appearance frequency of a first code and appearance frequency of a second code is a predetermined range, and to which an error correcting code including redundant bits for calculating an error position of the encoded data and a parity check bit of the encoded data is appended; and
a detection unit that detects that there are an odd number of bit errors in the data when a value of a syndrome corresponding to an error position calculated based on the redundant bits included in the error correcting code appended to the encoded data received by the reception unit is a first predetermined value and an error occurs in the decoding on the encoded data, or when the value of the syndrome is not the first value and a value of the parity check bit is a second predetermined value and an error occurs in the decoding on the encoded data.
BRIEF DESCRIPTION OF THE DRAWINGS
Exemplary embodiments of the present invention will be described in detail based on the following figures, wherein:
FIG. 1 is a schematic view showing an example of the configuration of an information transmission system according to a first exemplary embodiment of the present invention;
FIG. 2 is a block diagram showing an example of the configuration of an encoding device according to the first exemplary embodiment;
FIGS. 3A to 3E are diagrams for describing the operation of the encoding device;
FIG. 4A is a diagram showing an example of an error correcting code, and FIG. 4B is a diagram showing an example of data to be transmitted;
FIG. 5 is a block diagram showing an example of the configuration of a decoding device according to the first exemplary embodiment;
FIGS. 6A to 6E are diagrams for describing the operation of the decoding device;
FIGS. 7A and 7B are diagrams for describing the operation of decoding error detection;
FIG. 8A is a diagram for describing the operation of 1-bit error correction, and FIG. 8B is a diagram for describing the operation of 2-bit error detection;
FIGS. 9A and 9B are diagrams for describing the operation of 3-bit error detection;
FIG. 10 is a diagram showing contents of an encoding process routine executed by the encoding device according to the first exemplary embodiment;
FIG. 11 is a diagram showing contents of a decoding process routine executed by the decoding device according to the first exemplary embodiment; and
FIG. 12 is a block diagram showing an example of the configuration of a decoding device according to a second exemplary embodiment.
DETAILED DESCRIPTION
Hereinafter, exemplary embodiments of the present invention will be described with reference to the drawings. In the following description, a case where the exemplary embodiment of the present invention is applied to an information transmission system that transmits and receives information through serial transmission between two devices will be described.
<Information Transmission System>
A schematic configuration of an information transmission system according to the exemplary embodiment of the present invention will be described. FIG. 1 is a schematic diagram showing an example of the configuration of the information transmission system according to the exemplary embodiment of the present invention. As shown in FIG. 1, an information transmission system 10 includes an encoding device 12 that transmits information, and a decoding device 14 that receives information.
The encoding device 12 and the decoding device 14 are connected through a transmission line 16. The transmission line 16 is a transmission line for transmitting serialized data from the encoding device 12 to the decoding device 14.
(Encoding Device)
Next, the configuration of the encoding device 12 will be described. FIG. 2 is a block diagram showing an example of the configuration of the encoding device. As shown in FIG. 2, the encoding device 12 includes a data reception unit 120, a header and start-of-packet (SOP) generating unit 122, a conversion unit 123, and a transmission unit 130. The encoding device 12 is mounted by integrated circuits (ICs) such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or gate arrays. The functional units of the encoding device 12 may be implemented by a computer including a central processing unit (CPU), a random access memory (RAM), and a read only memory (ROM), and the functions of the functional units may be implemented by executing programs stored in the ROM by the CPU.
The data reception unit 120 receives parallel data. In the present exemplary embodiment, an example in which parallel data of 16 bits×n blocks is used will be described. FIG. 3A depicts an example of the parallel data of 16 bits×n blocks. The data reception unit 120 receives the parallel data of 16 bits×n blocks.
The header and start-of-packet (SOP) generating unit 122 obtains the parallel data received by the data reception unit 120, generates a header and a start of packet from the obtained parallel data, and outputs the generated header and start of packet. The header and start-of-packet (SOP) generating unit 122 outputs data (1 bit) indicating the type of the start of packet.
The conversion unit 123 obtains the parallel data received by the data reception unit 120, and the header and the start of packet generated by the header and start-of-packet (SOP) generating unit 122. The conversion unit 123 encodes the data such that direct current (DC) balance is maintained, generates an error correcting code including redundant bits for calculating a syndrome of the encoded data, a parity check bit of the data, and dummy bits for maintaining the DC balance, and adds the generated error correcting code to the 8B10B converted data. The conversion unit 123 includes an 8B10B conversion unit 124, an error correcting code generating unit 126, and a parallel-to-serial (P/S) conversion unit 128.
The 8B10B conversion unit 124 obtains the parallel data received by the data reception unit 120, and the header and the start of packet generated by the header and start-of-packet (SOP) generating unit 122, and adds the header and the start of packet to the obtained parallel data. The 8B10B conversion unit 124 obtains the data (1 bit) indicating the type of the start of packet output from the header and start-of-packet (SOP) generating unit 122, and uses a conversion table of an 8B10B encoding method corresponding to the type of the start of packet. For example, a K28.1 code and a D28.6 code are used as the start of packet.
As shown in FIG. 3C, the 8B10B conversion unit 124 converts the number of bits by encoding the parallel data to which the header and the start of packet are added according to a predetermined encoding method. In the present exemplary embodiment, an example in which the number of bits is converted by the 8B10B encoding method will be described. Specifically, the 8B10B conversion unit 124 converts information of 8 bits into information of 10 bits according to the 8B10B encoding method. In the 8B10B encoding method, information of 8 bits is converted into information of 10 bits using a predetermined conversion table. In the 8B10B encoding method, a converted pattern such as the number of “1”s and the number of “0”s are equally obtained on the converted data is selected. In the present exemplary embodiment, since the data of 16 bits×n blocks is used as a target, data of 16 bits is converted into data of 20 bits, as shown in FIG. 3C.
In the 8B10B encoding method, the 8-bit code is converted into the 10-bit code such that the direct current (DC) balance is maintained. The DC balance refers to a ratio between the number of “1”s and the number of “0”s. The DC balance being maintained means that a ratio between the appearance frequency of “1” and the appearance frequency of “0” becomes a predetermined range, and for example, means that the ratio is uniform. In the present exemplary embodiment, “0” is used as a first code, and “1” is used as a second code. For example, when the data is viewed in a transmission direction, the data of which DC balance is maintained is generated by arranging bits such that “1”s and “0”s are not continued in a predetermined number or more.
With regard to a running disparity, when a running disparity of the last code is a plus in the data encoded by the 8B10B encoding method, a code having a minus running disparity is subsequently sent. In contrast, when the running disparity thereof is a minus, a code having a plus running disparity is subsequently sent. Such a configuration is an example in which the number of “1”s and the number of “0”s are equally obtained. However, when the number of “1”s and the number of “0”s are the same, polarities of the running disparity are continued.
In the 8B10B encoding method, a code of 10 bits corresponding to 8-bit input data is individually defined as two states of the running disparity, that is, “plus” and “minus”.
The code of which a current running disparity is a minus is a code of which the number of “1”s is equal to the number of “0”s (having a neutral disparity) or of which the number of “1”s is greater than the number of “0”s (having a plus disparity). Meanwhile, the code of which a current running disparity is a plus is a code which has a neutral disparity or of which the number of “1”s is less than the number of “0”s (having a minus disparity).
For example, when the code of which a current running disparity is a minus and having the plus disparity is output, the next running disparity becomes a plus, and thus, the plus disparity is not generated in at least the next output bit array. When the code having the neutral disparity is output, the next running disparity is maintained as a minus.
When the code of which a current running disparity is a plus and having the minus disparity is output, the next running disparity becomes a minus, and thus, the minus disparity is not generated in at least the next output bit array. When the code having the neutral disparity is output, the next running disparity is maintained as a plus.
As mentioned above, in the 8B10B encoding method, by using an encoding rule that selects whether an output bit is correlated to a minus disparity or a plus disparity depending on the value of the last RD, the output bit array is controlled such that the number of “0”s and the number of “1”s are equal to each other or approximately equal to each other.
The error correcting code generating unit 126 generates an error correcting code (ECC) from the parallel data converted by the 8B10B conversion unit 124. The error correcting code used in the present exemplary embodiment includes redundant bits for calculating a syndrome corresponding to an error position of the data, a parity check bit, and dummy bits for maintaining DC balance in a neutral state. In the present exemplary embodiment, the error correcting code obtained by an extended Hamming code is used. One bit error is corrected, and an even-bit error is detected by using the parity check bit obtained by the extended Hamming code.
FIG. 4A shows an example of the error correcting code. As shown in FIG. 4A, in the present exemplary embodiment, an error correcting code of 20 bits in total in which dummy bits for maintaining DC balance are added to 11 bits obtained by combining a 10 redundant bits for calculating syndromes (S0) to (S9) and a parity check bit PO is generated.
As shown in FIG. 3D, the conversion unit 123 adds the error correcting code of 20 bits generated by the error correcting code generating unit 126 to the parallel data of 20 bits converted by the 8B10B conversion unit 124. The parallel-to-serial (P/S) conversion unit 128 converts the parallel data to which the error correcting code has been added into a serial bit array. In the present exemplary embodiment, the header of 20 bits and the error correcting code of 20 bits are added to data of 20×n bits, parallel-to-serial conversion on the data of 20×(n+2) bits are performed, and the converted data is transmitted as a packet by the transmission unit 130 to be described below.
The transmission unit 130 outputs the serial data converted by the parallel-to-serial (P/S) conversion unit 128 to the transmission line 16. An example of the data output by the transmission unit 130 is shown in FIG. 3D. As shown in FIG. 4B, when the packet is not transmitted, the transmission unit 130 transmits IDLE codes. The IDLE codes are inserted into the sections both of before and after the packet. For example, a K28.5 code and a D0.0 code are used as the IDLE code.
(Decoding Device)
Next, the configuration of the decoding device 14 will be described. FIG. 5 is a block diagram showing an example of the configuration of the decoding device. As shown in FIG. 5, the decoding device 14 includes a reception unit 140, a serial-to-parallel (S/P) conversion unit 142, a buffer 144, a SOP detecting unit 146, a detection unit 147, a DC balance compensating data adding unit 152, an 8B10B inverse conversion unit 154, an 8B10B error count unit 158, a determination unit 160, an error output unit 162, and a data output unit 164. The decoding device 14 is mounted by integrated circuits (ICs) such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or gate arrays. The functional units of the decoding device 14 may be implemented by a computer including a central processing unit (CPU), a random access memory (RAM), and a read only memory (ROM), and the functions of the functional units may be executed by executing programs stored in the ROM by the CPU.
The reception unit 140 receives the serial data transmitted from the encoding device 12 through the transmission line 16. The serial data received by the reception unit 140 is data encoded such that the DC balance is maintained, and is data to which the error correcting code is appended. The error correcting code includes redundant bits for calculating an error position of the data, a parity check bit of the data, and dummy data for maintaining the DC balance. FIG. 6A shows an example of the serial data received by the reception unit 140.
The serial-to-parallel (S/P) conversion unit 142 converts the serial data received by the reception unit 140 into parallel data. The serial-to-parallel (S/P) conversion unit 142 stores the converted parallel data in the buffer 144.
The parallel data converted by the serial-to-parallel (S/P) conversion unit 142 is stored in the buffer 144.
The SOP detecting unit 146 detects a start of packet (SOP) from the parallel data converted by the serial-to-parallel (S/P) conversion unit 142, and outputs data obtained by removing the start of packet (SOP) from the parallel data.
The detection unit 147 calculates a syndrome corresponding to the error position from the redundant bits included in the error correcting code appended to the parallel data output from the SOP detecting unit 146.
When the value of the syndrome is not “0” and the value of the parity check bit is “0”, the detection unit 147 detects that there are an even number of bit errors in the data. In the present exemplary embodiment, “0” is used as a first predetermined value, and “1” is used as a second predetermined value.
When the value of the syndrome is not “0” and the value of the parity check bit is “1”, and also when an error occurs during the 8B10B decoding on the data in which the bit error correction in accordance with the value of the syndrome has been performed by an error correcting unit 150 to be described below, the detection unit 147 detects that there are an odd number of bit errors of 3 bits or more in the data.
The detection unit 147 includes an error correcting code calculating unit 148, the error correcting unit 150, and an inverse conversion error detecting unit 156.
The error correcting code calculating unit 148 detects a bit error of the parallel data by using the error correcting code included in the parallel data output from the SOP detecting unit 146 shown in FIG. 6B. Specifically, the error correcting code calculating unit 148 calculates a syndrome corresponding to the error position from the redundant bits of the error correcting code included in the parallel data. The error correcting code calculating unit 148 detects one bit error or an even number of bit errors based on a combination of the calculated syndrome and the parity check bit included in the error correcting code.
More specifically, when the calculated syndrome is not “0” and the parity check bit included in the error correcting code is “0”, the error correcting code calculating unit 148 detects an even number of bit errors of the parallel data, and outputs the detection result to the error output unit 162. When the calculated syndrome is not “0” and the parity check bit included in the error correcting code is “1”, the error correcting code calculating unit 148 detects an odd number of bit errors of the parallel data, and outputs the detection result to the error correcting unit 150 and the inverse conversion error detecting unit 156.
Even when the value of the syndrome calculated by the error correcting code calculating unit 148 is “0”, there are three bit errors. Thus, in the present exemplary embodiment, three bit errors are detected by checking a decoding error occurring by the 8B10B inverse conversion unit 154 to be described below.
The syndrome corresponding to the error position is expressed using an error pattern e as represented in the following expression.
S m =e i ⊕e j ⊕e k (i≠j≠k)  [Expression 1]
Where, i, j, k, and m represent positions of bit errors. As represented in this expression, when i, j, and k are different from each other in the expression, a syndrome when three bit errors occur is a position m different from i, j and k, and erroneous error correction is performed by the error correcting unit 150 to be described below.
For example, if an error pattern ei=“010000” (a 16th bit is an error bit), ej=“100000” (a 32nd bit is an error bit), and ek=“110000” (a 48th bit is an error bit), when the syndrome is calculated based on the expression, a syndrome Sm=“000000”. Thus, it is determined that there is no bit error despite the fact that there is a bit error. In the present exemplary embodiment, three bit errors are detected by checking the 8B10B decoding error occurring by the 8B10B inverse conversion unit 154 to be described below.
When the parity check bit is “1” based on the detection result output from the error correcting code calculating unit 148, that is, when there are an odd number of bit errors, the error correcting unit 150 performs 1-bit error correction on data stored in the buffer 144. Specifically, the error correcting unit 150 obtains the position of the error bit from the syndrome calculated by the error correcting code calculating unit 148, and corrects a bit error corresponding to the position.
As shown in FIG. 6C, the DC balance compensating data adding unit 152 adds the dummy bits of which the DC balance is maintained instead of the error correcting code included in the parallel data stored in the buffer 144. The dummy bits are bits for compensating for the DC balance, and, for example, data of 20 bits having a mark ratio of 0.5 is added in the present exemplary embodiment.
The 8B10B inverse conversion unit 154 decodes the parallel data stored in the buffer 144 using a predetermined conversion table according to the 8B10B encoding method, and outputs the decoded data. Thus, as shown in FIG. 6D, the data of 20 bits is converted into the original data of 16 bits. The 8B10B inverse conversion unit 154 outputs the decoded data of 16 bits to the data output unit 164. An example of the data output from the 8B10B inverse conversion unit 154 is shown in FIG. 6E.
When an 8B10B decoding error occurs, the 8B10B inverse conversion unit 154 outputs information indicating that the decoding error occurs to the inverse conversion error detecting unit 156. When the value of the syndrome calculated by the error correcting code calculating unit 148 is not “0” and the value of the parity check bit is “1”, and also when the error occurs in the 8B10B decoding on the data on which the error correction is performed by the error correcting unit 150, the 8B10B inverse conversion unit 154 detects that there are an odd number of bit errors of 3 bits or more in the data by using the predetermined conversion table and the running disparity.
The 8B10B decoding error includes an out-of-code error in which decoding target data to be decoded by the 8B10B inverse conversion unit 154 is not present in the predetermined conversion table, and a running disparity error indicating that a running disparity of the decoding target data to be decoded by the 8B10B inverse conversion unit 154 is against the rules.
When the bit error is 1 bit, since the error bit is correctly corrected by the error correcting unit 150, the 8B10B decoding error due to the decoding process of the 8B10B inverse conversion unit 154 does not occur. Meanwhile, when the bit errors are odd bits of 3 bits or more, since the bit to be corrected by the error correcting unit 150 is incorrect, the 8B10B decoding error (including running disparity error) occurs by the 8B10B inverse conversion unit 154.
FIGS. 7A and 7B are diagrams for describing the 8B10B decoding error occurring by the decoding process of the 8B10B inverse conversion unit 154. FIG. 7A shows the running disparities (RD) of the data output up to the present time from the 8B10B conversion unit 124 of the encoding device 12, a bit pattern of data to be output next, and a mark ratio of the bit pattern. FIG. 7B shows the bit pattern of the data transmitted from the encoding device 12, the bit error occurring in the bit pattern, and the decoding error occurring by the decoding process due to the 8B10B inverse conversion unit 154 of the decoding device 14. The value between parentheses shown in FIG. 7B represents the number of “1”s when the data is, for example, 10 bits. “a” represents the out-of-code error, “b” represents the running disparity error, and “c” represents the running disparity error occurring in the subsequent data.
As shown in FIG. 7A, when the running disparity is, for example, a “plus”, the bit array output according to the 8B10B encoding method is output as data corresponding to the bit pattern A or C. Meanwhile, when the running disparity is a “minus”, the bit array output according to the 8B10B encoding method is output as data corresponding to the bit pattern B or D. The bit pattern E of FIG. 7A is data having a mark ratio of 30% or less or 70% or more, and represents that there is no conversion table of the 8B10B encoding method.
When the bit patterns shown in FIG. 7A are transmitted from the encoding device 12 to the decoding device 14, it is assumed that one bit error occurs as shown in FIG. 7B. For example, a bit pattern A(5) is transmitted by the encoding device 12, one bit error occurs in the bit pattern A(5), and the decoding device 14 receives the bit pattern D(6). The 8B10B inverse conversion unit 154 of the decoding device 14 determines that the running disparity error occurs from the mark ratio of the bit pattern D(6) and the current running disparity. When the data having a mark ratio of 60% (plus) is received despite the fact that the current running disparity is a plus, it is determined that the running disparity error occurs.
For example, the bit pattern A(5) is transmitted by the encoding device 12, one bit error occurs in the bit pattern A(5), and the decoding device 14 receives the bit pattern C(4). In this case, when the subsequent data transmitted from the encoding device 12 is received, the running disparity is against the rules. The 8B10B inverse conversion unit 154 of the decoding device 14 determines that the running disparity error occurs.
For example, the bit pattern C(4) is transmitted by the encoding device 12, one bit error occurs in the bit pattern C(4), and the decoding device 14 receives the bit pattern E(3). In this case, since the bit pattern E(3) of FIG. 7A is not present in the conversion table, the inverse conversion error detecting unit 156 of the decoding device 14 detects the out-of-code error.
Here, the type of bit errors will be described. FIGS. 8A, 8B, 9A and 9B show examples of the bit error.
As shown in FIG. 8A, when one bit error occurs in an i-th block within the data, since the value of the syndrome calculated by the error correcting code calculating unit 148 is not “0” and the parity check bit is “1”, the error position is detected depending on the value of the syndrome, and one bit error is corrected by the error correcting unit 150.
As shown in FIG. 8B, when two bit errors including one bit error occurring in the #1-st block within the data and one bit error occurring in the #i-th block occur in total, since the value of the syndrome calculated by the error correcting code calculating unit 148 is not “0” and the parity check bit is “0”, two bit errors are detected.
As shown in FIG. 9A, when three bit errors including one bit error occurring in a #0-th block within the data, one bit error occurring in the #1-st block and one bit error occurring in the #i-th block occur in total, and also when the value of the syndrome calculated by the error correcting code calculating unit 148 is not “0” and the parity check bit is “1”, the error correction in accordance with the value of the syndrome is performed by the error correcting unit 150. However, when the three bit errors occur, when the error correction in accordance with the value of the syndrome calculated by the error correcting code calculating unit 148 is performed, the bit corresponding to a position different from the error position of an actual bit is incorrectly corrected. When the decoding process is performed by the 8B10B inverse conversion unit 154, if there is one bit error for every 10 bits as shown in FIG. 9A, the running disparity error is detected.
As shown in FIG. 9B, when three bit errors including one bit error occurring in the #1-st block within the data, one bit error occurring in the #i-th block, and one bit error occurring in the #j-th block occur in total, and also when the value of the syndrome calculated by the error correcting code calculating unit 148 is “0” and the parity check bit is “1”, if there is one bit error for every 10 bits, the running disparity error is detected by the decoding process of the 8B10B inverse conversion unit 154.
When an even number of bit errors of 4 bits or more occur, and also when the value of the syndrome calculated by the error correcting code calculating unit 148 is not “0” and the parity check bit is “0”, an even number of bit errors are detected.
When an even number of bit errors of 4 bits or more occur, and when the value of the syndrome calculated by the error correcting code calculating unit 148 is “0” and the parity check bit is “0”, if there is one bit error for every 10 bits, the running disparity error is detected by the decoding process of the 8B10B inverse conversion unit 154.
When an odd number of bit errors of 5 bits or more occur, and also when the value of the syndrome calculated by the error correcting code calculating unit 148 is not“0” and the parity check bit is “1”, if erroneous correction is performed by the error correcting unit 150 and there is one bit error for every 10 bits, the running disparity error is detected by the decoding process of the 8B10B inverse conversion unit 154.
When an odd number of bit errors of 5 bits or more occur, and also when the value of the syndrome calculated by the error correcting code calculating unit 148 is “0” and the parity check bit is “1”, if there is one bit error for every 10 bits, the running disparity error is detected by the decoding process of the 8B10B inverse conversion unit 154.
When the 8B10B decoding error is output from the 8B10B inverse conversion unit 154, the inverse conversion error detecting unit 156 detects that three or more bit errors occur within a range of the packet. The inverse conversion error detecting unit 156 outputs information indicating that three or more bit errors occur to the 8B10B error count unit 158 and the determination unit 160.
The 8B10B error count unit 158 counts the number of decoding errors detected by the inverse conversion error detecting unit 156. The 8B10B error count unit 158 outputs the number of decoding errors. When the number of decoding errors is equal to or greater than a predetermined threshold, the information transmission system 10 stops transmitting and receiving data.
When the start of packet is detected by the SOP detecting unit 146, the determination unit 160 outputs the detection result detected by the inverse conversion error detecting unit 156 to the error output unit 162.
The error output unit 162 outputs the detection result of odd number of bit errors of 3 bits or more output from the determination unit 160 and the detection result of an even number of bit errors output from the error correcting code calculating unit 148, as a result.
When there is no bit error, the data output unit 164 outputs the data of 16 bits output from the 8B10B inverse conversion unit 154 based on the detection results output from the error output unit 162.
<Operation of Information Transmission System>
Next, the operation of the information transmission system 10 will be described. As described above, the operation of the information transmission system 10 is executed in the encoding device 12 and the decoding device 14.
<Process Performed by Encoding Device>
A process executed by the encoding device 12 will be first described.
FIG. 10 is a flowchart showing an example of a procedure of an encoding process routine executed by the encoding device 12. When the parallel data to be encoded is input, the encoding device 12 executes the encoding process routine shown in FIG. 10.
In step S100, the parallel data is received by the data reception unit 120.
In step S102, the header and the start of packet are generated from the parallel data received in step S100 by the header and start-of-packet (SOP) generating unit 122.
In step S104, the header and the start of packet generated in step S102 are added to the parallel data received in step S100 by the 8B10B conversion unit 124. The bit number of the parallel data to which the header and the start of packet are added is converted by the 8B10B conversion unit 124 according to the 8B10B encoding method.
In step S106, the error correcting code is generated from the parallel data of which the bit number is converted in step S104 by the error correcting code generating unit 126.
In step S108, a packet is generated by adding the error correcting code generated in step S106 to the parallel data of which the bit number is converted in step S104.
In step S110, the packet generated in step S108 is converted into the serial data by the parallel-to-serial (P/S) conversion unit 128.
In step S112, the serial data converted in step S110 is output to the transmission line 16 by the transmission unit 130, and the encoding process routine is ended.
<Process Performed by Decoding Device>
Next, the process executed by the decoding device 14 will be described.
FIG. 11 is a flowchart showing an example of a procedure of a decoding process routine executed by the decoding device 14. When data to be decoded is received, the decoding device 14 executes the decoding process routine shown in FIG. 11.
In step S200, the serial data transmitted by the encoding device 12 through the transmission line 16 is received by the reception unit 140.
In step S201, the serial data received in step S200 is converted into the parallel data by the serial-to-parallel (S/P) conversion unit 142.
In step S202, the parallel data converted in step S201 is stored in the buffer 144 by the serial-to-parallel (S/P) conversion unit 142.
In step S204, the start of packet (SOP) is detected from the parallel data converted in step S201 by the SOP detecting unit 146, and the parallel data obtained by removing the start of packet (SOP) from the parallel data is output.
In step S206, the syndrome is calculated from the redundant bits of the error correcting code included in the parallel data converted in step S201 by the error correcting code calculating unit 148.
In step S208, it is determined by the error correcting code calculating unit 148 whether or not the syndrome calculated in step S206 is “0”. When the syndrome is “0”, the process proceeds to step S216. Meanwhile, when the syndrome is not “0”, the process proceeds to step S210.
In step S210, it is determined by the error correcting code calculating unit 148 whether or not the parity check bit of the error correcting code included in the parallel data converted in step S201 is “0”. When the parity check bit is “0”, the process proceeds to step S214. Meanwhile, when the parity check bit is not “0”, the process proceeds to step S212.
In step S212, the 1-bit error correction is performed on the data stored in the buffer 144 in step S202 by the error correcting unit 150.
In step S214, an even number of bit errors are detected by the error correcting code calculating unit 148.
In step S216, the dummy bit of which the DC balance is maintained instead of the error correcting code included in the parallel data stored in the buffer 144 is added by the DC balance compensating data adding unit 152.
In step S218, the parallel data stored in the buffer 144 is decoded according to the 8B10B encoding method by the 8B10B inverse conversion unit 154, and the decoded data is output.
In step S220, it is determined by the 8B10B inverse conversion unit 154 whether or not the decoding error occurs by the decoding in step S218 by using the predetermined conversion table and the value of the running disparity. When the 8B10B decoding error occurs, the process proceeds to step S222. Meanwhile, when the 8B10B decoding error does not occur, the process proceeds to step S224.
In step S222, it is detected by the inverse conversion error detecting unit 156 that there are an odd number of bit errors of 3 bits or more in the data.
In step S223, the 8B10B error count unit 158 increases the count of decoding errors by one.
In step S224, the parallel data stored in the buffer 144 is output, and the decoding process routine is ended.
In step S226, an even number of bit errors detected in step S214 or an odd number of bit errors of 3 bits or more detected in step S222 are output as results, and the decoding process routine is ended.
Second Exemplary Embodiment
Although it has been described in the first exemplary embodiment that when the decoding device 14 includes the error correcting unit 150 and the error correcting unit 150 performs the 1-bit error correction on the data stored in the buffer 144 when there are an odd number of bit errors in the data. In contrast, it will be described in the second exemplary embodiment that even when there are an odd number of bit errors in the data, the 1-bit error correction is not performed. The same configurations as those of the decoding device 14 of the first exemplary embodiment will be assigned the same reference numerals as those of the first exemplary embodiment, and the description thereof will be omitted.
FIG. 12 is a block diagram showing an example of the configuration of a decoding device 214 according to the second exemplary embodiment. As shown in FIG. 12, the decoding device 214 includes the reception unit 140, the serial-to-parallel (S/P) conversion unit 142, the buffer 144, the SOP detecting unit 146, a detection unit 247, the DC balance compensating data adding unit 152, the 8B10B inverse conversion unit 154, the 8B10B error count unit 158, the determination unit 160, the error output unit 162, and the data output unit 164.
When the value of the syndrome is not “0” and the parity check bit is “1”, and also when the error occurs in the 8B10B decoding on the data by the 8B10B inverse conversion unit 154, the detection unit 247 detects that there are an odd number of bit errors in the data.
In the second exemplary embodiment, since the 1-bit error correction is not performed on the data, it is detected that there are an odd number of bit errors of 1 bit or more in the data.
It should be apparent that the configuration of the information transmission system described in the exemplary embodiments is only an example, and the configuration thereof may be changed without departing from the gist of the present invention. For example, it has been described that the information transmission system includes the encoding device and the decoding device, but an information transmission system in which devices including both of an encoding unit and a decoding unit are provided and serial transmission is performed between devices may be used. In addition to the 8B10B conversion method, the number of bits may be converted by a 10B12B conversion method in which a difference between the number of “1”s and the number of “0”s is +2/0/−2. In the 10B12B conversion method, when the running disparity is a plus, a code of which a difference between the number of “1”s and the number of “0” is −2 is output, when the running disparity is a minus, a code of which the difference between the number of “1”s and the number of “0”s is +2 is output, and when the polarity of the running disparity is changed and a code of which the difference between the number of “1”s and the number of “0”s is “0” is output, the running disparity is not changed.
The present invention may be provided by a communication unit, and may also be provided while being stored in a recoding medium such as a CDROM.
The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.

Claims (6)

What is claimed is:
1. A decoding device comprising:
a reception unit that receives data,
wherein the number of bits of the data is converted and encoded such that a ratio is within a predetermined range, the ratio being between:
(i) appearance frequency of a first code and
(ii) appearance frequency of a second code, and
wherein the data includes an error correcting code that includes:
(i) redundant bits for calculating an error position of the encoded data, and
(ii) a parity check bit of the encoded data; and
a detection unit that detects that there are an odd number of bit errors in the data when one of two situations exists:
(1) a first situation requiring:
(i) a value of a syndrome is a first predetermined value, the value of the syndrome corresponding to an error position calculated based on the redundant bits included in the error correcting code, and
(ii) an error occurs during the decoding of the encoded data, or
(2) a second situation requiring:
(i) the value of the syndrome is not the first predetermined value,
(ii) a value of the parity check bit is a second predetermined value, and
(iii) an error occurs during the decoding of the encoded data.
2. The decoding device according to claim 1,
wherein when the value of the syndrome is not the first predetermined value and the value of the parity check bit is not the second predetermined value, the detection unit detects that there are an even number of bit errors in the data.
3. The decoding device according to claim 1,
wherein when the value of the syndrome is not the first predetermined value, the value of the parity check bit is the second predetermined value, and an error occurs in the decoding on the encoded data on which the error correction using the syndrome is performed, the detection unit detects that there are an odd number of bit errors of 3 bits or more in the data.
4. The decoding device according to claim 2,
wherein when the value of the syndrome is not the first predetermined value, the value of the parity check bit is the second predetermined value, and an error occurs in the decoding on the encoded data on which the error correction using the syndrome is performed, the detection unit detects that there are an odd number of bit errors of 3 bits or more in the data.
5. An information transmission system comprising:
an encoding device that includes a conversion unit which converts and encodes the number of bits of data to be maintained such that a ratio between appearance frequency of a first code and appearance frequency of a second code is a predetermined range, generates an error correcting code including redundant bits for calculating an error position of the data and the parity check bit of the data, and adds the generated error correcting code to the encoded data, and a transmission unit which transmits the data obtained by the conversion unit; and
the decoding device according to claim 1.
6. A non-transitory computer readable medium storing a program causing a computer to function as the respective units constituting the decoding device according to claim 1.
US14/689,850 2014-12-26 2015-04-17 Decoding device, information transmission system, and non-transitory computer readable medium Active 2035-05-14 US9634799B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014265490A JP6417937B2 (en) 2014-12-26 2014-12-26 Decoding device, program, and information transmission system
JP2014-265490 2014-12-26

Publications (2)

Publication Number Publication Date
US20160191205A1 US20160191205A1 (en) 2016-06-30
US9634799B2 true US9634799B2 (en) 2017-04-25

Family

ID=56165569

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/689,850 Active 2035-05-14 US9634799B2 (en) 2014-12-26 2015-04-17 Decoding device, information transmission system, and non-transitory computer readable medium

Country Status (3)

Country Link
US (1) US9634799B2 (en)
JP (1) JP6417937B2 (en)
CN (1) CN106210749B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180248653A1 (en) * 2015-10-08 2018-08-30 Sony Corporation Receiving apparatus and method therefor

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3298713B1 (en) 2016-08-10 2019-05-01 Telefonaktiebolaget LM Ericsson (publ) Check positions within a transport block
US10496953B1 (en) 2016-09-20 2019-12-03 Amazon Technologies, Inc. System to determine user groupings in a facility
US10552788B1 (en) 2016-09-20 2020-02-04 Amazon Technologies, Inc. User tracking system
US11132637B1 (en) 2016-09-20 2021-09-28 Amazon Technologies, Inc. System to detect user interaction with inventory
CN109412607B (en) * 2017-08-16 2022-08-26 深圳市海思半导体有限公司 Decoding method and device

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05284148A (en) 1992-03-30 1993-10-29 Nippon Telegr & Teleph Corp <Ntt> Information block transmitting system
JP2001102938A (en) 1999-09-30 2001-04-13 Icom Inc Error detecting method, error correcting method and error correcting device for received signal
US20020031219A1 (en) * 2000-07-18 2002-03-14 Technische Universitaet Berlin Transmitter, receiver and transceiver arrangement
US6438434B1 (en) * 1996-05-29 2002-08-20 Yamaha Corporation Mixing, coding and decoding devices and methods
US20030204806A1 (en) * 2002-04-26 2003-10-30 Fuji Xerox Co., Ltd. Signal transmission system
US20050229061A1 (en) * 2004-04-01 2005-10-13 Sung-Ho Kang Method of efficiently compressing and decompressing test data using input reduction
US7127009B2 (en) * 2001-04-12 2006-10-24 France Telecom Method of coding/decoding a digital data stream coded with bitwise interleaving in multiple transmission and reception in the presence of intersymbol interference and corresponding system
US20070220342A1 (en) * 2005-10-21 2007-09-20 Siemens Corporate Research, Inc. Devices Systems and Methods for Testing Software
JP2009141453A (en) 2007-12-04 2009-06-25 Fuji Xerox Co Ltd Data transmission equipment, data transmitter, data receiver, and data transmission system
JP2013239940A (en) 2012-05-16 2013-11-28 Fuji Xerox Co Ltd Serial communication system, image forming system, and transmitter

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3639184B2 (en) * 2000-04-18 2005-04-20 日本電信電話株式会社 Method for encoding control information in communication system
US8261156B2 (en) * 2008-09-11 2012-09-04 Lsi Corporation Methods and apparatuses for correcting errors in data streams
JP5365132B2 (en) * 2008-10-17 2013-12-11 富士ゼロックス株式会社 Serial signal receiver, serial transmission system, serial transmission method, serial signal transmitter
TWI437572B (en) * 2009-05-21 2014-05-11 Genesys Logic Inc Accessing method and system for error control coding using in the memory device
KR101044412B1 (en) * 2009-07-13 2011-06-27 금오공과대학교 산학협력단 GEM frame Synchronization Circuit, System including the circuit and Method thereof
JP5982869B2 (en) * 2012-02-28 2016-08-31 富士ゼロックス株式会社 Transmission / reception system and program

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05284148A (en) 1992-03-30 1993-10-29 Nippon Telegr & Teleph Corp <Ntt> Information block transmitting system
US6438434B1 (en) * 1996-05-29 2002-08-20 Yamaha Corporation Mixing, coding and decoding devices and methods
JP2001102938A (en) 1999-09-30 2001-04-13 Icom Inc Error detecting method, error correcting method and error correcting device for received signal
US20020031219A1 (en) * 2000-07-18 2002-03-14 Technische Universitaet Berlin Transmitter, receiver and transceiver arrangement
US7127009B2 (en) * 2001-04-12 2006-10-24 France Telecom Method of coding/decoding a digital data stream coded with bitwise interleaving in multiple transmission and reception in the presence of intersymbol interference and corresponding system
US20030204806A1 (en) * 2002-04-26 2003-10-30 Fuji Xerox Co., Ltd. Signal transmission system
US20050229061A1 (en) * 2004-04-01 2005-10-13 Sung-Ho Kang Method of efficiently compressing and decompressing test data using input reduction
US20070220342A1 (en) * 2005-10-21 2007-09-20 Siemens Corporate Research, Inc. Devices Systems and Methods for Testing Software
JP2009141453A (en) 2007-12-04 2009-06-25 Fuji Xerox Co Ltd Data transmission equipment, data transmitter, data receiver, and data transmission system
JP2013239940A (en) 2012-05-16 2013-11-28 Fuji Xerox Co Ltd Serial communication system, image forming system, and transmitter

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180248653A1 (en) * 2015-10-08 2018-08-30 Sony Corporation Receiving apparatus and method therefor
US10594437B2 (en) * 2015-10-08 2020-03-17 Sony Corporation Receiving apparatus and method therefor

Also Published As

Publication number Publication date
CN106210749A (en) 2016-12-07
CN106210749B (en) 2019-04-19
JP6417937B2 (en) 2018-11-07
JP2016127369A (en) 2016-07-11
US20160191205A1 (en) 2016-06-30

Similar Documents

Publication Publication Date Title
US9634799B2 (en) Decoding device, information transmission system, and non-transitory computer readable medium
US10997016B2 (en) Method of encoding data
US10454625B2 (en) System and method for employing outer codes with non-equal length codeblocks field
KR101819152B1 (en) Method and associated decoding circuit for decoding an error correction code
EP2899914B1 (en) Upstream forward error correction codeword filling
JP6657690B2 (en) Decoding device, program, and information transmission system
US11018699B2 (en) Method and apparatus for controlling interleaving depth
US8910008B2 (en) Transmitting/receiving system, method, and computer readable medium
KR102510034B1 (en) Method of transporting error correction codes in transmission stream amd method for extracting data stream from transmission stream
JP2017513307A5 (en)
JP2003318865A (en) Signal transmission system
US10164741B2 (en) Packet data transmission device and packet data transmission method
Aflakian et al. Error detection and correction over two-dimensional and two-diagonal model and five-dimensional model
US8750423B2 (en) Receiving apparatus, data transfer apparatus, data receiving method and non-transitory computer readable recording medium
US20130332803A1 (en) Transmitting and receiving system, transmitting and receiving method, and computer readable medium
US8954832B1 (en) Asymmetric distance coding
JP5895238B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
CN109217982B (en) Data transmission method and device, sending equipment and receiving equipment
US8699624B2 (en) Receiving apparatus and data transmission apparatus
US11055423B2 (en) Signal pattern checksum
JP5900850B2 (en) Transmission / reception device for digital communication transmission line code, transmission / reception method for digital communication transmission line code, and method for generating code used in this transmission / reception device or transmission / reception method
US20160142235A1 (en) Signal processing method, apparatus and signal receiver
US20090150727A1 (en) Data transmission method
CN113938242A (en) Retransmission method and communication device
US20170264319A1 (en) Decoding device, information transmission system, decoding method, and non-transitory computer readable medium

Legal Events

Date Code Title Description
AS Assignment

Owner name: FUJI XEROX CO., LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAMADA, TSUTOMU;AWATA, YOSHINORI;UGAJIN, ATSUSHI;REEL/FRAME:035437/0962

Effective date: 20150410

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: FUJIFILM BUSINESS INNOVATION CORP., JAPAN

Free format text: CHANGE OF NAME;ASSIGNOR:FUJI XEROX CO., LTD.;REEL/FRAME:058287/0056

Effective date: 20210401