JP2004062748A - 通信制御システム、通信制御装置、通信制御方法、及び制御プログラム - Google Patents
通信制御システム、通信制御装置、通信制御方法、及び制御プログラム Download PDFInfo
- Publication number
- JP2004062748A JP2004062748A JP2002223144A JP2002223144A JP2004062748A JP 2004062748 A JP2004062748 A JP 2004062748A JP 2002223144 A JP2002223144 A JP 2002223144A JP 2002223144 A JP2002223144 A JP 2002223144A JP 2004062748 A JP2004062748 A JP 2004062748A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- version
- usb
- negotiation
- format
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
【課題】二つの電子機器共にUSB2.0の通信能力を具備している場合に、何らかの原因で一方側がUSB1.1での通信を要望しているとき、USB1.1で両者間の通信を行うことを可能にする通信制御システム等を提供する。
【解決手段】ホスト側がUSB1.1での通信を要望しているとき、ネゴシエーションの結果がUSB2.0であれば、ホストはターゲットに対して、次回のネゴシエーションでは例えUSB2.0の通信能力を具備していてもUSB1.1の通信能力しか明示しないことを指示し、その指示を受けたターゲットは、次のネゴシエーションでは例えUSB2.0の通信能力を具備していてもUSB1.1の通信能力しか明示しないことにより、ネゴシエーションの結果、強制的にUSB1.1が選択されるようにする。
【選択図】 図4
【解決手段】ホスト側がUSB1.1での通信を要望しているとき、ネゴシエーションの結果がUSB2.0であれば、ホストはターゲットに対して、次回のネゴシエーションでは例えUSB2.0の通信能力を具備していてもUSB1.1の通信能力しか明示しないことを指示し、その指示を受けたターゲットは、次のネゴシエーションでは例えUSB2.0の通信能力を具備していてもUSB1.1の通信能力しか明示しないことにより、ネゴシエーションの結果、強制的にUSB1.1が選択されるようにする。
【選択図】 図4
Description
【0001】
【発明の属する技術分野】
本発明は、二つの電子機器間で通信を行う際の通信プロトコルを決定する通信制御システム等に関し、特にUSB(Universal Serial Bus)回線で接続された二つの電子機器間でUSBプロトコルを通信プロトコルとする通信制御システム等に関する。
【0002】
【従来の技術】
二つの電子機器間においてデータ交換またはコマンドの送付を行う通信を実行する場合において、二つの電子機器の間で通信を行うための物理チャネルまたは論理チャネルを構築するとき、その物理チャネルまたは論理チャネルを構築する通信プロトコルを二つの電子機器間でのネゴシエーションによって決定する通信制御システムは、従来より既に知られている。
【0003】
かかるシステムにおいては、USBversion2.0(以下、USB2.0という)をサポートしている二つの電子機器がUSB回線で接続されたとき、USBversion1.0またはversion1.1(以下、USB1.1という)かUSB2.0で通信を行うネゴシエーションが行われ、二つの電子機器両方がUSB2.0をサポートしていれば、ネゴシエーションの結果は常にUSB2.0を選択することとなっていた。
【0004】
【発明が解決しようとする課題】
しかしながら、上記通信制御システムでは、次のような問題点があった。
【0005】
二つの電子機器(ホストとターゲット)の両方ともがUSB2.0の通信能力を具備している場合、両者の通信時において、何らかの理由でホスト側またはターゲット側がUSB1.1での通信を要望し、且つホスト側ではUSB1.1へのスイッチが不可能な実装方法を採るときでも、USB2.0ではなく強制的にUSB1.1で通信を行うようにする方法は今まで存在していなかった。
【0006】
本発明は上記従来の問題点に鑑み、二つの電子機器共にUSB2.0の通信能力を具備している場合に、何らかの原因で一方側がUSB1.1での通信を要望しているときは、USB1.1で両者間の通信を行うことを可能にする通信制御システム等を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明の通信制御システムでは、回線を介して接続された第一機器と第二機器の間で通信を行うための通信プロトコルを、前記第一機器と第二機器間で行われるネゴシエーションによって決定する通信制御システムにおいて、前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記第一機器は、前記第二機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする。
【0008】
本発明の通信制御装置では、外部機器との間で通信を行うための通信プロトコルを、前記外部機器との間で行われるネゴシエーションによって決定する通信制御装置において、前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記外部機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする。
【0009】
本発明の通信制御方法では、第一機器と第二機器の間で通信を行うための通信プロトコルを、前記第一機器と第二機器間で行われるネゴシエーションによって決定する通信制御方法において、前記ネゴシエーションによって決定される通信プロトコルがUSBversion1.0(またはversion1.1)、またはUSBversion2.0である場合に、該ネゴシエーションで決定された通信プロトコルが前記USBversion2.0となったとき、前記第一機器は、前記第二機器に対して、次回のネゴシエーションでは前記USBversion1.0(またはversion1.1)の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする。
【0010】
本発明の制御プログラムでは、回線を介して接続された外部機器との間で通信を行うための通信プロトコルを、前記外部機器との間で行われるネゴシエーションによって決定する通信制御装置の制御方法を実行するための制御プログラムにおいて、前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記外部機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示ステップを備えたことを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【0012】
<構成>
図1は、本発明の実施の一形態に係る通信制御システム構成を示すブロック図である。
【0013】
本実施形態の通信制御システムは、例えばパーソナルコンピュータ(ホスト機器)50とプリンタ(ターゲット機器)60がUSBバス70を介して接続されたシステムに、本発明を適用したものである。
【0014】
図2は、図1中のホストコンピュータ50の内部構成を示すブロック図である。 図中の1は本発明を制御するCPU、2はCPU1のワークエリアを提供するRAM、3は本発明のプログラムを提供するハードディスク(フロッピー(登録商標)ディスク、CDROM、DVD、フラッシュラム等でもよい)、4は、ユーザーのコマンドを入力するユーザーコマンド入力装置(具体的にはマウス、キーボード等)、5はUSBポート、8はメインバスである。
【0015】
図3は、図1のプリンタ60の内部のブロック構成図である。
【0016】
図中の11は本発明を制御するCPU、12はCPU1のワークエリアを提供するRAM、13は本発明のプログラムを提供するROM(フロッピー(登録商標)ディスク、CDROM、ハードディスク等でもよい)、15はUSBポート、14は印字用紙に印字を実行するプリンタエンジン、18はメインバスである。
【0017】
なお、本実施形態は特に断らない限り、ホストコンピュータ50では、CPU1がメインバス8を介して、RAM2、ハードディスク3、ユーザーコマンド入力装置4及びUSBポート5を制御して実施する。プリンタ60では、CPU11がメインバス18を介してRAM12、ハードディスク13、USBポート15及びプリンタエンジン14を制御して実施する。
【0018】
<ホスト側動作>
次に、図4のフローチャートを参照しつつ、本実施形態のホスト側動作の詳細を説明する。なお、図4のフローチャートに従ったプログラムをホスト機器50内の例えばハードディスク3に格納し動作することにより、次の制御方法を実現させることが可能となる。
【0019】
USBでは、新しい機器が接続されたり、USBバス70から外されたりして、機器のコンフィグラーションが変更されたときにBusResetイベントを発生させて、USBバス70の機器構成の変化が発生したことをUSBバス70上の他の機器に通知する。そして、前記BusResetイベントをトリガにUSBバス70上の機器を検知したホストコンピュータがそれぞれの機器とネゴシエーションを行い、USB1.1で定められた方法で当該機器と通信を行うのか、USB2.0で定められた方法で通信を行うのかを決定する。よってBusResetイベントがすべての通信の開始になる。
【0020】
図4において、まずホスト機器50は、USBバス70の状態を常に監視し、BusResetイベントが発生していないかどうか常に監視している(ステップS102)。そして、BusResetイベントが発生したことを検知したならば、USBバス70上を検索し、ターゲット機器60が接続されているかどうか調べる(ステップS103)。なお、もし複数のターゲット機器60がホスト機器50によって検知されたならば、それぞれのターゲット機器60に対してこれ以下に記する手順をホスト機器50は行わなければならないが、本発明とは直接関係がないと思われるのでその詳細方法は省略する。
【0021】
ホスト機器50は、検知した接続されているターゲット機器60との間で、USB1.1/USB2.0のいずれかを決定するネゴシエーションを実行する(ステップS104)。その結果、ホスト機器50と当該ターゲット機器60間でのデータ交換に使用するプロトコルとしてUSB1.1/USB2.0のいずれかが決定する(ステップS105)。これを以ってUSBプロトコルレベルでの接続を完了する(ステップS106)。
【0022】
そしてホスト機器50は、USBプロトコルで定められた方法に則り、ターゲット機器60のデバイス属性(description)を読み取り(ステップS107)、その情報をUSBバス70を利用してデータ交換を実施しようとしているUSBプロトコルスタックの上位モジュールに報告する(ステップS108)。
【0023】
USBプロトコルスタックの上位クライアントは報告されたデバイス属性から必要な情報を読み出し、読み出した情報や上位モジュールが保持している情報からUSB2.0で通信してもよいかまたはUSB1.1で通信すべきかを判断する。具体的な判断基準になり得るものとしては、(1)ホスト機器50側のUSB2.0のコントローラやドライバに不具合が発生している、(2)通信目的がターゲット機器60からのUSB2.0通信エラー情報の採取、(3)デバイス属性からターゲット機器60のモデル名を読み出し、このモデルに実装されているUSB2.0のコントローラやドライバの安定性に不安がある、(4)USB規格で規定するDEVICECLASSモジュールとUSB2.0プロトコルスタックの連携に問題があり、USB1.1では通信が可能なことが判明している場合等が考えられる。
【0024】
そして、上位モジュールはもしUSB1.1で通信すべきであれば、USBモジュールにUSB1.1で通信すべきという指示を出す。USBモジュールは上位モジュールからの指示を確認する(ステップS109)。もしUSBモジュールは上位モジュールからのUSB1.1で通信すべきという指示がなければ、上位モジュールからの指示に従い、データの送信や受信を行ったり、USBが規定するコマンドの送出や受信、そしてそれに伴う処理を行い、上位モジュールの要求を満たす(ステップS110)。
【0025】
もし上位モジュールからのUSB1.1で通信すべきという指示があれば、USB1.1で通信を行うのかUSB2.0で通信を行うのかのネゴシエーションの結果を参照する(ステップS111)。そしてネゴシエーションの結果が、USB1.1で通信を行うというものであれば、上位モジュールからの指示とネゴシエーション結果は同じなので、上記ステップS110の処理を行う。もしネゴシエーションの結果がUSB2.0で通信を行うというものであれば、上位モジュールからの指示(USB1.1で通信すべき)と、USB2.0で通信を行うというネゴシエーションの結果とが異なるため、ターゲット機器60に対して通信ネゴシエーションを行い、通信をUSB1.1で行うように再設定する必要がある。
【0026】
そのため、UBSモジュールは、ターゲット機器60に対し、次回のネゴシエーションでは例えUSB2.0で通信を行う能力を具備していてもUSB1.1でしか通信できない、と応答するように要求するコマンド(以下、SetUSB1.1Requestコマンドと呼ぶ。コマンドフォーマットの詳細は図5を参照)を作成し(ステップS112)、そしてUSB規格が定めるVendorUniqueコマンド(データはホスト機器50→ターゲット機器60)の形式でUSB2.0規格に則りターゲット機器60に送出する(ステップS113)。
【0027】
次に、SetUSB1.1Requestコマンドに対する応答を受信するためのVendorUniqueコマンド(以下、SetUSB1.1indコマンドと呼ぶ。コマンドフォーマットの詳細は図6を参照)を作成する(ステップS114)。そして作成したSetUSB1.1indコマンドをUSB2.0規格に則りターゲット機器60に送出する(ステップS115)。その応答を受信するのを待つ(ステップS117)。
【0028】
この応答として受信したデータを解析し、その内容がSetUSB1.1Requestコマンドに対する完了通知がどうか確認する(ステップS118)。
SetUSB1.1Requestコマンドに対する完了通知でなければ、その内容にあった処理を行う(ステップS116)。もし完了通知であれば、これでホスト機器50は、ターゲット機器60が次回のBusResetイベント後のUSB通信プロトコルを決定するネゴシエショーンで、ターゲット機器60がUSB1.1と応えると判断し、USBバス70に対してBusResetイベントを発生させて(ステップS119)、ステップS102へ戻る。
【0029】
<ターゲット機器60の動作>
次に、ターゲット機器60の動作について、図7のフローチャートを参照して説明する。なお、図7のフローチャートに従ったプログラムをホスト機器50内の例えばハードディスク13に格納し動作することにより、次の制御方法を実現させることが可能となる。
【0030】
ターゲット機器60の電源が入れられると(ステップS201)、ターゲット機器60は、デバイス初期化の中で、USB1.1フラグ(USB1.1FLG)をOFFに設定し(ステップS202)、BusResetイベントを発生させる(ステップS203)。そして、ホスト機器50からUSB1.1での通信要求が来ていたかどうか確認するため、USB1.1FLGの値を確認する(ステップS204)。もしUSB1.1FLGがONであればホスト機器50からUSB1.1での通信要求が来ているので、USBコントローラに対し、通信プロトコルのネゴシエーションに対してUSB2.0と応答しないように指示を出す(ステップS205)。
【0031】
USBコントローラは、ホスト機器50から通信プロトコルのネゴシエーション要求を受信すると(ステップS206)、USB2.0のサポートを調べる信号には反応せず、その結果、「USB1.1のみサポート」と応える(ステップS207)。こうして、ネゴシエーションにおいてUSB1.1でホスト機器50とターゲット機器60間の通信が行われることが決定し(ステップS208)、USB1.1FLGをOFFに設定する(ステップS209)。
【0032】
その後は新たにBusResetイベントが発生するまではUSB1.1のプロトコルに則った方式でデータの送受信またはコマンドの送出や受信を行い、上位モジュールの要求に応える(ステップS210)。常にBusResetイベントが発生しているかどうかを監視しながら、ホスト機器50や上位モジュールの要求に従ってデータの送受信を行う(ステップS211,ステップS212)。
【0033】
一方、ステップS204でUSB1.1FLGがOFFであれば、ホスト機器50からUSB1.1での通信要求がないと判断する。そしてUSBコントローラは、ホスト機器50から通信プロトコルのネゴシエーション要求を受信すると(ステップS213)、USB2.0のサポートを調べる信号には反応して、「ターゲット機器60はUSB2.0をサポートしている」と応える(ステップS214)。こうして、ネゴシエーションにおいてUSB2.0でホスト機器50とターゲット機器60間の通信が行われることが決定する(ステップS215)。
【0034】
ネゴシエーションが成立した直後VendorUniqueコマンドが来ていないかどうか調べる(ステップS216)。もし受信していなければ、ホスト機器50の上位層もUSB2.0で通信することを要望していると判断し、その後は新たにBusResetイベントが発生するまでUSB2.0のプロトコルに則った方式でデータの送受信またはコマンドの送出や受信を行い、上位モジュールの要求に応える(ステップS217)。
【0035】
一方、ネゴシエーションが成立した直後にVendorUniqueコマンドを受信していれば、その内容を調べてそのコマンドはSetUSB1.1Requestコマンドかどうか判断する(ステップS218)。SetUSB1.1Requestコマンドでなければ、その受信したコマンド内容に従い処理を行う(ステップS219)。もしSetUSB1.1Requestコマンドであれば、ホスト機器50がUSB1.1で通信することを要望していると判断し、USB1.1FLGをONにする(ステップS220)。
【0036】
そして、VendorUniqueコマンドが来ていないかどうかを調べ(ステップS221)、受信していればその内容がSetUSB1.1indかどうかを確認する(ステップS222)。SetUSB1.1indでなければ、その受信したコマンド内容に従い処理を行う(ステップS223)。もしSetUSB1.1indであれば、SetUSB1.1Requestコマンドに対する完了報告受信要求SetUSB1.1ind(図8参照)を作成し(ステップS224)、USB2.0の規格に則り、ホスト機器50へ送出して(ステップS225)、前記ステップS203の処理へ戻る。
【0037】
このように本実施形態では、USB2.0をサポートするホスト機器50とターゲット機器60の通信時において、何らかの理由でホスト機器50側がUSB1.1での通信を要望しているとき、VendorUniqueコマンドでターゲット機器60にその旨を通知し、その通知を受信したターゲット機器60はそれ以降、ホスト機器50からの通信プロトコルネゴにUSB1.1と応答するようにしたので、ホスト側でUSB1.1へのスイッチが不可能な実装方法を採ると場合であっても、次のネゴシエーションの結果、強制的にUSB1.1が選択され、USB1.1で通信を行うことができる。
【0038】
具体的な応用例として、次のようなものが挙げられる。
【0039】
近年のホスト機器50の実装方法としては、USBプロトコルスタックより上位層に対してはUBS1.1とUSB2.0の差異を吸収して、上位にその違いを隠蔽する方法を採用しているケースがある。そのため、ホスト機器50のUSBプロトコルスタックより上位層から直接ホスト機器50のUSBプロトコルスタックに対して直接指示を出し、USB1.1及びUSB2.0の切り替えができない実装も多く見受けられる。
【0040】
ところでUSB2.0はUSB1.1と比較し、新しいプロトコルである。そのためUSB2.0コントローラ及びそのドライバはUSB1.1のコントローラ及びそのドライバと比べて不具合を内包している可能性が高い。もしホスト機器50のUSB2.0コントローラまたはそのドライバ不具合が発生してUSB2.0でのデータ通信が不可能なとき、本発明があればUSB1.1で通信可能になる。
【0041】
また、ターゲット機器60側のUSB2.0のコントローラやドライバの実装がまだ不完全なときも、発明を採用することにより、ホスト機器50側の主導で通信プロトコルをUSB1.1に設定することも可能になる。
【0042】
さらに、本発明は特にデバッグやデバッグのためのログをターゲット機器60から採取したり、通信速度は重要視されないが通信の信頼度が重視される場合に有効である。
【0043】
なお、本発明は、上記実施形態に限定されず種々の変形が可能である。その変形例としては、次のようなものがある。
【0044】
(1)上記実施形態では、SetUSB1.1RequestコマンドとSetUSB1.1indのin,out二つのVendorUniqueコマンドのハンドシェイクによって、ホスト機器50がターゲット機器60に対してUSB1.1で通信することの要求コマンドを送出し確認しているが、VendorUniqueコマンドのoutのコマンドをのみでもこの機能を実現することができる(そのフォーマットは図9、図10参照)。具体的には、bRequestでSetUSB1.1Requestコマンド指定したinコマンドを発行し、ターゲット機器60はそのぺイロードにその結果を書き込む形である。
【0045】
(2)上記実施形態では、SetUSB1.1RequestコマンドとSetUSB1.1indのin,out二つのVendorUniqueコマンドのハンドシェイクによって、また上記変形例(1)では、1つのinのVendorUniqueコマンドホスト機器50を利用することによって、ホスト機器50がターゲット機器60に対してUSB1.1で通信することの要求コマンドを送出し確認しているが、このコマンドの通知方法を予め定められたENDPOINTを介して、予め定められたコマンド形態を使用して、実施する形態も考えられる。
【0046】
また、本発明は、上述した実施形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、1つの機器から成る装置に適用してもよい。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【0047】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0048】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPUなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0049】
【発明の効果】
以上詳細に説明したように本発明によれば、何らかの原因で第一機器側が所定の通信規格の第一のバージョン形式(例えばUSB1.1)での通信を要望しているときに、第一機器、第二機器共に第二のバージョン形式(例えばUSB2.0)の通信能力を具備していても、強制的に前記第一のバージョン形式を選択して第一のバージョン形式で第一機器、第二機器間の通信を行うことが可能になる。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係る通信制御システム構成を示すブロック図である。
【図2】図1中のホストコンピュータ50の内部構成を示すブロック図である。
【図3】図1のプリンタ60の内部のブロック構成図である。
【図4】実施形態のホスト側動作を示すフローチャートである。
【図5】SetUSB1.1Requestコマンドのフォーマットの一例を示す図である。
【図6】SetUSB1.1indコマンドのフォーマットの一例を示す図である。
【図7】実施形態のターゲット機器60の動作を示すフローチャートである。
【図8】SetUSB1.1完了報告コマンドの内容フォーマットの一例を示す図である。
【図9】SetUSB1.1完了報告受信要求コマンドのフォーマットの一例を示す図である。
【図10】SetUSB1.1完了報告受信要求コマンドの内容フォーマットの一例を示す図である。
【符号の説明】
1 CPU
2 RAM
3 ハードディスク
4 ユーザーコマンド入力装置
5 USBポート
8 メインバス
11 CPU
12 RAM
13 ROM
14 プリンタエンジン
15 USBポート
18 メインバス
50 ホスト機器
60 ターゲット機器
70 USBバス
【発明の属する技術分野】
本発明は、二つの電子機器間で通信を行う際の通信プロトコルを決定する通信制御システム等に関し、特にUSB(Universal Serial Bus)回線で接続された二つの電子機器間でUSBプロトコルを通信プロトコルとする通信制御システム等に関する。
【0002】
【従来の技術】
二つの電子機器間においてデータ交換またはコマンドの送付を行う通信を実行する場合において、二つの電子機器の間で通信を行うための物理チャネルまたは論理チャネルを構築するとき、その物理チャネルまたは論理チャネルを構築する通信プロトコルを二つの電子機器間でのネゴシエーションによって決定する通信制御システムは、従来より既に知られている。
【0003】
かかるシステムにおいては、USBversion2.0(以下、USB2.0という)をサポートしている二つの電子機器がUSB回線で接続されたとき、USBversion1.0またはversion1.1(以下、USB1.1という)かUSB2.0で通信を行うネゴシエーションが行われ、二つの電子機器両方がUSB2.0をサポートしていれば、ネゴシエーションの結果は常にUSB2.0を選択することとなっていた。
【0004】
【発明が解決しようとする課題】
しかしながら、上記通信制御システムでは、次のような問題点があった。
【0005】
二つの電子機器(ホストとターゲット)の両方ともがUSB2.0の通信能力を具備している場合、両者の通信時において、何らかの理由でホスト側またはターゲット側がUSB1.1での通信を要望し、且つホスト側ではUSB1.1へのスイッチが不可能な実装方法を採るときでも、USB2.0ではなく強制的にUSB1.1で通信を行うようにする方法は今まで存在していなかった。
【0006】
本発明は上記従来の問題点に鑑み、二つの電子機器共にUSB2.0の通信能力を具備している場合に、何らかの原因で一方側がUSB1.1での通信を要望しているときは、USB1.1で両者間の通信を行うことを可能にする通信制御システム等を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明の通信制御システムでは、回線を介して接続された第一機器と第二機器の間で通信を行うための通信プロトコルを、前記第一機器と第二機器間で行われるネゴシエーションによって決定する通信制御システムにおいて、前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記第一機器は、前記第二機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする。
【0008】
本発明の通信制御装置では、外部機器との間で通信を行うための通信プロトコルを、前記外部機器との間で行われるネゴシエーションによって決定する通信制御装置において、前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記外部機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする。
【0009】
本発明の通信制御方法では、第一機器と第二機器の間で通信を行うための通信プロトコルを、前記第一機器と第二機器間で行われるネゴシエーションによって決定する通信制御方法において、前記ネゴシエーションによって決定される通信プロトコルがUSBversion1.0(またはversion1.1)、またはUSBversion2.0である場合に、該ネゴシエーションで決定された通信プロトコルが前記USBversion2.0となったとき、前記第一機器は、前記第二機器に対して、次回のネゴシエーションでは前記USBversion1.0(またはversion1.1)の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする。
【0010】
本発明の制御プログラムでは、回線を介して接続された外部機器との間で通信を行うための通信プロトコルを、前記外部機器との間で行われるネゴシエーションによって決定する通信制御装置の制御方法を実行するための制御プログラムにおいて、前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記外部機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示ステップを備えたことを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【0012】
<構成>
図1は、本発明の実施の一形態に係る通信制御システム構成を示すブロック図である。
【0013】
本実施形態の通信制御システムは、例えばパーソナルコンピュータ(ホスト機器)50とプリンタ(ターゲット機器)60がUSBバス70を介して接続されたシステムに、本発明を適用したものである。
【0014】
図2は、図1中のホストコンピュータ50の内部構成を示すブロック図である。 図中の1は本発明を制御するCPU、2はCPU1のワークエリアを提供するRAM、3は本発明のプログラムを提供するハードディスク(フロッピー(登録商標)ディスク、CDROM、DVD、フラッシュラム等でもよい)、4は、ユーザーのコマンドを入力するユーザーコマンド入力装置(具体的にはマウス、キーボード等)、5はUSBポート、8はメインバスである。
【0015】
図3は、図1のプリンタ60の内部のブロック構成図である。
【0016】
図中の11は本発明を制御するCPU、12はCPU1のワークエリアを提供するRAM、13は本発明のプログラムを提供するROM(フロッピー(登録商標)ディスク、CDROM、ハードディスク等でもよい)、15はUSBポート、14は印字用紙に印字を実行するプリンタエンジン、18はメインバスである。
【0017】
なお、本実施形態は特に断らない限り、ホストコンピュータ50では、CPU1がメインバス8を介して、RAM2、ハードディスク3、ユーザーコマンド入力装置4及びUSBポート5を制御して実施する。プリンタ60では、CPU11がメインバス18を介してRAM12、ハードディスク13、USBポート15及びプリンタエンジン14を制御して実施する。
【0018】
<ホスト側動作>
次に、図4のフローチャートを参照しつつ、本実施形態のホスト側動作の詳細を説明する。なお、図4のフローチャートに従ったプログラムをホスト機器50内の例えばハードディスク3に格納し動作することにより、次の制御方法を実現させることが可能となる。
【0019】
USBでは、新しい機器が接続されたり、USBバス70から外されたりして、機器のコンフィグラーションが変更されたときにBusResetイベントを発生させて、USBバス70の機器構成の変化が発生したことをUSBバス70上の他の機器に通知する。そして、前記BusResetイベントをトリガにUSBバス70上の機器を検知したホストコンピュータがそれぞれの機器とネゴシエーションを行い、USB1.1で定められた方法で当該機器と通信を行うのか、USB2.0で定められた方法で通信を行うのかを決定する。よってBusResetイベントがすべての通信の開始になる。
【0020】
図4において、まずホスト機器50は、USBバス70の状態を常に監視し、BusResetイベントが発生していないかどうか常に監視している(ステップS102)。そして、BusResetイベントが発生したことを検知したならば、USBバス70上を検索し、ターゲット機器60が接続されているかどうか調べる(ステップS103)。なお、もし複数のターゲット機器60がホスト機器50によって検知されたならば、それぞれのターゲット機器60に対してこれ以下に記する手順をホスト機器50は行わなければならないが、本発明とは直接関係がないと思われるのでその詳細方法は省略する。
【0021】
ホスト機器50は、検知した接続されているターゲット機器60との間で、USB1.1/USB2.0のいずれかを決定するネゴシエーションを実行する(ステップS104)。その結果、ホスト機器50と当該ターゲット機器60間でのデータ交換に使用するプロトコルとしてUSB1.1/USB2.0のいずれかが決定する(ステップS105)。これを以ってUSBプロトコルレベルでの接続を完了する(ステップS106)。
【0022】
そしてホスト機器50は、USBプロトコルで定められた方法に則り、ターゲット機器60のデバイス属性(description)を読み取り(ステップS107)、その情報をUSBバス70を利用してデータ交換を実施しようとしているUSBプロトコルスタックの上位モジュールに報告する(ステップS108)。
【0023】
USBプロトコルスタックの上位クライアントは報告されたデバイス属性から必要な情報を読み出し、読み出した情報や上位モジュールが保持している情報からUSB2.0で通信してもよいかまたはUSB1.1で通信すべきかを判断する。具体的な判断基準になり得るものとしては、(1)ホスト機器50側のUSB2.0のコントローラやドライバに不具合が発生している、(2)通信目的がターゲット機器60からのUSB2.0通信エラー情報の採取、(3)デバイス属性からターゲット機器60のモデル名を読み出し、このモデルに実装されているUSB2.0のコントローラやドライバの安定性に不安がある、(4)USB規格で規定するDEVICECLASSモジュールとUSB2.0プロトコルスタックの連携に問題があり、USB1.1では通信が可能なことが判明している場合等が考えられる。
【0024】
そして、上位モジュールはもしUSB1.1で通信すべきであれば、USBモジュールにUSB1.1で通信すべきという指示を出す。USBモジュールは上位モジュールからの指示を確認する(ステップS109)。もしUSBモジュールは上位モジュールからのUSB1.1で通信すべきという指示がなければ、上位モジュールからの指示に従い、データの送信や受信を行ったり、USBが規定するコマンドの送出や受信、そしてそれに伴う処理を行い、上位モジュールの要求を満たす(ステップS110)。
【0025】
もし上位モジュールからのUSB1.1で通信すべきという指示があれば、USB1.1で通信を行うのかUSB2.0で通信を行うのかのネゴシエーションの結果を参照する(ステップS111)。そしてネゴシエーションの結果が、USB1.1で通信を行うというものであれば、上位モジュールからの指示とネゴシエーション結果は同じなので、上記ステップS110の処理を行う。もしネゴシエーションの結果がUSB2.0で通信を行うというものであれば、上位モジュールからの指示(USB1.1で通信すべき)と、USB2.0で通信を行うというネゴシエーションの結果とが異なるため、ターゲット機器60に対して通信ネゴシエーションを行い、通信をUSB1.1で行うように再設定する必要がある。
【0026】
そのため、UBSモジュールは、ターゲット機器60に対し、次回のネゴシエーションでは例えUSB2.0で通信を行う能力を具備していてもUSB1.1でしか通信できない、と応答するように要求するコマンド(以下、SetUSB1.1Requestコマンドと呼ぶ。コマンドフォーマットの詳細は図5を参照)を作成し(ステップS112)、そしてUSB規格が定めるVendorUniqueコマンド(データはホスト機器50→ターゲット機器60)の形式でUSB2.0規格に則りターゲット機器60に送出する(ステップS113)。
【0027】
次に、SetUSB1.1Requestコマンドに対する応答を受信するためのVendorUniqueコマンド(以下、SetUSB1.1indコマンドと呼ぶ。コマンドフォーマットの詳細は図6を参照)を作成する(ステップS114)。そして作成したSetUSB1.1indコマンドをUSB2.0規格に則りターゲット機器60に送出する(ステップS115)。その応答を受信するのを待つ(ステップS117)。
【0028】
この応答として受信したデータを解析し、その内容がSetUSB1.1Requestコマンドに対する完了通知がどうか確認する(ステップS118)。
SetUSB1.1Requestコマンドに対する完了通知でなければ、その内容にあった処理を行う(ステップS116)。もし完了通知であれば、これでホスト機器50は、ターゲット機器60が次回のBusResetイベント後のUSB通信プロトコルを決定するネゴシエショーンで、ターゲット機器60がUSB1.1と応えると判断し、USBバス70に対してBusResetイベントを発生させて(ステップS119)、ステップS102へ戻る。
【0029】
<ターゲット機器60の動作>
次に、ターゲット機器60の動作について、図7のフローチャートを参照して説明する。なお、図7のフローチャートに従ったプログラムをホスト機器50内の例えばハードディスク13に格納し動作することにより、次の制御方法を実現させることが可能となる。
【0030】
ターゲット機器60の電源が入れられると(ステップS201)、ターゲット機器60は、デバイス初期化の中で、USB1.1フラグ(USB1.1FLG)をOFFに設定し(ステップS202)、BusResetイベントを発生させる(ステップS203)。そして、ホスト機器50からUSB1.1での通信要求が来ていたかどうか確認するため、USB1.1FLGの値を確認する(ステップS204)。もしUSB1.1FLGがONであればホスト機器50からUSB1.1での通信要求が来ているので、USBコントローラに対し、通信プロトコルのネゴシエーションに対してUSB2.0と応答しないように指示を出す(ステップS205)。
【0031】
USBコントローラは、ホスト機器50から通信プロトコルのネゴシエーション要求を受信すると(ステップS206)、USB2.0のサポートを調べる信号には反応せず、その結果、「USB1.1のみサポート」と応える(ステップS207)。こうして、ネゴシエーションにおいてUSB1.1でホスト機器50とターゲット機器60間の通信が行われることが決定し(ステップS208)、USB1.1FLGをOFFに設定する(ステップS209)。
【0032】
その後は新たにBusResetイベントが発生するまではUSB1.1のプロトコルに則った方式でデータの送受信またはコマンドの送出や受信を行い、上位モジュールの要求に応える(ステップS210)。常にBusResetイベントが発生しているかどうかを監視しながら、ホスト機器50や上位モジュールの要求に従ってデータの送受信を行う(ステップS211,ステップS212)。
【0033】
一方、ステップS204でUSB1.1FLGがOFFであれば、ホスト機器50からUSB1.1での通信要求がないと判断する。そしてUSBコントローラは、ホスト機器50から通信プロトコルのネゴシエーション要求を受信すると(ステップS213)、USB2.0のサポートを調べる信号には反応して、「ターゲット機器60はUSB2.0をサポートしている」と応える(ステップS214)。こうして、ネゴシエーションにおいてUSB2.0でホスト機器50とターゲット機器60間の通信が行われることが決定する(ステップS215)。
【0034】
ネゴシエーションが成立した直後VendorUniqueコマンドが来ていないかどうか調べる(ステップS216)。もし受信していなければ、ホスト機器50の上位層もUSB2.0で通信することを要望していると判断し、その後は新たにBusResetイベントが発生するまでUSB2.0のプロトコルに則った方式でデータの送受信またはコマンドの送出や受信を行い、上位モジュールの要求に応える(ステップS217)。
【0035】
一方、ネゴシエーションが成立した直後にVendorUniqueコマンドを受信していれば、その内容を調べてそのコマンドはSetUSB1.1Requestコマンドかどうか判断する(ステップS218)。SetUSB1.1Requestコマンドでなければ、その受信したコマンド内容に従い処理を行う(ステップS219)。もしSetUSB1.1Requestコマンドであれば、ホスト機器50がUSB1.1で通信することを要望していると判断し、USB1.1FLGをONにする(ステップS220)。
【0036】
そして、VendorUniqueコマンドが来ていないかどうかを調べ(ステップS221)、受信していればその内容がSetUSB1.1indかどうかを確認する(ステップS222)。SetUSB1.1indでなければ、その受信したコマンド内容に従い処理を行う(ステップS223)。もしSetUSB1.1indであれば、SetUSB1.1Requestコマンドに対する完了報告受信要求SetUSB1.1ind(図8参照)を作成し(ステップS224)、USB2.0の規格に則り、ホスト機器50へ送出して(ステップS225)、前記ステップS203の処理へ戻る。
【0037】
このように本実施形態では、USB2.0をサポートするホスト機器50とターゲット機器60の通信時において、何らかの理由でホスト機器50側がUSB1.1での通信を要望しているとき、VendorUniqueコマンドでターゲット機器60にその旨を通知し、その通知を受信したターゲット機器60はそれ以降、ホスト機器50からの通信プロトコルネゴにUSB1.1と応答するようにしたので、ホスト側でUSB1.1へのスイッチが不可能な実装方法を採ると場合であっても、次のネゴシエーションの結果、強制的にUSB1.1が選択され、USB1.1で通信を行うことができる。
【0038】
具体的な応用例として、次のようなものが挙げられる。
【0039】
近年のホスト機器50の実装方法としては、USBプロトコルスタックより上位層に対してはUBS1.1とUSB2.0の差異を吸収して、上位にその違いを隠蔽する方法を採用しているケースがある。そのため、ホスト機器50のUSBプロトコルスタックより上位層から直接ホスト機器50のUSBプロトコルスタックに対して直接指示を出し、USB1.1及びUSB2.0の切り替えができない実装も多く見受けられる。
【0040】
ところでUSB2.0はUSB1.1と比較し、新しいプロトコルである。そのためUSB2.0コントローラ及びそのドライバはUSB1.1のコントローラ及びそのドライバと比べて不具合を内包している可能性が高い。もしホスト機器50のUSB2.0コントローラまたはそのドライバ不具合が発生してUSB2.0でのデータ通信が不可能なとき、本発明があればUSB1.1で通信可能になる。
【0041】
また、ターゲット機器60側のUSB2.0のコントローラやドライバの実装がまだ不完全なときも、発明を採用することにより、ホスト機器50側の主導で通信プロトコルをUSB1.1に設定することも可能になる。
【0042】
さらに、本発明は特にデバッグやデバッグのためのログをターゲット機器60から採取したり、通信速度は重要視されないが通信の信頼度が重視される場合に有効である。
【0043】
なお、本発明は、上記実施形態に限定されず種々の変形が可能である。その変形例としては、次のようなものがある。
【0044】
(1)上記実施形態では、SetUSB1.1RequestコマンドとSetUSB1.1indのin,out二つのVendorUniqueコマンドのハンドシェイクによって、ホスト機器50がターゲット機器60に対してUSB1.1で通信することの要求コマンドを送出し確認しているが、VendorUniqueコマンドのoutのコマンドをのみでもこの機能を実現することができる(そのフォーマットは図9、図10参照)。具体的には、bRequestでSetUSB1.1Requestコマンド指定したinコマンドを発行し、ターゲット機器60はそのぺイロードにその結果を書き込む形である。
【0045】
(2)上記実施形態では、SetUSB1.1RequestコマンドとSetUSB1.1indのin,out二つのVendorUniqueコマンドのハンドシェイクによって、また上記変形例(1)では、1つのinのVendorUniqueコマンドホスト機器50を利用することによって、ホスト機器50がターゲット機器60に対してUSB1.1で通信することの要求コマンドを送出し確認しているが、このコマンドの通知方法を予め定められたENDPOINTを介して、予め定められたコマンド形態を使用して、実施する形態も考えられる。
【0046】
また、本発明は、上述した実施形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、1つの機器から成る装置に適用してもよい。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【0047】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0048】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPUなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0049】
【発明の効果】
以上詳細に説明したように本発明によれば、何らかの原因で第一機器側が所定の通信規格の第一のバージョン形式(例えばUSB1.1)での通信を要望しているときに、第一機器、第二機器共に第二のバージョン形式(例えばUSB2.0)の通信能力を具備していても、強制的に前記第一のバージョン形式を選択して第一のバージョン形式で第一機器、第二機器間の通信を行うことが可能になる。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係る通信制御システム構成を示すブロック図である。
【図2】図1中のホストコンピュータ50の内部構成を示すブロック図である。
【図3】図1のプリンタ60の内部のブロック構成図である。
【図4】実施形態のホスト側動作を示すフローチャートである。
【図5】SetUSB1.1Requestコマンドのフォーマットの一例を示す図である。
【図6】SetUSB1.1indコマンドのフォーマットの一例を示す図である。
【図7】実施形態のターゲット機器60の動作を示すフローチャートである。
【図8】SetUSB1.1完了報告コマンドの内容フォーマットの一例を示す図である。
【図9】SetUSB1.1完了報告受信要求コマンドのフォーマットの一例を示す図である。
【図10】SetUSB1.1完了報告受信要求コマンドの内容フォーマットの一例を示す図である。
【符号の説明】
1 CPU
2 RAM
3 ハードディスク
4 ユーザーコマンド入力装置
5 USBポート
8 メインバス
11 CPU
12 RAM
13 ROM
14 プリンタエンジン
15 USBポート
18 メインバス
50 ホスト機器
60 ターゲット機器
70 USBバス
Claims (15)
- 回線を介して接続された第一機器と第二機器の間で通信を行うための通信プロトコルを、前記第一機器と第二機器間で行われるネゴシエーションによって決定する通信制御システムにおいて、
前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記第一機器は、前記第二機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする通信制御システム。 - 前記第一機器の前記指示手段が前記第二機器に対して行う前記指示は、前記通信規格が規定する所定のコマンドを使用して行うことを特徴とする請求項1記載の通信制御システム。
- 前記第一機器は、前記第二機器に対して前記指示手段による前記指示を行った後、その受付完了が前記第二機器から報告されたとき、前記通信規格が定める所定のイベントを前記回線上に発生させて、改めて通信プロトコルを前記第一のバージョン形式または前記第二のバージョン形式に決定するネゴシエーションを行うことを特徴とする請求項1または請求項2記載の通信制御システム。
- 前記第二機器は、前記指示手段の指示を前記第一機器から受信したとき、その直後の前記所定のイベント発生後のネゴシエーションのみにおいて、前記第一のバージョン形式の通信能力しかない旨の応答を行うことを特徴とする請求項3記載の通信制御システム。
- 前記第二機器は、前記指示手段の指示を前記第一機器から受信したとき、その後の前記所定のイベント発生後のネゴシエーションにおいて、前記第一のバージョン形式の通信能力しかない旨の応答を行うことを特徴とする請求項3記載の通信制御システム。
- 前記所定の通信規格はUSB規格であり、前記第一のバージョン形式はUSBversion1.0(またはversion1.1)であり、前記第二のバージョン形式はUSBversion2.0であり、前記所定のコマンドはVendorUniqueコマンドであることを特徴とする請求項1乃至5記載の通信制御システム。
- 回線を介して接続された外部機器との間で通信を行うための通信プロトコルを、前記外部機器との間で行われるネゴシエーションによって決定する通信制御装置において、
前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記外部機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする通信制御装置。 - 前記指示手段が前記外部機器に対して行う前記指示は、前記通信規格が規定する所定のコマンドを使用して行うことを特徴とする請求項7記載の通信制御装置。
- 前記外部機器に対して前記指示手段による前記指示を行った後、その受付完了が前記外部機器から報告されたとき、前記通信規格が定める所定のイベントを前記回線上に発生させて、改めて通信プロトコルを前記第一のバージョン形式または前記第二のバージョン形式に決定するネゴシエーションを行うことを特徴とする請求項7または請求項8記載の通信制御装置。
- 前記所定の通信規格はUSB規格であり、前記第一のバージョン形式はUSBversion1.0(またはversion1.1)であり、前記第二のバージョン形式はUSBversion2.0であり、前記所定のコマンドはVendorUniqueコマンドであることを特徴とする請求項7乃至9記載の通信制御装置。
- 第一機器と第二機器の間で通信を行うための通信プロトコルを、前記第一機器と第二機器間で行われるネゴシエーションによって決定する通信制御方法において、
前記ネゴシエーションによって決定される通信プロトコルがUSBversion1.0(またはversion1.1)、またはUSBversion2.0である場合に、該ネゴシエーションで決定された通信プロトコルが前記USBversion2.0となったとき、前記第一機器は、前記第二機器に対して、次回のネゴシエーションでは前記USBversion1.0(またはversion1.1)の通信能力しかない旨の応答を行うように指示する指示手段を備えたことを特徴とする通信制御方法。 - 回線を介して接続された外部機器との間で通信を行うための通信プロトコルを、前記外部機器との間で行われるネゴシエーションによって決定する通信制御装置の制御方法を実行するための制御プログラムにおいて、
前記ネゴシエーションによって決定される通信プロトコルが所定の通信規格の第一のバージョン形式または第二のバージョン形式である場合に、該ネゴシエーションで決定された通信プロトコルが前記第二のバージョン形式となったとき、前記外部機器に対して、次回のネゴシエーションでは前記第一のバージョン形式の通信能力しかない旨の応答を行うように指示する指示ステップを備えたことを特徴とする制御プログラム。 - 前記指示ステップが前記外部機器に対して行う前記指示は、前記通信規格が規定する所定のコマンドを使用して行うことを特徴とする請求項12記載の制御プログラム。
- 前記外部機器に対して前記指示ステップによる前記指示を行った後、その受付完了が前記外部機器から報告されたとき、前記通信規格が定める所定のイベントを前記回線上に発生させて、改めて通信プロトコルを前記第一のバージョン形式または前記第二のバージョン形式に決定するネゴシエーションを行うことを特徴とする請求項12または請求項13記載の制御プログラム。
- 前記所定の通信規格はUSB規格であり、前記第一のバージョン形式はUSBversion1.0(またはversion1.1)であり、前記第二のバージョン形式はUSBversion2.0であり、前記所定のコマンドはVendorUniqueコマンドであることを特徴とする請求項12乃至14記載の制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002223144A JP2004062748A (ja) | 2002-07-31 | 2002-07-31 | 通信制御システム、通信制御装置、通信制御方法、及び制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002223144A JP2004062748A (ja) | 2002-07-31 | 2002-07-31 | 通信制御システム、通信制御装置、通信制御方法、及び制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004062748A true JP2004062748A (ja) | 2004-02-26 |
Family
ID=31942992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002223144A Pending JP2004062748A (ja) | 2002-07-31 | 2002-07-31 | 通信制御システム、通信制御装置、通信制御方法、及び制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004062748A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009064118A (ja) * | 2007-09-05 | 2009-03-26 | Nec Access Technica Ltd | Usbデバイスバックアップ装置及びそれに用いるusbデバイスバックアップ方法並びにそのプログラム |
JP2009163361A (ja) * | 2007-12-28 | 2009-07-23 | Sony Corp | 通信装置、通信システム、通信方法及びプログラム |
JP2011203788A (ja) * | 2010-03-24 | 2011-10-13 | Brother Industries Ltd | Usbホスト装置 |
JP2014164532A (ja) * | 2013-02-25 | 2014-09-08 | Mitsubishi Heavy Ind Ltd | 情報処理システム、ホスト機、及び、プログラム |
US10558601B2 (en) | 2018-03-14 | 2020-02-11 | Toshiba Client Solutions CO., LTD. | Electronic device and control system |
JP2020053767A (ja) * | 2018-09-25 | 2020-04-02 | ブラザー工業株式会社 | 通信装置及び通信装置のためのコンピュータプログラム |
-
2002
- 2002-07-31 JP JP2002223144A patent/JP2004062748A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009064118A (ja) * | 2007-09-05 | 2009-03-26 | Nec Access Technica Ltd | Usbデバイスバックアップ装置及びそれに用いるusbデバイスバックアップ方法並びにそのプログラム |
JP2009163361A (ja) * | 2007-12-28 | 2009-07-23 | Sony Corp | 通信装置、通信システム、通信方法及びプログラム |
JP2011203788A (ja) * | 2010-03-24 | 2011-10-13 | Brother Industries Ltd | Usbホスト装置 |
JP2014164532A (ja) * | 2013-02-25 | 2014-09-08 | Mitsubishi Heavy Ind Ltd | 情報処理システム、ホスト機、及び、プログラム |
US10558601B2 (en) | 2018-03-14 | 2020-02-11 | Toshiba Client Solutions CO., LTD. | Electronic device and control system |
JP2020053767A (ja) * | 2018-09-25 | 2020-04-02 | ブラザー工業株式会社 | 通信装置及び通信装置のためのコンピュータプログラム |
JP7077896B2 (ja) | 2018-09-25 | 2022-05-31 | ブラザー工業株式会社 | 通信装置及び通信装置のためのコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882206B2 (en) | Storage device system and storage device system activating method | |
CN107885686B (zh) | 一种采用bmc控制单个硬盘重启的系统及方法 | |
US7219144B2 (en) | Disk array system and fault information control method | |
US6594721B1 (en) | Surprise hot bay swapping of IDE/ATAPI devices | |
JP4723290B2 (ja) | ディスクアレイ装置及びその制御方法 | |
US6725295B2 (en) | Multi-path computer system | |
US8862790B2 (en) | Method for identifying version type of windows operating system on a host by a USB device | |
US6505258B1 (en) | Comprehensive interface between bios and device drivers to signal events | |
US7437585B2 (en) | Storage system and power control method therefor, adapter and power control method therefor, and storage controller and control method therefor | |
EP0479427A2 (en) | Apparatus and method for loading BIOS into a computer system | |
JP5328511B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2004280779A5 (ja) | ||
JP2001222502A (ja) | コンピュータシステムにおける信頼性の高いデバイス設定の方法及びシステム | |
JP2018116648A (ja) | 情報処理装置、その制御方法、及びプログラム | |
JP2005267111A (ja) | 記憶制御システム及び記憶制御システムの制御方法 | |
US7284086B2 (en) | Storage device controlling device and control method for storage device controlling device | |
JP2004303216A (ja) | 情報処理装置,画像形成装置,プログラム起動時のエラー処理方法および記録媒体 | |
JP2004062748A (ja) | 通信制御システム、通信制御装置、通信制御方法、及び制御プログラム | |
KR0182632B1 (ko) | 클라이언트 서버 시스템 및 그 제어 방법 | |
JP4387493B2 (ja) | コンピュータシステムおよび同システムの制御方法 | |
US6904546B2 (en) | System and method for interface isolation and operating system notification during bus errors | |
KR100216030B1 (ko) | 유니버설 시리얼 버스를 이용한 프린터 제어방법 | |
CN112925730B (zh) | 一种PCIe设备链路训练控制方法及系统 | |
JP3371760B2 (ja) | Pcカード用コネクタ、pcカード及びpcカード処理装置 | |
CN113672537B (zh) | 一种sata设备热插拔管理方法和装置 |