KR950009247B1 - Error correction method - Google Patents

Error correction method Download PDF

Info

Publication number
KR950009247B1
KR950009247B1 KR1019920010846A KR920010846A KR950009247B1 KR 950009247 B1 KR950009247 B1 KR 950009247B1 KR 1019920010846 A KR1019920010846 A KR 1019920010846A KR 920010846 A KR920010846 A KR 920010846A KR 950009247 B1 KR950009247 B1 KR 950009247B1
Authority
KR
South Korea
Prior art keywords
data
error
error correction
bits
syndrome
Prior art date
Application number
KR1019920010846A
Other languages
Korean (ko)
Other versions
KR940001603A (en
Inventor
김민영
Original Assignee
삼성전자주식회사
정용문
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 삼성전자주식회사, 정용문 filed Critical 삼성전자주식회사
Priority to KR1019920010846A priority Critical patent/KR950009247B1/en
Publication of KR940001603A publication Critical patent/KR940001603A/en
Application granted granted Critical
Publication of KR950009247B1 publication Critical patent/KR950009247B1/en

Links

Classifications

    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

The method comprises the first step of generating code words by adding parity bit and transferring, the second step of receiving the code words, the third step of decoding the received code words and detecting syndrome, the fourth step of reading error position data with the address of syndrome, and the fifth step of correcting errors by doing exclusive OR operation of the error position data and the code words.

Description

에러 수정 방법How to fix error

제1도는 종래의 수신측 에러 정정 회로도.1 is a conventional receiving side error correction circuit diagram.

제2도는 코드 단어 구성도.2 is a code word diagram.

제3도는 본 발명이 적용되는 데이타 코딩/디코딩 회로도.3 is a data coding / decoding circuit diagram to which the present invention is applied.

제4도는 본 발명의 에러 수정 흐름도.4 is an error correction flowchart of the present invention.

제5도는 본 발명의 다른 에러 수정 흐름도.5 is another error correction flowchart of the present invention.

제6도는 롬에 저장된 표의 예시도.6 is an exemplary diagram of a table stored in the ROM.

본 발명은 디지탈 데이타 통신 시스템에 있어서 데이타 전송에러 정정 방법에 관한 것으로, 특히 수신측에서 에러 정정 코드(error correction code)로써 에러를 수정하여 원래의 데이타를 복원하는 방법에 관한 것이다.The present invention relates to a data transmission error correction method in a digital data communication system, and more particularly, to a method for restoring original data by correcting an error with an error correction code at a receiving end.

일반적으로 디지탈 테이타를 송수신함에 있어서 전송로나 전송로의 주변상황에 따라 수신데이타에 에러가 발생하는 경우가 있다.In general, in transmitting and receiving digital data, an error may occur in the reception data depending on the transmission path or the surrounding conditions of the transmission path.

그러므로 코딩된 디지탈 데이타에 발생한 에러를 디코딩시 효과적으로 제거하여 원래의 데이타를 복원하기 위해서, 종래의 경우에는 제1도에 도시한 바와 같은 회로를 이용하였다. 상기 제1도에서 데이타 버퍼(DAB)와 에러정정부(DC)에서 소정 비트의 데이타를 동시에 클럭에 동기시켜 입력하면, 상기 에러정정부(EC)에서 입력한 데이타의 각 비트들에 대해서 에러 발생부여를 체크한다. 상기 체크결과 에러가 발생한 경우 '1'을 출력하고 정상적일 경우 '0'을 출력하여 상기 데이타 버퍼(DAB)로부터 출력되는 데이타와 가산기(AD5)에서 배타적으로 논리합함으로써 에러가 정정된 원래의 테이타를 복원하였다.Therefore, in order to effectively remove the error occurring in the coded digital data during decoding and restore the original data, a circuit as shown in FIG. 1 is used in the conventional case. In FIG. 1, when data of the data buffer DAB and the error correction DC are simultaneously inputted in synchronization with a clock, an error is generated for each bit of data input by the error correction EC. Check the grant. If the error occurs as a result of the check, it outputs '1', and if it is normal, it outputs '0' and exclusively ORs the data output from the data buffer DAB with the adder AD5 to correct the original data whose error is corrected. Restored.

그러나 상기와 같이 하드웨어적으로 디코딩하여 에러를 검출하고 수정하는 것은 회로 구성상 복잡하였을 뿐만 아니라 수행시간이 많이 걸리고 사용코드의 에러 수정 능력이 작은 단점이 있었다.However, detecting and correcting an error by decoding in hardware as described above has not only a complicated circuit configuration, but also requires a lot of execution time and a small error correction capability of a use code.

따라서 본 발명의 목적은 복잡한 하드웨어적 디코딩을 지양하고 표 조사(table look up)에 의해 간단하게 데이타 전송 에러를 수정하는 방법을 제공함에 있다.It is therefore an object of the present invention to provide a method of avoiding complex hardware decoding and simply correcting data transmission errors by table look up.

본 발명의 다른 목적은 에러 수정 시간을 줄이는 방법을 제공함에 있다.Another object of the present invention is to provide a method of reducing error correction time.

본 발명의 또다른 목적은 사용코드의 에러 수정 능력을 높이는 방법을 제공함에 있다.Another object of the present invention is to provide a method for improving the error correction capability of the use code.

이하 본 발명을 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

디지탈 데이타 통신시스템에서 송신측은 원래의 데이타를 코딩하는 코더(coder)로 구성되고, 수신측은 수신한 데이타를 디코딩하여 에러를 검출하는 디코더(decoder)와 에러를 수정하는 부분으로 구성된다. 본 발명에서는 제3도에 도시한 바와 같은 데이타 코딩/디코딩 회로를 갖는다.In a digital data communication system, a transmitter is configured with a coder for coding original data, and a receiver is configured with a decoder for detecting an error by decoding the received data and a part for correcting an error. The present invention has a data coding / decoding circuit as shown in FIG.

또한 본 발명에서 사용하는 에러 정정 코드(error correction code)는 BCH(15, 7)코드이다. 상기 BCH는 Base Chaudhuri Hocguenghem의 각 첫글자를 나타낸다.In addition, an error correction code used in the present invention is a BCH (15, 7) code. The BCH represents each first letter of Base Chaudhuri Hocguenghem.

이 코드의 특징은 다음과 같다.This code has the following characteristics:

코드단어의 길이 : 15비트Code word length: 15 bits

데이타의 길이 : 7비트Data length: 7 bits

패리티 비트의 길이 : 8비트Length of parity bits: 8 bits

에러 수정 능력 : 한 코드단어 당 2비트(일부 3비트)Error correction capability: 2 bits (some 3 bits) per code word

하나의 코드단어는 제1도에 도시한 바와 같이 구성되는 바, 전송하고자 하는 데이타를 7비트마다 코딩하고 8비트의 패리티 데이타를 부가하여 총 15비트의 코드단어를 만든다. 이 코드단어를 수신한 측은 15비트에 대해 디코딩을 실행하여 에러를 검출해낸 후 에러가 발견되면 수정한다.One codeword is constructed as shown in FIG. 1. The codeword is coded every 7 bits, and 8 bits of parity data are added to create a total of 15 bits. The side receiving this codeword performs decoding on 15 bits to detect an error and corrects the error if found.

코딩과 디코딩은 하기식(1)의 생성다항식(polynomial)을 사용한다.Coding and decoding use the polynomial of the formula (1).

G(X)=X8+X7+X6+X4+1………(1)G (X) = X 8 + X 7 + X 6 + X 4 +1... … … (One)

제3도는 상기 식(1)에 의한 코딩과 디코딩을 수행하는 회로인데, 코딩시에는 7비트데이타의 입력 후에 R7-R0의 내용인 8비트가 패리티 비트가 되며 디코딩시에는 15비트 데이타의 입력후에 R7-R0의 내용이 에러의 발생유무를 판단하는 신드롬(Syndrome)이 된다.3 is a circuit for performing coding and decoding according to Equation (1). In coding, 8 bits of contents of R7-R0 become parity bits after input of 7 bits of data, and 15 bits of data are input after decoding. The contents of R7-R0 become a syndrome for determining whether an error has occurred.

만일 상기 신드롬이 0이라면 수신 데이타는 에러없이 수신된 것이고 0이 아니라면 에러가 발생한 것이므로 표조사 방식에 의해 에러를 수정한다.If the syndrome is 0, the received data is received without an error. If the syndrome is not 0, an error has occurred.

제6도는 에러 수정을 위한 표이며 메모리에 저장하여 두는데 신드롬을 오프셋 어드레스(offset address)로 가지며 그 데이타는 에러 위치를 의미하는바, '롬데이타'중 데이타가 1인 비트가 에러의 위치를 의미하므로 7비트의 데이타와 상기 '롬데이타'를 배타적 논리합 함으로써 해당 비트를 반전시켜서 에러를 수정한다.6 is a table for error correction and stored in the memory. The syndrome is an offset address and the data means an error location. The bit of data 1 of the 'ROM data' indicates the error location. Therefore, an exclusive logical OR of 7 bits of data and the 'ROM data' is inverted to correct the error.

임의의 데이타를 "100100"이라 가정할 경우 상기 입력된 데이타와 R7의 배타적 논리합(D -R7), 그리고R7…,R0의 상태를 표시하면 하기(표1)과 같다.If any data is assumed to be "100100", the exclusive OR of D7 and R7 (D-R7), and R7... The state of R0 is shown in Table 1 below.

[표 1]TABLE 1

*은 DR7이 피드백(feedback)되어 배타적 논리합되는 래지스터를 표시하기 위한 것이다. 첫줄의 R7,…R0의 상태는 초기화 되어 있음을 보인다.* D R7 is fed back to indicate an exclusive OR register. R7 on the first line,… The state of R0 is shown to be initialized.

다음 첫데이타 0가 입력되면 DR7은 0이 되므로 단순히 쉬프트된 것임을 알수 있다.If the next first data 0 is entered, D R7 becomes 0, so it can be seen that it is simply shifted.

다음 1이 입력되면(DR7)=1이된다. 그 결과 R0, R4, R6, R7은 하기 식(2)-식(5)와 같이 나타낼 수 있다.If 1 is entered (D R7) = 1 As a result, R0, R4, R6, and R7 can be represented as in the following formulas (2) to (5).

R0←DR7……………(2)R0 ← D R7... … … … … (2)

R4←(DR7)R3…………(3)R4 ← (D R7) R3... … … … (3)

R6←(DR7)R5…………(4)R6 ← (D R7) R5... … … … (4)

R7←(DR7)R6…………(5)R7 ← (D R7) R6... … … … (5)

여기서←의 우측의 값들은 새로 입력된 값들보다 한 클럭 이전의 값들이다.The values to the right of ← are the values one clock ahead of the newly entered values.

같은 방법으로 7비트의 데이타를 다 입력하면(R7,…,R0)=(10010010)을 얻는다.In the same way, inputting all 7 bits of data yields (R7, ..., R0) = (10010010).

이것을 데이타에 부가하여 하기와 같이 15비트의 한 블럭을 만든다.Add this to the data to make a block of 15 bits:

데이타 패리티Data parity

0 1 0 0 1 0 0 1 0 0 1 0 0 1 00 1 0 0 1 0 0 1 0 0 1 0 0 1 0

수신측에서 15비트의 데이타에 대해 디코딩을 수행한 결과 에러가 없는 경우에는 하기한 (표2)와 같이 된다.If there is no error as a result of decoding the 15-bit data on the receiving side, it is as follows (Table 2).

[표 2]TABLE 2

일곱 비트까지는 송신측과 같으므로 구체적인 내용을 기재하지 않는다. 가로로 그은 점선(-----)바로 위의 줄이 일곱번째 비트의 입력이다.Since up to seven bits are the same as the transmitting side, no specific details are described. The dashed horizontal line (-----) immediately above is the input of the seventh bit.

상기와 같이 에러가 없는 경우와 다른 것은 모두 같고 마지막 15번째 비트에 에러가 발생하였다고 가정하면, 수신된 데이타는(0100100 100 10011)이 될 것이다.Assuming that there is no error as described above and all other things are the same and an error occurs in the last 15th bit, the received data will be (0100100 100 10011).

[표 3]TABLE 3

열네번째 비트까지는 상기한 에러가 없는 경우의 예와 같이 되고, 열다섯 번째 비트에서 데이타 입력이 l로 된다. 그러므로 하기 (표3)에 기재한 바와 같이 신드롬(R7…R0)은 이진수로 1101001이고, 이를 십육진법에 의해 나타내면 D116이다.Up to the fourteenth bit is the same as in the case of no error described above, and the data input becomes l in the fifteenth bit. Therefore, as shown in Table 3 below, the syndrome (R7 ... R0) is 1101001 in binary, which is D1 16 when expressed by the hexadecimal method.

상기 D116을 어드레스로 하여 제6도에 도시한 롬의 표로부터 데이타를 읽어 보면 0이다. 즉 7비트의 데이타에는 에러가 발생하지 않았으므로 배타적 논리합하여도 유효한 데이타 부분에는 변화가 없으며 그냥 패리티 부분만 버리면 된다.When data is read from the ROM table shown in FIG. 6 using D1 16 as an address, it is zero. That is, since no error occurred in the 7-bit data, the valid data part does not change even if it is exclusive OR, and only the parity part may be discarded.

그러나 만약 송신 되어온 데이타에 대해 두번째아 여섯번째 비트에 두개의 에러가 발생하여 실제 수신된 데이타가(00 001 10 100 100 10)라 하면, 제3도에 도시한 에러 정정부에서 디코딩한 결과는 하기 (표4)와 같다.However, if two errors occur in the second and sixth bits of the transmitted data and the actual received data is (00 001 10 100 100 10), the result of decoding by the error correction unit shown in FIG. Table 4 shows.

[표 4]TABLE 4

이때 신드롬(R7…R0)은 이진수로 01000100이고 이를 십육진법으로 나타내면 4416이다. 상기 4416을 어드레스로 하여 제6도에 도시한 롬의 표에서 데이타를 찾으면 (010010)을 얻는다. 상기 데이타와 수신된 데이타의 유효데이타(00 00 110)을 배타적 논리합하면 송신한 유효데이타와 동일한 데이타(0100 100)를 얻는다.Syndrome (R7… R0) is 01000100 in binary and 44 16 in hexadecimal notation. If data is found in the ROM table shown in FIG. 6 using the address 44 16 , (010010) is obtained. The exclusive OR of the data and the valid data (00 00 110) of the received data yields the same data (0100 100) as the valid data transmitted.

상술한 바와 같은 본 발명은 메모리상에 에러정정표를 구비하고 신드롬을 어드레스로 하여 해당 데이타를 찾아서 그것과 수신된 유효데이타를 배타적 논리합해서 송신한 유효데이타와 동일한 데이타를 얻도록 함으로써 데이타 전송 에러를 쉽게 정정할 수 있는 이점이 있다.As described above, the present invention provides an error correction table on a memory, finds the corresponding data using a syndrome as an address, and obtains the same data as the valid data transmitted by exclusive OR of the received data and the received valid data. There is an advantage that can be corrected.

Claims (1)

메모리상에 에러정정표를 구비한 디지탈 데이타 전송 방법에 있어서, 전송데이타를 소정비트 단위로 코딩하고 패리티 비트를 부가하여 코드단어를 생성해서 전송하는 제1과정과, 상기 코드단어를 수신하는 제2과정과, 상기 수신된 코드단어를 디코딩하여 신드롬을 검출하는 제3과정과 상기 에러정정표로부터 상기 신드롬을 주소로 갖는 에러위치데이타를 독출하는 제4과정과, 상기 에러위치데이타와 상기 코드단어를 배타적 논리합하여 에러를 수정하는 제5과정으로 이루어짐을 특징으로 하는 에러수정 방법.1. A digital data transmission method having an error correction table on a memory, the method comprising: a first process of coding a transmission data in predetermined bit units and adding a parity bit to generate and transmit a code word; and a second process of receiving the code word. And a third step of decoding the received codeword to detect a syndrome, and a fourth step of reading error location data having the syndrome as an address from the error correction table, and exclusively the error location data and the codeword. And a fifth step of correcting the error by OR.
KR1019920010846A 1992-06-22 1992-06-22 Error correction method KR950009247B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920010846A KR950009247B1 (en) 1992-06-22 1992-06-22 Error correction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920010846A KR950009247B1 (en) 1992-06-22 1992-06-22 Error correction method

Publications (2)

Publication Number Publication Date
KR940001603A KR940001603A (en) 1994-01-11
KR950009247B1 true KR950009247B1 (en) 1995-08-18

Family

ID=19335051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920010846A KR950009247B1 (en) 1992-06-22 1992-06-22 Error correction method

Country Status (1)

Country Link
KR (1) KR950009247B1 (en)

Also Published As

Publication number Publication date
KR940001603A (en) 1994-01-11

Similar Documents

Publication Publication Date Title
US6044482A (en) Digital transmission system for encoding and decoding attribute data into error checking symbols of main data
US5936978A (en) Shortened fire code error-trapping decoding method and apparatus
GB1105583A (en) Error detection and/or correction of digital information
KR950009247B1 (en) Error correction method
KR20030036148A (en) Decoder and decoding method
CN112564858B (en) CRC error correction method and system for satellite navigation
US7496825B2 (en) CRC-based error correction
CN109217982B (en) Data transmission method and device, sending equipment and receiving equipment
KR940007422B1 (en) Rs decoding system without using buffer register
KR100234703B1 (en) Data fault checking method
KR0128847B1 (en) Aa-type 5-service system
KR100407131B1 (en) Reed solomon decoder using combinational circuits
KR970009760B1 (en) An improved crc circuit
JP2591330B2 (en) Error correction method
SU1287295A1 (en) Device for correcting errors
Kim FPGA implementation of overhead reduction algorithm for interspersed redundancy bits using EEDC
JPH0636286B2 (en) Error correction method and apparatus
JPH0287842A (en) Error correcting system
JP2676860B2 (en) Signal transmission method
JP2001251196A (en) Reed-solomon decoding method and reed-solomon decoding device
JPH08293801A (en) Method and device for controlling error of digital information
KR900003771B1 (en) Reed-solomon decoder
KR19980066078A (en) Circuits and Methods for Detecting Errors in Received Data
JPH06284016A (en) Error controller
JPS59131237A (en) Decoding circuit

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20000726

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee