(57)【要約】      （修正有）【課題】データ通信量が大きいかつ高速データ通信が必要であるUSB設備をHID設備と設計された場合のHIDの通信速度を高める方法を提供する。【解決手段】方法は、ブロックターミナルのバッファが大きい利点を利用して、ブロックターミナルを割込みターミナルに模擬して、データ通信量が大きいかつ高速データ通信が必要であるUSB設備をHID設備と設計された場合の通信速度が遅くなる問題点を解決し、HID設備の通信速度を高める。【選択図】図１
2008065823.tif 000002
【特許請求の範囲】
【請求項１】
HID設備の通信速度を高める方法であって、
インタフェースディスクリプターにあるターミナル個数を２または２より大きいと設定し、設備分類を３と設定するステップと、
ホストに少なくても一つの割込み入力ターミナルと少なくとも一つの割込み出力ターミナルを報告し、割込み入力ターミナルのアドレスをUSB設備内のブロック入力ターミナルアドレスに設定して、割込み出力ターミナルのアドレスをUSB設備内のブロック出力ターミナルアドレスに設定するステップと、
HID分類ディスクリプタに、該USB設備は一つの報告ディスプリプタがあると設定するステップと、
報告ディスプリプタに一つの入力型報告と一つの出力型報告があって、前記入力型報告と出力型報告の長さはブロックターミナルバッファーメモリの容量より大きいあるいは等しいように設定するステップと、
USB設備が、ブロック出力ターミナルによりホストからのコマンドを受信し、かつブロック入力ターミナルによりホストの必要な結果を返し、USB設備とホストの間の毎回の交信のデータの長さと報告の長さが一致するように設定するステップとを含むことを特徴とするHID設備の通信速度を高める方法。
【請求項２】
前記割込み入力ターミナルと割込み出力ターミナルのバッファエリアサイズは、64バイトと設定することを特徴とする請求項１記載のHID設備の通信速度を高める方法。
【請求項３】
データの転送はホストからUSB設備への転送であるかまたはUSB設備からホストへの転送であるかにも関わらず、報告の長さを基づいて完成し、毎回６４バイトを転送して、６４バイトより多いデータが、６４バイトのデータブロックに分解してから各々に転送して、受信側は全てのブロックを完全なデータに組立てることを特徴とする請求項１記載のHID設備の通信速度を高める方法。
【請求項４】
前記ホストコマンド及びデータの受信と処理は
１）ブロックターミナルがデータを発送するかを判断するステップと、
２）ブロックターミナルがデータを発送すると、USB設備は改めてデータを組立てるステップと、
３）USB設備はコマンドを実行するステップと、
４）ブロックターミナルから結果と状態を返すステップとを含むことを特徴とする請求項１記載のHID設備の通信速度を高める方法。
【請求項５】
前記ブロックターミナルがデータを発送するかを判断するステップは
（ａ）USB設備はコマンドの組立て直しと実行の状態に入るステップと、
（ｂ）USB設備はデータのオフセットと長さを取得するステップと、
（ｃ）USB設備はデータのオフセットと長さに基づいて、ブロックターミナルバッファエリアにデータをコピーするステップと、
（ｄ）USB設備はデータの総長を取得するステップと、
（ｅ）USB設備はオフセットにデータの長さを加算したらデータの総長さと等しいかを判断し、等しくない場合はステップ（f）を実行し、等しい場合はステップ（g）を実行するステップと、
（f）USB設備はコマンドの組立て直しと実行を中断し、次の報告の処理を行うステップと、
（ｇ）USB設備はブロックターミナルバッファエリア内のデータが正常であるかを判断し、不正であれば、コマンドエラー状態を設定してからステップ４）を実行し、正常の場合は、ステップ３）を実行するステップとを含むことを特徴とする請求項4記載のHID設備の通信速度を高める方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はHID設備通信速度を高める方法に関し、特にUSB設備をHID設備に設計された場合の通信速度を高める方法に関する。
【背景技術】
【０００２】
通常のUSB設備は一つの“ドライバプログラム”が必要である。当該ドライバプログラムはアプリケーションソフトウェアからUSB設備へのデータの転送通路を提供している。但し、ドライバプログラムのプログラミング技術は複雑であり、一旦エラーになるとシステムのデッドロックを招く。この為、OSは一部の典型的なUSB設備、例えばHID設備（Human Interface Device、マンマシンインタフェース設備とは、直接に人間とやり取りする設備のこと、例えばマウス、キーボードなど）に対して内蔵のドライバプログラムを提供している。従って、USB KEYなど非典型的なUSB設備をマンマシンインタフェース設備に設計すれば、直接にOS内蔵のドライバプログラムを使用できる様になり、ドライバプログラムをプログラミングする複雑性とリスクを避けることができる。
【０００３】
OS内蔵のHIDドライバプログラムは、ハードウェアにアクセスする方式は２種類に分かれている：第１種類は、USB規格に定義した“コントロール転送”方式、第２種類は、USB規格に定義した“割込み転送”方式であり、この２種類の方式は、少量データの転送だけに適している為、HID形式のUSB設備のような大量データの高速データ通信ができない。通信量が大きいかつ高速転送が要求されるUSB設備をHID設備に設計されると、割込みターミナルバッファエリアが小さい為、通信速度は遅くなる。
【０００４】
USB規格に大量データの高速データ通信方式も定義してあり、通常、“ブロック転送”と呼ばれている。チップにブロック転送の為に設置されたバッファーメモリは大きいが、HID類の設備はこの通信方式を使用することができない。
【０００５】
USBインタフェースのあるチップは、内部で異なるデータ転送方式をサポートするハードウェア回路が設置されていて、各々のデータ転送方式は一つの回路に対応している。この回路は抽象的に“ターミナル”と呼ばれる。コントロール転送をサポートするターミナルは“コントロールターミナル”と、割込み転送をサポートするターミナルは“割込みターミナル”と、ブロック転送をサポートするターミナルは“ブロックターミナル”と、それぞれに呼ばれている。
【０００６】
USB設備は、ホストと接続した後、一連のデータをホストへ送信する。これらのデータは、設備の分類及びサポートできるデータ転送方式を表している。これらのデータはディスクリプターである。ディスクリプターはデータ結果、あるいは情報のフォーマットブロックであり、ホストにこの設備を知らせる。各ディスクリプターは、この設備に関する全体の情報または一つの要素の情報を含んでいる。全てのUSB設備は必ず標準USBディスクリプターの請求に対して反応をしなければならない。枚挙の過程には、ホストがコントロール転送を使用して、設備からディスクリプターを請求する。
【０００７】
本発明に関するディスクリプターは、下記のものを含む：
インタフェースディスクリプター、このディスクリプターは、一つのUSB設備とホスト間のインタフェースを定義するのに用いられて、この設備がHID設備であるかと、コントロールターミナル以外のその他のターミナルがあるかを表明する；
ターミナルディスクリプター、設備にコントロールターミナル以外のその他のターミナルがある時だけにこのディスクリプターが必要として、このディスクリプターは、ターミナルのタイプ、ターミナルがチップ内のアドレスなど、ターミナルバッファーのサイズ、及びホストがこのターミナルをアクセルする時間間隔を表明する；
HID分類ディスクリプター、設備がHID設備と定義された時だけにこのディスクリプターが必要として、このディスクリプターは、この設備がサポートするUSBプロトコールのバージョン番号、専用ディスクリプターがあるか、及び専用ディスクリプターに対する特徴限定を表明する；
報告ディスクリプター、設備がHID設備と定義された時だけにこのディスクリプターが必要として、このディスクリプターは、ホストと設備の間に通信する時にデータの組織方式を定義する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記の様なデータ通信量が大きいかつ高速データ通信が必要であるUSB設備をHID設備と設計された場合、通信速度が遅くなるという問題点があった。この発明は、上記従来技術の問題点を解決することを課題とする。
【課題を解決するための手段】
【０００９】
本発明は、ブロックターミナルのバッファエリアが大きい利点を利用し、ブロックターミナルを利用して割込みターミナルに模擬する方法を提供して、HID設備の通信速度を高める。
【００１０】
HID設備の通信速度を高める方法であって、インタフェースディスクリプターにあるターミナル個数を２または２より大きいと設定し、設備分類を３と設定するステップと、ホストに少なくても一つの割込み入力ターミナルと少なくとも一つの割込み出力ターミナルを報告し、割込み入力ターミナルのアドレスをUSB設備内のブロック入力ターミナルアドレスに設定して、割込み出力ターミナルのアドレスをUSB設備内のブロック出力ターミナルアドレスに設定するステップと、HID分類ディスクリプタに、該USB設備は一つの報告ディスプリプタがあると設定するステップと、報告ディスプリプタに一つの入力型報告と一つの出力型報告があって、前記入力型報告と出力型報告の長さはブロックターミナルバッファーメモリの容量より大きいあるいは等しいように設定するステップと、USB設備が、ブロック出力ターミナルによりホストからのコマンドを受信し、かつブロック入力ターミナルによりホストの必要な結果を返し、USB設備とホストの間の毎回の交信のデータの長さと報告の長さが一致するように設定するステップとを含むことを特徴とするHID設備の通信速度を高める方法。
【００１１】
前記のHID設備の通信速度を高める方法において、前記ホストコマンド及びデータの受信と処理は１）ブロックターミナルがデータを発送するかを判断するステップと、２）ブロックターミナルがデータを発送すると、USB設備は改めてデータを組立てるステップと、３）USB設備はコマンドを実行するステップと、４）ブロックターミナルから結果と状態を返すステップとを含むことを特徴とするHID設備の通信速度を高める方法。
【発明を実施するための最良の形態】
【００１２】
以下、図面を用いて本発明を実施するための最良の形態を詳しく説明する。
【００１３】
本発明のHID設備の通信速度を高める方法を実現するための技術案は、主にディスクリプターの設定とデータの組織方法を変えることを含む。
【００１４】
（１）ディスクリプターの設定
（１−１）インタフェースディスクリプター
本発明のインタフェースディスクリプターに対する設定は、“ターミナル個数”を表すバイトを２または２より大きいと設定すると、“設備分類”を表すバイトを設備がHID設備類に属することを意味する３に設定することを含む。
【００１５】
（１−２）ターミナルディスクリプター
本発明は、ホストに二つの割込みターミナルを報告しなければならなく、本来のディスクリプターより二つのターミナルディスクリプターを追加して、それぞれ二つの割込みターミナルに対応する。この二つの割込みターミナルは、それぞれ割込み入力ターミナルと割込み出力ターミナルであり、ターミナルタイプを表すバイトを３と設定して、これは当該ターミナルが割込みターミナルであることを意味する；“ターミナル番号”を表すバイトをUSB設備チップ内のブロック入力とブロック出力ターミナルとそれぞれ同じであると設定する；割込み入力ターミナルと割込み出力ターミナルの“バッファエリアサイズ”を６４バイトと設定して、ホストが割込み入力ターミナルと割込み出力ターミナルをアクセスする時間間隔を共に1ミリ秒と設定する。
【００１６】
具体的に実現する時に、割込みターミナル数は、２より多いことも可能であるが、少なくても一つの割込み入力ターミナルと少なくとも一つの割込み出力ターミナルがあるように設定しなければならない。
【００１７】
（１−３）HID分類ディスクリプター
本発明のHID分類ディスクリプターに対する設定は、HIDプロトコール第1.10版または第1.10版以上のバージョンをサポートすると示すと、本設備が一つの“報告ディスクリプター”があると示し、当該の報告ディスクリプターの長さが58バイトと示すことを含む。
【００１８】
（１−４）HID報告ディスクリプター
本発明の報告ディスクリプターに対する設定は、本来製品の部分を対応すると、設備からホストへ転送する入力型報告を定義すると、ホストから設備へ転送する出力型報告を定義すると、上記の入力型報告と出力型報告の長さがブロックターミナルバッファーメモリの容量より大きいまたは等しいと定義することを含む。
【００１９】
（２）データの組織方式
データ転送は、ホストからUSB設備に転送するにしても、USB設備からホストへ転送するにしても、報告の長さに従って完成するのであり、即ち毎回６４バイトを転送する。６４バイトより多いデータが、６４バイトサイズの一連のデータブロックに分けて転送し、受信側は、全てのブロックを完全なデータに組み立てる。
【００２０】
各報告の６４バイトに、先頭の６バイトはこの報告と全体のデータブロックの関係を表して、残りの５８バイトは本当のデータである。先頭の6バイトに、第１バイトと第２バイトは、全てのデータの総長を示し、第３バイトと第４バイトは本報告の持った有効データの長さを示し、第５バイトと第６バイトは本報告の持ったデータが全体のデータにあるオフセット位置を示している。
【００２１】
（３）図１は本発明のコマンド及びデータ受信のフローである。
【００２２】
ステップ１０１、USB設備に電源を入れる。
【００２３】
ステップ１０２、USB設備は初期化を行う。
【００２４】
ステップ１０３、コントロールターミナルに発送請求があるかを判断する、ある場合はステップ１０４を実行し、ない場合はステップ１０５を実行する。
【００２５】
ステップ１０４、HID報告であるかを判断して、そうであれば、ステップ１０６を実行しコマンドを組立て直したら、ステップ１０７によりコマンドを実行し、ステップ１１１で、コントロールターミナルより結果と状態を返し、最後にステップ１０３に戻り、引き続きコントロールターミナルから発送される請求を待つ。そうでない場合は、ステップ１０８を実行する。
【００２６】
ステップ１０５、ブロックターミナルにデータの発送があるかを判断する。そうであれば、ステップ１０６を実行しコマンドを組立て直したら、ステップ１０７によりコマンドを実行し、ステップ１１１で、ブロックターミナルより結果と状態を返す。最後に、ステップ１０３に戻り、引き続きコントロールターミナルから発送される請求を待つ；そうでない場合は、ステップ１１１を実行し結果と状態を返し、ステップ１０３に戻り、引き続きコントロールターミナルから発送される請求を待つ。
【００２７】
ステップ１０８、ホストが発送した請求はUSBの標準請求であるかを判断する。そうであれば、ステップ１０９を実行し標準請求の処理を行う。そうでない場合は、ステップ１１０を実行し請求がサポータされていないと返信する。
【００２８】
ステップ１０９と１１０を実行した後、ステップ１１１を実行し結果と状態を返す。最後に、ステップ１０３に戻り、引き続きコントロールターミナルから発送される請求を待つ。
【００２９】
上記のフローにステップ１０３と１０４に述べたようにコントロールターミナルによりデータを発送する過程は、USB設備の汎用性を考えて設計されたが、具体的に実現する時には必須なものではない。
【００３０】
具体的に実現する時に、USB設備が大量なデータ通信が必要としない場合は、上記のフローのステップ１０６によるコマンドの組立て直しを実行せずに、直接にステップ１０７によりコマンドを実行しても良い。
【００３１】
（４）図２は本発明のコマンド実行と結果返信のフローである。
【００３２】
ステップ２０１、USB設備はコマンドの組立て直しと実行の状態に入る。
【００３３】
ステップ２０２、USB設備はデータのオフセットと長さを取得する。
【００３４】
ステップ２０３、USB設備はデータのオフセットと長さに基づいて、ブロックターミナルバッファエリアにデータをコピーする。
【００３５】
ステップ２０４、USB設備はデータの総長を取得する。
【００３６】
ステップ２０５、USB設備はオフセットにデータの長さを加算したらデータの総長さと等しいかを判断して、等しくない場合はステップ２０６を実行し、USB設備はコマンドの組立て直しと実行を中断し、次の報告の処理を行い、等しい場合はステップ２０７を実行する。
【００３７】
ステップ２０７、USB設備はブロックターミナルバッファエリア内のデータが正常であるかを判断して、不正の場合は、ステップ２０９を実行してコマンドエラー状態を設定したらステップ２１０を実行し、正常の場合は、ステップ２０８を実行する。
【００３８】
ステップ２０８、USB設備はファイル選択コマンドなどのコマンドを実行する。
【００３９】
ステップ２１０、このコマンドがブロックターミナルから発送されたかを判断して、そうであれば、ステップ２１２を実行してブロックターミナルから結果と状態を返し、そうでない場合は、コントロールターミナルから結果と状態を返す。
【００４０】
ステップ２１３、終了して、改めて新しいコマンドループに入る。
【００４１】
以上の実施形態は、本発明が選んだ具体的な実施態様の一つに過ぎず、当業者の知識に基づき行った種種の改良、修正、変更と入替えは、本発明の保護範囲内に含む。
【００４２】
（発明の効果）
本発明は、ブロックターミナルを割込みターミナルに模擬して、データ通信量が大きいかつ高速データ通信が必要であるUSB設備をHID設備と設計された場合の通信速度が遅くなる問題を解決し、HIDの通信速度を高めた。
【図面の簡単な説明】
【００４３】
【図１】図１は、本発明のコマンド及びデータ受信のフロー図であり、データの転送方向はホストから設備へである。
【図２】図２は、本発明のコマンド処理及び結果返信のフロー図であり、データの転送方向は設備からホストへである。
【図１】
2008065823.tif 000003
【図２】
2008065823.tif 000004