KR970009760B1 - 개선된 순환중복검사(crc) 부호화기 - Google Patents

개선된 순환중복검사(crc) 부호화기 Download PDF

Info

Publication number
KR970009760B1
KR970009760B1 KR1019940038207A KR19940038207A KR970009760B1 KR 970009760 B1 KR970009760 B1 KR 970009760B1 KR 1019940038207 A KR1019940038207 A KR 1019940038207A KR 19940038207 A KR19940038207 A KR 19940038207A KR 970009760 B1 KR970009760 B1 KR 970009760B1
Authority
KR
South Korea
Prior art keywords
crc
data
encoder
output
crc encoder
Prior art date
Application number
KR1019940038207A
Other languages
English (en)
Other versions
KR960024953A (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 KR1019940038207A priority Critical patent/KR970009760B1/ko
Publication of KR960024953A publication Critical patent/KR960024953A/ko
Application granted granted Critical
Publication of KR970009760B1 publication Critical patent/KR970009760B1/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)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

내용 없음.

Description

개선된 순환중복검사(CRC)부호화기
제1도는 본 발명에 따른 개선된 CRC부호화기를 도시한 블록도
제2도는 제1도에 도시된 제1CRC부호화기의 세부블럭도.
제3도는 제1도에 도시된 제3CRC부호화기의 세부블럭도.
제4도는 본 발명에 따른 CRC부호화기의 변형예.
제5도는 종래의 CRC부호화기의 예를 도시한 개략도이다.
* 도면의 주요부분에 대한 부호의 설명
10 : 제1CRC부호화기 12,32,34 : CRC처리부
20: 제 2CRC부호화기 30 : 제2CRC부호화기
40 : 멀티클랙서 50 : 레지듀 레지스터
60 : 출력 레지스터 74 : 이전 CRC 래치
76 : 데이타 래치 78 : CRC출력 래치
본 발명은 데이터 전송중에 발생된 에러를 검출하기 위한 에러검출코드의 일종인 순환중복검사(CRC : Cyclic Redundancy Check)코드를 발생하는 CRC부호화기에 관한 것으로, 특히, 프레임(혹은 패킷)단위로 CRC부호화중 마지막에 0을 채워 넣을 필요가 없도록 프레임 데이터의 순서에 따라 선택되는 복수의 CRC부호화기를 사용하여 처리속도를 개선시킨 CRC부호화기에 관한 것이다.
일반적으로, 디지탈 데이터를 특정한 전송로를 통해 전송할 경우에 상기 전송로의 특성에 따라 전송신호가 열화되어 에러가 발생하는 경우가 자주 발생하는 바, 상기와 같은 에러를 검출하기 위한 방법으로는 패리티 체크(Parity Check), 순환중복검사(CRC)방법이 널리 사용되며 더 나아가서, 에러를 검출하고 정정할 수 있는 에러정정(ECC:Error Correction Code)방법들이 다양하게 제시되어 있다.
즉, 데이터 전송중에 전송신호에는 전송로를 통과하면서 감쇠현상, 지연왜곡, 잡음등이 발생하여 에러를 유발시키게 되고, 데이터의 특성에 따라서는 작은 에러가 치면적인 문제를 일으킬 수 있다.
따라서, 데이터 전송중의 에러를 검출하거나 검출하여 정정하기 위한 다양한 기술들이 개발되어 통신 시스템에서 사용되고 있다.
순환중복검사(CRC:Cyclic Redundancy Check)란 프레임(혹은 패킷) 단위로 전송되는 데이터의 에러를 검출하기 위한 에러검출코드로서, k비트의 프레임이나 메시지에 대하여 송신기는 프레임검사시퀀스(FCS)라는 n비트의 코드를 생성하여 k+n개의 비트로 이루어진 전송 프레임을 송신하고, 이때 전송 프레임이 미리 정해진 다항식(P(x))에 의해 나누어 떨어지도록 n값을 설정하여 수신단에서는 수신된 전송 프레임을 동일한 상기 다항식(P(x))으로 나누어 나머지가 없으면 에러가 없는 것으로 간주한다.
상기와 같은 CRC코드를 발생하는 종래의 CRC부호화기는 제5도에 도시된 바와 같이 전송을 위한 프레임의 데이터를 일시 저장하는 데이터 래치(76)와, 이전의 데이터에 의해 발생된 CRC값을 저장하고 있는 이전 CRC래치(74)와, 상기 데이터 래치(76)와 이전 CRC래치(74)의 출력을 입력하여 CRC코드를 발생하는 CRC처리부(78)와, 상기 CRC 처리결과를 저장하는 CRC 출력래치(80)로 이루어져 송신하고자 하는 프레임의 CRC코드를 발생하였다.
그런데, 상기와 같은 종래의 CRC부호화기는 프레임의 마지막에 해당하는 CRC비트만큼 0을 채워서 전송해 주어야 했기 때문에 그만큼 처리시간이 길어지는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 프레임 데이터의 순서에 따라 선택되는 복수의 CRC부호화기를 사용하여 처리속도를 개선시킨 개선된 CRC부호화기를 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 CRC부호화하고자 하는 프레임 데이터가 연속적으로 들어오지 않을 경우에, 복수의 CRC부호화기를 사용하여 CRC코드를 발생시키는 개선된 CRC부호화기를 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 개선된 CRC부호화기는, 전송 프레임의 첫 번재 데이터를 입력하여 CRC처리하는 제 1CRC부호화기와; 전송 프레임의 n번째 데이터를 입력하여 CRC 처리하는 제2CRC부호하기; 전송 프레임의 마지막번째 데이터를 입력하여 CRC 처리하는 제3CRC부호화기; 선택신호에 따라 첫 번째 데이터에서는 상기 제1CRC부호화기의 출력을 선택하고, n(여기서, n=2번째-마지막 바로 이전번째)번째 데이터에서는 상기 제2CRC부호화기의 출력을 선택하고, 마지막번째 데이터에서는 상기 제3CRC부호화기의 출력을 선택하는 멀티플렉서; 및 상기 멀티플렉서의 출력을 일시 저장하여 상기 CRC부호화기로 궤환하는 레지듀 레지스터를 구비한 것을 특징으로 한다.
상기와 같은 다른 목적을 달성하기 위한 본 발명의 개선된 CRC부호화기는 프레임의 첫 번째 데이터를 입력하여 CRC처리하는 제1CRC부호화기와; 프레임의 n번째 데이터를 입력하여 CRC처리하는 제2CRC부호화기; 전송 프레임의 마지막번째 데이터를 입력하여 CRC처리하는 제3CRC부호화기; CRC결과를 일시 저장하는 레지듀레지스터; 선택신호에 따라 첫 번째 데이터에서는 상기 제1CRC부호화기의 출력을 선택하고, n(여기서, n=2번째~마지막 바로 이전번째)번째 데이타에서는 상기 제2CRC부호화기의 출력을 선택하고 CRC를 수행하지 않을 데이터에서는 상기 레지듀 레지스터의 출력을 선택하는 멀티플렉서; 및 상기 제3CRC부호화기의 출력을 일시 저장하는 출력 레지스터를 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 자세히 설명하기로 한다.
제1도는 본 발명에 따른 개선된 CRC부호화기를 도시한 블록도로서, 프레임의 첫 번째 데이터를 입력하여 CRC 처리하는 제1CRC부호화기(10)와; 프레임의 n번째 데이터를 입력하여 CRC처리하는 제2CRC부호화기(20); 프레임의 마지막번째 데이터를 입력하여 CRC처리하는 제3CRC부호화기(30); 선택신호(MUX SEL)에 따라 첫 번째 데이터에서는 상기 제1CRC부호화기(10)의 출력을 선택하고, n번째 데이터에서는 상기 제2CRC부호화기(20)의 출력을 선택하고, 마지막번째 데이터에서는 상기 제3CRC부호화기(30)의 출력을 선택하는 멀티플렉서(40); 및 상기 멀티플렉서(40)의 출력을 일시 저장하는 상기 CRC부호화기(20,30)로 궤환시키는 레지듀 레지스터(50)를 구비한다.
제2도는 제1도에 도시된 제1CRC부호화기의 세부 블록도로서, 0을 레지듀(residue)로 입력하여 새로운 데이터(new input[7..0])의 CRC처리를 하는 CRC 연산부(12)로 이루어져 프레임의 첫 번째 데이터의 경우, 이전 CRC 값이 없으므로 0과 새로 입력된 첫 번째 데이터(new input[7..0])와 연산하여 CRC코드(CRC1,out)를 발생한다.
이러한, CRC 연산은 이미 알려진 바와 같이 배타적 오아 및 시프트에 의해 하드웨어적으로 쉽게 구현할 수 있다.
제3도는 제1도에 도시된 제3CRC부호화기의 세부블럭도로서, 마지막번째(last byte) 데이터를 입력한 후 레지듀(residue) 값과 연산하여 CRC코드를 산출하는 CRC연산부(32)와, 상기 CRC연산부(32)의 출력을 0과 연산하여 프레임 전체의 CRC코드(CRC/out)를 산출하는 CRC연산부(34)로 구성되어 이중화된 CRC연산부를 가지고 있다.
상기와 같이 구성되는 본 발명의 CRC부호화기가 동작하는 것을 살펴보면 다음과 같다.
앞서 검출하는 바와 같이 CRC부호화기는 갈로이스체상의 코딩 이론에 의해 전송 프레임에 발생된 에러를 검출하는 바, CRC연산 알고리즘은 다항식 P(x)에 따라 CRC-4, CRC-16, CRC-32 등과 같이 널리 알려져 있으며 배타적 오아게이트 및 시프트에 의해 쉽게 하드웨어로 구현될 수 있다.
한편, 종래에는 프레임의 마지막에 소정 비트의 0을 부가하여 이전의 CRC값과 연산하여 전송 프레임 전체에 대한 CRC코드를 발생하였으나, 본 발명에서는 복수개의 CRC 연산부를 사용하여 전송 프레임 데이터의 순서에 따라 적절한 CRC 연산부를 선택하여 상기와 같이 0을 부가하지 않고 고속으로 CRC연산을 수행할 수 있도록 한 것이다.
즉, 전송 프레임의 첫 번째 데이터(통상, 바이트 단위로 데이터를 처리하므로 첫 번째 바이트의 데이터)가 입력되면, 제1CRC부호화기(10)를 통해 CRC연산한 결과를 멀티플랙서(40)로 선택하여 레지듀 레시스터(50)에 저장하고, 이어서 두 번째부터 마지막 바로 전번째(즉, n번째) 바이트의 데이터가 입력되면 제2CRC부호화기(20)를 통해 CRC연산한 결과를 멀티플랙서(40)로 선택한 후 레지듀 레지스터(50)에 저장한다.
또한, 전송 프레임의 마지막번째 바이트의 데이터가 입력되면, 제3CRC부호화기(30)를 통해 CRC연산한 결과를 멀티플랙서(40)를 통해 선택한 후 전송프레임의 전체 CRC코드(CRCout)로서 출력하게 된다.
이때, 제1CRC부호화기(10)는 첫 번째 바이트의 데이터와 0을 입력하여 연산하고, 제2CRC부호화기(20)는 데이터와 레지듀 레지스터(50)에 저장된 이전 데이터까지의 CRC값을 입력하여 연산하고, 제3CRC부호화기(30)는 마지막번째 데이터와 이전 데이터까지의 CRC값을 입력하여 연산한 후, 이어서 0과 상기 마지막번째까지의 CRC값을 입력하여 다시 연산하여 최종적으로 프레임 전체의 CRC코드(CRCout)를 발생시킨다.
제4도는 본 발명에 따른 CRC부호화기의 변형예로서, 프레임의 첫 번째 데이터를 입력하여 CRC처리하는 제1CRC부호화기(10)와; 프레임의 n번째 데이터를 입력하여 CRC처리하는 제2CRC부호화기(20); 프레임의 마지막번째 데이터를 입력하여 CRC처리하는 제3CRC부호화기(30); CRC결과를 일시 저장하는 레지듀 레지스터(50); 선택신호(MUX SEL)에 따라 첫 번째 데이터에서는 상기 제1CRC부호화기(10)의 출력을 선택하고, n번째 데이터에서는 상기 제2CRC부호화기(20)의 출력을 선택하고, CRC를 수행하지 않을 데이터에서는 상기 레지듀 레지스터(50)의 출력을 선택하는 멀티플랙서(40); 및 상기 제3부호화기(30)의 출력을 일시 저장하는 출력 레지스터(60)를 구비한다.
상기와 같이 구성되는 본 발명의 변형예에서는 CRC처리하는 전송하고자 하는 프레임의 데이터가 연속적으로 입력되지 않을 경우에, 본 발명을 적용하여 CRC부호화기를 수행하기 위한 것으로, CRC를 수행하지 않을 데이터가 입력되면 멀티플렉서(40)로 이전의 데이터까지 CRC 연산한 값을 선택하여 레지듀 레지스터(50)가 자신의 값을 그대로 유지시키도록 한 것이다.
즉, CRC처리하고자 하는 프레임의 데이터가 입력되면, 제1도에서 설명한 바와 같이 첫 번째 바이트 데이터가 입력되면 제1CRC부호화기(10)로 처리하고, n번째 바이트의 데이터가 입력되면 제2CRC부호화기(20)로 처리하고, 마지막번째 바이트 데이터가 입력되면 제3CRC부호화기(30)로 처리한다.
그런데, 본 발명의 변형예에서는 CRC처리하고자 하는 프레임의 데이터가 아닌 다른 데이터가 입력되면, 레지듀 레지스터(50)의 값을 멀티플렉서(40)로 선택하여 항시 자신의 값을 유지토록 하므로써, 불연속적인 데이터에 대해서도 CRC부호화를 수행할 수 있으며, 마지막 바이트의 CRC연산이 끝나면 제3CRC부호화기(30)의 출력을 멀티플랙서(40)를 통하지 않고, 직접 출력 레지스터(60)로 출력하여 이후의 데이터 입력에 영향을 받지 않도록 한다.
이상에서 살펴본 바와 같이 본 발명에 따라 구형된 개선된 CRC부호화기는 불연속적으로 입력되는 데이터에 대해서도 CRC부호화가 가능할 뿐만 아니라 전송 프레임의 마지막에 0을 삽입하여 연산할 필요가 없으므로 고속으로 CRC부호화기를 수행할 수 있는 효과가 있다.

