JPH07212246A - 高速crcチェック方式 - Google Patents
高速crcチェック方式Info
- Publication number
- JPH07212246A JPH07212246A JP6002939A JP293994A JPH07212246A JP H07212246 A JPH07212246 A JP H07212246A JP 6002939 A JP6002939 A JP 6002939A JP 293994 A JP293994 A JP 293994A JP H07212246 A JPH07212246 A JP H07212246A
- Authority
- JP
- Japan
- Prior art keywords
- crc
- data
- byte
- input data
- bits
- 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.)
- Pending
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
(57)【要約】
【目的】CRCコードの生成とCRCチェックとを行う
CRCチェック方式に関し、CRC演算を小さい回路規
模で高速に行えるようにすることを目的とする。 【構成】入力データに対して生成多項式によってCRC
演算を行ってこの入力データに対するCRCコードの生
成とCRCチェックとを行うCRCチェック方式におい
て、CRC演算を実行する処理手段101と、前バイト
におけるCRC演算結果と現バイトの入力データとをア
ドレスとして現バイトのCRC演算結果を格納する記憶
手段102とを設ける。そして、複数バイトからなる入
力データに対して、処理手段101が、バイトごとに上
記アドレスによって記憶手段102を参照してCRC演
算結果を求める処理を、入力データを構成する各バイト
に対して順次実行することによって、最終的にこの入力
データに対するCRC演算結果を求める。
CRCチェック方式に関し、CRC演算を小さい回路規
模で高速に行えるようにすることを目的とする。 【構成】入力データに対して生成多項式によってCRC
演算を行ってこの入力データに対するCRCコードの生
成とCRCチェックとを行うCRCチェック方式におい
て、CRC演算を実行する処理手段101と、前バイト
におけるCRC演算結果と現バイトの入力データとをア
ドレスとして現バイトのCRC演算結果を格納する記憶
手段102とを設ける。そして、複数バイトからなる入
力データに対して、処理手段101が、バイトごとに上
記アドレスによって記憶手段102を参照してCRC演
算結果を求める処理を、入力データを構成する各バイト
に対して順次実行することによって、最終的にこの入力
データに対するCRC演算結果を求める。
Description
【0001】
【産業上の利用分野】本発明は、CRC(Cyclic Redun
dancy Check )によって誤り検出を行う方式に関し、特
にCRCコードの生成とチェックをソフトウェアによっ
て高速に行うことができるようにした、高速CRCチェ
ック方式に関するものである。
dancy Check )によって誤り検出を行う方式に関し、特
にCRCコードの生成とチェックをソフトウェアによっ
て高速に行うことができるようにした、高速CRCチェ
ック方式に関するものである。
【0002】ディジタル通信においては、伝送時に発生
するデータの誤りを検出するために、CRCチェック方
式が広く用いられているが、この場合の送信側における
CRCコードの生成と受信側におけるCRCチェックと
を行うために必要な回路規模を縮小するとともに、処理
負荷を軽減して高速処理が可能になるようにすることが
求められている。
するデータの誤りを検出するために、CRCチェック方
式が広く用いられているが、この場合の送信側における
CRCコードの生成と受信側におけるCRCチェックと
を行うために必要な回路規模を縮小するとともに、処理
負荷を軽減して高速処理が可能になるようにすることが
求められている。
【0003】
【従来の技術】従来のCRCチェック方式においては、
送信側におけるCRCチェックコードの付加や、受信側
におけるCRCチェックのための演算は、一般にハード
ウェアによって行われていた。
送信側におけるCRCチェックコードの付加や、受信側
におけるCRCチェックのための演算は、一般にハード
ウェアによって行われていた。
【0004】図8は、CRC演算回路の構成を例示した
ものであって、(a)は回路構成を示し、(b)は入力
データを例示したものである。図8は、生成多項式(X
6 +X4 +X3 +1)によるCRCコード生成の場合を
示し、(a)において、11,12,13,14,1
5,16はフリップフロップ(FF)、17,18,1
9は排他的論理和(EX−OR)回路である。また、
(1) は入力データ、(2) はEX−OR回路19の出力、
(3),(4),(5) はそれぞれFF11,12,13の出力、
(6) はEX−OR回路17の出力、(7) はFF14の出
力、(8) はEX−OR回路18の出力、(9),(10)はそれ
ぞれFF15,16の出力である。(10) はCRC演算
結果である。このようなCRC演算回路によって、
(b)において、第1バイト〜第3バイトに示された入
力データP=X23+X21+X18+X17+X 14+X13+X
12+x11+x10+x6 +x4 +x3 +1(=A67C5
9)に対して、*で示す1バイトのCRCデータが生成
される。
ものであって、(a)は回路構成を示し、(b)は入力
データを例示したものである。図8は、生成多項式(X
6 +X4 +X3 +1)によるCRCコード生成の場合を
示し、(a)において、11,12,13,14,1
5,16はフリップフロップ(FF)、17,18,1
9は排他的論理和(EX−OR)回路である。また、
(1) は入力データ、(2) はEX−OR回路19の出力、
(3),(4),(5) はそれぞれFF11,12,13の出力、
(6) はEX−OR回路17の出力、(7) はFF14の出
力、(8) はEX−OR回路18の出力、(9),(10)はそれ
ぞれFF15,16の出力である。(10) はCRC演算
結果である。このようなCRC演算回路によって、
(b)において、第1バイト〜第3バイトに示された入
力データP=X23+X21+X18+X17+X 14+X13+X
12+x11+x10+x6 +x4 +x3 +1(=A67C5
9)に対して、*で示す1バイトのCRCデータが生成
される。
【0005】図8において、クロックに応じて、各FF
11,12,13,14,15,16のデータを順次シ
フトするとともに、EX−OR回路17において、FF
13の出力(5) とEX−OR回路19の出力(2) との排
他的論理和の演算を行い、EX−OR回路18におい
て、FF14の出力(7) とEX−OR回路19の出力
(2) との排他的論理和の演算を行い、EX−OR回路1
9において、FF16の出力(10)とEX−OR回路19
の出力(2) との排他的論理和の演算を行うことによっ
て、生成多項式(X6 +X4 +X3 +1)による、CR
C符号生成の演算が行われる。
11,12,13,14,15,16のデータを順次シ
フトするとともに、EX−OR回路17において、FF
13の出力(5) とEX−OR回路19の出力(2) との排
他的論理和の演算を行い、EX−OR回路18におい
て、FF14の出力(7) とEX−OR回路19の出力
(2) との排他的論理和の演算を行い、EX−OR回路1
9において、FF16の出力(10)とEX−OR回路19
の出力(2) との排他的論理和の演算を行うことによっ
て、生成多項式(X6 +X4 +X3 +1)による、CR
C符号生成の演算が行われる。
【0006】図9は、従来のCRC演算方式を例示した
ものであって、伝送すべきデータP=X23+X21+X18
+X17+X14+X13+X12+x11+x10+x6 +x4 +
x3+1,生成多項式G=x6 +x4 +x3 +1,デー
タPに生成多項式の最高次の項x6 を乗じたデータPX
=X6 (X23+X21+X18+X17+X14+X13+X12+
x11+x10+x6 +x4 +x3 +1)=X29+X27+X
24+X23+X20+X19+X18+x17+x16+x12+x10
+x9 +X6 の場合に、図8のCRC演算回路において
行われる演算を示している。
ものであって、伝送すべきデータP=X23+X21+X18
+X17+X14+X13+X12+x11+x10+x6 +x4 +
x3+1,生成多項式G=x6 +x4 +x3 +1,デー
タPに生成多項式の最高次の項x6 を乗じたデータPX
=X6 (X23+X21+X18+X17+X14+X13+X12+
x11+x10+x6 +x4 +x3 +1)=X29+X27+X
24+X23+X20+X19+X18+x17+x16+x12+x10
+x9 +X6 の場合に、図8のCRC演算回路において
行われる演算を示している。
【0007】演算結果の剰余x3 +x2 +x=0011
10=0Eは求めるCRC符号であり、PX+0Eが送
信信号として、受信側に送られる。
10=0Eは求めるCRC符号であり、PX+0Eが送
信信号として、受信側に送られる。
【0008】また、CPU(Central Processing Unit
:中央処理装置)を有する装置では、ソフトウェアに
よる演算によって同様の計算を行うことによって、送信
側のCRCチェックコードの付加や、受信側におけるC
RCチェックを行う方式がとられている。
:中央処理装置)を有する装置では、ソフトウェアに
よる演算によって同様の計算を行うことによって、送信
側のCRCチェックコードの付加や、受信側におけるC
RCチェックを行う方式がとられている。
【0009】
【発明が解決しようとする課題】ハードウェアによって
CRC演算を行う場合、送信側におけるCRCチェック
コード付加回路や、受信側におけるCRCチェック回路
の構成が複雑であって回路規模が大きく、そのため、実
装上の困難を来す場合があった。
CRC演算を行う場合、送信側におけるCRCチェック
コード付加回路や、受信側におけるCRCチェック回路
の構成が複雑であって回路規模が大きく、そのため、実
装上の困難を来す場合があった。
【0010】またCPUによってCRC演算を行う場合
は、ハードウェアによる場合と同様に、生成多項式に従
った1ビットづつの計算を行うため、処理の負担が大き
い上に処理時間を多く必要とした。
は、ハードウェアによる場合と同様に、生成多項式に従
った1ビットづつの計算を行うため、処理の負担が大き
い上に処理時間を多く必要とした。
【0011】本発明は、このような従来技術の課題を解
決しようとするものであって、予め求められたCRC演
算結果を記憶するリードオンリーメモリ(ROM)を参
照してCRC演算を行うことによって、ハードウェアに
よってCRC演算を行う従来の場合と比べて回路規模が
小さく、実装スペースを有効に利用することができ、ま
たCPUを用いてCRC演算を行う従来の場合と比べて
処理の負担が軽くなるとともに、高速処理が可能な高速
CRCチェック方式を提供することを目的としている。
決しようとするものであって、予め求められたCRC演
算結果を記憶するリードオンリーメモリ(ROM)を参
照してCRC演算を行うことによって、ハードウェアに
よってCRC演算を行う従来の場合と比べて回路規模が
小さく、実装スペースを有効に利用することができ、ま
たCPUを用いてCRC演算を行う従来の場合と比べて
処理の負担が軽くなるとともに、高速処理が可能な高速
CRCチェック方式を提供することを目的としている。
【0012】
【課題を解決するための手段】図1は、本発明の原理的
構成を示したものである。本発明の高速CRCチェック
方式は、入力データに対して生成多項式によってCRC
演算を行って該入力データに対するCRCコードの生成
とCRCチェックとを行うCRCチェック方式におい
て、CRC演算を実行する処理手段101と、前バイト
におけるCRC演算結果と現バイトの入力データとをア
ドレスとして現バイトのCRC演算結果を格納する記憶
手段102とを設ける。そして複数バイトからなる入力
データに対して、処理手段101が、バイトごとに上記
アドレスによって記憶手段102を参照してCRC演算
結果を求める処理を、入力データを構成する各バイトに
対して順次実行することによって、最終的にこの入力デ
ータに対するCRC演算結果を求めるものである。
構成を示したものである。本発明の高速CRCチェック
方式は、入力データに対して生成多項式によってCRC
演算を行って該入力データに対するCRCコードの生成
とCRCチェックとを行うCRCチェック方式におい
て、CRC演算を実行する処理手段101と、前バイト
におけるCRC演算結果と現バイトの入力データとをア
ドレスとして現バイトのCRC演算結果を格納する記憶
手段102とを設ける。そして複数バイトからなる入力
データに対して、処理手段101が、バイトごとに上記
アドレスによって記憶手段102を参照してCRC演算
結果を求める処理を、入力データを構成する各バイトに
対して順次実行することによって、最終的にこの入力デ
ータに対するCRC演算結果を求めるものである。
【0013】
【作用】例えば、通信電文が32バイトであって、32
バイト目がCRCチェックコードである通信システムに
おいて、生成多項式(X8 +X5 +1)でCRCチェッ
クコードを生成する場合には、予め“0000h”から
“FFFFh”までのアドレスに、それぞれのアドレス
の値で生成多項式(X8 +X5 +1)によって計算した
値を入れたROMテーブルを用意しておく。
バイト目がCRCチェックコードである通信システムに
おいて、生成多項式(X8 +X5 +1)でCRCチェッ
クコードを生成する場合には、予め“0000h”から
“FFFFh”までのアドレスに、それぞれのアドレス
の値で生成多項式(X8 +X5 +1)によって計算した
値を入れたROMテーブルを用意しておく。
【0014】次にCRCチェックコードの初期値を“0
0h”として、通信電文の第1バイトの値“aah”と
によって、アドレス“00aah”を作成し、そのアド
レス“00aah”の指すROMテーブルからデータ
“bbh”を読みだす。
0h”として、通信電文の第1バイトの値“aah”と
によって、アドレス“00aah”を作成し、そのアド
レス“00aah”の指すROMテーブルからデータ
“bbh”を読みだす。
【0015】次に、データ“bbh”と通信電文の第2
バイトの値“cch”とによって、アドレス“bbcc
h”を作成し、そのアドレス“bbcch”の指すRO
Mテーブルからデータ“ddh”を読みだす。
バイトの値“cch”とによって、アドレス“bbcc
h”を作成し、そのアドレス“bbcch”の指すRO
Mテーブルからデータ“ddh”を読みだす。
【0016】このような手順を繰り返して、30バイト
目のデータから作られたアドレスの指すROMテーブル
から読みだされたCRCチェックデータ“eeh”と通
信電文の第31バイトの値“ffh”とによってアドレ
ス“eeffh”を作成し、そのアドレス“eeff
h”の指すROMテーブルからデータ“ggh”を読み
だす。このデータ“ggh”が、通信電文の32バイト
目のCRCチェックコードとなる。
目のデータから作られたアドレスの指すROMテーブル
から読みだされたCRCチェックデータ“eeh”と通
信電文の第31バイトの値“ffh”とによってアドレ
ス“eeffh”を作成し、そのアドレス“eeff
h”の指すROMテーブルからデータ“ggh”を読み
だす。このデータ“ggh”が、通信電文の32バイト
目のCRCチェックコードとなる。
【0017】本発明の高速CRCチェック方式では、こ
のような方法によって、送信側ではCRCチェックデー
タを作成し付加して送信し、受信側ではCRCチェック
を行うことができ、装置規模の縮小と処理速度の向上と
を図ることが可能となる。
のような方法によって、送信側ではCRCチェックデー
タを作成し付加して送信し、受信側ではCRCチェック
を行うことができ、装置規模の縮小と処理速度の向上と
を図ることが可能となる。
【0018】
【実施例】図2は、本発明の一実施例の構成を示したも
のであって、CRCの演算回路を示している。1はCP
Uであって、各部を制御するとともに、CRC演算を実
行する。2はCPU1のバスである。3はランダムアク
セスメモリ(RAM)であって、CPU1の使用するプ
ログラム等を格納する。4はROMであって、CRC演
算結果のデータを格納している。5は入出力装置(I/
O)であって、装置に対するデータの入出力を行う。
のであって、CRCの演算回路を示している。1はCP
Uであって、各部を制御するとともに、CRC演算を実
行する。2はCPU1のバスである。3はランダムアク
セスメモリ(RAM)であって、CPU1の使用するプ
ログラム等を格納する。4はROMであって、CRC演
算結果のデータを格納している。5は入出力装置(I/
O)であって、装置に対するデータの入出力を行う。
【0019】いま、図2の装置において、CRC演算を
行うべきデータ伝送のフレームが256ビット(32バ
イト)であって、最終の6ビットがCRCデータとなる
ものとする。CRC検出の生成多項式は、(X6 +X4
+X3 +1)である。受信側でのCRCチェックは、1
ビットから250ビットまでを生成多項式(X6 +X 4
+X3 +1)で算出し、その値と251ビットから25
6ビットまでの6ビットと比較して、一致していればデ
ータ伝送が正常に行われたものとする。また送信側で
は、逆に、1ビットから250ビットまでのCRCデー
タを生成多項式(X6 +X4 +X3 +1)で算出し、そ
の値を251ビットから256ビットに付加して送信す
る。
行うべきデータ伝送のフレームが256ビット(32バ
イト)であって、最終の6ビットがCRCデータとなる
ものとする。CRC検出の生成多項式は、(X6 +X4
+X3 +1)である。受信側でのCRCチェックは、1
ビットから250ビットまでを生成多項式(X6 +X 4
+X3 +1)で算出し、その値と251ビットから25
6ビットまでの6ビットと比較して、一致していればデ
ータ伝送が正常に行われたものとする。また送信側で
は、逆に、1ビットから250ビットまでのCRCデー
タを生成多項式(X6 +X4 +X3 +1)で算出し、そ
の値を251ビットから256ビットに付加して送信す
る。
【0020】図2の装置において、CRC演算は次の手
順によって行われる。 (1) CRCチェックデータは、予め計算した値を16k
バイト+256バイトのデータとして、ROMテーブル
に持つものとする。
順によって行われる。 (1) CRCチェックデータは、予め計算した値を16k
バイト+256バイトのデータとして、ROMテーブル
に持つものとする。
【0021】(2) CRCチェックの方法は、1ビットか
ら248ビットまでの31バイトについては、前回のC
RCチェックデータ(初期値は“00”とする)と、受
信または送信データ1バイトでアドレスを作成し、その
アドレスによって、ROMテーブルを参照して、CRC
チェックデータを選出する。
ら248ビットまでの31バイトについては、前回のC
RCチェックデータ(初期値は“00”とする)と、受
信または送信データ1バイトでアドレスを作成し、その
アドレスによって、ROMテーブルを参照して、CRC
チェックデータを選出する。
【0022】(3) 249ビットおよび250ビットに対
しては、249ビット,250ビットの入力データと、
その前の段階までに選出されたCRCチェックデータと
でアドレスを作成して、そのアドレスによって、ROM
テーブルを参照して、CRCチェックデータを選出す
る。
しては、249ビット,250ビットの入力データと、
その前の段階までに選出されたCRCチェックデータと
でアドレスを作成して、そのアドレスによって、ROM
テーブルを参照して、CRCチェックデータを選出す
る。
【0023】図3は、1ビット〜248ビットに対する
8ビット単位のCRC計算テーブルを示したものであっ
て、8ビットのデータ中の上位2ビットをマスクした6
ビットのCRCデータ(アドレス)と、8ビットの入力
データとによる16ビットのアドレスに対応して、8ビ
ットのデータ中の上位2ビットをマスクした6ビットの
CRCデータ(データ)を格納したテーブルからなるこ
とが示されている。この場合のCRCデータ格納エリア
は、256バイト×64=16kバイトの容量となる。
8ビット単位のCRC計算テーブルを示したものであっ
て、8ビットのデータ中の上位2ビットをマスクした6
ビットのCRCデータ(アドレス)と、8ビットの入力
データとによる16ビットのアドレスに対応して、8ビ
ットのデータ中の上位2ビットをマスクした6ビットの
CRCデータ(データ)を格納したテーブルからなるこ
とが示されている。この場合のCRCデータ格納エリア
は、256バイト×64=16kバイトの容量となる。
【0024】図4は、249ビット,250ビットに対
するCRC計算テーブルを示したものであって、2ビッ
トの入力データと6ビットのCRCデータ(アドレス)
とによる8ビットのアドレスに対応して、8ビットのデ
ータ中の上位2ビットをマスクした6ビットのCRCデ
ータ(データ)を格納したテーブルからなることが示さ
れている。この場合のチェックデータ格納エリアは、6
4バイト×4=256バイトの容量となる。
するCRC計算テーブルを示したものであって、2ビッ
トの入力データと6ビットのCRCデータ(アドレス)
とによる8ビットのアドレスに対応して、8ビットのデ
ータ中の上位2ビットをマスクした6ビットのCRCデ
ータ(データ)を格納したテーブルからなることが示さ
れている。この場合のチェックデータ格納エリアは、6
4バイト×4=256バイトの容量となる。
【0025】図5は、CRC処理の概要を示したもので
あって、(a)はフローチャートを示し、(b)は演算
用アキュムレータの領域を示している。図示のように、
CRCデータの初期値を00hとしてカウンタを初期化
する。アキュムレータAccBにおける下位アドレスと
しての受信データと、アキュムレータAccAにおける
上位アドレスとしての上位2ビットを0に固定した前回
のCRCデータとに基づく、アキュムレータAccDの
上位2ビットを0に固定したCRCデータアドレスをイ
ンデックスレジスタIXにおいて、テーブルからCRC
データを求める演算を31バイト分繰り返して行ったの
ち、32バイト目で、受信データの下位6ビットをマス
クした上位の2ビットと前回のCRCデータとをオアし
たアドレスによって、CRCデータを読み取って処理を
終了する。
あって、(a)はフローチャートを示し、(b)は演算
用アキュムレータの領域を示している。図示のように、
CRCデータの初期値を00hとしてカウンタを初期化
する。アキュムレータAccBにおける下位アドレスと
しての受信データと、アキュムレータAccAにおける
上位アドレスとしての上位2ビットを0に固定した前回
のCRCデータとに基づく、アキュムレータAccDの
上位2ビットを0に固定したCRCデータアドレスをイ
ンデックスレジスタIXにおいて、テーブルからCRC
データを求める演算を31バイト分繰り返して行ったの
ち、32バイト目で、受信データの下位6ビットをマス
クした上位の2ビットと前回のCRCデータとをオアし
たアドレスによって、CRCデータを読み取って処理を
終了する。
【0026】この場合における各バイトの処理は、次の
ようにして行われる。 (1) 第1バイトの処理 受信データを下位アドレスに設定し、初期値0を上位ア
ドレスに設定することによって、予め作成されているC
RCテーブルから、CRCデータを求める。
ようにして行われる。 (1) 第1バイトの処理 受信データを下位アドレスに設定し、初期値0を上位ア
ドレスに設定することによって、予め作成されているC
RCテーブルから、CRCデータを求める。
【0027】(2) 第2バイト〜第31バイトの処理 受信データを下位アドレスに設定し、前回のCRCテー
ブルの示すデータをCRCデータとして上位アドレスに
設定して、予め作成されているCRCテーブルから、C
RCデータを求める。
ブルの示すデータをCRCデータとして上位アドレスに
設定して、予め作成されているCRCテーブルから、C
RCデータを求める。
【0028】(3) 第32バイトの処理 チェックデータの算出 受信データの下位6ビットをマスクしてデータとし、前
回のCRCテーブルの示すデータとオアをとって、チェ
ックテーブルのアドレスとする。
回のCRCテーブルの示すデータとオアをとって、チェ
ックテーブルのアドレスとする。
【0029】 判定 チェックテーブルから求められたチェックデータと、受
信データにおけるCRCデータ(受信データの下位6ビ
ット)が同値であれば、受信データに誤りがない。一
方、同値でなければ誤りがあるのでデータを破棄する。
信データにおけるCRCデータ(受信データの下位6ビ
ット)が同値であれば、受信データに誤りがない。一
方、同値でなければ誤りがあるのでデータを破棄する。
【0030】図6は本発明方式によるCRC演算を例示
するものであって、(a)はCRC演算手順を示し、
(b)は使用するROMテーブルの一部を示している。
するものであって、(a)はCRC演算手順を示し、
(b)は使用するROMテーブルの一部を示している。
【0031】受信データが、図8の場合と同じP=X23
+X21+X18+X17+X14+X13+X12+x11+x10+
x6 +x4 +x3 +1であるとすると、16進表示では
A67C 59となる。最初、CRCデータの初期値を
00とし、これと受信データの第1バイトとから定まる
CRCアドレス00A6によって、ROMテーブルを参
照して、CRCデータ22を求める。
+X21+X18+X17+X14+X13+X12+x11+x10+
x6 +x4 +x3 +1であるとすると、16進表示では
A67C 59となる。最初、CRCデータの初期値を
00とし、これと受信データの第1バイトとから定まる
CRCアドレス00A6によって、ROMテーブルを参
照して、CRCデータ22を求める。
【0032】次にCRCデータ22と、受信データの第
2バイト7Cとから定まるCRCアドレス227Cによ
って、ROMテーブルを参照して、CRCデータ2Aを
求める。
2バイト7Cとから定まるCRCアドレス227Cによ
って、ROMテーブルを参照して、CRCデータ2Aを
求める。
【0033】さらにCRCデータ2Aと、受信データの
第3バイト59とから定まるCRCアドレス2A59に
よって、ROMテーブルを参照して、CRCデータ0E
を求める。CRCデータ0Eは、所要のCRCコードで
ある。
第3バイト59とから定まるCRCアドレス2A59に
よって、ROMテーブルを参照して、CRCデータ0E
を求める。CRCデータ0Eは、所要のCRCコードで
ある。
【0034】図7は、CRCテーブルの作成方法を示し
たものであって、生成多項式x6 +x4 +x3 +1によ
るCRC符号生成回路の動作を、ソフトウェアによって
シミュレーションして求める場合を示している。この場
合のCRC符号生成回路は図8に示されたものと同じで
あり、入力データは、16ビット単位とし、0000
HEX 〜3FFFHEX までのテーブルを作成するものとす
る。
たものであって、生成多項式x6 +x4 +x3 +1によ
るCRC符号生成回路の動作を、ソフトウェアによって
シミュレーションして求める場合を示している。この場
合のCRC符号生成回路は図8に示されたものと同じで
あり、入力データは、16ビット単位とし、0000
HEX 〜3FFFHEX までのテーブルを作成するものとす
る。
【0035】いま、1バイトのデータをb7〜b0と
し、図8に示された回路において、(10)=b5,(9)=b
4,(7)=b3,(5)=b2,(4)=b1,(3)=b0とし、b
5,b4,b3,b2,b1,b0を0,0,0,0,
0,0(00HEX )から1,1,1,1,1,1(3F
HEX )まで変化させる。また入力データ(8ビット)
が、0,0,0,0,0,0,0,0(00HEX )から
1,1,1,1,1,1,1,1(FFHEX )まで変化
するものとする。
し、図8に示された回路において、(10)=b5,(9)=b
4,(7)=b3,(5)=b2,(4)=b1,(3)=b0とし、b
5,b4,b3,b2,b1,b0を0,0,0,0,
0,0(00HEX )から1,1,1,1,1,1(3F
HEX )まで変化させる。また入力データ(8ビット)
が、0,0,0,0,0,0,0,0(00HEX )から
1,1,1,1,1,1,1,1(FFHEX )まで変化
するものとする。
【0036】最初、b5,b4,b3,b2,b1,b
0を00HEX とし、入力データの先頭ビットから1ビッ
トづつ入力して、図中に示すようにCRC演算を行い、
終了したとき、次のビットを入力して同様の演算を行
う。以下同様に繰り返して8ビットの処理を終了したと
き、b5,b4,b3,b2,b1,b0をインクリメ
ントして再び同じ演算を行う。
0を00HEX とし、入力データの先頭ビットから1ビッ
トづつ入力して、図中に示すようにCRC演算を行い、
終了したとき、次のビットを入力して同様の演算を行
う。以下同様に繰り返して8ビットの処理を終了したと
き、b5,b4,b3,b2,b1,b0をインクリメ
ントして再び同じ演算を行う。
【0037】このようにして、b5,b4,b3,b
2,b1,b0を3FHEX まで処理したとき、演算を終
了することによって、演算結果として、CRCコードが
得られる。
2,b1,b0を3FHEX まで処理したとき、演算を終
了することによって、演算結果として、CRCコードが
得られる。
【0038】
【発明の効果】以上説明したように本発明によれば、C
RC演算結果を格納したROMテーブルを使用してソフ
トウェアによって演算を行うようにしたので、送信側に
おけるCRCチェックコードの付加や、受信側における
CRCチェックの処理をハードウェアによって行う場合
と比較して、回路規模が縮小され、実装スペースの有効
利用が可能となる。
RC演算結果を格納したROMテーブルを使用してソフ
トウェアによって演算を行うようにしたので、送信側に
おけるCRCチェックコードの付加や、受信側における
CRCチェックの処理をハードウェアによって行う場合
と比較して、回路規模が縮小され、実装スペースの有効
利用が可能となる。
【0039】またCPUを使用して、計算によって送信
側のCRCチェックコードの付加や、受信側でのCRC
チェックを行う場合と比較して、処理負担を軽減するこ
とができ、高速処理を行うことが可能となる。
側のCRCチェックコードの付加や、受信側でのCRC
チェックを行う場合と比較して、処理負担を軽減するこ
とができ、高速処理を行うことが可能となる。
【図1】本発明の原理的構成を示す図である。
【図2】本発明の一実施例の構成を示す図である。
【図3】1ビット〜248ビットに対する8ビット単位
のCRC計算テーブルを示す図である。
のCRC計算テーブルを示す図である。
【図4】249ビット,250ビットに対するCRC計
算テーブルを示す図である。
算テーブルを示す図である。
【図5】CRC処理の概要を示す図である。
【図6】本発明方式によるCRC演算を例示するもので
あって、(a)はCRC演算手順を示し、(b)は使用
するROMテーブルの一部を示す図である。
あって、(a)はCRC演算手順を示し、(b)は使用
するROMテーブルの一部を示す図である。
【図7】CRCテーブルの作成方法を示す図である。
【図8】CRC演算回路の構成を例示する図である。
【図9】従来のCRC演算方式を例示する図である。
101 処理手段 102 記憶手段
Claims (1)
- 【請求項1】 入力データに対して生成多項式によって
CRC演算を行って該入力データに対するCRCコード
の生成とCRCチェックとを行うCRCチェック方式に
おいて、 CRC演算を実行する処理手段(101)と、 前バイトにおけるCRC演算結果と現バイトの入力デー
タとをアドレスとして現バイトのCRC演算結果を格納
する記憶手段(102)とを備え、 複数バイトからなる入力データに対して、前記処理手段
(101)が、バイトごとに前記アドレスによって記憶
手段(102)を参照してCRC演算結果を求める処理
を、該入力データを構成する各バイトに対して順次実行
することによって、最終的に該入力データに対するCR
C演算結果を求めることを特徴とする高速CRCチェッ
ク方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6002939A JPH07212246A (ja) | 1994-01-17 | 1994-01-17 | 高速crcチェック方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6002939A JPH07212246A (ja) | 1994-01-17 | 1994-01-17 | 高速crcチェック方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07212246A true JPH07212246A (ja) | 1995-08-11 |
Family
ID=11543334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6002939A Pending JPH07212246A (ja) | 1994-01-17 | 1994-01-17 | 高速crcチェック方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07212246A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003018141A (ja) * | 2001-06-14 | 2003-01-17 | Fms Audio Sdn Bhd | ラジオ・データ・システムの同期方法 |
-
1994
- 1994-01-17 JP JP6002939A patent/JPH07212246A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003018141A (ja) * | 2001-06-14 | 2003-01-17 | Fms Audio Sdn Bhd | ラジオ・データ・システムの同期方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5269610B2 (ja) | ユーザレベル命令に応じた巡回冗長検査演算の実行 | |
JP2832899B2 (ja) | データ処理装置およびデータ処理方法 | |
JPH05113930A (ja) | フレキシブルなn−ウエイ・メモリ・インターリーブ方式 | |
US6560691B2 (en) | Modulus address generator and method for determining a modulus address | |
JP5143817B2 (ja) | ハッシュ暗号装置及び方法 | |
US6785798B2 (en) | Method and system for circular addressing with efficient memory usage | |
JPS632370B2 (ja) | ||
JPH07212246A (ja) | 高速crcチェック方式 | |
US5671238A (en) | Method and circuitry for generating r-bit parallel CRC code for an l-bit data source | |
US7181009B1 (en) | Generating message digests according to multiple hashing procedures | |
US5604842A (en) | Fuzzy reasoning processor and method, and rule setting apparatus and method | |
CN115664849A (zh) | Bmc及其加密数据生成系统、方法、设备及存储介质 | |
EP1039370B1 (en) | Modulo address generator and a method for implementing modulo addressing | |
JP2002185438A (ja) | Crc演算装置 | |
JP3071482B2 (ja) | パケット受信機の誤り訂正回路 | |
JP2819931B2 (ja) | マイクロプロセッサ | |
JP3164445B2 (ja) | 10進演算命令処理装置 | |
JPS6217256B2 (ja) | ||
JPH0224417B2 (ja) | ||
US6484288B1 (en) | Statistics signature generation and analysis | |
JPH01243136A (ja) | 論理シミュレーション方式 | |
JP3499481B2 (ja) | データ乗算装置 | |
US7032098B2 (en) | Data-driven type information processing apparatus and information processing method allowing for effective use of memory | |
KR100291718B1 (ko) | 순환 중복 검사 부호화 장치 | |
JPH09205372A (ja) | 符号訂正装置 |