(57)【特許請求の範囲】
【請求項１】
HID_USB通信を用いて、HIDクラスのデバイスを内蔵するUPSを管理するUPS管理装置であって、該UPS管理装置は、
ただ一つの汎用のUSBドライバと、
前記ただ一つの汎用のUSBドライバにアクセスするアプリケーションと、
を備えるが、前記ただ一つの汎用のUSBドライバ以外のUSBドライバを備えておらず、
前記UPSは、実装するUSBデバイス構成として、
コンフィグレーション内に、ただ一つのインタフェースと、
該ただ一つのインタフェースの下位に、転送方式を定義する第１のエンドポイントと、
前記第１のエンドポイントで定義された前記転送方式によって転送を行う第２のエンドポイントと、
を有することを特徴とするUPS管理装置。
【請求項２】
前記UPS管理装置は、前記第１のエンドポイントで定義された転送方式を用いて、前記第２のエンドポイントとの間で、USB対応機器において共通使用される標準リクエストの通信フィールドで定義される「GET_DESCRIPTOR」及び「SET_DESCRIPTOR」の制御パケットを使用して前記アプリケーションだけで前記UPSの状態監視や設定についての情報のやりとりをする、
ことを特徴とする請求項１に記載のUPS管理装置。
【請求項３】
前記転送方式は、コントロール転送である、
ことを特徴とする請求項１または２に記載のUPS管理装置。
【請求項４】
前記UPSは、筐体内に、制御コントローラ部と、デバイスクラスとしてHIDを持つUSB通信カードを装着するカードスロットとを備え、
該カードスロットに前記USB通信カードを実装することで、前記制御コントローラ部並びにUPS管理装置に対してUSB通信できるようにした、
ことを特徴とする請求項１に記載のUPS管理装置。
【請求項５】
前記USB通信カードは、少なくとも、CPUと、RAMと、前記制御コントローラ部から電源が供給される第１のインタフェースと、前記制御コントローラ部との通信を行う第２のインタフェースと、USBケーブルと接続するUSBコネクタポートとを有する、
ことを特徴とする請求項４に記載のUPS管理装置。
【請求項６】
HID_USB通信を用いて、HIDクラスのデバイスを内蔵するUPSを管理するUPS管理装置における管理方法であって、前記UPS管理装置は、
ただ一つの汎用のUSBドライバと、該ただ一つの汎用のUSBドライバにアクセスするアプリケーションとを有するが、前記ただ一つの汎用のUSBドライバ以外のUSBドライバを有しておらず、
前記UPSに実装されるUSBデバイス構成に含まれるコンフィグレーション内のただ一つのインタフェースの下位にある第１のエンドポイントで定義された転送方式による転送を行う第２のエンドポイントに対して、前記アプリケーションが、USB対応機器において共通使用される標準リクエストの通信フィールドで定義される「GET_DESCRIPTOR」及び「SET_DESCRIPTOR」の制御パケットを使用して前記UPSの状態監視や設定についての情報のやりとりをする、
ことを特徴とするUPS管理方法。
【請求項７】
前記転送方式は、コントロール転送である、
ことを特徴とする請求項６に記載のUPS管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスクラスとしてHID(Human Interface Devices)を有するデバイスを内蔵した無停電電源装置(Uninterruptible Power Supply、以後、“UPS”と略称する)に対してHID_USB(Universal Serial Bus)通信を用いて双方向の通信を可能としたUPS管理装置及び方法に関する。特に、UPSをホスト(例．サーバやPC等)が管理するに際して、デバイスクラスとしてHIDを有するデバイスを内蔵したUPSの状態監視や設定などの情報(制御情報)を通信するに際し、従来のRS-232C(COMポート)通信等に代わってHID_USB通信のみを用いて通信可能にするUPS管理装置及び方法に関する。
【背景技術】
【０００２】
まず初めに、UPS（無停電電源装置）について説明する。
UPSは、停電や落雷などの電源異常が発生すると、UPSのバッテリから給電するバックアップ運転に瞬時に切り替えることで、電源を途絶させることなく供給し続けることによって、電源を保護するものであることが当業者によく知られている。
【０００３】
PC(Personal Computer)などコンピュータの電源を保護する目的に使用されるUPSでは、UPSがバックアップ運転になると、バッテリの容量に限りがあるため、バッテリが残っている間にコンピュータを自動的にシャットダウンさせて、電源を切っても安全な状態にする。
【０００４】
コンピュータのシャットダウンが完了すると、それ以降、バックアップの必要が無いため、UPSを停止させて、UPSのバッテリの無駄な放電を抑え、UPSのバッテリの寿命を延ばす。
【０００５】
このようにUPSには、状況に応じて管理装置と連動して動作を行うための通信部が予め用意されており、その通信部を用いてUPSの状態監視や運転／停止などが行われることが多い。
【０００６】
また、UPSをネットワーク上で監視したりする場合もあり、そうした場合には、UPSにネットワーク通信に対応したオプションカードを実装して対応することがある。
ネットワーク通信も様々のものがあり、産業用ネットワークで知られるModbus(登録商標)では、通信を行う前に通信ボーレートや、通信方式(モード)(RTU/ASCII)、パリティビット、デバイスID(identification)などの設定値を決める必要がある。
【０００７】
こうした設定を行うためにも、UPSには通信部が必須となっている。従来では、このUPSとの通信にCOMポートとして知られているRS-232Cが使われていた。
図５は、従来のRS-232C(COMポート)通信を用いたUPS管理装置の構成例を示す図である。図５において、UPS内部のCPUは、変換器(例．A/D変換器,D/A変換器)を制御しながら、入力電圧や出力電圧などの測定情報をフィードバックで得て内部に保持している。
【０００８】
一方、管理装置(PC)では、UPSを管理する「UPS管理プログラム」(アプリケーションプログラム)をPC内にインストールしておき、COMポート(図示のP1ポート)を使ってUPSの情報を入手する。このようにUPSの情報入手のためにCOMポートを使ったRS-232C通信が使用されている。
【０００９】
またUPSにもPCとの通信を行う通信部としてRS-232C通信を可能にするRS-232CドライバICが実装され、8ビットASCIIデータでコマンドをUPS内部のCPUとやり取りする事で、UPSが保持する測定情報を得る事ができる。
【００１０】
ところでRS-232Cは、通信ボーレートやデータビット数など少しのパラメータ設定さえ行えば簡単に通信ができる事から、古くから多くの機器で使用されている。
管理装置(PC)のUPS管理ソフト(アプリケーション)は、そのRS-232C通信で得た情報をもとに、UPSの状態を判断する。
【００１１】
図６は、上記従来のRS-232C通信を用いてUPS管理装置がUPSの電源管理を行う場合の相互間の対応関係を示す図である。図６におけるUPS管理装置とUPSの相互間の対応関係では、UPSが入力異常によりバックアップ運転を行っているかどうかをPC側が得て、その状態が一定時間（OSシャットダウン開始時間）保持されると、PC側ではOSをシャットダウンさせると同時に、UPSにも指定時間後（UPS出力停止遅延時間）に停止するコマンドを送ることで、PCのシャットダウンとUPSの出力停止の動作をリンクして行うことができる。
【００１２】
ところで近年では、PCの低価格化を目的に必要最小限のインタフェースしかPCに実装しないことが多く、汎用的なUSBポートが主流になる一方で、RS-232C通信を行うためのCOMポートの存在しないPCが増えてきている。このため、UPSと通信を行うためにUSBポートをCOMポートに変換したり、UPSをUSBポートに対応させたりする機器の増設が必要になるというコスト増大化の課題がある。
【００１３】
図７は、USB(後述する)を用いた従来のUPS管理装置の構成例(その１)を示す図である。図７においては、一例として仮想COMポートを使ったUPS管理装置について説明する。
初めに管理装置(PC)にUSBドライバソフトウェアをインストールする事で、PC内部に仮想的なCOMポート(図示の仮想COM P1ポート)を作成する。
【００１４】
管理装置(PC)とUPSとをUSBケーブルで接続し、UPSからUSB(後述する)を用いて得たデータを、この仮想的なCOMポートで扱えるデータに変換する事で、従来のRS-232C通信と同じように、仮想のCOMポートを使った通信をUPSと管理装置(PC)との間で行うことが可能になる。
【００１５】
このため、管理装置(PC)のUPS管理プログラム(アプリケーションプログラム)から見ると、従来通り、COMポートで通信しているように見えるため、機器の増設・改変を要さずに通信を行うことができる。
【００１６】
しかしドライバソフトウェアは、OSに強く依存するため、OS環境が変わるたびにドライバソフトウェアを作成する必要があり、それに要する手間が大きくなるという問題がある。
【００１７】
ここで上記したUSB(通信プロトコルを含めて“USB通信”とも称される)について説明する。
USB(“USB通信”)は一般的に4本の通信線で構成されており、物理的にシンプルな構成であるために、実装コストも安く、近年では多くの機器にUSBが実装されている。
【００１８】
例えば、パソコン(PC)などに接続されるデバイス(外部機器)、例えば、キーボード、マウス、USBメモリ、プリンタなど様々な機器との通信に広く使用されている。USBにはそうした様々な機器と通信をするための通信プロトコルが予め設定されている。
【００１９】
通信プロトコルは、パケットと呼ばれる単位で構成され、それぞれのパケットで対応する機器を識別する番号(例．ID)が決められている。様々な機器は、“クラス”という概念で“グルーピング”されており、それぞれの“クラス”に応じてデバイス固有の仕様が定められている。それぞれの機器に対応する“クラス”の仕様詳細は、USB-IF(Implementers Forum)(http://www.usb.org/)に開示されており、誰でも仕様の定義内容を確認することができる。
【００２０】
USBを用いて各デバイスと通信を行うには、その通信を行うためのドライバソフトウェアとアプリケーションソフトウェアが必要となる。ドライバソフトウェアは予めホスト(例．サーバやPC等)にインストールされる必要があり、インストールされていない場合は、不明なデバイスとして扱われ、USBによる通信を行うことができない。
【００２１】
“クラス”に定義されていない新たなデバイスや、メーカ固有のデバイスは、そのデバイスと通信するための専用のドライバソフトウェアを作成し提供しなければならない。
USBは、シリアルバス接続構成であり、複数の機器を接続することができる。シリアルバスは、マスタ-スレーブ方式を採っており、バス・マスタが１つだけとなる構成で接続される。一般に“バス・マスタ”となる側を“ホスト”と呼び、“バス・スレーブ”となる側を“ターゲット”と呼ぶことが多い。
【００２２】
ホストは、PCなどのある程度高性能なコンピュータに実装されていたが、近年は組み込みコンピュータの性能も上がっているため、ホストを持つ組み込み機器も多い。スレーブ(デバイス)は、組み込み機器に多くみられ、比較的簡単に実装が可能になっている。
【００２３】
次に、USBを使うソフトウェアについて簡単に説明する。
管理装置(制御主体)がUSBポートを使うためには、専用のドライバソフトウェア(Operating Systemが使う部分)と、そのドライバ(ソフトウェア)と通信を行うアプリケーション(ユーザが使う部分)とが必要である。
【００２４】
標準的なデバイスクラスとして知られるキーボード、マウス、USBメモリなどのデバイスは、専用のドライバソフトウェアが予めPC等のOperating System(例えば、Windows(登録商標)、Linux(登録商標)、Macintosh(登録商標)等)に組み込まれており、ドライバをインストールすることなくデバイスを使用することができる。そしてUSB通信プロトコルは、ホスト(例．サーバやPC等)が主体になって通信を始めるため、デバイス側から通信を行うことはない。
【００２５】
図８は、USBを用いた従来のUPS管理装置の構成例(その２)を示す図である。図８の左側に図示されているUPS110の内部には、USBデバイス構成(この構成自体は当業者に周知)が示されている。すなわちUSBデバイスは、ディフォルト使用の“エンドポイント0”111と、コンフィグレーション112内に階層的に定義される１以上の“インタフェース”113-1,113-2とを持つようにして構成される。また“インタフェース”113-1,113-2内にも階層的に１以上の“エンドポイント”114,115を持つことができるようにされている。
【００２６】
例えば、図８の左側に示されるUSBデバイス構成では、コンフィグレーション112内に階層的に、インタフェース0、インタフェース1に分かれた、2つのインタフェース113-1,113-2を持ち、インタフェース0(113-1)では、階層的に、転送方式として“コントロール転送”が選択された一つのエンドポイント114-1と、それとは異なるエンドポイント115-1を用いて、当該転送方式を利用してUPS管理装置220のOS内に定義されるUSBドライバ(汎用部)231-1と通信する。
【００２７】
また、インタフェース1(113-2)では、階層的に、転送方式として“バルク転送”が選択された一つのエンドポイント114-2と、それとは異なる別のエンドポイント115-2を使用して、当該転送方式を利用してUPS管理装置220のOS内に定義される、上記インタフェース0が使用するUSBドライバ(汎用部)231-1とは異なる別のUSBドライバ(汎用部)231-2と通信する。
【００２８】
なお、上記インタフェース内の各エンドポイントは、当該コンフィグレーションがアクティブになっているときに使用可能にされるものである。
一方、図８の右側に図示されているUPS管理装置220の内部には、OSが使う部分230として、上記した二つのUSBドライバ(汎用部)231-1,231-2と、それら二つのUSBドライバ(汎用部)231-1,231-2をユーザが使用する部分240としてのアプリケーション(独自作成)241に連携するUSBドライバ(専用部)232とが用意され、アプリケーション(独自作成)241は、USBドライバ(専用部)232を介して上記した二つのUSBドライバ(汎用部)231-1,231-2のいずれかと連携することができるようにされている。USBドライバ(専用部)232は、カーネルモードで動作するドライバとして用意されているものである。
【００２９】
このように従来の構成例(その２)は、図８の左部に示されるUSBデバイス構成のインタフェースが作成されるたびにそのインタフェース内のエンドポイントと通信することになるドライバソフトウェア(USBドライバ(専用部))と、そのドライバ(ソフトウェア)と通信を行うアプリケーション(独自作成)を作成しなければならないようになっていた。
【００３０】
通常、アプリケーション(ソフトウェア)はAPI(Application Programming Interface)を用いて各種OSで動作できるようにされることが多いが、ドライバソフトウェア(USBドライバ(専用部))は、ホスト側のOperating System（OS）から実行されるため、OSがバージョンアップされるたびにドライバソフトウェア(USBドライバ(専用部))を作り直す必要がある、という問題がある。
【００３１】
そんな中にあって、下記特許文献１には、USB装置を所定端末のUSBポートと連結し、当該所定端末の入力手段を外部機器と共有するようにして、USB装置とブルートゥース通信する様々な外部機器に対して、別途の入力手段無しに入力インタフェースを提供できるようにしたUSB装置が開示されている。
【００３２】
また下記特許文献２には、コンピュータとの通信に使用される複数のエンドポイントと、該複数のエンドポイントのうちHIDクラスの通信に使用する少なくとも１つのエンドポイントからキーコードをコンピュータにインタラプト転送する制御部を備えるプリンタであって、複雑な処理を行うデバイスドライバやソフトウェアを使用することなく、コンピュータに備わるアプリケーションにデータを容易に通知することができるプリンタシステムが開示されている。
【先行技術文献】
【特許文献】
【００３３】
【特許文献１】特開２０１２−１９０４３６号公報
【特許文献２】特開２０１２−２１３８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００３４】
上述したように従来では、デバイスクラスに定義されていないデバイス（標準的でないデバイス）にUSBを実装した場合に、そのデバイスとUSB通信を行うためには、ホスト側のドライバソフトウェアとアプリケーションソフトウェアの両方を作成する必要があった。
【００３５】
ドライバソフトウェアは、Operating Systemが使う部分であるため、Operating Systemがバージョンアップされるたびにドライバが正しく動作するかの確認が必要となる。したがって十分な動作確認・評価を実施してからでないと使うことができない。そのため、ドライバソフトウェアの作成には大きなコスト及び時間を要するという課題があった。
【００３６】
また、デバイスクラスに定義されているHID(Human Interface Devices)のような標準的なデバイスとして作成した場合であっても、産業分野によっては、実際の製品用途とは合わないことが多く、そのまま利用できることが少ない。
【００３７】
さらに、デバイスクラスに定義されていても、ホスト側に予めドライバ(ソフトウェア)が準備されていないデバイスも多く、Communication クラスがCOMポートなどのシリアル通信は、標準的なドライバ(ソフトウェア)では使用することができないため、各デバイスメーカーがドライバ(ソフトウェア)も合わせて提供しなければならないといった課題がある。
【００３８】
以上のように近年ではUSBポート(USB通信ポート)が主流となりつつあるが、ドライバ(ソフトウェア)やアプリケーション(ソフトウェア)も合わせて作成して提供する必要があるため、製品開発、運用、保守において多くの時間と費用が掛かってしまうという課題がある。
【００３９】
そこで本発明の目的は、UPS管理装置がHIDクラスのデバイスを内蔵するUPSの状態監視や設定などを行う場合、アプリケーションがUPS管理装置のOSに標準に含まれるUSBドライバを使用してUSB通信するだけでUPSの状態監視や設定などの情報通信を可能にするUPS管理装置を提供することにある。
【課題を解決するための手段】
【００４０】
上記課題を解決するために請求項１に記載のUPS管理装置に係る発明は、
HID_USB通信を用いて、HIDクラスのデバイスを内蔵するUPSを管理するUPS管理装置であって、該UPS管理装置は、
ただ一つの汎用のUSBドライバと、
前記ただ一つの汎用のUSBドライバにアクセスするアプリケーションと、
を備えるが、前記ただ一つの汎用のUSBドライバ以外のUSBドライバを備えておらず、
前記UPSは、実装するUSBデバイス構成として、
コンフィグレーション内に、ただ一つのインタフェースと、
該ただ一つのインタフェースの下位に、転送方式を定義する第１のエンドポイントと、
前記第１のエンドポイントで定義された前記転送方式によって転送を行う第２のエンドポイントと、を有することを特徴とする。
【００４１】
また請求項２に記載の発明は、前記請求項１に記載の発明において、前記UPS管理装置は、前記第１のエンドポイントで定義された転送方式を用いて、前記第２のエンドポイントとの間で、USB対応機器において共通使用される標準リクエストの通信フィールドで定義される「GET_DESCRIPTOR」及び「SET_DESCRIPTOR」の制御パケットを使用して前記アプリケーションだけで前記UPSの状態監視や設定についての情報のやりとりをする、ことを特徴とする。
【００４２】
また請求項３に記載の発明は、前記請求項１または２に記載の発明において、前記転送方式が、コントロール転送である、ことを特徴とする。
また請求項４に記載の発明は、前記請求項１に記載の発明において、前記UPSは、筐体内に、制御コントローラ部と、デバイスクラスとしてHIDを持つUSB通信カードを装着するカードスロットとを備え、
該カードスロットに前記USB通信カードを実装することで、前記制御コントローラ部並びにUPS管理装置に対してUSB通信できるようにした、ことを特徴とする。
【００４３】
また請求項５に記載の発明は、前記請求項４に記載の発明において、前記USB通信カードは、少なくとも、CPUと、RAMと、前記制御コントローラ部から電源が供給される第１のインタフェースと、前記制御コントローラ部との通信を行う第２のインタフェースと、USBケーブルと接続するUSBコネクタポートとを有する、ことを特徴とする。
【００４４】
上記課題を解決するために請求項６に記載のUPS管理方法に係る発明は、
HID_USB通信を用いて、HIDクラスのデバイスを内蔵するUPSを管理するUPS管理装置における管理方法であって、前記UPS管理装置は、
ただ一つの汎用のUSBドライバと、該ただ一つの汎用のUSBドライバにアクセスするアプリケーションとを有するが、前記ただ一つの汎用のUSBドライバ以外のUSBドライバを有しておらず、
前記UPSに実装されるUSBデバイス構成に含まれるコンフィグレーション内のただ一つのインタフェースの下位にある第１のエンドポイントで定義された転送方式による転送を行う第２のエンドポイントに対して、前記アプリケーションが、USB対応機器において共通使用される標準リクエストの通信フィールドで定義される「GET_DESCRIPTOR」及び「SET_DESCRIPTOR」の制御パケットを使用して前記UPSの状態監視や設定についての情報のやりとりをする、ことを特徴とする。
【００４５】
また請求項７に記載の発明は、前記請求項６に記載の発明において、前記転送方式は、コントロール転送である、ことを特徴とする。
【発明の効果】
【００４６】
本発明によれば、UPS管理装置がHIDクラスのデバイスを内蔵するUPSの状態監視や設定などを行う場合、アプリケーションがUPS管理装置のOSに標準に含まれるUSBドライバを使用してUSB通信するだけでUPSの状態監視や設定などの情報通信を行うことができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態に係るHID_USB通信を用いたUPS管理装置の構成例を示す図である。
【図２】本発明の実施形態に係るUPSの構成例を示す図である。
【図３】図２に示したUSB通信カード(オプション)の構成拡大図である。
【図４】本発明の実施形態に係るHID_USB通信を用いたUPS管理装置がUPSの電源管理を行う場合の相互間の対応関係を示す図である。
【図５】従来のRS-232C(COMポート)通信を用いたUPS管理装置の構成例を示す図である。
【図６】図５に示した従来のRS-232C通信を用いたUPS管理装置がUPSの電源管理を行う場合の相互間の対応関係を示す図である。
【図７】USBを用いた従来のUPS管理装置の構成例(その１)を示す図である。
【図８】USBを用いた従来のUPS管理装置の構成例(その２)を示す図である。
【発明を実施するための形態】
【００４８】
以下、本発明の実施の形態について、図を参照しながら詳細に説明する。
図１は、本発明の実施形態に係るHID_USB通信を用いたUPS管理装置の構成例を示す図である。HID(Human Interface Devices)は、数あるUSB(Universal Serial Bus)で記述されたデバイスクラスの一つであって、HIDクラスのデバイスを実装すればUSBでホストとの間で通信を行うことが可能となるものである。
【００４９】
図１の左側に図示されているUPS10の内部には、USBデバイス構成が示され、当該構成のUSBデバイスは、上述したように、ディフォルト使用の“エンドポイント0”11と、コンフィグレーション12内に定義される一つの“インタフェース”13とを持つようにして構成されている。また“インタフェース”13内には、１以上の“エンドポイント”14,15を持つことができるようにされている。
【００５０】
すなわち、図１の左側に示されるUSBデバイス構成では、コンフィグレーション12内に、インタフェース0(13)を持ち、インタフェース0(13)には、転送方式として“コントロール転送”が選択された一つのエンドポイント14と、それとは異なるエンドポイント15を用いて、当該転送方式を利用して管理装置のOS内に定義されるUSBドライバ(汎用部)との間で双方向通信を実現している。
【００５１】
なおインタフェース13内の各エンドポイント14,15は、コンフィグレーション12がアクティブになっているときに使用可能にされるものである。
一方、図１の右側に図示されているUPS管理装置20の内部には、OSが使う部分30として、上記した一つのUSBドライバ(汎用部)31が用意され、当該USBドライバ(汎用部)31はユーザが使う部分40のアプリケーション(ソフトウェア)41に連携できるようにされている。
【００５２】
この場合、アプリケーション(ソフトウェア)41がUSBドライバ(汎用部)31にアクセスするためには、汎用のドライバソフトウェアに直接アクセスするAPI(Application Programming Interface)を使用することで容易に実現することができる。API自体は当業者に周知であるのでここでは説明を省略することにする。
【００５３】
ところでHIDクラスのデバイスであれば、上述したように、USB通信が可能であり、既存のキーボードやマウスなどと同様に、管理装置から離れたUPSであっても、ユーザからの入力を受け付けるデバイスとして機能する。つまりHIDに準拠したデバイスクラスであれば、USBケーブル(不図示)を接続するだけで、UPS管理装置はHIDクラスのデバイスであると認識し、それに応じたデバイスの動作をUPS管理装置が認識できる。
【００５４】
しかしてUPS管理装置が、HIDクラスのデバイスを認識するまでに、通常では、多くのUSB通信を行って判別する必要がある。以下では、USBケーブルの接続からUPS管理装置がHIDクラスのデバイスを認識するまでの通信動作について詳しく説明する。
【００５５】
USB(Universal Serial Bus)には、通信方式として、コントロール転送、バルク転送、インタラプト転送、アイソクロナス転送の４種類があらかじめ準備されており、これらの転送方式は、各デバイスの特徴に合わせて選択される。なお、実際の通信(転送)は、“エンドポイント”と呼ばれる“通信用接続単位”に定義が成されて行われるようになっており、各エンドポイントは識別用のID(identification)を有している。
【００５６】
デバイスの情報をUPS管理装置に通信する前提として、USBデバイス構成に必ず実装される“エンドポイント0”11が使われる。すなわち、“エンドポイント0”11は、UPS10とUPS管理装置20との間における前提となる制御情報のやりとりに不可欠なエンドポイントであって、そのエンドポイントに許容される通信方式は、“コントロール転送”のみ用いられ、当該通信方式を使用して、実際の情報転送(通信)に使用するインタフェース番号、エンドポイントIDなどが両者で事前に決められている必要がある。
【００５７】
“エンドポイント0”11以外の通常のエンドポイント14,15は、上述したように“インタフェース”13によってグルーピングされ、インタフェース13内の一つのエンドポイント14に上記した４つの転送方式(コントロール転送、バルク転送、インタラプト転送、アイソクロナス転送)のどれを使うかを明示する必要がある。
【００５８】
USBデバイスは、コンフィグレーション・ディスクリプタ(詳細は後述)によって定義される１以上のインタフェース13を当該コンフィグレーション12内に持つことができ、さらにインタフェース・ディスクリプタ(詳細は後述)によって定義される１以上のエンドポイント14,15を当該インタフェース13内に持つことができる。そしてエンドポイント14には、データの流れる方向(管理装置から見てIN、OUT)が定義され、送信用=OUT、受信用=INそれぞれに使用するエンドポイントを持つ必要がある。しかしてディスクリプタで情報の流れる方向を予め定義しておけば、上記した“コントロール転送”を使用して双方向の通信を行うことが可能となる。これについては後述する。
【００５９】
USBデバイスはディスクリプタを必ず有しており、その内容は、上述したUSB-IF(Implementers Forum)によって定義されている。
より具体的には、USBデバイスにおけるディスクリプタには、最上位の階層にデバイス・ディスクリプタが、その下位に、コンフィグレーション・ディスクリプタ、さらにその下位に、インタフェース・ディスクリプタとエンドポイント・ディスクリプタとが設けられ、ディスクリプタが階層化されて定義されている。なお、インタフェース・ディスクリプタには、HIDクラス規格に限り、HIDディスクリプタ、その下位に、レポートディスクリプタ及びオプションでフィジカルディスクリプタを定義することも可能である。
【００６０】
デバイス・ディスクリプタには、対応しているUSB仕様のバージョン，デバイスクラス，プロトコル，エンドポイント0に対する転送で利用可能な最大パケット長，ベンダID，プロダクトIDなどの基本情報を含めることができる。
【００６１】
またコンフィグレーション・ディスクリプタには、デバイスの属性，消費電力などの情報を含めることができる。
またインタフェース・ディスクリプタには、インタフェースごとに必要なディスクリプタで、インタフェース識別番号，インタフェースクラス，サポートするエンドポイントの数などを含めることができる。そしてインタフェース・ディスクリプタの下位に、HIDクラス規格限りのHIDディスクリプタが定義され、HIDディスクリプタには、HIDに属するディスクリプタの種類とサイズが定義されるようになっている。
【００６２】
さらに、エンドポイント・ディスクリプタは、インタフェース・ディスクリプタにより指定されたエンドポイントごとに必要なディスクリプタで、転送タイプ(転送方向)，転送で利用可能な最大パケット長，転送のインターバルが定義されている。但し、エンドポイント0は規則によりこのディスクリプタを持つことができない。
【００６３】
本実施形態では、コンフィグレーション12の下位の階層に、一つのインタフェース0(13)が定義され、さらにエンドポイント・ディスクリプタで、転送タイプ(転送方向=IN及びOUTで定義される管理装置からみた方向)、転送で利用する最大パケット長、転送のインターバルなどが定義され、実際の通信の前にUPS10に実装されたUSBデバイスとUPS管理装置20との間で取り決めが行われて、HID_USB通信を実現するようにしている。
【００６４】
より具体的には、UPS管理装置20とHIDクラスのデバイス10とがUSBケーブル(不図示)で接続されると、UPS管理装置20は、エンドポイント0(11)を介してUPS10に対して接続されたデバイスの諸元情報を示す全デバイス共通の“デバイスリクエスト”を送信する。
【００６５】
UPS10に接続されたHIDクラスのデバイスは、要求された“デバイスリクエスト”に対する応答を同じくエンドポイント0(11)を介してUPS管理装置20に返し、その応答の中にUPS管理装置20との通信で使用するエンドポイントの情報を返す。
【００６６】
その上でインタフェース0(13)の下位の階層のエンドポイント14を使って、上記した４つの転送方式の内の“コントロール転送”を選択したことを通知し、UPS管理装置20に対してコントロール転送による通信を行うことを知らせるとともに当該コントロール転送を実施する別のエンドポイント15を指定し、そのエンドポイント15を用いてUPSの状態監視や設定などの情報をやりとりする。
【００６７】
なお、UPS管理装置20から見てINとOUTに方向付けされた情報の流れは、USB対応機器において共通使用される標準リクエストの通信フィールドで定義される「GET_DESCRIPTOR(UPS管理装置20から見たコントロールIN)」及び「SET_DESCRIPTOR(UPS管理装置20から見たコントロールOUT)」の制御パケットを使用して上述の“コントロール転送”だけを使って任意の内容の通信を行うことができる。こうすることで、従来例のような専用のUSBドライバソフトウェア(ドライバと略称される)を不要とし、アプリケーションソフトウェア(アプリケーションと略称される)だけでUPSの状態監視や設定などの情報のやりとりを実現することができる。
【００６８】
なお、図１には、OSが使用する部分30が専用のクラスドライバ(HID)を使って実現することも不可能ではないが、専用のクラスドライバであるが故に、それを使用することになると、それに対応するドライバをUPS10側が用意しなければならないため、本実施形態では敢えて専用のクラスドライバ(HID)を用いずに、一つの汎用のUSBドライバ31を用いてUPSの状態監視や設定などの情報のやりとりを実現している。
【００６９】
図２は、本発明の実施形態に係るUPSの構成例を示す図である。図２に示される本発明の実施形態に係るUPS１は、USB通信カード３をカードスロット２に装着してHID_USB通信を可能とするものである。
【００７０】
より具体的に説明すると、UPS１は、その筐体内に、制御コントローラ部４およびカードスロット２を設けている。図示例は、外装部(不図示)が透視化され、制御コントローラ部４とUSB通信カード(オプション)３とを接続するインタフェース(Ｉ／Ｆと略記)(図中左部参照)、並びに、USB通信カード(オプション)３と不図示のUSBケーブルとを接続するインタフェース(Ｉ／Ｆと略記)(図中右部参照)とが設けられている。
【００７１】
そしてUPS１は、不図示のUPS管理装置とUSB通信するに先立って、カードスロット２にUSB通信カード(オプション)３を装着する。つまり、デバイスクラスとしてHIDを持つUSB通信カード(オプション)３をカードスロット２に装着することで、UPS１が不図示のUPS管理装置とHID_USB通信することが可能となる。
【００７２】
こうすることで、UPS１は、不図示のUPS管理装置とHID_USB通信するUSB通信ポート(USBポート)(図３参照)を実装することが可能となるため、不図示のUPS管理装置がUSBドライバ(汎用部)を備えるだけでHID-USB通信が可能になる。
【００７３】
すなわち、図２に示されるUPS１は、カードスロット２にUSB通信カード(オプション)３を装着することで、USB通信ポート(USBポート)(図３参照)をUPS1に追加し、不図示のUPS管理装置からのHID-USB通信を可能にしている。なお、カードスロット２に脱着可能にされるUSB通信カード(オプション)３の詳細については後述する。
【００７４】
図３は、図２に示したUSB通信カード(オプション)３の構成拡大図である。図３において、UPS1の制御コントローラ部４(図２参照)から電源が供給されるインタフェース３-１と、制御コントローラ部４(図２参照)との通信を行うインタフェース３-２とを備えている。
【００７５】
そしてUSB通信カード(オプション)３内部には、少なくともCPU(Central Processing Unit)３-３、RAM(Random Access Memory)３-４、および、USBコネクタポート(USB通信ポート)３-６が設けられている。
【００７６】
USB通信カード(オプション)３のUSBコネクタポート(USB通信ポート)３-６は、USB通信カード(オプション)３内のCPU３-３に内蔵されるUSBデバイスコントローラ３-５の形式でも、または、専用のUSBデバイスコントローラ３-５の形式のいずれのものであっても良い。
【００７７】
次に、USBコネクタ接続時の動作について説明する。
上述したカードスロット２に、USB接続するためのUSB通信カード(オプション)３を装着すると、不図示のUPS管理装置(ホスト)がエンドポインタ0を使用してデバイス側に、デバイスの構成を問い合せる全デバイス共通の“デバイスリクエスト”を送信する。
【００７８】
デバイス側は、上記“デバイスリクエスト”の応答にHIDクラスのデバイスであることを返し、次いで、上述したエンドポイント・ディスクリプタを使用して、転送タイプ(転送方向=IN及びOUTの双方向)、転送で利用する最大パケット長、転送のインターバルなどを定義して、実際の通信の前にUPSに実装されたUSBデバイスとUPS管理装置との間で取り決めておく。こうしてホスト側とデバイス側とで実際の通信に使用するエンドポイントを確立させる。
【００７９】
本来なら、ここでマウスやキーボードなど予め定義されているデバイス固有のID(identification)をホスト側に返すが、本システムでは、デバイス側がHID汎用機としてのコードをホスト側に返すのみでデバイス固有のIDのやりとりを簡略化している。
【００８０】
エンドポイントが確立されると、ホスト側のUSB通信を行うためのアプリケーション(ソフトウェア)は、「SET_DESCRIPTOR(ホスト側のコントロールOUT)」及び「GET_DESCRIPTOR(ホスト側のコントロールIN)」の制御パケットを使って、UPS内のデバイスの状態を取得したり設定を行ったりするための任意の情報のやりとり（双方向のデータ通信）を行うことができる。
【００８１】
なお制約事項としては、任意の情報の１回のやりとりで送受信できるデータサイズ(ペイロードサイズ)が64バイトまでに制限されているので、それ以上のデータをやりとりする必要がある場合は、複数回に分けて通信を行うことになるのはいうまでもない。
【００８２】
図４は、本発明の実施形態に係るHID_USB通信を用いたUPS管理装置(PC)がUPSの電源管理を行う場合の相互間の対応関係を示す図である。
図４におけるUPS管理装置(PC)とUPSの相互間の対応関係では、UPS側に電源異変(例．出力停止)がなく、通常運転で推移しているかどうかの情報を上述のHID_USB通信を使ってPC側が得て、通常運転が維持されていれば、PC側はＡＣアダプタ接続を維持することで、電源低下の監視を行うことなく推移する。
【００８３】
しかしてUPS側に電源異変が生じて、UPSが通常運転からバックアップ運転に移行し、その状態が、例えば、PC側の監視で一定時間以上継続されていることが判明した場合には、PC側がバッテリ駆動に切り替えることで、PC自身のバッテリ駆動による電源低下の監視が行えるようにする。
【００８４】
このようなバッテリ駆動による電源低下の監視は、市販のノートパソコンで普通に行われていることなので、上述したUPS管理装置がHID_USB通信を用いてUPS内のデバイスにおける電源異変の状態を取得することを契機に容易に実現させることができる。
【００８５】
つまり本例では、UPS管理装置(PC)がUPSの電源管理を行う場合に、PCのバッテリ駆動時の電圧低下監視とUPSの出力停止の動作とを相互間で対応させることで、UPSの電源の監視を行うことができる。
【符号の説明】
【００８６】
１  無停電電源装置(UPS)
２  カードスロット
３  USB通信カード(オプション)
４  制御コントローラ部
３-１  インタフェース(電源用)
３-２  インタフェース(通信用)
３-３  CPU(Central Processing Unit)
３-４  RAM(Random Access Memory)
３-５  USBデバイスコントローラ
３-６  USBコネクタポート(USB通信ポート)
１０  UPS
１１  エンドポイント0
１２  コンフィグレーション
１３  インタフェース0
１４  転送方式を定義するエンドポイント
１５  転送時に使用されるエンドポイント
２０  UPS管理装置
３０  operating systemが使う部分
３１  USBドライバ(汎用部)
４０  ユーザ(user)が使う部分
４１  アプリケーション
【図１】
0006531446.tif 000002
【図２】
0006531446.tif 000003
【図３】
0006531446.tif 000004
【図４】
0006531446.tif 000005
【図５】
0006531446.tif 000006
【図６】
0006531446.tif 000007
【図７】
0006531446.tif 000008
【図８】
0006531446.tif 000009