JP3880934B2 - Crc符号生成方法 - Google Patents
Crc符号生成方法 Download PDFInfo
- Publication number
- JP3880934B2 JP3880934B2 JP2003019413A JP2003019413A JP3880934B2 JP 3880934 B2 JP3880934 B2 JP 3880934B2 JP 2003019413 A JP2003019413 A JP 2003019413A JP 2003019413 A JP2003019413 A JP 2003019413A JP 3880934 B2 JP3880934 B2 JP 3880934B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- crc
- variable field
- data
- field value
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、CRC(Cyclic Redundancy Check)符号生成方法に関し、特に、データの一部を変更することにより所望のCRC符号を生成することが可能なCRC符号生成方法に関する。
【0002】
【従来の技術】
ケーブルを介したシリアル通信では、同じレベルのデータ列が連続するときに低周波成分による電圧レベルのドリフトが発生することがある。これを防ぐために、“1”または“0”が連続するときには、連続した論理値とは逆の論理値のビットを挿入する技術(bit stuffing)が使用される。例えば、USB(Universal Serial Bus)データパケットフォーマットでは、データ中に“1”が7回以上連続する場合に、6個目の“1”の後に“0”を挿入すると規定され、この例外として“1”が7回連続した場合には、その部分はフレームの終わりを示すEOF(End of Frame)と規定されている。
【0003】
このようなシリアル通信では、ネットワーク上を流れるデータのひとつのかたまりであるフレームの最後にCRC(Cyclic Redundancy Check:巡回冗長検査)フィールドとEOFとが連続するフレームフォーマットが一般的に使用されている。
【0004】
CRCにより送受信試験を行う場合には、例えば、送信側でフレーム単位のデータに対して所定の生成多項式を用いてCRC符号が計算され、このCRC符号がデータに付加されて送信される。受信側では、受信したデータは送信側と同一の生成多項式を用いて除算され、剰余が生じる場合にエラーが発生したと判定される(例えば、特許文献1参照。)。
【0005】
送信装置と受信装置との間でパケットが正しく送受信されるか否かの試験では、任意のコードがCRCフィールドに設定できれば好都合である。また、異なるメーカで開発された製品との対向通信時には、互いに正しい機能が実現されているか否かの確認のために、任意のコードのCRCを発生することが必要となる。
【0006】
【特許文献1】
特開2001−244820号公報(段落0003−0006)
【0007】
【発明が解決しようとする課題】
送信装置が、図14(a)の送信フレームにおいてデータフィールド141のデータに基づいて生成されCRCフィールド142に付加されたCRC符号(以下、CRC値と呼ぶ)“0001”を、図14(b)に示すように所望のCRC値“1011”に置換してから送信する場合を想定する。例えば図1のように構成された送信装置1が、図15のフロー図にしたがって、ステップ12で送信するメモリ2にデータを格納し、ステップ13でメモリ2からデータを読み出し、ステップ14でCPU2によりCRC値を計算し、ステップ151でCRC値を所望のCRC値に置換し、ステップ110でフレームの構成順序で出力して送信する場合には、受信側でCRC不一致エラーが発生することになり、正常な試験が実施されない。なお、143はEOFフィールドである。装置同士を接続してフレームの送受信を行う対向テストではCRCエラーを発生した場合にはエラー処理に移ってしまうために、正常な送受信が確認された後に実行されるべき処理の確認ができない。
【0008】
上記の点を改良した方法として、図2に示すようにデータフィールド中にデータの変更が可能な可変フィールドが設けられ、可変フィールドのデータを変更しながらCRC値が所望の値になるまでCRC演算を逐一繰り返す方法が使用されている。図16は、この従来のCRCの符号生成方法のフロー図である。
【0009】
送信装置1は、ステップ11で可変フィールドに可変フィールド値Xとして0(可変フィールド長が4ビットならば“0000”)を設定し、ステップ12で送信するメモリ2にデータを格納し、ステップ13でメモリ2からデータを読み出し、ステップ14でCPU2によりCRC値を計算する。次に、ステップ161おいて、ステップ14で算出されたCRC値が所望のCRC値に等しいか否かを判断し、等しくないときにはステップ162に進んで可変フィールド値Xに1を加算してからステップ14に戻る。ステップ161において、算出されたCRC値と所望のCRC値とが等しいと判断されたときにはステップ110へ進み、フレームの構成順序で出力して送信する。
【0010】
しかしながら、図16に示した方法では可変フィールド値が加算されるたびにCRC値を再計算しなければならず、非常に時間がかかるという問題があった。
【0011】
本発明は、上記のような状況に鑑みてなされたもので、本発明の目的は、所望のCRC値を有する送信フレームを高速に生成することが可能なCRCの符号生成方法を提供することである。
【0012】
【課題を解決するための手段】
本発明の第1の発明のCRC符号生成方法は、データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータおよび生成多項式に基づいて算出されたCRC値が所望のCRC値と一致するように前記可変フィールド値を定めるCRC符号生方法において、仮の可変フィールド値を設定する第1のステップと、予め所定のビット番号に対応させて可変フィールド値の反転させるべきビットの値を1として指定する補正値を格納した変換テーブルから前記仮の可変フィールド値のビットの値が1のビット番号に対応するすべての補正値を読み出して排他的論理和をとり第1の演算値を算出する第2のステップと、前記第1の演算値が前記所望のCRC値に対応するものであれば前記仮の可変フィールド値を所望のCRC値が得られる可変フィールド値と判定する第3のステップと、を備えることを特徴とする。
【0013】
第2の発明のCRC符号生成方法は、データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたCRC値が所望のCRC値と一致するように前記可変フィールド値を定めるCRC符号生方法において、仮の可変フィールド値を設定する第1のステップと、予め可変フィールド値X(可変フィールドのビット長をKとするときXは1以上で2K−1以下の整数)に対応させて前記可変フィールド値が0のときのCRC値と前記可変フィールド値がXのときのCRC値との排他的論理和である第1の演算値が格納された変換テーブルから前記仮の可変フィールド値に対応する第1の演算値を読み出す第2のステップと、読み出された第1の演算値が前記所望のCRC値に対応するものであれば前記仮の可変フィールド値を所望のCRC値が得られる可変フィールド値と判定する第3のステップと、を備えることを特徴とする。
【0014】
第3の発明のCRC符号生成方法は、データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたCRC値が所望のCRC値と一致するように前記可変フィールド値を定めるCRC符号生方法において、前記可変フィールド値が0の場合のCRC値と所望のCRC値との排他的論理和をとり第1の演算値を算出する第1のステップと、予め可変フィールド値が0のときのCRC値と可変フィールド値がX(可変フィールドのビット長をKとするときXは1以上で2K−1以下の整数)のときのCRC値との排他的論理和である第2の演算値に対応させて可変フィールド値Xが格納された変換テーブルから前記第1の演算値に等しい値の第2の演算値に対応する可変フィールド値を前記所望のCRC値が得られる可変フィールド値として読み出す第2のステップと、を備えることを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について添付図面を参照しながら詳細に説明する。
【0016】
図1は送信装置の基本的な構成を示すブロック図である。送信装置1は、送信装置の制御プログラムおよび送信データ等を格納するメモリ3と、制御プログラムにしたがってCRC値の算出および送信フレームの出力制御等を行うCPU2と、送信フレームをシリアル通信ネットワークに出力するシリアル送信部4とを有している。送信装置の基本的な構成は例えば図16のフロー図にしたがって動作するシリアル送信装置と変わらないが、本発明のCRC符号生成方法を実行する送信装置においては、メモリ3内にCRC変換テーブルを有し、CPU2がCRC変換テーブルを用いて可変フィールド値を検索し、所望のCRC値を有する送信データを生成する。
【0017】
図2(a)、図2(b)は送信フレームの構成を模式的に示す図であり、送信フレームはデータフィールド21、CRCフィールド23およびEOFフィールド24を有し、さらにデータフィールド21中にデータの変更が可能な可変フィールド22が設けられている。図2(a)は可変フィールド値Xが初期値0(図では可変フィールド長が4ビットなので“0000”)のときの送信フレームを示し、図2(b)は所望のCRC値(“1011”とする)に対応するデータ値とするのに必要な可変フィールド値X(“0101”とする)が生成された後の送信フレームを示す。
【0018】
図3は本発明の第1の実施の形態のフロー図である。送信装置は次のステップを実行して所望のCRC値を有する送信データを生成し出力する。
【0019】
ステップ11は、送信データの可変フィールド値Xを0に初期化する。ステップ12は、送信データをメモリ3に格納する。ステップ13は、メモリ3から送信データを読み出す。ステップ14は、CPU2により送信データに対してCRC値を計算する。ステップ15は、CPU2により可変フィールド値が0の送信データに対するCRC値と所望のCRC値との排他的論理和(以下、XORと略す)を計算し、これを演算値Aとして保存する。
【0020】
ステップ16は、演算値Aが0であるか否かを判定する。演算値Aが0であれば所望のCRCが得られているので、ステップ110に進む。演算値Aが0なければステップ17に進む。
【0021】
ステップ17は、可変フィールド値Xをインクリメントして次のステップ以後で仮に可変フィールド値Xとして用いるデータを設定する。ステップ18は、データフィールドのビット長(データ長)Lおよび可変フィールド値Xにおけるビット表現“1”に対応するビット番号をアドレスとしてメモリ3内のCRC変換テーブルにアクセスし、該当するすべてのアドレスに格納された補正値Eを読み出し、XORをとることにより演算値Bを算出する。ステップ19は、CPU2により演算値Bを演算値Aと比較し、等しければステップ110に進み、等しくなければステップ17に戻る。ステップ110は、CPU2の制御の下にシリアル送信部4へ送信フレームの構成順序でデータを出力し送信する。
【0022】
図4は第1の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例である。図4において、32は入力されるデータフィールドのビット長Lおよびビット番号Nに対応するアドレスのインデックスを示す。33は可変フィールド値Xにおける反転させるべきビットを“1”として指定する補正値データを示す。例えば、補正値Eとして4ビットのLittle Endianで“1010”というデータが読み出された場合、可変フィールド値Xの4bit目と2bit目を反転させることで演算値Bが得られる。換言すれば、可変フィールド値Xと読み出された補正値EとのXORをとることにより演算値Bが得られる。CRC変換テーブル31へ入力されるNは可変フィールドのビット番号であり、Lはデータフィールドのビット長である。CRC変換テーブル31から出力されるEはCRCの補正値を示す。
【0023】
図4においてCRC変換テーブル31は、下位のアドレスに相当するビット番号Nのそれぞれに対応させて補正値Eが補正値データ33として格納される複数の下位テーブルを含み、上位のアドレスに相当するデータフィールドのビット長Lにより下位テーブルの中の一つを選択するように構成されている。CRC変換テーブル31をこのように構成しておくことにより、複数の異なるビット長のデータに対しても新たにテーブルを作成する必要なく処理できる。補正値Eは、可変フィールド値Xが2N(ビット番号Nは0以上で可変フィールドのビット長未満の整数)となるデータに対応して生成されたCRC値と、可変フィールド値X=0のデータに対応して生成されたCRC値と、をXOR演算することにより予め計算され、格納される。なお、図4で、ビット長Lの16D、ビット番号0D等の添字Dは10進数表現であることを示す。
【0024】
図5は第1の実施の形態を図3のフロー図と対応させて説明するための図である。図5では、図面が煩雑になることを避けるために、データフィールド42のビット長Lが16ビット、可変フィールド46が4ビット(フレームの先頭ビットを0ビット目としたとき4乃至7ビット目)、CRCフィールド43が4ビットとした。EOFフィールドは説明に関係しないので省略した。
【0025】
次に第1の実施の形態について図3と図5とを用いて具体的に説明する。ステップ11からステップ14までが実行された段階では、送信フレーム41に示すように、可変フィールド43の可変フィールド値Xが初期値のX0(=“0000”)であり、データフィールド42のデータと生成多項式とに基づいて計算されたCRCフィールド43のCRC値がC0(=“0001”)である。
【0026】
これに対して、所望のCRC値44がCT(=“1011”)であるとすれば、ステップ15ではC0とCTのXORにより求めた演算値A(45)は“1010”となる。ステップ16では、演算値Aが“0000”ではないので、ステップ17に進む。ステップ17では、可変フィールド値XがインクリメントしてX=“0001”となる。
【0027】
ステップ18では、データフィールドのビット長Lおよび可変フィールド値Xにおけるビット表現“1”に対応するビット番号Nをアドレスとしてメモリ3内のCRC変換テーブルにアクセスし、該当するすべてのアドレスに格納された補正値Eを読み出し、XORをとることにより演算値Bを算出する。ここではX=“0001”、すなわち可変フィールドの最下位ビットのみが“1”であるので、CRC変換テーブル47からビット番号N=0Dに対応する補正値Eとして“1101”が読み出される。次に予めプログラムされた演算値Bの計算式48にしたがってX=“0001”に対応する演算値B=“1101”が算出される。より詳細には、読み出された補正値E(=“1101”)のビット値が“1”である1ビット目、3ビット目、4ビット目に対応する可変フィールド値の初期値X0(=“0000”)のビット値が反転されて演算値B=“1101”が算出される。換言すれば、演算値Bは、初期値X0と補正値EとのXORにより算出されるが、初期値X0が“0000”であるため、補正値Eがそのまま演算値Bとなる。
【0028】
ステップ19では、B(=“1101”)がA(=“1010”)と等しくないので、ステップ17に戻る。
【0029】
2回目のステップ17からステップ19までの実行では、可変フィールド値Xは“0010”となり下位から2ビット目だけが1なのでCRC変換テーブル47からビット番号N=1Dに対応する補正値Eとして“1110”が読み出される。演算値Bの計算式48にしたがってX=“0010”に対応する演算値B=“1110”が算出され、演算値Bは演算値Aと等しくないので再度ステップ17に戻る。
【0030】
3回目のステップ17からステップ19までの実行では、可変フィールド値X=“0011”となり下位から1ビット目と2ビット目が1なので、CRC変換テーブル47からビット番号N=0Dに対応する補正値Eとして“1101”が読み出され、また、ビット番号N=1Dに対応する補正値Eとして“1110”が読み出される。演算値Bの計算式48にしたがって読み出された2つの補正値EのXORが計算され、X=“0011”に対応する演算値B=“0011”が算出され、演算値Bは演算値Aと等しくないので再度ステップ17に戻る。
【0031】
同様にしてステップ17からステップ19までを繰り返し、5回目では、ステップ17で可変フィールド値X=“0101”となり、ステップ18で下位から1ビット目と3ビット目が1なので、CRC変換テーブル47からビット番号N=0Dに対応する補正値Eとして“1101”が読み出され、また、ビット番号N=2Dに対応する補正値Eとして“0111”が読み出されて、演算値Bの計算式48にしたがって読み出された2つの補正値EのXORが計算され、X=“0101”に対応する演算値B=“1010”が算出される。ステップ19では演算値Bと演算値Aとが等しいと判定されるので、このときの可変フィールド値Xを所望のCRC値CT(=“1011”)に対応する可変フィールド値XTとしてステップ110に進み、送信フレーム41の可変フィールド46のデータをXT(=“0101”)に置き換え、CRCフィールド43のCRC値を所望のCRC値CT(=“1011”)に置き換えて、送信フレーム41aとして出力する。
【0032】
第1の実施形態は、このようにして所望のCRC値CTとデータフィールド42のデータとの間に矛盾が生じて不一致エラーとなることがないように所望のCRC値CTに対応する可変フィールド値XTを定めることができる。
【0033】
CRC変換テーブル47の作成について図5を参照して具体的に説明する。補正値Eは、可変フィールド値Xが2Nとなるデータに対応して生成されたCRC値と、可変フィールド値X=0のデータに対応して生成されたCRC値と、をXOR演算することにより予め計算される。例えば、L=16D、N=0Dに対応する補正値E0は、送信フレーム41の可変フィールド値Xが20(=“0001”)であるとして計算されたCRC値C1(=“1100”となる)と、送信フレーム41の可変フィールド値Xが“0000”であるとして計算されたCRC値C0(=“0001”)とのXORを計算することにより補正値E0=“1101”と算出される。L=16D、N=1Dに対応する補正値E1、L=16D、N=2Dに対応する補正値E2、L=16D、N=3Dに対応する補正値E3についても同様にして算出され、CRC変換テーブル47が作成される。
【0034】
データフィールドのビット長毎にCRC変換テーブル47を予め作成しておくことにより、任意のデータ(データフィールド42の可変フィールド46以外のデータ)および任意の所望のCRC値CTに対し、図5を用いて説明したようにして、所望のCRC値CT(=“1011”)に対応する可変フィールド値XTを得ることができる。
【0035】
本発明のCRC符号生成方法の根拠は、CRCは入力系列の値を生成多項式で除算した余りで求められるが、mod2(2を法(modulus)とする算法)の世界では、除算はビットごとの排他的論理和(XOR)となること、また、入力系列の特定のビット値を変化させた場合に影響を受けるCRCのビットは入力系列のデータフィールドのビット長Lおよびそのビット番号Nにのみ依存し、入力系列そのものには依存しないことに因っている。
【0036】
第1の実施の形態の効果について説明する。図16の従来例では所望のCRC値CTに対応する可変フィールド値XTを得るのにかかる時間T0は、
T0=TR+TC*M
により算出される。
【0037】
これに対して、第1の実施の形態により所望のCRC値CTに対応する可変フィールド値XTを得るのにかかる時間T1は、
T1=TR+TC+TL*M
により算出される。
ここで、
TR:メモリ3からの読み出し時間
TC:CRC値の計算時間
M:演算値Aと一致する演算値Bを得るために必要な繰り返し回数
TL:CRC変換テーブルを用いて所望のCRC値CTに対応する可変フィールド値XTを計算するために要する時間
とする。
【0038】
1kワードのデータに16ビットのCRCを付加した送信データ(可変フィールド長は16ビット)の場合、TRが1クロック時間とすると、TLは、メモリ3からの読み出しとXOR演算がパイプライン的に実行されるものとしてCRC変換テーブルからデータを読み出す平均的な時間にXOR演算の1クロックを加えた時間となり、
TL=(16C1+2*16C2+3*16C3+・・・+16*16C16)/(216−1)+1=9(クロック時間)
となる。
【0039】
また、TCは、CRCの計算がメモリから1ワードずつ読み出して計算することをワード長分の回数繰り返すので、1024ワードの読み出しに要するクロック時間(1024クロック時間)となる。
【0040】
可変フィールドのビット長が大きいときにはMが非常に大きくなることから、T1/T0=(TR+TC+TL*M)/(TR+TC*M)≒TL/TC
となる。したがって、1kワードのデータに16ビットのCRCを付加した送信データの場合では、
T1/T0=9/1024=1/114
となり、図3および図4に特徴づけられる本発明の第1の実施の形態のCRC符号生成方法は、従来例と比較して大幅な処理時間の短縮が可能となる。
【0041】
また、第1の実施の形態の方法を実現するためのテーブルのサイズは、異なるデータフィールドのビット長L毎に、(可変フィールドのビット長)*(補正値Eのデータ長)となる。
【0042】
次に、他の実施の形態について説明する。図6は、本発明の第2の実施の形態のフロー図である。図6のフロー図は、図3のフロー図におけるステップ18がステップ51に置き換わっている点が第1の実施の形態と異なる。
【0043】
図6において、ステップ11は、送信データの可変フィールド値Xを0に初期化する。ステップ12は、送信データをメモリ3に格納する。ステップ13は、メモリ3から送信データを読み出す。ステップ14は、CPU2により送信データに対してCRC値を計算する。ステップ15は、CPU2により可変フィールド値が0の送信データに対するCRC値と所望のCRC値とのXORを計算し、これを演算値Aとして保存する。
【0044】
ステップ16は、演算値Aが0であるか否かを判定する。演算値Aが0であれば所望のCRCが得られているので、ステップ110に進む。演算値Aが0なければステップ17に進む。ステップ17は、可変フィールド値Xをインクリメントして次のステップ以後で仮に可変フィールド値Xとして用いるデータを設定する。
【0045】
ステップ51は、データフィールドのビット長(データ長)Lおよび可変フィールド値Xをアドレスとしてメモリ3内のCRC変換テーブルにアクセスし、該当アドレスに格納された演算値Bを読み出す。ステップ19は、CPU2により演算値Bを演算値Aと比較し、等しければステップ110に進み、等しくなければステップ17に戻る。ステップ110は、CPU2の制御の下にシリアル送信部4へ送信フレームの構成順序でデータを出力し送信する。
【0046】
図7は第2の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例である。図7では、CRC変換テーブル61には、データフィールドのビット長Lおよび可変フィールド値Xをアドレス62としたときに対応する演算値Bが演算値データ63として格納されている。演算値Bは、可変フィールド値Xが0のときのCRC値と可変フィールド値Xが2K−1(Kは1以上で可変フィールドのビット長である16以下の整数)のときのCRC値との排他的論理和であるので逐一算出することができるが、実用的には、第1の実施の形態における図5で説明したと同様に、補正値を格納したCRC変換テーブル47と演算値Bの計算式48とを用いて可変フィールド値Xに対応する演算値Bを求めた後に、データフィールドのビット長Lおよび可変フィールド値Xをアドレス62にして直接に演算値Bを読み出せるようにテーブル化する方が計算量が少なくなり効率的である。
【0047】
図7においてCRC変換テーブル61は、下位のアドレスに相当する可変フィールド値Xのそれぞれに対応させて演算値Bが演算値データ63として格納される複数の下位テーブルを含み、上位のアドレスに相当するデータフィールドのビット長Lにより下位テーブルの中の一つを選択するように構成されている。CRC変換テーブル61をこのように構成しておくことにより、複数の異なるビット長のデータに対しても新たにテーブルを作成する必要なく処理できる。
【0048】
図8は第2の実施の形態を図6のフロー図と対応させて説明するための図である。図8では、第1の実施の形態の図5と同様に、データフィールド42のビット長Lが16ビット、可変フィールド46が4ビット、CRCフィールド43が4ビットとした。EOFフィールドは省略した。
【0049】
次に、第2の実施の形態について図6と図8とを用いて具体的に説明する。ステップ11からステップ14までが実行された段階では、送信フレーム41に示すように、可変フィールド43の可変フィールド値Xが初期値のX0(=“0000”)であり、データフィールド42のデータと生成多項式とに基づいて計算されたCRCフィールド43のCRC値がC0(=“0001”)である。
【0050】
これに対して、所望のCRC値44がCT(=“1011”)であるとすれば、ステップ15ではC0とCTのXORにより求めた演算値A(45)は“1010”となる。ステップ16では、演算値Aが“0000”ではないので、ステップ17に進む。ステップ17では、可変フィールド値Xがインクリメントして可変フィールド値X=“0001”となる。ここまでは図5の場合と同様である。
【0051】
次に、ステップ51では、データフィールドのビット長Lおよび可変フィールド値XをアドレスとしてCRC変換テーブル47の該当アドレスに予め格納された演算値Bを読み出す。X=“0001”であるので、CRC変換テーブル71の可変フィールド値X=“0001”に格納されたB=“1101”が読み出される。
【0052】
ステップ19では、B(=“1101”)がA(=“1010”)と等しくないので、ステップ17に戻る。
【0053】
2回目、3回目、4回目のステップ17からステップ19までの実行では、可変フィールド値Xが“0010”、“0011”、“0100”となり、それぞれに対応し演算値Bとして、“1110”、“0011”、“0111”がCRC変換テーブル71から読み出されるが、いずれの場合にも演算値Bは演算値Aと等しくないのでステップ17に戻る。
【0054】
5回目の実行では、ステップ17で可変フィールド値X=“0101”となるので、ステップ51で演算値Bとして“1010”がCRC変換テーブル71から読み出される。ステップ19では演算値Bと演算値Aとが等しいと判定されるので、このときの可変フィールド値Xを所望のCRC値CTに対応する可変フィールド値XTとしてステップ110に進み、送信フレーム41の可変フィールド46のデータをXT(=“0101”)に置き換え、CRCフィールド43のCRC値を所望のCRC値CT(=1011)に置き換えて、送信フレーム41aとして出力する。
【0055】
第2の実施の形態においても、このようにして所望のCRC値CTとデータフィールド42のデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値XTを定めることができる。
【0056】
第2の実施の形態により所望のCRC値CTに対応する可変フィールド値XTを得るのにかかる時間T2は、
T2=TR+TC+TR*M
により算出される。
【0057】
1kワードのデータに16ビットのCRCを付加した送信データ(可変フィールド長は16ビット)の場合、第1の実施の形態における計算と同様にして、
T2/T0=(TR+TC+TR*M)/(TR+TC*M)≒R/C
となる。したがって、1kワードのデータに16ビットのCRCを付加した送信データの場合では、
T2/T0=1/1024
となり、本発明の第2の実施の形態の方法は、第1の実施の形態に比較してさらなる処理時間の短縮が達成可能となる。
【0058】
次に、さらに他の実施の形態について説明する。図9は、本発明の第3の実施の形態のフロー図である。図9のフロー図は、図6のフロー図におけるステップ16,17,51および19が削除され、代わりにステップ81が挿入されている。
【0059】
図9において、ステップ11は、送信するデータの可変フィールド値Xを0に初期化する。ステップ12は、送信するデータをメモリ3に格納する。ステップ13は、メモリ3から送信するデータを読み出す。ステップ14は、CPU2により送信するデータに対してCRC値を計算する。ステップ15は、CPU2により可変フィールド値が0の送信データに対するCRC値と所望のCRC値とのXORを計算し、これを演算値Aとして保存する。
【0060】
ステップ81は、データフィールドのビット長(データ長)Lおよび演算値Aをアドレスとしてメモリ3内のCRC変換テーブルにアクセスし、該当アドレスに格納された可変フィールド値Xを読み出す。ステップ110は、CPU2の制御の下にシリアル送信部4へフレームの構成順序で出力し送信する。
【0061】
図10は第3の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例である。図10では、CRC変換テーブル91には、データフィールドのビット長Lおよび演算値Aをアドレス92としたときに対応する可変フィールド値Xが演算値データ93として格納されている。第2の実施の形態における図7のCRC変換テーブル61の演算値Bの順序に可変フィールド値Xが対応するように並べ替え、演算値Bを演算値Aと読み替えて、CRC変換テーブル91が作成される。これにより、データフィールドのビット長Lおよび演算値Aをアドレス92としてCRC変換テーブル61をアクセスすると、直接に演算値Aに対応する可変フィールド値を読み出すことができる。
【0062】
図10においてCRC変換テーブル91は、下位のアドレスに相当する演算値Bのそれぞれに対応させて可変フィールド値Xが演算値データ63として格納される複数の下位テーブルを含み、上位のアドレスに相当するデータフィールドのビット長Lにより下位テーブルの中の一つを選択するように構成されている。CRC変換テーブル61をこのように構成しておくことにより、複数の異なるビット長のデータに対しても新たにテーブルを作成する必要なく処理できる。
【0063】
図11は第3の実施の形態を図9のフロー図と対応させて説明するための図である。図11では、第2の実施の形態の図8と同様に、データフィールド42のビット長Lが16ビット、可変フィールド46が4ビット、CRCフィールド43が4ビットとした。EOFフィールドは省略した。
【0064】
次に、第3の実施の形態について図9と図11とを用いて具体的に説明する。ステップ11からステップ14までが実行された段階では、送信フレーム41に示すように、可変フィールド43の可変フィールド値Xが初期値のX0(=“0000”)であり、データフィールド42のデータと生成多項式とに基づいて計算されたCRCフィールド43のCRC値がC0(=“0001”)である。
【0065】
これに対して、所望のCRC値44がCT(=“1011”)であるとすれば、ステップ15ではC0とCTのXORにより求めた演算値A(45)は“1010”となる。
【0066】
ステップ81でデータフィールドのビット長Lおよび演算値A(=“1010”)をアドレスとしてCRC変換テーブル47をアクセスし、該当アドレスに予め格納された可変フィールド値XがCRC変換テーブル71から読み出される。読み出された可変フィールド値Xは所望のCRC値CTに対応する可変フィールド値XTであることが保証されるので、ステップ110に進み、送信フレーム41の可変フィールド46のデータをXT(=“0101”)に置き換え、CRCフィールド43のCRC値を所望のCRC値CT(=1011)に置き換えて、送信フレーム41aとして出力する。
【0067】
第3の実施の形態においても、このようにして所望のCRC値CTとデータフィールド42のデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値XTを定めることができる。
【0068】
第3の実施の形態により所望のCRC値CTに対応する可変フィールド値XTを得るのにかかる時間T3は、
T3=TR+TC+TR
により算出される。
【0069】
1kワードのデータに16ビットのCRCを付加した送信データ(可変フィールド長は16ビット)の場合、第1の実施の形態における計算と同様にして、
T2/T0=(TR+TC+TR)/(TR+TC*M)
となる。演算値Aと一致する演算値Bを得るために必要とする平均的な繰り返し回数Mは凡そ215であるので、1kワードのデータに16ビットのCRCを付加した送信データの場合では、
T3/T0=(1+1+1024)/(1+1024*215)=1/32768となり、本発明の第3の実施の形態の方法は、第2の実施の形態に比較してさらなる処理時間の短縮が達成可能となる。
【0070】
図12は本発明の第4の実施の形態のフロー図である。第4の実施の形態ではCPUがアクセスするCRC変換テーブルのアドレスインデックスとしてデータフィールドのビット長Lおよびビット番号Nに生成多項式Pを加えたものである。図12のフローは、第1の実施形態のフロー図である図3のステップ18をステップ121に置き換えたものであり、他のステップは同じである。
【0071】
図12において、ステップ11は、送信するデータの可変フィールド値Xを0に初期化する。ステップ12は、送信するデータをメモリ3に格納する。ステップ13は、メモリ3から送信するデータを読み出す。ステップ14は、CPU2により送信するデータに対してCRC値を計算する。ステップ15は、CPU2により可変フィールド値が0の送信データに対するCRC値と所望のCRC値とのXORを計算し、これを演算値Aとして保存する。
【0072】
ステップ16は、演算値Aが0であるか否かを判定する。演算値Aが0であれば所望のCRCが得られているので、ステップ110に進む。演算値Aが0なければステップ17に進む。
【0073】
ステップ17は、可変フィールド値Xをインクリメントして次のステップ以後で仮に可変フィールド値Xとして用いるデータを設定する。ステップ121は、生成多項式P、データフィールドのビット長(データ長)Lおよび可変フィールド値Xにおけるビット表現“1”に対応するビット番号をアドレスとしてメモリ3内のCRC変換テーブルにアクセスし、該当するすべてのアドレスに格納された補正値Eを読み出し、XORをとることにより演算値Bを算出する。ステップ19は、CPU2により演算値Bを演算値Aと比較し、等しければステップ110に進み、等しくなければステップ17に戻る。ステップ110は、CPU2の制御の下にシリアル送信部4へ送信フレームの構成順序でデータを出力し送信する。
【0074】
図13は第4の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例である。図13において、132は入力される生成多項式P、データフィールドのビット長Lおよびビット番号Nに対応するアドレスのインデックスを示す。133は、図4における33と同様に、可変フィールド値Xにおける反転させるべきビットを“1”として指定する補正値データを示す。
【0075】
生成多項式も可変フィールドを使用する方法と同様に生成多項式の各次数の係数を変化させることによって影響を受けるビットを特定することが可能である。ゆえに、生成多項式P(例えばP(X)=X2+1ならばP=“101”)をCRC変換テーブル131の入力として、生成多項式P、データフィールドのビット長Lおよびビット番号Nとともに読み出し用アドレスを生成し、対応する補正値データ133を予めCRC変換テーブル131に格納しておくことにより、演算値Bを決定することができる。
【0076】
図13においてCRC変換テーブル131は、下位のアドレスに相当するビット番号Nのそれぞれに対応させて補正値Eが補正値データ133として格納される複数の下位テーブルを含み、上位のアドレスに相当する生成多項式Pおよびデータフィールドのビット長Lにより下位テーブルの中の一つを選択するように構成されている。CRC変換テーブル131をこのように構成しておくことにより、複数の異なる生成多項式および複数の異なるビット長のデータの組合せに対しても新たにテーブルを作成する必要なく処理できる。
【0077】
なお、上記の説明では、第4の実施の形態は、第1の実施の形態をもとにアドレスに生成多項式Pをさらに加えるとして説明したが、第2の実施の形態を生成多項式Pを加えるように変更することは容易である。すなわち、図7のアドレス62が生成多項式P、データフィールドのビット長Lおよび可変フィールド値Xにより定まるように変更し、図6のステップ51を、CRC変換テーブルから生成多項式P、データフィールドのビット長Lおよび可変フィールドXに対応する演算値Bの読み出し、に変更すればよい。第2の実施の形態をもとに変更されたCRC符号生成方法は、CRCの生成多項式が変更された場合においても所望のCRC値とデータフィールドのデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値を定めることが可能であり、第2の実施の形態と同等の時間で高速に処理することが可能である。同様に、第3の実施の形態に生成多項式Pを加えるように変更することも容易である。すなわち、図10のアドレス92が生成多項式P、データフィールドのビット長Lおよび演算値Aにより定まるように変更し、図9のステップ81を、CRC変換テーブルから生成多項式P、データフィールドのビット長Lおよび演算値Aに対応する可変フィールド値Xの読み出し、に変更すればよい。第3の実施の形態をもとに変更されたCRC符号生成方法は、CRCの生成多項式が変更された場合においても所望のCRC値とデータフィールドのデータとの間に矛盾が生じて不一致エラーとなることがないように可変フィールド値を定めることが可能であり、第3の実施の形態と同等の時間で高速に処理することが可能である。
【0078】
【発明の効果】
以上に説明したとおり、本発明のCRC符号生成方法を適用することにより、所望のCRC値を有する送信フレームの生成を、極めて高速に行うことができるようになり、従来例に比較してその効果は顕著である。
【図面の簡単な説明】
【図1】送信装置の基本的な構成を示すブロック図である。
【図2】(a)は可変フィールド値Xが初期値0のときの送信フレームを模式的に示す図であり、(b)は所望のCRC値に対応するデータ値とするのに必要な可変フィールド値が生成された後の送信フレームを模式的に示す図である。
【図3】本発明の第1の実施の形態のフロー図である。
【図4】第1の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例の図である。
【図5】第1の実施の形態をフロー図と対応させて説明するための図である。
【図6】第2の実施の形態のフロー図である。
【図7】第2の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例の図である。
【図8】第2の実施の形態をフロー図と対応させて説明するための図である。
【図9】第3の実施の形態のフロー図である。
【図10】第3の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例の図である。
【図11】第3の実施の形態をフロー図と対応させて説明するための図である。
【図12】第4の実施の形態のフロー図である。
【図13】第4の実施の形態に対応するCRC変換テーブルの可変フィールドが16ビットの場合の構成例の図である。
【図14】(a)は送信フレームを模式的に示す図であり、(b)はCRC値を所望のCRC値に置換した場合の送信フレームを模式的に示す図である。
【図15】CRC値を単純に所望のCRC値に置換する場合のフロー図である。
【図16】可変フィールドを設けてデータと所望のCRC値との間に不一致が生じないようにした従来例のフロー図である。
【符号の説明】
1 送信装置
2 CPU
3 メモリ
4 シリアル送信部
21,42 データフィールド
22,46 可変フィールド
23,43 CRCフィールド
31,47,61,71,91,101,131 CRC変換テーブル
41,41a 送信フレーム
Claims (11)
- データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータおよび生成多項式に基づいて算出されたCRC値が所望のCRC値と一致するように前記可変フィールド値を定めるCRC符号生方法において、
仮の可変フィールド値を設定する第1のステップと、
予め所定のビット番号に対応させて可変フィールド値の反転させるべきビットの値を1として指定する補正値を格納した変換テーブルから前記仮の可変フィールド値のビットの値が1のビット番号に対応するすべての補正値を読み出して排他的論理和をとり第1の演算値を算出する第2のステップと、
前記第1の演算値が前記所望のCRC値に対応するものであれば前記仮の可変フィールド値を所望のCRC値が得られる可変フィールド値と判定する第3のステップと、
を備えることを特徴とするCRC符号生成方法。 - 前記第3のステップは、
可変フィールド値が0の場合のCRC値と所望のCRC値との排他的論理和演算により予め算出した第2の演算値と、第1の演算値とを比較し、一致したときに該第1の演算値に対応する仮の可変フィールド値を所望のCRC値が得られる可変フィールド値と判定することを特徴とする請求項1に記載のCRC符号生成方法。 - 前記変換テーブルは、
データフィールドのビット長を上位アドレスとしビット番号N(Nは0以上で可変フィールドのビット長未満の整数)を下位アドレスとして、可変フィールド値が0のときのCRC値と可変フィールド値が2NのときのCRC値との排他的論理和がビット番号Nに対応する補正値のデータとして格納されたテーブルであることを特徴とする請求項1または2に記載のCRC符号生成方法。 - 前記変換テーブルは、
CRC符号の生成多項式とデータフィールドのビット長とを上位アドレスとしビット番号N(Nは0以上で可変フィールドのビット長未満の整数)を下位アドレスとして、可変フィールド値が0のときのCRC値と可変フィールド値が2NのときのCRC値との排他的論理和がビット番号Nに対応する補正値のデータとして格納されたテーブルであることを特徴とする請求項1または2に記載のCRC符号生成方法。 - データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたCRC値が所望のCRC値と一致するように前記可変フィールド値を定めるCRC符号生方法において、
仮の可変フィールド値を設定する第1のステップと、
予め可変フィールド値X(可変フィールドのビット長をKとするときXは1以上で2K−1以下の整数)に対応させて前記可変フィールド値が0のときのCRC値と前記可変フィールド値がXのときのCRC値との排他的論理和である第1の演算値が格納された変換テーブルから前記仮の可変フィールド値に対応する第1の演算値を読み出す第2のステップと、
読み出された第1の演算値が前記所望のCRC値に対応するものであれば前記仮の可変フィールド値を所望のCRC値が得られる可変フィールド値と判定する第3のステップと、
を備えることを特徴とするCRC符号生成方法。 - 前記第3のステップは、
可変フィールド値が0の場合のCRC値と所望のCRC値との排他的論理和演算により予め算出した第2の演算値と、第1の演算値とを比較し、一致したときに該第1の演算値に対応する仮の可変フィールド値を所望のCRC値が得られる可変フィールド値と判定することを特徴とする請求項5に記載のCRC符号生成方法。 - 前記変換テーブルは、
データフィールドのビット長を上位アドレスとし可変フィールド値Xを下位アドレスとし前記可変フィールド値Xに対応させて第1の演算値のデータが格納されたテーブルであることを特徴とする請求項5または6に記載のCRC符号生成方法。 - 前記変換テーブルは、
生成多項式とデータフィールドのビット長とを上位アドレスとし可変フィールド値Xを下位アドレスとし前記可変フィールド値Xに対応させて第1の演算値のデータが格納されたテーブルであることを特徴とする請求項5または6に記載のCRC符号生成方法。 - データフィールド中に設けられた可変フィールドの可変フィールド値を含むデータに基づいて算出されたCRC値が所望のCRC値と一致するように前記可変フィールド値を定めるCRC符号生方法において、
前記可変フィールド値が0の場合のCRC値と所望のCRC値との排他的論理和をとり第1の演算値を算出する第1のステップと、
予め可変フィールド値が0のときのCRC値と可変フィールド値がX(可変フィールドのビット長をKとするときXは1以上で2K−1以下の整数)のときのCRC値との排他的論理和である第2の演算値に対応させて可変フィールド値Xが格納された変換テーブルから前記第1の演算値に等しい値の第2の演算値に対応する可変フィールド値を前記所望のCRC値が得られる可変フィールド値として読み出す第2のステップと、
を備えることを特徴とするCRC符号生成方法。 - 前記変換テーブルは、
データフィールドのビット長を上位アドレスとし第2の演算値を下位アドレスとし前記第2の演算値に対応させて可変フィールド値のデータが格納されたテーブルであることを特徴とする請求項9に記載のCRC符号生成方法。 - 前記変換テーブルは、
生成多項式とデータフィールドのビット長とを上位アドレスとし第2の演算値を下位アドレスとし前記第2の演算値に対応させて可変フィールド値のデータが格納されたテーブルであることを特徴とする請求項9に記載のCRC符号生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019413A JP3880934B2 (ja) | 2003-01-28 | 2003-01-28 | Crc符号生成方法 |
US10/765,191 US7299398B2 (en) | 2003-01-28 | 2004-01-28 | Data generating method for forming desired CRC code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019413A JP3880934B2 (ja) | 2003-01-28 | 2003-01-28 | Crc符号生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004235763A JP2004235763A (ja) | 2004-08-19 |
JP3880934B2 true JP3880934B2 (ja) | 2007-02-14 |
Family
ID=32949274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003019413A Expired - Fee Related JP3880934B2 (ja) | 2003-01-28 | 2003-01-28 | Crc符号生成方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7299398B2 (ja) |
JP (1) | JP3880934B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3197206B2 (en) | 2005-04-26 | 2022-08-17 | Conversant Wireless Licensing S.A.R.L. | Fixed hs-dsch or e-dch allocation for voip (or hs-dsch without hs-scch/e-dch without e-dpcch) |
JP2007181059A (ja) * | 2005-12-28 | 2007-07-12 | Oki Data Corp | 画像形成装置 |
EP2075918A3 (en) * | 2007-12-21 | 2012-09-12 | Sony Corporation | Transmission apparatus and method, reception apparatus and method, and program |
JP5298622B2 (ja) * | 2007-12-21 | 2013-09-25 | ソニー株式会社 | 送信装置および方法、受信装置および方法 |
JP4896931B2 (ja) * | 2008-06-24 | 2012-03-14 | 株式会社東芝 | 検査符号生成方法 |
WO2011142133A1 (ja) * | 2010-05-11 | 2011-11-17 | エイシップ・ソリューションズ株式会社 | 誤り訂正符号処理方法及びその装置 |
US9088300B1 (en) * | 2011-12-15 | 2015-07-21 | Marvell International Ltd. | Cyclic redundancy check for out-of-order codewords |
DE112016006791B4 (de) | 2016-06-07 | 2020-02-06 | Mitsubishi Electric Corporation | Datenverarbeitungsvorrichtung, Datenverarbeitungsverfahren und Datenverarbeitungsprogramm |
CN112380081B (zh) * | 2020-12-04 | 2023-03-21 | 哈尔滨工业大学 | 一种基于字段权重的商用车载can总线模糊测试方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63304745A (ja) * | 1987-06-05 | 1988-12-13 | Nec Corp | パケットサイズ適応化方式 |
EP0436194A3 (en) * | 1990-01-02 | 1992-12-16 | National Semiconductor Corporation | Media access controller |
JP3606443B2 (ja) | 2000-02-29 | 2005-01-05 | 株式会社ケンウッド | 誤り検出装置、crcチェック方法及び記録媒体 |
US6766493B1 (en) * | 2000-12-21 | 2004-07-20 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a CRC generator and binary galois field multiplier |
US6609225B1 (en) * | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
-
2003
- 2003-01-28 JP JP2003019413A patent/JP3880934B2/ja not_active Expired - Fee Related
-
2004
- 2004-01-28 US US10/765,191 patent/US7299398B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7299398B2 (en) | 2007-11-20 |
US20040187064A1 (en) | 2004-09-23 |
JP2004235763A (ja) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Albertengo et al. | Parallel CRC generation | |
CN109379086B (zh) | 低复杂度的码率兼容的5g ldpc编码方法和编码器 | |
JP4764973B2 (ja) | Crc値の算出装置 | |
KR20080040706A (ko) | 데이터 스트림에 주기적 덧붙임 검사(crc)를 수행하기위한 crc 생성 회로를 구성하는 방법 및 장치 | |
EP0480621B1 (en) | Apparatus and method for parallel generation of cyclic redundancy check (CRC) codes | |
CN111897674B (zh) | 一种循环冗余校验电路ip核实现系统及方法 | |
KR20010110482A (ko) | 비트반전된 랜덤 인터리빙을 위한 일반화된 주소 생성기 | |
CN103795502B (zh) | 一种数据帧校验码生成方法和装置 | |
JP3880934B2 (ja) | Crc符号生成方法 | |
JP2005102213A (ja) | メッセージのcrcを計算するための方法 | |
CN102096609A (zh) | 可编程循环冗余校验(crc)计算的指令集架构 | |
CN112306741B (zh) | 一种crc校验方法及相关装置 | |
CN113110954B (zh) | 一种crc码并行计算方法、装置及其应用 | |
CN101371448B (zh) | 快速编码和解码方法及相关设备 | |
US6295626B1 (en) | Symbol based algorithm for hardware implementation of cyclic redundancy check | |
CN112468161A (zh) | 一种rs高速编码电路 | |
CN101296053A (zh) | 计算循环冗余校验码之方法及系统 | |
JP4515651B2 (ja) | 巡回冗長検査演算方法及び巡回冗長検査演算回路 | |
US5954836A (en) | Method and apparatus for pipelined encoding | |
US5517512A (en) | Cyclic coding and cyclic redundancy code check processor | |
Dougherty et al. | Covering radius computations for binary cyclic codes | |
JPH0795096A (ja) | プログラマブル並列crc生成装置 | |
JP3394781B2 (ja) | トランスフォームを生成する方法および装置 | |
US7225391B1 (en) | Method and apparatus for parallel computation of linear block codes | |
JP3812983B2 (ja) | エラー評価多項式係数計算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060928 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061010 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061108 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091117 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 4 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111117 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111117 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121117 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121117 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131117 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |