(57)【要約】【課題】電源や負荷を統合的な環境で利用できるようにする。【解決手段】バッテリ４、一時電源５、ＡＣアダプタ６、負荷７が電源バスライン１、接地バスライン２およびデータバスライン（バスシステム）に接続されている。バスシステムに接続されている各ブロックは自らをオブジェクトとして記述し、各ブロックのオブジェクトが、データバスラインを介して相互に状態データ等のやり取りを行う。各ブロックのオブジェクトは、他のブロックのオブジェクトからの要求に基づいて状態データを生成し、これを回答する。回答データを受け取ったブロックのオブジェクトはこれに基づいて電源の供給や消費を制御する。る。【選択図】        図１
2010166811.tif 000002
【特許請求の範囲】
【請求項１】
電源供給装置との通信と負荷の駆動を行う電子機器と、
電力の供給と前記電子機器との通信を行う電源供給装置とを有し、
前記電子機器と前記電源供給装置は設定されたアドレスを用いて情報の通信を行い、該情報の通信によって前記電源供給装置からの電力で前記負荷の駆動が可能と判別したときに、前記電源供給装置から電力の供給を行う
ことを特徴とする電源システム。
【請求項２】
前記電子機器と前記電源供給装置は、前記設定されたアドレスを用いて自身の属性を送信する
ことを特徴とする請求項１記載の電源システム。
【請求項３】
前記電子機器または前記電源供給装置は、前記設定されたアドレスを用いて電源仕様の問い合わせを行う
ことを特徴とする請求項１記載の電源システム。
【請求項４】
前記電子機器は、前記電源供給装置との接続を行うバス接続ポートを備え、
前記電源供給装置は、前記電子機器との接続を行うバス接続ポートを備え、
前記バス接続ポートと接続される１つのバスラインを介して前記通信と前記電力の供給を行う
ことを特徴とする請求項１記載の電源システム。
【請求項５】
前記バスラインを介して電圧仕様と電流仕様を含む電源仕様の通信を行う
ことを特徴とする請求項４記載の電源システム。
【請求項６】
前記電圧仕様は最低供給可能電圧を示す情報を含み、前記電流仕様は最大出力電流を示す情報を含む
ことを特徴とする請求項５記載の電源システム。
【請求項７】
設定されているアドレスを用いて、前記電源供給装置との情報の通信を行い、該情報の通信によって前記電源供給装置からの電力で前記負荷の駆動が可能と判別されて前記電源供給装置から供給された電力で前記負荷を駆動する制御部とを有する
ことを特徴とする電子機器。
【請求項８】
前記制御部は、前記設定されたアドレスを用いて自身の属性を送信する
ことを特徴とする請求項７記載の電子機器。
【請求項９】
前記制御部は、前記設定されたアドレスを用いて電源仕様の問い合わせを行う
ことを特徴とする請求項７記載の電子機器。
【請求項１０】
電力の供給を行う電源部と、
設定されているアドレスを用いて、前記電子機器との情報の通信を行い、該情報の通信によって前記電源部からの電力で前記電子機器における負荷の駆動が可能と判別したとき前記電源部から電力の供給を行う制御部とを有する
ことを特徴とする電源供給装置。
【請求項１１】
前記制御部は、前記設定されたアドレスを用いて自身の属性を送信する
ことを特徴とする請求項１０記載の電源供給装置。
【請求項１２】
前記制御部は、前記設定されたアドレスを用いて電源仕様の問い合わせを行う
ことを特徴とする請求項１０記載の電源供給装置。
【請求項１３】
設定されたアドレスを用いて電子機器と電源供給装置との間で情報の通信を行うステップと、
前記情報の通信によって前記電源供給装置からの電力で前記電子機器における負荷の駆動が可能と判別したときに、前記電源供給装置から電力の供給を行うステップと
を有することを特徴とする電源供給方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、種々の電源や負荷を統合的に管理する技術に関する。
【背景技術】
【０００２】
バッテリー等を電源とする、ポータブル機器の発展にともない、複数のバッテリー搭載機器を同時に使用する機会が増加しつつある。例えば、モバイルコンピュータの画像をＨＭＤ（ヘッドマウンテッド・ディスプレイ）で観測する場合や、モバイルコンピュータをモデムカードを仲介として携帯電話に接続する場合などである。この様な場合においても、現在のところモバイルＰＣ（パーソナル・コンピュータ）にはそれ専用の、またＨＭＤや携帯電話にはそれら専用のバッテリーが用いられ、お互いの間でのエネルギーの融通は無い。
【０００３】
また、ＰＣやその周辺機器の発展に伴いウエアラブルＰＣが提唱され、いくつかの商品化例も見られる様になった。この場合でも、電源に関しては専用に設計されたものが使用され、例え手近に満充電された二次電池があろうとも互換性が無いため流用できない。
【０００４】
一方、ウエアラブルＰＣを含むモバイル機器では、いかに電源を確保するかというのは切実な問題であり、場合によっては手回し発電機の様な機器さえ必要になる。
【０００５】
しかしながら、現在では、各種電源や各種負荷（機器）の間で統一的に電源を制御するアーキテクチャは無く、二次電池やＡＣアダプタ、簡易発電機等を設計するにしてもある特定の機器専用となってしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記に述べた不具合を解決するため、電源供給源と電源消費者という考えに基づいて、それらを抽象化し、統一的に定義し、複数の電源供給源（バッテリーやＡＣアダプタ等）、複数の電源消費者が一つの共通バスライン上に柔軟に着脱可能となるシステムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。ここでは、特許請求の範囲の記載について補足的に説明をしておく。
【０００８】
すなわち、この発明では、電子機器と電源供給装置は設定されたアドレスを用いて情報の通信を行い、この情報の通信によって電源供給装置からの電力で電子機器における負荷の駆動が可能と判別したときに、電源供給装置から電力の供給を行う。
【０００９】
この構成においては、設定されたアドレスを用いて情報の通信が行われるので、送受信するデータに基づいて最適な状態で（予め設定された基準の基づく）電源の供給や消費を行え、また、バスシステムを用いて統合的に電源供給・消費やデータの送受信を行える。したがって、種々の機器間で電源供給・消費について融通し会うことができる。
【００１０】
また、バスシステムが、データバス管理のためにアドレス信号を周期的に発生し、そのアドレス信号に対応する情報は、バスに接続されるブロックが発信するようにしてもよい。
【００１１】
この場合、発生するアドレス信号が、システム上可能な最大数までとすることが好ましい。
【００１２】
また、発生するアドレス信号が、バス上にあるブロックの数＋１としてもよい。
【００１３】
単一のデータバスラインを用いて、それに接続される複数のブロックのアドレスの設定および、データ通信の双方を行うようにすることが好ましい。
【００１４】
また、単一のデータバスラインを用いてそれに接続される複数のブロックのアドレスの設定および、データ通信を二つの段階に分けて行うようにしてもよい。
【００１５】
単一のデータバスラインに複数のブロックが接続され、それら複数のブロックのアドレス付与の方式が以下の特徴を持つことが好ましい。
【００１６】
アドレス設定開始タイミングがすべてのブロックに対して同時（半導体素子のばらつきや回路のディレイ等による差はここでは含まない）であり、
各ブロックはランダムに発生したデータを同じタイミングでデータバスに出力し、従って、データバスライン上にはそれらのオア信号が発生し、
データバスライン上の情報と各ブロックが発生した信号を比較する事で、他のブロックが発生したデータを知る事なく、一つのブロックが特定でき、
特定されたブロックにユニークなアドレスを割り当て、この一連の動作を繰り返す事で最終的にはすべてのブロックにユニークなアドレスが割り当てられる。
【００１７】
また、アドレス付与後に、以下に示すユニークアドレス確認を行うことが好ましい。
データバス管理手段が発生するアドレスに対し、そのアドレスの固有データをデータバス上に出力する事で、オア信号を発生し、
各ブロックが自分の固有データとバス上のデータを照合する事で、自分以外に同じアドレスが存在する事を認識し、
同じアドレスが存在するときには、再度、同位置のアドレスを有するブロックの範囲で、上述のアドレスバス付与を行ないアドレスを振り直す。
【００１８】
また、データバスライン上の特定アドレスに対するブロック属性が消滅した事でブロックの削除を認識し、逆にブロック属性が存在していなかった特定アドレスに対して、ブロック属性を新規検出する事で、ブロックの接続を認識するようにしてもよい。
さらに、バスラインに接続された任意のブロックの間で、双方向のデータ通信が可能であり、かつ、この通信により任意のブロックが（自身を含む）任意のブロックの制御、情報読み出し、情報かき込みが可能なようにすることが好ましい。
【発明の効果】
【００１９】
この発明によれば、以下のような効果を実現できる。１モバイル機器、ウエアラブル機器に対して、共通の電源管理アーキテクチャを提供し、バッテリや電源の共通化がはかれる。
２  異なった種類の電源（一次電池、二次電池、ＡＣアダプター、ＤＣアダプター、発電機）や異なった機器（負荷）の間で、お互いの状況を通信する共通の通信手段および言語体系を提供し、複数の機器間で共通に使用可能な電源関連機器設計ができる。
３  各種の電源供給源を共通のアーキテクチャの中で定義する事により、幅広いエネルギー供給源を機器の電源に使用可能となり、機器使用環境が飛躍的に拡大する。
４  複数の異なった種類の電源が共通のバスラインに論理的に並列接続が可能となり、バスラインに接続する電源の数を増やすだけで、電源容量を上昇できる。
５  本電源管理アーキテクチャはスケーラブルであり、比較的小電力のものから、オブジェクト数が多く、かつ大電力を扱うものまで同一の考えで設計できる。
６  本アーキテクチャに基づいて設計する事により、電源関係ブロックの標準化が可能で、電源システム設計の大幅な省力化が可能である。
７  オブジェクトエミュレータにより、例えばＰＣなどにより電源の動作状態をモニターする事ができ、信頼性の高い電源システムを容易に構築できる。
【図面の簡単な説明】
【００２０】
【図１】この発明の実施例の構成を全体として示す図である。
【図２】上述実施例の電源オブジェクトの構成例を説明する図である。
【図３】上述実施例の一時エネルギーストレージオブジェクトの構成例を説明する図である。
【図４】上述実施例の負荷オブジェクトの構成例を説明する図である。
【図５】上述実施例のバス管理手段を説明する図である。
【図６】上述実施例のアドレス付与を説明する図である。
【図７】上述実施例のアドレス付与を説明する図である。
【図８】上述実施例のアドレス付与を説明する図である。
【図９】上述実施例のアドレス付与を説明する図である。
【図１０】上述実施例のアドレス付与を説明する図である。
【図１１】上述実施例のアドレス付与を説明する図である。
【図１２】上述実施例のアドレス付与を説明する図である。
【図１３】上述実施例のアドレス付与を説明する図である。
【図１４】上述実施例のデータ通信フォーマットを説明する図である。
【図１５】上述実施例のデータ通信フォーマットを説明する図である。
【図１６】上述実施例のデータ通信フォーマットを説明する図である。
【図１７】上述実施例のコマンドの発信、回答を説明する図である。
【図１８】上述実施例を具体例をあげて説明するずである。
【図１９】図１８の負荷の構成を説明する図である。
【図２０】図１８および図１９の動作を説明する図である。
【発明を実施するための形態】
【００２１】
以下、発明を実施するための形態について説明する。
【００２２】
本発明は、ハードウエアとして、電源およびデータバスとそのバスコントローラ、それらバスに接続される電源構成ブロック、ソフトウエアとして電源構成ブロックのオブジェクトモデル化および、バスコントローラの動作メカニズム、電源構成ブロック間の通信フォーマットを包含する一つのアーキテクチャに関するものである。
【００２３】
ここでは内容が多岐にわたるため、次の３部構成で説明する。
第１部：電源構成ブロックをどの様にオブジェクトモデル化するかについて説明。第２部：電源オブジェクトモデルを使用して実際の電源バスシステムをいかに構築するかについて説明する。
第３部：構築された電源バスシステム上で各オブジェクトモデルがどの様に動作するかについて説明する。
【００２４】
［第１部  電源に使用されるブロックのオブジェクトモデル化］
１．電源に使用されるブロックの整理
現在電源関係に使用されている、あるいは可能性のあるブロックは概略以下のものである。
（１）電源供給源
：一次電池（乾電池等）
：ＡＣアダプタ（商用ラインからＤＣを発生させ、機器の電源または二次電池の充電に用いる）
：ＤＣアダプタ（カーバッテリ等のＤＣ電源からターゲット機器に適するＤＣを発生させ、ＡＣアダプタと同様の用途に用いる）
：簡易発電機（エンジン付の発電機から、手動発電機まで）
：太陽電池
：空間の電磁波からエネルギーを発生するもの（例えば、特開平１０−１４６０７７号公報）
：その他各種燃料電池、生体からエネルギーを取り出すもの
（２）電源消費者（負荷）
：各種機器（一般に、この部分が実ユーザに対して何らかの利便性を提供する）
（３）電源供給、消費源
：二次電池（ＮｉＣｄ電池、Ｎｉ水素電池、リチウム電池、リチウムイオン電池、鉛電池等）
（電動自転車におけるモータの様に通常は電力を消費するものだが、制動時に電力発生の可能性をもつブロック（回生制動機能をもつもの）は、後述する理由により（３）ではなく（２）負荷に分類するのが適当である。）
つまり、電源関係で使用されるブロックを、高いレベルで抽象化すると上記３つにわけられ、さらに（３）は（１）と（２）の機能を共通にもつものと考えられる。またこれらを抽象化するには主としてコンピュータプログラミング分野で用いられている考えであるオブジェクトが有効である。従って、以下上記（１）、（２）、（３）をオブジェクトとして定義していくが、最初に簡単にオブジェクトとは何かについて説明する。
【００２５】
２．オブジェクトの説明
オブジェクトとは、通常はコンピュータのプログラミング手法で用いられる用語であって、ある機能を実現する部分をブラックボックスとして扱い、ユーザ（プログラマ）にはその外部から見た仕様のみを与え、プログラミングの効率化を図る事を主目的とする。
【００２６】
オブジェクトは、その機能ブロックの仕様を示すデータ、そしてそれらのデータを変更したり、何らかの機能を実現する関数群から構成される。
【００２７】
オブジェクト指向そのものは特定のプログラム言語専有のものではないが、ここではもっとも一般的なＣ＋＋言語により説明する。
オブジェクトはＣ＋＋においてはクラスとして定義され、例えば次の様なものである。（以下、山下  他著、Ｃ＋＋プログラミングスタイル、ｐ１４７、オーム社より引用）
【表１】
2010166811.tif 000003
この例では、Ｔｕｒｔｌｅ（亀）クラスを定義し、そのデータとして位置座標ｘ、ｙと方向ｄｉｒｅｃｔｉｏｎ、クラスに対する動作を定義するものとして関数ｆｏｒｗａｒｄ（ｉｎｔ），ｔｕｒｎｌｅｆｔ（），ｔｕｒｎｒｉｇｈｔ（）を定義している。つまり、Ｔｕｒｔｌｅというオブジェクトを、その現在位置、進行方向、左回り動作、右回り動作、前進動作というデータおよび機能で規定している。
【００２８】
３．電源に使用されるブロックのモデル化
（３−１）電源システムに使用されるブロックの抽象化
図１は一般的な電源の供給、消費システムを示したもので、１、２、３はそれぞれ電源、ＧＮＤ、信号のためのバスラインである。３の信号バスについては、ＧＮＤ２を共通帰線とする単一の線の場合、電源ラインとは独立に複数の線により構成される場合、さらに電源バス（１）に重畳され物理的には存在しない場合もある。４はバッテリー（ニッケル水素やリチウムイオンの様な二次電池、マンガンやアルカリ等の一次電池を問わない）、５は電気二重層コンデンサを貯蔵源とする様な一時電源、６はＡＣアダプタ（チャージャと兼用の場合もある）、７は負荷となる一般電気機器である。これらバスに接続されるもの（以降でオブジェクトとして定義する）の数は問わない。いずれのブロックもパワーバスラインに必ずしもすべてが同時に物理的に接続されるものではなく、各ブロックとパワーバスラインとの間にスイッチ（実用的には半導体スイッチ）が挿入されている。
【００２９】
電源システムを構成する要素としては上記の様に各種考えられるが、これらの要素を抽象化すると、電源供給源となるもの（一次、ＡＣアダプタ、ＤＣアダプタ等）および、これらから電源を供給される消費者（負荷）に大別できる。オブジェクト指向の特徴の一つは、共通機能を持つ新しいオブジェクトをその元となるオブジェクトから派生させることが可能な点にある。従って、ここでもこのフィロソフィーに従い、まず本電源バスシステムに接続されるオブジェクトを定義し、それより電源供給源オブジェクトと負荷としてのオブジェクトを派生する。ＡＣアダプタや一次電池などは電源供給源オブジェクトから派生させる。電気機器そのものは、本システムからみれば単に負荷オブジェクトとして抽象化される。また１で述べた（３）項に相当するものは電源供給源、および負荷の機能を継承して生成される。実用機器で主要な電源となる二次電池はこの（３）項に属すると考えるのが適当である。
【００３０】
また、二次電池に対する充電方式はそのバッテリーの種類（ＮｉＣｄかリチウムイオンか等）により異なるし、電気二重層コンデンサを用いた一時電源の充電の仕方はバッテリーとも異なる。しかし、これらの相違点もオブジェクト指向の大きなフィロソフィーであるポリモ−フィズムにより統一的に扱え、単にユーザ（この場合は、本アーキテクチャに基づいて電源関係機器を設計する設計者）からは同一のインターフェースで扱える。
【００３１】
（３−２）電源オブジェクト、負荷オブジェクトの投入、切断
図１に示すシステムにおいて、電源供給オブジェクト（図２）、負荷オブジェクト（図４）とも電源バスラインに対してスイッチを有している。電源供給オブジェクト、負荷オブジェクトとも１個の時は、それぞれに電源に対するスイッチを有するのは冗長であるが、複数の電源オブジェクトや負荷オブジェクト、さらには、電源または負荷となるオブジェクトを考慮するとこういう構造にするのが適当である。
【００３２】
この様な構造で、いったい誰がどのオブジェクトの（電源バスに対する）スイッチを投入するかについて以下の様に規定する。
電源供給オブジェクトのスイッチは、複数の電源供給オブジェクトが同じバスライン上に存在するときに、それらのうち一つのみを有効にするために用いる。  複数の電源供給オブジェクトから一つを選択する際には、次のプライオリティー付けに従う。
【００３３】
１  ＡＣアダプタ
２  ＤＣアダプタ
３  二次電池
４  一次電池
５  一時エネルギーストレージ
即ち、最も長時間エネルギーが供給できそうなものの順とする。また、同じレベルの電源供給オブジェクトが存在する場合は、例えばその容量順とかアドレス順とする（これはシステムの実装上の問題である）。
負荷オブジェクトのスイッチ投入は、負荷の先に存在するセットの要求により制御されるのが原則であるので、負荷自身が制御する。この時、制御命令を自分自身に対して発信するようにする。こうすれば、バスライン上のほかのオブジェクトも情報共有ができる。
【００３４】
４．電源供給源ブロックのオブジェクトモデル化
（４−１）最上位オブジェクトモデル
以下、本実施例に示す電源システムに接続されるブロックのオブジェクトモデル化について説明する。
【００３５】
最初に、本電源システムに接続されるすべてのもの（バス管理手段を除く）を含むクラスを定義し、すべてのオブジェクトはこれから派生ないし継承で生成する。従って、このモデルがすべてのクラスの原型となる。
【表２】
2010166811.tif 000004
上記クラスの定義の中で、データとしてアドレスは存在するが、関数としてアドレスを読み出すものはない。これは、本システムの構造上、オブジェクトに対してアドレスを問い合わせる事はできない（つまり、データ問い合わせのベースとなるのがアドレスであるので）からである。
【００３６】
（４−２）電源供給源のモデル化
バッテリーやＡＣアダプタ等の電源供給源の基本モデルとなるものである。このモデルは電源供給源として必要な情報、およびそれに関連する機能をまとめたものである。
【００３７】
図２において、１０はＤＣ電源であり、これがバッテリーであるかＡＣを整流した直流電源であるかは問わない。１１は電流検出のための抵抗、１２は電力バス（１６）との接続を行うためのスイッチ、１９はこの物理装置を論理的なオブジェクトとするためのマイクロプロセッサ（即ち、情報バスライン１７から見込むとこの物理装置は論理的オブジェクトに見える）であり、具体的にはＤＣ電源の電圧や出力電流の測定、スイッチ１２のコントロール、自分自身のバス上のアドレス設定や他のオブジェクトとデータ通信を行う。
【００３８】
この様な一般的な電源供給源のオブジェクトモデル例を以下に示す。
【表３】
2010166811.tif 000005
また、以下に内部データに対するコードの割り当て例を示す。上記モデルだけでは二次電池は対象外であるが、二次電池は上記オブジェクトモデルと負荷オブジェクトモデルを継承して生成されるので、ＰｏｗｅｒＴｙｐｅのコード割り当てに二次電池や一時電源もいれておく。０ｘは１６進数を表す。
【表４】
2010166811.tif 000006
【００３９】
（４−３）エネルギーチャージオブジェクト
これは、エネルギーストレージオブジェクトの充電、および電源供給を担当するものである。このオブジェクトはＡＣアダプターであってもいいし、カーバッテリからチャージする様なＤＣ入力のもの、あるいは、環境に存在する電磁波を電圧に変換する様な他の手段によるものでもいい。チャージャはそのターゲットとするものによってチャージの方式までの異なるので、それらを一まとめにした一般的なモデル例を以下に示す。実際のオブジェクトはこれからさらに派生させて詳細データを定義していく。またそれら個々のチャージャはその実現方式によって、使用するコマンドやパラメータが異なる（例えばＮｉＣｄ電池の充電においても、充電電圧の変化を検出する方式や、電池の温度変化を検出する方式、電池の状態を見ずに微少な電流で充電するいわゆるトリクル充電など種々の方式がある）ので、一般的にコマンド体系を定義するのは困難であるし、また適当ではない。そこで、この様な装置に固有なコマンドに対応するために、本発明報告のコマンド体系には、機器固有コマンドを送受するメカニズムが用意されている（第３部  ７−３参照）。
【表５】
2010166811.tif 000007
チャージャの型のコード割付例を示す。（ＰｏｗｅｒＴｙｐｅの割付例参照）
【表６】
2010166811.tif 000008
【００４０】
５．負荷オブジェクトのモデル化
（５−１）基本負荷オブジェクトのモデル化
基本的な負荷モデルに必要な情報および機能をまとめてモデル化する。実際のユーザにサービスを提供する製品は、本オブジェクト指向電源アーキテクチャにとっては負荷オブジェクトモデルの先に存在するもので、負荷オブジェクトの中に埋没し、それがどの様なものかは関与しない。
【００４１】
図４において１６、１７、１８はそれぞれ電源バス、データバスおよびＧＮＤである。５０は本来の負荷５７（これが実際はユーザに利便性を提供する部分である）を入り切りするためのスイッチ、５５は負荷オブジェクトを生成するマイクロプロセッサである。消費電流は抵抗５１により検出する事を基本とするが、５７の電流消費状況は既知であるので、その５７を制御するマイクロプロセッサ５８より通信路５６を介してデータを入手してもいい。また、５５と５８が同一のプロセッサの場合も当然存在する。５９は電源バス１６の瞬断や、電源供給オブジェクトの交換時の急激な電圧変化を緩和するためのコンデンサで、電気二重層コンデンサや補助的二次電池等が使える。また省略可能な場合もある。
【００４２】
以下にオブジェクト例を示す。
【表７】
2010166811.tif 000009
【００４３】
（５−２）発電負荷オブジェクト
例えば、最終負荷としてモータを考える。モータがトルクを発生している特は、負荷オブジェクトは純粋に負荷であって、そこから電力が生まれてくる事はない。しかしながら、モータを外部より強制的に回転させる力が働くとき（例えば、電動自転車で、モータには電力供給をせずに、慣性力により逆にモータを駆動するとき）には、負荷オブジェクトが回生制動をサポートしているならば、このオブジェクトは電源供給オブジェクトとも成り得る。しかしながら、この様なオブジェクトの実用化には次の問題がある。
【００４４】
即ち、電源バスシステムは、システムのアドレスポーリングタイミングに同期してのみ、電源供給オブジェクトの切り替えを行う事が可能で、システムに非同期に電力発生モードになる訳にはいかない。従って、該当オブジェクト内にこれを解決する手段が要るが、これは具体的には補助充電池や電気二重層コンデンサの様な蓄電手段を設けることになろう。しかもこの補助電源による電力はこのオブジェクト内で使用する様な構築とするのが実用的であるので、単に負荷オブジェクトとして定義するのが最適である。
【００４５】
ただし、電源供給オブジェクト、負荷オブジェクトからの継承で生成できないと言う訳ではない。
【００４６】
６．オブジェクトの継承
（６−１）二次電池のモデル化
二次電池や一時ストレージ等、ある時は電源供給源となるが、ある時は電力消費者（負荷）となるものは電源供給オブジェクトと負荷オブジェクトよりそれぞれの性質を継承して生成するのが適当である。
【００４７】
図２において、ＤＣ電源１０をバッテリーと考えると、この図はそのままバッテリーオブジェクトの内部構成をとなる。この他にバッテリーの保護回路としてのヒューズや温度検出素子等、すでに実用化されている各種構成要素が含まれるが、本発明の趣旨に無関係なので省略する。
【００４８】
以下にオブジェクトモデル例を示すが、これ以外の定義の仕方も存在するし、また新データや新機能をつけ加える事もある。
【表８】
2010166811.tif 000010
ここで、関数の中身（実装方式）は設計項目でありその具現化方式そのものは本発明とは直接の関係はなく、例えばバッテリー残量計算や表示アルゴリズムはすでにカムコーダなどで実現されている。
【００４９】
バッテリーをこの様なクラスとして定義すると、負荷オブジェクトは以下の情報を知る事ができる。
｛１｝  現負荷に対してバッテリーが使用可能か
｛２｝  現在のバッテリーの残容量
｛３｝  現在使用しているバッテリーの（期待）寿命。
【００５０】
また、バッテリーの型名等は負荷オブジェクトには興味ない事がらであるが、バスラインに電源ブロックエミュレータを接続すれば、各ブロックの情報を読み出せ、サービス等に役立てる事も可能となる。従って、これらの補助情報をオブジェクトに持たせる場合もある。
【００５１】
（６−２）一時エネルギーストレージオブジェクト
これは、電気二重層コンデンサ等の大容量コンデンサを使用した、一時的に電圧を貯える事を主機能とするオブジェクトである。図３にブロック図を示すが、ＤＣ電源の部分が電気二重層コンデンサ２０に置き換わっただけで、他は図２と変わらない。マイクロプロセッサ１９は１４より電源が常に供給されるが、もちろん２０に貯えられている電力が放電すれば動作を停止する。そのため２１の様に電力ラインから電力供給を受けるルートを用意しておく。また、電気二重層コンデンサ２０は１６を経由して充電されることも可能であるが、１６を経由せずに、全く別の経路で外部より充電される場合（例えば、電磁誘導により電力バス１６を介さずに）もある。
【００５２】
電気二重層コンデンサの容量は現在、０．１Ｆ程度から１００Ｆ程度が容易に入手できるが、この部分は用途によっては通常の電解コンデンサも使用可能であり、この時は容量は１０μＦ程度から、数千μＦであろう。従って、容量範囲が広いのでμＦを単位として、その係数を別途定義しておく。
【００５３】
これをオブジェクトとして抽象化したものを次の例に示す。
【表９】
2010166811.tif 000011
【００５４】
［第２部  電源オブジェクトモデルによる電源バスシステムの構築］
１．基本システムの構築
前項までで、電源の各ブロックのオブジェクトモデル化は完了したが、これを実際のバスライン上にインプリメントするためには、さらに次の様な機能を定義する必要がある。
【００５５】
まず始めに、今回のバスシステム（電源、ＧＮＤ、データの３線式を仮定する）に電源の各ブロックを任意のタイミングで接続、切断を行う方式を説明する。
【００５６】
図５において、６３はバスライン上に用意されたバス管理手段である。このバス管理手段は本報告でいうオブジェクトとは別のものである。この部分は実際にはマイクロプロセッサで構成され、電源は電源バスから供給される。すなわち、バスライン上に電源供給オブジェクトが接続されない限り動作は開始しない。６１はデータラインのプルアップ抵抗、６２はマイクロプロセッサよりのアドレス管理データをデータバスに出力するためのもので、データラインは各電源オブジェクトとの間でワイアードオアとなっている。６４は電源オブジェクトの一例である（ここでは、データラインがワイアードオアとなっているのを図示するのが目的なので詳細は省略する）。
【００５７】
バス管理手段６３は、それに電源が供給され動作を開始すると図６に示す様に、ある決まった数Ｎ（Ｎの詳細については第３部、１、アドレスフォーマット参照）のアドレスパルスを、サイクリックに発生する。アドレスパルスと次のアドレスパルスの間にはそれらのアドレスに対応するデータをデータバス上に出力する時間ｔが割り当てられている。図７は実際のデータパルス波形を示す。図ではアドレスに４ビット分を割り当てているが、最初は常に０で、アドレスのスタートを表現するため、最大アドレス数は８である。なお、アドレス数の最大はもちろん８に制限されないし、またバス管理手段にはリチウム電池等のバッテリーをあらかじめ装着しておいてもいい。
【００５８】
以上の様な準備をしておいて、次に実際のアドレスの割り当ておよび通信の方式を示す。
【００５９】
（１）アドレス設定モード
バスの状態には大きく分けて、各オブジェクトのアドレスを設定中の状態と、アドレスが確定してオブジェクト間でデータ通信を行っている状態がある。前者をアドレス設定モード、後者をデータ通信モードと定義する。アドレス設定モードは後述する様にアドレス設定プロセスとアドレス確認プロセスから構成される。
【００６０】
アドレス設定モードは負荷オブジェクトがすでに接続された電源バスシステムに電源供給源オブジェクトが始めて接続された場合や、オブジェクトからエラー信号が発生され、再度電源システムの再構築が必要な場合に発生する。バスシステムがデータ通信モード中に新規オブジェクトが追加あるいは取り外しをされた場合には、アドレス設定はデータ通信モードの中で可能なので、アドレス設定モードとならない。（ただし、アドレス設定モードにする様にインプリメントする事はもちろん可能である。）詳細は後述する。
【００６１】
（１−１）アドレス設定プロセス
バスライン上に接続されたオブジェクトにアドレスが定義されていない状態で、電源が入りアクティブになったとき、最初に各オブジェクトにアドレスが定義される。これをアドレス設定プロセスと呼ぶ事にする。
【００６２】
ここで実施しようとしているのは、全く同じタイミングに全く同じアルゴリズムを持った各オブジェクトが、一本のデータバスラインを共有しながら、それぞれを区別しようとするものである。このためには、共通のバスラインに何個のオブジェクトが接続されているかの判定と、それらの区別が必要である。これを例えばアナログ的に実施するならば、プルアップされたデータラインに各オブジェクトが同一のインピーダンスでプルダウンし、データラインのＤＣレベルを観測する方式が考えられる。（すなわち、オブジェクトの数に対応したＤＣレベルが観測される。）これを認識し、オブジェクトを一つずつ切り離していき、最後に残ったものに、まず一つのアドレスを与え、その既存アドレスを得たオブジェクト以外のオブジェクトに対して同じ事を繰り返す。この場合でも、同一アルゴリズムを持ったオブジェクトでは、どれを切り離すかの判定が（各オブジェクト自身）できない。そのため、各オブジェクトに乱数を発生させる機能を用意し、その値によってどのオブジェクトを切り離すか（あるいは残すか）をオブジェクト自身に判断させる。つまり、オブジェクト間で一種じゃんけんをして決める方式である。
【００６３】
このような考えを、完全にディジタル的に実施したものを以下に述べる。
【００６４】
ここでは、最大８個の電源オブジェクトのアドレス設定について説明するが、もちろんこの数は８に制限される訳ではない。図８に示すようにすべてのアドレスパルスのあとには固定長ｌの後ｂ０からｂ７まで８ビット分のアドレス投票区間が用意される。バスラインに接続されているすべての電源オブジェクトは、８ビット長のうちだだ１ビットのみが“１”であるパルス（即ち、データとしては１，２，４，８，１６，３２，６４，１２８のうちの一つ）をランダムに発生し、この区間で同時に投票（出力）する。
【００６５】
図９はその様な投票例であり、オブジェクト１から８までがそれぞれ、ｂ６、ｂ４、ｂ５，ｂ３，ｂ２、ｂ０、ｂ０、ｂ７に投票した場合である。従って、これらのオア出力は最下段に示す様に、１１１１１１０１となる。さて、各オブジェクトはこのオア出力と自分が投票した出力をたよりにアドレスを設定していく。図９のオア出力をみれば、ＬＳＢ側に一番近いビットで“１”になった場所（この場合はｂ０でＬＳＢそのもの）がわかる。ここに投票したオブジェクトをアドレスｍに設定するため、次のアドレスパルス発生タイミング（この時ｍをインクリメントしてもかまわないが、ここでは簡単のため最終的にアドレスが決定されるまでは、アドレスのインクリメントは行わないとする。つまりアドレスｍが設定完了するまで、アドレスｍがバス管理手段により出力される。）の投票権をこれらのオブジェクトだけに与える（投票権を自分が有しているかどうかは各オブジェクト自身が知る事ができ、しかも他のオブジェクトがどう投票したかについて一切知らなくていい点が重要である）。この場合オブジェクト６と７が投票権を得て、図１０に示す様に、再度投票する。この時はｂ２、ｂ４にそれぞれ投票し、オア出力は０００１０１００が得られた。ここでオア出力にはまだ２ビット以上“１”が存在するので、以前と同様にＬＳＢ側に一番近いビットで“１”になった場所に対応するオブジェクトが次回の投票権を得る。この投票の様子を示したのが図１１で、ここではオブジェクト６のみが投票をし、オア出力とオブジェクトの投票ビット位置が一致する。この段階で暫定的にオブジェクト６にアドレスｍを付与する。
【００６６】
ここで暫定的というのは、各オブジェクトが発生する投票場所は全く確率的なもので、たとえば図９でオブジェクト６、７が同じビットに投票すると、６、７に同じアドレスｍを付与してしまう。そこで、この問題をさけるためのアドレス確認プロセスを入れるが、これについては後述する。
【００６７】
さて、確認プロセスも通過して、上記の様に、オブジェクト６のアドレスがｍに確定すると投票権が消滅し、オブジェクト６を除く１から８について、アドレスｍ＋１、ｍ＋２・・・において同様の操作を行う。これを繰り返す事で、最終的にすべてのオブジェクトのアドレスが確定する。
【００６８】
アドレス設定プロセスである事は、バス管理手段がアドレス０のタイミングで発行するデータ中の値で判別する（コマンド＝０ｘ００）。詳細は後述する。
【表１０】
2010166811.tif 000012
【００６９】
（１−２）アドレス確認プロセス
オブジェクトにアドレスｍが暫定割り当てされたならば、アドレス確認プロセスに入る。このプロセスでは、バス管理手段により発生させられたアドレスｍに対して、それぞれ自分のデータを出力し、データバス上の情報（オアデータ）と自分自身のデータを比較する。（図１２参照）
アドレス確認プロセスであることはバス管理手段のアドレス（０）の後にバス管理手段より発行される以下のデータにより判別できる（コマンド０ｘ０１がアドレス確認プロセスを示す）。（データのフォーマットについては第３部参照。）
【表１１】
2010166811.tif 000013
各パケットは、この情報により現在のバスのモードを知る事ができ、暫定アドレスを取得したオブジェクトは、自分の暫定アドレスに続いて自分のデータを出力する。
【００７０】
この時のフォーマットはつぎのとおりである。
【表１２】
2010166811.tif 000014
宛先アドレスは自分自身のアドレスであり（この様に決めておく）、コマンドはアドレス確認プロセスである事を示す値（０ｘ０１）であるが、パラメータに関しては、自分に固有のものを出力する。例えば、パラメータとしてシリアル番号を出力すれば、二つ以上のオブジェクトの固有データのオアを見ることで、自分以外に同時に出力した別オブジェクトの存在が認識できる。
【００７１】
ここで、アドレス重複が検出されたならば、再度アドレス設定プロセスを通過させる。
【００７２】
上記（１−１）、（１−２）のアドレス設定、確認プロセスのフローチャートを図１３に示す。なお、図１３の動作はその記述内容から容易に理解できるので詳細な説明は省略する。
【００７３】
（２）データ通信モード
上記（１−１）、（１−２）項のプロセスを経る事で、各電源オブジェクトのアドレスは一義的にきまる。この後バス管理手段プロセッサは、アドレスを定期的に発行し、それに対応するオブジェクトは自分の存在を示すため、データをバスライン上に出力する。これにより、アドレスが一巡すると、バスライン上にあるすべてのオブジェクトは他のオブジェクトの属性とアドレスを共有する。また、このモードではオブジェクト間同士の通信が行われる。この状態をデータ通信モードと定義する。データのフォーマット等詳細については３部で詳述する。
２．オブジェクトの追加、削除（システムの動的再構築）
オブジェクトが電源バスに追加されたときに、そのデータラインを見る事によって、現在他のアドレスがすべて確定しているか、あるいは確定中かがわかる。すべて確定しているならば、空いているアドレス（つまり、アドレスのあとのデータ部分が空）に続けて、自分のデータを出し始めるだけでいい。バス管理手段プロセッサや、他のオブジェクトは、アドレスのあとにデータが入ってきたのを見て、オブジェクトの追加を認識する。確定中ならば、確定するまで待って、その後同様の動作を開始する。
【００７４】
これ以降は各オブジェクトが必要に応じて、情報の要求、自発的送信を行う。
【００７５】
オブジェクトの削除により、そのアドレスに対応するデータが無くなる（ただし、唯一の電源供給オブジェクトが削除されたときは、システムはそのまま停止する）と、各オブジェクトはこれにより、そのアドレスに付随するオブジェクトの消滅を検出する。この時、管理機能プロセッサはアドレス詰めを行ってもいいし、とりあえずそのアドレスを空きにしておいてもいい（アドレスを現在のオブジェクト数＋１だけポーリングする実装では、アドレス詰めが必須。しかしすべてのアドレスをポーリングする実装ではどちらでもいい）。いずれにしても、オブジェクトの情報はサイクリックにバス上に出力されるので、すべてのオブジェクトは情報の共有が可能である。
【００７６】
［第３部  電源バスシステムの制御体系］
これまでに、第１部で電源を構成する主要ブロックのオブジェクト化について述べ、第２部で実際の電源システムが如何に構築、維持され、また動的に再構築されるかの概要を説明した。第３部では、これらの構築、維持に使用されるコマンド体系（ＡＰＩ群）およびそのフォーマットについて説明する。
【００７７】
なお、以下に示すコード類で総バイト数や宛先アドレスについて、チェックサムを別にしているので注意されたい。
【００７８】
１．アドレスフォーマット
各オブジェクトのアドレスはバス管理機能プロセッサよりサイクリックに発生され、その長さは７ビット（従って、最大アドレス数は１２８であるが、バス管理プロセッサのアドレスを０、ブロードキャストアドレスを１２７と定義する）。このアドレスの間に各オブジェクトが自分のデータをバスラインに乗せる事ができる。この部分のフォーマットを図１４に示す。
【００７９】
図において１００はバス管理機能プロセッサが発生するアドレスであり、先頭（ＭＳＢ）は常に０、そのあと７ビットのアドレスが続く。なお、このアドレス部はアドレス設定モード以外は、単純にインクリメントされていくのでチェックサムは用意していない。
【００８０】
このアドレスの値については次の規定を設ける。
アドレス０（０ｘ００）；これはバス管理機能プロセッサのアドレスと定義する。
アドレス１２７（０ｘ７Ｆ）；これはブロードキャストアドレス。すべてのオブジェクトはこれに続くデータに反応するようになっている。
【００８１】
従って、実際にオブジェクトに使用可能なアドレスは１から１２６までの１２６個である。
【００８２】
また、バス管理手段が発生するアドレスは０から１２６まですべてサイクリックに発生する方式と、アドレス設定モード内のみ、すべてのアドレスを発生し、データ通信モードでは実際に接続されているオブジェクトの数＋１（つまり、新規追加オブジェクトの追加空きスペース）として周期を短くする方式がある。
【００８３】
２．パケットの最大値
１パケットを次の様に定義する。
【表１３】
2010166811.tif 000015
このパケットが一つのアドレスのデータ部分に、最小１個（３バイト）、最大１２７個（３８１バイト）存在する。この３バイトを一単位とする総パケット数を各オブジェクトおよびデータバス管理手段プロセッサが発信するデータの先頭に置く。（図１４の１０１）この値を見ることで、何個のコマンドパケットが存在するか分かるとともに、この数でパケットの同期を取る。
【００８４】
３．アドレス発生周期の最大値
図１５において１０１以降が、各オブジェクトが発信するデータである。
【００８５】
その基本単位は最小３バイトによるパケットであり、パケット数、通信先のアドレス、通信先に対するコマンド、そしてコマンドの引数（パラメータ）より構成される。
【００８６】
アドレスで指定されたオブジェクトがいくつのパケット数を送信するかを示すのが、１０１のパケット数表示バイトであり、ＬＳＢをチェックサムとしているため、最小１、最大１２７である。
【００８７】
図１６に一サイクルの通信形態と、１００ｋｂｐｓの速度で通信した場合の概略時間を示す。情報パケットの最小は３バイト（パケット数、宛先アドレス、コマンド）であるから、同期のための空白ビット等のオーバーヘッドを無視すると最小  ４ｘ１２７（最大アドレス数）＝５０９バイト
最大  （１＋３ｘ１２７）ｘ１２７＝４８．５Ｋバイト
となり、１００Ｋｂｐｓの通信速度なら、一サイクルは
最小  ４１ｍＳ
最大  約３．８秒
となる。最大値は、すべてのアドレスをポーリングし、すべてのアドレスがおのおの１２７バイトのデータを有するときの値であるので、実用的にはこれより十分短い。
【００８８】
４．コマンド発生形態
図１７に各オブジェクトからのコマンドの発信状況および、コマンドに対する回答状況を示す。すべてのコマンドの発信とその回答は１対１になる様に設計され、必ずハンドシェークとなる。アドレスの発生周期１、２、３はこの順に連続している。例えばオブジェクト１（アドレス１をアサインされたオブジェクト）がｎに対してコマンドを発行（２０４）すると、オブジェクトｎはこの内容を発行直後に（つまり、例えば２０６のタイミングまで待たずに）認識できる。そこでこれに対する回答を用意しておき、自分のデータ発信タイミング（これが２０６）で実際に情報発信を行う。また、オブジェクトｎは複数のアドレスにデータを送信できるので、例えばオブジェクト２に対する回答（２０７）やオブジェクト３に対するコマンド発信（２０８）が、自分の割り当てタイミング（つまりアドレスｎを受け取ったあと）の中で可能である。
【００８９】
命令や情報要求（これらはすべてコマンドと総称する）に対する、動作完了や回答時に使用するコマンドは、返答コマンドとして定義した。（コード０ｘ２６）
また、同一宛先に対して複数の命令を送る事も可能で、この時は宛先アドレス−コマンド−パラメータのシーケンスを繰り返し、また回答はコマンド順に発生すると定義する。（２１２、２１３）
コマンドに対する回答のペアはネストを禁止してあり、コマンド−回答の間でエラーが発生した場合には、再度コマンドを発行する等で対処する。また、コマンドを自分自身に対して発行する事も可能であり、例えば負荷オブジェクトをオンするコマンドを負荷オブジェクト自身が発行すれば、バスラインに接続されている他のオブジェクトもこの情報が共有できる。これにより電源供給源オブジェクトは、電流が増えた事を検出せずに、負荷が接続されて事が知れる。
【００９０】
５．バスのモード
電源バスには上述した様に、アドレス設定モードとデータ通信モードがあるが、これの違いはバス上で以下の様に表明される。
【００９１】
アドレス０はバス管理機能プロセッサのアドレスであり、その後に最小３バイトのデータパケットが存在する。（この形式は他のオブジェクトと同じ）。
【００９２】
このデータパケットを用いて、上記モードの表明を行う。
【表１４】
2010166811.tif 000016
これらのモードの遷移は一サイクル（すべてのアドレスポーリング完了まで）単位となる。
【００９３】
６．オブジェクト属性発信体系
電源バスがデータ通信モードになると、各オブジェクトは自身の属性をブロードキャストする。この時のデータの形式は以下の様になる。
【表１５】
2010166811.tif 000017
各オブジェクトはアドレスとそれに付随するコマンド、パラメータを読む事により、現在の電源バスライン上にどのような属性のものが接続されているかが知れる。さらに詳しい情報は必要なオブジェクトが相手先に問い合わせ、認識できる。
【００９４】
７．コマンド体系および使用例
本明細書はコマンド体系全体についての仕様書ではないので、いくつかの使用例におけるコマンド（ＡＰＩ）群について記述する。なお、ここでいうコマンドは広い意味であり、内容的には情報要求命令、要求情報回答、動作命令、モード表明等を含んでいる。
【００９５】
（７−１）データバス管理コマンド
データバス管理コマンドとしてはつぎのものがある。
【表１６】
2010166811.tif 000018
【００９６】
（７−２）データ通信モード中に使用されるコマンド
データ通信モード中に使用されるコマンドとしてはつぎのようなものがある。
【表１７】
2010166811.tif 000019
【００９７】
（７−３）例外コマンド
本アーキテクチャのフォーマットに準拠しない、固有のデータやコマンド等を通信するためのラッパとして次のものを定義する。
【表１８】
2010166811.tif 000020
以下、実際の応用例である
【表１９】
2010166811.tif 000021
パラメータ中に固有情報を挿入するが、その長さはｍパケット（３ｍバイト）となるように調節し、最大１２７パケット（３ｘ１２７バイト）である。
【００９８】
（７−４）データ通信モード中での他のオブジェクトに対する情報要求例
（第１部４−１参照）
負荷オブジェクト（アドレス８）がバスライン上の電源供給オブジェクト（アドレス２）に対し、その詳細情報要求例を示す。
【表２０】
2010166811.tif 000022
ここに、コマンド０ｘ１４はオブジェクトに対するスイッチデータ情報要求、パラメータ０ｘ００は単にスペースを埋めるためのもの、電源供給オブジェクトが発行したコマンドは０ｘ１５でコマンドに対する返事を表現し、パラメータ０ｘ００は、スイッチがオフである。
【００９９】
８．クラス一覧
以下、クラスの一覧を示す。
【０１００】
（８−１）基本クラス
基本クラスはつぎのように記述される。
【表２１】
2010166811.tif 000023
【０１０１】
（８−２）電源供給オブジェクト
電源供給オブジェクトはつぎのように記述される。
【表２２】
2010166811.tif 000024
【０１０２】
（８−３）チャージャ
チャージャはつぎのように記述される。
【表２３】
2010166811.tif 000025
【０１０３】
（８−４）負荷
負荷はつぎのように記述される。
【表２４】
2010166811.tif 000026
【０１０４】
（８−５）二次電池
二次電池はつぎのように記述される。
【表２５】
2010166811.tif 000027
【０１０５】
（８−６）一時電源
一時電源はつぎのように記述される。
【表２６】
2010166811.tif 000028
つぎに、電源および負荷が１つずつの最も基本的な例を用いて具体的に説明する。
【０１０６】
図１８において、バスコントローラ３０１に電源バスライン３０２、ＧＮＤバスライン３０３およびデータバスライン３０４が接続されている。これらバスラインにコネクタ３０７および３０８を介して電源３０５および負荷３０６がそれぞれ接続されている。
【０１０７】
各部の動作状況を説明する。
【０１０８】
（１）電源の内容
ＰｏｗｅｒＳｏｕｒｃｅクラスに属する電源の仕様は以下のものであるとする。
Ｐｏｗｅｒ＿ｔｙｐｅ＝０ｘ００（二次電池でさらにＮｉＣｄ電池であることを示す）
ｃａｔａｌｏｇ＿ｖｏｌｔａｇｅ＝６（公称出力電圧＝６Ｖ）
ｍａｘ＿ｖａ＝６（公称容量＝６ＶＡ）
ｏｕｔｐｕｔ＿ｖｏｌｔａｇｅ＝７（現在の出力電庄＝７Ｖ）
ａｌａｒｍ＿ｖｏｌｔａｇｅ＝５．６（最低供給可能電圧＝５．５Ｖ）
上記データの中で、現在出力電圧が公称出力電圧より高いが充電直後はこの様になるのが普通である。また最低供給可能電圧５．５Ｖは、例えば、これより低い電圧になるまで電池が使用されると電池が痛むという値である。
【０１０９】
（２）負荷の内容
一方ｌｏａｄクラスに属する負荷のデータは以下のものと仮定する。
ｍａｘ＿ｖｏｌｔａｇｅ＝８Ｖ（入力許容最大電圧＝８Ｖ）
ｍｉｎ＿ｖｏｌｔａｇｅ＝４Ｖ（動作可能最小電圧＝４Ｖ）
ｍａｘ＿ｃｕｒｒｅｎｔ＝１Ａ（入力最大電流＝１Ａ）
【０１１０】
（３）電源システムの動作
図１８に示すようなブロックで、電源３０５がバスに接続された後、負荷３０６がバスに接続される場合を想定する。（負荷が先に接続されても、何も起こらない）
図２に示すように電源オブジェクトの中のマイクロプロセッサ１９はＤＣ電源１０がある値以上であればつねに動作している。
【０１１１】
従って電源３０５がバスに接続されると、バス管理手段（バスコントローラ３０１）が動作を開始し、まずアドレス設定モードでシステムが動作する。これにより図１３に示すフローチャートに基づき、電源オブジェクト（電源３０５）のアドレスが決定する（アドレス１となる）。
【０１１２】
アドレスが決定された時点で、このバスには他に電源が接続されていない事（実際には他には何も接続されていない事）がわかるので、バスシステムを使用可能とするため、電源オブジェクトのメインスイッチ（１２）を投入する。
【０１１３】
つぎに負荷オブジェクト（負荷３０６）が接続されると、再度アドレスの調停を行い、負荷オブジェクトのアドレスが決定（アドレス２）する。
【０１１４】
以上のプロセスを経て、電源バスシステムは動作準備が整う。
（４）実際のオペレーション例
電源バスシステムがどの様に使われるかは本発明の趣旨であるアーキテクチャの上のアプリケーションプログラムで決定されるものであるが、以下に一例をしめす。
【０１１５】
負荷として上記の様に（上記（２）項）仮定したが、実際の状況ではこの負荷の先にラジオであるとか、ＰＤＡであるとかの製品が存在する。ここでは一番簡単にするため、オンオフ機能のみ付いている製品で例えばフラッシュライトとする。
【０１１６】
フラッシュライトの場合の負荷オブジェクトの構造を図１９に示す。３０９がマイクロプロセッサ、３１０はメインスイッチで、例えばＭＯＳＦＥＴ、３１２はランプ、３１１がランプのコントロールスイッチ、３１３はアラーム表示ＬＥＤである。
【０１１７】
コネクタ３０８がバスシステムに接続され、負荷オブジェクトのアドレス調停が完了した時点で、マイクロプロセッサは次の様な動作を始める。この動作を図２０に示す。なお、図２０の動作は基本的に図から容易に理解できるので、ここでは簡単に説明を行うのみとする。
【０１１８】
電源電圧の問い合わせ；ＣａｔａｌｏｇＶｏｌｔａｇｅ（）関数を使用して電源オブジェクトに対して公称出力電圧を問い合わせ、これと自分自身の最大許容電圧を比較し、電源電圧が適正かどうか判断する。公称電庄はもちろん実際電圧とは異なるが、これがわかればおよその判断は可能である。もし、非常に厳密な判断が必要なら、そのようなデータや問い合わせＡＰＩを定義すればいい。
【０１１９】
電源の種類問い合わせ；電源電圧は適正でも自分が必要な電流容量を判断するために、電源の種類から判断する。フラッシュライトで最大１Ａならば、ほとんどの一次、二次電池は使用可能である。これも電流容量が正確に知りたいならばそのようなＡＰＩを用意すればいい。
【０１２０】
ここまでで、電源の電圧とおよその供給電流が知れたので、フラッシュライトのコントロールスイッチを検出する。ここでスイッチがオンされちならば、電球１１２に電力を供給する。この後はバッテリー残量を適宜問い合わせ（フローチャートでは、この辺の時間のウェイトをかける部分は省略）、バッテリー残量が少なくなったならば、電球を切り、アラームＬＥＤを点灯する。
【０１２１】
アラームＬＥＤは、フラッシュライト使用中にバッテリが少なくなった時のみでなく、バスシステムに接続されている電源との相性が悪いときにも点灯させて、ユーザに状況を表示するためのものである。
【符号の説明】
【０１２２】
１  電源バスライン
２  ＧＮＤ（接地）バスライン
３  データ（信号）バスライン
４  バッテリー
５  一時電源
６  ＡＣアダプタ
７  負荷（一般電気機器）
１０  ＤＣ電源
１１  電流検出用抵抗
１２  スイッチ
１３、１４、１５、２１  マイクロプロセッサの入出力
１６  電力バスライン
１７  情報バスライン
１８  接地バスライン
１９  マイクロプロセッサ
２０  電気二十層コンデンサ
５０  スイッチ
５１  消費電流検出用抵抗
５２、５３、５４  マイクロプロセッサ５５の入出力
５５  マイクロプロセッサ
５６  通信路
５７  本来の負荷
５８  負荷５７のマイクロプロセッサ
５９  コンデンサ
６０  マイクロプロセッサ
６１  プルアップ抵抗
６２  データ出力用トランジスタ
６３  バス管理手段（バスコントローラ）
６４  電源オブジェクト
【図１】
2010166811.tif 000029
【図２】
2010166811.tif 000030
【図３】
2010166811.tif 000031
【図４】
2010166811.tif 000032
【図５】
2010166811.tif 000033
【図６】
2010166811.tif 000034
【図７】
2010166811.tif 000035
【図８】
2010166811.tif 000036
【図９】
2010166811.tif 000037
【図１０】
2010166811.tif 000038
【図１１】
2010166811.tif 000039
【図１２】
2010166811.tif 000040
【図１３】
2010166811.tif 000041
【図１４】
2010166811.tif 000042
【図１５】
2010166811.tif 000043
【図１６】
2010166811.tif 000044
【図１７】
2010166811.tif 000045
【図１８】
2010166811.tif 000046
【図１９】
2010166811.tif 000047
【図２０】
2010166811.tif 000048