Claims (4)

  1. 소정의 프레임단위로 CRC부호화를 수행하는 CRC부호화기에 있어서, 프레임의 첫 번째 데이터를 입력하여 CRC처리하는 제1CRC부호화기(10)와; 프레임의 n번째 데이터를 입력하여 CRC처리하는 제2CRC부호화기(20); 프레임의 마지막번째 데이터를 입력하여 CRC처리하는 제3CRC부호화기(30); 선택신호(MUX SEL)에 따라 첫 번째 데이터에서는 상기 제1CRC부호화기(10)의 출력을 선택하고, n번째 데이터에서는 상기 제2CRC부호화기(20)의 출력을 선택하고, 마지막번째 데이터에서는 상기 제3CRC부호화기(30)의 출력을 선택하는 멀티플렉서(40); 및 상기 멀티플렉서(40)의 출력을 일시 저장하여 상기 CRC부호화기(20,30)로 궤환시키는 레지듀 레지스터(50)를 구비한 것을 특징으로 하는 개선된 CRC부호화기.
  2. 제1항에 있어서, 상기 제1CRC부호화기(10)는 0 을 레지듀(residue)로 입력하여 새로운 데이터(new input[7..0])의 CRC처리를 하는 CRC연산부(12)로 이루어지는 것을 특징으로 하는 개선된 CRC부호화기.
  3. 제1항에 있어서, 상기 제3CRC부호화기(30)는 마지막 번째(last byte)데이타를 입력한 후 레지듀(residue) 값과 연산하여 CRC코드를 산출하는 CRC연산부(32)와, 상기 CRC연산부(32)의 출력을 0과 연산하여 프레임 전체의 CRC코드(CRC/out) 를 산출하는 CRC연산부(34)로 구성되는 것을 특징으로 하는 개선된 CRC부호화기.
  4. 불연속적으로 입력되는 소정의 프레임에 대해서도 CRC부호화를 수행할 수 있는 CRC부호화기에 있어서, 프레임의 첫 번째 데이터를 입력하여 CRC처리하는 제1CRC부호화기(10)와; 프레임의 n번째 데이터를 입력하여 CRC처리하는 제2CRC부호화기(20); 프레임의 마지막번째 데이터를 입력하여 CRC처리하는 제3CRC부호화기(30); CRC결과를 일시 저장하는 레지듀 레지스터(50); 선택신호(MUX SEL)에 따라 첫 번째 데이터에서는 상기 제1CRC부호화기(10)의 출력을 선택하고, n번째 데이터에서는 상기 제2CRC부호화기(20)의 출력을 선택하고, CRC를 수행하지 않을 데이터에서는 상기 레지듀레지스터(50)의 출력을 선택하는 멀티플랙서(40); 및 상기 제3CRC부호화기(30)의 출력을 일시 저장하는 출력 레지스터(60)를 구비한 것을 특징으로 하는 개선된 CRC부호화기.
