JP3959936B2 - 送信コード制御回路および受信コード制御回路 - Google Patents
送信コード制御回路および受信コード制御回路 Download PDFInfo
- Publication number
- JP3959936B2 JP3959936B2 JP2000169257A JP2000169257A JP3959936B2 JP 3959936 B2 JP3959936 B2 JP 3959936B2 JP 2000169257 A JP2000169257 A JP 2000169257A JP 2000169257 A JP2000169257 A JP 2000169257A JP 3959936 B2 JP3959936 B2 JP 3959936B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- transmission
- req
- unit
- control circuit
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、符号化された所定のコードの送信を制御する送信コード制御回路およびコードの受信を制御する受信コード制御回路に関し、特に、復号化の誤りを防止する技術に関する。
【0002】
【従来の技術】
従来より、デジタル信号によって形成される所定のコードの送受信においては、一つ前のコードによって定まる所定のパリティビットを用い、所定の変換テーブルに基づいて符号化してから送信し、受信時にはこのパリティビットを用いて復号する技術が知られている。
【0003】
例えば、P1394.b規格においては、送信時に8ビットのコードを10ビットに変換する8/10変換が用いられる。この8/10変換においては、8ビットに対応する10ビットのコードは2種類用意されており、一つ前の10ビットコードによって2値のランニング・ディスパリティ(Running Disparity:以下「rd」と示す)を定め、このrd値に基づいて2種類の10ビットコードのうちいずれか一方を選択するようになっている。
【0004】
rd値は、10ビットの中の”1”と”0”の数の差によって定まる。すなわち、”1”の数の方が多いときにはrd>0(正)、”0”の数の方が多いときにはrd<0(負)と判定される。また、”1”と”0”の数が同じときには、rd値は一つ前の10ビットコードのものと同じと判定される。
【0005】
図7は、この8/10変換テーブルの一例を示す図である。同図の8/10変換テーブル71においては、番号0における8ビットコードは”00000000”であり、これに対応する10ビットコードは”1001110100”と”0110001011”の2種類が用意されている。一つ前の10ビットコードのrd値が負の場合には前者が選択され、正の場合には後者が選択される。
【0006】
また、前者、後者ともに、その10ビットの中の”1”と”0”の数が同じなので、rd値は一つ前の10ビットコードのものと同じであり、前者のrd値は負、後者のrd値は正である。このrd値は、その次のコードの8/10変換に用いられる。
【0007】
実際には、8ビットコードの最初の5ビットが10ビットコードの最初の6ビットに変換され、8ビットコードの残りの3ビットが10ビットコードの残りの4ビットに変換される。rd値も、5/6変換、3/4変換ごとに定まる。このときの3/4変換で定まったrd値が、10ビット全体により定まるrd値に一致するように8/10変換テーブル71は構成される。
【0008】
例えば、番号1においては、rd<0によって選択される10ビットコードは、”1001110010”であり、最初の6ビットコードは1の数の方が多いのでrd>0と判定され、残りの4ビットコードは0の数の方が多いのでrd<0と判定される。一方、10ビット全体としては”1”と”0”の個数が同じなので、rd値は一つ前のコードのものと同じでありrd<0のままである。このように、4ビットのrd値と10ビット全体のrd値は一致するようになっている。
【0009】
2種類の10ビットコードのrd値に着目すると、番号0では、対応する10ビットコードのいずれのrd値も一つ前のコードのものと同じである。これは、や番号1でも同様である。一方、番号2や番号6では、対応する10ビットコードのいずれのrd値も一つ前のコードのrd値の正負を反転させたものとなっている。このように、対応する10ビットコードのrd値は、一つ前のコードのrd値に対して、いずれのrd値も正負が反転するか、いずれのrd値もそのままであるか、に分類される。
【0010】
また、2種類の10ビットコードの関係は、番号0では、”1001110100”と”0110001011”とは完全に反転の関係にある。番号1でも、同様である。一方、番号2のように最初の6ビットだけ反転の関係にあって残りの4ビットは同じものや、番号6のように最初の6ビットは同じであって残りの4ビットが反転の関係にあるものがある。2種類の10ビットコードの関係は、この3種類のいずれかに分類される。
【0011】
8/10変換テーブル71は、このようなルールが、8ビットによって形成される256パターンの全てについて成立するように構成される。
【0012】
次に、この8/10変換テーブル71を用いて符号化された所定のコードを送受信する従来の手法について説明する。
【0013】
所定のコードとしては、例えば、P1394.b規格においては、通信相手にデータの送信を要求するリクエストコード、通信相手の所定の機能を制御するためのコントロールコード、送信すべきデータにより形成されるデータコードの3種類がある。
【0014】
このリクエストコードやコントロールコードについては、通信相手との双方向通信を保証するため、同じパターンを繰り返す場合がある。
【0015】
送信側では、同じパターンのリクエストコードやコントロールコードが繰り返された場合には、異なるパターンのコードとなるまでその送信を停止する。
【0016】
一方、受信側では、送信が停止された期間は、最後に受信したコードのrd値に整合するように受信すべきコードを繰り返し作成し、これを受信したコードとして扱うことにより処理を継続する。
【0017】
図8は、このようにコードの送信を停止・再開したときの送受信の状態を示す図である。Req_Aは、8/10変換された10ビットのリクエストコードであって、同じパターンが繰り返された場合には、一つ前のコードに対してrd値の正負が反転するコードである。
【0018】
8/10変換テーブル71の番号2で示される10ビットコードを例に説明すると、送信側で、一つ前のコードのrd値がrd<0であった場合、Req_Aは、”1001110101”となり、”1”の数の方が多いので次のコードに用いられるrd値はrd>0となり反転する(d11)。
【0019】
rd>0に基づくと、次のReq_Aは、”0110000101”となり、その次のコードに用いられるrd値はrd<0となり反転する(d12)。このようにrd値は、Req_Aが繰り返されるたびに交互に反転していく。
【0020】
一方、受信側では、Req_Aを順次受信していき(d21、d22)、復号していく。例えば、Req_A(d22)の復号に着目すると、受信したReq_A(d21)から次のコードに用いられるrd値を判別し、このrd値と8/10変換テーブル71とに基づきReq_A(d22)を復号し、8ビットのリクエストコードを得る。
【0021】
続いて、送信側では、符号化前の状態で同じパターンのReq_Aが、例えば3回繰り返されたところで送信を停止する(d13)。
【0022】
受信側では、最後に受信したReq_A(d23)を所定のレジスタに格納し、この最後のReq_Aのrd値に基づいて受信すべきReq_Aを作成していく(d24,d25,d26)。
【0023】
送信側では、Req_Aとはパターンの異なる新たなリクエストコード(Req_B)を識別したときに送信を再開する(d17)。Req_Bの後にはデータコード(DATA_C)が続くこともあるし(d19,d18)、リクエストコードが続くこともある。
【0024】
【発明が解決しようとする課題】
ところが、図8に示すように、Req_Bを送信する直前に送信すべきだったReq_Aのrd値はrd>0(d16)であるのに対し、受信側でReq_Bを受信する直前に作成したReq_Aのrd値はrd<0(d26)となり、両者のrd値が異なることがある。
【0025】
これは、送信側と受信側でのクロック周波数のバラつきや位相のズレ等に起因して、送信すべきだったReq_Aの数と、受信側で作成したReq_Aの数とが一致せず、両者の数の差が奇数となったときに発生するものである。
【0026】
このことは、送信側でReq_Bの8/10符号変換に用いられたrd値と、受信側でReq_Bの10/8復号変換に用いられるrd値とが異なることを意味する。
【0027】
この場合、誤ったrd値を用いてReq_Bが復号されるため、Req_Bの復号に誤りが生じてしまうという問題がある。
【0028】
特に、Req_Bが、繰り返されることのない1個しかないリクエストコードであるような場合には問題である。
【0029】
なお、リクエストコードが繰り返される場合であっても、rd値が変化しない場合にはこのような問題は生じない。また、コントロールコードについては、常に”1”と”0”の数が一致した10ビットコードが用いられるので、rd値が変化することはなくこのような問題は生じない。
【0030】
本発明は、上記に鑑みてなされたものであり、その目的とするところは、一時的に停止された送信を再開させるときに、その先頭コードの復号誤りを防止し得る送信コード制御回路を提供することにある。
【0031】
本発明の他の目的は、一時的に停止された送信が再開されたとき、その先頭コードの復号誤りを防止し得る受信コード制御回路を提供することにある。
【0032】
【課題を解決するための手段】
上記目的を達成するため、第1の本発明に係る送信コード制御回路は、一つ前のコードにより定まる所定のパリティビットに基づいて符号化されたコードを送信し、符号化前の状態で同じパターンのコードが繰り返された場合には、異なるパターンとなるまでその送信を停止させる送信コード制御回路において、前記送信を再開させるときに、異なるパターンとなった先頭コードの一つ前のコードから送信させる手段を有することを特徴とする。
【0033】
本発明にあっては、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの一つ前のコードから送信させるようにしたことで、受信側では、先頭コードの一つ前のコードのパリティビットを判定することによって先頭コードの符号化に用いられたパリティビットが分かるので、先頭コードを正確に復号することができる。
【0034】
第2の本発明に係る受信コード制御回路は、一つ前のコードにより定まる所定のパリティビットに基づいて符号化されたコードを受信し、符号化前の状態で同じパターンのコードが繰り返されることによってその送信が停止された場合には受信すべきコードを作成していく作成手段を有する受信コード制御回路において、前記送信が再開されたときに、異なるパターンとなった先頭コードの符号化に用いられたパリティビットを判定する第1の判定手段と、前記作成手段により作成されたコードであって前記先頭コードを後続させようとするコードにより定まるパリティビットを判定する第2の判定手段と、第1の判定手段により判定されたパリティビットと第2の判定手段により判定されたパリティビットとを比較して一致・不一致を判断する比較手段と、前記比較手段により不一致と判断されたときに、前記作成手段により作成される次のコードを前記先頭コードの前に挿入させる挿入手段と、を有することを特徴とする。
【0035】
本発明にあっては、同じパターンのコードが繰り返されることによって停止された送信が再開されたときに、受信側で、その先頭コードの符号化に用いられたパリティビットと、作成されたコードであって先頭コードを後続させようとするコードにより定まるパリティビットとが不一致のときには、その先頭コードの前に次に作成されるコードを挿入するようにしたことで、挿入されたコードにより定まるパリティビットと先頭コードの符号化に用いられたパリティビットとが一致するようになるので、先頭コードを正確に復号することができる。
【0036】
第3の本発明に係る受信コード制御回路は、一つ前のコードにより定まる所定のパリティビットに基づいてパリティビットの異なる対応する2つのコードのいずれか一方に符号化されたコードを受信し、符号化前の状態で同じパターンのコードが繰り返されることによってその送信が停止された場合には受信すべきコードを作成していく作成手段を有する受信コード制御回路において、前記送信が再開されたときに、その先頭コードの符号化に用いられたパリティビットを判定する第1の判定手段と、前記作成手段により作成されたコードであって前記先頭コードを後続させようとするコードにより定まるパリティビットを判定する第2の判定手段と、第1の判定手段により判定されたパリティビットと第2の判定手段により判定されたパリティビットとを比較して一致・不一致を判断する比較手段と、前記比較手段により不一致と判断されたときに、受信したコードを対応する他方のコードに変換する変換手段と、を有することを特徴とする。
【0037】
本発明にあっては、同じパターンのコードが繰り返されることによって停止された送信が再開されるときに、その先頭コードの符号化に用いられたパリティビットと、作成されたコードであって先頭コードを後続させようとするコードにより定まるパリティビットとが不一致のときには、受信したコードを対応する他方のコードに変換するようにしたことで、変換された先頭コードの符号化に用いられるパリティビットと先頭コードを後続させようとする作成されたコードのパリティビットとが一致するようになるので、先頭コードを正確に復号することができる。
【0038】
また、かかる場合、変換された先頭コードにより定まるパリティビットが反転することとなるが、後続のコードについても同様に対応する他方のコードに変換されるので、後続のコードについても正確に復号することができる。
【0039】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【0040】
[第1の実施の形態]
図1は、一実施の形態に係る送信コード制御回路の構成を示すブロック図である。
【0041】
符号部1には、データ線を介して識別部2が接続される。識別部2は、データ線を介してシフトレジスタ3に接続され、制御線を介して切替タイミング制御部4に接続される。
【0042】
シフトレジスタ3は、データ線を介してセレクタ5の2つある入力端子の一方に接続される。セレクタ5のもう一方の入力端子には0コードを出力する0信号線が接続される。
【0043】
切替タイミング制御部4は、制御線を介してセレクタ5の制御端子に接続される。セレクタ5は、その出力端子がデータ線を介して図示していない送信部に接続される。
【0044】
なお、各ブロックは、デジタル回路によって構成され、図示していないクロック生成部により生成されたクロックのタイミングに従って同期して動作するものとする。
【0045】
次に、各ブロックの機能について説明する。
【0046】
符号部1は、デジタル機器(図示せず)から並列に送出されてきた8ビットコードを8/10変換テーブル71に基づいて10ビットコードに符号化する。なお、符号部1は、デジタル機器の内部に配置されてもよい。
【0047】
識別部2は、現在のコードと一つ前のコードとを比較し、符号化前の状態で同じパターンのコードが所定の回数だけ繰り返されたことを識別した場合には、その旨を識別信号として切替タイミング制御部4に通知する。また、同じパターンのコードの繰り返しが終了して別のパターンのコードが開始されたことを識別した場合には、その旨を識別信号として切替タイミング制御部4に通知する。なお、識別部2は、符号部1で符号化される前のコードを受け付けるようにしてもよい。
【0048】
シフトレジスタ3は、並列の10ビットコードを少なくとも1コード分遅延させるシフトレジスタと、切替タイミング制御4での処理に要する時間だけ10ビットコードを遅延させるシフトレジスタとにより構成される。
【0049】
切替タイミング制御部4は、識別部2からの識別信号に従って、シフトレジスタ3からの10ビットコードと0信号線からの0コードのいずれかをセレクタ5に選択させる切替信号を生成するとともに、この切替信号の出力タイミングを制御する。その出力タイミングについては後述する。
【0050】
セレクタ5は、切替タイミング制御部4からの切替信号に従って、シフトレジスタ3からの10ビットコードと0コードのいずれか一方を選択して送信部(図示せず)へ送出する。
【0051】
送信部では、送出されてきたコードを通信相手に送信する。
【0052】
次に、本送信コード制御回路の動作について図2を用いて説明する。
【0053】
図2は、コードの送信を停止・再開したときの送受信の状態を示す図である。同図における記号や符号は、図8に準じて付す。
【0054】
通常の送信状態においては、切替タイミング制御部4は、セレクタ5にシフトレジスタ3からの10ビットコードを常時選択するように制御信号を出力する。
【0055】
同じパターンのコードが例えば3回繰り返されたところで(d11,d12,d13)、識別部2は、これを識別した識別信号を切替タイミング制御部4へ通知する。
【0056】
切替タイミング制御部4では、シフトレジスタ3からの10ビットコードに替えて0コードが選択されるように制御信号を変更するとともに、Req_A(d13)に後続して0コードがセレクタ5から送信部に送出されるように、この変更した制御信号をセレクタ5に出力する。以後、送信部へは0コードが送出され、Req_Aの送信は停止される。
【0057】
ここで、送信すべきだったReq_Aは、シフトレジスタ3で順次遅延されてセレクタ5に送出され、セレクタ5で行き先を失って消滅していく。
【0058】
続いて、Req_Aとは異なるパターンの先頭コードReq_Bがデジタル機器から送出されてきたところで(d17)、識別部2は、これを識別した識別信号を切替タイミング制御部4へ通知する。
【0059】
切替タイミング制御部4では、0コードに替えてシフトレジスタ3からの10ビットコードが選択されるように切替信号を変更するとともに、先頭コードReq_Bの一つ前のReq_Aから送信部へ送出されるように、この変更した切替信号をセレクタ5へ出力する。
【0060】
これにより、最後のReq_Aが送信され(d16)、続いてReq_B、DATA_C等が送信されることとなる(d17,d18,d19)。
【0061】
受信側では、受信したReq_A(d36)のrd値を判定し、このrd値を用いてReq_B(d37)を復号する。Req_A(d36)のrd値は、送信時にReq_Bの8/10変換に用いられたものと同一であるので、Req_Bは正確に復号される。受信側では、以後、同様にして受信したコードを順次復号していく(d38,d39)。
【0062】
したがって、本実施の形態によれば、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの一つ前のコードから送信させるようにしたことで、受信側では、先頭コードの一つ前のコードのrd値を判定することによって先頭コードの符号化に用いられたrd値が分かるので、先頭コードを正確に復号することができる。
【0063】
なお、上記の手法によれば、先頭コードの一つ前に送信したコード自体の復号についてはエラーの生じるおそれもあるが、このコードは、もともと送信していなかったコードであるので特に問題視する必要はないと考える。
【0064】
特に、P1394.b規格においては、エラーの発生数をカウントしていき、エラーの累積数が4となったときに、送信側と受信側の再同期を行うように規定されるが、その一方で、10ビットコードが2回正常に復号されたときにエラーの累積数が1減少するように規定される。図2を例に説明すると、Req_A(d36)の復号誤りによってエラーを1つカウントすることとなるが、Req_B(d37)およびDATA_C(d38)が正常に復号されるので、エラーの累積数は1減少して0となる。このことから、先頭コードの直前に送信したコード自体の復号誤りに対する処理は行わないこととした。
【0065】
[第2の実施の形態]
図3は、一実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【0066】
FiFo(First in First out)31には、データ線を介してシフトレジスタ32a、シフトレジスタ32b、繰返コード作成部34、rd判定部35a、識別部38がそれぞれ並列に接続される。
【0067】
シフトレジスタ32aと、シフトレジスタ32bに接続されたシフトレジスタ33と、繰返コード作成部34は、それぞれデータ線を介してセレクタ40の3つの入力端子に接続される。
【0068】
rd判定部35aと、繰返コード作成部34からのデータ線に接続されたrd判定部35bは、それぞれ制御線を介して比較部37に接続される。
【0069】
比較部37と識別部38は、それぞれ制御線を介して切替タイミング制御部39に接続される。切替タイミング制御部39は、制御線を介してセレクタ40の制御端子に接続される。
【0070】
セレクタ40は、その出力端子がデータ線を介して復号部41に接続される。復号部41は、データ線を介して図示していないデジタル機器へ接続される。
【0071】
次に、各ブロックの機能について説明する。
【0072】
FiFo31は、ラッチ等により構成され、受信部(図示せず)で受信された10ビットコードについて所定のクロックでタイミングを合せて並列に出力する。
【0073】
シフトレジスタ32a,32bは、10ビットコードを所定の時間だけ遅延させる。この遅延時間は、FiFo31の出力から切替タイミング制御部39の出力までに要する時間に対応して定められる。
【0074】
シフトレジスタ33は、並列の10ビットコードを少なくとも1コード分遅延させる。
【0075】
繰返コード作成部34は、同じパターンの8ビットコードが繰り返され、その10ビットコードの送信が停止されたときに、最後に受信した10ビットコードに基づいて受信すべき10ビットコードを繰返し作成する。
【0076】
rd判定部35aは、FiFo31から出力された10ビットコードの符号化に用いられたrd値を判定する。
【0077】
rd判定部35bは、繰返コード作成部34が作成した10ビットコードにより定まるrd値を判定する。すなわち、rd判定部35bは、次に続く10ビットコードの復号化に用いられるrd値を判定するものである。rd判定部35a,35bにおける判定は、8/10変換テーブル71に基づいて行う。
【0078】
比較部37は、rd判定部35aにより判定されたrd値と、rd判定部35bにより判定されたrd値とを比較し、その一致・不一致を判断する。その比較結果は、切替タイミング制御部39に通知する。
【0079】
識別部38は、同じパターンのコードの繰り返しよって送信が停止されて受信が停止したときに、これを識別した識別信号を切替タイミング制御部39に通知する。また、同じパターンのコードの繰り返しが終了して受信が再開されたときに、これを識別した識別信号を切替タイミング制御部4に通知する。
【0080】
切替タイミング制御部39は、比較部37からの比較結果および識別部38からの識別信号に従って、セレクタ40に3つの入力端子のうち出力端子に接続させるものを一つ選択させる切替信号を生成するとともに、この切替信号の出力タイミングを制御する。その出力タイミングについては後述する。
【0081】
セレクタ40は、切替タイミング制御部4からの切替信号に従って、3つの入力端子にそれぞれ接続されたシフトレジスタ32a、シフトレジスタ33、繰返コード作成部34のうちいずれか1つを選択し、その選択したブロックから送出される10ビットコードを復号部41へ送出する。
【0082】
復号部41は、1つ前の10ビットコードにより定まるrd値と、8/10変換テーブル71に基づいて10ビットコードを8ビットコードに変換し、デジタル機器へ送出する。なお、復号部41は、デジタル機器の内部に配置されてもよい。
【0083】
次に、本受信コード制御回路の動作について図4を用いて説明する。
【0084】
図4は、コードの送信を停止・再開したときの送受信の状態を示す図である。同図における記号や符号は、図2に準じて付す。
【0085】
通常の受信状態においては、切替タイミング制御部39は、セレクタ40にシフトレジスタ32aを常時選択するように切替信号を出力する(d41,d42,d43)。
【0086】
同じパターンの繰り返しにより10ビットコードの送信が停止されたところで、識別部38は、これを識別した識別信号を切替タイミング制御部39へ通知する。
【0087】
切替タイミング制御部39では、シフトレジスタ32aに替えて繰返コード作成部34が選択されるように切替信号を変更するとともに、シフトレジスタ32aから送出されたReq_A(d43)に後続して、繰返コード作成部34で作成したReq_A(d44)がセレクタ40から送出されるように、この変更した切替信号をセレクタ40に出力する。以後、セレクタ40からは繰返コード作成部34で作成したReq_Aが送出される(d44、d45)。
【0088】
続いて、送信が再開され、受信部がReq_Aとは異なるパターンの先頭コードReq_Bを受信したところで(d47)、識別部38は、これを識別した識別信号を切替タイミング制御部39へ通知する。
【0089】
一方、rd判定部35aでは、Req_Bの10ビットデータと8/10変換テーブル71に基づき、Req_Bの符号化に用いられたrd値を判定する。ここでは、rd<0である(d16)。
【0090】
rd判定部35bは、Req_A(d45)の10ビットデータと8/10変換テーブル71に基づき、Req_A(d45)により定まるrd値を判定する。このrd値は、その次のコードの復号に用いられる。ここでは、rd>0である(d45)。
【0091】
比較部37では、rd判定部35a、rd判定部35bによりそれぞれ判定されたrd値を比較する。ここでは、両者は不一致であると判断されるので、その比較結果を切替タイミング制御部39へ通知する。
【0092】
切替タイミング制御部39では、繰返コード作成部34に替えてシフトレジスタ33が選択されるように切替信号を変更するとともに、繰返コード作成部34で作成される次のReq_A(d46)に後続して、シフトレジスタ33で遅延させたReq_Bがセレクタ40から送出されるように、この変更した切替信号をセレクタ40へ出力する。
【0093】
これにより、新たに作成されたReq_AがReq_Bの前に挿入されることとなり(d46)、Req_B、DATA_C等がこれに続くこととなる(d47,d48,d49)。
【0094】
この挿入されたReq_Aのrd値(d46)は、rd判定部35bで判定されたReq_Aのrd値(d45)の正負を反転したものであり、Req_Bの符号化に用いられたrd値(d16)と一致するようになる。
【0095】
よって、復号部41での10/8復号変換のときに、このReq_Aのrd値(d46)が用いられるようになり、Req_Bを正確に復号することができる。
【0096】
一方、比較部37で、両者のrd値が一致すると判断されたときには、切替タイミング制御部39は、繰返コード作成部34に替えてシフトレジスタ32aが選択されるように切替信号を変更するとともに、Req_A(d45)に続いてシフトレジスタ32aからのReq_Bがセレクタ40から送出されるように、この変更した切替信号をセレクタ40へ出力する。この場合も復号部41でReq_Bを正確に復号することができる。
【0097】
したがって、本実施の形態によれば、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの符号化に用いられたrd値と、先頭コードを後続させようとする作成されたコードにより定まるrd値とを比較し、両者が不一致のときには、先頭コードの前に次に作成されるコードを挿入するようにしたことで、挿入されたコードにより定まるrd値と先頭コードの符号化に用いられたrd値とが一致するようになるので、復号部41で先頭コードを正確に復号することができる。
【0098】
[第3の実施の形態]
図5は、一実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【0099】
FiFo31には、データ線を介してシフトレジスタ51、rd判定部35a、繰返コード作成部34、識別部38がそれぞれ並列に接続される。
【0100】
シフトレジスタ51は、データ線を介してデータ変換部52に接続される。
【0101】
rd判定部35aと、繰返コード作成部34からのデータ線に接続されたrd判定部35bは、それぞれ制御線を介して比較部37に接続される。比較部37は、制御線を介してデータ変換部52に接続される。
【0102】
データ変換部52と、繰返コード作成部34は、それぞれデータ線を介してセレクタ55の2つの入力端子に接続される。
【0103】
セレクタ55は、データ線を介して復号部41に接続される。復号部41は、データ線を介して図示していないデジタル機器へ接続される。
【0104】
次に、各ブロックの機能について説明する。なお、図3と同一物には同一の符号を付すこととし、ここでは説明を省略する。
【0105】
シフトレジスタ51は、10ビットコードを所定の時間だけ遅延させる。この遅延時間は、rd判定部35a、比較部37での処理時間に対応して定められる。
【0106】
データ変換部52は、比較部37によりFiFo31から送出されたコードの符号化に用いられたrd値と、繰返コード作成部34から送出されたコードのrd値とが一致すると判断された場合には、シフトレジスタ51から送出されてきた10ビットコードをそのままセレクタ55に送出し、比較部37により両者のrd値が不一致と判断された場合には、10ビットコードを8/10変換テーブル71に基づいて対応する他方の10ビットコードに変換して出力する。
【0107】
切替タイミング制御部54は、識別部38からの識別信号に従って、セレクタ55の2つの入力端子のうち出力端子に接続させるものを一つ選択させる切替信号を生成するとともに、この切替信号の出力タイミングを制御する。この動作については後述する。
【0108】
セレクタ55は、切替タイミング制御部54からの切替信号に従って、2つの入力端子にそれぞれ接続されたデータ変換部52、繰返コード作成部34のいずれか1つを選択し、その選択したブロックから送出される10ビットコードを復号部41へ送出する。
【0109】
次に、本受信コード制御回路の動作について図6を用いて説明する。
【0110】
図6は、コードの送信を停止・再開したときの送受信の状態を示す図である。同図における記号や符号は、図2に準じて付す。
【0111】
送信が再開され(d17)、受信部がReq_Aとは異なるパターンの先頭コードReq_Bを受信したところで(d57)、識別部38は、これを識別した識別信号を切替タイミング制御部54へ通知する。
【0112】
一方、rd判定部35aでは、Req_Bの10ビットデータと8/10変換テーブル71に基づき、Req_Bの符号化に用いられたrd値を判定する。ここでは、rd>0である(d16)。
【0113】
rd判定部35bは、繰返コード作成部34で作成された最後のReq_A(d56)の10ビットデータと8/10変換テーブル71に基づき、Req_A(d56)により定まるrd値を判定する。このrd値は、その次のコードの復号に用いられる。ここでは、rd<0である(d56)。
【0114】
比較部37では、rd判定部35a、rd判定部35bによりそれぞれ判定されたrd値を比較する。ここでは、両者は不一致であると判断されるので、その比較結果をデータ変換部52へ送出する。
【0115】
データ変換部52では、Req_Bの10ビットデータを8/10変換テーブル71で対応する他方の10ビットデータに変換する。以下、この変換前のコードをReq_B+、変換後のコードをReq_B−と表すこととする。
【0116】
切替タイミング制御部54では、識別部38からの識別信号に従って、繰返コード作成部34に替えてデータ変換部52が選択されるように切替信号を変更するとともに、繰返コード作成部34で作成されたReq_A(d56)に続いて、データ変換部52からのReq_B−(d57)がセレクタ55から送出されるように、この変更した切替信号をセレクタ55へ出力する。
【0117】
このように、送信が再開したときの先頭コードを変換してReq_B−とすると、Req_B−の符号化に用いられるrd値は、最後に作成されたReq_Aにより定まるrd値(d56)に一致するようになる。
【0118】
よって、復号部41での10/8復号変換のときに、このReq_Aのrd値(d56)が用いられるようになり、Req_B−を正確に復号することができる。
【0119】
このとき、Req_B−により定まる次のコードの復号に用いられるrd値は、受信したReq_B+のものに対して反転してしまうので、以降に受信した全てのコードについても同様にデータ変換部52で変換することとする。ここでは、変換前のコードをDATA_C−、DATA_C+と表すこととし(d18,d19)、変換後のコードをDATA_C+、DATA_C−と表すこととする(d58,d59)。
【0120】
これにより、最後に作成されたReq_A(d56)に続いて、データ変換されたReq_B−、DATA_C+、DATA_C−が続くこととなる(d57,d58,d59)。
【0121】
一方、比較部37で、両者のrd値が一致すると判断された場合には、データ変換部52は、シフトレジスタ51から送出されてきた10ビットコードをそのままセレクタ55に送出する。この場合も復号部41でReq_Bを正確に復号することができる。
【0122】
したがって、本実施の形態によれば、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの符号化に用いられたrd値と、先頭コードを後続させようとする作成されたコードにより定まるrd値とが不一致のときには、先頭コードを8/10変換テーブル71の対応する他方のコードに変換するようにしたことで、変換された先頭コードの符号化に用いられるrd値と先頭コードを後続させようとする作成されたコードにより定まるrd値とが一致するようになるので、先頭コードを正確に復号することができる。
【0123】
また、かかる場合には、変換された先頭コードにより定まるrd値も反転してしまうので、先頭コードに後続するコードについても同様に対応する他方のコードに変換するようにしたことで、後続するコードについても正確に復号することができる。
【0124】
[他の実施の形態への適用]
上記各実施の形態においては、送信コード制御回路と受信コード制御回路とに分けて説明したが、これらを一体として送受信コード制御回路を構成してもよい。かかる場合には、送受信コード制御回路をそれぞれ備えた2台のデジタル機器間の双方向通信において、送信が再開されたときの先頭コードを正確に復号することができる。
【0125】
【発明の効果】
以上、説明したように、第1の本発明の送信コード制御回路によれば、送信を再開させるときの先頭コードを受信側で正確に復号することができる。
【0126】
第2、3の本発明の受信コード制御回路によれば、送信が再開されたときの先頭コードを正確に復号することができる。
【図面の簡単な説明】
【図1】第1の実施の形態に係る送信コード制御回路の構成を示すブロック図である。
【図2】第1の実施の形態におけるコードの送信を停止・再開したときの送受信の状態を示す図である。
【図3】第2の実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【図4】第2の実施の形態におけるコードの送信を停止・再開したときの送受信の状態を示す図である。
【図5】第3の実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【図6】第3の実施の形態におけるコードの送信を停止・再開したときの送受信の状態を示す図である。
【図7】8/10変換テーブルの一例を示す図である。
【図8】従来のコードの送信を停止・再開したときの送受信の状態を示す図である。
【符号の説明】
1 符号部
2,38 識別部
3,32a,32b シフトレジスタ
4,39,54 切替タイミング制御部
5,40,55 セレクタ
31 FiFo
34 繰返コード作成部
33,51 シフトレジスタ
35a,35b rd判定部
37 比較部
41 復号部
52 データ変換部
【発明の属する技術分野】
本発明は、符号化された所定のコードの送信を制御する送信コード制御回路およびコードの受信を制御する受信コード制御回路に関し、特に、復号化の誤りを防止する技術に関する。
【0002】
【従来の技術】
従来より、デジタル信号によって形成される所定のコードの送受信においては、一つ前のコードによって定まる所定のパリティビットを用い、所定の変換テーブルに基づいて符号化してから送信し、受信時にはこのパリティビットを用いて復号する技術が知られている。
【0003】
例えば、P1394.b規格においては、送信時に8ビットのコードを10ビットに変換する8/10変換が用いられる。この8/10変換においては、8ビットに対応する10ビットのコードは2種類用意されており、一つ前の10ビットコードによって2値のランニング・ディスパリティ(Running Disparity:以下「rd」と示す)を定め、このrd値に基づいて2種類の10ビットコードのうちいずれか一方を選択するようになっている。
【0004】
rd値は、10ビットの中の”1”と”0”の数の差によって定まる。すなわち、”1”の数の方が多いときにはrd>0(正)、”0”の数の方が多いときにはrd<0(負)と判定される。また、”1”と”0”の数が同じときには、rd値は一つ前の10ビットコードのものと同じと判定される。
【0005】
図7は、この8/10変換テーブルの一例を示す図である。同図の8/10変換テーブル71においては、番号0における8ビットコードは”00000000”であり、これに対応する10ビットコードは”1001110100”と”0110001011”の2種類が用意されている。一つ前の10ビットコードのrd値が負の場合には前者が選択され、正の場合には後者が選択される。
【0006】
また、前者、後者ともに、その10ビットの中の”1”と”0”の数が同じなので、rd値は一つ前の10ビットコードのものと同じであり、前者のrd値は負、後者のrd値は正である。このrd値は、その次のコードの8/10変換に用いられる。
【0007】
実際には、8ビットコードの最初の5ビットが10ビットコードの最初の6ビットに変換され、8ビットコードの残りの3ビットが10ビットコードの残りの4ビットに変換される。rd値も、5/6変換、3/4変換ごとに定まる。このときの3/4変換で定まったrd値が、10ビット全体により定まるrd値に一致するように8/10変換テーブル71は構成される。
【0008】
例えば、番号1においては、rd<0によって選択される10ビットコードは、”1001110010”であり、最初の6ビットコードは1の数の方が多いのでrd>0と判定され、残りの4ビットコードは0の数の方が多いのでrd<0と判定される。一方、10ビット全体としては”1”と”0”の個数が同じなので、rd値は一つ前のコードのものと同じでありrd<0のままである。このように、4ビットのrd値と10ビット全体のrd値は一致するようになっている。
【0009】
2種類の10ビットコードのrd値に着目すると、番号0では、対応する10ビットコードのいずれのrd値も一つ前のコードのものと同じである。これは、や番号1でも同様である。一方、番号2や番号6では、対応する10ビットコードのいずれのrd値も一つ前のコードのrd値の正負を反転させたものとなっている。このように、対応する10ビットコードのrd値は、一つ前のコードのrd値に対して、いずれのrd値も正負が反転するか、いずれのrd値もそのままであるか、に分類される。
【0010】
また、2種類の10ビットコードの関係は、番号0では、”1001110100”と”0110001011”とは完全に反転の関係にある。番号1でも、同様である。一方、番号2のように最初の6ビットだけ反転の関係にあって残りの4ビットは同じものや、番号6のように最初の6ビットは同じであって残りの4ビットが反転の関係にあるものがある。2種類の10ビットコードの関係は、この3種類のいずれかに分類される。
【0011】
8/10変換テーブル71は、このようなルールが、8ビットによって形成される256パターンの全てについて成立するように構成される。
【0012】
次に、この8/10変換テーブル71を用いて符号化された所定のコードを送受信する従来の手法について説明する。
【0013】
所定のコードとしては、例えば、P1394.b規格においては、通信相手にデータの送信を要求するリクエストコード、通信相手の所定の機能を制御するためのコントロールコード、送信すべきデータにより形成されるデータコードの3種類がある。
【0014】
このリクエストコードやコントロールコードについては、通信相手との双方向通信を保証するため、同じパターンを繰り返す場合がある。
【0015】
送信側では、同じパターンのリクエストコードやコントロールコードが繰り返された場合には、異なるパターンのコードとなるまでその送信を停止する。
【0016】
一方、受信側では、送信が停止された期間は、最後に受信したコードのrd値に整合するように受信すべきコードを繰り返し作成し、これを受信したコードとして扱うことにより処理を継続する。
【0017】
図8は、このようにコードの送信を停止・再開したときの送受信の状態を示す図である。Req_Aは、8/10変換された10ビットのリクエストコードであって、同じパターンが繰り返された場合には、一つ前のコードに対してrd値の正負が反転するコードである。
【0018】
8/10変換テーブル71の番号2で示される10ビットコードを例に説明すると、送信側で、一つ前のコードのrd値がrd<0であった場合、Req_Aは、”1001110101”となり、”1”の数の方が多いので次のコードに用いられるrd値はrd>0となり反転する(d11)。
【0019】
rd>0に基づくと、次のReq_Aは、”0110000101”となり、その次のコードに用いられるrd値はrd<0となり反転する(d12)。このようにrd値は、Req_Aが繰り返されるたびに交互に反転していく。
【0020】
一方、受信側では、Req_Aを順次受信していき(d21、d22)、復号していく。例えば、Req_A(d22)の復号に着目すると、受信したReq_A(d21)から次のコードに用いられるrd値を判別し、このrd値と8/10変換テーブル71とに基づきReq_A(d22)を復号し、8ビットのリクエストコードを得る。
【0021】
続いて、送信側では、符号化前の状態で同じパターンのReq_Aが、例えば3回繰り返されたところで送信を停止する(d13)。
【0022】
受信側では、最後に受信したReq_A(d23)を所定のレジスタに格納し、この最後のReq_Aのrd値に基づいて受信すべきReq_Aを作成していく(d24,d25,d26)。
【0023】
送信側では、Req_Aとはパターンの異なる新たなリクエストコード(Req_B)を識別したときに送信を再開する(d17)。Req_Bの後にはデータコード(DATA_C)が続くこともあるし(d19,d18)、リクエストコードが続くこともある。
【0024】
【発明が解決しようとする課題】
ところが、図8に示すように、Req_Bを送信する直前に送信すべきだったReq_Aのrd値はrd>0(d16)であるのに対し、受信側でReq_Bを受信する直前に作成したReq_Aのrd値はrd<0(d26)となり、両者のrd値が異なることがある。
【0025】
これは、送信側と受信側でのクロック周波数のバラつきや位相のズレ等に起因して、送信すべきだったReq_Aの数と、受信側で作成したReq_Aの数とが一致せず、両者の数の差が奇数となったときに発生するものである。
【0026】
このことは、送信側でReq_Bの8/10符号変換に用いられたrd値と、受信側でReq_Bの10/8復号変換に用いられるrd値とが異なることを意味する。
【0027】
この場合、誤ったrd値を用いてReq_Bが復号されるため、Req_Bの復号に誤りが生じてしまうという問題がある。
【0028】
特に、Req_Bが、繰り返されることのない1個しかないリクエストコードであるような場合には問題である。
【0029】
なお、リクエストコードが繰り返される場合であっても、rd値が変化しない場合にはこのような問題は生じない。また、コントロールコードについては、常に”1”と”0”の数が一致した10ビットコードが用いられるので、rd値が変化することはなくこのような問題は生じない。
【0030】
本発明は、上記に鑑みてなされたものであり、その目的とするところは、一時的に停止された送信を再開させるときに、その先頭コードの復号誤りを防止し得る送信コード制御回路を提供することにある。
【0031】
本発明の他の目的は、一時的に停止された送信が再開されたとき、その先頭コードの復号誤りを防止し得る受信コード制御回路を提供することにある。
【0032】
【課題を解決するための手段】
上記目的を達成するため、第1の本発明に係る送信コード制御回路は、一つ前のコードにより定まる所定のパリティビットに基づいて符号化されたコードを送信し、符号化前の状態で同じパターンのコードが繰り返された場合には、異なるパターンとなるまでその送信を停止させる送信コード制御回路において、前記送信を再開させるときに、異なるパターンとなった先頭コードの一つ前のコードから送信させる手段を有することを特徴とする。
【0033】
本発明にあっては、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの一つ前のコードから送信させるようにしたことで、受信側では、先頭コードの一つ前のコードのパリティビットを判定することによって先頭コードの符号化に用いられたパリティビットが分かるので、先頭コードを正確に復号することができる。
【0034】
第2の本発明に係る受信コード制御回路は、一つ前のコードにより定まる所定のパリティビットに基づいて符号化されたコードを受信し、符号化前の状態で同じパターンのコードが繰り返されることによってその送信が停止された場合には受信すべきコードを作成していく作成手段を有する受信コード制御回路において、前記送信が再開されたときに、異なるパターンとなった先頭コードの符号化に用いられたパリティビットを判定する第1の判定手段と、前記作成手段により作成されたコードであって前記先頭コードを後続させようとするコードにより定まるパリティビットを判定する第2の判定手段と、第1の判定手段により判定されたパリティビットと第2の判定手段により判定されたパリティビットとを比較して一致・不一致を判断する比較手段と、前記比較手段により不一致と判断されたときに、前記作成手段により作成される次のコードを前記先頭コードの前に挿入させる挿入手段と、を有することを特徴とする。
【0035】
本発明にあっては、同じパターンのコードが繰り返されることによって停止された送信が再開されたときに、受信側で、その先頭コードの符号化に用いられたパリティビットと、作成されたコードであって先頭コードを後続させようとするコードにより定まるパリティビットとが不一致のときには、その先頭コードの前に次に作成されるコードを挿入するようにしたことで、挿入されたコードにより定まるパリティビットと先頭コードの符号化に用いられたパリティビットとが一致するようになるので、先頭コードを正確に復号することができる。
【0036】
第3の本発明に係る受信コード制御回路は、一つ前のコードにより定まる所定のパリティビットに基づいてパリティビットの異なる対応する2つのコードのいずれか一方に符号化されたコードを受信し、符号化前の状態で同じパターンのコードが繰り返されることによってその送信が停止された場合には受信すべきコードを作成していく作成手段を有する受信コード制御回路において、前記送信が再開されたときに、その先頭コードの符号化に用いられたパリティビットを判定する第1の判定手段と、前記作成手段により作成されたコードであって前記先頭コードを後続させようとするコードにより定まるパリティビットを判定する第2の判定手段と、第1の判定手段により判定されたパリティビットと第2の判定手段により判定されたパリティビットとを比較して一致・不一致を判断する比較手段と、前記比較手段により不一致と判断されたときに、受信したコードを対応する他方のコードに変換する変換手段と、を有することを特徴とする。
【0037】
本発明にあっては、同じパターンのコードが繰り返されることによって停止された送信が再開されるときに、その先頭コードの符号化に用いられたパリティビットと、作成されたコードであって先頭コードを後続させようとするコードにより定まるパリティビットとが不一致のときには、受信したコードを対応する他方のコードに変換するようにしたことで、変換された先頭コードの符号化に用いられるパリティビットと先頭コードを後続させようとする作成されたコードのパリティビットとが一致するようになるので、先頭コードを正確に復号することができる。
【0038】
また、かかる場合、変換された先頭コードにより定まるパリティビットが反転することとなるが、後続のコードについても同様に対応する他方のコードに変換されるので、後続のコードについても正確に復号することができる。
【0039】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【0040】
[第1の実施の形態]
図1は、一実施の形態に係る送信コード制御回路の構成を示すブロック図である。
【0041】
符号部1には、データ線を介して識別部2が接続される。識別部2は、データ線を介してシフトレジスタ3に接続され、制御線を介して切替タイミング制御部4に接続される。
【0042】
シフトレジスタ3は、データ線を介してセレクタ5の2つある入力端子の一方に接続される。セレクタ5のもう一方の入力端子には0コードを出力する0信号線が接続される。
【0043】
切替タイミング制御部4は、制御線を介してセレクタ5の制御端子に接続される。セレクタ5は、その出力端子がデータ線を介して図示していない送信部に接続される。
【0044】
なお、各ブロックは、デジタル回路によって構成され、図示していないクロック生成部により生成されたクロックのタイミングに従って同期して動作するものとする。
【0045】
次に、各ブロックの機能について説明する。
【0046】
符号部1は、デジタル機器(図示せず)から並列に送出されてきた8ビットコードを8/10変換テーブル71に基づいて10ビットコードに符号化する。なお、符号部1は、デジタル機器の内部に配置されてもよい。
【0047】
識別部2は、現在のコードと一つ前のコードとを比較し、符号化前の状態で同じパターンのコードが所定の回数だけ繰り返されたことを識別した場合には、その旨を識別信号として切替タイミング制御部4に通知する。また、同じパターンのコードの繰り返しが終了して別のパターンのコードが開始されたことを識別した場合には、その旨を識別信号として切替タイミング制御部4に通知する。なお、識別部2は、符号部1で符号化される前のコードを受け付けるようにしてもよい。
【0048】
シフトレジスタ3は、並列の10ビットコードを少なくとも1コード分遅延させるシフトレジスタと、切替タイミング制御4での処理に要する時間だけ10ビットコードを遅延させるシフトレジスタとにより構成される。
【0049】
切替タイミング制御部4は、識別部2からの識別信号に従って、シフトレジスタ3からの10ビットコードと0信号線からの0コードのいずれかをセレクタ5に選択させる切替信号を生成するとともに、この切替信号の出力タイミングを制御する。その出力タイミングについては後述する。
【0050】
セレクタ5は、切替タイミング制御部4からの切替信号に従って、シフトレジスタ3からの10ビットコードと0コードのいずれか一方を選択して送信部(図示せず)へ送出する。
【0051】
送信部では、送出されてきたコードを通信相手に送信する。
【0052】
次に、本送信コード制御回路の動作について図2を用いて説明する。
【0053】
図2は、コードの送信を停止・再開したときの送受信の状態を示す図である。同図における記号や符号は、図8に準じて付す。
【0054】
通常の送信状態においては、切替タイミング制御部4は、セレクタ5にシフトレジスタ3からの10ビットコードを常時選択するように制御信号を出力する。
【0055】
同じパターンのコードが例えば3回繰り返されたところで(d11,d12,d13)、識別部2は、これを識別した識別信号を切替タイミング制御部4へ通知する。
【0056】
切替タイミング制御部4では、シフトレジスタ3からの10ビットコードに替えて0コードが選択されるように制御信号を変更するとともに、Req_A(d13)に後続して0コードがセレクタ5から送信部に送出されるように、この変更した制御信号をセレクタ5に出力する。以後、送信部へは0コードが送出され、Req_Aの送信は停止される。
【0057】
ここで、送信すべきだったReq_Aは、シフトレジスタ3で順次遅延されてセレクタ5に送出され、セレクタ5で行き先を失って消滅していく。
【0058】
続いて、Req_Aとは異なるパターンの先頭コードReq_Bがデジタル機器から送出されてきたところで(d17)、識別部2は、これを識別した識別信号を切替タイミング制御部4へ通知する。
【0059】
切替タイミング制御部4では、0コードに替えてシフトレジスタ3からの10ビットコードが選択されるように切替信号を変更するとともに、先頭コードReq_Bの一つ前のReq_Aから送信部へ送出されるように、この変更した切替信号をセレクタ5へ出力する。
【0060】
これにより、最後のReq_Aが送信され(d16)、続いてReq_B、DATA_C等が送信されることとなる(d17,d18,d19)。
【0061】
受信側では、受信したReq_A(d36)のrd値を判定し、このrd値を用いてReq_B(d37)を復号する。Req_A(d36)のrd値は、送信時にReq_Bの8/10変換に用いられたものと同一であるので、Req_Bは正確に復号される。受信側では、以後、同様にして受信したコードを順次復号していく(d38,d39)。
【0062】
したがって、本実施の形態によれば、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの一つ前のコードから送信させるようにしたことで、受信側では、先頭コードの一つ前のコードのrd値を判定することによって先頭コードの符号化に用いられたrd値が分かるので、先頭コードを正確に復号することができる。
【0063】
なお、上記の手法によれば、先頭コードの一つ前に送信したコード自体の復号についてはエラーの生じるおそれもあるが、このコードは、もともと送信していなかったコードであるので特に問題視する必要はないと考える。
【0064】
特に、P1394.b規格においては、エラーの発生数をカウントしていき、エラーの累積数が4となったときに、送信側と受信側の再同期を行うように規定されるが、その一方で、10ビットコードが2回正常に復号されたときにエラーの累積数が1減少するように規定される。図2を例に説明すると、Req_A(d36)の復号誤りによってエラーを1つカウントすることとなるが、Req_B(d37)およびDATA_C(d38)が正常に復号されるので、エラーの累積数は1減少して0となる。このことから、先頭コードの直前に送信したコード自体の復号誤りに対する処理は行わないこととした。
【0065】
[第2の実施の形態]
図3は、一実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【0066】
FiFo(First in First out)31には、データ線を介してシフトレジスタ32a、シフトレジスタ32b、繰返コード作成部34、rd判定部35a、識別部38がそれぞれ並列に接続される。
【0067】
シフトレジスタ32aと、シフトレジスタ32bに接続されたシフトレジスタ33と、繰返コード作成部34は、それぞれデータ線を介してセレクタ40の3つの入力端子に接続される。
【0068】
rd判定部35aと、繰返コード作成部34からのデータ線に接続されたrd判定部35bは、それぞれ制御線を介して比較部37に接続される。
【0069】
比較部37と識別部38は、それぞれ制御線を介して切替タイミング制御部39に接続される。切替タイミング制御部39は、制御線を介してセレクタ40の制御端子に接続される。
【0070】
セレクタ40は、その出力端子がデータ線を介して復号部41に接続される。復号部41は、データ線を介して図示していないデジタル機器へ接続される。
【0071】
次に、各ブロックの機能について説明する。
【0072】
FiFo31は、ラッチ等により構成され、受信部(図示せず)で受信された10ビットコードについて所定のクロックでタイミングを合せて並列に出力する。
【0073】
シフトレジスタ32a,32bは、10ビットコードを所定の時間だけ遅延させる。この遅延時間は、FiFo31の出力から切替タイミング制御部39の出力までに要する時間に対応して定められる。
【0074】
シフトレジスタ33は、並列の10ビットコードを少なくとも1コード分遅延させる。
【0075】
繰返コード作成部34は、同じパターンの8ビットコードが繰り返され、その10ビットコードの送信が停止されたときに、最後に受信した10ビットコードに基づいて受信すべき10ビットコードを繰返し作成する。
【0076】
rd判定部35aは、FiFo31から出力された10ビットコードの符号化に用いられたrd値を判定する。
【0077】
rd判定部35bは、繰返コード作成部34が作成した10ビットコードにより定まるrd値を判定する。すなわち、rd判定部35bは、次に続く10ビットコードの復号化に用いられるrd値を判定するものである。rd判定部35a,35bにおける判定は、8/10変換テーブル71に基づいて行う。
【0078】
比較部37は、rd判定部35aにより判定されたrd値と、rd判定部35bにより判定されたrd値とを比較し、その一致・不一致を判断する。その比較結果は、切替タイミング制御部39に通知する。
【0079】
識別部38は、同じパターンのコードの繰り返しよって送信が停止されて受信が停止したときに、これを識別した識別信号を切替タイミング制御部39に通知する。また、同じパターンのコードの繰り返しが終了して受信が再開されたときに、これを識別した識別信号を切替タイミング制御部4に通知する。
【0080】
切替タイミング制御部39は、比較部37からの比較結果および識別部38からの識別信号に従って、セレクタ40に3つの入力端子のうち出力端子に接続させるものを一つ選択させる切替信号を生成するとともに、この切替信号の出力タイミングを制御する。その出力タイミングについては後述する。
【0081】
セレクタ40は、切替タイミング制御部4からの切替信号に従って、3つの入力端子にそれぞれ接続されたシフトレジスタ32a、シフトレジスタ33、繰返コード作成部34のうちいずれか1つを選択し、その選択したブロックから送出される10ビットコードを復号部41へ送出する。
【0082】
復号部41は、1つ前の10ビットコードにより定まるrd値と、8/10変換テーブル71に基づいて10ビットコードを8ビットコードに変換し、デジタル機器へ送出する。なお、復号部41は、デジタル機器の内部に配置されてもよい。
【0083】
次に、本受信コード制御回路の動作について図4を用いて説明する。
【0084】
図4は、コードの送信を停止・再開したときの送受信の状態を示す図である。同図における記号や符号は、図2に準じて付す。
【0085】
通常の受信状態においては、切替タイミング制御部39は、セレクタ40にシフトレジスタ32aを常時選択するように切替信号を出力する(d41,d42,d43)。
【0086】
同じパターンの繰り返しにより10ビットコードの送信が停止されたところで、識別部38は、これを識別した識別信号を切替タイミング制御部39へ通知する。
【0087】
切替タイミング制御部39では、シフトレジスタ32aに替えて繰返コード作成部34が選択されるように切替信号を変更するとともに、シフトレジスタ32aから送出されたReq_A(d43)に後続して、繰返コード作成部34で作成したReq_A(d44)がセレクタ40から送出されるように、この変更した切替信号をセレクタ40に出力する。以後、セレクタ40からは繰返コード作成部34で作成したReq_Aが送出される(d44、d45)。
【0088】
続いて、送信が再開され、受信部がReq_Aとは異なるパターンの先頭コードReq_Bを受信したところで(d47)、識別部38は、これを識別した識別信号を切替タイミング制御部39へ通知する。
【0089】
一方、rd判定部35aでは、Req_Bの10ビットデータと8/10変換テーブル71に基づき、Req_Bの符号化に用いられたrd値を判定する。ここでは、rd<0である(d16)。
【0090】
rd判定部35bは、Req_A(d45)の10ビットデータと8/10変換テーブル71に基づき、Req_A(d45)により定まるrd値を判定する。このrd値は、その次のコードの復号に用いられる。ここでは、rd>0である(d45)。
【0091】
比較部37では、rd判定部35a、rd判定部35bによりそれぞれ判定されたrd値を比較する。ここでは、両者は不一致であると判断されるので、その比較結果を切替タイミング制御部39へ通知する。
【0092】
切替タイミング制御部39では、繰返コード作成部34に替えてシフトレジスタ33が選択されるように切替信号を変更するとともに、繰返コード作成部34で作成される次のReq_A(d46)に後続して、シフトレジスタ33で遅延させたReq_Bがセレクタ40から送出されるように、この変更した切替信号をセレクタ40へ出力する。
【0093】
これにより、新たに作成されたReq_AがReq_Bの前に挿入されることとなり(d46)、Req_B、DATA_C等がこれに続くこととなる(d47,d48,d49)。
【0094】
この挿入されたReq_Aのrd値(d46)は、rd判定部35bで判定されたReq_Aのrd値(d45)の正負を反転したものであり、Req_Bの符号化に用いられたrd値(d16)と一致するようになる。
【0095】
よって、復号部41での10/8復号変換のときに、このReq_Aのrd値(d46)が用いられるようになり、Req_Bを正確に復号することができる。
【0096】
一方、比較部37で、両者のrd値が一致すると判断されたときには、切替タイミング制御部39は、繰返コード作成部34に替えてシフトレジスタ32aが選択されるように切替信号を変更するとともに、Req_A(d45)に続いてシフトレジスタ32aからのReq_Bがセレクタ40から送出されるように、この変更した切替信号をセレクタ40へ出力する。この場合も復号部41でReq_Bを正確に復号することができる。
【0097】
したがって、本実施の形態によれば、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの符号化に用いられたrd値と、先頭コードを後続させようとする作成されたコードにより定まるrd値とを比較し、両者が不一致のときには、先頭コードの前に次に作成されるコードを挿入するようにしたことで、挿入されたコードにより定まるrd値と先頭コードの符号化に用いられたrd値とが一致するようになるので、復号部41で先頭コードを正確に復号することができる。
【0098】
[第3の実施の形態]
図5は、一実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【0099】
FiFo31には、データ線を介してシフトレジスタ51、rd判定部35a、繰返コード作成部34、識別部38がそれぞれ並列に接続される。
【0100】
シフトレジスタ51は、データ線を介してデータ変換部52に接続される。
【0101】
rd判定部35aと、繰返コード作成部34からのデータ線に接続されたrd判定部35bは、それぞれ制御線を介して比較部37に接続される。比較部37は、制御線を介してデータ変換部52に接続される。
【0102】
データ変換部52と、繰返コード作成部34は、それぞれデータ線を介してセレクタ55の2つの入力端子に接続される。
【0103】
セレクタ55は、データ線を介して復号部41に接続される。復号部41は、データ線を介して図示していないデジタル機器へ接続される。
【0104】
次に、各ブロックの機能について説明する。なお、図3と同一物には同一の符号を付すこととし、ここでは説明を省略する。
【0105】
シフトレジスタ51は、10ビットコードを所定の時間だけ遅延させる。この遅延時間は、rd判定部35a、比較部37での処理時間に対応して定められる。
【0106】
データ変換部52は、比較部37によりFiFo31から送出されたコードの符号化に用いられたrd値と、繰返コード作成部34から送出されたコードのrd値とが一致すると判断された場合には、シフトレジスタ51から送出されてきた10ビットコードをそのままセレクタ55に送出し、比較部37により両者のrd値が不一致と判断された場合には、10ビットコードを8/10変換テーブル71に基づいて対応する他方の10ビットコードに変換して出力する。
【0107】
切替タイミング制御部54は、識別部38からの識別信号に従って、セレクタ55の2つの入力端子のうち出力端子に接続させるものを一つ選択させる切替信号を生成するとともに、この切替信号の出力タイミングを制御する。この動作については後述する。
【0108】
セレクタ55は、切替タイミング制御部54からの切替信号に従って、2つの入力端子にそれぞれ接続されたデータ変換部52、繰返コード作成部34のいずれか1つを選択し、その選択したブロックから送出される10ビットコードを復号部41へ送出する。
【0109】
次に、本受信コード制御回路の動作について図6を用いて説明する。
【0110】
図6は、コードの送信を停止・再開したときの送受信の状態を示す図である。同図における記号や符号は、図2に準じて付す。
【0111】
送信が再開され(d17)、受信部がReq_Aとは異なるパターンの先頭コードReq_Bを受信したところで(d57)、識別部38は、これを識別した識別信号を切替タイミング制御部54へ通知する。
【0112】
一方、rd判定部35aでは、Req_Bの10ビットデータと8/10変換テーブル71に基づき、Req_Bの符号化に用いられたrd値を判定する。ここでは、rd>0である(d16)。
【0113】
rd判定部35bは、繰返コード作成部34で作成された最後のReq_A(d56)の10ビットデータと8/10変換テーブル71に基づき、Req_A(d56)により定まるrd値を判定する。このrd値は、その次のコードの復号に用いられる。ここでは、rd<0である(d56)。
【0114】
比較部37では、rd判定部35a、rd判定部35bによりそれぞれ判定されたrd値を比較する。ここでは、両者は不一致であると判断されるので、その比較結果をデータ変換部52へ送出する。
【0115】
データ変換部52では、Req_Bの10ビットデータを8/10変換テーブル71で対応する他方の10ビットデータに変換する。以下、この変換前のコードをReq_B+、変換後のコードをReq_B−と表すこととする。
【0116】
切替タイミング制御部54では、識別部38からの識別信号に従って、繰返コード作成部34に替えてデータ変換部52が選択されるように切替信号を変更するとともに、繰返コード作成部34で作成されたReq_A(d56)に続いて、データ変換部52からのReq_B−(d57)がセレクタ55から送出されるように、この変更した切替信号をセレクタ55へ出力する。
【0117】
このように、送信が再開したときの先頭コードを変換してReq_B−とすると、Req_B−の符号化に用いられるrd値は、最後に作成されたReq_Aにより定まるrd値(d56)に一致するようになる。
【0118】
よって、復号部41での10/8復号変換のときに、このReq_Aのrd値(d56)が用いられるようになり、Req_B−を正確に復号することができる。
【0119】
このとき、Req_B−により定まる次のコードの復号に用いられるrd値は、受信したReq_B+のものに対して反転してしまうので、以降に受信した全てのコードについても同様にデータ変換部52で変換することとする。ここでは、変換前のコードをDATA_C−、DATA_C+と表すこととし(d18,d19)、変換後のコードをDATA_C+、DATA_C−と表すこととする(d58,d59)。
【0120】
これにより、最後に作成されたReq_A(d56)に続いて、データ変換されたReq_B−、DATA_C+、DATA_C−が続くこととなる(d57,d58,d59)。
【0121】
一方、比較部37で、両者のrd値が一致すると判断された場合には、データ変換部52は、シフトレジスタ51から送出されてきた10ビットコードをそのままセレクタ55に送出する。この場合も復号部41でReq_Bを正確に復号することができる。
【0122】
したがって、本実施の形態によれば、同じパターンのコードが繰り返されることによって停止された送信を再開するときに、その先頭コードの符号化に用いられたrd値と、先頭コードを後続させようとする作成されたコードにより定まるrd値とが不一致のときには、先頭コードを8/10変換テーブル71の対応する他方のコードに変換するようにしたことで、変換された先頭コードの符号化に用いられるrd値と先頭コードを後続させようとする作成されたコードにより定まるrd値とが一致するようになるので、先頭コードを正確に復号することができる。
【0123】
また、かかる場合には、変換された先頭コードにより定まるrd値も反転してしまうので、先頭コードに後続するコードについても同様に対応する他方のコードに変換するようにしたことで、後続するコードについても正確に復号することができる。
【0124】
[他の実施の形態への適用]
上記各実施の形態においては、送信コード制御回路と受信コード制御回路とに分けて説明したが、これらを一体として送受信コード制御回路を構成してもよい。かかる場合には、送受信コード制御回路をそれぞれ備えた2台のデジタル機器間の双方向通信において、送信が再開されたときの先頭コードを正確に復号することができる。
【0125】
【発明の効果】
以上、説明したように、第1の本発明の送信コード制御回路によれば、送信を再開させるときの先頭コードを受信側で正確に復号することができる。
【0126】
第2、3の本発明の受信コード制御回路によれば、送信が再開されたときの先頭コードを正確に復号することができる。
【図面の簡単な説明】
【図1】第1の実施の形態に係る送信コード制御回路の構成を示すブロック図である。
【図2】第1の実施の形態におけるコードの送信を停止・再開したときの送受信の状態を示す図である。
【図3】第2の実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【図4】第2の実施の形態におけるコードの送信を停止・再開したときの送受信の状態を示す図である。
【図5】第3の実施の形態に係る受信コード制御回路の構成を示すブロック図である。
【図6】第3の実施の形態におけるコードの送信を停止・再開したときの送受信の状態を示す図である。
【図7】8/10変換テーブルの一例を示す図である。
【図8】従来のコードの送信を停止・再開したときの送受信の状態を示す図である。
【符号の説明】
1 符号部
2,38 識別部
3,32a,32b シフトレジスタ
4,39,54 切替タイミング制御部
5,40,55 セレクタ
31 FiFo
34 繰返コード作成部
33,51 シフトレジスタ
35a,35b rd判定部
37 比較部
41 復号部
52 データ変換部
Claims (3)
- 一つ前のコードにより定まる所定のパリティビットに基づいて符号化されたコードを送信し、符号化前の状態で同じパターンのコードが繰り返された場合には、異なるパターンとなるまでその送信を停止させる送信コード制御回路において、
前記送信を再開させるときに、異なるパターンとなった先頭コードの一つ前のコードから送信させる手段を有することを特徴とする送信コード制御回路。 - 一つ前のコードにより定まる所定のパリティビットに基づいて符号化されたコードを受信し、符号化前の状態で同じパターンのコードが繰り返されることによってその送信が停止された場合には受信すべきコードを作成していく作成手段を有する受信コード制御回路において、
前記送信が再開されたときに、異なるパターンとなった先頭コードの符号化に用いられたパリティビットを判定する第1の判定手段と、
前記作成手段により作成されたコードであって前記先頭コードを後続させようとするコードにより定まるパリティビットを判定する第2の判定手段と、
第1の判定手段により判定されたパリティビットと第2の判定手段により判定されたパリティビットとを比較して一致・不一致を判断する比較手段と、
前記比較手段により不一致と判断されたときに、前記作成手段により作成される次のコードを前記先頭コードの前に挿入させる挿入手段と、
を有することを特徴とする受信コード制御回路。 - 一つ前のコードにより定まる所定のパリティビットに基づいてパリティビットの異なる対応する2つのコードのいずれか一方に符号化されたコードを受信し、符号化前の状態で同じパターンのコードが繰り返されることによってその送信が停止された場合には受信すべきコードを作成していく作成手段を有する受信コード制御回路において、
前記送信が再開されたときに、その先頭コードの符号化に用いられたパリティビットを判定する第1の判定手段と、
前記作成手段により作成されたコードであって前記先頭コードを後続させようとするコードにより定まるパリティビットを判定する第2の判定手段と、
第1の判定手段により判定されたパリティビットと第2の判定手段により判定されたパリティビットとを比較して一致・不一致を判断する比較手段と、
前記比較手段により不一致と判断されたときに、受信したコードを対応する他方のコードに変換する変換手段と、
を有することを特徴とする受信コード制御回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000169257A JP3959936B2 (ja) | 2000-06-06 | 2000-06-06 | 送信コード制御回路および受信コード制御回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000169257A JP3959936B2 (ja) | 2000-06-06 | 2000-06-06 | 送信コード制御回路および受信コード制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001345706A JP2001345706A (ja) | 2001-12-14 |
JP3959936B2 true JP3959936B2 (ja) | 2007-08-15 |
Family
ID=18672143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000169257A Expired - Fee Related JP3959936B2 (ja) | 2000-06-06 | 2000-06-06 | 送信コード制御回路および受信コード制御回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3959936B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111106834B (zh) * | 2019-12-26 | 2021-02-12 | 普源精电科技股份有限公司 | 一种adc采样数据识别方法及系统、集成电路及解码装置 |
-
2000
- 2000-06-06 JP JP2000169257A patent/JP3959936B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001345706A (ja) | 2001-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5692021A (en) | Encoding digital data | |
US20070168835A1 (en) | Serial communications system and method | |
US8031746B2 (en) | Synchronized receiver | |
JP2875160B2 (ja) | ディジタルデータのエンコード方式 | |
EP0629066B1 (en) | Checksum arrangement | |
JP3959936B2 (ja) | 送信コード制御回路および受信コード制御回路 | |
US5805087A (en) | Encoding scheme | |
US5278906A (en) | System for encoding data presented with a first coding device and for decoding encoded data with a second coding device, and coding device for use in the system | |
JP3966852B2 (ja) | シリアル通信装置 | |
CN110620635A (zh) | 解码方法、设备及可读存储介质 | |
JP2005210695A (ja) | データ伝送方式およびデータ伝送回路 | |
EP1403775B1 (en) | Process and devices for transmiting digital signals over buses and computer program product therefor | |
US20080045151A1 (en) | Communication system | |
US7812618B2 (en) | Printed circuit board, and backplane data transmission method | |
JP2007533184A (ja) | 通信システムを介してデータを伝送する際にエラー処理する方法および装置 | |
JPH0738626B2 (ja) | ワード同期検出回路 | |
US7460034B2 (en) | Method and device for code generation in the transmission of data via a communications system | |
JP2004516744A (ja) | 情報処理システム | |
JPH1013393A (ja) | ディジタル信号の伝送方法、エンコーダ及びデコーダ | |
JP2600581B2 (ja) | 符号同期回路 | |
JP2007201802A (ja) | データ転送回路 | |
JP3120342B2 (ja) | ビタビ復号器 | |
JPH05183591A (ja) | 位相判定方式 | |
JP2001119326A (ja) | 伝送路監視装置 | |
JPH06204985A (ja) | 伝送装置、受信機およびデコーダ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050829 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070420 |
|
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: 20070424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070507 |
|
LAPS | Cancellation because of no payment of annual fees |