(57)【要約】【課題】ＣＰＵの負荷を増加させることなく、各パイプの通信状態を監視して、所定時間通信が成立していても必要なデータを転送することができないパイプを切断する通信制御装置を得ること。【解決手段】応答基準時間レジスタ部１３は、Ｎ個のパイプ毎にアドレスとエンドポイント番号と連続ＮＡＫ応答の上限値のフレーム数とＮＡＫの連続を監視するスタートフレーム番号とを格納しておき、プロトコルエンジン１１が発行するトークンパケットの通信先のアドレスとエンドポイント番号に基づいて、通信先のパイプを検索する。応答監視部１４は、応答がＮＡＫの場合、検索したパイプに対応する連続ＮＡＫ応答の上限値フレーム数とスタートフレーム番号とを加算してフレームカウンタ１２が示すフレーム番号とを比較して、フレームカウンタ１２の値が加算した結果より大きい場合、ＣＰＵ１５に通信停止通知を出力する。【選択図】      図１
2004213565.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとパケットを制御するプロトコルエンジンと通信フレームをカウントするフレームカウンタとを設け、ユニバーサル・シリアル・バスインタフェースを用いて接続されるＮ（Ｎは自然数）台の周辺機器と通信を行う通信制御装置において、
前記周辺機器に対応したＮ個のパイプ毎にアドレスとエンドポイント番号とパイプ切断条件のための条件である連続ＮＡＫ応答の上限値フレーム数とＮＡＫの連続を監視するスタートフレーム番号とが格納され、前記プロトコルエンジンが発行するトークンパケットに含まれる通信先のアドレスとエンドポイント番号とに基づいて、前記格納されているＮ個のパイプ毎のアドレスとエンドポイント番号から前記トークンパケットを送信する通信先のパイプを検索する応答基準時間レジスタ部と、
前記トークンパケットに対する応答がＮＡＫの場合には、前記応答基準時間レジスタ部が検索したパイプに対応する前記連続ＮＡＫ応答の上限値フレーム数と前記スタートフレーム番号とを加算した結果と前記フレームカウンタが示す現在の通信フレーム番号とを比較して、前記フレームカウンタが示す現在の通信フレーム番号が前記加算した結果より大きい場合、前記ＣＰＵに通信停止通知を出力し、前記トークンパケットに対する応答がＡＣＫの場合には、前記応答基準時間レジスタ部が検索したパイプに対応する前記スタートフレーム番号を前記フレームカウンタの値に更新する応答監視部と、
を備えることを特徴とする通信制御装置。
【請求項２】
前記ＣＰＵは、
前記応答監視部から通信停止通知を受けた場合、前記トークンパケットに対する応答がＮＡＫであったパイプに対する通信を切断することを特徴とする請求項１に記載の通信制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＵＳＢインタフェースに適用される通信制御装置に関するものであり、特に、ＵＳＢのコントロール転送モードまたはバルク転送モード時の通信を制御する通信制御装置に関するものである。
【０００２】
【従来の技術】
近年、パーソナルコンピュータに周辺機器を接続するためにＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられることが多い。ＵＳＢインタフェースでは、ＵＳＢデバイスが複数のパイプと呼ばれる通信チャネルを用いる。そして、ＵＳＢホストがこれらの複数のパイプに対してフレームを時分割してデータの転送をおこなう。各パイプには、ＵＳＢデバイスのアドレス、エンドポイント番号、ＵＳＢホストとＵＳＢデバイス間の転送方向、転送トランザクション数など、ＵＳＢホストがＵＳＢデバイスと通信を行う際の必要な情報が関連付けられており、ＵＳＢホストは時間軸上のフレームに対して各パイプを割り当てることにより、通信対象となるＵＳＢデバイスを決定する。
【０００３】
ＵＳＢホストにより選択されたパイプに対するデータ転送は、トークンパケット、データパケット、ハンドシェイクパケットとで構成されるトランザクションという処理単位で行われる。ＵＳＢ仕様で規定されている転送方向の内、コントロール転送、バルク転送、インタラプト転送は、通信エラーである場合を除いて、必ず１つのトランザクションに１つのハンドシェイクパケットを有する。
【０００４】
トークンパケットは、パイプのアドレスとパイプのエンドポイント番号と転送方向の情報を有する。データパケットは、トークンパケット指定のデータを有する。ハンドシェイクパケットは、ＵＳＢホストとＵＳＢデバイス内のエンドポイント間での１つの転送データ、すなわち、トークンパケットに対応する応答パケットである。ハンドシェイクパケットには、正常にデータを受信した場合の「ＡＣＫ」と、デバイスエンドポイントが一時的にデータを送受信できない「ＮＡＫ」と、デバイスファンクション要因でデバイスエンドポイントが通信を一時的に停止したいかデータサイズエラーであることを通知する「ＳＴＡＬＬ」とがある。「ＳＴＡＬＬ」を応答したデバイスエンドポイントは、一般的に通信の破綻状態を意味するので、通常の送受信の応答は「ＡＣＫ」または「ＮＡＫ」となる。
【０００５】
このようなＵＳＢインタフェースを用いた通信では、すべての周辺機器であるデバイスエンドポイントはＵＳＢホストにより管理され、デバイスエンドポイント間でのデータ転送や、デバイスエンドポイントからＵＳＢホストに対してのデータ転送を要求することはできない。すなわち、ＵＳＢ通信は、必ずＵＳＢホスト側からの読み出しにしたがって通信を行う。そのため、デバイスエンドポイントに異常があった場合に、どのように通信を終了するかを考えなければならない。
【０００６】
従来技術では、周辺機器がＵＳＢホストと所定時間通信がない場合には、物理的にインタフェースを変更し、ＵＳＢホストに周辺機器がバスから外されたと認識させ、通信を終了する技術が開示されている（たとえば、特許文献１参照）。
【０００７】
【特許文献１】
特開２００１−６７１５６号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、各周辺機器がＵＳＢホストとの通信を監視しなければならないという問題があった。すなわち、全ての周辺機器がＵＳＢホストとの通信を監視する機能を有する必要があるという問題があった。
【０００９】
また、通信プロトコルとして成立するが、ハンドシェイクパケットが「ＮＡＫ」を連続した場合になどに対応することはできないという問題があった。すなわち、コントロール転送またはバルク転送で通信を行う場合、「ＮＡＫ」応答も通信としては成立しており、ＵＳＢホストは「ＮＡＫ」応答に対してそのデバイスエンドポイントのパイプを切替えたり、パイプを切断することができないという問題があった。これにより、任意のエンドポイントのパイプの通信が長くなってしまい、その後のパイプに対する通信が行えなくなる。すなわち、ＮＡＫ応答が発生するとデータの非転送状態がフレーム毎に発生し、通信号率が大きく低下してしまうという問題もあった。
【００１０】
基本的には、ＵＳＢ通信ではデバイスエンドポイント間での通信は行えないことから、「ＮＡＫ」応答をしているデバイスエンドポイントが他のデバイスエンドポイントを介してＵＳＢホストに異常を通知して切断することは、新たな通知方法を構築しなければならない。しかし、その方法を全てのＵＳＢデバイスが有するとは限らないため、長時間「ＮＡＫ」応答しているデバイスエンドポイントのパイプを確実に切断することはできないという問題もあった。
【００１１】
この発明は上記に鑑みてなされたもので、ＣＰＵの負荷を増加させることなく、各パイプの通信状態を監視して、所定時間通信が成立していても必要なデータを転送することができないパイプを切断する通信制御装置を得ることを目的としている。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかる通信制御装置は、ＣＰＵとパケットを制御するプロトコルエンジンと通信フレームをカウントするフレームカウンタとを備え、ユニバーサル・シリアル・バスインタフェースを用いて接続されるＮ（Ｎは自然数）台の周辺機器と通信を行う通信制御装置において、前記周辺機器に対応したＮ個のパイプ毎にアドレスとエンドポイント番号とパイプ切断条件のための条件である連続ＮＡＫ応答の上限値フレーム数とＮＡＫの連続を監視するスタートフレーム番号とが格納され、前記プロトコルエンジンが発行するトークンパケットに含まれる通信先のアドレスとエンドポイント番号とに基づいて、前記格納されているＮ個のパイプ毎のアドレスとエンドポイント番号から前記トークンパケットを送信する通信先のパイプを検索する応答基準時間レジスタ部と、前記トークンパケットに対する応答がＮＡＫの場合には、前記応答基準時間レジスタ部が検索したパイプに対応する前記連続ＮＡＫ応答の上限値フレーム数と前記スタートフレーム番号とを加算した結果と前記フレームカウンタが示す現在の通信フレーム番号とを比較して、前記フレームカウンタが示す現在の通信フレーム番号が前記加算した結果より大きい場合、前記ＣＰＵに通信停止通知を出力し、前記トークンパケットに対する応答がＡＣＫの場合には、前記応答基準時間レジスタ部が検索したパイプに対応する前記スタートフレーム番号を前記フレームカウンタの値に更新する応答監視部とを備えることを特徴とする。
【００１３】
この発明によれば、応答基準時間レジスタ部は、接続された周辺機器に対応したＮ個のパイプ毎にアドレスとエンドポイント番号と連続ＮＡＫ応答の上限値のフレーム数とＮＡＫの連続を監視するスタートフレーム番号とを格納しておき、プロトコルエンジンが発行するトークンパケットに含まれる通信先のアドレスとエンドポイント番号に基づいて、通信先のパイプを検索する。応答監視部は、トークンパケットに対する応答がＮＡＫの場合には、検索したパイプに対応する連続ＮＡＫ応答の上限値フレーム数とスタートフレーム番号とを加算してフレームカウンタが示す現在の通信フレーム番号とを比較する。フレームカウンタが加算した結果より大きい場合、すなわち、ＮＡＫ応答が所定の値以上連続した場合にはＣＰＵに通信停止通知を出力し、応答がＡＣＫの場合には、検索したパイプに対応するスタートフレーム番号をフレームカウンタの値に更新する。
【００１４】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる通信制御装置の好適な実施の形態を詳細に説明する。
【００１５】
図１〜図３を用いてこの発明の実施の形態を説明する。図１は、この発明にかかる通信制御装置の本実施の形態の構成を示すブロック図である。本実施の形態の通信制御装置は、プロトコルエンジン１１と、フレームカウンタ１２と、応答基準時間レジスタ部１３と、応答監視部１４と、ＣＰＵ１５とを備えている。
【００１６】
プロトコルエンジン１１は、ＵＳＢ通信におけるパケット制御、すなわち、トークンパケット発行と、１つのトランザクション終了毎にハンドシェイクパケットの内容がＡＣＫまたはＮＡＫの場合、応答監視部１４に応答通知を出力する。フレームカウンタ１２は、通信を開始してからのフレームの数をカウントする。
【００１７】
応答基準時間レジスタ部１３は、パイプ番号カウンタ１３４と、パイプ情報レジスタ１３０と、ＮＡＫリミットレジスタ１３２と、スタートフレームレジスタ１３１と、エンドポイント情報比較器１３３とを備えている。
【００１８】
パイプ番号カウンタ１３４は、コントロール転送、または、バルク転送方式で通信のスケジューリングがなされたパイプ数（Ｎ個）までカウントする。パイプ情報レジスタ１３０は、通信制御装置が通信を行うパイプ毎にエンドポイント情報（パイプのアドレスとエンドポイント番号）を格納する。ＮＡＫリミットレジスタ１３２は、パイプ毎の通信においてＮＡＫ応答時間の上限値をフレーム数に換算した値を格納する。すなわち、パイプ毎に、ＮＡＫ応答が何フレーム連続したらそのパイプを切断するかのフレーム数を格納する。スタートフレームレジスタ１３１は、パイプ毎に通信の応答監視を開始するフレーム番号を格納する。
【００１９】
パイプ情報レジスタ１３０とＮＡＫリミットレジスタ１３２とスタートフレームレジスタ１３１は、それぞれコントロール転送またはバルク転送方式で通信のスケジューリングがなされたパイプ数、すなわち、Ｎ個のレジスタを有し、パイプ番号カウンタ１３４でカウントされる１からＮに対応してそれぞれのデータを格納する。
【００２０】
エンドポイント情報比較器１３３は、パイプ番号カウンタ１３４のカウント値が示すパイプ情報レジスタ１３０に格納されているアドレスおよびエンドポイント情報と、プロトコルエンジン１１から入力されるアドレスおよびエンドポイント情報とを比較する。
【００２１】
応答監視部１４は、ＮＬレジスタ１４２と、ＳＦレジスタ１４１と、加算器１４０と、リミッタ比較器１４３とを備えている。ＮＬレジスタ１４２は、ＮＡＫリミットレジスタ１３２から入力される値を格納する。ＳＦレジスタ１４１は、スタートフレームレジスタ１３１から入力される値を格納する。加算器１４０は、ＮＬレジスタ１４２の値とＳＦレジスタ１４１の値を加算して、その加算結果をリミッタ比較器１４３に出力する。リミッタ比較器１４３は加算器１４０から入力されるＮＬレジスタ１４２の値とＳＦレジスタ１４１の値との加算結果とフレームカウンタ１２から入力される値とを比較する。
【００２２】
ＣＰＵ１５は、パイプ情報レジスタ１３０、ＮＡＫリミットレジスタ１３２およびスタートフレームレジスタ１３１の初期設定と、パイプの切断処理を行う。
【００２３】
つぎに、図２のフローチャートを参照して、本実施の形態の通信制御装置の動作を説明する。ＣＰＵ１５は、パイプ情報レジスタ１３０、ＮＡＫリミットレジスタ１３２およびスタートフレームレジスタ１３１の初期値を設定する。この初期値は、ＣＰＵ１５が実行するプログラムにより任意の値が設定可能である。応答基準時間レジスタ部１３は、ＣＰＵ１５から応答監視通知を受けるまで待機する（ステップＳ１００）。
【００２４】
ＣＰＵ１５は、ＵＳＢ通信を開始する際に応答監視通知を応答基準時間レジスタ部１３に出力する。応答監視通知を受信すると応答基準時間レジスタ部１３は動作を開始する。プロトコルエンジン１１は、トークンパケットを発行する前に通信するパイプのアドレスとエンドポイント番号、すなわち、通信するパイプのエンドポイント情報をエンドポイント情報比較器１３３に出力する。エンドポイント情報比較器１３３は、パイプ番号カウンタ１３４が示すパイプ情報レジスタ１３０のエンドポイント情報とプロトコルエンジン１１から入力されたエンドポイント情報とを比較する（ステップＳ１１０）。パイプ番号カウンタ１３４が示すパイプ情報レジスタ１３０のエンドポイント情報が、プロトコルエンジン１１から入力されたエンドポイント情報と不一致の場合、エンドポイント情報比較器１３３は、パイプ番号カウンタ１３４をカウントアップして（ステップＳ１２０）、カウントアップしたパイプ番号カウンタ１３４が示すパイプ情報レジスタ１３０のエンドポイント情報とプロトコルエンジン１１から入力されたエンドポイント情報とを比較する。エンドポイント情報比較器１３３は、このような動作を繰り返して、プロトコルエンジン１１から入力されたエンドポイント情報と一致するエンドポイント情報を格納しているパイプ情報レジスタ１３０を検索する。
【００２５】
プロトコルエンジン１１から入力されたエンドポイント情報と、パイプ番号カウンタ１３４が示すパイプ情報レジスタ１３０のエンドポイント情報とが一致すると、エンドポイント情報比較器１３３は、パイプ番号カウンタ１３４のカウントを停止し、ＮＡＫリミットレジスタ１３２とスタートフレームレジスタ１３１に、データ設定を通知する。
【００２６】
データ設定が通知されると、ＮＡＫリミットレジスタ１３２は、パイプ番号カウンタ１３４が示すＮＡＫリミットレジスタ１３２に格納されているフレーム数をＮＬレジスタ１４２に、スタートフレームレジスタ１３１は、パイプ番号カウンタ１３４が示すスタートフレームレジスタ１３１に格納されているフレーム数をＳＦレジスタ１４１に、それぞれ設定する（ステップＳ１３０）。そして、エンドポイント情報比較器１３３は、応答監視部１４に応答監視許可通知を出力する（ステップＳ１４０）。
【００２７】
応答監視許可通知を受けると、応答監視部１４は、監視動作を開始する。プロトコルエンジン１１は、トランザクション終了時に、ハンドシェイクパケットの内容を解析する。このとき、プロトコルエンジン１１は、ＡＣＫまたはＮＡＫの場合、応答監視部１４に応答通知を出力する。プロトコルエンジン１１は、ＳＴＡＬＬまたは無応答やエラー発生時には応答通知を行わない。
【００２８】
プロトコルエンジン１１から入力された応答通知がＮＡＫの場合（ステップＳ１５０，Ｙｅｓ）、加算器１４０は、ＮＬレジスタ１４２の値とＳＦレジスタ１４１の値を加算して（ステップＳ１６０）、その加算結果をリミッタ比較器１４３に出力する。リミッタ比較器１４３は、加算器１４０の出力とフレームカウンタ１２から入力される現在のフレーム値とを比較する（ステップＳ１７０）。そして、フレームカウンタ１２の値が加算結果より大きい場合には、通信停止通知をＣＰＵ１５に出力する（ステップＳ１８０）。通信停止通知を受けるとＣＰＵ１５は、パイプの通信を切断する（ステップＳ１９０）。
【００２９】
フレームカウンタ１２の値が加算結果以下の場合には、パイプを切断するリミット値に達していないため、ＣＰＵ１５に通知せず、監視動作を継続する。
【００３０】
一方、プロトコルエンジン１１から入力された応答通知がＡＣＫの場合（ステップＳ１５０，Ｎｏ）、応答監視部１４は、スタートフレームレジスタ１３１にレジスタ更新要求通知を出力する（ステップＳ２００）。レジスタ更新要求通知を受けると、パイプ番号カウンタ１３４が示すスタートフレームレジスタ１３１をフレームカウンタ１２の値に更新する（ステップＳ２１０）。すなわち、ＡＣＫを受信したことにより、ＮＡＫを監視するフレームのスタート値を現在のフレームから監視するように更新する。
【００３１】
図３は、この発明における通信制御装置とパイプ１〜４を使用したデバイスエンドポイントとの通信を示すシーケンス図である。図３において、Ｔ０，Ｔ１，ＴＭ，ＴＰは、時間軸３０に対するフレーム１，２，…，Ｍ，Ｐにおけるトランザクションと転送データパケット数を示している。
【００３２】
フレーム１の区間３１において、プロトコルエンジン１１は、パイプ１にトランザクションＴ０を発行し、パイプ１のデバイスエンドポイントからＡＣＫを受信している。したがって、パイプ１に対応するスタートフレームレジスタ１３１の値は現在のフレームの値である「１」に更新される。パイプ２についても同様にトランザクションＴ０を発行し、ＡＣＫを受信しているので、パイプ２に対応するスタートフレームレジスタ１３１の値は「１」に更新される。
【００３３】
フレーム１の区間３２において、プロトコルエンジン１１は、パイプ３にトランザクションＴ０を発行する。ここで、パイプ３のデバイスエンドポイントからＮＡＫを受信したため、区間３２の間、すなわち、フレーム１が終了するかパイプ３のデバイスエンドポイントからＡＣＫを受信するまでプロトコルエンジン１１はパイプ３にトランザクションＴ０を発行する。この場合は、パイプ３のデバイスエンドポイントの応答はＮＡＫであるため、区間３２の間パイプ３との通信が行われる。
【００３４】
パイプ３のデバイスエンドポイントからＮＡＫを受信したため、応答監視部１４は、パイプ３に対応したＮＡＫリミットレジスタ１３２の値とスタートフレームレジスタ１３１の値とを加算した結果とフレームカウンタ１２の値とを比較する。ここでは、フレームカウンタ１２の値が加算結果以下となっているためＣＰＵに通知を行わない。また、パイプ３に対応するスタートフレームレジスタ１３１の値も更新されず、初期設定のままとなる。
【００３５】
フレーム２の区間３３において、プロトコルエンジン１１は、パイプ１にトランザクションＴ１を発行し、パイプ１のデバイスエンドポイントからＡＣＫを受信している。したがって、パイプ１に対応するスタートフレームレジスタ１３１の値は現在のフレームの値である「２」に更新される。パイプ２についても同様にトランザクションＴ１を発行し、ＡＣＫを受信しているので、パイプ２に対応するスタートフレームレジスタ１３１の値は「２」に更新される。
【００３６】
フレーム１の区間３４において、プロトコルエンジン１１は、パイプ３に再度トランザクションＴ０を発行する。パイプ３のデバイスエンドポイントの応答はＮＡＫであるため、区間３２と同様に区間３２の間パイプ３と通信を繰り返す。
【００３７】
フレームＭの区間３５において、パイプ１，２の通信は、それぞれのデバイスエンドポイントからＡＣＫを受信しており、データパケットＭ個が正常に転送されている。しかし、フレームＭの区間３６においては、パイプ３のデバイスエンドポイントからＮＡＫを受信しており、フレーム１からデータ転送は成立していない。また、パイプ３のデータ転送が成立していないため、パイプ４との通信は待ち状態となったままである。すなわち、フレーム１からフレームＭまでの間パイプ４との通信は１度も行われていない。
【００３８】
ここで、パイプ３に対応するＮＡＫリミットレジスタ１３２の値とスタートフレームレジスタ１３１の値とを加算した値よりフレームカウンタ１２の値が大きくなったとする。すなわち、ＮＡＫリミットレジスタ１３２の値とスタートフレームレジスタ１３１の値とを加算した値が現在のフレームＭより小さくなったことをリミッタ比較器１４３が検出する。これにより、リミッタ比較器１４３は、ＣＰＵ１５にパイプ３の通信停止通知を出力する。ＣＰＵ１５は、この通知を受けて、パイプ３の通信を停止する。
【００３９】
フレームＰの区間３７において、プロトコルエンジン１１は、パイプ１にトランザクションＴＰを発行し、パイプ１のデバイスエンドポイントからＡＣＫを受信している。したがって、パイプ１に対応するスタートフレームレジスタ１３１の値は現在のフレームの値である「Ｐ」に更新される。パイプ２についても同様にトランザクションＴＰを発行し、ＡＣＫを受信しているので、パイプ２に対応するスタートフレームレジスタ１３１の値は「Ｐ」に更新される。
【００４０】
ここで、パイプ３に対する通信は停止されているので、プロトコルエンジン１１は、パイプ４にトランザクションＴ０を発行する。パイプ４のデバイスエンドポイントからＮＡＫを受信したため、再度、トランザクションＴ０を発行する。２度目に発行したトランザクションＴ０に対するパイプ４のデバイスエンドポイントからの応答はＡＣＫであるので、パイプ４に対応するスタートフレームレジスタ１３１の現在のフレームの値である「Ｐ」に更新される。
【００４１】
このように本実施の形態では、応答基準時間レジスタ部１３は、接続された周辺機器に対応したＮ個のパイプ毎にアドレスとエンドポイント番号と連続ＮＡＫ応答の上限値のフレーム数とＮＡＫの連続を監視するスタートフレーム番号とを格納しておき、プロトコルエンジン１１が発行するトークンパケットに含まれる通信先のアドレスとエンドポイント番号に基づいて、通信先のパイプを検索する。応答監視部１４は、トークンパケットに対する応答がＮＡＫの場合には、検索したパイプに対応する連続ＮＡＫ応答の上限値フレーム数とスタートフレーム番号とを加算してフレームカウンタ１２が示す現在の通信フレーム番号とを比較して、フレームカウンタが加算した結果より大きい場合、すなわち、ＮＡＫ応答が所定の値以上連続した場合にはＣＰＵ１５に通信停止通知を出力し、応答がＡＣＫの場合には、検索したパイプに対応するスタートフレーム番号をフレームカウンタ１２の値に更新する。これにより、周辺機器に特別な機能を追加することなく、ＣＰＵ１５の負荷も増加させずに各パイプとの通信を監視することができる。
【００４２】
また、ＣＰＵ１５は、通信停止通知を受けるとトークンパケットに対する応答がＮＡＫであったパイプに対する通信を切断するようにしているため、ＮＡＫ応答が連続しているパイプを確実に切断することができ、通信効率の低下を防ぐことができる。
【００４３】
【発明の効果】
以上説明したように、この発明にかかる通信制御装置によれば、応答基準時間レジスタ部は、接続された周辺機器に対応したＮ個のパイプ毎にアドレスとエンドポイント番号と連続ＮＡＫ応答の上限値のフレーム数とＮＡＫの連続を監視するスタートフレーム番号とを格納しておき、プロトコルエンジンが発行するトークンパケットに含まれる通信先のアドレスとエンドポイント番号に基づいて、通信先のパイプを検索する。応答監視部は、トークンパケットに対する応答がＮＡＫの場合には、検索したパイプに対応する連続ＮＡＫ応答の上限値フレーム数とスタートフレーム番号とを加算してフレームカウンタが示す現在の通信フレーム番号とを比較する。フレームカウンタの値が加算した結果より大きい場合、すなわち、ＮＡＫ応答が所定の値以上連続した場合にはＣＰＵに通信停止通知を出力し、応答がＡＣＫの場合には、検索したパイプに対応するスタートフレーム番号をフレームカウンタの値に更新する。これにより、周辺機器に特別な機能を追加することなく、ＣＰＵの負荷も増加させずに各パイプとの通信を監視することができる。
【図面の簡単な説明】
【図１】この発明における通信制御装置の構成を示すブロック図である。
【図２】この発明における通信制御装置の動作を説明するためのフローチャートである。
【図３】この発明における通信制御装置とパイプ１〜４を使用したデバイスエンドポイントとの通信を示すシーケンス図である。
【符号の説明】
１１  プロトコルエンジン、１２  フレームカウンタ、１３  応答基準時間レジスタ部、１４  応答監視部、１３０  パイプ情報レジスタ、１３１  スタートフレームレジスタ、１３２  ＮＡＫリミットレジスタ、１３３  エンドポイント情報比較器、１３４  パイプ番号カウンタ、１４０  加算器、１４１  ＳＦレジスタ、１４２  ＮＬレジスタ、１４３  リミッタ比較器。
【図１】
2004213565.tif 000003
【図２】
2004213565.tif 000004
【図３】
2004213565.tif 000005