KR100234703B1 - 데이타 오류체크 방법 - Google Patents

데이타 오류체크 방법 Download PDF

Info

Publication number
KR100234703B1
KR100234703B1 KR1019960062263A KR19960062263A KR100234703B1 KR 100234703 B1 KR100234703 B1 KR 100234703B1 KR 1019960062263 A KR1019960062263 A KR 1019960062263A KR 19960062263 A KR19960062263 A KR 19960062263A KR 100234703 B1 KR100234703 B1 KR 100234703B1
Authority
KR
South Korea
Prior art keywords
crc
data
message data
checking method
bit
Prior art date
Application number
KR1019960062263A
Other languages
English (en)
Other versions
KR19980044216A (ko
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 KR1019960062263A priority Critical patent/KR100234703B1/ko
Publication of KR19980044216A publication Critical patent/KR19980044216A/ko
Application granted granted Critical
Publication of KR100234703B1 publication Critical patent/KR100234703B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 데이터 오류체크 방법에 관한 것으로, 종래 데이터 오류체크 방법 중 순환여분검사방식은 한번에 1비트의 CRC계산만이 이루어지기 때문에 전송속도가 느린 문제점이 있었다. 본 발명은 이러한 종래의 문제점을 해결하기 위해 메시지 데이터를 1바이트씩 입력받아 이를 전 상태의 CRC레지스터값과 식 S' = X32U'(X) = Rg(x)[X32(b(X)+X8U(X))]에 의해 연산하는 제 1단계와 ; 상기 단계에서 연산된 값을 CRC레지스터에 저장하는 제 2단계와 ; 메시지 데이터가 모두 입력될 때까지 상기 제 1단계 및 제 2단계를 반복하는 제 3단계와 ; 상기 제 3단계의 수행결과 메시지 데이터가 모두 처리되면 이를 상기 메시지 데이터와 합하여 송신하는 제 4단계로 이루어진 데이터 오류체크 방법을 창안한 것으호, 이와같이 본 발명은 본 발명은 메시지 데이터를 8비트씩 입력받아 이를 바로전에 계산된 CRC 레지스터값과 소정식을 통해 연산하는 방식으로 CRC부호 생성시 8비트씩 처리할 수 있어 전송속도를 빨리 할 수 있는 효과가 있다.

Description

데이터 오류체크 방법
제1도는 종래 순환여분방식의 회로 구성도.
제2도는 식(1)에 있어서, i와 Rg(x)[Xi]와의 관계를 나타낸 표.
제3도는 16진수와 2진수의 관계를 나타낸 표.
제4도는 8비트 시프트 후의 CRC레지스터의 값을 나타낸 표.
제5도는 본 발명에서 CRC값을 계산하기 위한 회로 구성도.
제6도는 본 발명의 베리로그(verilog) 하이레벨데이타링크제어순서도.
본 발명은 데이터의 오류체크 방법에 관한 것으로, 특히 순환여분검사(cyclic Redundancy Check : CRC) 오류체크 방법에 있어서, CRC부호 생성시 데이터의 처리를 8비트씩 하게 함으로써 처리속도를 향상시키는데 적당하도록 한 데이터 오류체크 방법에 관한 것이다.
순환여분검사(cyclic Redundancy Check : CRC)란 데이터 오류검출방식의 하나로, 송신데이타를 어떤 룰에 의해 변형시키고, 그 변형된 데이터에 대한 CRC부호를 작성한 다음 그 변형된 데이터에 CRC부호를 부가하여 송신하도록 하고, 수신측은 수신데이타를 체크하여 오류를 검출한다.
상기 데이터의 변형에는 특수한 논리연산의 곱셈이 행하여지고, 수신 데이터에는 마찬가지의 나눗셈이 행하여지는 것이 이 방식의 특징이다. 이 나눗셈에서 나머지의 유무에 의해 데이터의 오류여부가 결정된다.
이때, CRC부호를 만들기 위한 다항식 G(X)는 미리 정해져 있는데, CRC-32의 경우에는 아래의 식으로 규정되어 있다.
G(X) = X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X +1
이때, 상기 다항식 G(X)을 생성 다항식이라 한다.
상기 CRC오류체크 방법에 대하여 간략히 설명하면 다음과 같다.
계산을 쉽게 하기 위해 생성 다항식 G(X)를
G(X) = X6+X4+X2+1
이라하고, 아래 식과 같이 표시되는 송신데이타(D)가 있다고 하자
D = X7+X4+X2+X
먼저, 생성 다항식 G(X)의 최고차 항을 송신데이타(D)에 곱하여 송신데이타를 변형시킨다. 이를 D'라 하면,
D' = D × X6
= (X7+X4+X2+X) × X6
= X13+X10+X8+X7
이다.
이와 같이 변형된 데이터(D')가 만들어지면 그 변형된 데이터(D')를 상기 생성 다항식 G(X)로 나누는데, 그 결과 몫과 나머지는 아래 식과 같이 된다.
(X13+X10+X8+X7) / (X6+X4+X2+1)하면, 몫은 X7+X5+X4+X +1, 나머지는 X3+X2+X +1
이때, 상기 나머지 X3+X2+X +1를 CRC부호로 한다.
이제 상기 CRC부호(X3+X2+X +1)와 상기 변형된 데이터(D')를 더하면 죄종 송신할 데이터(S)가 되는 것이다. 즉 S는
S = (X13+X10+X8+X7) + (X3+X2+X+1)
= X13+X10+X8+X7+X3+X2+X +1
이다.
이때, 수신측은 아래 식과 같이 상기 데이터(S)를 수신하여 이를 생성 다항식 G(X)로 나누어 그 나머지가 제로(0)이면 데이터의 오류가 없다고 판단한다.
S/G(X) = (X13+X10+X8+X7) + (X3+X2+X +1)/(X6+X4+X2+1)
= X7+X5+X4+X + 1(나머지 = 0)
이때, 상기 CRC 오류체크 방법 중에서 CRC-32의 계산방법을 회로적으로 나타내면 제1도에 도시한 바와 같이 시프터레지스터(Sn)와 배타적오아게이트(XOR)들로 구성할 수 있다.
동작하는 과정은 입력 메시지의 1비트가 CRC-32의 생성다항식에 따라 배타적오아링 되거나 다음 CRC레지스터(Sn)로 스프트되어짐으로써 한 번에 1비트씩 계산되어 CRC레지스터에 저장된다.
이상에서 설명한 바와 같이 종래의 순환여분검사방식은 한번에 1비트의 CRC계산만이 이루어지기 때문에 전송속도가 느린 문제점이 있었다.
본 발명의 목적은 이러한 종래의 문제점을 해결하기 위해 데이터를 8비트 병렬로 처리하도록 알고리즘을 구성하여 전송속도를 향상 시킬 수 있도록 한 데이터 오류체크 방법을 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 데이터 오류체크 방법은 메시지 데이터를 1바이트씩 입력받아 이를 전 상태의 CRC레지스터값과 아래 식에 의해 연산하는 제 1단계와 ; 상기 단계에서 연산된 값을 CRC레지스터에 저장하는 제 2단계와 ; 메시지 데이터가 모두 입력될 때까지 상기 제 1단계 및 제 2단계를 반복하는 제 3단계와 ; 상기 제 3단계에의 수행결과 메시지 데이터가 모두 처리되어 CRC부호가 생성되면 이를 상기 메시지 데이터와 합하여 송신하는 제 4단계로 이루어진다.
S' = X32U'(X)
= Rg(x)[X32(b(X) +X8U(X))]
단, U(X) = b(X) +X8U(X)
X8X32U(X)는 8비트 시프트된 전상태의 CRC레지스터값.
b(X)는 새로 입력된 8비트 메시지 데이터.
X32는 생성다항식의 최고차항.
S는 CRC부호 : [X32(b(X) + X8U(X))]를 생성다항식[g(X)]으로 나눈 나머지.
이하, 본 발명의 작용 및 효과에 관하여 첨부한 도면을 참조하여 설명한다.
먼저, 메시지 데이터를 U(X)라고, CRC 부호를 생성하기 위한 생성다항식을 g(X)라 하면, 송신데이타 U(X)와 생성다항식 g(X)의 일반식은 아래와 같다.
U(X) = U0+U1X+U2X2+...U7X7
g(X) = 1+X +X2+X4+X5+X7+X8+X10+X11+X12+X16+X22+X23+X26+X32
CRC부호는 생성다항식 g(X)의 최고차항을 송신데이타의 다항식U(X)에 곱하고, 이를 다시 생성다항식 g(X)로 나눈 나머지 S(X)로 정의되는데, 이를 식으로 표현하면 아래와 같다.
Rg(x)[U(X) g(X)의 최고차항]= Rg(x)[X32U(X)]
이때, 상기 X32U(X)는 X32U(X) = a(X) g(X) + S(X)와 같이 표현할 수 있다.
단, a(X)는 X32U(X)를 g(X)로 나눈 몫이다. 그리고 나머지 S(X)의 일반식은
S(X) = S0+S1X +S2X2+...+S31X31
이다.
상기와 같이 8비트의 데이터가 처리되면 이는 우측으로 8비트 시프트되고, 그 빈 자리에는 8비트의 새로운 데이터가 입력된다.
그 입력되는 새로운 데이터를 b(X)=b0+b1X +b2X2+...+b7X7라고 하면, 새로 처리할 데이터 U'(X)는 전 상태에서 처리된 CRC레지스터의 값 즉, U(X)와 새로 입력된 8비트의 메시지 데이터 b(X)와의 합이 된다. 이를 식으로 나타내면 아래와 같다.
U'(X)=b(X)+X8U(X) 단, X8은 8비트 시프트됨을 표시한다.
상기 U'(X)에 대한 CRC부호를 구하기 위해 먼저, 생성다항식의 최고차항인 X32를 곱하면, X32U'(X)가 된다. 이때, X32U'(X)은 아래 식과 같이 전개된다.
X32U'(X) = X32[b(X) + X8U(X)]
= X32b(X) + X8[X32U(X)]
= X32b(X) + X8[a(X)g(X) + S(X)]
= X32b(X) + X8[a(X)g(X)]+ X8S(X)
이제, X32U'(X)를 이용하여 나머지 S'(X)를 구하면 아래 식과 같다.
S'(X) = Rg(X)[X32U'(X)]
이때, 상기 식 U'(X) = b(X)+X8U(X)을 식 S'(X) = Rg(X)[X32U'(X)]에 대입하면 아래 식과 같다.
S'(X) = Rg(X)[X32(b(X)+X6U(X))]
= Rg(X)[X32b(X) + X8X32U (X)]
이다.
이때, X32U(X) = a(X)g(X) + S(X)이므로
Rg(X)[X32b(X) + X8X32U(X)]
= Rg(X)[X32b(X) + X8a(X) g(X) + X8S(X)]
= Rg(X)[X32b(X)]+Rg(X)[X8a(X)g(X)]+Rg(X)[X8S(X)]
으로 쓸수 있다.
또한 상기 X8a(X)g(X)를 g(X)로 나누면 그 몫은 X8a(X) 나머지는 0 이므로 Rg(X)[X8a(X)]항은 0이 된다.
따라서,
S'(X) = Rg(X)[X32b(X)]+ Rg(X)[X8S(X)]
= Rg(X)[X32b(X) + X8S(X)]
이 된다.
상기 식을 b(X)와 S(X)의 일반식을 사용하여 전개하면
S'(X) = Rg(X)[X32(b0+b1X1+b2X2+b3X3+b4X4+b5X5+b6X6+b7X7]+X8(S0+S1X1+..+S31X31)]
=(b0+S24)X32+ (b1+S25)X33+ … + (b7+S31)X39+ S0X8+ S1X9+...+ S23X31
로 쓸 수 있다.
또한 상기 식을 일반화하면
로 쓸 수 있는데, 이 식에서 (bi+ S24+i)을 설명의 편의상 ti로 놓으면, 상기 식은
이 된다.
그리고 S0X8+ S1X9+ … + S23X31을 g(X)로 나눈 몫은 0이고, 나머지는 S0X8+ S1X9+ … + S23X31이기 때문에 (S0X8+ S1X9+ … + S23X31)을 Rg(x) 밖으로 뺄 수 있다. 따라서
이 된다.
이때, 상기 식(1)에서 i와 Rg(X)[Xi]와의 관계를 나타낸 제 2 도와 16진수와 2진수의 관계를 나타낸 제 3 도를 참조하여, 상기 식에서 8비트 시프트 후의 CRC 레지스터의 값을 계산하면 제 4도에 도시한 바와같다.
다시 8비트 시프트 후의 CRC 레지스터의 값을 쓰면 아래와 같다.
S'0 = t0+t1+b0+b6+s24+s30
S'1 = t0+t1+t6+t7
S'2 = t0+t1+t2+t6+t7
S'3 = t1+t2+t3+t7
S'4 = t0+t2+t3+t4+t6
S'5 = t0+t1+t3+t4+t5+t6+t7
S'6 = t1+t2+t4+t5+t6+t7
S'7 = t0+t2+t3+t5+t7
S'8 = S0+t0+t1+t3+t4
S'9 = S1+t1+t2+t4+t5
S'10 = S2+t0+t2+t3+t5
S'11 = S3+t0+t1+t3+t4
S'12 = S4+t0+t1++t2+t4+t5+t6
S'13 = S5+t1+t2+t3+t5+t6+t7
S'14 = S6+t2+t3+t4+t6+t7
S'15 =S1+t3+t4+t5+t7
S'16 = S8+t0+t4+t5
S'17 =S9 +t1+t5+t6
S'18 =S10+t2+t6+t7
S'19 =S11+t3+t7
S'20 =S12+t4
S'21 =S13+t5
S'22 =S14+t0
S'23 =S15+t0+t1+t6
S'24 =S16+t1+t2+t7
S'25 =S17+t2+t3
S'26 =S18+t0+t3+t4+t5+t6
S'27 =S19+t1+t4+t5+t7
S'28 =S20+t2+t5+t6
S'29 =S21+t3+t6+t7
S'30 =S22+t4+t7
S'31 =S23+t5
그리고 본 발명을 회로구성으로 나타내면 제 5 도에 도시한 바와 같다. 참고로 본 발명의 베리로그(verilog) 하이레벨데이타링크제어순서(HDL)도를 제 6 도에 도시하였다.
이상에서 상세히 설명한 바와 같이 본 발명은 메시지 데이터를 바로전에 계산된 CRC 레지스터값과 소정식에 의한 연산을 통해 CRC부호를 생성하게 함으로써 한 번에 8비트씩 처리할 수 있어 전송속도를 빠르게 할 수 있는 효과가 있다.

Claims (1)

  1. 메시지 데이터를 1바이트씩 입력받아 이를 전 상태의 CRC레지스터값과 아래식에 의해 연산하는 제 1단계와 ; 상기 단계에서 연산된 값을 CRC레지스터에 저장하는 제 2 단계와 ; 메시지 데이터가 모두 입력될 때까지 상기 제 1 단계 및 제 2 단계를 반복하는 제 3 단계와 ; 상기 제 3단계에의 수행결과 메시지 데이터가 모두 처리되어 CRC부호가 생성되면 이를 상기 메시지 데이터와 합하여 송신하는 제 4단계로 이루어진 것을 특징으로 하는 데이터 오류체크 방법.
    S' = X32U'(X)
    = Rg(X)[X32(b(X)+X8U(X)]
    단, U' (X) = b(X)+ X8U(X)
    X8X32U(X)는 8비트 시프트된 전상태의 CRC레지스터값.
    b(X)는 새로 입력된 8비트 메시지 데이터.
    X32는 생성다항식의 최고차항.
    S'는 CRC부호 : [X32(b(X)+X8U(X))]를 생성다항식[g(X)]으로 나눈 나머지.
KR1019960062263A 1996-12-06 1996-12-06 데이타 오류체크 방법 KR100234703B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960062263A KR100234703B1 (ko) 1996-12-06 1996-12-06 데이타 오류체크 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960062263A KR100234703B1 (ko) 1996-12-06 1996-12-06 데이타 오류체크 방법

Publications (2)

Publication Number Publication Date
KR19980044216A KR19980044216A (ko) 1998-09-05
KR100234703B1 true KR100234703B1 (ko) 1999-12-15

Family

ID=19486099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960062263A KR100234703B1 (ko) 1996-12-06 1996-12-06 데이타 오류체크 방법

Country Status (1)

Country Link
KR (1) KR100234703B1 (ko)

Also Published As

Publication number Publication date
KR19980044216A (ko) 1998-09-05

Similar Documents

Publication Publication Date Title
EP0313707B1 (en) Data integrity securing means
US5440570A (en) Real-time binary BCH decoder
US4809273A (en) Device for verifying operation of a checking code generator
US7539918B2 (en) System and method for generating cyclic codes for error control in digital communications
JPH0728227B2 (ja) Bch符号の復号装置
KR100260415B1 (ko) 고속시리얼에러위치다항식계산회로
JPS632370B2 (ko)
US5724370A (en) CRC generation and detection method
US5938773A (en) Sideband signaling with parity bit schemes
KR20030036148A (ko) 복호장치 및 복호방법
US6928608B2 (en) Apparatus and method for accelerating cyclic redundancy check calculations
JP3245290B2 (ja) 復号方法とその装置
US5912909A (en) Method and apparatus for efficient implementation of checksum calculations
KR100234703B1 (ko) 데이타 오류체크 방법
US5121397A (en) Method and apparatus for producing order independent signatures for error detection
US7225391B1 (en) Method and apparatus for parallel computation of linear block codes
US5526370A (en) Weighted sum codes for error detection
JPS6217256B2 (ko)
KR20020033227A (ko) 데이터 통신을 위한 병렬 중복순환 검사회로
US6718514B2 (en) Parity checking device and method in data communication system
JP2621582B2 (ja) 逐次復号装置
JPH05151007A (ja) Crc演算装置
US5212696A (en) Method and apparatus for producing order independent signatures for error detection
Kim FPGA implementation of overhead reduction algorithm for interspersed redundancy bits using EEDC
JP2848734B2 (ja) 誤り検出・訂正装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050824

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee