(57)【要約】【課題】ノイズ等によりシリアルビット列中にエラーが発生してパラレルデータのビット区切り位置がずれた場合に、次の基準シンボルを待つことなく、正しいビット区切り位置にリカバリすることができるリカバリ回路を提供する。【解決手段】リカバリ回路では、エラーフラグが、第４のパラレルデータにエラーがある状態に変化した場合に、ビットシフト回路が、直前の基準シンボルに基づいて決定されたビット区切り位置に対応する第１のパラレルデータのビットを１ビットずつシフトして第３のパラレルデータを生成する。エラーフラグが、第４のパラレルデータにエラーがない状態に変化した場合に、区切り位置決定回路が、直前にビットシフト回路に設定されたビットシフト量に対応するビット区切り位置に基づいて、第２のパラレルデータを生成する。【選択図】図１
2017183893.tif 000002
【特許請求の範囲】
【請求項１】
送信側回路から順次受信したシリアルビット列を一定のビット幅の第１のパラレルデータに順次変換するシリアルパラレル変換回路と、
前記第１のパラレルデータが基準シンボルなのか否かを順次検出し、前記基準シンボルを検出した場合に、前記検出した基準シンボルに基づいて、前記第１のパラレルデータのビット区切り位置を決定して第２のパラレルデータを順次生成する区切り位置決定回路と、
前記第１のパラレルデータのビットを、設定されたビットシフト量だけ、時間的に後ろ側のシリアルビットの方向にシフトして第３のパラレルデータを順次生成するビットシフト回路と、
切り替え信号に基づいて、前記第２のパラレルデータと前記第３のパラレルデータとを切り替え、第４のパラレルデータとして順次出力するマルチプレクサと、
前記第４のパラレルデータに含まれるエラー検出符号に基づいて、前記第４のパラレルデータにエラーがあるか否かを検出してエラーフラグを生成するエラー検出回路と、
前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、前記第３のパラレルデータを選択することを表す前記切り替え信号を出力し、かつ、前記エラーがあることを表す間、前記ビットシフト回路が前記第３のパラレルデータを生成する毎に、前記エラーがあることを表す状態に変化する直前の前記基準シンボルに基づいて決定された前記ビット区切り位置に対応する前記第１のパラレルデータのビットを１ビットずつシフトするビットシフト量を計算して前記ビットシフト回路に順次設定し、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した場合に、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した直前に前記ビットシフト回路に設定したビットシフト量に対応するビット区切り位置を計算して前記区切り位置決定回路に設定し、かつ、前記第２のパラレルデータを選択することを表す前記切り替え信号を出力するコントローラとを備え、
前記区切り位置決定回路は、さらに、前記コントローラによって設定されたビット区切り位置に基づいて、前記第２のパラレルデータを生成するリカバリ回路。
【請求項２】
前記コントローラは、さらに、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した場合に、前記エラーのない前記第４のパラレルデータの次の前記第４のパラレルデータから一定数の前記第４のパラレルデータが前記マルチプレクサから出力されるまでの間、前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態であるか否かを確認する請求項１に記載のリカバリ回路。
【請求項３】
前記コントローラは、さらに、前記次の第４のパラレルデータから前記一定数の第４のパラレルデータが前記マルチプレクサから出力されるまでの間に、前記エラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、再び、前記第３のパラレルデータを選択することを表す前記切り替え信号を出力し、かつ、前記エラーがあることを表す間、前記ビットシフト回路が前記第３のパラレルデータを生成する毎に、前記ビットシフト量を計算して前記ビットシフト回路に順次設定する請求項２に記載のリカバリ回路。
【請求項４】
前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、前記コントローラは、前記エラーがあることを表す状態に変化する直前の前記基準シンボルに基づいて決定された前記ビット区切り位置に対応する前記第１のパラレルデータのビットを１ビットずつシフトする前に、１回目のビットシフト量を０にして前記ビットシフト回路に設定する請求項１ないし３のいずれか一項に記載のリカバリ回路。
【請求項５】
シリアルパラレル変換回路が、送信側回路から順次受信したシリアルビット列を一定のビット幅の第１のパラレルデータに順次変換するステップと、
区切り位置決定回路が、前記第１のパラレルデータが基準シンボルなのか否かを順次検出し、前記基準シンボルを検出した場合に、前記検出した基準シンボルに基づいて、前記第１のパラレルデータのビット区切り位置を決定して第２のパラレルデータを順次生成するステップと、
ビットシフト回路が、前記第１のパラレルデータのビットを、設定されたビットシフト量だけ、時間的に後ろ側のシリアルビットの方向にシフトして第３のパラレルデータを順次生成するステップと、
マルチプレクサが、切り替え信号に基づいて、前記第２のパラレルデータと前記第３のパラレルデータとを切り替え、第４のパラレルデータとして順次出力するステップと、
エラー検出回路が、前記第４のパラレルデータに含まれるエラー検出符号に基づいて、前記第４のパラレルデータにエラーがあるか否かを検出してエラーフラグを生成するステップと、
前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、コントローラが、前記第３のパラレルデータを選択することを表す前記切り替え信号を出力し、かつ、前記エラーがあることを表す間、前記ビットシフト回路が前記第３のパラレルデータを生成する毎に、前記エラーがあることを表す状態に変化する直前の前記基準シンボルに基づいて決定された前記ビット区切り位置に対応する前記第１のパラレルデータのビットを１ビットずつシフトするビットシフト量を計算して前記ビットシフト回路に順次設定するステップと、
前記エラーフラグが前記第４のパラレルデータに前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した場合に、前記コントローラが、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した直前に前記ビットシフト回路に設定したビットシフト量に対応するビット区切り位置を計算して前記区切り位置決定回路に設定し、かつ、前記第２のパラレルデータを選択することを表す前記切り替え信号を出力するステップと、
前記区切り位置決定回路が、前記コントローラによって設定されたビット区切り位置に基づいて、前記第２のパラレルデータを生成するステップとを含むリカバリ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信側回路から伝送路を介して受信したシリアルビット列をパラレルデータに変換する受信側回路において、パラレルデータのビット区切り位置がずれた場合に、正しいビット区切り位置にリカバリするリカバリ回路およびリカバリ方法に関する。
【背景技術】
【０００２】
送信側回路から高速差動シリアルI/F（Interface：インタフェイス）を介してシリアルビット列を受信する受信側回路では、通常、シリアルビット列中からK28.5のようなコンマシンボル（Commaシンボル）と呼ばれる基準シンボルが検出され、検出された基準シンボルに基づいて、シリアルビット列中からパラレルデータバスのビット幅に対応する一定のビット幅のパラレルデータのビット区切り位置が検出される。
【０００３】
図６は、エラーがない場合のシリアルビット列とパラレルデータのビット区切り位置との関係を表す一例の概念図である。図６は、パラレルデータバスのビット幅が１０ビットの場合であり、直前の基準シンボルによって決定されたパラレルデータのビット区切り位置は、下向き矢印で示すように、シリアルビットb-1とb0との間、b9とb10との間、b19とb20との間、b29とb30との間、…というように、１０ビット間隔となる。また、時間的に隣り合うビット区切り位置の間に含まれる１０ビットのシリアルビット列b0〜b9、b10〜b19、b20〜b29、…がそれぞれパラレルデータとなる。
【０００４】
しかし、ノイズ等によりシリアルビット列中にエラーが発生した場合、パラレルデータのビット区切り位置が正しくない位置にずれる場合がある。例えば、シリアルビット列中からのシリアルビットの抜け、ないし、シリアルビット列中へのシリアルビットの追加が発生した場合、これ以後のパラレルデータのビット区切り位置がずれることになる。
【０００５】
図７は、ビット抜けのエラーがある場合のシリアルビット列とパラレルデータのビット区切り位置との関係を表す一例の概念図である。図７は、図６において、シリアルビットb14の抜けが発生した場合である。この場合、図６に示すパラレルデータb10〜b19は、図７に示すように、パラレルデータb10〜b20となるため、エラーがあると判断される。また、シリアルビットb15以降のシリアルビット列にエラーはないが、ビット区切り位置が、シリアルビットb20とb21との間、b30とb31との間、…というように、正しくない位置にずれているため、シリアルビットb21以降のパラレルデータにもエラーがあると判断される。
【０００６】
従来の受信側回路では、上記のように、パラレルデータのビット区切り位置がずれた場合、シリアルビット列中から検出された次の基準シンボルに基づいて、正しいビット区切り位置に修正される。
【０００７】
図８は、基準シンボルに基づいて、パラレルデータのビット区切り位置が正しい位置に修正される様子を表す一例の概念図である。図８において、左端の下向き矢印は、直前の基準シンボルによって決定されたパラレルデータのビット区切り位置、右側の３つの下向き矢印は、次の基準シンボルによって決定されたパラレルデータのビット区切り位置を表す。この場合、シリアルビットb40とb41との間のビット区切り位置はずれているため、パラレルデータb41〜B49にはエラーがあると判断される。続いて、シリアルビット列b50〜b59が次の基準シンボルであることが検出された場合、検出された次の基準シンボルに基づいて、シリアルビットb49とb50との間、b59とb60との間、b69とb70との間というように、ビット区切り位置が正しい位置に修正される。これにより、シリアルビットb50以降のパラレルデータb50〜b59、b60〜b69、…にはエラーがないと判断される。
【０００８】
しかし、従来の受信側回路では、シリアルビット列中にエラーが発生してから次の基準シンボルを受信するまでの間、正しい区切り位置をリカバリして正しいパラレルデータを得ることができない。
【０００９】
図９は、従来の受信側回路において、ディスプレイポートの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一例の概念図である。ディスプレイポートは、映像機器等を画像表示装置に接続するためのインタフェイス規格の１つであり、映像信号のインタフェイス規格に関する標準化団体VESA（Video Electronics Standards Association）によって策定されたものである。図９に示すように、ディスプレイポート（Displayport）の規格の場合、１フレームの各々のライン（line）の開始タイミングにおいて１回ずつ、基準シンボルとなるコンマシンボル（Comma）が送信側回路から受信側回路へ送信される。
【００１０】
また、図１０は、従来の受信側回路において、VBOの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一例の概念図である。図１０に示すように、VBO（V-by-One）の規格の場合、１フレームの開始タイミングにおいて１回、および、画像領域の各々のラインの開始タイミングにおいて１回ずつ、コンマシンボルが送信側回路から受信側回路へ送信される。
【００１１】
図９に示すように、ディスプレイポートの規格の場合には、ビット区切り位置がずれてから最大で１ラインの期間の間、正しい区切り位置にリカバリすることができない。また、図１０に示すように、VBOの規格の場合には、例えば、垂直ブランキング期間中にビット区切り位置がずれた場合、ビット区切り位置がずれてから画像領域になるまでの間、正しいビット区切り位置にリカバリすることができない。
【００１２】
上記のように、シリアルビット列中にエラーが発生してビット区切り位置がずれた場合、シリアルビット列自体は、直ちにエラーのない正しい値に復帰したとしても、次の基準シンボルを受信してビット区切り位置を正しい位置に修正しない限り、正しいパラレルデータを得ることができない。つまり、ビット区切り位置がずれてから次の基準シンボルを受信するまでの間、エラー状態のパラレルデータが継続することになる。
【００１３】
また、本発明に関連性のある先行技術文献として、特許文献１〜５がある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０００−３６８０５号公報
【特許文献２】特開２００１−２３０６７８号公報
【特許文献３】特開２００４−３４９７４２号公報
【特許文献４】特開２０１３−９１９１号公報
【特許文献５】特開２０１３−１４６１０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明の目的は、ノイズ等によりシリアルビット列中にエラーが発生してパラレルデータのビット区切り位置がずれた場合に、次の基準シンボルを待つことなく、正しいビット区切り位置にリカバリすることができるリカバリ回路およびリカバリ方法を提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明は、送信側回路から順次受信したシリアルビット列を一定のビット幅の第１のパラレルデータに順次変換するシリアルパラレル変換回路と、
前記第１のパラレルデータが基準シンボルなのか否かを順次検出し、前記基準シンボルを検出した場合に、前記検出した基準シンボルに基づいて、前記第１のパラレルデータのビット区切り位置を決定して第２のパラレルデータを順次生成する区切り位置決定回路と、
前記第１のパラレルデータのビットを、設定されたビットシフト量だけ、時間的に後ろ側のシリアルビットの方向にシフトして第３のパラレルデータを順次生成するビットシフト回路と、
切り替え信号に基づいて、前記第２のパラレルデータと前記第３のパラレルデータとを切り替え、第４のパラレルデータとして順次出力するマルチプレクサと、
前記第４のパラレルデータに含まれるエラー検出符号に基づいて、前記第４のパラレルデータにエラーがあるか否かを検出してエラーフラグを生成するエラー検出回路と、
前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、前記第３のパラレルデータを選択することを表す前記切り替え信号を出力し、かつ、前記エラーがあることを表す間、前記ビットシフト回路が前記第３のパラレルデータを生成する毎に、前記エラーがあることを表す状態に変化する直前の前記基準シンボルに基づいて決定された前記ビット区切り位置に対応する前記第１のパラレルデータのビットを１ビットずつシフトするビットシフト量を計算して前記ビットシフト回路に順次設定し、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した場合に、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した直前に前記ビットシフト回路に設定したビットシフト量に対応するビット区切り位置を計算して前記区切り位置決定回路に設定し、かつ、前記第２のパラレルデータを選択することを表す前記切り替え信号を出力するコントローラとを備え、
前記区切り位置決定回路は、さらに、前記コントローラによって設定されたビット区切り位置に基づいて、前記第２のパラレルデータを生成するリカバリ回路を提供する。
【００１７】
ここで、前記コントローラは、さらに、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した場合に、前記エラーのない前記第４のパラレルデータの次の前記第４のパラレルデータから一定数の前記第４のパラレルデータが前記マルチプレクサから出力されるまでの間、前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態であるか否かを確認することが好ましい。
【００１８】
前記コントローラは、さらに、前記次の第４のパラレルデータから前記一定数の第４のパラレルデータが前記マルチプレクサから出力されるまでの間に、前記エラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、再び、前記第３のパラレルデータを選択することを表す前記切り替え信号を出力し、かつ、前記エラーがあることを表す間、前記ビットシフト回路が前記第３のパラレルデータを生成する毎に、前記ビットシフト量を計算して前記ビットシフト回路に順次設定することが好ましい。
【００１９】
また、前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、前記コントローラは、前記エラーがあることを表す状態に変化する直前の前記基準シンボルに基づいて決定された前記ビット区切り位置に対応する前記第１のパラレルデータのビットを１ビットずつシフトする前に、１回目のビットシフト量を０にして前記ビットシフト回路に設定することが好ましい。
【００２０】
また、本発明は、シリアルパラレル変換回路が、送信側回路から順次受信したシリアルビット列を一定のビット幅の第１のパラレルデータに順次変換するステップと、
区切り位置決定回路が、前記第１のパラレルデータが基準シンボルなのか否かを順次検出し、前記基準シンボルを検出した場合に、前記検出した基準シンボルに基づいて、前記第１のパラレルデータのビット区切り位置を決定して第２のパラレルデータを順次生成するステップと、
ビットシフト回路が、前記第１のパラレルデータのビットを、設定されたビットシフト量だけ、時間的に後ろ側のシリアルビットの方向にシフトして第３のパラレルデータを順次生成するステップと、
マルチプレクサが、切り替え信号に基づいて、前記第２のパラレルデータと前記第３のパラレルデータとを切り替え、第４のパラレルデータとして順次出力するステップと、
エラー検出回路が、前記第４のパラレルデータに含まれるエラー検出符号に基づいて、前記第４のパラレルデータにエラーがあるか否かを検出してエラーフラグを生成するステップと、
前記エラーフラグが前記第４のパラレルデータにエラーがないことを表す状態から前記エラーがあることを表す状態に変化した場合に、コントローラが、前記第３のパラレルデータを選択することを表す前記切り替え信号を出力し、かつ、前記エラーがあることを表す間、前記ビットシフト回路が前記第３のパラレルデータを生成する毎に、前記エラーがあることを表す状態に変化する直前の前記基準シンボルに基づいて決定された前記ビット区切り位置に対応する前記第１のパラレルデータのビットを１ビットずつシフトするビットシフト量を計算して前記ビットシフト回路に順次設定するステップと、
前記エラーフラグが前記第４のパラレルデータに前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した場合に、前記コントローラが、前記エラーがあることを表す状態から前記エラーがないことを表す状態に変化した直前に前記ビットシフト回路に設定したビットシフト量に対応するビット区切り位置を計算して前記区切り位置決定回路に設定し、かつ、前記第２のパラレルデータを選択することを表す前記切り替え信号を出力するステップと、
前記区切り位置決定回路が、前記コントローラによって設定されたビット区切り位置に基づいて、前記第２のパラレルデータを生成するステップとを含むリカバリ方法を提供する。
【発明の効果】
【００２１】
本発明では、ノイズ等によりシリアルビット列中にエラーが発生して、ビット区切り位置がずれた場合に、次の基準シンボルの受信を待つことなく、パラレルデータのビット区切り位置を正しい位置に修正してリカバリすることができる。そのため、本発明によれば、ビット区切り位置がずれてパラレルデータにエラーが発生してから正しいパラレルデータを得ることができるまでの時間を短縮することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明のリカバリ回路の構成を表す一実施形態のブロック図である。
【図２】図１に示すリカバリ回路の動作を表す一実施形態のフローチャートである。
【図３Ａ】図１に示すリカバリ回路において、シリアルビット列にビット抜けのエラーがある場合に、ビット区切り位置がリカバリされる様子を表す一実施形態の概念図である。
【図３Ｂ】図１に示すリカバリ回路において、シリアルビット列にシリアルビットの値のエラーがある場合に、ビット区切り位置が変更されない様子を表す一実施形態の概念図である。
【図４】図１に示すリカバリ回路において、ディスプレイポートの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一実施形態の概念図である。
【図５】図１に示すリカバリ回路において、VBOの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一実施形態の概念図である。
【図６】エラーがない場合のシリアルビット列とパラレルデータのビット区切り位置との関係を表す一例の概念図である。
【図７】ビット抜けのエラーがある場合のシリアルビット列とパラレルデータのビット区切り位置との関係を表す一例の概念図である。
【図８】基準シンボルに基づいて、パラレルデータのビット区切り位置が正しい位置に修正される様子を表す一例の概念図である。
【図９】従来の受信側回路において、ディスプレイポートの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一例の概念図である。
【図１０】従来の受信側回路において、VBOの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一例の概念図である。
【発明を実施するための形態】
【００２３】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のリカバリ回路およびリカバリ方法を詳細に説明する。
【００２４】
図１は、本発明のリカバリ回路の構成を表す一実施形態のブロック図である。図１に示すリカバリ回路１０は、送信側回路から高速差動シリアルバスI/F等の伝送路を介して受信したシリアルビット列をパラレルデータに変換する受信側回路において、ノイズ等によりシリアルビット列にエラーが発生してパラレルデータのビット区切り位置がずれた場合に、ビット区切り位置を正しい位置に修正してリカバリするものである。
【００２５】
リカバリ回路１０は、シリアルパラレル変換回路１２と、区切り位置決定回路１４と、ビットシフト回路１６と、マルチプレクサ１８と、エラー検出回路２０と、コントローラ２２とを備えている。
【００２６】
シリアルパラレル変換回路１２は、送信側回路から伝送路を介して順次受信したシリアルビット列（シリアルデータ）を、パラレルデータバスのビット幅に対応する一定のビット幅の第１のパラレルデータに順次変換する。
【００２７】
続いて、区切り位置決定回路１４は、シリアルパラレル変換回路１２によって変換された第１のパラレルデータが基準シンボルなのか否かを順次検出し、基準シンボルを検出した場合に、検出した基準シンボルに基づいて、第１のパラレルデータのビット区切り位置を決定して第２のパラレルデータを順次生成する。
【００２８】
続いて、ビットシフト回路１６は、第１のパラレルデータのビットを、コントローラ２２によって設定されたビットシフト量だけ、時間的に後ろ側のシリアルビットの方向にシフトして第３のパラレルデータを順次生成する。
【００２９】
続いて、マルチプレクサ１８は、コントローラ２２によって生成された切り替え信号に基づいて、区切り位置決定回路１４によって生成された第２のパラレルデータと、ビットシフト回路１６によって生成された第３のパラレルデータとを切り替え、第４のパラレルデータとして順次出力する。
【００３０】
切り替え信号が第２のパラレルデータを選択することを表す場合、第４のパラレルデータとして、マルチプレクサ１８から第２のパラレルデータが出力される。また、切り替え信号が第３のパラレルデータを選択することを表す場合、第４のパラレルデータとして、マルチプレクサ１８から第３のパラレルデータが出力される。
【００３１】
第４のパラレルデータには、第４のパラレルデータに含まれるシリアルビット列が正しいか否かを検出するためのエラー検出符号が含まれている。
エラー検出回路２０は、マルチプレクサ１８から出力された第４のパラレルデータに含まれるエラー検出符号に基づいて、第４のパラレルデータにエラーがあるか否かを検出して、その検出結果となるエラーフラグを生成する。
【００３２】
エラー検出回路２０は、第４のパラレルデータにエラーがある場合、第４のパラレルデータにエラーがあることを表すエラーフラグを出力し、第４のパラレルデータにエラーがない場合、第４のパラレルデータにエラーがないことを表すエラーフラグを出力する。
【００３３】
続いて、コントローラ２２は、エラー検出回路２０によって生成されたエラーフラグに基づいて、区切り位置決定回路１４、ビットシフト回路１６およびマルチプレクサ１８の動作を制御する。
【００３４】
コントローラ２２は、エラーフラグが第４のパラレルデータにエラーがないことを表す状態からエラーがあることを表す状態に変化した場合に、第３のパラレルデータを選択することを表す切り替え信号を出力する。また、この場合、コントローラ２２は、エラーフラグが第４のパラレルデータにエラーがあることを表す間、ビットシフト回路が第３のパラレルデータを生成する毎に、エラーフラグが第４のパラレルデータにエラーがあることを表す状態に変化する直前の基準シンボルに基づいて決定されたビット区切り位置に対応する第１のパラレルデータのビットを、０ビットから最大で第１のパラレルデータのビット幅−１ビットまで、１ビットずつシフトするビットシフト量を計算してビットシフト回路１６に順次設定する。
【００３５】
また、コントローラ２２は、エラーフラグが第４のパラレルデータにエラーがあることを表す状態からエラーがないことを表す状態に変化した場合に、エラーフラグが第４のパラレルデータにエラーがあることを表す状態からエラーがないことを表す状態に変化した直前にビットシフト回路１６に設定したビットシフト量に対応するビット区切り位置を計算して区切り位置決定回路１４に設定する。また、この場合、コントローラ２２は、第２のパラレルデータを選択することを表す切り替え信号を出力する。
【００３６】
次に、図２に示すフローチャートを参照して、リカバリ回路１０の動作を説明する。
【００３７】
初期状態において、エラー検出回路２０から、第４のパラレルデータにエラーがないことを表すエラーフラグが出力されるものとする。これに応じて、コントローラ２２から、第２のパラレルデータを選択することを表す切り替え信号が出力され、切り替え信号に基づいて、第２のパラレルデータが第４のパラレルデータとしてマルチプレクサ１８から出力される。
【００３８】
送信側回路から伝送路を介して受信側回路へシリアルビット列が順次送信されると、シリアルパラレル変換回路１２により、送信側回路から伝送路を介して順次受信したシリアルビット列が一定のビット幅の第１のパラレルデータに順次変換される。
【００３９】
続いて、区切り位置決定回路１４により、第１のパラレルデータが基準シンボルなのか否かが順次検出される。その結果、第１のパラレルデータが基準シンボルであることが検出された場合に、区切り位置決定回路１４により、検出された基準シンボルに基づいて、第１のパラレルデータのビット区切り位置が決定されて第２のパラレルデータが順次生成される。
【００４０】
続いて、切り替え信号に基づいて、第２のパラレルデータと第３のパラレルデータとが切り替えられ、第４のパラレルデータとして、マルチプレクサ１８から順次出力される。
前述のように、初期状態では、第２のパラレルデータを選択することを表す切り替え信号に基づいて、第２のパラレルデータが第４のパラレルデータとしてマルチプレクサ１８から出力される。
【００４１】
第４のパラレルデータは、シリアルビット列を送信するディスプレイポートの規格等の仕様に合わせてデータ解析等を実施するリンク（LINK）回路等の内部回路２４に供給され、エラーフラグが、第４のパラレルデータにエラーがないことを表す場合に、内部回路２４によって処理される。
【００４２】
続いて、エラー検出回路２０により、第４のパラレルデータにエラーがあるか否かが検出されてエラーフラグが生成される。
【００４３】
続いて、コントローラ２２により、エラーフラグが観測され、エラーフラグが第４のパラレルデータにエラーがあることを表す状態なのか、エラーがないことを表す状態なのかが確認される（ステップS1）。
【００４４】
その結果、エラーフラグが第４のパラレルデータにエラーがないことを表す場合（ステップS1において‘NO’）、ステップS1へ戻り、コントローラ２２により、エラーフラグの観測が引き続き行われる。
【００４５】
一方、エラーフラグが第４のパラレルデータにエラーがないことを表す状態からエラーがあることを表す状態に変化した場合（ステップS1において‘YES’）、コントローラ２２から、第３のパラレルデータを選択することを表す切り替え信号が出力され、データパスが第２のパラレルデータから第３のパラレルデータへ変更される（ステップS2）。また、コントローラ２２により、エラーフラグが第４のパラレルデータにエラーがあることを表す状態に変化する直前の基準シンボルに基づいて決定されたビット区切り位置に対応する第１のパラレルデータの１回目のビットシフト量＝ｎビットが計算されてビットシフト回路１６に設定される（ステップS3）。ｎは０から最大で第１のパラレルデータのビット幅−１までの整数である。ｎを０にした場合には、ビットシフトを行なわずに（ビットシフト量を０ビットとして）、再度、次の第４のパラレルデータにエラーがあるかないかを検出することにより、エラーが単なるシリアルビットの値のエラーなのか、パラレルデータのビット区切り位置のエラーなのかを識別することができる。また、ビットシフト量は、１〜パラレルデータのビット幅―１の間の任意の整数に設定しうる。
【００４６】
続いて、ビットシフト回路１６により、第１のパラレルデータのビットが、コントローラ２２によって設定されたビットシフト量＝ｎビットだけシフトされて第３のパラレルデータが生成される。
【００４７】
続いて、切り替え信号に基づいて、第３のパラレルデータが、第４のパラレルデータとしてマルチプレクサ１８から出力され、エラー検出回路２０により、第４のパラレルデータにエラーがあるか否かが検出されてエラーフラグが生成される。
【００４８】
続いて、コントローラ２２により、エラーフラグが観測され、エラーフラグが第４のパラレルデータにエラーがあることを表す状態なのか、エラーがないことを表す状態なのかが確認される（ステップS4）。
【００４９】
その結果、エラーフラグが第４のパラレルデータにエラーがあることを表す場合（ステップS4において‘YES’）、コントローラ２２により、第１のパラレルデータの２回目のビットシフト量＝ｎ＋１ビットが計算されてビットシフト回路１６に設定される。これ以後の動作は、第１のパラレルデータの１回目のビットシフト量＝ｎビットに順次１ビットが加算されて、ビットシフト回路１６に設定された場合と同じである。
【００５０】
以後同様にして、エラーフラグが第４のパラレルデータにエラーがあることを表す間、ビットシフト回路１６が第３のパラレルデータを生成する毎に、コントローラ２２により、第１のパラレルデータの３回目以降のビットシフト量＝ｎ＋２、ｎ＋３、ｎ＋４、…、のビットシフト量、つまり、最大で第１のパラレルデータのビット幅−１ビットまでのビットシフト量が計算されてビットシフト回路１６に順次設定され、上記の動作が繰り返し行われる。
【００５１】
一方、第１のパラレルデータのビットを順次シフトした結果、エラーフラグが第４のパラレルデータにエラーがあることを表す状態からエラーがないことを表す状態に変化した場合（ステップS4において‘NO’）、続いて、コントローラ２２により、エラーのない第４のパラレルデータの次の第４のパラレルデータから一定数の第４のパラレルデータがマルチプレクサ１８から出力されるまでの間、エラーフラグが第４のパラレルデータにエラーがないことを表す状態であるか否かが確認される（ステップS5）。
【００５２】
図３Ａは、図１に示すリカバリ回路において、シリアルビット列にビット抜けのエラーがある場合に、ビット区切り位置がリカバリされる様子を表す一実施形態の概念図である。図３Ａでは、１回目のビットシフト量ｎ＝１の場合で説明する。図３Ａは、パラレルデータバスのビット幅が１０ビットであり、図７の場合と同様に、図６において、シリアルビットb14の抜けが発生した場合である。この場合、図６に示すパラレルデータb10〜b19は、図３Ａに示すように、第４のパラレルデータb10〜b20となるため、エラーがあると判断される。
【００５３】
第４のパラレルデータb10〜b20にエラーがあると判断された場合、続いて、第４のパラレルデータb10〜b20の次の第４のパラレルデータは、エラーフラグが第４のパラレルデータb10〜b20にエラーがあることを表す状態に変化する直前の基準シンボルに基づいて決定されたビット区切り位置に対応する第１のパラレルデータb21〜b30が１ビットシフトされて、パラレルデータb22〜b31となる。図３Ａの場合、第４のパラレルデータb22〜b31にもエラーがあると判断される。
【００５４】
第４のパラレルデータb22〜b31にエラーがあると判断された場合、続いて、第４のパラレルデータb22〜b31の次の第４のパラレルデータは、同じくエラーフラグが第４のパラレルデータb10〜b20にエラーがあることを表す状態に変化する直前の基準シンボルに基づいて決定されたビット区切り位置に対応する第１のパラレルデータb31〜b40が２ビットシフトされて、パラレルデータb33〜b42となる。図３Ａの場合、第４のパラレルデータb33〜b42にもエラーがあると判断される。
【００５５】
以後同様にして、前の第４のパラレルデータにエラーがあると判断された場合、図３Ａに示すように、第４のパラレルデータにエラーがないと判断されるまでの間、エラーフラグが第４のパラレルデータb10〜b20にエラーがあることを表す状態に変化する直前の基準シンボルに基づいて決定されたビット区切り位置に対応する第１のパラレルデータが、３ビット〜９ビットまで順次シフトされ、第４のパラレルデータとして、パラレルデータb33〜b42、b44〜b53、…、b99〜b108、b110〜b119が順次出力される。図３Ａの場合、第４のパラレルデータb33〜b42、b44〜b53、…、b99〜b108にはエラーがあると判断され、第４のパラレルデータb110〜b119にはエラーがないと判断される。
【００５６】
第４のパラレルデータb110〜b119にエラーがないと判断された場合、続いて、エラーのない第４のパラレルデータb110〜b119の次の第４のパラレルデータb120〜b129からbx〜bx+9までにエラーがあるか否かが確認される。
【００５７】
その結果、エラーのない第４のパラレルデータの次の第４のパラレルデータから一定数の第４のパラレルデータがマルチプレクサ１８から出力されるまでの間に、エラーフラグが第４のパラレルデータにエラーがないことを表す状態からエラーがあることを表す状態に変化した場合（ステップS6において‘YES’）、ステップS3へ戻り、上記の動作が繰り返し行われる。
【００５８】
一方、エラーのない第４のパラレルデータの次の第４のパラレルデータから一定数の第４のパラレルデータがマルチプレクサ１８から出力されるまでの間、エラーフラグが第４のパラレルデータにエラーがないことを表す状態であった場合（ステップS6において‘NO’）、コントローラ２２により、エラーがあることを表す状態からエラーがないことを表す状態に変化した直前にビットシフト回路１６に設定したビットシフト量に対応するビット区切り位置が計算されて区切り位置決定回路１４に設定される（ステップS7）。
【００５９】
続いて、コントローラ２２から、第２のパラレルデータを選択することを表す切り替え信号が出力され、データパスが第３のパラレルデータから第２のパラレルデータに変更される（ステップS8）。
【００６０】
続いて、区切り位置決定回路１４により、コントローラ２２によって設定されたビット区切り位置に基づいて、第２のパラレルデータが生成される。
【００６１】
続いて、切り替え信号に基づいて、第２のパラレルデータが第４のパラレルデータとしてマルチプレクサ１８から出力され、エラー検出回路２０により、第４のパラレルデータにエラーがあるか否かが検出されてエラーフラグが生成される。
これ以後は、ステップS1へ戻り、前述の動作が繰り返し行われる。
【００６２】
次に、図３Ｂは、図１に示すリカバリ回路において、シリアルビット列にシリアルビットの値のエラーがある場合に、ビット区切り位置が変更されない様子を表す一実施形態の概念図である。図３Ｂでは、１回目のビットシフト量ｎ＝０の場合で説明する。図３Ｂは、図１に示すリカバリ回路において、シリアルビットb14の値のエラーはあるが、ビット抜けや追加による、ビット区切り位置のエラーはない場合の動作を示す。
【００６３】
図３Ｂの場合、b14の値は正しくないが、図３Ａの場合と異なり、ビット区切り位置にエラーはない。この場合、第４のパラレルデータb10〜b19にエラーがあると判断される。第４のパラレルデータb10〜b19にエラーがあると判断された場合、エラーフラグが第４のパラレルデータにエラーがあることを示す状態に変化し、第３のパラレルデータが、第４のパラレルデータとしてマルチプレクサ１８から出力される。
【００６４】
図３Ｂでは、１回目のビットシフト量ｎ＝０であるため、ビットシフト回路１６によるビットシフトは行われず、続いて、b20〜b29が第４のパラレルデータとしてマルチプレクサ１８から出力される。本実施例では、b14の値のエラーだけでb20〜b29にエラーはないため、第４のパラレルデータb20〜b29にはエラーがないと判断される。この場合、エラーは、シリアルデータの値のエラーであると識別することができる。
以降の動作は、図２のステップS5以降の動作と同じであるため、省略する。
【００６５】
図４および図５は、それぞれ、図１に示すリカバリ回路において、ディスプレイポートおよびVBOの規格に準拠するシリアルビット列にエラーがある場合に、区切り位置がリカバリされるタイミングを表す一実施形態の概念図である。図４および図５は、それぞれ、図９および図１０に対応するものであり、基準シンボルとなるコンマシンボルが送信側回路から受信側回路へ送信されるタイミングは同じである。
【００６６】
図４および図５に示すように、リカバリ回路１０では、ディスプレイポートおよびVBOの規格に関わらず、ノイズ等によりシリアルビット列中にエラーが発生して、ビット区切り位置がずれた場合に、次のコンマシンボルの受信を待つことなく、パラレルデータのビット区切り位置を正しい位置に修正してリカバリすることができる。そのため、ビット区切り位置がずれてパラレルデータにエラーが発生してから正しいパラレルデータを得ることができるまでの時間を短縮することができる。
【００６７】
また、第１のパラレルデータのビットを１ビットずつシフトする前に、１回目のビットシフト量ｎを０にしてビットシフト回路１６に設定することにより、エラーが第１パラレルデータのビット区切り位置のエラーなのか、シリアルデータの値のエラーなのかを識別することができる。そのため、シリアルデータの値のエラーのみである場合には、第１パラレルデータのビットをシフトする必要がなく、エラーが発生してから正しいパラレルデータを得ることができるまでの時間を短縮することができる。
【００６８】
なお、上記実施形態の場合、パラレルデータバスのビット幅を１０ビットとしているが、パラレルデータバスのビット幅は、２ビット以上であればよい。
【００６９】
ビット区切り位置を計算して区切り位置決定回路１４に設定した後、第４のパラレルデータにエラーがあるか否かを確認することは必須ではない。また、確認する期間は、エラーのない第４のパラレルデータの次の第４のパラレルデータから１以上の第４のパラレルデータがマルチプレクサ１８から出力されるまでの期間であればよい。第４のパラレルデータにエラーがあるか否かを確認する期間が長いほど、確認に要する時間は長くなるが、より正確にビット区切り位置を検出することができる。
【００７０】
また、上記実施形態では、シリアルビット列中から１ビットのシリアルビットの抜けが発生してビット区切り位置がずれた場合を例に挙げて説明しているが、本発明はこれに限定されず、シリアルビット列中から複数ビットのシリアルビットの抜けが発生した場合、シリアルビット列中に１ビットないし複数ビットのシリアルビットが追加された場合、シリアルビットの値が化けた場合等にも同様に適用可能である。
【００７１】
また、上記実施形態では、ディスプレイポートおよびVBOの規格に準拠して送信側回路から受信側回路へシリアルビット列が送信される場合を例に挙げて説明したが、本発明は、シリアルビット列を送信するための規格に限定されず、送信側回路から伝送路を介して受信したシリアルビット列をパラレルデータに変換する受信側回路において適用可能である。
【００７２】
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【００７３】
１０  リカバリ回路
１２  シリアルパラレル変換回路
１４  区切り位置決定回路
１６  ビットシフト回路
１８  マルチプレクサ
２０  エラー検出回路
２２  コントローラ
２４  内部回路
【図１】
2017183893.tif 000003
【図２】
2017183893.tif 000004
【図３Ａ】
2017183893.tif 000005
【図３Ｂ】
2017183893.tif 000006
【図４】
2017183893.tif 000007
【図５】
2017183893.tif 000008
【図６】
2017183893.tif 000009
【図７】
2017183893.tif 000010
【図８】
2017183893.tif 000011
【図９】
2017183893.tif 000012
【図１０】
2017183893.tif 000013