(57)【要約】【課題】ＣＲＣフィールド４３のＣＲＣ値を所望のＣＲＣ値ＣＴに置換した場合に適合する可変フィールド値ＸＴを得る処理を高速化する。【解決手段】可変フィールド値Ｘの反転させるビットを示す補正値を格納したＣＲＣ変換テーブル４７を予め用意しておく。先ず、可変フィールド値Ｘが０のときのＣＲＣ値と所望のＣＲＣ値との排他的論理和をとり演算値Ａ（４５）として保存する。次に、可変フィールド値Ｘを設定し、可変フィールド値Ｘのビットが“１”になるビット番号Ｎに対応する補正値Ｅをすべて読み出す。読み出されたすべての補正値Ｅの排他的論理和を計算して演算値Ｂを算出し、演算値Ｂが演算値Ａと一致する可変フィールド値Ｘ（＝ＸＴ）を求める。【選択図】      図５
2004235763.tif 000002
【特許請求の範囲】
【請求項１】
データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータおよび生成多項式に基づいて算出されたＣＲＣ値が所望のＣＲＣ値と一致するように前記可変フィールド値を定めるＣＲＣ符号生方法において、
仮の可変フィールド値を設定する第１のステップと、
予め所定のビット番号に対応させて可変フィールド値の反転させるべきビットの値を１として指定する補正値を格納した変換テーブルから前記仮の可変フィールド値のビットの値が１のビット番号に対応するすべての補正値を読み出して排他的論理和をとり第１の演算値を算出する第２のステップと、
前記第１の演算値が前記所望のＣＲＣ値に対応するものであれば前記仮の可変フィールド値を所望のＣＲＣ値が得られる可変フィールド値と判定する第３のステップと、
を備えることを特徴とするＣＲＣ符号生成方法。
【請求項２】
前記第３のステップは、
可変フィールド値が０の場合のＣＲＣ値と所望のＣＲＣ値との排他的論理和演算により予め算出した第２の演算値と、第１の演算値とを比較し、一致したときに該第１の演算値に対応する仮の可変フィールド値を所望のＣＲＣ値が得られる可変フィールド値と判定することを特徴とする請求項１に記載のＣＲＣ符号生成方法。
【請求項３】
前記変換テーブルは、
データフィールドのビット長を上位アドレスとしビット番号Ｎ（Ｎは０以上で可変フィールドのビット長未満の整数）を下位アドレスとして、可変フィールド値が０のときのＣＲＣ値と可変フィールド値が２ＮのときのＣＲＣ値との排他的論理和がビット番号Ｎに対応する補正値のデータとして格納されたテーブルであることを特徴とする請求項１または２に記載のＣＲＣ符号生成方法。
【請求項４】
前記変換テーブルは、
ＣＲＣ符号の生成多項式とデータフィールドのビット長とを上位アドレスとしビット番号Ｎ（Ｎは０以上で可変フィールドのビット長未満の整数）を下位アドレスとして、可変フィールド値が０のときのＣＲＣ値と可変フィールド値が２ＮのときのＣＲＣ値との排他的論理和がビット番号Ｎに対応する補正値のデータとして格納されたテーブルであることを特徴とする請求項１または２に記載のＣＲＣ符号生成方法。
【請求項５】
データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたＣＲＣ値が所望のＣＲＣ値と一致するように前記可変フィールド値を定めるＣＲＣ符号生方法において、
仮の可変フィールド値を設定する第１のステップと、
予め可変フィールド値Ｘ（可変フィールドのビット長をＫとするときＸは１以上で２Ｋ−１以下の整数）に対応させて前記可変フィールド値が０のときのＣＲＣ値と前記可変フィールド値がＸのときのＣＲＣ値との排他的論理和である第１の演算値が格納された変換テーブルから前記仮の可変フィールド値に対応する第１の演算値を読み出す第２のステップと、
読み出された第１の演算値が前記所望のＣＲＣ値に対応するものであれば前記仮の可変フィールド値を所望のＣＲＣ値が得られる可変フィールド値と判定する第３のステップと、
を備えることを特徴とするＣＲＣ符号生成方法。
【請求項６】
前記第３のステップは、
可変フィールド値が０の場合のＣＲＣ値と所望のＣＲＣ値との排他的論理和演算により予め算出した第２の演算値と、第１の演算値とを比較し、一致したときに該第１の演算値に対応する仮の可変フィールド値を所望のＣＲＣ値が得られる可変フィールド値と判定することを特徴とする請求項５に記載のＣＲＣ符号生成方法。
【請求項７】
前記変換テーブルは、
データフィールドのビット長を上位アドレスとし可変フィールド値Ｘを下位アドレスとし前記可変フィールド値Ｘに対応させて第１の演算値のデータが格納されたテーブルであることを特徴とする請求項５または６に記載のＣＲＣ符号生成方法。
【請求項８】
前記変換テーブルは、
生成多項式とデータフィールドのビット長とを上位アドレスとし可変フィールド値Ｘを下位アドレスとし前記可変フィールド値Ｘに対応させて第１の演算値のデータが格納されたテーブルであることを特徴とする請求項５または６に記載のＣＲＣ符号生成方法。
【請求項９】
データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたＣＲＣ値が所望のＣＲＣ値と一致するように前記可変フィールド値を定めるＣＲＣ符号生方法において、
前記可変フィールド値が０の場合のＣＲＣ値と所望のＣＲＣ値との排他的論理和をとり第１の演算値を算出する第１のステップと、
予め可変フィールド値が０のときのＣＲＣ値と可変フィールド値がＸ（可変フィールドのビット長をＫとするときＸは１以上で２Ｋ−１以下の整数）のときのＣＲＣ値との排他的論理和である第２の演算値に対応させて可変フィールド値Ｘが格納された変換テーブルから前記第１の演算値に等しい値の第２の演算値に対応する可変フィールド値を前記所望のＣＲＣ値が得られる可変フィールド値として読み出す第２のステップと、
を備えることを特徴とするＣＲＣ符号生成方法。
【請求項１０】
前記変換テーブルは、
データフィールドのビット長を上位アドレスとし第２の演算値を下位アドレスとし前記第２の演算値に対応させて可変フィールド値のデータが格納されたテーブルであることを特徴とする請求項９に記載のＣＲＣ符号生成方法。
【請求項１１】
前記変換テーブルは、
生成多項式とデータフィールドのビット長とを上位アドレスとし第２の演算値を下位アドレスとし前記第２の演算値に対応させて可変フィールド値のデータが格納されたテーブルであることを特徴とする請求項９に記載のＣＲＣ符号生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号生成方法に関し、特に、データの一部を変更することにより所望のＣＲＣ符号を生成することが可能なＣＲＣ符号生成方法に関する。
【０００２】
【従来の技術】
ケーブルを介したシリアル通信では、同じレベルのデータ列が連続するときに低周波成分による電圧レベルのドリフトが発生することがある。これを防ぐために、“１”または“０”が連続するときには、連続した論理値とは逆の論理値のビットを挿入する技術（ｂｉｔ  ｓｔｕｆｆｉｎｇ）が使用される。例えば、ＵＳＢ（ＵｎｉｖｅｒｓａｌＳｅｒｉａｌ  Ｂｕｓ）データパケットフォーマットでは、データ中に“１”が７回以上連続する場合に、６個目の“１”の後に“０”を挿入すると規定され、この例外として“１”が７回連続した場合には、その部分はフレームの終わりを示すＥＯＦ（Ｅｎｄ  ｏｆ  Ｆｒａｍｅ）と規定されている。
【０００３】
このようなシリアル通信では、ネットワーク上を流れるデータのひとつのかたまりであるフレームの最後にＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ：巡回冗長検査）フィールドとＥＯＦとが連続するフレームフォーマットが一般的に使用されている。
【０００４】
ＣＲＣにより送受信試験を行う場合には、例えば、送信側でフレーム単位のデータに対して所定の生成多項式を用いてＣＲＣ符号が計算され、このＣＲＣ符号がデータに付加されて送信される。受信側では、受信したデータは送信側と同一の生成多項式を用いて除算され、剰余が生じる場合にエラーが発生したと判定される（例えば、特許文献１参照。）。
【０００５】
送信装置と受信装置との間でパケットが正しく送受信されるか否かの試験では、任意のコードがＣＲＣフィールドに設定できれば好都合である。また、異なるメーカで開発された製品との対向通信時には、互いに正しい機能が実現されているか否かの確認のために、任意のコードのＣＲＣを発生することが必要となる。
【０００６】
【特許文献１】
特開２００１−２４４８２０号公報（段落０００３−０００６）
【０００７】
【発明が解決しようとする課題】
送信装置が、図１４（ａ）の送信フレームにおいてデータフィールド１４１のデータに基づいて生成されＣＲＣフィールド１４２に付加されたＣＲＣ符号（以下、ＣＲＣ値と呼ぶ）“０００１”を、図１４（ｂ）に示すように所望のＣＲＣ値“１０１１”に置換してから送信する場合を想定する。例えば図１のように構成された送信装置１が、図１５のフロー図にしたがって、ステップ１２で送信するメモリ２にデータを格納し、ステップ１３でメモリ２からデータを読み出し、ステップ１４でＣＰＵ２によりＣＲＣ値を計算し、ステップ１５１でＣＲＣ値を所望のＣＲＣ値に置換し、ステップ１１０でフレームの構成順序で出力して送信する場合には、受信側でＣＲＣ不一致エラーが発生することになり、正常な試験が実施されない。なお、１４３はＥＯＦフィールドである。装置同士を接続してフレームの送受信を行う対向テストではＣＲＣエラーを発生した場合にはエラー処理に移ってしまうために、正常な送受信が確認された後に実行されるべき処理の確認ができない。
【０００８】
上記の点を改良した方法として、図２に示すようにデータフィールド中にデータの変更が可能な可変フィールドが設けられ、可変フィールドのデータを変更しながらＣＲＣ値が所望の値になるまでＣＲＣ演算を逐一繰り返す方法が使用されている。図１６は、この従来のＣＲＣの符号生成方法のフロー図である。
【０００９】
送信装置１は、ステップ１１で可変フィールドに可変フィールド値Ｘとして０（可変フィールド長が４ビットならば“００００”）を設定し、ステップ１２で送信するメモリ２にデータを格納し、ステップ１３でメモリ２からデータを読み出し、ステップ１４でＣＰＵ２によりＣＲＣ値を計算する。次に、ステップ１６１おいて、ステップ１４で算出されたＣＲＣ値が所望のＣＲＣ値に等しいか否かを判断し、等しくないときにはステップ１６２に進んで可変フィールド値Ｘに１を加算してからステップ１４に戻る。ステップ１６１において、算出されたＣＲＣ値と所望のＣＲＣ値とが等しいと判断されたときにはステップ１１０へ進み、フレームの構成順序で出力して送信する。
【００１０】
しかしながら、図１６に示した方法では可変フィールド値が加算されるたびにＣＲＣ値を再計算しなければならず、非常に時間がかかるという問題があった。
【００１１】
本発明は、上記のような状況に鑑みてなされたもので、本発明の目的は、所望のＣＲＣ値を有する送信フレームを高速に生成することが可能なＣＲＣの符号生成方法を提供することである。
【００１２】
【課題を解決するための手段】
本発明の第１の発明のＣＲＣ符号生成方法は、データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータおよび生成多項式に基づいて算出されたＣＲＣ値が所望のＣＲＣ値と一致するように前記可変フィールド値を定めるＣＲＣ符号生方法において、仮の可変フィールド値を設定する第１のステップと、予め所定のビット番号に対応させて可変フィールド値の反転させるべきビットの値を１として指定する補正値を格納した変換テーブルから前記仮の可変フィールド値のビットの値が１のビット番号に対応するすべての補正値を読み出して排他的論理和をとり第１の演算値を算出する第２のステップと、前記第１の演算値が前記所望のＣＲＣ値に対応するものであれば前記仮の可変フィールド値を所望のＣＲＣ値が得られる可変フィールド値と判定する第３のステップと、を備えることを特徴とする。
【００１３】
第２の発明のＣＲＣ符号生成方法は、データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたＣＲＣ値が所望のＣＲＣ値と一致するように前記可変フィールド値を定めるＣＲＣ符号生方法において、仮の可変フィールド値を設定する第１のステップと、予め可変フィールド値Ｘ（可変フィールドのビット長をＫとするときＸは１以上で２Ｋ−１以下の整数）に対応させて前記可変フィールド値が０のときのＣＲＣ値と前記可変フィールド値がＸのときのＣＲＣ値との排他的論理和である第１の演算値が格納された変換テーブルから前記仮の可変フィールド値に対応する第１の演算値を読み出す第２のステップと、読み出された第１の演算値が前記所望のＣＲＣ値に対応するものであれば前記仮の可変フィールド値を所望のＣＲＣ値が得られる可変フィールド値と判定する第３のステップと、を備えることを特徴とする。
【００１４】
第３の発明のＣＲＣ符号生成方法は、データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたＣＲＣ値が所望のＣＲＣ値と一致するように前記可変フィールド値を定めるＣＲＣ符号生方法において、前記可変フィールド値が０の場合のＣＲＣ値と所望のＣＲＣ値との排他的論理和をとり第１の演算値を算出する第１のステップと、予め可変フィールド値が０のときのＣＲＣ値と可変フィールド値がＸ（可変フィールドのビット長をＫとするときＸは１以上で２Ｋ−１以下の整数）のときのＣＲＣ値との排他的論理和である第２の演算値に対応させて可変フィールド値Ｘが格納された変換テーブルから前記第１の演算値に等しい値の第２の演算値に対応する可変フィールド値を前記所望のＣＲＣ値が得られる可変フィールド値として読み出す第２のステップと、を備えることを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について添付図面を参照しながら詳細に説明する。
【００１６】
図１は送信装置の基本的な構成を示すブロック図である。送信装置１は、送信装置の制御プログラムおよび送信データ等を格納するメモリ３と、制御プログラムにしたがってＣＲＣ値の算出および送信フレームの出力制御等を行うＣＰＵ２と、送信フレームをシリアル通信ネットワークに出力するシリアル送信部４とを有している。送信装置の基本的な構成は例えば図１６のフロー図にしたがって動作するシリアル送信装置と変わらないが、本発明のＣＲＣ符号生成方法を実行する送信装置においては、メモリ３内にＣＲＣ変換テーブルを有し、ＣＰＵ２がＣＲＣ変換テーブルを用いて可変フィールド値を検索し、所望のＣＲＣ値を有する送信データを生成する。
【００１７】
図２（ａ）、図２（ｂ）は送信フレームの構成を模式的に示す図であり、送信フレームはデータフィールド２１、ＣＲＣフィールド２３およびＥＯＦフィールド２４を有し、さらにデータフィールド２１中にデータの変更が可能な可変フィールド２２が設けられている。図２（ａ）は可変フィールド値Ｘが初期値０（図では可変フィールド長が４ビットなので“００００”）のときの送信フレームを示し、図２（ｂ）は所望のＣＲＣ値（“１０１１”とする）に対応するデータ値とするのに必要な可変フィールド値Ｘ（“０１０１”とする）が生成された後の送信フレームを示す。
【００１８】
図３は本発明の第１の実施の形態のフロー図である。送信装置は次のステップを実行して所望のＣＲＣ値を有する送信データを生成し出力する。
【００１９】
ステップ１１は、送信データの可変フィールド値Ｘを０に初期化する。ステップ１２は、送信データをメモリ３に格納する。ステップ１３は、メモリ３から送信データを読み出す。ステップ１４は、ＣＰＵ２により送信データに対してＣＲＣ値を計算する。ステップ１５は、ＣＰＵ２により可変フィールド値が０の送信データに対するＣＲＣ値と所望のＣＲＣ値との排他的論理和（以下、ＸＯＲと略す）を計算し、これを演算値Ａとして保存する。
【００２０】
ステップ１６は、演算値Ａが０であるか否かを判定する。演算値Ａが０であれば所望のＣＲＣが得られているので、ステップ１１０に進む。演算値Ａが０なければステップ１７に進む。
【００２１】
ステップ１７は、可変フィールド値Ｘをインクリメントして次のステップ以後で仮に可変フィールド値Ｘとして用いるデータを設定する。ステップ１８は、データフィールドのビット長（データ長）Ｌおよび可変フィールド値Ｘにおけるビット表現“１”に対応するビット番号をアドレスとしてメモリ３内のＣＲＣ変換テーブルにアクセスし、該当するすべてのアドレスに格納された補正値Ｅを読み出し、ＸＯＲをとることにより演算値Ｂを算出する。ステップ１９は、ＣＰＵ２により演算値Ｂを演算値Ａと比較し、等しければステップ１１０に進み、等しくなければステップ１７に戻る。ステップ１１０は、ＣＰＵ２の制御の下にシリアル送信部４へ送信フレームの構成順序でデータを出力し送信する。
【００２２】
図４は第１の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例である。図４において、３２は入力されるデータフィールドのビット長Ｌおよびビット番号Ｎに対応するアドレスのインデックスを示す。３３は可変フィールド値Ｘにおける反転させるべきビットを“１”として指定する補正値データを示す。例えば、補正値Ｅとして４ビットのＬｉｔｔｌｅ  Ｅｎｄｉａｎで“１０１０”というデータが読み出された場合、可変フィールド値Ｘの４ｂｉｔ目と２ｂｉｔ目を反転させることで演算値Ｂが得られる。換言すれば、可変フィールド値Ｘと読み出された補正値ＥとのＸＯＲをとることにより演算値Ｂが得られる。ＣＲＣ変換テーブル３１へ入力されるＮは可変フィールドのビット番号であり、Ｌはデータフィールドのビット長である。ＣＲＣ変換テーブル３１から出力されるＥはＣＲＣの補正値を示す。
【００２３】
図４においてＣＲＣ変換テーブル３１は、下位のアドレスに相当するビット番号Ｎのそれぞれに対応させて補正値Ｅが補正値データ３３として格納される複数の下位テーブルを含み、上位のアドレスに相当するデータフィールドのビット長Ｌにより下位テーブルの中の一つを選択するように構成されている。ＣＲＣ変換テーブル３１をこのように構成しておくことにより、複数の異なるビット長のデータに対しても新たにテーブルを作成する必要なく処理できる。補正値Ｅは、可変フィールド値Ｘが２Ｎ（ビット番号Ｎは０以上で可変フィールドのビット長未満の整数）となるデータに対応して生成されたＣＲＣ値と、可変フィールド値Ｘ＝０のデータに対応して生成されたＣＲＣ値と、をＸＯＲ演算することにより予め計算され、格納される。なお、図４で、ビット長Ｌの１６Ｄ、ビット番号０Ｄ等の添字Ｄは１０進数表現であることを示す。
【００２４】
図５は第１の実施の形態を図３のフロー図と対応させて説明するための図である。図５では、図面が煩雑になることを避けるために、データフィールド４２のビット長Ｌが１６ビット、可変フィールド４６が４ビット（フレームの先頭ビットを０ビット目としたとき４乃至７ビット目）、ＣＲＣフィールド４３が４ビットとした。ＥＯＦフィールドは説明に関係しないので省略した。
【００２５】
次に第１の実施の形態について図３と図５とを用いて具体的に説明する。ステップ１１からステップ１４までが実行された段階では、送信フレーム４１に示すように、可変フィールド４３の可変フィールド値Ｘが初期値のＸ０（＝“００００”）であり、データフィールド４２のデータと生成多項式とに基づいて計算されたＣＲＣフィールド４３のＣＲＣ値がＣ０（＝“０００１”）である。
【００２６】
これに対して、所望のＣＲＣ値４４がＣＴ（＝“１０１１”）であるとすれば、ステップ１５ではＣ０とＣＴのＸＯＲにより求めた演算値Ａ（４５）は“１０１０”となる。ステップ１６では、演算値Ａが“００００”ではないので、ステップ１７に進む。ステップ１７では、可変フィールド値ＸがインクリメントしてＸ＝“０００１”となる。
【００２７】
ステップ１８では、データフィールドのビット長Ｌおよび可変フィールド値Ｘにおけるビット表現“１”に対応するビット番号Ｎをアドレスとしてメモリ３内のＣＲＣ変換テーブルにアクセスし、該当するすべてのアドレスに格納された補正値Ｅを読み出し、ＸＯＲをとることにより演算値Ｂを算出する。ここではＸ＝“０００１”、すなわち可変フィールドの最下位ビットのみが“１”であるので、ＣＲＣ変換テーブル４７からビット番号Ｎ＝０Ｄに対応する補正値Ｅとして“１１０１”が読み出される。次に予めプログラムされた演算値Ｂの計算式４８にしたがってＸ＝“０００１”に対応する演算値Ｂ＝“１１０１”が算出される。より詳細には、読み出された補正値Ｅ（＝“１１０１”）のビット値が“１”である１ビット目、３ビット目、４ビット目に対応する可変フィールド値の初期値Ｘ０（＝“００００”）のビット値が反転されて演算値Ｂ＝“１１０１”が算出される。換言すれば、演算値Ｂは、初期値Ｘ０と補正値ＥとのＸＯＲにより算出されるが、初期値Ｘ０が“００００”であるため、補正値Ｅがそのまま演算値Ｂとなる。
【００２８】
ステップ１９では、Ｂ（＝“１１０１”）がＡ（＝“１０１０”）と等しくないので、ステップ１７に戻る。
【００２９】
２回目のステップ１７からステップ１９までの実行では、可変フィールド値Ｘは“００１０”となり下位から２ビット目だけが１なのでＣＲＣ変換テーブル４７からビット番号Ｎ＝１Ｄに対応する補正値Ｅとして“１１１０”が読み出される。演算値Ｂの計算式４８にしたがってＸ＝“００１０”に対応する演算値Ｂ＝“１１１０”が算出され、演算値Ｂは演算値Ａと等しくないので再度ステップ１７に戻る。
【００３０】
３回目のステップ１７からステップ１９までの実行では、可変フィールド値Ｘ＝“００１１”となり下位から１ビット目と２ビット目が１なので、ＣＲＣ変換テーブル４７からビット番号Ｎ＝０Ｄに対応する補正値Ｅとして“１１０１”が読み出され、また、ビット番号Ｎ＝１Ｄに対応する補正値Ｅとして“１１１０”が読み出される。演算値Ｂの計算式４８にしたがって読み出された２つの補正値ＥのＸＯＲが計算され、Ｘ＝“００１１”に対応する演算値Ｂ＝“００１１”が算出され、演算値Ｂは演算値Ａと等しくないので再度ステップ１７に戻る。
【００３１】
同様にしてステップ１７からステップ１９までを繰り返し、５回目では、ステップ１７で可変フィールド値Ｘ＝“０１０１”となり、ステップ１８で下位から１ビット目と３ビット目が１なので、ＣＲＣ変換テーブル４７からビット番号Ｎ＝０Ｄに対応する補正値Ｅとして“１１０１”が読み出され、また、ビット番号Ｎ＝２Ｄに対応する補正値Ｅとして“０１１１”が読み出されて、演算値Ｂの計算式４８にしたがって読み出された２つの補正値ＥのＸＯＲが計算され、Ｘ＝“０１０１”に対応する演算値Ｂ＝“１０１０”が算出される。ステップ１９では演算値Ｂと演算値Ａとが等しいと判定されるので、このときの可変フィールド値Ｘを所望のＣＲＣ値ＣＴ（＝“１０１１”）に対応する可変フィールド値ＸＴとしてステップ１１０に進み、送信フレーム４１の可変フィールド４６のデータをＸＴ（＝“０１０１”）に置き換え、ＣＲＣフィールド４３のＣＲＣ値を所望のＣＲＣ値ＣＴ（＝“１０１１”）に置き換えて、送信フレーム４１ａとして出力する。
【００３２】
第１の実施形態は、このようにして所望のＣＲＣ値ＣＴとデータフィールド４２のデータとの間に矛盾が生じて不一致エラーとなることがないように所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴを定めることができる。
【００３３】
ＣＲＣ変換テーブル４７の作成について図５を参照して具体的に説明する。補正値Ｅは、可変フィールド値Ｘが２Ｎとなるデータに対応して生成されたＣＲＣ値と、可変フィールド値Ｘ＝０のデータに対応して生成されたＣＲＣ値と、をＸＯＲ演算することにより予め計算される。例えば、Ｌ＝１６Ｄ、Ｎ＝０Ｄに対応する補正値Ｅ０は、送信フレーム４１の可変フィールド値Ｘが２０（＝“０００１”）であるとして計算されたＣＲＣ値Ｃ１（＝“１１００”となる）と、送信フレーム４１の可変フィールド値Ｘが“００００”であるとして計算されたＣＲＣ値Ｃ０（＝“０００１”）とのＸＯＲを計算することにより補正値Ｅ０＝“１１０１”と算出される。Ｌ＝１６Ｄ、Ｎ＝１Ｄに対応する補正値Ｅ１、Ｌ＝１６Ｄ、Ｎ＝２Ｄに対応する補正値Ｅ２、Ｌ＝１６Ｄ、Ｎ＝３Ｄに対応する補正値Ｅ３についても同様にして算出され、ＣＲＣ変換テーブル４７が作成される。
【００３４】
データフィールドのビット長毎にＣＲＣ変換テーブル４７を予め作成しておくことにより、任意のデータ（データフィールド４２の可変フィールド４６以外のデータ）および任意の所望のＣＲＣ値ＣＴに対し、図５を用いて説明したようにして、所望のＣＲＣ値ＣＴ（＝“１０１１”）に対応する可変フィールド値ＸＴを得ることができる。
【００３５】
本発明のＣＲＣ符号生成方法の根拠は、ＣＲＣは入力系列の値を生成多項式で除算した余りで求められるが、ｍｏｄ２（２を法（ｍｏｄｕｌｕｓ）とする算法）の世界では、除算はビットごとの排他的論理和（ＸＯＲ）となること、また、入力系列の特定のビット値を変化させた場合に影響を受けるＣＲＣのビットは入力系列のデータフィールドのビット長Ｌおよびそのビット番号Ｎにのみ依存し、入力系列そのものには依存しないことに因っている。
【００３６】
第１の実施の形態の効果について説明する。図１６の従来例では所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴを得るのにかかる時間Ｔ０は、
Ｔ０＝ＴＲ＋ＴＣ＊Ｍ
により算出される。
【００３７】
これに対して、第１の実施の形態により所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴを得るのにかかる時間Ｔ１は、
Ｔ１＝ＴＲ＋ＴＣ＋ＴＬ＊Ｍ
により算出される。
ここで、
ＴＲ：メモリ３からの読み出し時間
ＴＣ：ＣＲＣ値の計算時間
Ｍ：演算値Ａと一致する演算値Ｂを得るために必要な繰り返し回数
ＴＬ：ＣＲＣ変換テーブルを用いて所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴを計算するために要する時間
とする。
【００３８】
１ｋワードのデータに１６ビットのＣＲＣを付加した送信データ（可変フィールド長は１６ビット）の場合、ＴＲが１クロック時間とすると、ＴＬは、メモリ３からの読み出しとＸＯＲ演算がパイプライン的に実行されるものとしてＣＲＣ変換テーブルからデータを読み出す平均的な時間にＸＯＲ演算の１クロックを加えた時間となり、
ＴＬ＝（１６Ｃ１＋２＊１６Ｃ２＋３＊１６Ｃ３＋・・・＋１６＊１６Ｃ１６）／（２１６−１）＋１＝９（クロック時間）
となる。
【００３９】
また、ＴＣは、ＣＲＣの計算がメモリから１ワードずつ読み出して計算することをワード長分の回数繰り返すので、１０２４ワードの読み出しに要するクロック時間（１０２４クロック時間）となる。
【００４０】
可変フィールドのビット長が大きいときにはＭが非常に大きくなることから、
Ｔ１／Ｔ０＝（ＴＲ＋ＴＣ＋ＴＬ＊Ｍ）／（ＴＲ＋ＴＣ＊Ｍ）≒ＴＬ／ＴＣ
となる。したがって、１ｋワードのデータに１６ビットのＣＲＣを付加した送信データの場合では、
Ｔ１／Ｔ０＝９／１０２４＝１／１１４
となり、図３および図４に特徴づけられる本発明の第１の実施の形態のＣＲＣ符号生成方法は、従来例と比較して大幅な処理時間の短縮が可能となる。
【００４１】
また、第１の実施の形態の方法を実現するためのテーブルのサイズは、異なるデータフィールドのビット長Ｌ毎に、（可変フィールドのビット長）＊（補正値Ｅのデータ長）となる。
【００４２】
次に、他の実施の形態について説明する。図６は、本発明の第２の実施の形態のフロー図である。図６のフロー図は、図３のフロー図におけるステップ１８がステップ５１に置き換わっている点が第１の実施の形態と異なる。
【００４３】
図６において、ステップ１１は、送信データの可変フィールド値Ｘを０に初期化する。ステップ１２は、送信データをメモリ３に格納する。ステップ１３は、メモリ３から送信データを読み出す。ステップ１４は、ＣＰＵ２により送信データに対してＣＲＣ値を計算する。ステップ１５は、ＣＰＵ２により可変フィールド値が０の送信データに対するＣＲＣ値と所望のＣＲＣ値とのＸＯＲを計算し、これを演算値Ａとして保存する。
【００４４】
ステップ１６は、演算値Ａが０であるか否かを判定する。演算値Ａが０であれば所望のＣＲＣが得られているので、ステップ１１０に進む。演算値Ａが０なければステップ１７に進む。ステップ１７は、可変フィールド値Ｘをインクリメントして次のステップ以後で仮に可変フィールド値Ｘとして用いるデータを設定する。
【００４５】
ステップ５１は、データフィールドのビット長（データ長）Ｌおよび可変フィールド値Ｘをアドレスとしてメモリ３内のＣＲＣ変換テーブルにアクセスし、該当アドレスに格納された演算値Ｂを読み出す。ステップ１９は、ＣＰＵ２により演算値Ｂを演算値Ａと比較し、等しければステップ１１０に進み、等しくなければステップ１７に戻る。ステップ１１０は、ＣＰＵ２の制御の下にシリアル送信部４へ送信フレームの構成順序でデータを出力し送信する。
【００４６】
図７は第２の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例である。図７では、ＣＲＣ変換テーブル６１には、データフィールドのビット長Ｌおよび可変フィールド値Ｘをアドレス６２としたときに対応する演算値Ｂが演算値データ６３として格納されている。演算値Ｂは、可変フィールド値Ｘが０のときのＣＲＣ値と可変フィールド値Ｘが２Ｋ−１（Ｋは１以上で可変フィールドのビット長である１６以下の整数）のときのＣＲＣ値との排他的論理和であるので逐一算出することができるが、実用的には、第１の実施の形態における図５で説明したと同様に、補正値を格納したＣＲＣ変換テーブル４７と演算値Ｂの計算式４８とを用いて可変フィールド値Ｘに対応する演算値Ｂを求めた後に、データフィールドのビット長Ｌおよび可変フィールド値Ｘをアドレス６２にして直接に演算値Ｂを読み出せるようにテーブル化する方が計算量が少なくなり効率的である。
【００４７】
図７においてＣＲＣ変換テーブル６１は、下位のアドレスに相当する可変フィールド値Ｘのそれぞれに対応させて演算値Ｂが演算値データ６３として格納される複数の下位テーブルを含み、上位のアドレスに相当するデータフィールドのビット長Ｌにより下位テーブルの中の一つを選択するように構成されている。ＣＲＣ変換テーブル６１をこのように構成しておくことにより、複数の異なるビット長のデータに対しても新たにテーブルを作成する必要なく処理できる。
【００４８】
図８は第２の実施の形態を図６のフロー図と対応させて説明するための図である。図８では、第１の実施の形態の図５と同様に、データフィールド４２のビット長Ｌが１６ビット、可変フィールド４６が４ビット、ＣＲＣフィールド４３が４ビットとした。ＥＯＦフィールドは省略した。
【００４９】
次に、第２の実施の形態について図６と図８とを用いて具体的に説明する。ステップ１１からステップ１４までが実行された段階では、送信フレーム４１に示すように、可変フィールド４３の可変フィールド値Ｘが初期値のＸ０（＝“００００”）であり、データフィールド４２のデータと生成多項式とに基づいて計算されたＣＲＣフィールド４３のＣＲＣ値がＣ０（＝“０００１”）である。
【００５０】
これに対して、所望のＣＲＣ値４４がＣＴ（＝“１０１１”）であるとすれば、ステップ１５ではＣ０とＣＴのＸＯＲにより求めた演算値Ａ（４５）は“１０１０”となる。ステップ１６では、演算値Ａが“００００”ではないので、ステップ１７に進む。ステップ１７では、可変フィールド値Ｘがインクリメントして可変フィールド値Ｘ＝“０００１”となる。ここまでは図５の場合と同様である。
【００５１】
次に、ステップ５１では、データフィールドのビット長Ｌおよび可変フィールド値ＸをアドレスとしてＣＲＣ変換テーブル４７の該当アドレスに予め格納された演算値Ｂを読み出す。Ｘ＝“０００１”であるので、ＣＲＣ変換テーブル７１の可変フィールド値Ｘ＝“０００１”に格納されたＢ＝“１１０１”が読み出される。
【００５２】
ステップ１９では、Ｂ（＝“１１０１”）がＡ（＝“１０１０”）と等しくないので、ステップ１７に戻る。
【００５３】
２回目、３回目、４回目のステップ１７からステップ１９までの実行では、可変フィールド値Ｘが“００１０”、“００１１”、“０１００”となり、それぞれに対応し演算値Ｂとして、“１１１０”、“００１１”、“０１１１”がＣＲＣ変換テーブル７１から読み出されるが、いずれの場合にも演算値Ｂは演算値Ａと等しくないのでステップ１７に戻る。
【００５４】
５回目の実行では、ステップ１７で可変フィールド値Ｘ＝“０１０１”となるので、ステップ５１で演算値Ｂとして“１０１０”がＣＲＣ変換テーブル７１から読み出される。ステップ１９では演算値Ｂと演算値Ａとが等しいと判定されるので、このときの可変フィールド値Ｘを所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴとしてステップ１１０に進み、送信フレーム４１の可変フィールド４６のデータをＸＴ（＝“０１０１”）に置き換え、ＣＲＣフィールド４３のＣＲＣ値を所望のＣＲＣ値ＣＴ（＝１０１１）に置き換えて、送信フレーム４１ａとして出力する。
【００５５】
第２の実施の形態においても、このようにして所望のＣＲＣ値ＣＴとデータフィールド４２のデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値ＸＴを定めることができる。
【００５６】
第２の実施の形態により所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴを得るのにかかる時間Ｔ２は、
Ｔ２＝ＴＲ＋ＴＣ＋ＴＲ＊Ｍ
により算出される。
【００５７】
１ｋワードのデータに１６ビットのＣＲＣを付加した送信データ（可変フィールド長は１６ビット）の場合、第１の実施の形態における計算と同様にして、
Ｔ２／Ｔ０＝（ＴＲ＋ＴＣ＋ＴＲ＊Ｍ）／（ＴＲ＋ＴＣ＊Ｍ）≒Ｒ／Ｃ
となる。したがって、１ｋワードのデータに１６ビットのＣＲＣを付加した送信データの場合では、
Ｔ２／Ｔ０＝１／１０２４
となり、本発明の第２の実施の形態の方法は、第１の実施の形態に比較してさらなる処理時間の短縮が達成可能となる。
【００５８】
次に、さらに他の実施の形態について説明する。図９は、本発明の第３の実施の形態のフロー図である。図９のフロー図は、図６のフロー図におけるステップ１６，１７，５１および１９が削除され、代わりにステップ８１が挿入されている。
【００５９】
図９において、ステップ１１は、送信するデータの可変フィールド値Ｘを０に初期化する。ステップ１２は、送信するデータをメモリ３に格納する。ステップ１３は、メモリ３から送信するデータを読み出す。ステップ１４は、ＣＰＵ２により送信するデータに対してＣＲＣ値を計算する。ステップ１５は、ＣＰＵ２により可変フィールド値が０の送信データに対するＣＲＣ値と所望のＣＲＣ値とのＸＯＲを計算し、これを演算値Ａとして保存する。
【００６０】
ステップ８１は、データフィールドのビット長（データ長）Ｌおよび演算値Ａをアドレスとしてメモリ３内のＣＲＣ変換テーブルにアクセスし、該当アドレスに格納された可変フィールド値Ｘを読み出す。ステップ１１０は、ＣＰＵ２の制御の下にシリアル送信部４へフレームの構成順序で出力し送信する。
【００６１】
図１０は第３の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例である。図１０では、ＣＲＣ変換テーブル９１には、データフィールドのビット長Ｌおよび演算値Ａをアドレス９２としたときに対応する可変フィールド値Ｘが演算値データ９３として格納されている。第２の実施の形態における図７のＣＲＣ変換テーブル６１の演算値Ｂの順序に可変フィールド値Ｘが対応するように並べ替え、演算値Ｂを演算値Ａと読み替えて、ＣＲＣ変換テーブル９１が作成される。これにより、データフィールドのビット長Ｌおよび演算値Ａをアドレス９２としてＣＲＣ変換テーブル６１をアクセスすると、直接に演算値Ａに対応する可変フィールド値を読み出すことができる。
【００６２】
図１０においてＣＲＣ変換テーブル９１は、下位のアドレスに相当する演算値Ｂのそれぞれに対応させて可変フィールド値Ｘが演算値データ６３として格納される複数の下位テーブルを含み、上位のアドレスに相当するデータフィールドのビット長Ｌにより下位テーブルの中の一つを選択するように構成されている。ＣＲＣ変換テーブル６１をこのように構成しておくことにより、複数の異なるビット長のデータに対しても新たにテーブルを作成する必要なく処理できる。
【００６３】
図１１は第３の実施の形態を図９のフロー図と対応させて説明するための図である。図１１では、第２の実施の形態の図８と同様に、データフィールド４２のビット長Ｌが１６ビット、可変フィールド４６が４ビット、ＣＲＣフィールド４３が４ビットとした。ＥＯＦフィールドは省略した。
【００６４】
次に、第３の実施の形態について図９と図１１とを用いて具体的に説明する。ステップ１１からステップ１４までが実行された段階では、送信フレーム４１に示すように、可変フィールド４３の可変フィールド値Ｘが初期値のＸ０（＝“００００”）であり、データフィールド４２のデータと生成多項式とに基づいて計算されたＣＲＣフィールド４３のＣＲＣ値がＣ０（＝“０００１”）である。
【００６５】
これに対して、所望のＣＲＣ値４４がＣＴ（＝“１０１１”）であるとすれば、ステップ１５ではＣ０とＣＴのＸＯＲにより求めた演算値Ａ（４５）は“１０１０”となる。
【００６６】
ステップ８１でデータフィールドのビット長Ｌおよび演算値Ａ（＝“１０１０”）をアドレスとしてＣＲＣ変換テーブル４７をアクセスし、該当アドレスに予め格納された可変フィールド値ＸがＣＲＣ変換テーブル７１から読み出される。読み出された可変フィールド値Ｘは所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴであることが保証されるので、ステップ１１０に進み、送信フレーム４１の可変フィールド４６のデータをＸＴ（＝“０１０１”）に置き換え、ＣＲＣフィールド４３のＣＲＣ値を所望のＣＲＣ値ＣＴ（＝１０１１）に置き換えて、送信フレーム４１ａとして出力する。
【００６７】
第３の実施の形態においても、このようにして所望のＣＲＣ値ＣＴとデータフィールド４２のデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値ＸＴを定めることができる。
【００６８】
第３の実施の形態により所望のＣＲＣ値ＣＴに対応する可変フィールド値ＸＴを得るのにかかる時間Ｔ３は、
Ｔ３＝ＴＲ＋ＴＣ＋ＴＲ
により算出される。
【００６９】
１ｋワードのデータに１６ビットのＣＲＣを付加した送信データ（可変フィールド長は１６ビット）の場合、第１の実施の形態における計算と同様にして、
Ｔ２／Ｔ０＝（ＴＲ＋ＴＣ＋ＴＲ）／（ＴＲ＋ＴＣ＊Ｍ）
となる。演算値Ａと一致する演算値Ｂを得るために必要とする平均的な繰り返し回数Ｍは凡そ２１５であるので、１ｋワードのデータに１６ビットのＣＲＣを付加した送信データの場合では、
Ｔ３／Ｔ０＝（１＋１＋１０２４）／（１＋１０２４＊２１５）＝１／３２７６８となり、本発明の第３の実施の形態の方法は、第２の実施の形態に比較してさらなる処理時間の短縮が達成可能となる。
【００７０】
図１２は本発明の第４の実施の形態のフロー図である。第４の実施の形態ではＣＰＵがアクセスするＣＲＣ変換テーブルのアドレスインデックスとしてデータフィールドのビット長Ｌおよびビット番号Ｎに生成多項式Ｐを加えたものである。図１２のフローは、第１の実施形態のフロー図である図３のステップ１８をステップ１２１に置き換えたものであり、他のステップは同じである。
【００７１】
図１２において、ステップ１１は、送信するデータの可変フィールド値Ｘを０に初期化する。ステップ１２は、送信するデータをメモリ３に格納する。ステップ１３は、メモリ３から送信するデータを読み出す。ステップ１４は、ＣＰＵ２により送信するデータに対してＣＲＣ値を計算する。ステップ１５は、ＣＰＵ２により可変フィールド値が０の送信データに対するＣＲＣ値と所望のＣＲＣ値とのＸＯＲを計算し、これを演算値Ａとして保存する。
【００７２】
ステップ１６は、演算値Ａが０であるか否かを判定する。演算値Ａが０であれば所望のＣＲＣが得られているので、ステップ１１０に進む。演算値Ａが０なければステップ１７に進む。
【００７３】
ステップ１７は、可変フィールド値Ｘをインクリメントして次のステップ以後で仮に可変フィールド値Ｘとして用いるデータを設定する。ステップ１２１は、生成多項式Ｐ、データフィールドのビット長（データ長）Ｌおよび可変フィールド値Ｘにおけるビット表現“１”に対応するビット番号をアドレスとしてメモリ３内のＣＲＣ変換テーブルにアクセスし、該当するすべてのアドレスに格納された補正値Ｅを読み出し、ＸＯＲをとることにより演算値Ｂを算出する。ステップ１９は、ＣＰＵ２により演算値Ｂを演算値Ａと比較し、等しければステップ１１０に進み、等しくなければステップ１７に戻る。ステップ１１０は、ＣＰＵ２の制御の下にシリアル送信部４へ送信フレームの構成順序でデータを出力し送信する。
【００７４】
図１３は第４の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例である。図１３において、１３２は入力される生成多項式Ｐ、データフィールドのビット長Ｌおよびビット番号Ｎに対応するアドレスのインデックスを示す。１３３は、図４における３３と同様に、可変フィールド値Ｘにおける反転させるべきビットを“１”として指定する補正値データを示す。
【００７５】
生成多項式も可変フィールドを使用する方法と同様に生成多項式の各次数の係数を変化させることによって影響を受けるビットを特定することが可能である。ゆえに、生成多項式Ｐ（例えばＰ（Ｘ）＝Ｘ２＋１ならばＰ＝“１０１”）をＣＲＣ変換テーブル１３１の入力として、生成多項式Ｐ、データフィールドのビット長Ｌおよびビット番号Ｎとともに読み出し用アドレスを生成し、対応する補正値データ１３３を予めＣＲＣ変換テーブル１３１に格納しておくことにより、演算値Ｂを決定することができる。
【００７６】
図１３においてＣＲＣ変換テーブル１３１は、下位のアドレスに相当するビット番号Ｎのそれぞれに対応させて補正値Ｅが補正値データ１３３として格納される複数の下位テーブルを含み、上位のアドレスに相当する生成多項式Ｐおよびデータフィールドのビット長Ｌにより下位テーブルの中の一つを選択するように構成されている。ＣＲＣ変換テーブル１３１をこのように構成しておくことにより、複数の異なる生成多項式および複数の異なるビット長のデータの組合せに対しても新たにテーブルを作成する必要なく処理できる。
【００７７】
なお、上記の説明では、第４の実施の形態は、第１の実施の形態をもとにアドレスに生成多項式Ｐをさらに加えるとして説明したが、第２の実施の形態を生成多項式Ｐを加えるように変更することは容易である。すなわち、図７のアドレス６２が生成多項式Ｐ、データフィールドのビット長Ｌおよび可変フィールド値Ｘにより定まるように変更し、図６のステップ５１を、ＣＲＣ変換テーブルから生成多項式Ｐ、データフィールドのビット長Ｌおよび可変フィールドＸに対応する演算値Ｂの読み出し、に変更すればよい。第２の実施の形態をもとに変更されたＣＲＣ符号生成方法は、ＣＲＣの生成多項式が変更された場合においても所望のＣＲＣ値とデータフィールドのデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値を定めることが可能であり、第２の実施の形態と同等の時間で高速に処理することが可能である。同様に、第３の実施の形態に生成多項式Ｐを加えるように変更することも容易である。すなわち、図１０のアドレス９２が生成多項式Ｐ、データフィールドのビット長Ｌおよび演算値Ａにより定まるように変更し、図９のステップ８１を、ＣＲＣ変換テーブルから生成多項式Ｐ、データフィールドのビット長Ｌおよび演算値Ａに対応する可変フィールド値Ｘの読み出し、に変更すればよい。第３の実施の形態をもとに変更されたＣＲＣ符号生成方法は、ＣＲＣの生成多項式が変更された場合においても所望のＣＲＣ値とデータフィールドのデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値を定めることが可能であり、第３の実施の形態と同等の時間で高速に処理することが可能である。
【００７８】
【発明の効果】
以上に説明したとおり、本発明のＣＲＣ符号生成方法を適用することにより、所望のＣＲＣ値を有する送信フレームの生成を、極めて高速に行うことができるようになり、従来例に比較してその効果は顕著である。
【図面の簡単な説明】
【図１】送信装置の基本的な構成を示すブロック図である。
【図２】（ａ）は可変フィールド値Ｘが初期値０のときの送信フレームを模式的に示す図であり、（ｂ）は所望のＣＲＣ値に対応するデータ値とするのに必要な可変フィールド値が生成された後の送信フレームを模式的に示す図である。
【図３】本発明の第１の実施の形態のフロー図である。
【図４】第１の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例の図である。
【図５】第１の実施の形態をフロー図と対応させて説明するための図である。
【図６】第２の実施の形態のフロー図である。
【図７】第２の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例の図である。
【図８】第２の実施の形態をフロー図と対応させて説明するための図である。
【図９】第３の実施の形態のフロー図である。
【図１０】第３の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例の図である。
【図１１】第３の実施の形態をフロー図と対応させて説明するための図である。
【図１２】第４の実施の形態のフロー図である。
【図１３】第４の実施の形態に対応するＣＲＣ変換テーブルの可変フィールドが１６ビットの場合の構成例の図である。
【図１４】（ａ）は送信フレームを模式的に示す図であり、（ｂ）はＣＲＣ値を所望のＣＲＣ値に置換した場合の送信フレームを模式的に示す図である。
【図１５】ＣＲＣ値を単純に所望のＣＲＣ値に置換する場合のフロー図である。
【図１６】可変フィールドを設けてデータと所望のＣＲＣ値との間に不一致が生じないようにした従来例のフロー図である。
【符号の説明】
１    送信装置
２    ＣＰＵ
３    メモリ
４    シリアル送信部
２１，４２    データフィールド
２２，４６    可変フィールド
２３，４３    ＣＲＣフィールド
３１，４７，６１，７１，９１，１０１，１３１    ＣＲＣ変換テーブル
４１，４１ａ    送信フレーム
【図１】
2004235763.tif 000003
【図２】
2004235763.tif 000004
【図３】
2004235763.tif 000005
【図４】
2004235763.tif 000006
【図５】
2004235763.tif 000007
【図６】
2004235763.tif 000008
【図７】
2004235763.tif 000009
【図８】
2004235763.tif 000010
【図９】
2004235763.tif 000011
【図１０】
2004235763.tif 000012
【図１１】
2004235763.tif 000013
【図１２】
2004235763.tif 000014
【図１３】
2004235763.tif 000015
【図１４】
2004235763.tif 000016
【図１５】
2004235763.tif 000017
【図１６】
2004235763.tif 000018