(57)【要約】【課題】複数のスレーブデバイスのそれぞれに対して、固有のデバイス識別子を効率的に設定することが求められる。【解決手段】バスに接続された複数のデバイスのそれぞれに対して固有のデバイス識別子を設定する設定装置であって、複数のデバイスを選択待ちモードとする選択動作コマンドを、バスを介して送信する選択動作コマンド送信部と、選択待ちモードの複数のデバイスの中からデバイス識別子を設定する対象デバイスを選択する選択回路と、対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、バスを介して送信する識別子設定コマンド送信部と、を備える設定装置を提供する。【選択図】図１
2019046104.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続された複数のデバイスのそれぞれに対して固有のデバイス識別子を設定する設定装置であって、
前記複数のデバイスを選択待ちモードとする選択動作コマンドを、前記バスを介して送信する選択動作コマンド送信部と、
前記選択待ちモードの前記複数のデバイスの中からデバイス識別子を設定する対象デバイスを選択する選択回路と、
前記対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、前記バスを介して送信する識別子設定コマンド送信部と、
を備える設定装置。
【請求項２】
前記選択回路は、前記選択待ちモードの前記複数のデバイスのうち前記対象デバイスとして選択するデバイスの選択用端子に予め定められた電圧を印加する請求項１に記載の設定装置。
【請求項３】
前記選択用端子は、前記バスに接続されない端子である請求項２に記載の設定装置。
【請求項４】
固有のデバイス識別子が設定された前記対象デバイスを通常動作状態にする通常動作コマンドを、前記バスを介して送信する通常動作コマンド送信部を更に備える請求項１から３のいずれか一項に記載の設定装置。
【請求項５】
前記選択回路は、第１の前記対象デバイスに対してデバイス識別子が設定されたことに応じて、前記複数のデバイスの中から次にデバイス識別子を設定すべき第２の前記対象デバイスを選択し、
前記識別子設定コマンド送信部は、前記第２の対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、前記バスを介して送信する
請求項１から４のいずれか一項に記載の設定装置。
【請求項６】
前記識別子設定コマンドは、前記対象デバイスが有する複数のデバイス識別子の候補のうちのいずれかを前記対象デバイスのデバイス識別子として設定する請求項１から５のいずれか一項に記載の設定装置。
【請求項７】
前記複数のデバイスのそれぞれは、前記バスに接続されたスレーブデバイスであり、
前記選択動作コマンド送信部および前記識別子設定コマンド送信部は、マスタデバイスに設けられる
請求項１から６のいずれか一項に記載の設定装置。
【請求項８】
他のデバイスと共にバスに接続され、設定装置により固有のデバイス識別子の設定を受けるデバイスであって、
バスに接続されるバスインターフェイスと、
バスに接続された複数のデバイスを選択待ちモードとする選択動作コマンドを、前記バスを介して受信したことに応じて、当該デバイスを選択待ちモードとする選択待ちモード切替部と、
前記選択待ちモードにおいて、デバイス識別子を設定する対象デバイスとして選択されたか否かを検出する選択検出部と、
前記対象デバイスとして選択されている間に、前記対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを前記バスを介して受信したことに応じて、当該デバイスのデバイス識別子を設定する設定部と
を備えるデバイス。
【請求項９】
バスに接続された複数のスレーブデバイスのそれぞれに対して固有のデバイス識別子を設定する設定方法であって、
マスタデバイスが、前記複数のスレーブデバイスを選択待ちモードとする選択動作コマンドを、前記バスを介して送信し、
選択回路が、前記選択待ちモードの前記複数のスレーブデバイスの中からデバイス識別子を設定する対象デバイスを選択し、
前記マスタデバイスが、前記対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、前記バスを介して送信する
設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設定装置、デバイス、および設定方法に関する。
【背景技術】
【０００２】
従来、マスタデバイスを複数のスレーブデバイスにバス接続し、マスタデバイスが対象とするスレーブデバイスに固有のデバイス識別子を指定したコマンドを送信して各スレーブデバイスを個別に制御するインターフェイス方式が用いられている。
【０００３】
例えばカメラ等のレンズを各軸方向等の複数のアクチュエータで移動させて制御する手振れ補正機能（ＯＩＳ：Ｏｐｔｉｃａｌ  Ｉｍａｇｅ  Ｓｔａｂｉｌｉｚｅｒ）を実行する場合、複数のアクチュエータを駆動する複数の駆動装置（スレーブデバイス）のそれぞれは、制御装置（マスタデバイス）から当該駆動装置に対するデバイス識別子を受信してレンズの目標位置の情報を受け取って、アクチュエータを駆動する。
【０００４】
このようなマスタデバイスと複数のスレーブデバイスとの間の通信のために、各スレーブデバイスを識別するための固有のデバイス識別子を設定する必要がある。従来、チップセレクトピン、チップイネーブルピン、ＤＩＰ（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｐａｃｋａｇｅ）スイッチ、またはジャンパブロック等のコネクタを利用して、ユーザによりビットをセットして、各スレーブデバイスにデバイス識別子を設定していた。
【０００５】
特許文献１には、スレーブデバイスが、当該スレーブデバイスとマスタデバイスとの間のクロック信号線およびデータ信号線の接続状態（スレーブデバイスがマスタデバイスと順接続または逆接続のいずれであるか）を判別して、接続状態に従って自身のアドレスを切り替えることが記載されている。特許文献２には、スレーブデバイスにおいて、比較器回路の出力する値をアドレスの一部とすることが記載されている。引用文献２において、比較器回路は、スレーブデバイスの出力端子ＯＵＴと基準電圧とが入力に接続され、出力端子ＯＵＴにＶＤＤが接続されると値１を出力し、ＧＮＤが接続されると値０を出力するものである。
特許文献１  特開２０１７−０９７７８７号公報
特許文献２  特開２０１５−０４３２４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これらのようなデバイス識別子設定のために、チップイネーブルピン等を用いるとピン数が増加して、デバイスコストが増加し、またシステムが複雑になる可能性がある。そこで、複数のスレーブデバイスのそれぞれに対して、固有のデバイス識別子を効率的に設定することが求められる。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の態様においては、バスに接続された複数のデバイスのそれぞれに対して固有のデバイス識別子を設定する設定装置であって、複数のデバイスを選択待ちモードとする選択動作コマンドを、バスを介して送信する選択動作コマンド送信部と、選択待ちモードの複数のデバイスの中からデバイス識別子を設定する対象デバイスを選択する選択回路と、対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、バスを介して送信する識別子設定コマンド送信部と、を備える設定装置を提供する。
【０００８】
本発明の第２の態様においては、他のデバイスと共にバスに接続され、設定装置により固有のデバイス識別子の設定を受けるデバイスであって、バスに接続されるバスインターフェイスと、バスに接続された複数のデバイスを選択待ちモードとする選択動作コマンドを、バスを介して受信したことに応じて、当該デバイスを選択待ちモードとする選択待ちモード切替部と、選択待ちモードにおいて、デバイス識別子を設定する対象デバイスとして選択されたか否かを検出する選択検出部と、対象デバイスとして選択されている間に、対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドをバスを介して受信したことに応じて、当該デバイスのデバイス識別子を設定する設定部とを備えるデバイスを提供する。
【０００９】
本発明の第３の態様においては、バスに接続された複数のスレーブデバイスのそれぞれに対して固有のデバイス識別子を設定する設定方法であって、マスタデバイスが、複数のスレーブデバイスを選択待ちモードとする選択動作コマンドを、バスを介して送信し、選択回路が、選択待ちモードの複数のスレーブデバイスの中からデバイス識別子を設定する対象デバイスを選択し、マスタデバイスが、対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、バスを介して送信する設定方法を提供する。
【００１０】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るシステムの構成例を示す。
【図２】本実施形態のシステムにおける、マスタデバイス、スレーブデバイス、および選択回路の構成例を示す。
【図３】本実施形態における設定方法のフロー図である。
【図４】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図５】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図６】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図７】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図８】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図９】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図１０】本実施形態において、複数のスレーブデバイスのそれぞれに対してデバイス識別子を設定する設定方法の説明図である。
【図１１】本発明の複数の態様が全体的又は部分的に具現化されうるコンピュータ１２００の例を示す。
【発明を実施するための形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、本実施形態に係るシステム１０の構成例を示す。システム１０は、マスタデバイス１００と、バス１１０と、バス１１０を介してマスタデバイス１００に接続される複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎ（以下、単に「複数のスレーブデバイス１２０」または「スレーブデバイス１２０」とも呼ぶ）と、選択回路１３０とを備える。本実施形態において、マスタデバイス１００および選択回路１３０は、複数のスレーブデバイス１２０を選択待ちモードとしてから対象のスレーブデバイス１２０を選択して、対象のスレーブデバイス１２０に固有のデバイス識別子を設定していく設定装置として機能する。
【００１４】
本実施形態において、システム１０は、一例として、カメラ等のレンズを各軸方向のアクチュエータによって駆動することにより、手振れ補正およびピント合わせ等を行うレンズ駆動システムである。複数のスレーブデバイス１２０のそれぞれは、複数のアクチュエータのそれぞれを駆動するために設けられたドライバ回路であってよい。
【００１５】
マスタデバイス１００は、一例として、複数のスレーブデバイス１２０にバス１１０を介して接続されると共に、選択回路１３０に接続される。マスタデバイス１００は、例えばマイクロコントローラ、プロセッサ、またはこれらを含むコンピュータである。マスタデバイス１００は、初期化処理またはパワーオン処理等において、バス１１０に接続された複数のスレーブデバイス１２０を個別に識別可能とするために、複数のスレーブデバイス１２０のそれぞれに固有のデバイス識別子を設定する設定動作を行う。また、マスタデバイス１００は、初期化処理等の後の通常動作において、互いに異なるデバイス識別子が設定された複数のスレーブデバイス１２０のそれぞれを個別に制御して、システム１０の目的に沿ったアプリケーション動作である通常動作（すなわち例えばレンズ駆動動作）を行う。
【００１６】
マスタデバイス１００は、上記の設定動作および通常動作において、バス１１０を介してコマンドを対象とするスレーブデバイス１２０に送信する。また、マスタデバイス１００は、上記の設定動作中に選択回路１３０を制御して、複数のスレーブデバイス１２０のうちデバイス識別子を設定する対象のスレーブデバイス１２０を選択させる処理を行わせる。
【００１７】
バス１１０は、複数のスレーブデバイス１２０に接続され、スレーブデバイス１２０とマスタデバイス１００との間の通信に用いられる。本実施形態において、バス１１０は、一例としてＩ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスであり、クロック信号を伝送するクロック信号線（ＳＣＬ）およびデータ信号を伝送するデータ信号線（ＳＤＡ）を有する。これに代えて、バス１１０は、他の各種のシリアルバスまたはパラレルバスを用いてもよい。
【００１８】
複数のスレーブデバイス１２０は、バス１１０に接続されない選択用端子１２１−１、１２１−２、１２１−３、・・・１２１−ｎ（以下、単に「選択用端子１２１」とも呼ぶ）において、制御対象１、２、３、・・・ｎにそれぞれ接続される。スレーブデバイス１２０は、デバイス識別子の設定動作および通常動作において、マスタデバイス１００からコマンドを受信し、受信したコマンドが当該受信したスレーブデバイス１２０に既に設定されているデバイス識別子を含む場合には、コマンドに含まれるデータを記憶および／または処理する。複数のスレーブデバイス１２０は、一例として同一のデバイスであってよく、システム１０における使用形態までは考慮せずに製造されるため、例えば全てのスレーブデバイス１２０が同一のデバイス識別子を初期のデバイス識別子として設定される等、最初からシステム１０内においてそれぞれが必ず固有のデバイス識別子を有する状況にはならない。このため、複数のスレーブデバイス１２０のうちの少なくとも１つは、デバイス識別子の設定動作において、設定対象のデバイスとして選択され、マスタデバイス１００からのコマンドに応じて固有のデバイス識別子が設定される。
【００１９】
スレーブデバイス１２０は、例えばアクチュエータ等の制御対象に接続される出力端子を有し、通常動作において、出力端子を介して制御対象を制御する。また、本実施形態においては、出力端子が選択用端子１２１を兼ねており、デバイス識別子の設定動作においては、選択用端子１２１は、複数のスレーブデバイス１２０のうち設定対象のデバイスを選択するための端子として機能する。
【００２０】
選択回路１３０は、複数のスレーブデバイス１２０の選択用端子１２１にそれぞれ接続される。選択回路１３０は、デバイス識別子の設定動作において、マスタデバイス１００からのコマンドに応じて、複数のスレーブデバイス１２０の中からデバイス識別子を設定する対象デバイスを選択用端子１２１を介して選択する。
【００２１】
図２は、本実施形態のシステム１０における、マスタデバイス１００、スレーブデバイス１２０、および選択回路１３０の構成例を示す。図２におけるスレーブデバイス１２０は、他のスレーブデバイス１２０と共にバス１１０に接続されるものであり、図２においては他のスレーブデバイス１２０は省略する。図２におけるスレーブデバイス１２０は、図１に示すシステム１０の複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎのうちのいずれであってもよい。
【００２２】
マスタデバイス１００は、設定制御部２０５と、アプリケーション制御部２１５とを備える。設定制御部２０５は、スレーブデバイス１２０と選択回路１３０とに接続され、デバイス識別子の設定動作のための各種のコマンドをスレーブデバイス１２０と選択回路１３０とに送信する。
【００２３】
設定制御部２０５は、選択動作コマンド送信部２００と、識別子設定コマンド送信部２１０と、通常動作コマンド送信部２２０とを有する。選択動作コマンド送信部２００は、バス１１０に接続され、複数のスレーブデバイス１２０を選択待ちモードとする選択動作コマンドを、バス１１０を介して複数のスレーブデバイス１２０に送信する。識別子設定コマンド送信部２１０は、バス１１０に接続され、対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、バス１１０を介して複数のスレーブデバイス１２０に送信する。通常動作コマンド送信部２２０は、バス１１０に接続され、固有のデバイス識別子が設定された対象デバイスを通常動作状態にする通常動作コマンドを、バス１１０を介して対象デバイスであるスレーブデバイス１２０に送信する。これらのコマンドは、宛先となるスレーブデバイス１２０の既に設定されているデバイス識別子を含んでよい。
【００２４】
アプリケーション制御部２１５は、スレーブデバイス１２０に接続され、通常動作においてスレーブデバイス１２０を制御する各種のコマンドを送信する。アプリケーション制御部２１５は、例えば、手振れ補正機能を実行するカメラ等においてレンズの目標位置等を算出して、スレーブデバイス１２０に当該目標位置等を示すコマンドを送信し、スレーブデバイス１２０にアクチュエータ等の制御対象を制御させる。
【００２５】
スレーブデバイス１２０は、バスインターフェイス２３０と、識別部２４０と、記憶部２５０と、選択待ちモード切替部２６０と、選択検出部２７０と、設定部２８０と、アプリケーション処理部２９０とを有する。なお、図２は、スレーブデバイス１２０のデータ端子ＳＤＡに接続されるバス１１０のデータ信号線のみを示し、クロック信号線は省略する。
【００２６】
バスインターフェイス２３０は、バス１１０のデータ信号線が接続されたデータ端子ＳＤＡおよびクロック端子ＳＣＬ（不図示）に接続され、デバイス識別子の設定動作および通常動作において、マスタデバイス１００との間で送受信されるデータを処理する。バスインターフェイス２３０は、入力バッファ２３２と、ノイズ除去フィルタ２３３と、シリアル／パラレル変換部２３４と、遅延フィルタ２３５と、出力バッファ２３６とを有する。
【００２７】
入力バッファ２３２は、データ端子ＳＤＡに接続され、データ端子ＳＤＡで受信したデータをバッファしてノイズ除去フィルタ２３３に送信する。ノイズ除去フィルタ２３３は、入力バッファ２３２に接続される。ノイズ除去フィルタ２３３は、ローパスフィルタ、ハイパスフィルタ、およびバンドパスフィルタのいずれかでよく、また、これらの組み合わせでもよい。ノイズ除去フィルタ２３３は、入力バッファ２３２から受信したデータのノイズを除去して、シリアル／パラレル変換部２３４に送信する。
【００２８】
シリアル／パラレル変換部２３４は、ノイズ除去フィルタ２３３と記憶部２５０とに接続される。シリアル／パラレル変換部２３４は、ノイズ除去フィルタ２３３から受信したシリアルデータをパラレルデータに変換して識別部２４０に送信する。また、シリアル／パラレル変換部２３４は、マスタデバイス１００に送信するためのパラレルデータを記憶部２５０から受け取り、シリアルデータに変換して遅延フィルタ２３５に送信する。
【００２９】
遅延フィルタ２３５は、シリアル／パラレル変換部２３４に接続され、マスタデバイス１００に送信されるデータを、予め定められた時間遅延させて、出力バッファ２３６に送信する。遅延フィルタ２３５は、バス１１０のクロック信号線ＳＣＬを介して入力されるクロックの立ち下がり検出から、データ端子ＳＤＡから送信されるデータ信号を遅延させることで、クロックのロー期間中にデータ端子ＳＤＡからデータ信号の出力を確実に行うことができる。
【００３０】
出力バッファ２３６は、遅延フィルタ２３５に接続され、遅延フィルタ２３５からのデータをバッファし、バス１１０を介してマスタデバイス１００に送信する。出力バッファ２３６は、例えば入力されたデータ信号を−１倍して反転増幅する。出力バッファ２３６は、スイッチに対する出力により、データ端子ＳＤＡとグラウンド電位との間を電気的に接続または切断する。例えばデータ端子ＳＤＡにプルアップ抵抗を介してハイ電圧が印加されている場合、出力バッファ２３６からスイッチに対する信号がハイになるとプルアップ抵抗からグラウンド電位へと電流を流して電圧降下させ、データ端子ＳＤＡをロー状態とする。また、出力バッファ２３６からスイッチに対する信号がローになるとプルアップ抵抗からグラウンド電位への電流を遮断し、データ端子ＳＤＡをハイ状態とする。これにより、出力バッファ２３６に入力されるデータ信号の論理と略同一の論理信号が、データ端子ＳＤＡから出力される。
【００３１】
識別部２４０は、バスインターフェイス２３０と設定部２８０とに接続される。識別部２４０は、デバイス識別子の設定動作および通常動作において、バスインターフェイス２３０からのデータに含まれるデバイス識別子が、当該スレーブデバイス１２０の既に設定されているデバイス識別子と一致するかを識別する。識別部２４０は、受信したデータのデバイス識別子が当該スレーブデバイス１２０のデバイス識別子と一致する場合には、当該デバイス識別子と共に受信した一連のデータを記憶部２５０に格納する。一方識別部２４０は、受信したデータのデバイス識別子が当該スレーブデバイス１２０のデバイス識別子と一致しない場合には、受信した一連のデータを記憶部２５０に格納せずに破棄等する。識別部２４０は、識別部２４０内または記憶部２５０内に格納されたデバイス識別子を用いて識別を行ってよい。また、識別部２４０は、デバイス識別子の設定動作において、設定部２８０により当該識別に用いるデバイス識別子を設定される。
【００３２】
記憶部２５０は、識別部２４０に接続される。記憶部２５０は、例えば揮発性または不揮発性メモリ等であってよい。記憶部２５０は、マスタデバイス１００から識別部２４０を介して受信したデータおよびマスタデバイス１００へ送信されるデータ等を含む各種のデータを格納する。
【００３３】
選択待ちモード切替部２６０は、記憶部２５０に接続される。選択待ちモード切替部２６０は、デバイス識別子の設定動作において、バス１１０に接続された複数のスレーブデバイス１２０を選択待ちモードとする選択動作コマンドを、マスタデバイス１００からバス１１０を介して受信したことに応じて、スレーブデバイス１２０を選択待ちモードとする。選択待ちモード切替部２６０は、記憶部２５０に選択動作コマンドが格納されたことに応じて、例えばフラグをセットすることにより、通常動作状態から選択待ちモードに切り替えてよい。
【００３４】
選択検出部２７０は、選択用端子１２１に接続される。選択検出部２７０は、デバイス識別子の設定動作において、スレーブデバイス１２０が選択待ちモードにおいて、デバイス識別子を設定する対象デバイスとして選択されたか否かを選択用端子１２１を介して検出し、検出結果を設定部２８０に送信する。選択検出部２７０は、例えば、選択用端子１２１に印加される電圧または選択用端子１２１で受信する信号に基づいて、対象デバイスとして選択されたか否かを検出する。
【００３５】
設定部２８０は、記憶部２５０と選択検出部２７０と選択待ちモード切替部２６０とに接続される。設定部２８０は、デバイス識別子の設定動作において、スレーブデバイス１２０が対象デバイスとして選択されている間に、対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドをバス１１０を介して受信したことに応じて、当該スレーブデバイス１２０のデバイス識別子を設定する。例えば、設定部２８０は、記憶部２５０に識別子設定コマンドが格納されたことに応じて、識別部２４０において既に設定されているデバイス識別子（例えば識別部２４０または記憶部２５０に格納されているデバイス識別子）を新たなデバイス識別子で上書きして変更してよい。設定部２８０は、選択検出部２７０からの検出結果と選択待ちモード切替部２６０によるモード切り替え（例えばフラグの値）とに基づいて、選択待ちモードにおいて当該スレーブデバイス１２０が対象デバイスとして選択されているかを判定してよい。
【００３６】
アプリケーション処理部２９０は、記憶部２５０と選択用端子１２１との間に接続される。アプリケーション処理部２９０は、通常動作において、記憶部２５０に格納されたデータを読み出して各種の処理を実行して、選択用端子１２１を介して信号を出力して制御対象を制御してよい。
【００３７】
図３は、本実施形態において、バス１１０に接続された複数のスレーブデバイス１２０のそれぞれに対して固有のデバイス識別子を設定する設定方法を示すフロー図である。
【００３８】
図４〜１０は、本実施形態において、バス１１０に接続された複数のスレーブデバイス１２０のそれぞれに対して固有のデバイス識別子を設定する設定方法を示す説明図である。
【００３９】
図３のＳ３００では、全てのスレーブデバイス１２０は、デバイス自体の初期化処理またはパワーオン処理等の後に通常動作状態となり、一例として同一のデバイス識別子を有する状態となる。従って、マスタデバイス１００は、複数のスレーブデバイス１２０のうちの特定のスレーブデバイス１２０を対象としたコマンドを送信することができない。なお、通常動作状態では、選択回路１３０は、スレーブデバイス１２０との間の電気的接続を切断した状態であってよい。例えば図４に示すように、全てのスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎは、通常動作状態であり、既に設定されている初期のデバイス識別子がＥ６ｈである。
【００４０】
次にＳ３１０では、マスタデバイス１００は、デバイス識別子Ｅ６ｈを含む選択動作コマンドをバス１１０を介して複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎに送信する。スレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎは、当該選択動作コマンドを受信して、バスインターフェイス２３０で処理し、識別部２４０は、コマンドに含まれるデバイス識別子Ｅ６ｈと既に設定されている初期のデバイス識別子Ｅ６ｈとが一致しているか識別する。識別部２４０は、デバイス識別子が一致していると識別すると、コマンドに含まれるデータを記憶部２５０に格納する。選択待ちモード切替部２６０は、記憶部２５０に格納されたデータを読み取り、選択動作コマンドが格納されたことを確認するとスレーブデバイス１２０を選択待ちモードに切り替える。このような選択動作コマンドの送信により、例えば図５に示すように、全てのスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎが選択待ちモードに切り替わる。
【００４１】
選択待ちモード切替部２６０は、フラグを選択待ちモード切替部２６０内または記憶部２５０内にセットしてよい（例えば選択待ちモードを示すフラグビット＝１）。この際、設定部２８０は、選択待ちモード切替部２６０から、選択待ちモードに切り替わったことを示す信号（またはレジスタ／フラグ値）を受信する。
【００４２】
次にＳ３２０では、マスタデバイス１００が対象デバイスを選択するコマンドを選択回路１３０に送信し、選択回路１３０は、選択待ちモードの複数のスレーブデバイス１２０の中からデバイス識別子を設定する対象デバイスを選択する。マスタデバイス１００は、対象デバイスとなるスレーブデバイス１２０−１を特定するコマンドを選択回路１３０に送信してよく、または、選択回路１３０は、選択するコマンドの受信に応じて予め定められた基準（例えば順番等）に従って複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎの中から対象デバイスを選択するものであってもよい。
【００４３】
選択回路１３０は、選択待ちモードの複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎのうち対象デバイスとして選択するスレーブデバイス１２０−１の選択用端子１２１−１に予め定められた第１の電圧を印加し、他のスレーブデバイス１２０−２、１２０−３、・・・１２０−ｎの選択用端子１２１には、第１の電圧とは異なる第２の電圧を印加してよい。選択回路１３０は、スイッチ等により印加する電圧を切り替えてよい。例えば図６に示すように、選択回路１３０は、対象デバイスとして選択するスレーブデバイス１２０−１の選択用端子１２１に電圧ＶＤＤ（ハイレベル）を印加し、他のスレーブデバイス１２０−２、１２０−３、・・・１２０−ｎの選択用端子１２１には電圧ＶＳＳ（ローレベル）を印加してよい。
【００４４】
なお、例えば選択用端子１２１がプルアップまたはプルダウンされている場合には、選択回路１３０は、対象デバイスの選択用端子１２１のみに接続して第１の電圧を印加し、他のスレーブデバイス１２０には接続しないでよい。また、選択回路１３０は、対象デバイスとして選択されたことを示す信号を、対象デバイスであるスレーブデバイス１２０−１の選択検出部２７０に送信してもよい。なお、検査工程においてプローブ等を用いて選択用端子１２１に電圧を印加する場合等には、選択回路１３０は、マスタデバイス１００に接続されなくてもよい。
【００４５】
選択検出部２７０は、選択用端子１２１に印加されている電圧と、予め定められた閾値電圧とを比較して、対象デバイスとして選択されたことを検出する。選択検出部２７０は、当該スレーブデバイス１２０−１が対象デバイスとして選択されたことを検出すると、検出結果を設定部２８０に送信する。例えば、図６においては、選択検出部２７０は、選択用端子１２１に印加されている電圧が予め定められた閾値電圧より大きい場合に、対象デバイスとして選択されたことを検出してよく、これによってスレーブデバイス１２０−１のみが対象デバイスとして選択されたと認識する。なお、選択検出部２７０は、選択回路１３０から、対象デバイスとして選択されたことを示す信号を受信したことに応じて、対象デバイスとして選択されたことを検出してもよい。
【００４６】
次にＳ３３０では、マスタデバイス１００は、デバイス識別子Ｅ６ｈを含む識別子設定コマンドをバス１１０を介して複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎに送信する。当該識別子設定コマンドを受信した複数のスレーブデバイス１２０−１、１２０−２、１２０−３、・・・１２０−ｎのうち、選択待ちモード中で、選択検出部２７０が対象デバイスとして選択されたことを検出したスレーブデバイス１２０−１の設定部２８０は、識別部２４０に設定されている当該スレーブデバイス１２０−１のデバイス識別子を変更する。対象のスレーブデバイス１２０−１の識別部２４０は、例えば図７に示すように、デバイス識別子を１８ｈに変更される。
【００４７】
識別子設定コマンドは、対象デバイスが有する複数のデバイス識別子の候補のうちのいずれかを対象デバイスのデバイス識別子として設定するものであってよい。例えば設定部２８０は、スレーブデバイス１２０−１による当該識別子設定コマンドの受信に応じて、複数のデバイス識別子の候補のうち、識別子設定コマンドにより指定された（例えば識別子設定コマンドによりｘ番目のデバイス識別子の候補を指定される等）デバイス識別子を設定してよく、または、複数のデバイス識別子の候補のうち、予め定められた基準（順番等）に従ってデバイス識別子を設定してよい。複数のデバイス識別子の候補は、識別部２４０に格納されたものであってよく、または、記憶部２５０に格納されたものであってもよい。なお、新たなデバイス識別子が設定されたスレーブデバイス１２０−１は、識別子設定コマンドに対する応答として、当該設定されたデバイス識別子をマスタデバイス１００にバス１１０を介して通知してよい。
【００４８】
また、識別子設定コマンドは、設定用のデバイス識別子を含むものであってよく、設定部２８０は、受信した当該設定用のデバイス識別子をスレーブデバイス１２０−１の新たなデバイス識別子として設定してよい。
【００４９】
次にＳ３４０では、マスタデバイス１００は、デバイス識別子１８ｈを含む通常動作コマンドをバス１１０を介してスレーブデバイス１２０−１に送信する。スレーブデバイス１２０−１の識別部２４０は、通常動作コマンドに含まれるデバイス識別子１８ｈと変更後のデバイス識別子１８ｈが一致するため、通常動作コマンドのデータを記憶部２５０に格納する。当該スレーブデバイス１２０−１の選択待ちモード切替部２６０は、記憶部２５０に通常動作コマンドが格納されたことに応じてスレーブデバイス１２０−１を通常動作状態に切り替える。この場合選択待ちモード切替部２６０は、モードを示すフラグをリセットして（例えばフラグビット＝０）、通常動作状態に切り替わったことを示す信号を設定部２８０に送信してよい。デバイス識別子がＥ６ｈである他のスレーブデバイス１２０−２、１２０−３、・・・１２０−ｎは、選択待ちモードを維持する。これにより、例えば図８に示すように、デバイス識別子が変更されたスレーブデバイス１２０−１のみが通常動作状態となる。
【００５０】
次にＳ３５０では、マスタデバイス１００は、デバイス識別子を設定すべき全てのスレーブデバイス１２０にデバイス識別子が設定されたかを確認する。
【００５１】
デバイス識別子を設定すべきスレーブデバイス１２０が残っている場合には、Ｓ３２０に戻り、選択回路１３０は、第１の対象デバイスであるスレーブデバイス１２０−１に対してデバイス識別子が設定されたことに応じて、複数のスレーブデバイス１２０の中から次にデバイス識別子を設定すべき第２の対象デバイスを選択する。例えば選択回路１３０は、マスタデバイス１００から次の対象デバイスを選択するためのコマンドを受信することに応じて、または第１の対象デバイスが通常動作状態に戻ったことに応じて、第２の対象デバイスであるスレーブデバイス１２０−２を選択してよい。これにより、例えば図９に示すように、選択回路１３０は、次の対象デバイスであるスレーブデバイス１２０−２の選択用端子１２１−２に電圧ＶＤＤを印加する。
【００５２】
次にＳ３３０では、マスタデバイス１００の識別子設定コマンド送信部２１０は、第２の対象デバイスに固有のデバイス識別子を設定する識別子設定コマンドを、バス１１０を介して送信し、スレーブデバイス１２０−１と同様の方法でデバイス識別子を設定する。そして、Ｓ３４０−Ｓ３５０をスレーブデバイス１２０−１と同様に行い、Ｓ３２０−Ｓ３５０を繰り返す。これにより、デバイス識別子を設定すべき全てのスレーブデバイス１２０のそれぞれに固有のデバイス識別子が設定された場合に、Ｓ３６０でデバイス識別子の設定動作を終了する。ここで、最後のスレーブデバイス１２０−ｎのデバイス識別子は、他のスレーブデバイス１２０のデバイス識別子が既に変更されているため、当該最後のスレーブデバイス１２０−ｎに固有のものであり、変更されなくてもよい。従って、例えば図１０に示すように、スレーブデバイス１２０のそれぞれに固有のデバイス識別子が設定される。
【００５３】
なお、Ｓ３４０においてマスタデバイス１００が通常動作コマンドを送信する代わりに、Ｓ３３０においてデバイス識別子が設定されたスレーブデバイス１２０は自動的に通常動作状態に戻ってもよい。
【００５４】
また、上記の本実施形態においては、Ｓ３１０で送信される選択動作コマンドおよびＳ３３０で送信される識別子設定コマンドは、既に設定されている初期のデバイス識別子を含むことで、識別部２４０により識別されたが、これに代えて、選択動作コマンドおよび識別子設定コマンドは当該デバイス識別子を含まなくともよい。この場合、選択動作コマンドおよび識別子設定コマンドを受信する、バス１１０に接続された全てのスレーブデバイス１２０は、識別部２４０による識別を行うことなく当該受信したコマンドを記憶部２５０に格納し、設定部２８０は、当該スレーブデバイス１２０が対象デバイスとして選択されている場合に新たなデバイス識別子を設定してよい。これにより、初期のデバイス識別子が同一ではない複数のスレーブデバイス１２０がバス１１０に接続されている場合にも、当該複数のスレーブデバイス１２０に新たなデバイス識別子を効率的に設定可能である。
【００５５】
本実施形態のシステム１０により、バス１１０に接続された同一のデバイス識別子を有する複数のスレーブデバイス１２０に対して、選択回路１３０で対象デバイスを選択しながら固有のデバイス識別子を設定することができる。本実施形態のシステム１０では、対象デバイスの選択を、バス１１０が接続される端子とは異なる端子を介して選択回路１３０により行うことができるため、デバイス識別子の設定のための動作が煩雑とならない。また、本実施形態のシステム１０では、デバイス識別子の設定のためのチップイネーブルピン等が不要であるため、チップイネーブルピン等によるシステム全体のコストの増大および実装面積の増大を抑制できる。
【００５６】
図１１は、本発明の複数の態様が全体的又は部分的に具現化されうるコンピュータ１２００の例を示す。コンピュータ１２００にインストールされたプログラムは、コンピュータ１２００に、本発明の実施形態に係る装置に関連付けられるオペレーション又は当該装置の１又は複数の「部」として機能させ、又は当該オペレーション又は当該１又は複数の「部」を実行させることができ、及び／又はコンピュータ１２００に、本発明の実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。このようなプログラムは、コンピュータ１２００に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、ＣＰＵ１２１２によって実行されてよい。
【００５７】
本実施形態によるコンピュータ１２００は、ＣＰＵ１２１２、ＲＡＭ１２１４、グラフィックコントローラ１２１６、及びディスプレイデバイス１２１８を含み、これらはホストコントローラ１２１０によって相互に接続される。コンピュータ１２００はまた、通信インターフェース１２２２、ハードディスクドライブ１２２４、ＤＶＤ−ＲＯＭドライブ１２２６、及びＩＣカードドライブのような入出力ユニットを含み、これらは入出力コントローラ１２２０を介してホストコントローラ１２１０に接続される。コンピュータはまた、ＲＯＭ１２３０及びキーボード１２４２のようなレガシの入出力ユニットを含み、これらは入出力チップ１２４０を介して入出力コントローラ１２２０に接続される。
【００５８】
ＣＰＵ１２１２は、ＲＯＭ１２３０及びＲＡＭ１２１４内に格納されたプログラムに従い動作し、これにより各ユニットを制御する。グラフィックコントローラ１２１６は、ＲＡＭ１２１４内に提供されるフレームバッファ等又は当該グラフィックコントローラ１２１６自体の中に、ＣＰＵ１２１２によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス１２１８上に表示させる。
【００５９】
通信インターフェース１２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ１２２４は、コンピュータ１２００内のＣＰＵ１２１２によって使用されるプログラム及びデータを格納する。ＤＶＤ−ＲＯＭドライブ１２２６は、プログラム又はデータをＤＶＤ−ＲＯＭ１２０１から読み取り、ハードディスクドライブ１２２４にＲＡＭ１２１４を介してプログラム又はデータを提供する。ＩＣカードドライブは、プログラム及びデータをＩＣカードから読み取り、及び／又はプログラム及びデータをＩＣカードに書き込む。
【００６０】
ＲＯＭ１２３０は、内部に、アクティブ化時にコンピュータ１２００によって実行されるブートプログラム等、及び／又はコンピュータ１２００のハードウェアに依存するプログラムを格納する。入出力チップ１２４０はまた、様々な入出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ１２２０に接続してよい。
【００６１】
プログラムが、ＤＶＤ−ＲＯＭ１２０１又はＩＣカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもあるハードディスクドライブ１２２４、ＲＡＭ１２１４、又はＲＯＭ１２３０にインストールされ、ＣＰＵ１２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ１２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ１２００の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【００６２】
例えば、通信がコンピュータ１２００及び外部デバイス間で実行される場合、ＣＰＵ１２１２は、ＲＡＭ１２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェース１２２２に対し、通信処理を命令してよい。通信インターフェース１２２２は、ＣＰＵ１２１２の制御の下、ＲＡＭ１２１４、ハードディスクドライブ１２２４、ＤＶＤ−ＲＯＭ１２０１、又はＩＣカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【００６３】
また、ＣＰＵ１２１２は、ハードディスクドライブ１２２４、ＤＶＤ−ＲＯＭドライブ１２２６（ＤＶＤ−ＲＯＭ１２０１）、ＩＣカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がＲＡＭ１２１４に読み取られるようにし、ＲＡＭ１２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ１２１２は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【００６４】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような、様々なタイプの情報が、情報処理されるべく、記録媒体に格納されてよい。ＣＰＵ１２１２は、ＲＡＭ１２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ１２１４に対しライトバックする。また、ＣＰＵ１２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ１２１２は、当該複数のエントリの中から、第１の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、これにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【００６５】
以上の説明によるプログラム又はソフトウェアモジュールは、コンピュータ１２００上又はコンピュータ１２００近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はＲＡＭのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、これにより、プログラムをコンピュータ１２００にネットワークを介して提供する。
【００６６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６７】
特許請求の範囲、明細書、および図面中において示した装置、システム１０、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００６８】
１０  システム、１００  マスタデバイス、１１０  バス、１２０  スレーブデバイス、１２１  選択用端子、１３０  選択回路、２００  選択動作コマンド送信部、２０５  設定制御部、２１０  識別子設定コマンド送信部、２１５  アプリケーション制御部、２２０  通常動作コマンド送信部、２３０  バスインターフェイス、２３２  入力バッファ、２３３  ノイズ除去フィルタ、２３４  シリアル／パラレル変換部、２３５  遅延フィルタ、２３６  出力バッファ、２４０  識別部、２５０  記憶部、２６０  選択待ちモード切替部、２７０  選択検出部、２８０  設定部、２９０  アプリケーション処理部、１２００  コンピュータ、１２０１  ＤＶＤ−ＲＯＭ、１２１０  ホストコントローラ、１２１２  ＣＰＵ、１２１４  ＲＡＭ、１２１６  グラフィックコントローラ、１２１８  ディスプレイデバイス、１２２０  入出力コントローラ、１２２２  通信インターフェース、１２２４  ハードディスクドライブ、１２２６  ＤＶＤ−ＲＯＭドライブ、１２３０  ＲＯＭ、１２４０  入出力チップ、１２４２  キーボード
【図１】
2019046104.tif 000003
【図２】
2019046104.tif 000004
【図３】
2019046104.tif 000005
【図４】
2019046104.tif 000006
【図５】
2019046104.tif 000007
【図６】
2019046104.tif 000008
【図７】
2019046104.tif 000009
【図８】
2019046104.tif 000010
【図９】
2019046104.tif 000011
【図１０】
2019046104.tif 000012
【図１１】
2019046104.tif 000013