(57)【要約】【課題】周辺機器のクロック周波数の精度に依存せずＳＯＦパケットの正常な補間動作を行う。【解決手段】ホストから受信したフレームの最初に位置するＳＯＦパケットのパケットＩＤをトリガとしてカウンタをセットし、ＳＯＦパケットの欠落または破損を補間してＳＯＦ出力信号を取り出すＳＯＦパケット補間制御回路において、パケットＩＤ受信によるトリガ発生ごとにＳＯＦパケットの間隔に合わせたカウント値を設定し、設定されたカウント値に合わせたＳＯＦ出力信号を取り出す。【選択図】        図１
2004350231.tif 000002
【特許請求の範囲】
【請求項１】
ホストから受信したフレームの最初に位置するＳＯＦパケットのパケットＩＤをトリガとしてカウンタをセットし、ＳＯＦパケットの欠落または破損を補間してＳＯＦ出力信号を取り出すＳＯＦパケット補間制御回路において、前記パケットＩＤ受信によるトリガ発生ごとにＳＯＦパケットの間隔に合わせたカウント値を設定し、設定されたカウント値に合わせたＳＯＦ出力信号を取り出すようにしたことを特徴とするＳＯＦパケット補間制御回路。
【請求項２】
ホストからのＳＯＦパケットを異常受信した場合に、マスク信号を発生してＳＯＦ出力信号を抑える回路を有することを特徴とする請求項１記載のＳＯＦパケット補間制御回路。
【請求項３】
カウンタを、任意の値からマイナス方向の補正カウンタとして動作させるようにしたことを特徴とする請求項１記載のＳＯＦパケット補間制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）で使用されるホストから送信されたＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）パケットの破損または欠落に対して周辺機器側で補間制御するＳＯＦパケット補間制御回路に関するものである。
【０００２】
【従来の技術】
近年パーソナルコンピュータ（以下、パソコンとする。）の普及に伴い、各種周辺機器とのデータのやり取りを行うインタフェース規格として、ＵＳＢが開発され採り入れられ、デファクトスタンダードとなった。周知のようにＵＳＢは、それまで多種多様なコネクタを用いていたインタフェースを統合し、１種類のコネクタにより様々な周辺機器を簡単にパソコンに接続できるようにし、かつ多くの便利な機能を備えたものである。ＵＳＢは、パソコン本体に搭載されるホスト、周辺機器との接続をコントロールするハブ（以下、ＨＵＢとする。）および周辺機器に搭載されるファンクションからなり、データ転送はフレームに分割して行う。フレームの単位時間は、ロースピードモードとフルスピードモードで１ｍｓ（ＵＳＢ１．０およびＵＳＢ１．１規格の場合）、ハイスピードモードで１２５μｓ（ＵＳＢ２．０規格の場合）である。フレームは、ＳＯＦ、トークン、データ、ハンドシェイクおよびスペシャルからなる複数のパケットで構成される。ＳＯＦパケットは、各フレームの最初に位置し、ホストが発行するフレームの始まりを示すパケットである（例えば、非特許文献１参照）。なお、他のパケットについては、この発明とは直接拘わらないので、ここでは説明を省略する。
【０００３】
周辺機器（ＵＳＢのデバイス側）がＨＵＢに接続されると、パソコン（ＵＳＢのホスト側）において周辺機器が接続されたことを認識し、認識した周辺機器に対してデータ転送が行われる。周辺機器では、ホストからの転送データから自己が必要とするパケットを抽出するために、各受信フレームの最初に存在するＳＯＦパケットを認識して用いる。しかし、ＳＯＦパケットに破損または欠落が起こると認識できず、データ受信が正常に行えないことになる。そのため、破損または欠落に対してＳＯＦパケットを補間する回路が用いられている。
【０００４】
図４は従来のＳＯＦパケット補間制御回路の構成を示すブロック図である。
図において、ＳＯＦパケットのパケットＩＤ（ＰＩＤ：ホストのみが発行するＩＤで、ＳＯＦパケットの最初に位置する。）受信により、入力端子１に与えられる１クロック分の“Ｈ”信号Ｌ１がＯＲゲート１３に入力される。補間カウンタ１４からの信号Ｌ１４−１は、計数値Ｌ１４が“０”の時に“Ｈ”となる信号である。補間カウンタ１４はＯＲゲート１３の出力Ｌ１３が“Ｈ”の時、クロックの立ち上がりエッジでカウンタ基準値デコーダ１５の出力Ｌ１５の値を読み込み、カウントダウンする。入力端子２に与えられるフルスピード／ハイスピード識別信号Ｌ２により、カウンタ基準値デコーダ１５は、ハイスピードなら１２５μｓ、またフルスピードなら１ｍｓの値を出力する。ＳＯＦ出力信号生成回路（レジスタ）１６は、ＯＲゲート１３の出力Ｌ１３が“Ｈ”の時、エッジで“Ｌ”となり、Ｌ１４−２が“Ｈ”の時、クロックの立ち上がりエッジで“Ｈ”となるＳＯＦ出力信号Ｌ１６を出力する。ＳＯＦ出力信号Ｌ１６は、出力端子１２から取り出される。Ｌ１４−２は、Ｌ１４を６６７ｎｓ分カウントしたときに“Ｈ”となる信号である。
【０００５】
次に補間動作について説明する。
図４のＳＯＦパケット補間制御回路は、周辺機器のクロックに合わせた間隔で補間を行っていた。図５および図６は、クロックに４８ＭＨｚを使用した場合のフルスピード動作を示すタイムチャートである。なお、リセット動作は行われているものとする。先ず、ＳＯＦパケットが補間カウンタより速い場合の動作を図５のタイムチャートで説明する。
Ｔ１において、ＯＲゲート１３の出力Ｌ１３として“Ｈ”が出力されており、クロックの立ち上がりエッジによって補間カウンタ１４は、カウンタ基準値デコーダ１５の出力Ｌ１５の計数値「４７９９９」を読み込み、ダウンカウントを開始する、このとき、ＳＯＦ出力信号生成回路１６はＳＯＦ出力信号Ｌ１６として“Ｌ”を出力する。なお、タイムチャートでは破断線のためＳＯＦ出力信号Ｌ１６の立ち上がりタイミングを記載していないが、Ｌ１６の立下りから３２クロック経つと“Ｈ”になる。以下同様とする。
【０００６】
Ｔ２は、ＳＯＦパケットが欠落している部分の動作を表している。補間カウンタ１４の計数値Ｌ１４の「０」によりＬ１４−１が“Ｈ”となり、ＯＲゲート１３の出力Ｌ１３の値が“Ｈ”となる。クロックの立ち上がりエッジによって補間カウンタ１４は、計数値Ｌ１５の「４７９９９」を読み込み、ダウンカウントを開始する。このとき、ＳＯＦ出力信号生成回路１６はＳＯＦ出力信号Ｌ１６として“Ｌ”を出力する。
【０００７】
次に、ＳＯＦパケットが補間カウンタより遅い場合の動作を図６のタイムチャートで説明する。
Ｔ１において、ＯＲゲート１３の出力Ｌ１３として“Ｈ”が出力されており、このときのクロックの立ち上がりエッジによって補間カウンタ１４は、計数値Ｌ１５の「４７９９９」を読み込み、ダウンカウントを開始する。このとき、ＳＯＦ出力信号生成回路１６はＳＯＦ出力信号Ｌ１６として“Ｌ”を出力する。Ｔ２において、補間カウンタ１４の計数値Ｌ１４の「０」によりＬ１４−１が“Ｈ”となり、ＯＲゲート１３の出力Ｌ１３の値が“Ｈ”となる。このときのクロックの立ち上がりエッジによって補間カウンタ１４は、計数値Ｌ１５の「４７９９９」を読み込み、ダウンカウントを開始する。このとき、ＳＯＦ出力信号生成回路１６はＳＯＦ出力信号Ｌ１６として“Ｈ”を出力する。Ｔ３において、ＯＲゲート１３の出力Ｌ１３として“Ｈ”が入力されており、このときのクロックの立ち上がりエッジによって補間カウンタ１４は、計数値Ｌ１５の「４７９９９」を読み込み、ダウンカウントを開始する。このとき、ＳＯＦ出力信号生成回路１６はＳＯＦ出力信号Ｌ１６として“Ｌ”を継続する。
【０００８】
Ｔ４は、ＳＯＦパケットが欠落している部分の動作を表している。補間カウンタ１４の計数値Ｌ１４の「０」によりＬ１４−１が“Ｈ”となり、ＯＲゲート１３の出力Ｌ１３が“Ｈ”となる。クロックの立ち上がりエッジによって補間カウンタ１４は、計数値Ｌ１５の「４７９９９」を読み込み、ダウンカウントを開始する。このとき、ＳＯＦ出力信号生成回路１６はＳＯＦ出力信号Ｌ１６として“Ｌ”を出力する。
【０００９】
【非特許文献１】
鈴木一海、五十嵐顕寿著「最新技術解説  入門  ＵＳＢ」技術評論社、平成１３年４月２５日
【００１０】
【発明が解決しようとする課題】
従来のＳＯＦパケット補間制御回路は、以上のように周辺機器のクロックによって一定の間隔で補間していたため、周辺機器のクロック周波数の精度によっては、正常な補間動作が行えない場合が起きるという課題があった。
【００１１】
この発明は上記のような課題を解決するためになされたもので、周辺機器のクロック周波数の精度に依存せずＳＯＦパケットの正常な補間動作を行うＳＯＦパケット補間制御回路を得ることを目的とする。
【００１２】
【課題を解決するための手段】
この発明に係るＳＯＦパケット補間制御回路は、ホストから受信したフレームの最初に位置するＳＯＦパケットのパケットＩＤをトリガとしてカウンタをセットし、ＳＯＦパケットの欠落または破損を補間してＳＯＦ出力信号を取り出すＳＯＦパケット補間制御回路において、パケットＩＤ受信によるトリガ発生ごとにＳＯＦパケットの間隔に合わせたカウント値を設定し、設定されたカウント値に合わせたＳＯＦ出力信号を取り出すようにしたものである。
【００１３】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるＳＯＦパケット補間制御回路の構成を示すブロック図である。
図において、ＳＯＦパケットのＰＩＤ受信により、入力端子１に与えられるＳＯＦ受信信号Ｌ１の１クロック分の“Ｈ”信号がＯＲゲート３に入力される。Ｌ４−１は、補正カウンタ（アップカウンタ）５の計数値Ｌ４が「０」の時に“Ｈ”となる信号である。補間カウンタ４は、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジで補間カウンタ値計算器（加・減算器）９の値Ｌ９を読み込み、カウントダウンする。補正カウンタ５は、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジでカウントアップを開始し、１μｓ以上カウントし、停止する。補正値計算器（加・減算器）６は、前回補正値記憶回路（レジスタ）７の出力Ｌ７に対して補正カウンタ（アップカウンタ）５の計数値Ｌ５を加算し、補間カウンタ（ダウンカウンタ）４の計数値Ｌ４−３を減算し、計算値Ｌ６を出力する。計数値Ｌ４−３は、Ｌ４のＬ５最大の値から０までの値である。前回補正値記憶回路７は、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジで補正値計算器６の計算値Ｌ６を取り込み、出力する。カウンタ基準値デコーダ８は、入力端子２に与えられるフルスピード／ハイスピード識別信号Ｌ２により、ハイスピードなら出力Ｌ８として１２５μｓを、またフルスピードなら１ｍｓの値を出力する。補間カウンタ値計算器９は、カウンタ基準値デコーダ８の出力Ｌ８に補正値計算器６の計算値Ｌ６を加算した値を出力する。ＳＯＦ出力信号生成回路１０は、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジでＳＯＦ出力信号Ｌ１０として“Ｌ”を出力し、またＬ４−２が“Ｈ”の時、クロックの立ち上がりエッジでＳＯＦ出力信号Ｌ１０として“Ｈ”を出力端子１２に出力する。Ｌ４−２は、Ｌ４が６６７ｎｓ分カウントしたときに“Ｈ”となる信号である。また、ＯＲゲート３の出力Ｌ３と補間カウンタ４の出力Ｌ４−４がマスク信号生成回路２２に与えられ、その出力のマスク信号Ｌ１２でＳＯＦ出力信号生成回路１０を制御するようにしている。なお、図で、１１は補間制御回路に相当する回路である。
【００１４】
次に補間動作について説明する。図２および図３はこの発明の実施の形態１に係るＳＯＦパケット補間制御回路の動作を示すタイムチャートで、クロックに４８ＭＨｚを使用した場合のフルスピード動作を示している。なお、リセット動作は行われているものとする。また、カウンタ基準値デコーダ８のカウンタ基準値Ｌ８は、クロック周波数とフルスピード／ハイスピードモードにより一定の値のため、この図では記載していないが、この例では「４７９９９」となる。
【００１５】
先ず、ＳＯＦパケットが補間カウンタより速い場合の動作を図２で説明する。
Ｔ１において、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジによって補間カウンタ４は、補間カウンタ値計算器９の計算値Ｌ９の「４７９９９」を読み込み、ダウンカウントを開始する。また、補正カウンタ５もアップカウントを開始し、前回補正値記憶回路７は補正計算器６の計算値Ｌ６の「０」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”を出力する。なお、タイムチャートでは、破断線のためＳＯＦ出力信号Ｌ１０の立ち上がりタイミングは記載していないが、Ｌ１０の立下りから３２クロック経つと“Ｈ”になる。以下同様とする。また、Ｔ２において、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジによって補間カウンタ４は補間カウンタ値計算器９の計算値Ｌ９の「４７９９６」を読み込み、ダウンカウントを開始する。また、補正カウンタ５もアップカウントを開始し、前回補正値記憶回路７は補正値計算器６の計算値Ｌ６の「−３」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”を出力する。ここで、前回補正値記憶回路７に取り込んだ値「−３」がホストのＳＯＦパケット出力と周辺機器のクロック周波数による１ｍｓの間隔の誤差である。
【００１６】
Ｔ３は、ＳＯＦパケットが欠落している部分の動作を表している。補間カウンタ４の計数値Ｌ４の「０」によりＬ４−１が“Ｈ”となり、クロックの立ち上がりエッジで補間カウンタ４は補間カウンタ値計算器９の計算値Ｌ９の「４７９９６」を読み込み、ダウンカウントを開始する。また、補正カウンタ５もアップカウントを開始し、前回補正値記憶回路７は計算値Ｌ６の「−３」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”を出力する。
【００１７】
次に、ＳＯＦパケットが補間カウンタより遅い場合の動作を図３のタイムチャートで説明する。
Ｔ１において、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジによって補間カウンタ４は、補間カウンタ値計算器９の計算値Ｌ９の「４７９９９」を読み込み、ダウンカウントを開始する。また、補正カウンタ５もアップカウントを開始し、前回補正値記憶回路７は補正計算器６の計算値Ｌ６の「０」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”を出力する。Ｔ２において、補間カウンタ４の計数値Ｌ４の「０」によりＬ４−１が“Ｈ”となり、クロックの立ち上がりエッジで補間カウンタ４は補間カウンタ値計算器９の計算値Ｌ９の「４７９９９」を読み込み、ダウンカウントを開始する。また、補正カウンタ５もアップカウントを開始し、前回補正値記憶回路７は補正値計算器６の計算値Ｌ６の値「０」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”を出力する。Ｔ３において、ＯＲゲート３の出力Ｌ３が“Ｈ”の時、クロックの立ち上がりエッジによって補間カウンタ４は補間カウンタ値計算器９の計算値Ｌ９の「４８００３」を読み込み、ダウンカウントを開始する。また、補正カウンタ５はアップカウントをやり直し、前回補正値記憶回路７は補正値計算器６の計算値Ｌ６の「４」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”出力を継続する。ここで、前回補正値記憶回路７に取り込んだ値「４」がホストのＳＯＦパケット出力の間隔と周辺機器のクロック周波数による１ｍｓの間隔の誤差である。
【００１８】
Ｔ４は、ＳＯＦパケットが欠落した部分の動作を表している。補間カウンタ４の計数値Ｌ４の「０」によりＬ４−１が“Ｈ”となり、クロックの立ち上がりエッジで補間カウンタ４は補間カウンタ値計算器９の計算値Ｌ９の「４８００３」を読み込み、ダウンカウントを開始する。また、補正カウンタ５もアップカウントを開始し、前回補正値記憶回路７は計算値Ｌ６の「４」を取り込む。このとき、ＳＯＦ出力信号生成回路１０はＳＯＦ出力信号Ｌ１０として“Ｌ”を出力する。
【００１９】
一方、マスク信号生成回路２２の出力Ｌ１２は、通常、補間カウンタ４の任意の値で“Ｌ”となっている。ホストからのＳＯＦパケットの連続受信などの異常が発生する場合、ＯＲゲート３の出力Ｌ３が“Ｈ”となると、出力Ｌ１２は“Ｈ”となり、ＳＯＦ出力信号Ｌ１０をマスクするようＳＯＦ出力信号生成回路１０を制御する。したがって、ＳＯＦ出力信号Ｌ１０が異常出力となるのを防止することができる。
なお、カウンタ４を、任意の値からマイナス方向の補正カウンタとして動作させるようにしてもよく、その場合、補正カウンタ５を省略できるので、回路構成をその分簡略化することができる。
【００２０】
【発明の効果】
以上のように、この発明によれば、ホストから受信したフレームの最初に位置するＳＯＦパケットのパケットＩＤをトリガとしてカウンタをセットし、ＳＯＦパケットの欠落または破損を補間してＳＯＦ出力信号を取り出すＳＯＦパケット補間制御回路において、パケットＩＤ受信によるトリガ発生ごとにＳＯＦパケットの間隔に合わせたカウント値を設定し、設定されたカウント値に合わせたＳＯＦ出力信号を取り出すように構成したので、周辺機器のクロック周波数の精度が悪くても、補間カウンタの値を調整することで、ホストのＳＯＦパケット間隔に近い補間が行える効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるＳＯＦパケット補間制御回路の構成を示すブロック図である。
【図２】この発明の実施の形態１に係るＳＯＦパケット補間制御回路の動作の一態様を示すタイムチャートである。
【図３】この発明の実施の形態１に係るＳＯＦパケット補間制御回路の動作の他の態様を示すタイムチャートである。
【図４】従来のＳＯＦパケット補間制御回路の構成を示すブロック図である。
【図５】従来のＳＯＦパケット補間制御回路の動作の一態様を示すタイムチャートである。
【図６】従来のＳＯＦパケット補間制御回路の動作の他の態様を示すタイムチャートである。
【符号の説明】
１，２  入力端子、３  ＯＲゲート、４  補間カウンタ（ダウンカウンタ）、５  補正カウンタ（アップカウンタ）、６  補正値計算器（加・減算器）、７  前回補正値記憶回路（レジスタ）、８  カウンタ基準値デコーダ、９  補間カウンタ値計算器（加・減算器）、１０  ＳＯＦ出力信号生成回路（レジスタ）、１２  出力端子。
【図１】
2004350231.tif 000003
【図２】
2004350231.tif 000004
【図３】
2004350231.tif 000005
【図４】
2004350231.tif 000006
【図５】
2004350231.tif 000007
【図６】
2004350231.tif 000008