(57)【要約】【課題】カスケード接続された集積回路に対して一意の識別番号を付与する。【解決手段】前段から識別番号を保持するレジスタに保持するべき第１の値（識別番号）を受信する手段と、受信した第１の値をレジスタに保持する手段と、第１の値に対して、増加値を加算した第２の値（後段の識別番号）を出力する手段と、第２の値を後段へ送信する手段と、後段から識別番号の最大値を保持するレジスタに保持するべき第３の値を受信する手段と、受信した第３の値をレジスタに保持する手段と、第１の値と、第３の値とを比較して大きい方の値を第４の値として選択する手段と、第４の値（識別番号の最大値）を前段へ送信する手段とを備えた。【選択図】図１
2010176374.tif 000002
【特許請求の範囲】
【請求項１】
識別番号を保持するレジスタを特定する第１のインデックスと、前記第１のインデックスで特定されるレジスタに保持するべき第１の値とを受信する第１の受信手段と、
前記第１の受信手段によって受信した前記第１のインデックスにより特定されるレジスタに前記受信した前記第１の値を保持する識別番号設定手段と、
前記第１の値に対して予め記憶されている増加値を加算した第２の値を出力する加算手段と、
前記第１のインデックスと、前記第２の値とを送信する第１の送信手段と、
前記識別番号の最大値を保持するレジスタを特定する第２のインデックスと、前記第２のインデックスで特定されるレジスタに保持するべき第３の値とを受信する第２の受信手段と、
前記第２の受信手段により受信した前記第２のインデックスにより特定されるレジスタに受信した前記第３の値を保持する最大識別番号設定手段と、
前記第１のインデックスにより特定されるレジスタに保持されている値と、前記第２のインデックスにより特定されるレジスタに保持されている値とを比較して大きい方の値を第４の値として選択する値選択手段と、
前記第２のインデックスと前記第４の値とを送信する第２の送信手段と
を備えたことを特徴とする集積回路。
【請求項２】
カスケード接続した複数の集積回路のそれぞれに対して、一意の識別番号を設定するとともに、前記識別番号の最大値を設定する識別番号設定方法であって、
前段の集積回路から、識別番号を保持するレジスタを特定する第１のインデックスと、前記第１のインデックスで特定されるレジスタに保持するべき第１の値とを受信する第１の受信ステップと、
前記受信した前記第１のインデックスにより特定されるレジスタに前記受信した前記第１の値を保持する識別番号設定ステップと、
前記第１の値に対して、予め記憶されている増加値を加算した第２の値を出力する加算ステップと、
前記第１のインデックスと、前記第２の値とを後段の集積回路に対して送信する第１の送信ステップと、
後段の集積回路から、前記識別番号の最大値を保持するレジスタを特定する第２のインデックスと、前記第２のインデックスで特定されるレジスタに保持するべき第３の値とを受信する第２の受信ステップと、
受信した前記第２のインデックスにより特定されるレジスタに受信した前記第３の値を保持する最大識別番号設定ステップと、
前記第１のインデックスにより特定されるレジスタに保持されている値と、前記第２のインデックスにより特定されるレジスタに保持されている値とを比較して大きい方の値を第４の値として選択する値選択ステップと、
前記第２のインデックスと前記第４の値とを前段の集積回路に対して送信する第２の送信ステップと
を有することを特徴とする識別番号設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カスケード接続された集積回路に対して一意の識別番号を付与する識別番号設定方法に関する。
【背景技術】
【０００２】
従来から、照明灯の点灯・消灯を制御するシステムや音楽玩具システムに搭載される同一機能のＬＳＩ（large scale integration；大規模集積回路、以下、集積回路という）をカスケード接続（多段接続）して、１本のコントロールバスにより各集積回路の動作を制御する場合、予め個々の集積回路に対して、ハードウェアスイッチを用いて任意の識別番号を一意になるように設定しておき、この一意の識別番号を用いて個別の集積回路に対して制御コマンドを発行して動作させていた。
【０００３】
しかしながら、カスケード接続するシステムを増減させることにより、システムに搭載された集積回路の識別番号を変更する必要がある場合に、従来の方法は、ハードウェアスイッチを手動で変更していたため、カスケード接続されるシステムの数が多くなるとたいへんな手間になるという問題がある。
【０００４】
このような問題を解決するために、所定の回路を実装した小型基板ボードをカスケード接続し、各小型基板ボードに対して自動的に識別番号を割り付けるＩＤ割り付け方法が知られている（例えば、特許文献１参照）。このＩＤ割付け方法によれば、人手によるＩＤ設定等を行う必要がなくなり、自動的に各小型基板ボードに一意となる識別番号を割付けることができるため、手間が掛からずミスが生じない識別番号の割付けを行うことができるようになる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２７２６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に示すＩＤ割り付け方法にあっては、接続可能な最大数を予め決めておかなければならないとともに、最後段の小型基板ボードが既知であり、かつこの既知である小型基板ボードが出力する終端値から接続数を検出しなければならない。すなわち、特許文献１のＩＤ割り付け方法は、予め接続する小型基板ボードの最大接続数と、最後段の小型基板ボードが既知でなければならない。
【０００７】
多数の集積回路が接続されるシステムにおいては、最大接続数が未知であったり、自由にカスケード接続を行った場合、最後段のシステムがどのシステムであるかを事前に把握することは手間がかかるため、最大接続数の設定や最後段のシステムを特定しておく必要があるという制限を持つＩＤ割り付け方法では、使いづらいとともに、完全に自動的な識別番号設定を行うことができないという問題がある。
【０００８】
本発明は、このような事情に鑑みてなされたもので、最大接続数の設定や最後段の集積回路を特定しなくともカスケード接続された集積回路に対して一意の識別番号を付与することができるとともに、識別番号の最大値を設定することができる集積回路及び識別番号設定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、識別番号を保持するレジスタを特定する第１のインデックスと、前記第１のインデックスで特定されるレジスタに保持するべき第１の値とを受信する第１の受信手段と、前記第１の受信手段によって受信した前記第１のインデックスにより特定されるレジスタに前記受信した前記第１の値を保持する識別番号設定手段と、前記第１の値に対して予め記憶されている増加値を加算した第２の値を出力する加算手段と、前記第１のインデックスと、前記第２の値とを送信する第１の送信手段と、前記識別番号の最大値を保持するレジスタを特定する第２のインデックスと、前記第２のインデックスで特定されるレジスタに保持するべき第３の値とを受信する第２の受信手段と、前記第２の受信手段により受信した前記第２のインデックスにより特定されるレジスタに受信した前記第３の値を保持する最大識別番号設定手段と、前記第１のインデックスにより特定されるレジスタに保持されている値と、前記第２のインデックスにより特定されるレジスタに保持されている値とを比較して大きい方の値を第４の値として選択する値選択手段と、前記第２のインデックスと前記第４の値とを送信する第２の送信手段とを備えたことを特徴とする。
【００１０】
本発明は、カスケード接続した複数の集積回路のそれぞれに対して、一意の識別番号を設定するとともに、前記識別番号の最大値を設定する識別番号設定方法であって、前段の集積回路から、識別番号を保持するレジスタを特定する第１のインデックスと、前記第１のインデックスで特定されるレジスタに保持するべき第１の値とを受信する第１の受信ステップと、前記受信した前記第１のインデックスにより特定されるレジスタに前記受信した前記第１の値を保持する識別番号設定ステップと、前記第１の値に対して、予め記憶されている増加値を加算した第２の値を出力する加算ステップと、前記第１のインデックスと、前記第２の値とを後段の集積回路に対して送信する第１の送信ステップと、後段の集積回路から、前記識別番号の最大値を保持するレジスタを特定する第２のインデックスと、前記第２のインデックスで特定されるレジスタに保持するべき第３の値とを受信する第２の受信ステップと、受信した前記第２のインデックスにより特定されるレジスタに受信した前記第３の値を保持する最大識別番号設定ステップと、前記第１のインデックスにより特定されるレジスタに保持されている値と、前記第２のインデックスにより特定されるレジスタに保持されている値とを比較して大きい方の値を第４の値として選択する値選択ステップと、前記第２のインデックスと前記第４の値とを前段の集積回路に対して送信する第２の送信ステップとを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、最大接続数の設定や最後段の集積回路を特定しなくともカスケード接続された集積回路に対して自動的に一意の識別番号を付与することができるとともに、識別番号の最大値を設定することができるという効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示す集積回路１とホストコントローラＨをカスケード接続した状態の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態による集積回路を図面を参照して説明する。図１は同実施形態の構成を示すブロック図である。この図において、符号１は、照明灯の点灯・消灯を制御するシステムや音楽玩具システム等に搭載される集積回路である。ここでは、ｎ（ｎは自然数）個の集積回路１がカスケード接続されているものとして説明する。１番目の集積回路１の前段には、カスケード接続された複数の集積回路１の動作を制御するホストコントローラが接続される。この説明において、前段とは、自身の集積回路１からホストコントローラの方向に接続されていることであり、後段とは、自身の集積回路１からホストコントローラの方向と逆方向に接続されていることである。図１に示す集積回路１は、ｎ−１番目（＃ｎ−１）の集積回路であり、前段にｎ−２番目（＃ｎ−２）の集積回路１が接続され、後段には、ｎ番目（＃ｎ）の集積回路１が接続されている。
【００１４】
符号２は、集積回路１内に設けられ、値を保持するレジスタ群である。符号３は、複数の集積回路間において情報の授受を行うＩＦ（インタフェース）コントローラである。符号２１は、集積回路１を一意に識別することが可能な識別番号（ＩＤ）を保持するＩＤレジスタである。符号２２は、複数の集積回路１のそれぞれに付与した識別番号の最大値を保持するＭａｘＩＤレジスタである。
【００１５】
符号３１は、集積回路１の動作を制御するホストコントローラまたは前段の集積回路１から送信されたＩＤレジスタ２１に保持するべき情報を受信する受信部である。符号３２は、後段の集積回路１のＩＤレジスタ２１に保持するべき情報を送信する送信部である。受信部３１は、前段の集積回路１の送信部３２’またはホストコントローラから送信された情報を受信する。送信部３２は、後段の集積回路１の受信部３１’に対して情報を送信する。符号３３は、集積回路１の動作を制御するホストコントローラまたは前段の集積回路１に対して識別番号の最大値の情報を送信する送信部である。符号３４は、後段の集積回路１から識別番号の最大値の情報を受信する受信部である。送信部３３は、前段の集積回路１の受信部３４’またはホストコントローラに対して情報を送信する。受信部３４は、後段の集積回路１の送信部３３’から情報を受信する。
【００１６】
符号３５は、後段の集積回路１に対して付与するべき識別番号の増加値が予め記憶された増加値記憶部である。増加値記憶部３５には、任意の増加値を記憶させておくことが可能であるが、ここでは、増加値として「１」が記憶されているものとして説明する。符号３６は、ＩＤレジスタ２１に保持されている識別番号の値と、増加値記憶部３５に記憶されている増加値とを加算して出力する加算部である。符号３７は、ＭａｘＩＤレジスタ２２に保持されている値と、ＩＤレジスタ２１に保持されている値とを読み出し、この読み出した２つの値を比較して大きい値を選択して出力するセレクタである。
【００１７】
次に、図１に示す集積回路１の基本動作を説明する。まず、受信部３１は、前段の集積回路１の送信部３２’からレジスタ（ＩＤレジスタ２１）を特定するインデックスと識別番号の値とからなる情報を受信する。受信部３１は、受信した情報に含まれるレジスタのインデックスに基づいて、ＩＤレジスタ２１を特定し、この特定したＩＤレジスタ２１に受信した情報に含まれる識別番号の値を保持する。そして、受信部３１は、ＩＤレジスタ２１に値を保持したことを加算部３６へ通知する。
【００１８】
これを受けて、加算部３６は、ＩＤレジスタ２１に保持されている値を読み出すとともに、増加値記憶部３５に記憶されている増加値（ここでは、「１」）を読み出して、この読み出した２つの値を加算する。これにより、ＩＤレジスタ２１に保持されている値に増加値を加算した値が求められることになる。加算部３６は、求めた値を送信部３２へ出力する。送信部３２は、加算部３６から出力された値（後段の集積回路１がＩＤレジスタ２１に保持するべき識別番号の値）とＩＤレジスタを特定するインデックスとからなる情報を後段の集積回路１へ送信する。この情報は、受信部３１’によって受信されることになる。送信部３２は、情報の送信が終了すると、受信部３４に対して、情報の受信待ちを指示する。
【００１９】
一方、受信部３４は、後段の集積回路１からレジスタ（ＭａｘＩＤレジスタ２２）を特定するインデックスと識別番号の最大値とからなる情報を受信する。受信部３４は、受信した情報に含まれるレジスタのインデックスに基づいて、ＭａｘＩＤレジスタ２２を特定し、この特定したＭａｘＩＤレジスタ２２に受信した情報に含まれる識別番号の最大値を保持する。そして、受信部３４は、セレクタ３７に対して、ＭａｘＩＤレジスタ２２に値を保持したことを通知する。これを受けて、セレクタ３７は、ＩＤレジスタ２１に保持されている値を読み出すとともに、ＭａｘＩＤレジスタ２２に保持されている値を読み出して、この読み出した２つの値を比較して、値が大きい方の値を選択する。これにより、ＩＤレジスタ２１に保持されている値とＭａｘＩＤレジスタ２２に保持されている値のうち、大きい値が識別番号の最大値として選択されることになる。
【００２０】
このとき、集積回路１が、ｎ番目の集積回路であった場合、後段の集積回路１が存在せず、受信部３４は、後段の集積回路１から情報を受信することができないため、ＭａｘＩＤレジスタ２２は、電源投入時に０リセットされた状態のままである。したがって、セレクタ３７は、ＩＤレジスタ２１の値を選択することになる。セレクタ３７は、選択された値がＩＤレジスタ２１の値である場合には、ＩＤレジスタ２１の値をＭａｘＩＤレジスタ２２に保持する。続いて、セレクタ３７は、選択した値を送信部３３へ出力する。送信部３３は、セレクタ３７から出力された値（識別番号の最大値）とＭａｘＩＤレジスタ２２を特定するインデックスとからなる情報を前段の集積回路１へ送信する。この情報は、受信部３４’によって受信されることになる。
【００２１】
この動作によって、ｎ個の全ての集積回路１のＩＤレジスタ２１には、一意となる識別番号の値が保持され、ＭａｘＩＤレジスタ２２には、識別番号の最大値が保持されることになる。
【００２２】
次に、図２を参照して、図１に示す集積回路１がカスケード接続された状態の動作を説明する。図２は、図１に示す集積回路１をカスケード接続し、さらに１番目の集積回路１ａにホストコントローラＨが接続した装置構成を示す図である。図２においては、ホストコントローラＨとｎ個の集積回路１がカスケード接続された状態を示しているが、実際のシステムにおいては、ホストコントローラＨとｎ個の集積回路１は、システムを構成するプリント基板などに搭載されて、それぞれのホストコントローラＨとｎ個の集積回路１が図２に示すようにカスケード接続が行われるものである。なお、図２においては、複数の集積回路１を説明上区別するために、１番目の集積回路１の符号に対して「ａ」を付与し、２番目の集積回路１には「ｂ」、ｎ−１番目の集積回路１には「ｃ」、ｎ番目の集積回路１には「ｄ」を付与して以下の説明を行う。
【００２３】
まず、図２に示すカスケード接続状態で、各システムの電源を投入すると、ＩＤレジスタ２１ａ〜ｄとＭａｘＩＤレジスタ２２ａ〜ｄは０リセットされる。そして、ホストコントローラＨは、ＩＦコントローラ３Ｈを介して、後段の集積回路１（ここでは、集積回路１ａ）に対して、識別番号を保持するレジスタ（ＩＤレジスタ２１）を特定するインデックスと識別番号の初期値（例えば、「１」）とからなる情報を送信する。
【００２４】
集積回路１ａのＩＦコントローラ３ａは、この識別番号の値を受信して、ＩＤレジスタ２１ａに保持する。そして、ＩＦコントローラ３ａは、受信した識別番号の値に増加値（例えば、「１」）を加算して、後段の集積回路１ｂへ送信する。集積回路１ｂのＩＦコントローラ３ｂは、この識別番号の値を受信して、ＩＤレジスタ２１ｂに保持する。そして、ＩＦコントローラ３ｂは、受信した識別番号の値に増加値をさらに加算して、後段の集積回路１ｃへ送信する。集積回路１ｃのＩＦコントローラ３ｃは、この識別番号の値を受信して、ＩＤレジスタ２１ｃに保持する。そして、ＩＦコントローラ３ｃは、受信した識別番号の値に増加値をさらに加算して、後段の集積回路１ｄへ送信する。
【００２５】
次に、集積回路１ｄのＩＦコントローラ３ｄは、この識別番号の値を受信して、ＩＤレジスタ２１ｄに保持する。そして、ＩＦコントローラ３ｄは、受信した識別番号の値に増加値をさらに加算して、後段の集積回路１へ送信するが、後段の集積回路１は存在しないため、この識別番号は受信されない。集積回路１ｄの送信部３２が、識別番号の受信先がないことを受信部３４へ通知すると、受信部３４は、セレクタ３７に対して、次の動作を起こさせるために、実際には新たな値を保持していないが、ＭａｘＩＤレジスタ２２に値を保持したことを通知する。これを受けて、集積回路１ｄのセレクタ３７は、ＩＤレジスタ２１ｄの値（この値が識別番号の最大値となる）を選択して、前段の集積回路１ｃへ送信する。
【００２６】
集積回路１ｃのＩＦコントローラ３ｃは、この識別番号の値を受信して、ＭａｘＩＤレジスタ２２ｃに保持する。そして、ＩＦコントローラ３ｃは、ＩＤレジスタ２１ｃに保持されている値と、ＭａｘＩＤレジスタ２２ｃに保持されている値を比較して、値が大きい方の値を選択して、前段の集積回路１ｂへ送信する。集積回路１ｂのＩＦコントローラ３ｂは、この識別番号の値を受信して、ＭａｘＩＤレジスタ２２ｂに保持する。そして、ＩＦコントローラ３ｂは、ＩＤレジスタ２１ｂに保持されている値と、ＭａｘＩＤレジスタ２２ｂに保持されている値を比較して、値が大きい方の値を選択して、前段の集積回路１ａへ送信する。
【００２７】
集積回路１ａのＩＦコントローラ３ａは、この識別番号の値を受信して、ＭａｘＩＤレジスタ２２ａに保持する。そして、ＩＦコントローラ３ａは、ＩＤレジスタ２１ａに保持されている値と、ＭａｘＩＤレジスタ２２ａに保持されている値を比較して、値が大きい方の値を選択して、前段のホストコントローラＨへ送信する。ホストコントローラＨのＩＦコントローラ３Ｈは、集積回路１ａから識別番号の値（これが識別番号の最大値となる）を受信する。この動作によって、各集積回路１ａ〜１ｄのＩＤレジスタ２１ａ〜２１ｄには、一意の識別番号の値が保持されることになる。また、ＭａｘＩＤレジスタ２２ａ〜２２ｄには、識別番号の最大値が保持されることになる。さらに、ホストコントローラＨにも識別番号の最大値が通知される。
【００２８】
例えば、識別番号の初期値を「１」とし、増加値を「１」とした場合、ＩＤレジスタ２１ａには「１」、ＩＤレジスタ２１ｂには「２」、ＩＤレジスタ２１ｃには「ｎ−１」、ＩＤレジスタ２１ｄには「ｎ」が保持されることになり、全てのＭａｘＩＤレジスタ２２ａ〜２２ｄには、「ｎ」が保持されることになる。また、ホストコントローラＨにおいて、識別番号の最大値「ｎ」を得ることができるため、ホストコントローラＨは、各集積回路１のそれぞれに対して設定した一意の識別番号を使用して、動作を制御するコマンド等の発行を行うことが可能となる。
【００２９】
このように、前段の集積回路１から通知された識別番号を自身に対して設定するともに、自身の識別番号に対して所定の増加値を加算した識別番号を後段の集積回路１に対して通知するようにしたため、各集積回路１において一意となる識別番号を自動的に設定することが可能である。これにより、カスケード接続された集積回路の数が増減しても再度この設定処理を実行することにより新たな識別番号を自動的に設定することが可能となる。また、動的にカスケード接続された集積回路の数が増減する場合は、定期的にこの設定処理を実行することにより新たな識別番号を自動的に設定することができる。
【００３０】
また、自身に設定されている識別番号が最大値である場合に、この最大値の識別番号が選択されるように識別番号の大小を判定して、大きい値の識別番号を識別番号の最大値として各集積回路１を順に転送されるようにしたため、最大接続数の設定や最後段の集積回路を特定しなくともカスケード接続された集積回路に対して自動的に一意の識別番号を付与することができるとともに、識別番号の最大値も同時に設定することができる。
【符号の説明】
【００３１】
１・・・集積回路（ＬＳＩ）、２・・・レジスタ群、２１・・・ＩＤレジスタ、２２・・・ＭａｘＩＤレジスタ、３・・・ＩＦコントローラ、３１、３４・・・受信部、３２、３３・・・送信部、３５・・・増加値記憶部、３６・・・加算部、３７・・・セレクタ
【図１】
2010176374.tif 000003
【図２】
2010176374.tif 000004