JP2001168730A - データ送受信装置 - Google Patents
データ送受信装置Info
- Publication number
- JP2001168730A JP2001168730A JP34702499A JP34702499A JP2001168730A JP 2001168730 A JP2001168730 A JP 2001168730A JP 34702499 A JP34702499 A JP 34702499A JP 34702499 A JP34702499 A JP 34702499A JP 2001168730 A JP2001168730 A JP 2001168730A
- Authority
- JP
- Japan
- Prior art keywords
- data
- crc
- unit
- parallel
- transmission
- 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
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
(57)【要約】
【課題】CRC符号/復号部におけるCRC検査ビット
の生成やCRC検査の際に、パラレル形式のデータの転
送効率を低下させることなく、さらに少ないハードウェ
ア規模で実現できる前記CRC符号/復号部を備えるこ
とを特徴としたデータ送受信装置を提供することを課題
とする。 【解決手段】データ送受信装置におけるCRCの生成及
び検査に係わる除算処理は、複数の並列にモジュロ2演
算を行うことができるモジュールから構成し、これらモ
ジュールは繰り返し利用できるようにフィードバックル
ープ構成で配置する。
の生成やCRC検査の際に、パラレル形式のデータの転
送効率を低下させることなく、さらに少ないハードウェ
ア規模で実現できる前記CRC符号/復号部を備えるこ
とを特徴としたデータ送受信装置を提供することを課題
とする。 【解決手段】データ送受信装置におけるCRCの生成及
び検査に係わる除算処理は、複数の並列にモジュロ2演
算を行うことができるモジュールから構成し、これらモ
ジュールは繰り返し利用できるようにフィードバックル
ープ構成で配置する。
Description
【0001】
【発明の属する技術分野】本発明は、データ送受信装置
におけるCRC生成及びCRC検査技術に関するもので
ある。
におけるCRC生成及びCRC検査技術に関するもので
ある。
【0002】
【従来の技術】近年、情報通信の高速化や記録/再生シ
ステムの大容量化に伴い、通信データや記録/再生デー
タの信頼性向上を目的に、符号誤り訂正技術が重要にな
ってきている。符号誤り訂正技術とは、’0’と’1’
のビット列によって表現されたディジタル情報に、誤り
訂正符号と呼ばれる冗長性を付加することによって、通
信や記録/再生の過程において生じるデータの誤りを検
出/訂正することを可能にする技術である。このような
誤り訂正符号の生成及び検査手法には、古くから様々な
方式が提案されている。その中で、現在、データ通信及
び記録/再生システムにおいて最もよく用いられている
手法に巡回冗長検査(Cyclic Redundan
cy Code Check、以下CRC検査と略す)
方式がある。
ステムの大容量化に伴い、通信データや記録/再生デー
タの信頼性向上を目的に、符号誤り訂正技術が重要にな
ってきている。符号誤り訂正技術とは、’0’と’1’
のビット列によって表現されたディジタル情報に、誤り
訂正符号と呼ばれる冗長性を付加することによって、通
信や記録/再生の過程において生じるデータの誤りを検
出/訂正することを可能にする技術である。このような
誤り訂正符号の生成及び検査手法には、古くから様々な
方式が提案されている。その中で、現在、データ通信及
び記録/再生システムにおいて最もよく用いられている
手法に巡回冗長検査(Cyclic Redundan
cy Code Check、以下CRC検査と略す)
方式がある。
【0003】このCRC検査方式は、例えばATM(A
synchronous Transfer Mod
e)のセル部分の誤り検出/訂正に用いられたり、また
パソコン通信におけるX−modemプロトコルやIE
EE802、高速シリアルデータ転送を提供するUSB
(Universal Serial Bus)やIE
EE1394等で採用されている。ここで、図2を用い
てCRC検査方式を採用したデータ送受信装置について
説明する。但し、一般的に一つのデータ送受信装置は送
信部及び受信部を一対以上備えているが、図2では説明
の理解を容易にするために、送信側は送信部のみを、受
信側は受信部のみを示している。
synchronous Transfer Mod
e)のセル部分の誤り検出/訂正に用いられたり、また
パソコン通信におけるX−modemプロトコルやIE
EE802、高速シリアルデータ転送を提供するUSB
(Universal Serial Bus)やIE
EE1394等で採用されている。ここで、図2を用い
てCRC検査方式を採用したデータ送受信装置について
説明する。但し、一般的に一つのデータ送受信装置は送
信部及び受信部を一対以上備えているが、図2では説明
の理解を容易にするために、送信側は送信部のみを、受
信側は受信部のみを示している。
【0004】図示するように、前記データ送受信装置の
送信部は、CRC符号部6と、データ送信処理部7と、
内部データバス15から構成され、前記CRC符号部6
は、データ入力部2と、データ転位部3と、CRC生成
部4と、CRC付加部5からなる。一方、受信部は、デ
ータ受信処理部9と、CRC復号部14と、内部データ
バス16から構成され、前記CRC復号部14は、CR
C検査部10と、CRC判定部11と、データ出力部1
2と、CRC判定結果通知手段13からなる。また、前
記データ送信処理部7と前記データ受信処理部9はデー
タ伝送手段8を介して接続され、両者の間でデータの送
受信が可能であるように構成している。
送信部は、CRC符号部6と、データ送信処理部7と、
内部データバス15から構成され、前記CRC符号部6
は、データ入力部2と、データ転位部3と、CRC生成
部4と、CRC付加部5からなる。一方、受信部は、デ
ータ受信処理部9と、CRC復号部14と、内部データ
バス16から構成され、前記CRC復号部14は、CR
C検査部10と、CRC判定部11と、データ出力部1
2と、CRC判定結果通知手段13からなる。また、前
記データ送信処理部7と前記データ受信処理部9はデー
タ伝送手段8を介して接続され、両者の間でデータの送
受信が可能であるように構成している。
【0005】以下、各機能部の詳細な説明を行う。
【0006】CRC符号部6のデータ入力部2は、内部
データバス15より伝送される’0’もしくは’1’の
ビット列からなるシリアルデータ(送信データ)P
(X)1を受け取るインターフェイス手段である。とこ
ろでCRC検査方式では、CRCの検査ビットを生成す
る際に、CRC符号部に入力されるシリアルデータを高
次の多項式とみなす。つまり前記入力シリアルデータを
構成するビット列をb1、b2、・・・bn-1、bnとした
とき、前記シリアルデータP(X)1は、以下式1のよ
うな高次多項式で定義する。
データバス15より伝送される’0’もしくは’1’の
ビット列からなるシリアルデータ(送信データ)P
(X)1を受け取るインターフェイス手段である。とこ
ろでCRC検査方式では、CRCの検査ビットを生成す
る際に、CRC符号部に入力されるシリアルデータを高
次の多項式とみなす。つまり前記入力シリアルデータを
構成するビット列をb1、b2、・・・bn-1、bnとした
とき、前記シリアルデータP(X)1は、以下式1のよ
うな高次多項式で定義する。
【0007】
【数1】 P(X)= b1Xn- 1+b2Xn- 2+・・・+bn-1X+bn(式1) 但し、bi=1または0(i=1〜n)である。データ
転位部3は、前記入力シリアルデータP(X)1をCR
C生成部4に適合するデータ形式に変換する前処理手段
であり、CRCの検査ビットを生成するために使用す
る、以下式2で定義する生成多項式G(X)の最高次数
Xmを掛ける処理を行う。
転位部3は、前記入力シリアルデータP(X)1をCR
C生成部4に適合するデータ形式に変換する前処理手段
であり、CRCの検査ビットを生成するために使用す
る、以下式2で定義する生成多項式G(X)の最高次数
Xmを掛ける処理を行う。
【0008】
【数2】 G(X)= a1Xm+a2Xm- 1+・・・+amX+am+1(式2) 但し、ai=1または0(i=1〜n)である。CRC
生成部4は、前記データ転位部3で生成したXmP
(X)と、前記生成多項式G(X)をモジュロ2演算
し、余りである剰余多項式R(X)を求める。このとき
前記剰余多項式R(X)は、以下式3のように表すこと
ができ、この式3の各係数であるc1、c2、・・・、c
mが、前記入力シリアルデータP(X)1に対するCR
Cの検査ビットとなる。ここでモジュロ2演算とは、乗
算や除算を行う際に桁上がりや桁下がりを一切行わない
演算であり、このモジュロ2演算により直接剰余多項式
を求めることができる。また、モジュロ2演算は論理演
算ではEXOR(排他的論理和)で表すことができる。
生成部4は、前記データ転位部3で生成したXmP
(X)と、前記生成多項式G(X)をモジュロ2演算
し、余りである剰余多項式R(X)を求める。このとき
前記剰余多項式R(X)は、以下式3のように表すこと
ができ、この式3の各係数であるc1、c2、・・・、c
mが、前記入力シリアルデータP(X)1に対するCR
Cの検査ビットとなる。ここでモジュロ2演算とは、乗
算や除算を行う際に桁上がりや桁下がりを一切行わない
演算であり、このモジュロ2演算により直接剰余多項式
を求めることができる。また、モジュロ2演算は論理演
算ではEXOR(排他的論理和)で表すことができる。
【0009】
【数3】 R(X)= c1Xm- 1+c2Xm- 2+・・・+cm-1X+cm(式3) 但し、ci=1または0(i=1〜n)である。CRC
付加部5は、前記CRC生成部4で生成された剰余多項
式R(X)と、前記データ転位部3において生成された
XmP(X)を加算し、CRCの検査ビットが付加され
た入力シリアルデータF(X)を合成する。データ送信
処理部7は、前記CRC付加部5で合成された前記CR
C付きシリアルデータF(X)を、データ伝送手段8に
適合するデータ形式に変換し、前記データ伝送手段8に
送出する。
付加部5は、前記CRC生成部4で生成された剰余多項
式R(X)と、前記データ転位部3において生成された
XmP(X)を加算し、CRCの検査ビットが付加され
た入力シリアルデータF(X)を合成する。データ送信
処理部7は、前記CRC付加部5で合成された前記CR
C付きシリアルデータF(X)を、データ伝送手段8に
適合するデータ形式に変換し、前記データ伝送手段8に
送出する。
【0010】一方、受信側のデータ受信処理部9は、デ
ータ伝送手段8を伝送してくる前記変換後のCRC付き
シリアルデータ(受信データ)F(X)を受け取り、C
RC復号部14に適合するデータ形式に再度変換した
後、CRC検査部10に転送する。CRC復号部14の
CRC検査部10は、前記データ受信処理部9から転送
されるCRC付きシリアルデータF(X)と、前記生成
多項式G(X)をモジュロ2演算し、剰余多項式H
(X)を求める。CRC判定部11は、前記CRC検査
部10が出力する剰余多項式H(X)を参照し、前記剰
余多項式H(X)が0の場合、前記データ伝送手段8に
おいてデータ列(ビット列)に誤りは発生せず正常に受
信できたと判断する。その後、CRC判定通知手段13
を用いてデータ受信に成功した旨を送信側に通知する。
一方、前記剰余多項式H(X)が0でない場合、前記デ
ータ伝送手段8においてデータに誤りが発生したと判断
する。その後、前記CRC判定通知手段13を用いて受
信に失敗した旨と、例えば再送の要求等を送信側に通知
する。データ出力部12は、前記CRC判定部11の判
定結果に従い、正常に受信できた場合には、受信データ
からCRCの検査ビットを除去し、復元された前記入力
シリアルデータP(X)1をデータバス16に送出す
る。一方、正常に受信できなかった場合には、受信デー
タは破棄する。
ータ伝送手段8を伝送してくる前記変換後のCRC付き
シリアルデータ(受信データ)F(X)を受け取り、C
RC復号部14に適合するデータ形式に再度変換した
後、CRC検査部10に転送する。CRC復号部14の
CRC検査部10は、前記データ受信処理部9から転送
されるCRC付きシリアルデータF(X)と、前記生成
多項式G(X)をモジュロ2演算し、剰余多項式H
(X)を求める。CRC判定部11は、前記CRC検査
部10が出力する剰余多項式H(X)を参照し、前記剰
余多項式H(X)が0の場合、前記データ伝送手段8に
おいてデータ列(ビット列)に誤りは発生せず正常に受
信できたと判断する。その後、CRC判定通知手段13
を用いてデータ受信に成功した旨を送信側に通知する。
一方、前記剰余多項式H(X)が0でない場合、前記デ
ータ伝送手段8においてデータに誤りが発生したと判断
する。その後、前記CRC判定通知手段13を用いて受
信に失敗した旨と、例えば再送の要求等を送信側に通知
する。データ出力部12は、前記CRC判定部11の判
定結果に従い、正常に受信できた場合には、受信データ
からCRCの検査ビットを除去し、復元された前記入力
シリアルデータP(X)1をデータバス16に送出す
る。一方、正常に受信できなかった場合には、受信デー
タは破棄する。
【0011】ところで生成多項式G(X)は、データに
付加するCRCの検査ビット長やデータの通信プロトコ
ルに依存して数種類規定されているが、検査ビット長が
8ビット、16ビット、32ビットの生成多項式がよく
用いられている。
付加するCRCの検査ビット長やデータの通信プロトコ
ルに依存して数種類規定されているが、検査ビット長が
8ビット、16ビット、32ビットの生成多項式がよく
用いられている。
【0012】以上の説明を、さらに具体的な例を示して
補足する。いま、図2に示す入力シリアルデータ(送信
データ)P(X)1のシリアルデータ列bnを(100
1000000111001)とすると、前記式1は以
下式4のように表すことができる。
補足する。いま、図2に示す入力シリアルデータ(送信
データ)P(X)1のシリアルデータ列bnを(100
1000000111001)とすると、前記式1は以
下式4のように表すことができる。
【0013】
【数4】 P(X)= X15+X12+X5+X4+X3+1(式4) また、CRCの検査ビット長を8ビットとし、以下式5
に示す生成多項式G(X)を用いることにする。
に示す生成多項式G(X)を用いることにする。
【0014】
【数5】G(X)= X8+X2+X+1(式5) これら式4及び式5からモジュロ2演算により求められ
る剰余多項式R(X)は、以下式6のようになる。この
式6からCRCの検査ビットは(01001110)で
ある。
る剰余多項式R(X)は、以下式6のようになる。この
式6からCRCの検査ビットは(01001110)で
ある。
【0015】
【数6】R(X)= X6+X3+X2+X(式6) これより、図2におけるデータ送信処理部7に転送され
るCRC付きシリアルデータF(X)は、以下式7のよ
うに表すことができる。ゆえに、受信側に送信されるシ
リアルデータ列は(1001000000111001
01001110)である。
るCRC付きシリアルデータF(X)は、以下式7のよ
うに表すことができる。ゆえに、受信側に送信されるシ
リアルデータ列は(1001000000111001
01001110)である。
【0016】
【数7】 F(X)= X23+X20+X13+X12+X11+X8+X6+X3+X2+X(式7) 一方、受信側では、前記式7に示したCRC付きシリア
ルデータF(X)を受信したとすると、前記CRC付き
シリアルデータF(X)と前記式4に示した生成多項式
G(X)をモジュロ2演算する。このとき剰余多項式H
(X)は、0となる。これより、前記CRC付きシリア
ルデータF(X)からCRCの検査ビット(01001
110)を除いた(100100000011100
1)が、図2における内部データバス16に送出され
る。
ルデータF(X)を受信したとすると、前記CRC付き
シリアルデータF(X)と前記式4に示した生成多項式
G(X)をモジュロ2演算する。このとき剰余多項式H
(X)は、0となる。これより、前記CRC付きシリア
ルデータF(X)からCRCの検査ビット(01001
110)を除いた(100100000011100
1)が、図2における内部データバス16に送出され
る。
【0017】次に、図2に示したデータ送受信装置のC
RC符号部6及びCRC復号部14を実現するハードウ
ェア構成を、図3及び図5を用いて説明する。但し、生
成多項式G(X)は、上記具体例で用いた前記式5に示
すものを採用することにする。
RC符号部6及びCRC復号部14を実現するハードウ
ェア構成を、図3及び図5を用いて説明する。但し、生
成多項式G(X)は、上記具体例で用いた前記式5に示
すものを採用することにする。
【0018】図3に示すように、CRC符号部の構成
は、前記生成多項式G(X)の最高次数8にしたがって
入力シリアルデータP(X)1の末尾に、8個の0デー
タを付加するデータ拡張部20と、ある基準信号(例え
ば基準クロック信号等)に同期して順次データをシフト
する8個のシフトレジスタR1(22)、R2(2
3)、R3(24)、R4(25)、R5(26)R6
(27)、R7(28)、R8(29)と、モジュロ2
演算を行うため前記生成多項式G(X)の係数に従って
配置された、3個のEXOR演算器30とからなる除算
処理部21と、前記除算処理部における処理時間を考慮
し、前記入力シリアルデータP(X)1を一時的に格納
するためのデータ格納部31と、前記除算処理部21を
出力したCRCの検査ビットに前記データ格納部31か
らの出力データを付加し、CRC付きシリアルデータF
(X)32を生成、出力するCRC付加部5から構成さ
れる。ところで、前記データ拡張部20、前記除算処理
部21は、図2においてそれぞれデータ転位部3、CR
C生成部4に相当する。ここで図4に、図3に示す除算
処理部21に、データ拡張部20を通過したシリアルデ
ータが順次入力された際の、各シフトレジスタR1(2
2)〜R8(29)の内容の変化を示す。図示するよう
に、シリアルデータ(100100000011100
100000000)40を順次入力していくと、シフ
トレジスタR1(22)〜R8(29)の値は前状態に
依存して変化していく。そして前記シリアルデータ40
の入力が終了したとき、前記シリアルデータ40に対す
るCRCの検査ビット42が、前記シフトレジスタR1
(22)〜R8(29)格納されている。但し、シフト
レジスタR1(22)〜R8(29)の初期値41は0
とする。
は、前記生成多項式G(X)の最高次数8にしたがって
入力シリアルデータP(X)1の末尾に、8個の0デー
タを付加するデータ拡張部20と、ある基準信号(例え
ば基準クロック信号等)に同期して順次データをシフト
する8個のシフトレジスタR1(22)、R2(2
3)、R3(24)、R4(25)、R5(26)R6
(27)、R7(28)、R8(29)と、モジュロ2
演算を行うため前記生成多項式G(X)の係数に従って
配置された、3個のEXOR演算器30とからなる除算
処理部21と、前記除算処理部における処理時間を考慮
し、前記入力シリアルデータP(X)1を一時的に格納
するためのデータ格納部31と、前記除算処理部21を
出力したCRCの検査ビットに前記データ格納部31か
らの出力データを付加し、CRC付きシリアルデータF
(X)32を生成、出力するCRC付加部5から構成さ
れる。ところで、前記データ拡張部20、前記除算処理
部21は、図2においてそれぞれデータ転位部3、CR
C生成部4に相当する。ここで図4に、図3に示す除算
処理部21に、データ拡張部20を通過したシリアルデ
ータが順次入力された際の、各シフトレジスタR1(2
2)〜R8(29)の内容の変化を示す。図示するよう
に、シリアルデータ(100100000011100
100000000)40を順次入力していくと、シフ
トレジスタR1(22)〜R8(29)の値は前状態に
依存して変化していく。そして前記シリアルデータ40
の入力が終了したとき、前記シリアルデータ40に対す
るCRCの検査ビット42が、前記シフトレジスタR1
(22)〜R8(29)格納されている。但し、シフト
レジスタR1(22)〜R8(29)の初期値41は0
とする。
【0019】次に図5に示すように、CRC復号部は、
ある基準信号(例えば基準クロック信号等)に同期して
データを順次シフトする8個のシフトレジスタR1(2
2)、R2(23)、R3(24)、R4(25)、R
5(26)R6(27)、R7(28)、R8(29)
と、モジュロ2演算を行うための3個のEXOR演算器
30とからなる除算処理部33と、前記除算処理部にお
ける処理時間を考慮し、CRC付きシリアルデータF
(X)32を一時的に格納するためのデータ格納部34
と、前記除算処理部33の結果が0か否かを判定するC
RC判定部11と、前記CRC判定部11の判断に応じ
て前記データ格納部35に格納されたデータを送出する
データ出力部12から構成される。ところで、前記除算
処理部33は図2におけるCRC検査部10に相当す
る。ここで、図5における除算処理部33にCRC付き
シリアルデータF(X)32を順次入力した際の、各シ
フトレジスタR1(22)〜R8(29)の内容を図6
に示す。図示するように、シリアルデータ(10010
0000011100101001110)45を順次
入力すると、シフトレジスタR1(22)〜R8(2
9)の値は前状態に依存して変化していく。そして前記
シリアルデータ45の入力が終了すると、前記シフトレ
ジスタR1(22)〜R8(29)に余り47が格納さ
れる。但し、シフトレジスタR1(22)〜R8(2
9)の初期値46は0とする。
ある基準信号(例えば基準クロック信号等)に同期して
データを順次シフトする8個のシフトレジスタR1(2
2)、R2(23)、R3(24)、R4(25)、R
5(26)R6(27)、R7(28)、R8(29)
と、モジュロ2演算を行うための3個のEXOR演算器
30とからなる除算処理部33と、前記除算処理部にお
ける処理時間を考慮し、CRC付きシリアルデータF
(X)32を一時的に格納するためのデータ格納部34
と、前記除算処理部33の結果が0か否かを判定するC
RC判定部11と、前記CRC判定部11の判断に応じ
て前記データ格納部35に格納されたデータを送出する
データ出力部12から構成される。ところで、前記除算
処理部33は図2におけるCRC検査部10に相当す
る。ここで、図5における除算処理部33にCRC付き
シリアルデータF(X)32を順次入力した際の、各シ
フトレジスタR1(22)〜R8(29)の内容を図6
に示す。図示するように、シリアルデータ(10010
0000011100101001110)45を順次
入力すると、シフトレジスタR1(22)〜R8(2
9)の値は前状態に依存して変化していく。そして前記
シリアルデータ45の入力が終了すると、前記シフトレ
ジスタR1(22)〜R8(29)に余り47が格納さ
れる。但し、シフトレジスタR1(22)〜R8(2
9)の初期値46は0とする。
【0020】
【発明が解決しようとする課題】先に説明したように、
図2に示すデータ送受信装置によれば、CRC符号部6
及びCRC復号部14への入力及び出力データ形式は、
1ビットのシリアルデータでなければならない。しか
し、一般的に装置の内部データバス15及びデータバス
16の構成は、一般的に8ビット、16ビット、32ビ
ット等のパラレルバスである。そのため図7に示すよう
に、送信側において、内部データバス(パラレルバス)
50からCRC符号部6に送信データを入力するために
は、前記CRC符号部6の前段にパラレルデータをシリ
アルデータに変換するためのパラレル−シリアル変換部
51を設けなければならない。また受信側において、内
部データバス(パラレルバス)55がパラレルバスであ
る場合には、CRC復号部14の後段にシリアルデータ
をパラレルデータに変換するためのシリアル−パラレル
変換部54を設けなければならない。
図2に示すデータ送受信装置によれば、CRC符号部6
及びCRC復号部14への入力及び出力データ形式は、
1ビットのシリアルデータでなければならない。しか
し、一般的に装置の内部データバス15及びデータバス
16の構成は、一般的に8ビット、16ビット、32ビ
ット等のパラレルバスである。そのため図7に示すよう
に、送信側において、内部データバス(パラレルバス)
50からCRC符号部6に送信データを入力するために
は、前記CRC符号部6の前段にパラレルデータをシリ
アルデータに変換するためのパラレル−シリアル変換部
51を設けなければならない。また受信側において、内
部データバス(パラレルバス)55がパラレルバスであ
る場合には、CRC復号部14の後段にシリアルデータ
をパラレルデータに変換するためのシリアル−パラレル
変換部54を設けなければならない。
【0021】ところで、IEEE802プロトコルやU
SB、IEEE1394プロトコルに準拠するデータ送
受信装置においては、図7に示すデータ送信処理部7、
またはデータ受信処理部9を含む階層部を物理層処理部
と呼ぶ。また、CRC符号部6及びCRC復号部14等
の処理を行う前記物理層処理部よりも上位に位置する階
層部をリンク層処理部と呼ぶ。またIEEE1394プ
ロトコルの規格によれば、前記物理層処理部と前記リン
ク層処理部の間のデータは、8ビットのパラレルバスで
転送することが規定されている。このため、図2に示す
データ送受信装置におけるCRC符号部6やCRC復号
部14を、前記IEEE1394プロトコルに準拠する
データ送受信装置に適用する場合には、図7に示すよう
に、送信側においてシリアル−パラレル変換部52を設
けなければならない。一方受信側においては、パラレル
−シリアル変換部53を設けなければならない。
SB、IEEE1394プロトコルに準拠するデータ送
受信装置においては、図7に示すデータ送信処理部7、
またはデータ受信処理部9を含む階層部を物理層処理部
と呼ぶ。また、CRC符号部6及びCRC復号部14等
の処理を行う前記物理層処理部よりも上位に位置する階
層部をリンク層処理部と呼ぶ。またIEEE1394プ
ロトコルの規格によれば、前記物理層処理部と前記リン
ク層処理部の間のデータは、8ビットのパラレルバスで
転送することが規定されている。このため、図2に示す
データ送受信装置におけるCRC符号部6やCRC復号
部14を、前記IEEE1394プロトコルに準拠する
データ送受信装置に適用する場合には、図7に示すよう
に、送信側においてシリアル−パラレル変換部52を設
けなければならない。一方受信側においては、パラレル
−シリアル変換部53を設けなければならない。
【0022】このようなパラレル−シリアル変換やシリ
アル−パラレル変換は、その変換の前後において、デー
タの転送効率が著しく低下するという問題がある。例え
ば、1クロック当たり8ビットのパラレルデータを1ビ
ットのシリアルデータに変換する場合には、少なくとも
8クロックの変換時間を必要とする。さらに、変換時間
中に到着する新たな8ビットのパラレルデータはシリア
ルデータに変換されるまでに、前記既に到着済のパラレ
ルデータの変換が完了するまで、数クロックの間待機し
なければならない。また、1ビットのシリアルデータを
8ビットのパラレルデータに変換する場合には、少なく
とも8クロックの間シリアルデータの到着を待たなけれ
ばならない。一方、パラレル−シリアル変換において
は、前記シリアルデータへの変換を待機しているパラレ
ルデータを一時的に蓄えておく記憶手段が必要となり、
ハードウェア規模の増大を招くという問題がある。
アル−パラレル変換は、その変換の前後において、デー
タの転送効率が著しく低下するという問題がある。例え
ば、1クロック当たり8ビットのパラレルデータを1ビ
ットのシリアルデータに変換する場合には、少なくとも
8クロックの変換時間を必要とする。さらに、変換時間
中に到着する新たな8ビットのパラレルデータはシリア
ルデータに変換されるまでに、前記既に到着済のパラレ
ルデータの変換が完了するまで、数クロックの間待機し
なければならない。また、1ビットのシリアルデータを
8ビットのパラレルデータに変換する場合には、少なく
とも8クロックの間シリアルデータの到着を待たなけれ
ばならない。一方、パラレル−シリアル変換において
は、前記シリアルデータへの変換を待機しているパラレ
ルデータを一時的に蓄えておく記憶手段が必要となり、
ハードウェア規模の増大を招くという問題がある。
【0023】そこで本発明は上記の問題点を解決するた
めに、パラレル形式のデータをシリアル形式のデータに
変換することなく、直接パラレルデータからCRC検査
ビットを生成、及びCRCの検査を行うことができ、さ
らにCRC符号部及び復号部は少ないハードウェア規模
で実現できることを特徴とするデータ送受信装置を提供
することを課題とする。
めに、パラレル形式のデータをシリアル形式のデータに
変換することなく、直接パラレルデータからCRC検査
ビットを生成、及びCRCの検査を行うことができ、さ
らにCRC符号部及び復号部は少ないハードウェア規模
で実現できることを特徴とするデータ送受信装置を提供
することを課題とする。
【0024】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、データ送受信装置のCRC符号部及びC
RC復号部における、CRC生成部及びCRC検査部の
除算処理は、パラレルデータをシリアルデータに変換す
ることなく、送信データのCRC検査ビットの生成や、
受信データのCRC検査を行うことを可能とする並列除
算処理部を備え、前記並列除算処理部の構成は、複数の
モジュロ2演算を行うことができる並列除算モジュール
からなる。さらに前記モジュールは繰り返し利用できる
ようにフィードバックループ構成で配置するようにし、
ハードウェアリソースを効率良く使用する。
に、本発明は、データ送受信装置のCRC符号部及びC
RC復号部における、CRC生成部及びCRC検査部の
除算処理は、パラレルデータをシリアルデータに変換す
ることなく、送信データのCRC検査ビットの生成や、
受信データのCRC検査を行うことを可能とする並列除
算処理部を備え、前記並列除算処理部の構成は、複数の
モジュロ2演算を行うことができる並列除算モジュール
からなる。さらに前記モジュールは繰り返し利用できる
ようにフィードバックループ構成で配置するようにし、
ハードウェアリソースを効率良く使用する。
【0025】このようなデータ送受信装置によれば、送
信データ及び受信データの転送効率を低下させることな
くCRCの生成/付加やCRCの検査を行うことがで
き、また、少ないハードウェア量で前記除算処理部を構
成することができ、しいては装置全体のハードウェア規
模を減らすことができる。
信データ及び受信データの転送効率を低下させることな
くCRCの生成/付加やCRCの検査を行うことがで
き、また、少ないハードウェア量で前記除算処理部を構
成することができ、しいては装置全体のハードウェア規
模を減らすことができる。
【0026】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。
て説明する。
【0027】図1に、本発明の第1の実施形態に係わる
データ送受信装置の構成を示す。
データ送受信装置の構成を示す。
【0028】図示するように本データ送受信装置は、中
央処理装置100と、メインメモリ101と、データ格
納装置102と、ホストバスI/F104と、CRC符
号部109と、CRC復号部110と、データ送受信処
理部113から構成される。また、中央処理装置100
と、メインメモリ101と、データ格納装置102と、
ホストバスI/F104は、パラレル形式のホストバス
103によって接続され、各機能要素間で必要な情報の
伝送が可能であるように構成している。さらに、ホスト
バスI/F104とCRC符号部109を接続するデー
タバス105と、ホストバスI/F104とCRC復号
部110を接続するデータバス106と、データ送受信
処理部113とCRC符号部109を接続するデータバ
ス111と、データ送受信処理部113とCRC復号部
110を接続するデータバス112は、それぞれパラレ
ル形式のバスであり、特にIEEE1394プロトコル
用データ送受信装置の場合には、前記バス111及び1
12は8ビットのパラレルバスである。
央処理装置100と、メインメモリ101と、データ格
納装置102と、ホストバスI/F104と、CRC符
号部109と、CRC復号部110と、データ送受信処
理部113から構成される。また、中央処理装置100
と、メインメモリ101と、データ格納装置102と、
ホストバスI/F104は、パラレル形式のホストバス
103によって接続され、各機能要素間で必要な情報の
伝送が可能であるように構成している。さらに、ホスト
バスI/F104とCRC符号部109を接続するデー
タバス105と、ホストバスI/F104とCRC復号
部110を接続するデータバス106と、データ送受信
処理部113とCRC符号部109を接続するデータバ
ス111と、データ送受信処理部113とCRC復号部
110を接続するデータバス112は、それぞれパラレ
ル形式のバスであり、特にIEEE1394プロトコル
用データ送受信装置の場合には、前記バス111及び1
12は8ビットのパラレルバスである。
【0029】中央処理装置100は、マイクロプロセッ
サを主体に構成され、メインメモリ101等に格納して
いるソフトウェアプログラムにしたがって処理を実行す
る。メインメモリ101は、ランダムアクセスメモリや
リードオンリメモリの組み合わせなどによって構成さ
れ、中央処理装置100の作業メモリとして機能した
り、中央処理装置100の動作手順を規定するソフトウ
ェアプログラムや、中央処理装置100によって処理さ
れるべきデータを記憶するための格納手段として使用さ
れる。データ格納装置102は、CRC符号部109へ
転送する送信データやCRC復号部110から転送され
る受信データの格納場所として使用され、ハードディス
ク装置やMO(Magneto−optics)ディス
ク装置等の組み合わせによって構成される。ホストバス
I/F104は、前記メインメモリ101や前記データ
格納装置102に蓄えられた送信データをCRC符号部
109に転送する場合や、受信データをCRC復号部1
10から前記メインメモリ101や前記データ格納装置
102に格納する場合において、CRC符号部109の
処理状況や、ホストバス103の使用(混雑)状況に応
じて、前記送信データや前記受信データの転送量を調節
する。さらにホストバス103と、データバス105及
びデータバス106のバス幅が異なる場合には、バス幅
の変換処理を行う。前記ホストバスI/F104は、F
IFOメモリやバッファメモリ等で実現される。CRC
符号部109は、データ拡張部20と、並列除算処理部
107と、CRC付加部5からなり、前記ホストバスI
/F104からデータバス105を経由して転送される
パラレルの送信データに対して、CRC検査方式に基づ
く検査ビットの生成/付加を行い、データ送受信処理部
113に対してCRC付き送信データを送出する。デー
タ拡張部20は、CRCの検査ビット生成時に使用する
生成多項式の最高次数に応じて、前記送信データの最後
尾に複数の0データを追加する。並列除算処理部107
は、前記データ拡張部20を出力した拡張送信データ
を、パラレルデータのまま生成多項式とモジュロ2演算
し、CRCの検査ビットを生成する。CRC付加部5
は、CRC符号部109に入力したデータの最後尾に、
前記並列除算処理部107から出力した前記CRC検査
ビットを付加し、CRC付きデータをデータ送受信処理
部113に転送する。CRC復号部110は、並列演算
処理部108と、CRC判定部11と、データ出力部1
2からなり、データ送受信処理部113から転送される
パラレルの受信データに対して、CRC検査方式に基づ
く検査/判定を行う。並列除算処理部108は、受信デ
ータをパラレルデータのまま、前記CRCの検査ビット
生成時に使用した生成多項式とモジュロ2演算し、その
余りを求める。CRC判定部11は、前記余りが0であ
る場合には受信データが正しいと判断し、データ出力部
12に対して、現在CRC復号部110に入力している
受信データを、ホストバスI/F104に対して送出し
てもよいことを通知する。データ出力部12は、前記C
RC判定部11の判定に基づき、前記現在CRC復号部
110に入力している受信データ、もしくは前記受信デ
ータの末尾に付加されているCRCの検査ビットを取り
除いたデータを、ホストバスI/F104に送出する。
サを主体に構成され、メインメモリ101等に格納して
いるソフトウェアプログラムにしたがって処理を実行す
る。メインメモリ101は、ランダムアクセスメモリや
リードオンリメモリの組み合わせなどによって構成さ
れ、中央処理装置100の作業メモリとして機能した
り、中央処理装置100の動作手順を規定するソフトウ
ェアプログラムや、中央処理装置100によって処理さ
れるべきデータを記憶するための格納手段として使用さ
れる。データ格納装置102は、CRC符号部109へ
転送する送信データやCRC復号部110から転送され
る受信データの格納場所として使用され、ハードディス
ク装置やMO(Magneto−optics)ディス
ク装置等の組み合わせによって構成される。ホストバス
I/F104は、前記メインメモリ101や前記データ
格納装置102に蓄えられた送信データをCRC符号部
109に転送する場合や、受信データをCRC復号部1
10から前記メインメモリ101や前記データ格納装置
102に格納する場合において、CRC符号部109の
処理状況や、ホストバス103の使用(混雑)状況に応
じて、前記送信データや前記受信データの転送量を調節
する。さらにホストバス103と、データバス105及
びデータバス106のバス幅が異なる場合には、バス幅
の変換処理を行う。前記ホストバスI/F104は、F
IFOメモリやバッファメモリ等で実現される。CRC
符号部109は、データ拡張部20と、並列除算処理部
107と、CRC付加部5からなり、前記ホストバスI
/F104からデータバス105を経由して転送される
パラレルの送信データに対して、CRC検査方式に基づ
く検査ビットの生成/付加を行い、データ送受信処理部
113に対してCRC付き送信データを送出する。デー
タ拡張部20は、CRCの検査ビット生成時に使用する
生成多項式の最高次数に応じて、前記送信データの最後
尾に複数の0データを追加する。並列除算処理部107
は、前記データ拡張部20を出力した拡張送信データ
を、パラレルデータのまま生成多項式とモジュロ2演算
し、CRCの検査ビットを生成する。CRC付加部5
は、CRC符号部109に入力したデータの最後尾に、
前記並列除算処理部107から出力した前記CRC検査
ビットを付加し、CRC付きデータをデータ送受信処理
部113に転送する。CRC復号部110は、並列演算
処理部108と、CRC判定部11と、データ出力部1
2からなり、データ送受信処理部113から転送される
パラレルの受信データに対して、CRC検査方式に基づ
く検査/判定を行う。並列除算処理部108は、受信デ
ータをパラレルデータのまま、前記CRCの検査ビット
生成時に使用した生成多項式とモジュロ2演算し、その
余りを求める。CRC判定部11は、前記余りが0であ
る場合には受信データが正しいと判断し、データ出力部
12に対して、現在CRC復号部110に入力している
受信データを、ホストバスI/F104に対して送出し
てもよいことを通知する。データ出力部12は、前記C
RC判定部11の判定に基づき、前記現在CRC復号部
110に入力している受信データ、もしくは前記受信デ
ータの末尾に付加されているCRCの検査ビットを取り
除いたデータを、ホストバスI/F104に送出する。
【0030】次に、図1に示した第1の実施形態に係わ
るデータ送受信装置の並列除算処理部107及び108
を、図8を用いて説明する。まず、パラレルデータから
CRCの検査ビットを生成する方法について、図9及び
図10を用いて説明する。図9に示すように、例えば前
記式5に示した生成多項式により、16ビットの送信デ
ータ70からパラレルデータのまま、CRCの検査ビッ
ト74を生成する並列除算処理部の構成は、生成多項式
の係数が0でない次数位置に配置したEXOR演算器7
3を、順次1ビットずつシフトさせ、合計16段設ける
ことによって実現することができる。ここで、前記並列
除算処理部に入力される送信データ72は、16ビット
の送信データ70に8ビットの0データ71を拡張する
ことから、合計で24ビットとなる。一方、CRCの検
査を行う方法は、図9における前記送信データ72の代
わりにCRC付きの受信データを入力することによっ
て、前記CRCの検査ビット74の代わりに余りを得る
ことができる。
るデータ送受信装置の並列除算処理部107及び108
を、図8を用いて説明する。まず、パラレルデータから
CRCの検査ビットを生成する方法について、図9及び
図10を用いて説明する。図9に示すように、例えば前
記式5に示した生成多項式により、16ビットの送信デ
ータ70からパラレルデータのまま、CRCの検査ビッ
ト74を生成する並列除算処理部の構成は、生成多項式
の係数が0でない次数位置に配置したEXOR演算器7
3を、順次1ビットずつシフトさせ、合計16段設ける
ことによって実現することができる。ここで、前記並列
除算処理部に入力される送信データ72は、16ビット
の送信データ70に8ビットの0データ71を拡張する
ことから、合計で24ビットとなる。一方、CRCの検
査を行う方法は、図9における前記送信データ72の代
わりにCRC付きの受信データを入力することによっ
て、前記CRCの検査ビット74の代わりに余りを得る
ことができる。
【0031】しかし、上記のような構成の並列除算処理
部によれば、送受信データのビット長(ビット幅)が増
加すると、それに伴い前記並列除算部への入力ビット幅
も増大することになる。すなわち、前記EXOR演算器
73の段数が増加することになり、並列除算処理部にお
ける論理規模が増大してしまうという問題がある。ま
た、前記EXOR演算器73の段数が増加すると、各ビ
ット間に生じるデータ遅延のばらつきが大きくなり、正
確な演算結果が得られなかったり、前記並列除算処理部
より後段における処理のタイミング調整が難しくなると
いう問題もある。
部によれば、送受信データのビット長(ビット幅)が増
加すると、それに伴い前記並列除算部への入力ビット幅
も増大することになる。すなわち、前記EXOR演算器
73の段数が増加することになり、並列除算処理部にお
ける論理規模が増大してしまうという問題がある。ま
た、前記EXOR演算器73の段数が増加すると、各ビ
ット間に生じるデータ遅延のばらつきが大きくなり、正
確な演算結果が得られなかったり、前記並列除算処理部
より後段における処理のタイミング調整が難しくなると
いう問題もある。
【0032】そこで本実施例では、IEEE1394プ
ロトコルの規格に従って、図1に示すデータバス111
及びデータバス112を8ビット幅のバスとし、またC
RC符号部109及びCRC復号部110におけるデー
タ転送効率を低下させないようにするために、データバ
ス105及びデータバス106のバス幅と、前記CRC
符号部109の内部及びCRC復号部110の内部処理
は、すべて8ビットで行うこととする。すなわち、ホス
トバス103と、前記データバス105及び前記データ
バス106のバス幅が異なる場合には、ホストバスI/
F104においてバス幅の変換を行う。さらに、IEE
E1394プロトコルの規格によれば、CRCの検査ビ
ットは32ビットであるため、前記式5に示す生成多項
式とは異なる。しかし、説明の理解を容易にするため
に、上記例で示した式5に示す生成多項式を用いること
にする。すると、図10に示すように、24ビットの送
信データ74のうち、まず並列除算部に入力される第1
の8ビットデータ80は、並列モジュロ2演算モジュー
ル1(83)によって処理される。そして次に入力され
る、第2の8ビットデータ81は、前記並列モジュロ2
演算モジュール1(83)からの出力結果と並列モジュ
ロ2演算モジュール2(84)によって処理され、さら
にその後、並列モジュロ2演算モジュール3(85)に
よって処理される。そして、最後に入力される8ビット
データ82は、前記並列モジュロ2演算モジュール3
(85)からの出力結果と並列モジュロ2演算モジュー
ル4(86)によって処理が行われる。
ロトコルの規格に従って、図1に示すデータバス111
及びデータバス112を8ビット幅のバスとし、またC
RC符号部109及びCRC復号部110におけるデー
タ転送効率を低下させないようにするために、データバ
ス105及びデータバス106のバス幅と、前記CRC
符号部109の内部及びCRC復号部110の内部処理
は、すべて8ビットで行うこととする。すなわち、ホス
トバス103と、前記データバス105及び前記データ
バス106のバス幅が異なる場合には、ホストバスI/
F104においてバス幅の変換を行う。さらに、IEE
E1394プロトコルの規格によれば、CRCの検査ビ
ットは32ビットであるため、前記式5に示す生成多項
式とは異なる。しかし、説明の理解を容易にするため
に、上記例で示した式5に示す生成多項式を用いること
にする。すると、図10に示すように、24ビットの送
信データ74のうち、まず並列除算部に入力される第1
の8ビットデータ80は、並列モジュロ2演算モジュー
ル1(83)によって処理される。そして次に入力され
る、第2の8ビットデータ81は、前記並列モジュロ2
演算モジュール1(83)からの出力結果と並列モジュ
ロ2演算モジュール2(84)によって処理され、さら
にその後、並列モジュロ2演算モジュール3(85)に
よって処理される。そして、最後に入力される8ビット
データ82は、前記並列モジュロ2演算モジュール3
(85)からの出力結果と並列モジュロ2演算モジュー
ル4(86)によって処理が行われる。
【0033】ところで、前記並列モジュロ2演算モジュ
ール1(83)と並列モジュロ2演算モジュール3(8
5)は同一構成のモジュールであり、また前記並列モジ
ュロ2演算モジュール2(84)と並列モジュロ2演算
モジュール4(86)も同一構成のモジュールである。
そこで同一構成のモジュールを共有化すると、図8に示
すように、図1に示す並列除算処理部107及び並列除
算処理部108は、図10に示した並列モジュロ2演算
モジュール83もしくは85からなる並列除算モジュー
ル1(61)と、並列モジュロ2演算モジュール84も
しくは86からなる並列除算モジュール2(63)と、
前記並列除算モジュール2(63)を出力しフィードバ
ックされるデータと、本並列除算処理部に入力されるデ
ータを選択するためのセレクタ60と、前記並列除算モ
ジュール2(63)への入力データと、前記並列除算モ
ジュール1(61)を出力し並列除算モジュール2(6
3)に入力するデータとのタイミングを取るためのラッ
チ62から構成される。
ール1(83)と並列モジュロ2演算モジュール3(8
5)は同一構成のモジュールであり、また前記並列モジ
ュロ2演算モジュール2(84)と並列モジュロ2演算
モジュール4(86)も同一構成のモジュールである。
そこで同一構成のモジュールを共有化すると、図8に示
すように、図1に示す並列除算処理部107及び並列除
算処理部108は、図10に示した並列モジュロ2演算
モジュール83もしくは85からなる並列除算モジュー
ル1(61)と、並列モジュロ2演算モジュール84も
しくは86からなる並列除算モジュール2(63)と、
前記並列除算モジュール2(63)を出力しフィードバ
ックされるデータと、本並列除算処理部に入力されるデ
ータを選択するためのセレクタ60と、前記並列除算モ
ジュール2(63)への入力データと、前記並列除算モ
ジュール1(61)を出力し並列除算モジュール2(6
3)に入力するデータとのタイミングを取るためのラッ
チ62から構成される。
【0034】まず、本並列除算処理部に入力される第1
のデータは、セレクタ60を経由後、並列除算モジュー
ル1(61)に入力される。次に、前記並列除算モジュ
ール1(61)を出力した演算後のデータは、ラッチ6
2において、本並列除算処理部に入力され、並列除算モ
ジュール2(63)に入力される第2のデータとタイミ
ングを合わせる。さらに、前記第2のデータと、前記ラ
ッチ62を出力したデータは、並列除算モジュール2
(63)に入力される。ここで、前記第2のデータの後
にさらにデータが継続する場合には、前記並列除算モジ
ュール2(63)を出力した演算後のデータは、セレク
タ60にフィードバックされ、再度並列除算モジュール
1(61)に入力、演算される。一方、例えば前記第2
のデータのあとにこれ以上データが継続しない場合、前
記並列除算モジュール2(63)を出力した演算後のデ
ータは、セレクタ60にフィードバックされず、本並列
除算処理部から出力される。ところで、IEEE139
4規格で規定されている、32ビットのCRCを生成す
る生成多項式を使用する場合、前記並列除算モジュール
1(61)と、並列除算モジュール2(63)は、例え
ば図11に示すような構成にすればよい。図11に示す
ように、並列除算モジュール1(61)と並列除算モジ
ュール2(63)は、さらに細かい除算モジュールであ
るサブ除算モジュールA(90)、サブ除算モジュール
B(91)、サブ除算モジュールC(92)、サブ除算
モジュールD(93)からなり、前記並列除算モジュー
ル1(61)と前記並列除算モジュール2(63)間は
8ビットのモジュール間接続バス96〜99で接続する
ようにし、さらに前記並列除算モジュール2(63)の
出力部にはサブ除算モジュールB(91)と、サブ除算
モジュールC(92)と、サブ除算モジュールD(9
3)と、サブ除算モジュールE(94)から出力される
データを選択する、セレクタ95から構成している。
のデータは、セレクタ60を経由後、並列除算モジュー
ル1(61)に入力される。次に、前記並列除算モジュ
ール1(61)を出力した演算後のデータは、ラッチ6
2において、本並列除算処理部に入力され、並列除算モ
ジュール2(63)に入力される第2のデータとタイミ
ングを合わせる。さらに、前記第2のデータと、前記ラ
ッチ62を出力したデータは、並列除算モジュール2
(63)に入力される。ここで、前記第2のデータの後
にさらにデータが継続する場合には、前記並列除算モジ
ュール2(63)を出力した演算後のデータは、セレク
タ60にフィードバックされ、再度並列除算モジュール
1(61)に入力、演算される。一方、例えば前記第2
のデータのあとにこれ以上データが継続しない場合、前
記並列除算モジュール2(63)を出力した演算後のデ
ータは、セレクタ60にフィードバックされず、本並列
除算処理部から出力される。ところで、IEEE139
4規格で規定されている、32ビットのCRCを生成す
る生成多項式を使用する場合、前記並列除算モジュール
1(61)と、並列除算モジュール2(63)は、例え
ば図11に示すような構成にすればよい。図11に示す
ように、並列除算モジュール1(61)と並列除算モジ
ュール2(63)は、さらに細かい除算モジュールであ
るサブ除算モジュールA(90)、サブ除算モジュール
B(91)、サブ除算モジュールC(92)、サブ除算
モジュールD(93)からなり、前記並列除算モジュー
ル1(61)と前記並列除算モジュール2(63)間は
8ビットのモジュール間接続バス96〜99で接続する
ようにし、さらに前記並列除算モジュール2(63)の
出力部にはサブ除算モジュールB(91)と、サブ除算
モジュールC(92)と、サブ除算モジュールD(9
3)と、サブ除算モジュールE(94)から出力される
データを選択する、セレクタ95から構成している。
【0035】図8に示すような構成の並列除算処理部に
することより、送受信データのデータ長に合わせてフィ
ードバック演算を実施すればよいため、データ長に依存
しないCRC生成部及びCRC検査部を実現することが
できる。また共通するハードウェア部分を繰り返し使用
できるようにループ構成にすることにより、少ないハー
ドウェアで実現することができる。さらに、前記モジュ
ロ2演算を実行する並列除算モジュールにおけるモジュ
ール構成を変更することにより、様々な生成多項式に簡
単に対応することができる。
することより、送受信データのデータ長に合わせてフィ
ードバック演算を実施すればよいため、データ長に依存
しないCRC生成部及びCRC検査部を実現することが
できる。また共通するハードウェア部分を繰り返し使用
できるようにループ構成にすることにより、少ないハー
ドウェアで実現することができる。さらに、前記モジュ
ロ2演算を実行する並列除算モジュールにおけるモジュ
ール構成を変更することにより、様々な生成多項式に簡
単に対応することができる。
【0036】次に本発明の第2の実施形態について図1
2を用いて説明する。
2を用いて説明する。
【0037】図示するように、本発明の第2の実施形態
に係わるデータ送受信装置の構成は、第1の実施形態に
係わるデータ送受信装置の通信方式が、送信と受信は同
時に発生しない半2重通信である場合に、図1に示すC
RC符号部109及びCRC符号部110において、並
列除算処理部107及び108は同一構成で実現できる
ことから、並列除算処理部114を共有化し、さらに前
記CRC符号部109及びCRC符号部110を、CR
C符号/復号部115としてしたものである。但し並列
除算処理部114は、送信時、前記並列除算処理部11
4で処理されたデータは、必ずCRC付加部5に入力さ
れる。また受信時、前記並列除算処理部114で処理さ
れたデータは、必ずCRC判定部11に入力される。本
実施の形態に示すように、並列除算処理部をCRC生成
時及びCRC検査時において共有することによって、ハ
ードウェア規模を縮小、簡単化することができ、さらに
は装置全体を小型化、低価格化を図ることができる。
に係わるデータ送受信装置の構成は、第1の実施形態に
係わるデータ送受信装置の通信方式が、送信と受信は同
時に発生しない半2重通信である場合に、図1に示すC
RC符号部109及びCRC符号部110において、並
列除算処理部107及び108は同一構成で実現できる
ことから、並列除算処理部114を共有化し、さらに前
記CRC符号部109及びCRC符号部110を、CR
C符号/復号部115としてしたものである。但し並列
除算処理部114は、送信時、前記並列除算処理部11
4で処理されたデータは、必ずCRC付加部5に入力さ
れる。また受信時、前記並列除算処理部114で処理さ
れたデータは、必ずCRC判定部11に入力される。本
実施の形態に示すように、並列除算処理部をCRC生成
時及びCRC検査時において共有することによって、ハ
ードウェア規模を縮小、簡単化することができ、さらに
は装置全体を小型化、低価格化を図ることができる。
【0038】
【発明の効果】以上説明してきたように、本発明によれ
ば、パラレル形式の送受信データから直接、CRCの検
査ビットの生成やCRCの検査を行うことができるた
め、前記送受信データの転送効率を低下することがな
い。また、CRCの生成部及び検査部は、共通する演算
モジュールを繰り返し使用することにより、少ないハー
ドウェア構成で実現できる。
ば、パラレル形式の送受信データから直接、CRCの検
査ビットの生成やCRCの検査を行うことができるた
め、前記送受信データの転送効率を低下することがな
い。また、CRCの生成部及び検査部は、共通する演算
モジュールを繰り返し使用することにより、少ないハー
ドウェア構成で実現できる。
【図1】本発明の第1実施形態に係わるデータ送受信装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
【図2】データ送受信装置の一般構成を説明するブロッ
ク図である。
ク図である。
【図3】CRC符号部の構成を示すブロック図である。
【図4】CRC符号部の構成におけるシフトレジスタの
値の変化のようすを示す図である。
値の変化のようすを示す図である。
【図5】CRC復号部の構成を示すブロック図である。
【図6】CRC復号部の構成におけるシフトレジスタの
値の変化のようすを示す図である。
値の変化のようすを示す図である。
【図7】データ送受信装置の一般構成を説明するブロッ
ク図である。
ク図である。
【図8】並列除算処理部の構成を説明するブロック図で
ある。
ある。
【図9】並列除算処理部の複数演算モジュール部への分
割を説明する図である。
割を説明する図である。
【図10】本発明の第1実施形態に係わるデータ送受信
装置の並列除算処理部を説明する図である。
装置の並列除算処理部を説明する図である。
【図11】IEEE1394プロトコル用データ送受信
装置における並列除算モジュールの構成例を示すブロッ
ク図である。
装置における並列除算モジュールの構成例を示すブロッ
ク図である。
【図12】本発明の第2実施形態に係わるデータ送受信
装置の構成を示すブロック図である。
装置の構成を示すブロック図である。
1…入力シリアルデータ、2…データ入力部、3…デー
タ転位部、4…CRC生成部、5…CRC付加部、6…
CRC符号部、7…データ送信処理部、8…データ伝送
手段、9…データ受信処理部、10…CRC検査部、1
1…CRC判定部、12…データ出力部、13…CRC
判定結果通知手段、14…CRC復号部、 15…内部
データバス、16…内部データバス、20…データ拡張
部、21…除算処理部、22…シフトレジスタR1、2
3…シフトレジスタR2、24…シフトレジスタR3、
25…シフトレジスタR4、26…シフトレジスタR
5、27…シフトレジスタR6、28…シフトレジスタ
R7、29…シフトレジスタR8、30…EXOR演算
器、31…データ格納部、32…CRC付きシリアルデ
ータ、33…除算処理部、34…データ格納部、40…
入力シリアルデータ、41…初期値、42…CRC検査
ビット、45…入力シリアルデータ、46…初期値、4
7…余り、50…内部データバス(パラレル)、51…
パラレル−シリアル変換部、52…シリアル−パラレル
変換部、53…パラレル−シリアル変換部、54…シリ
アル−パラレル変換部、55…内部データバス(パラレ
ル)、60…セレクタ、61…並列除算モジュール1、
62…ラッチ、63…並列除算モジュール2、70…送
信データ(16ビット)、71…0データ(8ビッ
ト)、72…送信データ、73…EXOR演算器、74
…CRC検査ビット、80…第1の8ビットデータ、8
1…第2の8ビットデータ、82…第3の8ビットデー
タ、83…並列モジュロ2演算モジュール1、84…並
列モジュロ2演算モジュール2、85…並列モジュロ2
演算モジュール3、86…並列モジュロ2演算モジュー
ル4、90…サブ除算モジュールA、91…サブ除算モ
ジュールB、92…サブ除算モジュールC、93…サブ
除算モジュールD、94…サブ除算モジュールE、95
…セレクタ、96…モジュール接続バス、97…モジュ
ール接続バス、98…モジュール接続バス、99…モジ
ュール接続バス、100…中央処理装置、101…メイ
ンメモリ、102…データ格納装置、103…ホストバ
ス、104…ホストバスI/F、105…データバス、
106…データバス、107…並列除算処理部、108
…並列除算処理部、109…CRC符号部、110…C
RC復号部、111…データバス、112…データバ
ス、113…データ送受信処理部。
タ転位部、4…CRC生成部、5…CRC付加部、6…
CRC符号部、7…データ送信処理部、8…データ伝送
手段、9…データ受信処理部、10…CRC検査部、1
1…CRC判定部、12…データ出力部、13…CRC
判定結果通知手段、14…CRC復号部、 15…内部
データバス、16…内部データバス、20…データ拡張
部、21…除算処理部、22…シフトレジスタR1、2
3…シフトレジスタR2、24…シフトレジスタR3、
25…シフトレジスタR4、26…シフトレジスタR
5、27…シフトレジスタR6、28…シフトレジスタ
R7、29…シフトレジスタR8、30…EXOR演算
器、31…データ格納部、32…CRC付きシリアルデ
ータ、33…除算処理部、34…データ格納部、40…
入力シリアルデータ、41…初期値、42…CRC検査
ビット、45…入力シリアルデータ、46…初期値、4
7…余り、50…内部データバス(パラレル)、51…
パラレル−シリアル変換部、52…シリアル−パラレル
変換部、53…パラレル−シリアル変換部、54…シリ
アル−パラレル変換部、55…内部データバス(パラレ
ル)、60…セレクタ、61…並列除算モジュール1、
62…ラッチ、63…並列除算モジュール2、70…送
信データ(16ビット)、71…0データ(8ビッ
ト)、72…送信データ、73…EXOR演算器、74
…CRC検査ビット、80…第1の8ビットデータ、8
1…第2の8ビットデータ、82…第3の8ビットデー
タ、83…並列モジュロ2演算モジュール1、84…並
列モジュロ2演算モジュール2、85…並列モジュロ2
演算モジュール3、86…並列モジュロ2演算モジュー
ル4、90…サブ除算モジュールA、91…サブ除算モ
ジュールB、92…サブ除算モジュールC、93…サブ
除算モジュールD、94…サブ除算モジュールE、95
…セレクタ、96…モジュール接続バス、97…モジュ
ール接続バス、98…モジュール接続バス、99…モジ
ュール接続バス、100…中央処理装置、101…メイ
ンメモリ、102…データ格納装置、103…ホストバ
ス、104…ホストバスI/F、105…データバス、
106…データバス、107…並列除算処理部、108
…並列除算処理部、109…CRC符号部、110…C
RC復号部、111…データバス、112…データバ
ス、113…データ送受信処理部。
Claims (6)
- 【請求項1】 誤り符合訂正方式として、CRC検査方
式を採用したデータ送受信装置であって、送信データ及
び受信データがパラレル形式のデータである場合、前記
送信データ及び受信データをシリアルデータに変換する
ことなく、直接パラレルデータのまま前記CRC検査方
式に準ずる前記送信データのCRC検査ビットを生成す
ることができ、また前記受信データのCRC検査を行う
ことができることを特徴とするデータ送受信装置。 - 【請求項2】 請求項1記載のデータ送受信装置であっ
て、送信データに対する、CRC検査方式に準ずるCR
C検査ビットを生成及び付加するCRC符号部は、前記
送信データを生成多項式の最高次数に基づきCRC付加
部に適合するデータ形式に変換するデータ拡張部と、前
記データ拡張部を出力した送信データを前記生成多項式
でモジュロ2演算し、CRC検査ビットを生成する並列
除算処理部と、前記並列除算処理部からのCRC検査ビ
ットを、前記データ拡張部に入力される前の送信データ
の最後尾に付加するCRC付加部から構成されることを
特徴とするデータ送受信装置。 - 【請求項3】 請求項1記載のデータ送受信装置であっ
て、CRC検査ビットが付加された受信データに対す
る、CRC検査方式に準ずる検査を実施するCRC復号
部は、前記受信データを前記生成多項式でモジュロ2演
算し、余りを求める並列除算処理部と、前記余りから前
記受信データに誤りがあるかどうかを判断するCRC判
定部と、前記CRC判定部の判定に従い、受信データを
CRC復号部から外部に出力するデータ出力部から構成
されることを特徴とするデータ送受信装置。 - 【請求項4】 請求項2または3のいずれか記載のデー
タ送受信装置であって、前記並列除算処理部は、モジュ
ロ2演算を実行する複数の並列除算モジュールから構成
され、前記並列除算モジュールは繰り返し利用可能であ
るようにフィードバックループ構成に配置することを特
徴とするデータ送受信装置。 - 【請求項5】 請求項2乃至4のいずれか記載のデータ
送受信装置であって、前記並列除算処理部は、生成多項
式に応じて前記並列除算モジュールの内部構成を変更す
ることによって、様々な種類の生成多項式に対応できる
ことを特徴とするデータ送受信装置。 - 【請求項6】 請求項2乃至5のいずれか記載のデータ
送受信装置であって、前記並列除算処理部は、前記CR
C符号部及び前記CRC復号部において共有することを
特徴とするデータ送受信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34702499A JP2001168730A (ja) | 1999-12-07 | 1999-12-07 | データ送受信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34702499A JP2001168730A (ja) | 1999-12-07 | 1999-12-07 | データ送受信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001168730A true JP2001168730A (ja) | 2001-06-22 |
Family
ID=18387415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34702499A Pending JP2001168730A (ja) | 1999-12-07 | 1999-12-07 | データ送受信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001168730A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428693B2 (en) | 2002-04-22 | 2008-09-23 | Fujitsu Limited | Error-detecting encoding and decoding apparatus and dividing apparatus |
JP2016178551A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社Pfu | 通信装置及び制御方法 |
-
1999
- 1999-12-07 JP JP34702499A patent/JP2001168730A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428693B2 (en) | 2002-04-22 | 2008-09-23 | Fujitsu Limited | Error-detecting encoding and decoding apparatus and dividing apparatus |
JP2016178551A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社Pfu | 通信装置及び制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8312362B1 (en) | Determining data transmission error and/or checking or confirming such error determinations | |
JPH04358245A (ja) | データ通信装置 | |
JPH0831802B2 (ja) | Crcビット計算装置およびcrcビット計算方法 | |
US20050010630A1 (en) | Method and apparatus for determining a remainder in a polynomial ring | |
US20050149818A1 (en) | High performance CRC calculation method and system with a matrix transformation strategy | |
JP3646644B2 (ja) | データ転送制御装置及び電子機器 | |
US7360142B1 (en) | Methods, architectures, circuits, software and systems for CRC determination | |
JPS63294146A (ja) | 通信制御装置 | |
US6370667B1 (en) | CRC operating calculating method and CRC operational calculation circuit | |
US6738947B1 (en) | Method and apparatus for error correction | |
JPWO2003084077A1 (ja) | 可変長/固定長データ変換方法及び装置 | |
US6374384B1 (en) | Reed Solomon error correcting circuit and method and device for Euclidean mutual division | |
US7320101B1 (en) | Fast parallel calculation of cyclic redundancy checks | |
JP4515651B2 (ja) | 巡回冗長検査演算方法及び巡回冗長検査演算回路 | |
JP2001168730A (ja) | データ送受信装置 | |
JP4012907B2 (ja) | 非同期伝送方法及びその回路 | |
US7047479B1 (en) | Parallel CRC formulation | |
JP3579039B2 (ja) | 巡回符号を用いた誤り訂正回路 | |
JP2822928B2 (ja) | Crc符号演算方法および回路 | |
JPH0612269A (ja) | バス通信手段 | |
JP7540166B2 (ja) | 送信装置、受信装置、送信方法、および、受信方法 | |
JP3071482B2 (ja) | パケット受信機の誤り訂正回路 | |
KR100439225B1 (ko) | 고속 데이터의 오류 검증회로 | |
JPH1198160A (ja) | 送受信回路 | |
JPH06164624A (ja) | セル同期回路 |