(57)【特許請求の範囲】
【請求項１】
バスを介したデータ転送のためのデータ転送制御装置であって、
バスを介して第１の周波数で転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する変換回路と、
前記変換回路からＬビット幅のデータを受け、Ｋビット単位で行うべき所与の処理を、前記第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路とを含み、
前記変換回路が、
第１の周波数で入力されるデータを受け、保持するデータ保持手段と、
前記データ保持手段に保持されるデータが有効か否かを、複数のビットで構成されるデータセル単位で判断する判断手段と、
有効と判断されたデータセルのデータを、第１の周波数よりも低い第２の周波数で前記データ保持手段から出力する手段とを含むことを特徴とするデータ転送制御装置。
【請求項２】
バスを介したデータ転送のためのデータ転送制御装置であって、
バスを介して高速な第１の転送モードで転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する第１の変換回路と、
前記第１の変換回路からＬビット幅のデータを受け、前記バスに接続される送信側により挿入されたビットを削除するビット削除処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数で行い、Ｌビット幅のデータを出力する第１の処理回路と、
バスを介して低速な第２の転送モードで転送されてくるＫビット幅のデータを処理して、Ｋビット幅のデータを出力する第２の処理回路と、
前記第２の処理回路からのＫビット幅のデータを、Ｌビット幅のデータに並べ替えて変換する第２の変換回路とを含み、
前記第１の処理回路が、
ビット削除によるデータ長の縮みにより足りなくなったビットを次のクロックサイクルのデータから繰り上げるための処理を行うことで、前記ビット削除処理を行うことを特徴とするデータ転送制御装置。
【請求項３】
バスを介したデータ転送のためのデータ転送制御装置であって、
バスを介して高速な第１の転送モードで転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する第１の変換回路と、
バスを介して低速な第２の転送モードで転送されてくるＫビット幅のデータを、Ｌビット幅のデータに並べ替えて変換する第２の変換回路と、
前記第１、第２の変換回路の出力のいずれかを選択して出力する選択回路と、
前記選択回路からのＬビット幅のデータを受け、前記バスに接続される送信側により挿入されたビットを削除するビット削除処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数で行い、Ｌビット幅のデータを出力する処理回路とを含み、
前記処理回路が、
ビット削除によるデータ長の縮みにより足りなくなったビットを次のクロックサイクルのデータから繰り上げるための処理を行うことで、前記ビット削除処理を行うことを特徴とするデータ転送制御装置。
【請求項４】
バスを介したデータ転送のためのデータ転送制御装置であって、
バスを介して高速な第１の転送モードでＫビット単位で転送すべきデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータとして受け、前記バスの信号レベルを変化させるためのビットを挿入するビット挿入処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数で行い、Ｌビット幅のデータを出力する第１の処理回路と、
前記第１の処理回路からのＬビット幅のデータを、Ｋビット幅のデータに並べ替えて変換する第１の変換回路と、
バスを介して低速な第２の転送モードでＫビット単位で転送すべきデータを、Ｌビット幅のデータとして受け、該Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換する第２の変換回路と、
前記第２の変換回路からのＫビット幅のデータを処理して、Ｋビット幅のデータを出力する第２の処理回路とを含み、
前記第１の処理回路が、
ビット挿入によりあふれたビットを次のクロックサイクルのデータに繰り越すための処理を行うことで、前記ビット挿入処理を行うことを特徴とするデータ転送制御装置。
【請求項５】
バスを介したデータ転送のためのデータ転送制御装置であって、
バスを介して高速な第１の転送モード又は低速な第２の転送モードでＫビット単位で転送すべきデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータとして受け、前記バスの信号レベルを変化させるためのビットを挿入するビット挿入処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数で行い、Ｌビット幅のデータを出力する処理回路と、
高速な第１の転送モードで転送すべきＬビット幅のデータを前記処理回路から受け、該Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換する第１の変換回路と、
低速な第２の転送モードで転送すべきＬビット幅のデータを前記処理回路から受け、該Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換する第２の変換回路とを含み、
前記処理回路が、
ビット挿入によりあふれたビットを次のクロックサイクルのデータに繰り越すための処理を行うことで、前記ビット挿入処理を行うことを特徴とするデータ転送制御装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
ＵＳＢ（Universal Serial Bus)の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。
【請求項７】
請求項１乃至６のいずれかのデータ転送制御装置と、
前記データ転送制御装置及び前記バスを介して転送されるデータの出力処理又は取り込み処理又は記憶処理を行う装置と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送制御装置及び電子機器に関し、特に、ＵＳＢ２．０などの高速なバスでデータ転送を行うデータ転送制御装置及び電子機器に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、パーソナルコンピュータと周辺機器（広義には電子機器）とを接続するためのインターフェース規格として、ＵＳＢ（Universal Serial Bus)が注目を集めている。このＵＳＢには、従来は別々の規格のコネクタで接続されていたマウスやキーボードやプリンタなどの周辺機器を、同じ規格のコネクタで接続できると共にいわゆるプラグ＆プレイやホットプラグも実現できるという利点がある。
【０００３】
一方、このＵＳＢには、同じくシリアルバスインターフェース規格として脚光を浴びているＩＥＥＥ１３９４に比べて、転送速度が遅いという問題点がある。
【０００４】
そこで、従来のＵＳＢ１．１の規格に対する下位互換性を持ちながら、ＵＳＢ１．１に比べて格段に高速な４８０Ｍｂｐｓ（ＨＳモード）のデータ転送速度を実現できるＵＳＢ２．０規格が策定され、注目を浴びている。また、ＵＳＢ２．０の物理層回路や論理層回路のインターフェース仕様を定義したＵＴＭＩ（USB2.0 Transceiver Macrocell Interface）も策定されている。
【０００５】
さて、このＵＳＢ２．０では、ＨＳ（High Speed）モード時には４８０Ｍｂｐｓでデータ転送が行われるため、高速な転送速度が要求されるハードディスクドライブや光ディスクドライブなどのストレージ機器のインターフェースとして用いることができるという利点がある。
【０００６】
しかしながら、このＨＳモードでは、ＵＳＢにおいて必要なビットアンスタッフィング、ビットスタッフィング、ＮＲＺＩ（Non Return to Zero Invert）デコード、ＮＲＺＩエンコードなどの処理を、４８０ＭＨｚのクロック周波数で動作可能な回路で実現しなければならない。そして、微細加工が可能な最新の半導体プロセスを用いれば、このような４８０ＭＨｚで動作する回路の実現も可能だが、最新の半導体プロセスを使用できない場合には、このような高速な回路動作の実現は非常に困難になる。
【０００７】
また、最新の半導体プロセスを使用せずに４８０ＭＨｚの高速回路動作を実現する１つの手法として、手作業により回路を配置、配線してクロックスキューを最小化し、同期動作を保証する手法がある。
【０００８】
しかしながら、このような手作業による回路の配置、配線は、ＨＤＬ（Hardware Description Language）による回路合成や自動配置配線を利用した効率的な回路設計手法に比べて、設計期間の長期化や装置の高コスト化を招くと共に、データ転送制御装置（物理層回路、論理層回路）のマクロセル化の妨げにもなる。
【０００９】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、高速なバスで送受信されるデータに対して行われる処理を、低周波数で動作する回路で実現できるデータ転送制御装置及び電子機器を提供することにある。
【００１０】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して第１の周波数で転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する変換回路と、前記変換回路からＬビット幅のデータを受け、Ｋビット単位で行うべき所与の処理を、前記第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路とを含むことを特徴とする。
【００１１】
本発明によれば、バスを介して第１の周波数で転送されてくるＫビット幅のデータがＬビット幅のデータに変換される。そして、このＬビット幅のデータを受けた処理回路が、本来はＫビット単位で行うべき所与の処理を、第１の周波数よりも低い第２の周波数でＬビット単位で行う。従って、本発明によれば、バスの転送周波数である第１の周波数が高い場合でも、処理回路は、この第１の周波数よりも低い第２の周波数で動作すればよいことになる。従って、Ｋビット単位で行うべき所与の処理を、時間的に余裕を持って行うことが可能になり、バスの高速化に適正に対応できるようになる。
【００１２】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して高速な第１の転送モードで転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する第１の変換回路と、前記第１の変換回路からＬビット幅のデータを受け、Ｋビット単位で行うべき所与の処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数でＬビット単位で行う第１の処理回路と、バスを介して低速な第２の転送モードで転送されてくるＫビット幅のデータを、Ｋビット単位で処理する第２の処理回路と、前記第２の処理回路からのＫビット幅のデータを、Ｌビット幅のデータに並べ替えて変換する第２の変換回路とを含むことを特徴とする。
【００１３】
本発明によれば、高速な第１の転送モードでデータが転送されてきた場合には、第１の処理回路が、Ｋビット単位で行うべき所与の処理を、周波数の低い第２の周波数でＬビット単位で行う。一方、低速な第２の転送モードでデータが転送されてきた場合には、第２の処理回路が、所与の処理をＫビット単位で行う。従って、本発明によれば、低速な第２の転送モード用に設計された回路を有効利用しながら、第１の転送モードを採用することによるバスの高速化にも適正に対応できるようになる。
【００１４】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して高速な第１の転送モードで転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する第１の変換回路と、バスを介して低速な第２の転送モードで転送されてくるＫビット幅のデータを、Ｌビット幅のデータに並べ替えて変換する第２の変換回路と、前記第１、第２の変換回路の出力のいずれかを選択して出力する選択回路と、前記選択回路からのＬビット幅のデータを受け、Ｋビット単位で行うべき所与の処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路とを含むことを特徴とする。
【００１５】
本発明によれば、高速な第１の転送モードでデータが転送されてきた場合のみならず、低速な第２の転送モードでデータが転送されてきた場合にも、処理回路が、Ｋビット単位で行うべき処理をＬビット単位で行うようになる。従って、処理回路を、第１、第２の転送モードで共用できるようになり、データ転送制御装置の小規模化を図れる。
【００１６】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、
バスを介して第１の周波数で転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する変換回路と、前記変換回路からＬビット幅のデータを受け、Ｍ（Ｌ＞Ｍ＞Ｋ）ビット単位で行うべき所与の処理を、前記第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路と、前記処理回路からＬビット幅のデータを受け、Ｌビット幅のデータをＭビット幅のデータに並べ替えて変換する変換回路とを含むことを特徴とする。
【００１７】
本発明によれば、バスを介して第１の周波数で転送されてくるＫビット幅のデータがＬビット幅のデータに変換される。そして、このＬビット幅のデータを受けた処理回路が、本来はＭビット単位で行うべき所与の処理を、第１の周波数よりも低い第２の周波数でＬビット単位で行う。そして、変換回路が、処理後のＬビット幅のデータをＭビット幅のデータに並べ替えて変換する。従って、本発明によれば、Ｍビット単位で行うべき所与の処理を、時間的に余裕を持って行うことが可能になり、バスの高速化に適正に対応できるようになる。
【００１８】
また本発明は、前記変換回路又は前記第１の変換回路が、第１の周波数で入力されるデータを受け、保持するデータ保持手段と、前記データ保持手段に保持されるデータが有効か否かを、複数のビットで構成されるデータセル単位で判断する判断手段と、有効と判断されたデータセルのデータを、第１の周波数よりも低い第２の周波数で前記データ保持手段から出力する手段とを含むことを特徴とする。
【００１９】
本発明によれば、第１の周波数でデータが入力されると、データ保持手段がこれを保持する。そして、データが有効か否かがデータセル単位で判断され、有効と判断されたデータセルが、第１の周波数よりも低い第２の周波数で出力される。
【００２０】
本発明によれば、入力されたデータがデータセル単位で出力されるようになるため、データの変換機能と、クロックの周波数差、位相差等を吸収（補償）するバッファ機能とを両立できる変換回路を実現できる。
【００２１】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して第１の周波数でＫビット単位で転送すべきデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータとして受け、Ｋビット単位で行うべき所与の処理を、前記第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路と、前記処理回路からのＬビット幅のデータを、Ｋビット幅のデータに並べ替えて変換する変換回路とを含むことを特徴とする。
【００２２】
本発明によれば、処理回路が、バスを介して第１の周波数で転送すべきＫビット幅のデータを、Ｌビット幅のデータとして受ける。そして、このＬビット幅のデータを受けた処理回路が、本来はＫビット単位で行うべき所与の処理を、第１の周波数よりも低い第２の周波数でＬビット単位で行う。従って、本発明によれば、バスの転送周波数である第１の周波数が高い場合でも、処理回路は、この第１の周波数よりも低い第２の周波数で動作すればよいことになる。従って、Ｋビット単位で行うべき所与の処理を、時間的に余裕を持って行うことが可能になり、バスの高速化に適正に対応できるようになる。
【００２３】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して高速な第１の転送モードでＫビット単位で転送すべきデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータとして受け、Ｋビット単位で行うべき所与の処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数でＬビット単位で行う第１の処理回路と、前記第１の処理回路からのＬビット幅のデータを、Ｋビット幅のデータに並べ替えて変換する第１の変換回路と、バスを介して低速な第２の転送モードでＫビット単位で転送すべきデータを、Ｌビット幅のデータとして受け、該Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換する第２の変換回路と、前記第２の変換回路からのＫビット幅のデータを、Ｋビット単位で処理する第２の処理回路とを含むことを特徴とする。
【００２４】
本発明によれば、高速な第１の転送モードでデータを転送する場合には、第１の処理回路が、Ｋビット単位で行うべき所与の処理を、周波数の低い第２の周波数でＬビット単位で行う。一方、低速な第２の転送モードでデータを転送する場合には、第２の処理回路が、所与の処理をＫビット単位で行う。従って、本発明によれば、低速な第２の転送モード用に設計された回路を有効利用しながら、第１の転送モードを採用することによるバスの高速化にも適正に対応できるようになる。
【００２５】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して高速な第１の転送モード又は低速な第２の転送モードでＫビット単位で転送すべきデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータとして受け、Ｋビット単位で行うべき所与の処理を、前記第１の転送モードの第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路と、高速な第１の転送モードで転送すべきＬビット幅のデータを前記処理回路から受け、該Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換する第１の変換回路と、低速な第２の転送モードで転送すべきＬビット幅のデータを前記処理回路から受け、該Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換する第２の変換回路とを含むことを特徴とする。
【００２６】
本発明によれば、高速な第１の転送モードでデータを転送する場合のみならず、低速な第２の転送モードでデータを転送する場合にも、処理回路が、Ｋビット単位で行うべき処理をＬビット単位で行うようになる。従って、処理回路を、第１、第２の転送モードで共用できるようになり、データ転送制御装置の小規模化を図れる。
【００２７】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、バスを介して第１の周波数でＫビット単位で転送すべきデータを、Ｍ（Ｍ＞Ｋ）ビット幅のデータとして受け、該Ｍビット幅のデータをＬ（Ｌ＞Ｍ＞Ｋ）ビット幅のデータに並べ替えて変換する変換回路と、前記変換回路からＬビット幅のデータを受け、Ｍビット単位で行うべき所与の処理を、前記第１の周波数よりも低い第２の周波数でＬビット単位で行う処理回路と、前記処理回路からのＬビット幅のデータを、Ｋビット幅のデータに並べ替えて変換する変換回路とを含むことを特徴とする。
【００２８】
本発明によれば、変換回路が、バスを介して第１の周波数で転送すべきデータをＭビット幅のデータとして受け、このＭビット幅のデータをＬビット幅のデータに並べ替えて変換する。そして、このＬビット幅のデータを受けた処理回路が、本来はＭビット単位で行うべき所与の処理を、第１の周波数よりも低い第２の周波数でＬビット単位で行う。従って、本発明によれば、Ｍビット単位で行うべき所与の処理を、時間的に余裕を持って行うことが可能になり、バスの高速化に適正に対応できるようになる。
【００２９】
また本発明は、ＵＳＢ（Universal Serial Bus)の規格に準拠したデータ転送を行うことを特徴とする。このようにすれば、例えばＵＳＢ２．０で規格化されたＨＳモードでのデータ転送等についても適正に実現できるようになる。
【００３０】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及び前記バスを介して転送されるデータの出力処理又は取り込み処理又は記憶処理を行う装置とを含むことを特徴とする。
【００３１】
本発明によれば、電子機器に使用されるデータ転送制御装置の低コスト化、信頼性の向上を図れるため、電子機器の低コスト化、信頼性の向上も図れるようになる。また、本発明によれば、高速な転送モードでデータ転送を行うことができるようになるため、電子機器の処理の高速化を図れるようになる。
【００３２】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００３３】
１．本実施形態の特徴
１．１  受信側の構成
図１に本実施形態に係るデータ転送制御装置の受信側の構成例を示す。
【００３４】
アナログフロントエンド回路１００は、データ転送を行うためのドライバやレシーバを含むアナログ回路である。
【００３５】
本実施形態では、ＵＳＢ（Universal Serial Bus)、ＩＥＥＥ１３９４又はＳＣＳＩ（Small Computer System Interface）などの規格に準拠した高速バスを用いて、周波数ＦＣ１（第１の周波数）でＫビット幅のデータが転送される。そして、アナログフロントエンド回路１００は、この周波数ＦＣ１で転送されてくるＫビット幅のデータを受信する。なお、ＵＳＢやＩＥＥＥ１３９４では例えばＫ＝１となり、ＳＣＳＩでは例えばＫ＝８、３２（ＳＣＳＩ-2）になる。また、周波数ＦＣ１は、ＵＳＢでは例えば４８０ＭＨｚ（ＨＳモード）になり、ＩＥＥＥ１３９４では例えば４００〜３２００ＭＨｚとなる。
【００３６】
変換回路１０２は、アナログフロントエンド回路１００からのＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する。例えば、ＵＳＢやＩＥＥＥ１３９４のように１ビット幅のデータを差動信号で転送するシリアルバスを用いる場合には、変換回路１０２は、１ビット幅のデータ（シリアルデータ）を例えば８ビット幅のパラレルデータに変換するシリアル−パラレル変換回路になる。
【００３７】
処理回路１０４は、変換回路１０２からＬビット幅のデータを受け、Ｋビット単位で行うべき処理をＬビット単位で行う。この時、処理回路１０４は、このＬビット単位の処理を、バスの転送周波数ＦＣ１よりも低い周波数ＦＣ２（第２の周波数）の回路動作で実現する。そして、処理後のＬビット幅のデータを後段の回路に出力する。
【００３８】
ここで、Ｋビット単位で行うべき処理とは、例えば、バス規格（インターフェース規格）において、Ｋビット単位で行うことが定義されていたり、Ｋビット単位で行うことが想定されている処理である。例えばＵＳＢ（ＵＴＭＩ）においては、ビットアンスタッフィング、ビットスタッフィング、ＮＲＺＩ（Non Return to Zero Invert）デコード又はＮＲＺＩエンコードなどの処理は、１ビット単位（Ｋ＝１）で行うことが想定されている。
【００３９】
即ち、ＵＳＢにおいては、転送データは、ＮＲＺＩと呼ばれる方式でエンコードされて転送される。このＮＲＺＩは、一般的なデータでは"０"のビットの発生比率が"１"のビットの発生比率に比べてはるかに高いことに着目し、バス上の信号レベルの変化の頻度を増やして同期はずれを防ごうとするエンコード方式である。このため、ＮＲＺＩでは、元データのビットが"１"の場合には前の信号レベルを維持し、元データのビットが"０"の場合には前の信号レベルを反転させる。
【００４０】
従って、ＮＲＺＩのエンコードを行うと、元データに"０"のビットが並んでいる場合には、エンコード後のデータはビット毎に信号レベルが変化するようになる。
【００４１】
ところが、元データに"１"のビットが並んでいる場合には、エンコード後のデータの信号レベルが変化しない状態が長時間続くことになり、同期はずれの問題が生じてしまう。
【００４２】
このためＵＳＢでは、送信時に元データに対して、ビットスタッフィングと呼ばれる処理を施す。即ち、"１"のビットが連続して６回続くと、その後に必ず"０"のビットを挿入するようにする。そして、このようにビットスタッフされたデータを、上述のＮＲＺＩでエンコードする。一方、受信時には、受信データをＮＲＺＩでデコードし、その後にビットアンスタッフィングを施す。以上のようにすることで、元データに"１"のビットが並んでいた場合にも、信号レベルが変化しない状態が長時間続かないようになる。
【００４３】
そして、このようなビットアンスタッフィング、ビットスタッフィング、ＮＲＺＩデコード、ＮＲＺＩエンコードは、前のビットの信号レベルの状態を見て現在のビットの信号レベルの状態を決めるため、通常は、１ビット単位の処理（シリアルデータ処理）で行うことが想定されている。本実施形態では、このような１ビット（Ｋビット）単位で行うことが想定されている処理を、例えば８ビット（Ｌビット）単位で行うようにしている。
【００４４】
図２に、本実施形態の比較例の構成例を示す。
【００４５】
図２の処理回路９０２は、アナログフロントエンド回路９００からのＫビット幅のデータを受け、周波数ＦＣ１でＫビット単位の処理を行う。ＵＳＢを例にとれば、ビットアンスタッフィング、ＮＲＺＩデコードの処理を、４８０ＭＨｚの周波数で１ビット単位で行う。そして変換回路９０４は、処理回路９０２からのＫビット幅のデータをＬビット幅のデータに並べ替えて変換し、変換後のＬビット幅のデータを後段の回路に出力する。
【００４６】
図２の比較例では、処理回路９０２が高い周波数ＦＣ１（例えば４８０ＭＨｚ）で動作しなければならない。
【００４７】
この場合、微細加工が可能な最新の半導体プロセスを採用すれば、このような高い周波数ＦＣ１で動作する高速な回路を実現することも可能である。
【００４８】
しかしながら、データ転送制御装置（ＵＴＭＩトランシーバ）をマクロセル化して、ＡＳＩＣ（Application Specific Integrated Circuit）などに利用する場合には、コストとの兼ね合いから、このような最新の半導体プロセスではなく、通常の半導体プロセスを採用する方が望ましい。
【００４９】
また、処理回路９０２などの回路パターンを、配線容量が最適になるように手作業でレイアウトすれば、通常の半導体プロセスを用いながらも、高い周波数ＦＣ１で高速動作する回路を実現できる可能性はある。
【００５０】
しかしながら、このような手作業のレイアウトは、設計の非効率化、開発期間の長期化、装置の高コスト化などの問題を招く。
【００５１】
これに対して本実施形態では、図１に示すように処理回路１０４がＬビット単位で処理を行う。従って、Ｋビット単位で行うべき処理を、例えば周波数ＦＣ２＝（Ｋ／Ｌ）×ＦＣ１の回路動作で実現できる。ＵＳＢを例にとれば、処理回路１０４が例えば８ビット単位（Ｌ＝８）で処理を行うことで、１ビット単位（Ｋ＝１）で行うべきビットアンスタッフィング、ＮＲＺＩデコードの処理を、ＦＣ２＝（Ｋ／Ｌ）×ＦＣ１＝（１／８）×４８０ＭＨｚ＝６０ＭＨｚとなる低い周波数の回路動作で実現できる。
【００５２】
従って、本実施形態によれば、高い周波数ＦＣ１（４８０ＭＨｚ）で処理回路９０２を動作させる必要がある図２の比較例とは異なり、微細加工が可能な最新の半導体プロセスを用いることなく、ビットアンスタッフィング、ＮＲＺＩデコードなどのＫビット単位の処理を適正に実現できるようになる。
【００５３】
また、手作業によるレイアウトが不要になり、回路パターンをゲートアレイなどの自動配置配線で生成できるようになるため、開発期間の短縮化、装置の低コスト化を図れる。
【００５４】
特に、近年、バスでのデータ転送は低振幅（例えば４００ｍＶ）の差動信号で実現されるため、バスの転送速度が飛躍的に高速化して行く傾向にある。例えば、ＵＳＢ１．１では１２Ｍｂｐｓであった転送速度が、ＵＳＢ２．０では４８０Ｍｂｐｓに高速化している。また、ＩＥＥＥ１３９４でも、バスの最高転送速度が４００Ｍｂｐｓから３２００Ｍｂｐｓに高速化される予定である。
【００５５】
ところが、バスからのデータを送受信するデータ転送制御装置の内部では、信号の振幅をバス上の信号のようには低振幅にできない。従って、データ転送制御装置内部の回路動作の高速化には限界があり、たとえバスの転送速度を高速化しても、データ転送制御装置内部の回路動作がその高速化に追いつけなくなる可能性がある。
【００５６】
このような場合にも本実施形態では、図１の処理回路１０４を例えばＦＣ２＝（Ｋ／Ｌ）×ＦＣ１となる低い周波数で動作させることができる。従って、規格がバージョンアップされ、バスの転送速度が次々と高速化していった場合にも、（Ｋ／Ｌ）の比率を順次低く設定することで、周波数ＦＣ２を低く抑えることが可能になり、バスの転送速度の高速化にも適正に対応できるようになる。
【００５７】
さて、ＵＳＢ２．０では、ＵＳＢ１．１においてサポートしていたＦＳ（Full Speed）モードについてもサポートしている。そして、このＦＳモードでは、ＨＳモードの４８０ＭＨｚよりも格段に低い１２Ｍｂｐｓでデータ転送が行われる。
【００５８】
図３に、このように転送速度の異なる複数の転送モードをバスの規格がサポートしている場合のデータ転送制御装置の構成例を示す。
【００５９】
図３が図２と異なるのは、ＨＳモード（広義には第１の転送モード）用の変換回路１０２及び処理回路１０４の他に、ＦＳモード（広義には第２の転送モード）用の処理回路１０６及び変換回路１０８と、セレクタ（選択回路）１１０とが設けられている点である。
【００６０】
変換回路１０２（第１の変換回路）は、高速なＨＳモード（周波数ＦＣ１の第１の転送モード）で転送されてくるＫビット幅のデータをＬ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する。そして、処理回路１０４（第１の処理回路）は、変換回路１０２からＬビット幅のデータを受け、Ｋビット単位で行うべき所与の処理を周波数ＦＣ２（＜ＦＣ１）でＬビット単位で行う。
【００６１】
一方、処理回路１０６（第２の処理回路）は、低速なＦＳモード（周波数ＦＣ３の第２の転送モード）で転送されてくるＫビット幅のデータを、周波数ＦＣ３（＜ＦＣ１）でＫビット単位で処理する。そして、変換回路１０８（第２の変換回路）は、処理回路１０６からのＫビット幅のデータをＬビット幅のデータに並べ替えて変換する。
【００６２】
そして、セレクタ１１０は、処理回路１０４、変換回路１０８のいずれかの出力を選択し、選択されたＬビット幅のデータを後段の回路に出力する。
【００６３】
図３の構成によれば、高速なＨＳモードで転送されてくるデータについては、ＨＳモードの周波数ＦＣ１（４８０ＭＨｚ）よりも低い周波数ＦＣ２（６０ＭＨｚ）でＬビット（８ビット）単位で処理される。従って、本来は高い周波数（４８０ＭＨｚ）の回路動作でＫビット（１ビット）単位で実現しなければならないビットアンスタッフィングやＮＲＺＩデコードなどの処理を、低い周波数（６０ＭＨｚ）の回路動作で実現できるようになる。
【００６４】
一方、低速なＦＳモードで転送されてくるデータについては、ＦＳモードの周波数ＦＣ３（１２ＭＨｚ）でＫビット（１ビット）単位で処理される。従って、従来のＵＳＢ１．１においてＦＳモード用に設計した回路（マクロセル）をそのまま利用することが可能となり、開発期間の短縮化、タイミング制御の簡素化、回路動作の安定化を図れる。
【００６５】
即ち、ＦＳモードで転送されてくるデータについては、図３に示すように通常どおりＫビット（１ビット）単位で処理を行っても、処理回路１０６の動作周波数ＦＣ３（１２ＭＨｚ）が低いため、ＨＳモードの時のような問題は生じない。そして、このようにＫビット単位で処理するようにすれば、ＵＳＢ１．１用に設計した回路をそのまま利用できるようになるため、開発期間の短縮化を図れる。
【００６６】
なお、開発期間の短縮化やタイミング制御の容易化よりも回路の小規模化を優先する場合には、図４に示すような構成にすることが望ましい。
【００６７】
図４において、変換回路１０２（第１の変換回路）は、高速なＨＳモード（第１の転送モード）で転送されてくるＫビット幅のデータを、Ｌ（Ｌ＞Ｋ）ビット幅のデータに並べ替えて変換する。
【００６８】
一方、変換回路１１２（第２の変換回路）は、低速なＦＳモード（第２の転送モード）で転送されてくるＫビット幅のデータを、Ｌビット幅のデータに並べ替えて変換する。
【００６９】
そして、セレクタ１１４（選択回路）は、変換回路１０２、１１２の出力のいずれかを選択して出力する。そして、処理回路１０４は、セレクタ１１４からＬビット幅のデータを受け、Ｋビット単位で行うべき処理を周波数ＦＣ２（＜ＦＣ１）でＬビット単位で行う。
【００７０】
なお、図４において変換回路１０２、１１２の一部の回路を共通化してもよい。
【００７１】
図４の構成によれば、図３では２つ必要であった処理回路が１つで済むようになる。従って、図３の構成に比べて回路規模を削減できるという利点がある。
【００７２】
但し、図３の処理回路１０６は、Ｌビット（８ビット）単位で処理を行う処理回路１０４とは異なりＫビット（１ビット）単位で処理を行えばよいため、その回路規模が小さい。従って、データ転送制御装置全体の回路規模に比べて、処理回路１０６の回路規模が十分に小さい場合には、開発期間の短縮化、タイミング制御の簡素化を図れる図３の構成の方が望ましい。
【００７３】
さて図１では、処理回路１０４が、本来Ｋビット単位で行われるべき処理をＬビット単位で行っている。
【００７４】
これに対して図５では、処理回路１１６が、変換回路１０２によりＫビット幅からＬビット幅に変換されたデータを受け、本来Ｍ（Ｌ＞Ｍ＞Ｋ）ビット単位で行われるべき処理を周波数ＦＣ２でＬビット単位で行っている。そして、変換回路１１８が、処理回路１１６からのＬビット幅のデータを受け、Ｌビット幅のデータをＭビット幅のデータに並べ替えて変換している。
【００７５】
例えばＳＣＳＩでは、データ転送制御装置がバスを介して８ビット幅（Ｋビット幅）のデータを受信する。そして、データ転送制御装置から後段の回路（例えばＣＰＵ）には１６ビット幅（Ｍビット幅）のデータが出力される。
【００７６】
この場合、処理回路１１６は、本来ならば１６ビット（Ｍビット）単位で処理を行うことが想定されている。このような場合に、図５の処理回路１１６は、この１６ビット（Ｍビット）単位で行うべき処理を例えば３２ビットや６４ビット（Ｌビット）単位で行う。
【００７７】
このようにすれば、バスのデータ転送の周波数ＦＣ１が高速化された場合にも、処理回路１１６はＦＣ１よりも低い周波数ＦＣ２（例えば（Ｋ／Ｌ）×ＦＣ１）で動作すれば済むため、処理回路１１６での処理を低い周波数の回路動作で実現できるようになる。
【００７８】
１．２  送信側の構成
図６に本実施形態に係るデータ転送制御装置の送信側の構成例を示す。
【００７９】
処理回路１２４は、バスを介してＫビット単位で転送すべきデータを、前段の回路からＬ（＞Ｋ）ビット幅のデータとして受け、Ｋビット単位で行うべき処理をＬビット単位で行う。また処理回路１２４は、このＬビット単位の処理を、バスの転送周波数ＦＣ１よりも低い周波数ＦＣ２の回路動作で実現する。
【００８０】
ここで、Ｋビット単位で行うべき処理とは、例えば、バス規格において、Ｋビット単位で行うことが定義されていたり、Ｋビット単位で行うことが想定されている処理である。例えばＵＳＢにおけるビットスタッフィング、ＮＲＺＩエンコードは、前のビットの信号レベルの状態を見て現在のビットの信号レベルの状態を決めるため、通常は、１ビット単位の処理（シリアルデータ処理）で行うことが想定されている。本実施形態では、このような１ビット（Ｋビット）単位で行うことが想定されている処理を、例えば８ビット（Ｌビット）単位で行うようにしている。
【００８１】
変換回路１２２は、処理回路１２４からのＬビット幅のデータをＫビット幅のデータに並べ替えて変換する。例えば、ＵＳＢやＩＥＥＥ１３９４のように１ビット幅のデータを差動信号で転送するシリアルバスを用いる場合には、変換回路１２２は、例えば８ビット幅のパラレルデータを１ビット幅のデータ（シリアルデータ）に変換するパラレル−シリアル変換回路になる。
【００８２】
アナログフロントエンド回路１００は、データ転送を行うためのドライバやレシーバを含むアナログ回路である。アナログフロントエンド回路１００は、変換回路１２２からのＫビット幅のデータを受け、ＵＳＢ、ＩＥＥＥ１３９４又はＳＣＳＩなどの規格に準拠した高速バスを用いて、周波数ＦＣ１でＫビット幅のデータを送信する。
【００８３】
図７に、本実施形態の比較例の構成例を示す。
【００８４】
図７では、変換回路９１４は、前段の回路からのＬビット幅のデータをＫビット幅のデータに並べ替えて変換する。そして処理回路９１２は、変換回路９１４からＫビット幅のデータを受け、周波数ＦＣ１でＫビット単位の処理を行う。ＵＳＢを例にとれば、ビットスタッフィング、ＮＲＺＩエンコードの処理を、４８０ＭＨｚの周波数で１ビット単位で行う。
【００８５】
図７の比較例では、処理回路９１２が高い周波数ＦＣ１（例えば４８０ＭＨｚ）で動作しなければならない。従って、図２の受信側の比較例で説明したのと同様に、最新の半導体プロセスや手作業のレイアウトが必要になり、装置の高コスト化、設計の非効率化、開発期間の長期化などの問題を招く。
【００８６】
これに対して本実施形態では、図６に示すように処理回路１２４がＬビット単位で処理を行う。従って、Ｋビット単位で行うべき処理を、例えば周波数ＦＣ２＝（Ｋ／Ｌ）×ＦＣ１の回路動作で実現できる。ＵＳＢを例にとれば、ビットスタッフィング、ＮＲＺＩエンコードの処理を、ＦＣ２＝（Ｋ／Ｌ）×ＦＣ１＝（１／８）×４８０ＭＨｚ＝６０ＭＨｚとなる低い周波数の回路動作で実現できる。
【００８７】
従って、本実施形態によれば、図１の受信側の構成例で説明したのと同様に、最新の半導体プロセスを用いることなく、ビットスタッフィング、ＮＲＺＩエンコードなどのＫビット単位の処理を適正に実現できるようになる。
【００８８】
また、手作業によるレイアウトが不要になり、開発期間の短縮化、装置の低コスト化を図れる。
【００８９】
また、バスの転送速度がバージョンアップにより次々と高速化していった場合にも、（Ｋ／Ｌ）の比率を順次低く設定することで、周波数ＦＣ２を低く抑えることが可能になり、バスの転送速度の高速化にも適正に対応できるようになる。
【００９０】
さて図８に、転送速度の異なる複数の転送モードをバスの規格がサポートしている場合のデータ転送制御装置の構成例を示す。
【００９１】
図８が図６と異なるのは、ＨＳモード（第１の転送モード）用の処理回路１２４及び変換回路１２２の他に、ＦＳモード（第２の転送モード）用の変換回路１２８及び処理回路１２６が設けられている点である。
【００９２】
処理回路１２４（第１の処理回路）は、バスを介してＨＳモード（周波数ＦＣ１の第１の転送モード）でＫビット単位で転送すべきデータを、前段の回路からＬビット幅のデータとして受け、Ｋビット単位で行うべき所与の処理を周波数ＦＣ２（＜ＦＣ１）でＬビット単位で行う。そして変換回路１２２（第１の変換回路）は、処理回路１２４からのＬビット幅のデータをＫビット幅のデータに並べ替えて変換して、変換後のＫビット幅のデータをアナログフロントエンド回路１００に出力する。
【００９３】
一方、変換回路１２８（第２の変換回路）は、バスを介してＦＳモード（周波数ＦＣ３の第２の転送モード）でＫビット単位で転送すべきデータを、前段の回路からのＬビット幅のデータとして受け、このＬビット幅のデータをＫビット幅のデータに並べ替えて変換する。そして、処理回路１２６（第２の処理回路）は、変換回路１２８からのＫビット幅のデータを、周波数ＦＣ３（＜ＦＣ１）でＫビット単位で処理し、処理後のＫビット幅のデータをアナログフロントエンド回路１００に出力する。
【００９４】
図８の構成によれば、高速なＨＳモードで転送されてくるデータについては、ＨＳモードの周波数ＦＣ１（４８０ＭＨｚ）よりも低い周波数ＦＣ２（６０ＭＨｚ）でＬビット（８ビット）単位で処理される。従って、本来は高い周波数（４８０ＭＨｚ）の回路動作でＫビット（１ビット）単位で実現しなければならないビットスタッフィングやＮＲＺＩエンコードなどの処理を、低い周波数（６０ＭＨｚ）の回路動作で実現できるようになる。
【００９５】
一方、低速なＦＳモードで転送されてくるデータについては、ＦＳモードの周波数ＦＣ３（１２ＭＨｚ）でＫビット（１ビット）単位で処理される。従って、従来のＵＳＢ１．１においてＦＳモード用に設計した回路（マクロセル）をそのまま利用することが可能となり、開発期間の短縮化、タイミング制御の簡素化、回路動作の安定化を図れる。
【００９６】
なお、開発期間の短縮化やタイミング制御の容易化よりも回路の小規模化を優先する場合には、図９に示すような構成にすることが望ましい。
【００９７】
図９において、処理回路１２４は、バスを介してＨＳモード又はＦＳモードでＫビット単位で転送すべきデータを、前段の回路からＬ（＞Ｋ）ビット幅のデータとして受け、Ｋビット単位で行うべき処理を周波数ＦＣ２（＜ＦＣ１）でＬビット単位で行う。
【００９８】
そして、変換回路１２２（第１の変換回路）は、ＨＳモードで転送すべきＬビット幅のデータを処理回路１２４から受け、このＬビット幅のデータをＫビット幅のデータに並べ替えて変換し、アナログフロントエンド回路１００に出力する。
【００９９】
一方、変換回路１３２（第２の変換回路）は、ＦＳモードで転送すべきＬビット幅のデータを処理回路１２４から受け、このＬビット幅のデータをＫビット幅のデータに並べ替えて変換し、アナログフロントエンド回路１００に出力する。
【０１００】
なお、図９において変換回路１２２、１３２の一部の回路を共通化してもよい。
【０１０１】
図９の構成によれば、図８では２つ必要であった処理回路が１つで済むようになる。従って、図８の構成に比べて回路規模を削減できるという利点がある。
【０１０２】
但し、図８の処理回路１２６は、Ｌビット（８ビット）単位で処理を行う処理回路１２４とは異なりＫビット（１ビット）単位で処理を行えばよいため、その回路規模が小さい。従って、データ転送制御装置全体の回路規模に比べて、処理回路１２６の回路規模が十分に小さい場合には、開発期間の短縮化、タイミング制御の簡素化を図れる図８の構成の方が望ましい。
【０１０３】
さて図６では、処理回路１２４が、本来Ｋビット単位で行われるべき処理をＬビット単位で行っている。
【０１０４】
これに対して図１０では、処理回路１３６が、変換回路１３８によりＭビット幅からＬビット幅に変換されたデータを受け、本来Ｍ（Ｌ＞Ｍ＞Ｋ）ビット単位で行われるべき処理を周波数ＦＣ２でＬビット単位で行っている。そして、変換回路１２２が、処理回路１３６からのＬビット幅のデータを受け、Ｌビット幅のデータをＫビット幅のデータに並べ替えて変換して、アナログフロントエンド回路１００に出力している。
【０１０５】
例えばＳＣＳＩでは、前段の回路（例えばＣＰＵ）からデータ転送制御装置に１６ビット幅（Ｍビット幅）のデータが入力される。そして、データ転送制御装置はバスを介して８ビット幅（Ｋビット幅）のデータを送信する。
【０１０６】
この場合、処理回路１３６は、本来ならば１６ビット（Ｍビット）単位で処理を行うことが想定されている。このような場合に、図１０の処理回路１３６は、この１６ビット（Ｍビット）単位で行うべき処理を例えば３２ビットや６４ビット（Ｌビット）単位で行う。
【０１０７】
このようにすれば、バスのデータ転送の周波数ＦＣ１が高速化された場合にも、処理回路１３６はＦＣ１よりも低い周波数ＦＣ２（例えば（Ｋ／Ｌ）×ＦＣ１）で動作すれば済むため、処理回路１３６での処理を低い周波数の回路動作で実現できるようになる。
【０１０８】
２．詳細例
２．１  データ転送制御装置の全体構成
図１１に本実施形態のデータ転送制御装置の全体構成の例を示す。
【０１０９】
図１１のデータ転送制御装置は、データハンドラ回路４００、ＨＳ（High Speed）回路４１０、ＦＳ（Full Speed）回路４２０、アナログフロントエンド回路４３０を含む。なお、本発明のデータ転送制御装置は、図１１に示す回路ブロックの全てを含む必要はなく、それらの一部を省略する構成としてもよい。
【０１１０】
データハンドラ回路４００（広義にはデータ転送を行うための所与の回路）は、ＵＳＢ等に準拠したデータ転送のための種々の処理を行う。より具体的には、送信時には、送信データにＳＹＮＣ（synchronization）、ＳＯＰ（Start Of Packet）、ＥＯＰ（End Of Packet）を付加する処理や、ビットスタッフィング処理などを行う。一方、受信時には、受信データのＳＹＮＣ、ＳＯＰ、ＥＯＰを検出／削除する処理や、ビットアンスタッフィング処理などを行う。更に、データの送受信を制御するための各種のタイミング信号を生成する処理も行う。
【０１１１】
なお、受信データはデータハンドラ回路４００から後段の回路であるＳＩＥ（Serial Interface Engine）に出力され、送信データはＳＩＥからデータハンドラ回路４００に入力されることになる。
【０１１２】
ＨＳ回路４１０は、データ転送速度が４８０ＭｂｐｓとなるＨＳ（High Speed）でのデータの送受信を行うためのロジック回路であり、ＦＳ回路４２０は、データ転送速度が１２ＭｂｐｓとなるＦＳ（Full Speed）でのデータの送受信を行うためのロジック回路である。
【０１１３】
ここで、ＨＳモードは、ＵＳＢ２．０により新たに定義された転送モードである。一方、ＦＳモードは、従来のＵＳＢ１．１で既に定義されている転送モードである。
【０１１４】
ＵＳＢ２．０では、このようなＨＳモードが用意されているため、プリンタ、オーディオ、カメラなどにおけるデータ転送のみならず、ハードディスクドライブや光ディスクドライブ（ＣＤＲＯＭ、ＤＶＤ）などのストレージ機器におけるデータ転送も実現できるようになる。
【０１１５】
アナログフロントエンド回路４３０は、ＦＳやＨＳでの送受信を行うためのドライバやレシーバを含むアナログ回路である。ＵＳＢではＤＰ（Ｄａｔａ＋）とＤＭ（Ｄａｔａ−）を用いた差動信号によりデータを送受信する。
【０１１６】
２．２  ビットスタッフィング、ＮＲＺＩ
図１２に、ビットスタッフィング回路１０（広義にはビット挿入回路）、ＮＲＺＩエンコーダ１２（広義には、パラレルデータを物理層用のパラレルエンコードデータに変換するエンコーダ）、ＮＲＺＩデコーダ１４（広義には、物理層用に変換されたパラレルエンコードデータをデコードし、パラレルデータを出力するデコーダ）、ビットアンスタッフィング回路１６（広義にはビット削除回路）、パラレル−シリアル変換回路１８、シリアル−パラレル変換回路１９の接続関係図を示す。
【０１１７】
図１２のビットスタッフィング回路１０、ＮＲＺＩエンコーダ１２、ＮＲＺＩデコーダ１４、ビットアンスタッフィング回路１６は、例えば図１１のデータハンドラ回路４００に含まれる。一方、図１２のパラレル−シリアル変換回路１８、シリアル−パラレル変換回路１９は、例えば図１１のＨＳ回路４１０に含まれる。
【０１１８】
ビットスタッフィング回路１０、ＮＲＺＩエンコーダ１２は、データの送信（ＴＸ）時に動作する回路であり、ＮＲＺＩデコーダ１４、ビットアンスタッフィング回路１６は、データの受信（ＲＸ）時に動作する回路である。
【０１１９】
まず、ＮＲＺＩ（Non Return to Zero Invert）、ビットスタッフィング（Bit Stuffing）について図１３（Ａ）、（Ｂ）を用いて簡単に説明する。
【０１２０】
ＮＲＺＩでは、図１３（Ａ）のＡ１、Ａ２に示すように、元データのビットが"０"である場合には信号レベルを反転させ、Ａ３に示すように、元データのビットが"１"である場合には信号レベルを維持する。このようなエンコード方式を採用すれば、元データに"０"のビットが続くことで、信号レベルが長時間変化しなかった場合にも、ＮＲＺＩ後のデータの信号レベルはビット毎に信号レベルが変化するようになる。従って、元データの"０"のビットの発生比率が"１"のビットの発生比率に比べて十分に高い場合には、クロック抽出に最適なデータにエンコードできるようになる。
【０１２１】
しかしながら、図１３（Ａ）のＡ３から明らかなように、元データに"１"のビットが連続して並ぶと、ＮＲＺＩ後のデータの信号レベルが変化しない状態が長時間続くことになり、ＰＬＬの同期はずれの問題が生じてしまう。
【０１２２】
このためＵＳＢでは、ビットスタッフィング（広義にはビット挿入）と呼ばれる処理を採用している。即ち図１３（Ｂ）のＡ４に示すように、"１"のビットが連続して６個続くと、その後に必ず"０"のビットを挿入するようにする。そしてＡ５に示すように、ビットスタッフ後のデータをＮＲＺＩでエンコードする。
【０１２３】
このようにすることで、元データに"１"のビットが並んでいた場合にも、図１３（Ｂ）のＡ６に示すようにＮＲＺＩエンコードデータの信号レベルが反転するようになる。従って、信号レベルが長時間変化しない状態が続く問題を解決でき、クロック抽出に最適なデータを得ることができる。
【０１２４】
なお、受信側においては、送信側のビットスタッフィングにより挿入された"０"のビットを削除するビットアンスタッフィング処理を行う。即ち、"１"のビットが連続して６個続き、その後に"０"のビットが挿入されていた場合には、その"０"のビットを削除する。
【０１２５】
さて、このようなＮＲＺＩやビットスタッフィングやビットアンスタッフィングは、前のビットの信号レベルの状態を見て現在のビットの信号レベルの状態を決めるため、シリアルデータ処理に最適な処理となる。
【０１２６】
このため送信側においては、図１４の比較例に示すように、ビットスタッフィング回路３０２やＮＲＺＩエンコーダ３０４は、通常、パラレル−シリアル変換回路３００の後段に設けられる。そして、パラレル−シリアル変換回路３００による変換により得られたシリアルデータに対して、ビットスタッフィングやＮＲＺＩエンコードの処理が行われる。
【０１２７】
一方、受信側においては、ＮＲＺＩデコーダ３０６やビットアンスタッフィング回路３０８は、通常、シリアル−パラレル変換回路３１０の前段に設けられる。そして、シリアルデータの状態でビットアンスタッフィングやＮＲＺＩデコードの処理を行い、処理後のシリアルデータをシリアル−パラレル変換回路３１０に入力して、パラレルデータを得る。
【０１２８】
ところが、ＵＳＢ２．０のＨＳモードでは、データ転送速度が４８０Ｍｂｐｓとなるため、図１４の構成では、Ｂ１、Ｂ２に示すシリアルデータ処理（ＮＲＺＩ、ビットスタッフィング、ビットアンスタッフィング）を４８０ＭＨｚのクロック周波数で実現しなければならなくなる。
【０１２９】
この場合、微細加工が可能な最新の半導体プロセスを採用すれば、Ｂ１、Ｂ２に示すシリアルデータ処理を４８０ＭＨｚで実現することも可能である。
【０１３０】
しかしながら、ＡＳＩＣなどでは、コストとの兼ね合いから、このような最新の半導体プロセスではなく、通常の半導体プロセスを採用する方が望ましい。
【０１３１】
また、例えば、ビットスタッフィング回路３０２、ＮＲＺＩエンコーダ３０４、ＮＲＺＩデコーダ３０６、ビットアンスタッフィング回路３０８の回路パターンを、配線容量が最適になるように手作業でレイアウトすれば、通常の半導体プロセスを用いても、これらの回路を４８０ＭＨｚで動作させ得る可能性はある。
【０１３２】
しかしながら、このような手作業レイアウトは、ＩＣの開発期間の長期化の問題やＩＣの誤動作の問題を招く。
【０１３３】
そこで、本実施形態では図１２に示すように、送信側においては、ビットスタッフィング回路１０（ビット挿入回路）を、パラレル−シリアル変換回路１８の前段に設けるようにしている。そして、このビットスタッフィング回路１０が、前段の回路から所与のクロックサイクルで入力された８ビット幅（Ｎビット幅）のtx_data（パラレル入力データ）を受け、ビットスタッフ（ビット挿入）された８ビット幅のtx_bs_data（パラレル出力データ）を例えば上記クロックサイクルで出力するようにしている。
【０１３４】
更に、ビットスタッフィング回路１０からの８ビット幅のtx_bs_dataを、８ビット幅のtx_en_data（物理層用のパラレルエンコードデータ）に変換するＮＲＺＩエンコーダ１２を、ビットスタッフィング回路１０とパラレル−シリアル変換回路１８の間に設けるようにしている。
【０１３５】
一方、受信側においては、ビットアンスタッフィング回路１６（ビット削除回路）を、シリアル−パラレル変換回路１９の後段に設けるようにしている。そして、このビットアンスタッフィング回路１６が、シリアル−パラレル変換回路１９を介して所与のクロックサイクルで入力された８ビット幅（Ｎビット幅）のrx_bs_data（パラレル入力データ）を受け、ビットアンスタッフ（ビット削除）された８ビット幅のrx_data（パラレル出力データ）を例えば上記クロックサイクルで出力するようにしている。
【０１３６】
更に、８ビット幅のrx_en_data（物理層用に変換されたパラレルエンコードデータ）をデコードし、８ビット幅のrx_bs_data（パラレル入力データ）としてビットアンスタッフィング回路１６に出力するＮＲＺＩデコーダ１４を、シリアル−パラレル変換回路１９とビットアンスタッフィング回路１６との間に設けるようにしている。
【０１３７】
以上のような構成にすることで、ＮＲＺＩ、ビットスタッフィング、ビットアンスタッフィングの処理をパラレルデータの状態のままで実現できるようになる。従って、例えばＮ＝８ビットの場合には４８０ＭＨｚ／８＝６０ＭＨｚという低いクロック周波数で、ビットスタッフィング回路１０、ＮＲＺＩエンコーダ１２、ＮＲＺＩデコーダ１４、ビットアンスタッフィング回路１６は動作すればよいことになる。
【０１３８】
従って、微細加工が可能な最新の半導体プロセスを用いなくても、ＮＲＺＩ、ビットスタッフィング、ビットアンスタッフィングの処理を実現できるようになる。この結果、データ転送制御装置の低コスト化を図れる。
【０１３９】
また、これらの回路１０〜１６のパターンを手作業でレイアウトしなくても済むようになる。従って、回路１０〜１６のパターンをゲートアレイなどの自動配置配線で生成できるようになり、開発期間の短縮化、データ転送制御装置の低コスト化を図れる。
【０１４０】
また、回路１０〜１６は、６０ＭＨｚという低速のクロック周波数で動作すればよいため、データのスキューやジッタに対する耐性を高めることができ、データ転送の信頼性を大幅に向上できる。
【０１４１】
図１５に、送信側におけるビットスタッフィング及びＮＲＺＩエンコードの様子を示す。
【０１４２】
なお、ＵＳＢにおいてはＬＳＢファーストでデータが入出力される。また、ＵＳＢ２．０においてはＥＯＰ（ＦＥｈ）についてはビットスタッフされない。
【０１４３】
また、説明を簡単にするために、ＳＯＰとして３バイトの（０００００００８ｈ）が付加され、ＥＯＰとして１バイトの（ＦＥｈ）が付加された場合について示してある。また、ＵＳＢのパケット書式ではあり得ないデータではあるが、パケット本体として８バイトの（ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦｈ）のデータが入力された場合について示してある。
【０１４４】
また、図１５において、点網掛け部分はその値が不問であることを意味する。
【０１４５】
例えば図１５のＣ１に示すようにtx_dataとして（ＦＦｈ）が図１２のビットスタッフィング回路１０に入力された場合を考える。この場合には、前のクロックサイクルでの末尾（ＭＳＢ側）の"１"のビットの連続数はＣ２に示すように１であるため、"１"のビットの連続数が５になったところでＣ３に示すようにビットスタッフィングにより"０"のビットが挿入される。
【０１４６】
従って、図１２のビットスタッフィング回路１０から出力されるtx_bs_dataは、Ｃ４に示すように（ＤＦｈ）になる。そして、この（ＤＦｈ）はＮＲＺＩエンコーダ１２にエンコードされ、tx_en_dataとしてＣ５に示すように（１Ｆｈ）が出力されることになる。即ち、Ｃ６に示すように"０"のビットがビットスタッフィングにより挿入されることで、Ｃ７に示すようにtx_en_dataの信号レベルが反転する。従って、"１"のビットが続いた場合にも、tx_en_dataの信号レベルが反転するようになり、受信側でのクロックの抽出が容易になる。
【０１４７】
なお、Ｃ３に示すように"０"のビットが挿入されると、Ｃ８に示すビットがあふれることになる。そこで本実施形態では、このあふれたビットを、Ｃ９に示すように次のクロックサイクルのデータに繰り越すようにしている。
【０１４８】
また図１５のＣ１０では、前のクロックサイクルでの末尾の"１"のビットの連続数は２（Ｃ８のビットが繰り越されているため）であるため、"１"のビットの連続数が４になったところでＣ１１に示すように"０"のビットが挿入される。
【０１４９】
従って、ビットスタッフィング回路１０から出力されるtx_bs_dataは、Ｃ１２に示すように（ＥＦｈ）になる。またＮＲＺＩエンコーダ１２から出力されるtx_en_dataはＣ１３に示すように（Ｆ０ｈ）になる。即ち、Ｃ１４に示すように"０"のビットが挿入されることで、Ｃ１５に示すようにtx_en_dataの信号レベルが反転し、受信側でのクロックの抽出が容易になる。
【０１５０】
また図１５のＣ１６では、ビットの挿入数の累積値（あふれビット数の累積値）が８個以上になったため、前段の回路からのtx_dataの入力が停止される。これは、前段の回路に出力される図１２の信号tx_readyを非アクティブにすることで実現される。
【０１５１】
図１６に、受信側におけるＮＲＺＩデコード及びビットアンスタッフィングの様子を示す。
【０１５２】
図１６では、図１５と同様に、ＵＳＢのパケット書式ではあり得ないデータではあるが、パケット本体として８バイトの（ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦｈ）のデータが入力された場合について示してある。
【０１５３】
また、図１６において点網掛け部分はその値が不問であることを意味し、斜線網掛け部分はビットスタッフィングにより"０"が挿入されているビットを表す。
【０１５４】
例えば図１６のＤ１に示すようにrx_en_dataとして（１Ｆｈ）が図１２のＮＲＺＩデコーダ１４に入力された場合には、ＮＲＺＩデコーダ１４から出力されるrx_bs_dataはＤ２に示すように（ＤＦｈ）になる。この（ＤＦｈ）は、送信側のビットスタッフィングによりＤ３に示す位置に"０"が挿入されたデータである（図１５のＣ６参照）。
【０１５５】
そして、この（ＤＦｈ）が図１２のビットアンスタッフィング回路１６に入力されると、Ｄ３に示す"０"のビットが削除される。即ち、この場合には、前のクロックサイクルでの末尾の"１"のビットの連続数はＤ４に示すように１であるため、"１"のビットの連続数が５になったところでビットアンスタッフィングにより次の"０"のビットが削除される。これにより、ビットアンスタッフィング回路１６から出力されるrx_dataはＤ５に示すように（ＦＦｈ）になる。
【０１５６】
なお、Ｄ３に示すように"０"のビットが削除されると、データ長が縮んでしまい、データ長が８ビットに満たなくなってしまう。そこで本実施形態では、Ｄ６に示すビットを次のクロックサイクルのデータから繰り上げるようにしている。
【０１５７】
また図１６のＤ７に示すようにrx_en_dataとして（Ｆ０ｈ）がＮＲＺＩデコーダ１４に入力された場合には、ＮＲＺＩデコーダ１４から出力されるrx_bs_dataはＤ８に示すように（ＥＦｈ）になる。この（ＥＦｈ）は、送信側のビットスタッフィングによりＤ９に示す位置に"０"が挿入されたデータである（図１５のＣ１４参照）。
【０１５８】
そして、この（ＥＦｈ）がビットアンスタッフィング回路１６に入力されると、Ｄ９に示す"０"のビットが削除される。即ち、この場合には、前のクロックサイクルでの末尾の"１"のビットの連続数は３（Ｄ６に示すビットが繰り上げられているため）であるため、"１"のビットの連続数が３になったところで次の"０"のビットが削除される。これにより、ビットアンスタッフィング回路１６から出力されるrx_dataはＤ１０に示すように（ＦＦｈ）になる。
【０１５９】
また図１６のＤ１１では、ビットの削除数の累積値（縮みビット数の累積値）が８以上になったため、後段の回路によるrx_dataの取り込み処理が停止される。これは、後段の回路に出力される図１２の信号rx_strbを非アクティブにすることで実現される。
【０１６０】
２．３  シリアル−パラレル変換回路
図１７に、図１２のシリアル−パラレル変換回路１９の詳細な構成例を示す。
【０１６１】
エラスティシティバッファ（elasticity buffer）１４８は、内部装置（データ転送制御装置）と外部装置（バスに接続される外部装置）とのクロック周波数差（クロックドリフト）等を吸収するための回路であり、データ保持レジスタ１５０（データ保持手段）、データステータスレジスタ１５２（データステータス保持手段）、書き込みパルス生成回路１５４（書き込みパルス生成手段）を含む。
【０１６２】
ここでデータ保持（ホールド）レジスタ１５０は、シリアルデータＤＩＮを受け、これを保持する３２ビット幅のレジスタである。
【０１６３】
データステータスレジスタ１５２は、データ保持レジスタ１５０の各ビットのデータのステータスを保持する３２ビット幅のレジスタである。
【０１６４】
書き込みパルス生成回路１５４は、３２ビット幅の書き込みパルス信号WPを生成し、データ保持レジスタ１５０、データステータスレジスタ１５２に出力する回路である。
【０１６５】
ここで、書き込みパルス信号WPは、その各パルスが、サンプリングクロックSCLKの３２クロックサイクル毎（広義にはＪクロックサイクル毎）に周期的にアクティブになると共に、各パルスがアクティブになる期間が１クロックサイクルずつ互いにずれている信号である。データ保持レジスタ１５０は、この書き込みパルス信号WPに基づいて、各ビットのデータを保持する。同様にデータステータスレジスタ１５２も、この書き込みパルス信号WPに基づいて、各ビットのデータのステータスを保持する。
【０１６６】
判断回路１６０（判断手段）は、データ保持レジスタ１５０に保持されるデータが有効（valid）か否かを、複数のビット（例えば８ビット）で構成されるデータセル単位で判断する回路であり、内蔵するステートマシーン１６２に従って動作する。
【０１６７】
より具体的には、判断回路１６０は、データ保持レジスタ１５０の各データセルが有効か否かを示す４ビット幅の信号VALIDや、データ保持レジスタ１５０のオーバフロー時にアクティブになる信号OVFLOWを、データステータスレジスタ１５２から受ける。
【０１６８】
そして、各データセルが有効か否かを判断し、有効なデータセルを選択するための信号SELをセレクタ１６６に出力する。また、データステータスレジスタ１５２に保持されているデータステータスを、データセル単位でクリアするための信号STRBをデータステータスレジスタ１５２に出力する。更に、ＨＳモードでのパケット受信終了時にアクティブになる信号TERMやＨＳモードでの受信動作をイネーブルにする信号HSENBをエラスティシティバッファ１４８に出力する。
【０１６９】
バッファ１６４は、データ保持レジスタ１５０からの３２ビット幅のパラレルデータDPAを受け、６０ＭＨｚのクロックPCLKで同期化しバッファリングしたデータDBUFをセレクタ１６６に出力する。
【０１７０】
セレクタ１６６（出力手段）は、判断回路１６０からの信号SELに基づいて、バッファ１６４からのデータDBUFから、有効なデータセルのデータを選択し、８ビット幅のデータrx_en_dataとして、図１２のＮＲＺＩデコーダ１４に出力する。なお、rx_en_dataが有効か否かを示す信号rx_validは、判断回路１６０から図１２のビットアンスタッフィング回路１６に出力される。
【０１７１】
図１８に、図１７のシリアル−パラレル変換回路１９の動作概念図を示す。
【０１７２】
図１７のシリアル−パラレル変換回路１９では図１８のＫ１〜Ｋ５に示すように、４８０ＭＨｚのSCLK（第１のクロック）で入力されるシリアルデータＤＩＮがデータ保持レジスタ１５０に順次保持される。
【０１７３】
そして図１８のＬ１〜Ｌ５に示すように、データ保持レジスタ１５０に保持されるデータが有効か否か（出力できるデータが揃ったか否か）が、例えば８ビット（広義には複数ビット）で構成されるデータセル単位で判断される。これは、例えば図１７の判断回路１６０が、データステータスレジスタ１５２からの信号VALIDに基づいて判断することで実現される。
【０１７４】
そして図１８のＭ１〜Ｍ５に示すように、有効と判断されたデータセルが、SCLKよりも周波数が低い６０ＭＨｚのPCLK（第２のクロック）でシリアル−パラレル変換回路から出力される。これは、例えば図１７のセレクタ１６６が、判断回路１６０から信号SELに基づいて、DBUFの中から有効なデータセルのデータを選択することで実現される。
【０１７５】
なお、図１８のＭ６に示すように、本実施形態のデータ保持レジスタ１５０（エラスティシティバッファ）はリングバッファ構造になっている。
【０１７６】
図１８に示すように、本実施形態によれば、データセル単位（複数ビット単位）でデータの有効、非有効が判断され、データセル単位でシリアル−パラレル変換回路からデータが出力される。従って、データの有効、非有効の判断やオーバフローエラーの判断等を、例えば周波数が低い６０ＭＨｚのPCLKに基づいて実現できる。従って、微細加工が可能な最新の半導体プロセスを用いることなく、ＵＴＭＩで定義されるエラスティシティバッファの機能を実現できるようになる。
【０１７７】
また、判断回路１６０等は、６０ＭＨｚという低速のクロック周波数で動作すればよいため、クロックのスキューやジッタに対する耐性を高めることができ、データ転送の信頼性を大幅に向上できる。
【０１７８】
２．４  ビットスタッフィング回路
図１９に、図１２のビットスタッフィング回路１０の構成例を示す。
【０１７９】
ビットスタッフィング回路１０は、ビットスタッフィング処理回路２０と、データ記憶回路３２と、データ合成回路３４と、プリセレクタ３６（プリシフター）及びポストセレクタ３８（ポストシフター）を有するセレクタ３５を含む。
【０１８０】
ここで、ビットスタッフィング処理回路２０は、ビット挿入によりあふれたビットを次のクロックサイクルのデータに繰り越すための処理を行うものであり、送信シーケンサ２２、ビットスタッフ位置＆あふれ演算回路２４、あふれ累積値記憶回路２６、連続数演算回路２８、連続数記憶回路３０を含む。
【０１８１】
送信シーケンサ２２は、ビットスタッフィング処理や送信処理のための各種の信号を生成する。具体的には、ビットスタッフィング処理回路２０内の各回路ブロックに対する制御信号を生成する。また、前段の回路からの送信要求信号tx_reqやビットスタッフィングの禁止指示信号dis_bsを受け、送信レディ信号tx_readyを出力する。また、後段のＮＲＺＩエンコーダ（図１２の１２）に対して、tx_bs_dataが有効か否かを表す信号tx_validやクリア信号clearを出力する。
【０１８２】
ビットスタッフ位置＆あふれ演算回路２４は、ビットスタッフ位置（第２の信号レベルのビットの挿入位置）と、ビットスタッフィング（ビット挿入）によりあふれたビットの数を演算する処理を行う。
【０１８３】
あふれ累積値記憶回路２６は、ビットスタッフ位置＆あふれ演算回路２４により演算されたあふれビット数を累積的に加算（減算でもよい）することで得られるあふれ累積値を記憶する。
【０１８４】
本実施形態では、演算されたビットスタッフ位置に基づいて、ビットスタッフィングのための"０"のビットが挿入される。また、記憶されたあふれ累積値に基づいて、出力すべきtx_bs_dataの範囲が決定される。
【０１８５】
連続数演算回路２８は、tx_bs_dataの末尾における"1"のビットの連続数を演算し、この連続数を連続数記憶回路３０が記憶する。
【０１８６】
ビットスタッフ位置＆あふれ演算回路２４は、前回のクロックサイクルにおいて連続数記憶回路３０に記憶された末尾の"1"の連続数に基づいて、ビットスタッフ位置を演算することになる。
【０１８７】
データ記憶回路３２は、１クロックサイクル前のtx_dataの全ビットを記憶する回路である。なお、必要であれば、２クロックサイクル前のtx_dataの一部又は全部のビットや、３〜Ｍ（Ｍ＞４）クロックサイクル前のtx_dataの一部又は全部のビットを記憶するようにしてもよい。
【０１８８】
データ合成回路３４は、データ記憶回路３２に記憶された１クロックサイクル前のtx_dataの全ビットと、現在のクロックサイクルのtx_dataの全ビットとを合成し、１６ビット幅の合成データを出力する。
【０１８９】
プリセレクタ３６は、あふれ累積値記憶回路２６からのあふれ累積値に基づいて、この１６ビット幅の合成データから８ビット幅のデータを選択して、ポストセレクタ３８に出力する。
【０１９０】
ポストセレクタ３８は、プリセレクタ３６からの８ビット幅のデータを受け、ビットスタッフ位置＆あふれ演算回路２４により演算されたビットスタッフ位置に"０"のビットを挿入し、ビット挿入された８ビット幅のtx_bs_dataを出力する。
【０１９１】
次に図２０を用いて、図１９の回路の動作について詳細に説明する。
【０１９２】
例えば図２０のＥ１では、現在のクロックサイクルのtx_dataであるＩ２＝（ＦＦｈ）と、１クロックサイクル前のtx_dataであり、データ記憶回路３２に記憶されているＩ１＝（８０ｈ）とが、データ合成回路３４に入力される。データ合成回路３４は、これらの（ＦＦｈ）と（８０ｈ）からなる合成データをプリセレクタ３６に出力する。
【０１９３】
この時、あふれ累積値記憶回路２６に記憶されるあふれ累積値は図２０のＥ２に示すように０になっている。従って、このあふれ累積値をあふれ累積値記憶回路２６から受けたプリセレクタ３６は、合成データの中から、Ｅ３に示す位置を先頭ビットとする８ビット幅のデータを選択して出力する。
【０１９４】
また、連続数記憶回路３０に記憶される末尾の"１"の連続数は図２０のＥ４、Ｅ５に示すように１であるため、ビットスタッフ位置＆あふれ演算回路２４は、６−１＝５の計算を行い、Ｅ６に示す位置をビットスタッフ位置としてポストセレクタ３８に知らせる。
【０１９５】
すると、プリセレクタ３６からの８ビット幅のデータとビットスタッフ位置＆あふれ演算回路２４からのビットスタッフ位置を受けたポストセレクタ３８は、指定されたビットスタッフ位置に"０"のビットを挿入する。これにより、Ｅ７に示す８ビット幅のデータ（ＤＦｈ）が、Ｅ８に示すようにtx_bs_dataとして出力されるようになる。
【０１９６】
なお、この場合、プリセレクタ３６から出力された８ビット幅のデータのうちＥ９に示すビットは、ビットスタッフィングによりあふれビットになるため、Ｅ１０に示すように次のクロックサイクルのデータに繰り越されることになる。
【０１９７】
図２０のＥ１１では、データ合成回路３４は、Ｉ３＝（ＦＦｈ）とＩ２＝（ＦＦｈ）を合成し、プリセレクタ３６に出力する。
【０１９８】
この時、あふれ累積値は１つ加算されて図２０のＥ１２に示すように１になっている。従って、プリセレクタ３６は、合成データの中から、Ｅ１３に示す位置を先頭ビットとする８ビット幅のデータを選択して出力する。
【０１９９】
また、末尾の"１"の連続数はＥ１４に示すように２であるため、Ｅ１５に示す位置がビットスタッフ位置としてポストセレクタ３８に知らされる。
【０２００】
すると、ポストセレクタ３８は、指定されたビットスタッフ位置に"０"のビットを挿入する。これにより、Ｅ１６に示す（ＥＦｈ）が、Ｅ１７に示すようにtx_bs_dataとして出力されるようになる。
【０２０１】
以上のようにして、ビットスタッフされたtx_bs_dataがクロックサイクル毎に順次出力される。そして、ビットスタッフィングにより"０"のビットが挿入される毎に、あふれ累積値が例えばＥ１８、Ｅ１９、Ｅ２０、Ｅ２１、Ｅ２２に示すように増加して行く。そして、これに伴い、８ビット幅のデータを取り出す位置もＥ２３、Ｅ２４、Ｅ２５、Ｅ２６、Ｅ２７に示すように変化して行く。
【０２０２】
そして、Ｅ２８に示すようにあふれ累積値が８になると、あふれ累積値は０に初期化される（９の場合には１に初期化される）。すると、図１９の送信シーケンサ２２が、前段の回路に出力する送信レディ信号tx_readyを、図２０のＥ２９に示すように１クロックサイクル期間だけ非アクティブにする。これにより、Ｅ３０、Ｅ３１に示すように、tx_dataの入力が、１クロックサイクル期間だけ停止される。また、Ｅ３２、Ｅ３３に示すように、図１９のデータ記憶回路３２へのデータの取り込みも停止される。
【０２０３】
そして、次のＥ３４のクロックサイクルでは、あふれ累積値が０に初期化されているため、Ｅ３５に示す位置から８ビット幅のデータが取り出されることになる。
【０２０４】
以上のようにすることで、本実施形態では、あふれ累積値が８又は９（所与の値）になった場合にも合成データの中から８ビット幅のデータを矛盾無く取り出すことに成功している。
【０２０５】
２．５  ＮＲＺＩエンコーダ
図２１に、図１２のＮＲＺＩエンコーダ１２の構成例を示す。
【０２０６】
ＮＲＺＩエンコーダ１２は、ＮＲＺＩエンコード演算回路５０と末尾ビット記憶回路５２を含む。
【０２０７】
ここで、ＮＲＺＩエンコード演算回路５０は、前段のビットスタッフィング回路１０からのtx_bs_dataと末尾ビット記憶回路５２からのlast1bitを受け、エンコード後のtx_en_dataを出力する回路である。
【０２０８】
末尾ビット記憶回路５２は、tx_en_dataの末尾の１ビットの信号レベルを記憶し、これをlast1bitとしてＮＲＺＩエンコード演算回路５０に出力する回路である。
【０２０９】
なお、末尾ビット記憶回路５２は、前段のビットスタッフィング回路１０からの信号clearがアクティブになるとリセットされる。また、信号tx_validに１が立っていることを条件に、tx_en_dataの末尾の１ビットを記憶する。
【０２１０】
図２２に、ＮＲＺＩエンコード演算回路５０の動作を表すフローチャートを示す。
【０２１１】
まず、前段のビットスタッフィング回路１０からのtx_bs_data[0]（tx_bs_dataのビット０）が１か否かを判断する（ステップＳ１）。
【０２１２】
そして、tx_bs_data[0]＝１の場合には、tx_en_data[0]の信号レベルをlast１bitと同一信号レベルに設定する（ステップＳ２）。例えば図２３のＦ１では、tx_bs_data[0]＝１でありlast１bit＝１であるため、tx_en_data[0]＝１（last１bit＝１と同一信号レベル）になる。
【０２１３】
一方、tx_bs_data[0]＝０の場合には、tx_en_data[0]の信号レベルをlast１bitの反転信号レベルに設定する（ステップＳ３）。例えば図２３のＦ２では、tx_bs_data[0]＝０でありlast１bit＝０であるため、tx_en_data[0]＝１（last１bit＝０の反転信号レベル）になる。
【０２１４】
次に、ｎ＝１に設定し、tx_bs_data[n]が１か否かを判断する（ステップＳ４、Ｓ５）。
【０２１５】
そして、tx_bs_data[n]＝１の場合には、tx_en_data[n]の信号レベルをtx_en_data[n-1]と同一信号レベルに設定する（ステップＳ６）。例えば図２３のＦ３では、tx_bs_data[1]＝１でありtx_en_data[0]＝１であるため、tx_en_data[1]＝１（tx_en_data[0]＝１と同一信号レベル）になる。
【０２１６】
一方、tx_bs_data[n]＝０の場合には、tx_en_data[n]の信号レベルをtx_en_data[n-1]の反転信号レベルに設定する（ステップＳ７）。例えば図２３のＦ４では、tx_bs_data[1]＝０でありtx_en_data[0]＝１であるため、tx_en_data[1]＝０（tx_en_data[0]＝１の反転信号レベル）になる。
【０２１７】
次に、ｎを１つインクリメントする（ステップＳ８）。そして、ステップＳ５〜Ｓ８の処理をｎ＞８になるまで繰り返すことで（ステップＳ９）、全てのtx_en_data[n]を得る。
【０２１８】
図２４に、ビットスタッフィング回路１０、ＮＲＺＩエンコーダ１４において入出力される各種の信号の波形例を示す。なお、図２４のtx_bs_dataは、波形を整えるためにクロックでサンプリングされているため、図２０のtx_bs_dataよりも１クロックサイクルだけ遅れた信号になっている。
【０２１９】
図２４のＧ１、Ｇ２に示すように、あふれ累積値が８又は９になると、送信レディ信号tx_readyが非アクティブになり、tx_dataの入力が１クロックサイクル期間だけ停止する（図２０のＥ２９、Ｅ３０、Ｅ３１参照）。
【０２２０】
また、図２４のＧ３に示すように、ＥＯＰ＝（ＦＥｈ）の入力時にdis_bsがアクティブになり、ビットスタッフィングが禁止される。
【０２２１】
また、Ｇ４、Ｇ５に示すように、送信要求信号tx_reqが非アクティブになってから、例えば２クロックサイクル後に信号clearがアクティブになり、図２１の末尾ビット記憶回路５２がリセットされる。
【０２２２】
また、Ｇ６に示す信号tx_validは、tx_bs_dataが有効な時にだけ１になる。
【０２２３】
２．６  ＮＲＺＩデコーダ
図２５に、図１２のＮＲＺＩデコーダ１４の構成例を示す。
【０２２４】
ＮＲＺＩデコーダ１４は、ＮＲＺＩデコード演算回路６０と末尾ビット記憶回路６２を含む。
【０２２５】
ここで、ＮＲＺＩデコード演算回路６０は、前段のシリアル−パラレル変換回路１９からのrx_en_dataと末尾ビット記憶回路６２からのlast1bitを受け、デコード後のrx_bs_dataを出力する回路である。
【０２２６】
末尾ビット記憶回路６２は、rx_en_dataの末尾の１ビットの信号レベルを記憶し、これをlast1bitとしてＮＲＺＩデコード演算回路６０に出力する回路である。
【０２２７】
なお、末尾ビット記憶回路６２は、信号clearがアクティブになるとリセットされる。また、信号rx_validに１が立っていることを条件に、rx_en_dataの末尾の１ビットを記憶する。
【０２２８】
図２６に、ＮＲＺＩデコード演算回路６０の動作を表すフローチャートを示す。
【０２２９】
まず、前段のシリアル−パラレル変換回路１９からのrx_en_data[0]（rx_en_dataのビット０）の信号レベルがlast1bitの信号レベルと等しいか否かを判断する（ステップＳ１１）。
【０２３０】
そして、rx_en_data[0]の信号レベルがlast1bitと等しい場合には、rx_bs_data[0]＝１にする（ステップＳ１２）。例えば図２７のＧ１では、rx_en_data[0]＝last１bit＝１であるため、rx_bs_data[0]＝１になる。
【０２３１】
一方、rx_en_data[0]の信号レベルがlast1bitと等しくない場合には、rx_bs_data[0]＝０にする（ステップＳ１３）。例えば図２７のＧ２では、rx_en_data[0]＝１、last１bit＝０であるため、rx_bs_data[0]＝０になる。
【０２３２】
次に、ｎ＝１に設定し、rx_en_data[n]の信号レベルがrx_en_data[n-1]の信号レベルに等しいか否かを判断する（ステップＳ１４、Ｓ１５）。
【０２３３】
そして、rx_en_data[n]の信号レベルがrx_en_data[n-1]と等しい場合には、rx_bs_data[n]＝１にする（ステップＳ１６）。例えば図２７のＧ３では、rx_en_data[1]＝rx_en_data[0]＝１であるため、rx_bs_data[1]＝１になる。
【０２３４】
一方、rx_en_data[n]の信号レベルがrx_en_data[n-1]と等しくない場合には、rx_bs_data[n]＝０にする（ステップＳ１７）。例えば図２７のＧ４では、rx_en_data[1]＝０、rx_en_data[0]＝１であるため、rx_bs_data[1]＝０になる。
【０２３５】
次に、ｎを１つインクリメントする（ステップＳ１８）。そして、ステップＳ１５〜Ｓ１８の処理をｎ＞８になるまで繰り返すことで（ステップＳ１９）、全てのrx_bs_data[n]を得る。
【０２３６】
２．７  ビットアンスタッフィング回路
図２８に、図１２のビットアンスタッフィング回路１６の構成例を示す。
【０２３７】
ビットアンスタッフィング回路１６は、ビットアンスタッフィング処理回路７０と、データ記憶回路８２と、データ合成回路８４と、プリセレクタ８６（プリシフター）及びポストセレクタ８８（ポストシフター）を有するセレクタ８５を含む。
【０２３８】
ここで、ビットアンスタッフィング処理回路７０は、ビット削除によるデータ長の縮みにより足りなくなったビットを次のクロックサイクルのデータから繰り上げるための処理を行うものであり、受信シーケンサ７２、ビットアンスタッフ位置＆縮み演算回路７４、縮み累積値記憶回路７６、連続数演算回路７８、連続数記憶回路８０を含む。
【０２３９】
受信シーケンサ７２は、ビットアンスタッフィング処理や受信処理のための各種の信号を生成する。具体的には、ビットアンスタッフィング処理回路７０内の各回路ブロックに対する制御信号を生成する。また、前段のシリアル−パラレル変換回路１９から信号rx_validを受け、信号clear、rx_in、rx_strbを出力する。
【０２４０】
ビットアンスタッフ位置＆縮み演算回路７４は、ビットアンスタッフ位置（第２の信号レベルのビットの削除位置）と、ビットアンスタッフィング（ビット削除）によるデータ長の縮みビット数を演算する処理を行う。
【０２４１】
縮み累積値記憶回路７６は、ビットアンスタッフ位置＆縮み演算回路７４により演算された縮みビット数を初期値から累積的に減算（加算でもよい）することで得られる縮み累積値を記憶する。
【０２４２】
本実施形態では、演算されたビットアンスタッフ位置に基づいて、送信側のビットスタッフィングにより挿入された"０"のビットが削除される。また、記憶された縮み累積値に基づいて、出力すべきrx_dataの範囲が決定される。
【０２４３】
連続数演算回路７８は、ビットアンスタッフされる前のrx_dataの末尾における"1"のビットの連続数（プリセレクタ８６の出力のうちポストセレクタ８８により選択されるデータの末尾における"1"のビットの連続数）を演算し、この連続数を連続数記憶回路８０が記憶する。
【０２４４】
ビットアンスタッフ位置＆縮み演算回路７４は、前回のクロックサイクルにおいて連続数記憶回路８０に記憶された末尾の"1"の連続数に基づいて、ビットアンスタッフ位置を演算することになる。
【０２４５】
データ記憶回路８２は、２クロックサイクル前のrx_bs_dataのbit7（末尾ビット）と１クロックサイクル前のrx_bs_dataの全ビットを記憶する回路である。なお、必要であれば、２クロックサイクル前のrx_bs_dataの全部のビットや、３〜Ｍ（Ｍ＞４）クロックサイクル前のrx_bs_dataの一部又は全部のビットを記憶するようにしてもよい。
【０２４６】
データ合成回路８４は、データ記憶回路８２に記憶された２クロックサイクル前のrx_bs_dataのbit7及び１クロックサイクル前のrx_bs_dataの全ビットと、現在のクロックサイクルのrx_bs_dataの全ビットとを合成し、１７ビット幅の合成データを出力する。
【０２４７】
プリセレクタ８６は、縮み累積値記憶回路７６からの縮み累積値に基づいて、この１７ビット幅の合成データから１０ビット幅のデータを選択して、ポストセレクタ８８に出力する。
【０２４８】
ポストセレクタ８８は、プリセレクタ８６からの１０ビット幅のデータを受け、ビットアンスタッフ位置＆縮み演算回路７４により演算されたビットアンスタッフ位置にある"０"のビットを削除し、ビット削除された８ビット幅のrx_dataを出力する。
【０２４９】
次に図２９を用いて、図２８の回路の動作について詳細に説明する。
【０２５０】
例えば図２９のＨ１では、現在のクロックサイクルのrx_bs_dataであるＩ３＝（ＥＦｈ）と、１クロックサイクル前のＩ２＝（ＤＦｈ）と、２クロックサイクル前のＩ１の末尾ビットである"１”が、データ合成回路８４により合成され、その合成データがプリセレクタ８６に出力される。
【０２５１】
この時、縮み累積値記憶回路７６に記憶される縮み累積値は図２９のＨ２に示すように８（初期値）になっている。従って、この縮み累積値を受けたプリセレクタ８６は、合成データの中から、Ｈ３に示す位置を先頭ビットとする１０ビット幅のデータを選択して出力する。
【０２５２】
また、連続数記憶回路８０に記憶される末尾の"１"の連続数は図２９のＨ４、Ｈ５に示すように１であるため、ビットアンスタッフ位置＆縮み演算回路７４は、６−１＝５の計算を行い、Ｈ６に示す位置をビットアンスタッフ位置としてポストセレクタ８８に知らせる。
【０２５３】
すると、プリセレクタ８６からの１０ビット幅のデータとビットアンスタッフ位置＆縮み演算回路７４からのビットアンスタッフ位置を受けたポストセレクタ８８は、指定されたビットアンスタッフ位置にある"０"のビットを削除する。これにより、Ｈ７に示す８ビット幅のデータ（ＦＦｈ）が、Ｈ８に示すようにrx_dataとして出力されるようになる。
【０２５４】
なお、この場合に、ビット削除により足りなくなったＨ９に示すビットは、データＩ２の次のクロックサイクルのデータＩ３から繰り上げられることになる。
【０２５５】
図２９のＨ１０では、データ合成回路８４は、Ｉ４＝（Ｆ７ｈ）、Ｉ３＝（ＥＦｈ）、Ｉ２の末尾ビットである"1"を合成し、プリセレクタ８６に出力する。
【０２５６】
この時、縮み累積値は１つ減算されてＨ１１に示すように７になっている。従って、プリセレクタ８６は、合成データの中から、Ｈ１２に示す位置を先頭ビットとする１０ビット幅のデータを選択して出力する。
【０２５７】
また、末尾の"１"の連続数はＨ１３に示すように３であるため、Ｈ１４に示す位置がビットアンスタッフ位置としてポストセレクタ８８に知らされる。
【０２５８】
すると、ポストセレクタ８８は、指定されたビットアンスタッフ位置にある"０"のビットを削除する。これにより、Ｈ１５に示す（ＦＦｈ）が、Ｈ１６に示すようにrx_dataとして出力されるようになる。
【０２５９】
以上のようにして、ビットアンスタッフされたrx_dataがクロックサイクル毎に順次出力される。そして、ビットアンスタッフィングにより"０"のビットが削除される毎に縮み累積値が例えばＨ１７、Ｈ１８、Ｈ１９に示すように減少して行く。そして、これに伴い、１０ビット幅のデータを取り出す位置もＨ２０、Ｈ２１、Ｈ２２に示すように変化して行く。
【０２６０】
そして、Ｈ２３に示すように縮み累積値が０になると、縮み累積値は８に初期化される（１の場合には９に初期化される）。すると、図２８の受信シーケンサ７２が、後段の回路に出力する受信ストローブ信号rx_strbを、図２９のＨ２４に示すように１クロックサイクル期間だけ非アクティブにする。これにより、Ｈ２５に示すように、rx_dataの取り込みが、１クロックサイクル期間だけ停止される。
【０２６１】
そして、次のＨ２６のクロックサイクルでは、縮み累積値が８に初期化されているため、Ｈ２７に示す位置から１０ビット幅のデータが取り出されることになる。
【０２６２】
以上のようにすることで、本実施形態では、縮み累積値が０又は１（所与の値）になった場合にも合成データの中から１０ビット幅のデータを矛盾無く取り出すことに成功している。
【０２６３】
図３０に、ＮＲＺＩデコーダ１４、ビットアンスタッフィング回路１６で入出力される各種の信号の波形例を示す。なお、図３０のrx_data、rx_strbは、波形を整えるためにクロックでサンプリングされているため、図２９のrx_data、rx_strbよりも１クロックサイクルだけ遅れた信号になっている。
【０２６４】
図３０のＪ１、Ｊ２に示すように、縮み累積値が８又は９になると、受信ストローブ信号rx_strbが非アクティブになり、rx_dataの取り込みが１クロックサイクル期間だけ停止する（図２９のＨ２４、Ｈ２５参照）。
【０２６５】
また、図２４のＧ３で説明したように送信側ではＥＯＰに対するビットスタッフィング処理が行われない。従って、ＥＯＰを受け取った時に受信側ではビットスタッフィングエラーが生じ、図３０のＪ３に示すように、受信エラー信号rx_errがアクティブになる。即ち、受信側は、ビットスタッフィングエラーを検出することで、ＥＯＰを検出することになる。
【０２６６】
３．電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【０２６７】
例えば図３１（Ａ）に電子機器の１つであるプリンタの内部ブロック図を示し、図３２（Ａ）にその外観図を示す。ＣＰＵ（マイクロコンピュータ）５１０はシステム全体の制御などを行う。操作部５１１はプリンタをユーザが操作するためのものである。ＲＯＭ５１６には、制御プログラム、フォントなどが格納され、ＲＡＭ５１７はＣＰＵ５１０のワーク領域として機能する。ＤＭＡＣ５１８は、ＣＰＵ５１０を介さずにデータ転送を行うためのＤＭＡコントローラである。表示パネル５１９はプリンタの動作状態をユーザに知らせるためのものである。
【０２６８】
ＵＳＢを介してパーソナルコンピュータなどの他のデバイスから送られてきたシリアルの印字データは、データ転送制御装置５００によりパラレルの印字データに変換される。そして、変換後のパラレル印字データは、ＣＰＵ５１０又はＤＭＡＣ５１８により、印字処理部（プリンタエンジン）５１２に送られる。そして、印字処理部５１２においてパラレル印字データに対して所与の処理が施され、プリントヘッダなどからなる印字部（データの出力処理を行う装置）５１４により紙に印字されて出力される。
【０２６９】
図３１（Ｂ）に電子機器の１つであるスキャナの内部ブロック図を示し、図３２（Ｂ）にその外観図を示す。ＣＰＵ５２０はシステム全体の制御などを行う。操作部５２１はスキャナをユーザが操作するためのものである。ＲＯＭ５２６には制御プログラムなどが格納され、ＲＡＭ５２７はＣＰＵ５２０のワーク領域として機能する。ＤＭＡＣ５２８はＤＭＡコントローラである。
【０２７０】
光源、光電変換器などからなる画像読み取り部（データの取り込み処理を行う装置）５２２により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部（スキャナエンジン）５２４により処理される。そして、処理後の画像データは、ＣＰＵ５２０又はＤＭＡＣ５２８によりデータ転送制御装置５００に送られる。データ転送制御装置５００は、このパラレルの画像データをシリアルデータに変換し、ＵＳＢを介してパーソナルコンピュータなどの他のデバイスに送信する。
【０２７１】
図３１（Ｃ）に電子機器の１つであるＣＤ−ＲＷドライブの内部ブロック図を示し、図３２（Ｃ）にその外観図を示す。ＣＰＵ５３０はシステム全体の制御などを行う。操作部５３１はＣＤ−ＲＷをユーザが操作するためのものである。ＲＯＭ５３６には制御プログラムなどが格納され、ＲＡＭ５３７はＣＰＵ５３０のワーク領域として機能する。ＤＭＡＣ５３８はＤＭＡコントローラである。
【０２７２】
レーザ、モータ、光学系などからなる読み取り＆書き込み部（データの取り込み処理を行う装置又はデータの記憶処理を行うための装置）５３３によりＣＤ−ＲＷ５３２から読み取られたデータは、信号処理部５３４に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、ＣＰＵ５３０又はＤＭＡＣ５３８によりデータ転送制御装置５００に送られる。データ転送制御装置５００は、このパラレルのデータをシリアルデータに変換し、ＵＳＢを介してパーソナルコンピュータなどの他のデバイスに送信する。
【０２７３】
一方、ＵＳＢを介して他のデバイスから送られてきたシリアルのデータは、データ転送制御装置５００によりパラレルのデータに変換される。そして、このパラレルデータは、ＣＰＵ５３０又はＤＭＡＣ５３８により信号処理部５３４に送られる。そして、信号処理部５３４においてこのパラレルデータに対して所与の信号処理が施され、読み取り＆書き込み部５３３によりＣＤ−ＲＷ５３２に記憶される。
【０２７４】
なお、図３１（Ａ）、（Ｂ）、（Ｃ）において、ＣＰＵ５１０、５２０、５３０の他に、データ転送制御装置５００でのデータ転送制御のためのＣＰＵを別に設けるようにしてもよい。
【０２７５】
本実施形態のデータ転送制御装置を電子機器に用いれば、ＵＳＢ２．０におけるＨＳモードでのデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、ＣＤ−ＲＷからのデータの読み取りや、ＣＤ−ＲＷへのデータの書き込みを高速に行うことができるようになる。
【０２７６】
また、本実施形態のデータ転送制御装置を電子機器に用いれば、製造コストが安い通常の半導体プロセスでデータ転送制御装置のＩＣを製造できるようになる。従って、データ転送制御装置の低コスト化を図れ、電子機器の低コスト化も図れるようになる。また、データ転送制御の中で高速で動作する部分を少なくすることができるため、データ転送の信頼性を向上でき、電子機器の信頼性も向上できるようになる。
【０２７７】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ（ＣＤ−ＲＯＭ、ＤＶＤ）、光磁気ディスクドライブ（ＭＯ）、ハードディスクドライブ、ＴＶ、ＶＴＲ、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【０２７８】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０２７９】
例えば、本発明のデータ転送制御装置の構成は、図１、図３〜図６、図８〜図１１に示す構成に限定されるものではなく、種々の変形実施が可能である。
【０２８０】
また、Ｋビット単位で行うべき所与の処理は、ＵＳＢにおけるビットスタッフィング、ビットアンスタッフィング、ＮＲＺＩデコード、ＮＲＺＩエンコードに限定されず、ＩＥＥＥ１３９４、ＳＣＳＩ等においてデータ転送のために行われる種々の処理を考えることができる。
【０２８１】
また、本実施形態ではＵＳＢ２．０の規格でデータ転送を行う場合について主に説明したが、本発明はこれに限定されない。例えば、本発明は、ＵＳＢ２．０と同様の思想に基づく規格やＵＳＢ２．０を発展させた規格におけるデータ転送にも適用できる。また、ＩＥＥＥ１３９４、ＳＣＳＩ等の規格や、ＩＥＥＥ１３９４、ＳＣＳＩ等を発展させた規格におけるデータ転送にも適用できる。
【図面の簡単な説明】
【図１】本実施形態のデータ転送制御装置の受信側の構成例を示す図である。
【図２】比較例の構成例を示す図である。
【図３】本実施形態のデータ転送制御装置の受信側の構成例を示す図である。
【図４】本実施形態のデータ転送制御装置の受信側の構成例を示す図である。
【図５】本実施形態のデータ転送制御装置の受信側の構成例を示す図である。
【図６】本実施形態のデータ転送制御装置の送信側の構成例を示す図である。
【図７】比較例の構成例を示す図である。
【図８】本実施形態のデータ転送制御装置の送信側の構成例を示す図である。
【図９】本実施形態のデータ転送制御装置の送信側の構成例を示す図である。
【図１０】本実施形態のデータ転送制御装置の送信側の構成例を示す図である。
【図１１】本実施形態のデータ転送制御装置の全体構成の例を示す図である。
【図１２】本実施形態のデータ転送制御装置の要部の構成例を示す図である。
【図１３】図１３（Ａ）、（Ｂ）は、ＮＲＺＩ及びビットスタッフィングについて説明するための図である。
【図１４】比較例について説明するための図である。
【図１５】送信側におけるビットスタッフィング及びＮＲＺＩエンコードの様子について示す図である。
【図１６】受信側におけるビットアンスタッフィング及びＮＲＺＩデコードの様子について示す図である。
【図１７】シリアル−パラレル変換回路の構成例を示す図である。
【図１８】シリアル−パラレル変換回路の動作を説明するための図である。
【図１９】ビットスタッフィング回路（ビット挿入回路）の構成例を示す図である。
【図２０】ビットスタッフィング回路の動作について説明するための図である。
【図２１】ＮＲＺＩエンコーダの構成例を示す図である。
【図２２】ＮＲＺＩエンコーダの動作について説明するためのフローチャートである。
【図２３】ＮＲＺＩエンコーダの動作について説明するための図である。
【図２４】ビットスタッフィング回路、ＮＲＺＩエンコーダで入出力される各種の信号の波形例である。
【図２５】ＮＲＺＩデコーダの構成例を示す図である。
【図２６】ＮＲＺＩデコーダの動作について説明するためのフローチャートである。
【図２７】ＮＲＺＩデコーダの動作について説明するための図である。
【図２８】ビットアンスタッフィング回路（ビット削除回路）の構成例を示す図である。
【図２９】ビットアンスタッフィング回路の動作について説明するための図である。
【図３０】ビットアンスタッフィング回路、ＮＲＺＩデコーダで入出力される各種の信号の波形例である。
【図３１】図３１（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の内部ブロック図の例である。
【図３２】図３２（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
１０      ビットスタッフィング回路（ビット挿入回路）
１２      ＮＲＺＩエンコーダ
１４      ＮＲＺＩデコーダ
１６      ビットアンスタッフィング回路（ビット削除回路）
１８      パラレル−シリアル変換回路
１９      シリアル−パラレル変換回路
１００    アナログフロントエンド回路
１０２    変換回路（第１の変換回路）
１０４    処理回路（第１の処理回路）
１０６    処理回路（第２の処理回路）
１０８    変換回路（第２の変換回路）
１１０    セレクタ（選択回路）
１１２    変換回路（第２の変換回路）
１１４    セレクタ（選択回路）
１１６    処理回路
１１８    変換回路
１２２    変換回路（第１の変換回路）
１２４    処理回路（第１の処理回路）
１２６    処理回路（第２の処理回路）
１２８    変換回路（第２の変換回路）
１３２    変換回路（第２の変換回路）
１３６    処理回路
１３８    変換回路
１４８    エラスティシティバッファ
１５０    データ保持レジスタ（データ保持手段）
１５２    データステータスレジスタ（データステータス保持手段）
１５４    書き込みパルス生成回路（書き込みパルス生成手段）
１６０    判断回路（判断手段）
１６２    ステートマシーン
１６４    バッファ
１６６    セレクタ（出力手段）
４００    データハンドラ回路
４１０    ＨＳ回路
４２０    ＦＳ回路
４３０    アナログフロントエンド回路
【図１】
0003646644.tif 000002
【図２】
0003646644.tif 000003
【図３】
0003646644.tif 000004
【図４】
0003646644.tif 000005
【図５】
0003646644.tif 000006
【図６】
0003646644.tif 000007
【図７】
0003646644.tif 000008
【図８】
0003646644.tif 000009
【図９】
0003646644.tif 000010
【図１０】
0003646644.tif 000011
【図１１】
0003646644.tif 000012
【図１２】
0003646644.tif 000013
【図１３】
0003646644.tif 000014
【図１４】
0003646644.tif 000015
【図１５】
0003646644.tif 000016
【図１６】
0003646644.tif 000017
【図１７】
0003646644.tif 000018
【図１８】
0003646644.tif 000019
【図１９】
0003646644.tif 000020
【図２０】
0003646644.tif 000021
【図２１】
0003646644.tif 000022
【図２２】
0003646644.tif 000023
【図２３】
0003646644.tif 000024
【図２４】
0003646644.tif 000025
【図２５】
0003646644.tif 000026
【図２６】
0003646644.tif 000027
【図２７】
0003646644.tif 000028
【図２８】
0003646644.tif 000029
【図２９】
0003646644.tif 000030
【図３０】
0003646644.tif 000031
【図３１】
0003646644.tif 000032
【図３２】
0003646644.tif 000033