KR1019940038207A 1994-12-28 1994-12-28 개선된 순환중복검사(crc) 부호화기 KR970009760B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940038207A KR970009760B1 (ko) 1994-12-28 1994-12-28 개선된 순환중복검사(crc) 부호화기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940038207A KR970009760B1 (ko) 1994-12-28 1994-12-28 개선된 순환중복검사(crc) 부호화기

Publications (2)

Publication Number Publication Date
KR960024953A KR960024953A (ko) 1996-07-20
KR970009760B1 true KR970009760B1 (ko) 1997-06-18

Family

ID=19404464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940038207A KR970009760B1 (ko) 1994-12-28 1994-12-28 개선된 순환중복검사(crc) 부호화기

Country Status (1)

Country Link
KR (1) KR970009760B1 (ko)

Also Published As

Publication number Publication date
KR960024953A (ko) 1996-07-20

Similar Documents

Publication Publication Date Title
EP0364475B1 (en) Multiple pass error correction process and apparatus for product codes
JP3046988B2 (ja) データストリームのフレーム同期検出方法及び装置
US5343481A (en) BCH error-location polynomial decoder
US6044482A (en) Digital transmission system for encoding and decoding attribute data into error checking symbols of main data
US20070136411A1 (en) Cyclic redundancy checking value calculator
CN103380585A (zh) 输入位错误率推定方法及其装置
US5936978A (en) Shortened fire code error-trapping decoding method and apparatus
JPH04103224A (ja) 符号誤り検出回路
US4592054A (en) Decoder with code error correcting function
JP3305525B2 (ja) 復号器、誤りロケータシーケンス生成器および復号方法
US4217660A (en) Method and apparatus for the coding and decoding of digital data
JPH0575479A (ja) データ流における誤りの識別、補正修整回路装置
US4298981A (en) Decoding shortened cyclic block codes
KR970009760B1 (ko) 개선된 순환중복검사(crc) 부호화기
US5694405A (en) Encoder and decoder of an error correcting code
KR940011663B1 (ko) 오류정정 시스템
KR100330642B1 (ko) 오류정정방법및오류정정장치
KR0166251B1 (ko) 고속 crc 부호기
CN110741562A (zh) 向量信令码信道的流水线式前向纠错
KR100979366B1 (ko) 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기
KR100358357B1 (ko) 가변 에러 정정 성능을 갖는 리드-솔로몬 디코더
KR0128847B1 (ko) 에이에이엘 타입5 (AA Type 5)서비스를 위한 순방향에러제어의 병렬처리장치
RU2282307C2 (ru) Способ синдромного декодирования для сверточных кодов
KR100407131B1 (ko) 조합회로를 이용한 리드-솔로몬 디코더
KR19980015800A (ko) 리드 솔로몬 복호기의 비트 에러율 측정 장치

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
LAPS Lapse due to unpaid annual fee