(57)【特許請求の範囲】
【請求項１】
ネットワークコントローラであって、複数のネットワークコントローラをツリー状に接続することによりネットワークツリーを構成可能であり、
前記ネットワークコントローラは、
記憶部と、
上流から、前記ネットワークツリーの各ノードに位置する前記ネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを受信する第１インタフェース部であって、前記アドレス指定データは少なくとも、論理アドレスと、前記論理アドレスの割り当て対象のノードの深さを指定する深さデータと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含む、第１インタフェース部と、
前記深さデータと前記ステップカウント値が所定の関係を満たすとき、前記論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして前記記憶部に書き込むアドレス取得部と、
前記深さデータと前記ステップカウント値が前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、前記転送経路データが指定する枝に接続されるネットワークコントローラに対して前記アドレス指定データを送信する第２インタフェース部と、
を備えることを特徴とするネットワークコントローラ。
【請求項２】
前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含むことを特徴とする請求項１に記載のネットワークコントローラ。
【請求項３】
ネットワークコントローラであって、複数のネットワークコントローラをツリー状に接続することによりネットワークツリーを構成可能であり、
前記ネットワークコントローラは、
記憶部と、
上流から、前記ネットワークツリーの各ノードに位置する前記ネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを受信する第１インタフェース部であって、前記アドレス指定データは少なくとも、論理アドレスと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでおり、前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含んでいる、第１インタフェース部と、
前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと所定の関係を満たすとき、前記論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして前記記憶部に書き込むアドレス取得部と、
前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、変化後の前記ステップカウント値に応じた深さのノードに対して定められた枝番号データが示す枝に接続されるネットワークコントローラに対して前記アドレス指定データを送信する第２インタフェース部と、
を備えることを特徴とするネットワークコントローラ。
【請求項４】
各ノードは、最大で２分岐までが許容されており、前記枝番号データは０または１の値をとることを特徴とする請求項２または３に記載のネットワークコントローラ。
【請求項５】
前記ネットワークコントローラの間は、差動配線で接続されることを特徴とする請求項１から４のいずれかに記載のネットワークコントローラ。
【請求項６】
ひとつの半導体基板に一体集積化されたことを特徴とする請求項１から５のいずれかに記載のネットワークコントローラ。
【請求項７】
複数のネットワークコントローラをツリー状に接続することにより構成されるネットワークツリーに使用され、前記ネットワークツリーのルートノードに位置するネットワークコントローラと接続され、前記複数のネットワークコントローラそれぞれに対して、論理アドレスを割り当てるホストコントローラであって、
前記ホストコントローラは、
それぞれが対応するネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを生成するアドレス設定部であって、前記アドレス指定データは、少なくとも、論理アドレスと、前記論理アドレスの割り当て対象のノードの深さを指定する深さデータと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでいる、アドレス設定部と、
前記ネットワークコントローラそれぞれに対して生成されるアドレス指定データを、順前記ネットワークツリーのルートノードに配置される前記ネットワークコントローラに送信する第３インタフェース部と、
を備え、
前記複数のネットワークコントローラはそれぞれ、
記憶部と、
上流から前記アドレス指定データを受信する第１インタフェース部と、
前記アドレス指定データに含まれる前記深さデータと前記ステップカウント値が所定の関係を満たすとき、前記論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして前記記憶部に書き込むアドレス取得部と、
前記深さデータと前記ステップカウント値が前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、前記転送経路データが指定する枝に接続されるネットワークコントローラに対して前記アドレス指定データを送信する第２インタフェース部と、
を備えるものであり、
前記複数のネットワークコントローラと組み合わせて使用されることを特徴とするホストコントローラ。
【請求項８】
前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝を示す枝番号データを含むことを特徴とする請求項７に記載のホストコントローラ。
【請求項９】
複数のネットワークコントローラをツリー状に接続することにより構成されるネットワークツリーに使用され、前記ネットワークツリーのルートノードに位置するネットワークコントローラと接続され、前記複数のネットワークコントローラそれぞれに対して、論理アドレスを割り当てるホストコントローラであって、
前記ホストコントローラは、
それぞれが対応するネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを生成するアドレス設定部であって、前記アドレス指定データは、少なくとも、論理アドレスと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでおり、前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含んでいる、アドレス設定部と、
前記ネットワークコントローラそれぞれに対して生成されるアドレス指定データを、前記ネットワークツリーのルートノードに配置される前記ネットワークコントローラに送信する第３インタフェース部と、
を備え、
前記複数のネットワークコントローラはそれぞれ、
記憶部と、
上流から前記アドレス指定データを受信する第１インタフェース部と、
前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと所定の関係を満たすとき、前記論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして前記記憶部に書き込むアドレス取得部と、
前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、変化後の前記ステップカウント値に応じた深さのノードに対して定められた枝番号データが示す枝に接続されるネットワークコントローラに対して前記アドレス指定データを送信する第２インタフェース部と、
を備えることを特徴とするホストコントローラ。
【請求項１０】
各ノードは、最大で２分岐までが許容されており、前記枝番号データは０または１の値をとることを特徴とする請求項８または９に記載のホストコントローラ。
【請求項１１】
前記ネットワークコントローラの間は、差動配線で接続されることを特徴とする請求項７から１０のいずれかに記載のホストコントローラ。
【請求項１２】
本ホストコントローラは、前記ネットワークツリーが搭載される機器のホストプロセッサに内蔵されることを特徴とする請求項７から１１のいずれかに記載のホストコントローラ。
【請求項１３】
それぞれがネットワークツリーの各ノードに配置される複数のネットワークコントローラと、
前記ネットワークツリーのルートノードに位置する前記ネットワークコントローラと接続され、前記複数のネットワークコントローラそれぞれに対して、論理アドレスを割り当てるホストコントローラと、
を備え、
前記ホストコントローラは、
それぞれが対応するネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを生成するアドレス設定部であって、前記アドレス指定データは、少なくとも、論理アドレスと、前記論理アドレスの割り当て対象のノードの深さを指定する深さデータと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでいる、アドレス設定部と、
前記ネットワークコントローラそれぞれに対して生成されるアドレス指定データを、前記ネットワークツリーのルートノードに配置される前記ネットワークコントローラに送信する第３インタフェース部と、
を備え、
前記複数のネットワークコントローラはそれぞれ、
記憶部と、
上流から前記アドレス指定データを受信する第１インタフェース部と、
前記アドレス指定データに含まれる前記深さデータと前記ステップカウント値が所定の関係を満たすとき、前記論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして前記記憶部に書き込むアドレス取得部と、
前記深さデータと前記ステップカウント値が前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ネットワークコントローラの下流に接続される少なくともひとつのネットワークコントローラのうち、前記転送経路データが指定する枝に接続されるひとつに、前記アドレス指定データを送信する第２インタフェース部と、
を備えることを特徴とするネットワークシステム。
【請求項１４】
前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝を示す枝番号データを含むことを特徴とする請求項１３に記載のネットワークシステム。
【請求項１５】
それぞれがネットワークツリーの各ノードに配置される複数のネットワークコントローラと、
前記ネットワークツリーのルートノードに位置する前記ネットワークコントローラと接続され、前記複数のネットワークコントローラそれぞれに対して、論理アドレスを割り当てるホストコントローラと、
を備え、
それぞれが対応するネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを生成するアドレス設定部であって、前記アドレス指定データは、少なくとも、論理アドレスと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでおり、前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含んでいる、アドレス設定部と、
前記ネットワークコントローラそれぞれに対して生成されるアドレス指定データを、前記ネットワークツリーのルートノードに配置される前記ネットワークコントローラに送信する第３インタフェース部と、
を備え、
前記複数のネットワークコントローラはそれぞれ、
記憶部と、
上流から前記アドレス指定データを受信する第１インタフェース部と、
前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと所定の関係を満たすとき、前記論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして前記記憶部に書き込むアドレス取得部と、
前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、変化後の前記ステップカウント値に応じた深さのノードに対して定められた枝番号データが示す枝に接続されるネットワークコントローラに対して前記アドレス指定データを送信する第２インタフェース部と、
を備えることを特徴とするネットワークシステム。
【請求項１６】
各ノードは、最大で２分岐までが許容されており、前記枝番号データは０または１の値をとることを特徴とする請求項１４または１５に記載のネットワークシステム。
【請求項１７】
前記ネットワークコントローラの間は、差動配線で接続されることを特徴とする請求項１４から１６のいずれかに記載のネットワークシステム。
【請求項１８】
請求項１４から１７のいずれかに記載のネットワークシステムを備えることを特徴とする機器。
【請求項１９】
請求項１４から１７のいずれかに記載のネットワークシステムを備えることを特徴とする車両。
【請求項２０】
ネットワークツリーの各ノードに論理アドレスを割り当てる方法であって、
各ノードに論理アドレスを割り当てるためのアドレス指定データを生成するアドレス指定データを生成するステップであって、前記アドレス指定データは、少なくとも、論理アドレスと、前記論理アドレスの割り当て対象のノードの深さを指定する深さデータと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでいる、ステップと、
前記アドレス指定データを、前記ネットワークツリーのルートノードに送信するステップと、
前記ネットワークツリーの各ノードにおいて、上流から前記アドレス指定データを受信するステップと、
前記ネットワークツリーの各ノードにおいて、前記アドレス指定データに含まれる前記深さデータと前記ステップカウント値が所定の関係を満たすとき、前記論理アドレスを、本ノードに割り当てられた論理アドレスとして保持するステップと、
前記ネットワークツリーの各ノードにおいて、前記深さデータと前記ステップカウント値が前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ノードの下流の少なくともひとつのノードのうち、前記転送経路データが指定する枝に接続されるノードに、前記アドレス指定データを送信するステップと、
を備えることを特徴とする方法。
【請求項２１】
ネットワークツリーの各ノードに論理アドレスを割り当てる方法であって、
各ノードに論理アドレスを割り当てるためのアドレス指定データを生成するアドレス指定データを生成するステップであって、前記アドレス指定データは、少なくとも、論理アドレスと、前記論理アドレスの割り当て対象のノードの深さを指定する深さデータと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでおり、前記転送経路データは、前記ネットワークツリーのルートノードから前記論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含んでいる、ステップと、
前記アドレス指定データを、前記ネットワークツリーのルートノードに送信するステップと、
前記ネットワークツリーの各ノードにおいて、上流から前記アドレス指定データを受信するステップと、
前記ネットワークツリーの各ノードにおいて、前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと所定の関係を満たすとき、前記論理アドレスを、本ノードに割り当てられた論理アドレスとして保持するステップと、
前記ネットワークツリーの各ノードにおいて、前記ステップカウント値が、前記転送経路データが指定する割り当て対象のノードの深さと前記所定の関係を満たさないとき、前記ステップカウント値を所定量変化させ、本ノードから下流に分岐する少なくともひとつの枝のうち、変化後の前記ステップカウント値に応じた深さのノードに対して定められた枝番号データが示す枝に接続されるノードに、前記アドレス指定データを送信するステップと、
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに関し、特にアドレス管理技術に関する。
【背景技術】
【０００２】
産業機器、車両、産業用ロボット、電子機器の内部には、複数の機能ブロックを含むネットワークが形成されている。本明細書においてこうしたネットワークを機器内ネットワークと称する。図１は、本発明者が検討した機器内ネットワークの構成例を示すブロック図である。
【０００３】
機器内ネットワーク１００ｒは、ＣＰＵ（Central Processing Unit）を含むホストユニット１０ｒと、ホストユニット１０ｒによって制御される複数の機能ブロック２０ａ〜２０ｆを備える。複数の機能ブロック２０ａ〜２０ｆは、ホストユニット１０ｒを起点としてスター型に接続されており、各機能ブロック２０は、ホストユニット１０ｒと１対１でデータの送受信を行う。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
機能ブロック２０とホストユニット１０ｒの間は、ハーネス３０で結線されている。各ハーネス３０は、データや制御信号を伝送するための複数の配線の束である。機器の製造工程においては、作業者が手作業によってハーネスを接続する必要があり、機器の製造コストが高くなる要因となっていた。またハーネスの重量は非常に重く、その総重量は数ｋｇに及ぶこともあり、機器の軽量化の妨げとなっていた。
【０００５】
本発明は係る状況に課題に鑑みてなされたものあり、そのある態様の例示的な目的のひとつは、従来と異なる形態の機器内ネットワークの提供にある。
【課題を解決するための手段】
【０００６】
本発明のある態様は、ネットワークコントローラに関する。ネットワークコントローラは、それを複数、ツリー状に接続することによりネットワークツリーを構成可能となっている。ネットワークコントローラは、記憶部と、第１インタフェース部、アドレス取得部、第２インタフェース部を備える。
第１インタフェース部は、上流から、ネットワークツリーの各ノードに位置するネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを受信する。アドレス指定データは少なくとも、論理アドレスと、論理アドレスの割り当て対象のノードの深さを指定する深さデータと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含む。アドレス取得部は、深さデータとステップカウント値が所定の関係を満たすとき、論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして記憶部に書き込む。第２インタフェース部は、深さデータとステップカウント値が所定の関係を満たさないとき、ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、転送経路データが指定する枝に接続されるネットワークコントローラに対してアドレス指定データを送信する。
【０００７】
この態様によると、複数のネットワークコントローラをツリー状に配置し、各ネットワークコントローラに、機能ブロックを接続することにより、ネットワークコントローラを介したデータ伝送が可能となるため、ハーネスを用いずに機器内ネットワークを構築できる。さらにこの態様によれば、各ネットワークコントローラに、物理アドレスを持たせる必要がないため、ネットワークコントローラ内の不揮発性メモリの容量を減らし、あるいは完全に削除できる。
【０００８】
転送経路データは、ネットワークツリーのルートノードから論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含んでもよい。
【０００９】
本発明の別の態様もまた、ネットワークコントローラである。このネットワークコントローラは、記憶部と、第１インタフェース部と、アドレス取得部と、第２インタフェース部と、を備える。第１インタフェース部は、上流から、ネットワークツリーの各ノードに位置するネットワークコントローラに論理アドレスを割り当てるためのアドレス指定データを受信する。アドレス指定データは少なくとも、論理アドレスと、ステップカウント値と、当該アドレス指定データの転送経路を示す転送経路データと、を含んでおり、転送経路データは、ネットワークツリーのルートノードから論理アドレスの割り当て対象のノードに至るまでの各ノードごとに定められ、各ノードにおける転送先の枝番号を示す枝番号データを含んでいる。
アドレス取得部は、ステップカウント値が、転送経路データが指定する割り当て対象のノードの深さと所定の関係を満たすとき、論理アドレスを、当該ネットワークコントローラに割り当てられた論理アドレスとして記憶部に書き込む。第２インタフェース部は、ステップカウント値が、転送経路データが指定する割り当て対象のノードの深さと所定の関係を満たさないとき、ステップカウント値を所定量変化させ、本ネットワークコントローラから下流に分岐する少なくともひとつの枝のうち、ステップカウント値に応じた深さのノードに対して定められた枝番号データが示す枝に接続されるネットワークコントローラに対してアドレス指定データを送信する。
【００１０】
この態様によると、複数のネットワークコントローラをツリー状に配置し、各ネットワークコントローラに、機能ブロックを接続することにより、ネットワークコントローラを介したデータ伝送が可能となるため、ハーネスを用いずに機器内ネットワークを構築できる。さらにこの態様によれば、各ネットワークコントローラに、物理アドレスを持たせる必要がないため、ネットワークコントローラ内の不揮発性メモリの容量を減らし、あるいは完全に削除できる。
【００１１】
各ノードは、最大で２分岐までが許容されており、枝番号データは０または１の値をとってもよい。
【００１２】
ネットワークコントローラの間は、差動配線で接続されてもよい。
【００１３】
本発明の別の態様は、ホストコントローラである。このホストコントローラは、上述のネットワークコントローラをツリー状に接続することにより構成されるネットワークツリーのルートノードに配置され、複数のネットワークコントローラそれぞれに対して、論理アドレスを割り当てる。ホストコントローラは、アドレス設定部と、第３インタフェース部と、を備える。アドレス設定部は、アドレス指定データを生成する。第３インタフェース部は、ネットワークコントローラそれぞれに対して生成されるアドレス指定データを、ネットワークツリーのルートノードに配置されるネットワークコントローラに送信する。
【００１４】
本ホストコントローラは、ネットワークツリーが搭載される機器のホストプロセッサに内蔵されてもよい。
【００１５】
本発明の別の態様は、ネットワークシステムに関する。ネットワークシステムは、上述の複数のネットワークコントローラにより形成されるネットワークツリーと、上述のホストコントローラと、を備える。
【００１６】
本発明の別の態様は、機器に関する。機器は、上述のネットワークシステムを備える。
本発明の別の態様は、車両に関する。車両は、上述のネットワークシステムを備える。
【００１７】
なお、以上の構成要素の任意の組み合わせや本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１８】
本発明のある態様によれば、従来とは異なる形態の機器内ネットワークを提供できる。
【図面の簡単な説明】
【００１９】
【図１】本発明者が検討した機器内ネットワークの構成例を示すブロック図である。
【図２】実施の形態に係るネットワークシステムの構成を示すブロック図である。
【図３】ホストコントローラの構成を示すブロック図である。
【図４】図４（ａ）、（ｂ）は、アドレス指定データに対応するデータパケットのデータ構造を示す図である。
【図５】ネットワークコントローラの構成を示すブロック図である。
【図６】図６（ａ）、（ｂ）は、ネットワークシステムを備える機器、車両の構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２１】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合のほか、部材Ａと部材Ｂが、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
同様に、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
【００２２】
図２は、実施の形態に係るネットワークシステム１００の構成を示すブロック図である。ネットワークシステム１００は、ホストコントローラ１１０と複数のネットワークコントローラ１３０＿１〜１３０＿Ｎを備える。Ｎは任意の自然数である。ネットワークシステム１００は具体的には、産業機器、産業ロボット、ＯＡ（Office Automation）機器、家電機器、などの内部、あるいは自動車、航空機、電車などの内部において使用される機器内ネットワークである。
【００２３】
ネットワークシステム１００が搭載される機器は、主としてホストプロセッサ１５２および複数の機能ブロック１５０＿１〜１５０＿Ｎを備える。ホストプロセッサ１５２は、機器全体を統合的に制御する。機能ブロック１５０は、ホストプロセッサ１５２からの指令にもとづき、所定の処理を実行する。ホストプロセッサ１５２と機能ブロック１５０は、ネットワークシステム１００を介してデータ伝送を行う。
【００２４】
複数のネットワークコントローラ１３０＿１〜１３０＿Ｎは、それぞれをノードとするツリー状に接続されて、ネットワークツリーが構成される。ツリーの分岐の数は特には限定されないが、本実施の形態では最大で２分岐まで許容されるものとする。またツリーの最大深さ、つまりルートノードからリーフまでの距離（枝の数）も特に限定されず、任意の数をとりうる。本明細書では、ルートノードの深さを０と表記する。
【００２５】
各ネットワークコントローラ１３０＿ｉ（１≦ｉ≦Ｎ）には、機能ブロック１５０＿ｉが接続されている。ホストコントローラ１１０は、複数のネットワークコントローラ１３０のうちネットワークツリーのルートに位置するネットワークコントローラ１３０＿１と接続される。ホストプロセッサ１５２は、ホストコントローラ１１０に接続される。ホストコントローラ１１０は、ホストプロセッサ１５２に内蔵されてもよい。
【００２６】
ホストプロセッサ１５２は、ネットワークツリーの各ノードに位置する機能ブロック１５０＿１〜１５０＿Ｎとの間で、ネットワークツリーを介して双方向および／または片方向のデータ伝送を行う。ホストコントローラ１１０は、ネットワークシステム１００の起動直後の初期化シーケンスにおいて、複数のホストコントローラ１１０それぞれに論理アドレスを割り当てる。
【００２７】
そして、ホストコントローラ１１０は、ある機能ブロック１５０との間でデータ通信を行う際には、自らが送信するデータパケットに、通信相手を指定する論理アドレスを埋め込む。データパケットは、ネットワークツリーのルートノードから、リーフノードに向かって順次転送されていく。上流からのデータパケットを受信したネットワークコントローラ１３０は、受信したデータパケットに含まれる論理アドレスが、自らに割り当てられた論理アドレスと一致するかを判定し、一致する場合、そのデータパケットを自身の処理対象とする。一致しない場合、そのデータパケットを下流のノードのネットワークコントローラ１３０へと伝送する。
【００２８】
なお、ネットワークコントローラ１３０とネットワークコントローラ１３０の間、あるいはホストコントローラ１１０とネットワークコントローラ１３０の間、すなわち各ノード間のデータ伝送のプロトコルや信号形式は特に限定されない。たとえばネットワークコントローラ１３０同士、あるいはネットワークコントローラ１３０とホストコントローラ１１０の間は、ＬＶＤＳ（Low voltage differential signaling）などの差動配線を用いた伝送プロトコルを利用できる。
【００２９】
以上がネットワークシステム１００全体の概要である。続いて、ネットワークシステム１００における、論理アドレスの割り当てについて説明する。
【００３０】
ホストコントローラ１１０には、ネットワークツリーの構成に関する情報を保持しており、複数のネットワークコントローラ１３０＿１〜１３０＿Ｎそれぞれに割り当てるべき論理アドレスを生成、もしくは取得する。そして生成した論理アドレスを、ネットワークツリーを経由して、各ネットワークコントローラ１３０＿１〜１３０＿Ｎに割り当てる。論理アドレスは、ネットワークコントローラ１３０に固有の値である。
【００３１】
図３は、ホストコントローラ１１０の構成を示すブロック図である。ホストコントローラ１１０は、信号処理部１１２、第３インタフェース部１１８、第４インタフェース部１２０を備え、ひとつの半導体基板に一体集積化される。
「一体集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。回路を１つのＩＣとして集積化することにより、回路面積を削減することができるとともに、回路素子の特性を均一に保つことができる。
【００３２】
第１ポートＰ１には、ルートノードのネットワークコントローラ１３０＿１が接続され、第２ポートＰ２には、ホストプロセッサ１５２が接続される。第３インタフェース部１１８は、ネットワークコントローラ１３０に対してデータを伝送するためのトランスミッタを含む。また第４インタフェース部１２０は、ホストプロセッサ１５２との間でデータの送受信を行うためのトランスミッタ・レシーバを含む。
【００３３】
信号処理部１１２は、第３インタフェース部１１８と第４インタフェース部１２０の間で、データを中継する機能を有する。それに加えて、論理アドレスの割り当てに関連して、信号処理部１１２は、アドレス設定部１１４およびＲＯＭ１１６を含む。
【００３４】
アドレス設定部１１４は、複数のネットワークコントローラ１３０＿１〜１３０＿Ｎそれぞれに対して論理アドレスを割り当てるためのアドレス指定データ２００＿１〜２００＿Ｎを生成する。
【００３５】
ＲＯＭ１１６は、ネットワークコントローラ１３０それぞれと、論理アドレスの対応関係を示すテーブルを保持する。アドレス設定部１１４は、ＲＯＭ１１６にアクセスし、各ネットワークコントローラ１３０に割り当てるべき論理アドレスを取得してもよい。あるいはアドレス設定部１１４は、ホストプロセッサ１５２から、各ネットワークコントローラ１３０に割り当てるべき論理アドレスを取得してもよい。あるいはアドレス設定部１１４は、アルゴリズミックに各ネットワークコントローラ１３０の論理アドレスを自動生成してもよい。
【００３６】
第３インタフェース部１１８は、ネットワークコントローラ１３０＿１〜１３０＿Ｎそれぞれに対して生成されるアドレス指定データ２００＿１〜２００＿Ｎを、ネットワークツリーのルートノードに配置されるネットワークコントローラ１３０＿１に送信する。
【００３７】
図４（ａ）、（ｂ）は、アドレス指定データ２００に対応するデータパケットのデータ構造を示す図である。データパケットは、ヘッダ２０２、論理アドレス値２０４、深さデータ２０６、ステップカウント２０８、転送経路データ２１０を含む。論理アドレス値２０４〜転送経路データ２１０の順序は任意である。
【００３８】
ヘッダ２０２は、それが含まれるデータパケットの種類を示すデータであり、アドレス指定データ２００であることを示す識別子が格納される。
【００３９】
論理アドレス値２０４は、それが含まれるアドレス指定データ２００が指定する論理アドレスの値である。
【００４０】
深さデータ２０６は、それが含まれるアドレス指定データ２００の割り当て対象のノードの深さを指定する。ルートノードの深さが０であるとき、図２のネットワークコントローラ１３０＿１の深さは０であり、ネットワークコントローラ１３０＿２、１３０＿３の深さは１であり、ネットワークコントローラ１３０＿４、１３０＿５の深さは２となる。
【００４１】
アドレス指定データ２００は、ネットワークツリー上を、ルートノードから下流のリーフに向かって順に伝送されていく。ステップカウント値２０８は、それが含まれるアドレス指定データ２００の伝送過程において、アドレス指定データ２００が現在位置する深さを示す可変データである。ホストコントローラ１１０がアドレス指定データ２００を生成する際には、ステップカウント値２０８には、初期値が格納される。たとえば初期値は０である。そして、深さがひとつ深くなるたびに、つまりネットワークコントローラ１３０は、下流の枝に接続されるネットワークコントローラ１３０にアドレス指定データ２００を送信する際に、ステップカウント２０８を所定量、より具体的には１変化させる。
【００４２】
より好ましくは、ネットワークコントローラ１３０は、アドレス指定データ２００を下流に伝送するたびに、ステップカウント２０８を１インクリメントする。これにより、ステップカウント２０８の値は、それが含まれるアドレス指定データ２００が位置するノードの深さと一致する。
【００４３】
転送経路データ２１０は、それが含まれるアドレス指定データ２００の転送経路を示す。
【００４４】
図４（ｂ）には、転送経路データ２１０のデータ形式の一例が示される。
転送経路データ２１０は、ネットワークツリーのルートノードから論理アドレスの割り当て対象のノードに至るまでの各ノードの深さごとに定められた枝番号データ２１２＿０〜２１２＿Ｍを含む。Ｍは、ネットワークツリーの最大深さであり、図４ではＭ＝４の場合が示される。
【００４５】
枝番号データ２１２＿ｊ（０≦ｊ≦Ｍ）は、深さがｊであるノードにおける転送先の枝を示す。本実施の形態では、各ノードから枝が最大で２分岐するため、枝番号データは、第１枝、第２枝のいずれかを指定できればよいため、２値のバイナリデータとなる。たとえば、深さｊのノードにおいて、第１枝に転送すべきとき、２１２＿ｊは０、第２枝に転送すべきとき、２１２＿ｊは１となる。各ノードから分岐する枝の最大数がＫ（Ｋは自然数）である場合、枝番号データは、Ｋ値をとることが理解される。
【００４６】
深さデータ２０６の値がＬであるとき、枝番号データ２１２＿Ｌ、２１２＿Ｌ＋１、…は冗長である。
【００４７】
たとえば、図２のネットワークツリーにおいて、ネットワークコントローラ１３０＿５に対する転送経路データ２１０を例示すると、以下の通りである。
２１２＿０＝０、２１２＿１＝１、２１２＿２＝Ｘ、２１２＿３＝Ｘ、２１２＿４＝Ｘ  ただしＸは冗長（Don't Care）を示す。
【００４８】
なお、転送経路データ２１０のデータ形式は特に限定されず、その他の形式を採用してもよい。
【００４９】
以上がホストコントローラ１１０に関する説明である。続いてネットワークコントローラ１３０の構成を説明する。
【００５０】
図５は、ネットワークコントローラ１３０の構成を示すブロック図である。
ネットワークコントローラ１３０は、信号処理部１３２、第１インタフェース部１３４、第２インタフェース部１３６、第５インタフェース部１３８、記憶部１４０を備え、ひとつの半導体基板に一体集積化される。
【００５１】
記憶部１４０は、レジスタやメモリであり、ネットワークコントローラ１３０に割り当てられた論理アドレスの値を格納する。
【００５２】
ポートＰ３には、上流のデバイス、すなわちネットワークコントローラ１３０またはホストコントローラ１１０が接続される。複数の第４ポートＰ４＿０、Ｐ４＿１には、それぞれ下流のネットワークコントローラ１３０が接続される。第４ポートＰ４＿０に接続される枝の番号を０、第４ポートＰ４＿１に接続される枝の番号を１と呼ぶ。各ノードから分岐する枝の最大数がＫ（Ｋは自然数）である場合、第４ポートの個数はＫとなる。第５ポートＰ５には、機能ブロック１５０が接続される。
【００５３】
第１インタフェース部１３４は、上流に接続されるデバイスからのデータを受信するレシーバを含む。第２インタフェース部１３６は、下流に接続されるネットワークコントローラ１３０にデータを送信するためのトランスミッタを含む。第５インタフェース部１３８は、機能ブロック１５０との間でデータの送受信を行うためのトランスミッタ・レシーバを含む。第１インタフェース部１３４、第２インタフェース部１３６を介して伝送されるデータには、上述したアドレス指定データ２００が含まれる。
【００５４】
信号処理部１３２は、第１インタフェース部１３４、第２インタフェース部１３６、第５インタフェース部１３８の間でデータを中継する機能を有する。また論理アドレスの割り当てに関連して、信号処理部１３２は、アドレス取得部１４２を備える。
【００５５】
アドレス取得部１４２は、第１インタフェース部１３４が受信したアドレス指定データ２００に含まれる深さデータ２０６とステップカウント値２０８が所定の関係を満たすとき、アドレス指定データ２００に含まれる論理アドレス値２０４を、当該ネットワークコントローラ１３０に割り当てられた論理アドレスとして、記憶部１４０に書き込む。「所定の関係を満たすとき」とは、ステップカウント２０８が示すルートノードからの深さと、深さデータ２０６が示す割り当て対象のノードの深さが一致することを意味する。
【００５６】
たとえば、ステップカウント値２０８がルートノードからの深さと一致する場合、アドレス取得部１４２は、深さデータ２０６とステップカウント値２０８が一致するときに、論理アドレス値２０４を記憶部１４０に格納する。
【００５７】
第２インタフェース部１３６は、深さデータ２０６とステップカウント値２０８が所定の関係を満たさないとき（一致しないとき）、上述のようにステップカウント値２０８を所定量変化させ、本ネットワークコントローラ１３０から下流に分岐する少なくともひとつの枝のうち、転送経路データ２１０が指定する枝に接続されるネットワークコントローラ１３０に対してアドレス指定データ２００を送信する。
【００５８】
以上がネットワークコントローラ１３０の構成である。
【００５９】
続いてネットワークシステム１００全体の動作を説明する。
【００６０】
図２のネットワークシステム１００の電源が投入され、初期化シーケンスが実行される。ホストコントローラ１１０は、ネットワークコントローラ１３０＿１〜１３０＿５それぞれに割り当てるべき論理アドレス値２０４を取得し、ネットワークコントローラ１３０それぞれに対して送信すべきアドレス指定データ２００＿１〜２００＿５を生成する。
【００６１】
ここでは、ネットワークコントローラ１３０＿５に対する論理アドレスの割り当てを例にホストコントローラ１１０およびネットワークコントローラ１３０の動作を説明する。
ネットワークコントローラ１３０＿５に割り当てるべき論理アドレスがＡであるとすると、ホストコントローラ１１０が生成するアドレス指定データ２００＿５は、以下の通りとなる。
論理アドレス値２０４＝Ａ
深さデータ２０６＝２
ステップカウント２０８＝０
転送経路データ２１０＝［ＸＸＸ１０］  （Ｘは冗長）
【００６２】
ホストコントローラ１１０は、アドレス指定データ２００＿５をルートノードのネットワークコントローラ１３０＿１に送信する。
【００６３】
・ネットワークコントローラ１３０＿１
ステップカウント２０８の値、すなわちネットワークコントローラ１３０＿１の深さ０と、深さデータ２０６の値２は不一致であるため、ネットワークコントローラ１３０＿１は、ステップカウント２０８の値を１インクリメントする。転送経路データ２１０の枝番号データ２１２＿０の値は０であるため、アドレス指定データ２００＿５は、ネットワークコントローラ１３０＿１の０番の枝に接続されるネットワークコントローラ１３０＿２に送信される。
【００６４】
・ネットワークコントローラ１３０＿２
ステップカウント２０８の値、すなわちネットワークコントローラ１３０＿２の深さ１と、深さデータ２０６の値２は不一致であるため、ネットワークコントローラ１３０＿２は、ステップカウント２０８の値を１インクリメントする。転送経路データ２１０の枝番号データ２１２＿１の値は１であるため、アドレス指定データ２００＿５は、ネットワークコントローラ１３０＿２の１番の枝に接続されるネットワークコントローラ１３０＿５に送信される。
【００６５】
・ネットワークコントローラ１３０＿５
ステップカウント２０８の値、すなわちネットワークコントローラ１３０＿５の深さ２と、深さデータ２０６の値２は一致する。したがってネットワークコントローラ１３０＿５は、論理アドレス値２０４の値Ａを、自身に割り当てられた論理アドレスと判定し、記憶部１４０に格納する。
【００６６】
かくして、すべてのネットワークコントローラ１３０に対して、論理アドレスが割り当てられる。ホストプロセッサ１５２と機能ブロック１５０＿１〜１５０＿５は、ホストコントローラ１１０およびネットワークコントローラ１３０＿１〜１３０＿５を介して、データを送受信する。
【００６７】
以上がネットワークシステム１００の動作である。
このネットワークシステム１００によれば、複数のネットワークコントローラ１３０をツリー状に配置し、各ネットワークコントローラ１３０に、機能ブロック１５０を接続することにより、ネットワークコントローラ１３０を介したデータ伝送が可能となる。
一旦、すべてのネットワークコントローラ１３０に論理アドレスを割り当てた後は、ブロードキャスト転送が可能となるため、低レイテンシのネットワークを構築できる。
【００６８】
実施の形態に係るネットワークシステム１００は、ハーネスを用いずに機器内ネットワークを構築できる。ハーネスが不要となることにより、ネットワークシステム１００を搭載する機器の重量を軽量化できる。またホストコントローラ１１０とネットワークコントローラ１３０の間、ネットワークコントローラ１３０間を、プリント基板上の配線で接続することにより、手作業による接続が不要となるため、機器の製造コストを下げることができる。
【００６９】
ネットワークシステム１００は、物理アドレスを利用するシステムと比べて以下の利点を有する。
物理アドレスを利用するシステムでは、ネットワークコントローラに物理アドレスを格納する不揮発性メモリを実装する必要がある。これに対してネットワークシステム１００によれば、各ネットワークコントローラ１３０に、あらかじめ物理アドレスを持たせる必要がなくなる。したがって、ネットワークコントローラ１３０内の不揮発性メモリの容量を減らし、あるいは不揮発性メモリを完全に不要とすることができる。不揮発性メモリはネットワークコントローラ１３０のチップコストの要因となるところ、本実施の形態ではネットワークコントローラ１３０を低コストで提供できる。
【００７０】
また、不揮発性メモリに物理アドレスを格納する場合、ネットワークコントローラ１３０それぞれの不揮発性メモリに物理アドレスを書き込む工程が必要となるが、実施の形態に係るネットワークシステム１００によれば、その工程が不要となることから、製造コストを低減できる。
【００７１】
加えて、ネットワークシステム１００はメンテナンスの観点でも利点を有する。
物理アドレスを利用したシステムでは、あるノードのネットワークコントローラが故障すると、物理アドレスが異なるネットワークコントローラに換装される状況が生じる。この場合、ホストコントローラにおいて、物理アドレスと論理アドレスの対応関係を示すアドレスマッピングテーブルを修正する必要がある。
これに対してネットワークシステム１００によれば、ネットワークコントローラ１３０が換装されても、アドレスマッピングテーブルの修正は不要であるから、メンテナンスを容易化できる。
【００７２】
最後に、ネットワークシステム１００の用途を説明する。
図６（ａ）、（ｂ）は、ネットワークシステム１００を備える機器、車両の構成を示す図である。図６（ａ）は、複写機、ファクシミリ、プリンタなどの産業、ＯＡ機器６００を示す。
【００７３】
たとえば複写機６００は、紙送りを制御する機能ブロック、ネットワーク関連の機能ブロック、画像処理の機能ブロックなどを備える。複数のネットワークコントローラ１３０は各ブロックごとに設けられる。
【００７４】
図６（ｂ）は、電気自動車やハイブリッドカーなどの車両７００を示す。車両７００は、車両全体を制御するブロック（ＥＣＵ）に加えて、電池の充放電を行う機能ブロック、モータを駆動する駆動ブロック、ブレーキ制御を行う機能ブロック、ステアリングを制御する機能ブロック、エアコンなどの電気系統を制御するブロックなどを備える。ネットワークコントローラ１３０は、各ブロックごとに設けられる。
【００７５】
ネットワークシステム１００は、このような機器、車両に好適に利用できる。
【００７６】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【００７７】
（変形例１）
転送経路データ２１０は、論理アドレスの割当先のノードの深さに応じた可変長データとしてもよい。たとえば割当先のノードの深さが２であるとき、図４（ａ）の枝番号データ２１２＿４、２１２＿３が省略される。この場合、転送経路データ２１０内の冗長なデータを削除できる。
【００７８】
（変形例２）
変形例１において、転送経路データ２１０を可変長データとする場合、深さデータ２０６を省略することができる。すなわち、転送経路データ２１０のビット数を、深さデータ２０６の代わりに利用してもよい。この場合、転送経路データ２１０が、割り当て対象のノードの深さを指定するデータを兼ねている。
ネットワークコントローラ１３０の第２インタフェース部１３６は、転送経路データ２１０のビット数（データ長）にもとづいて、論理アドレスの割当先のノードの深さを判定する。そして判定した深さと、ステップカウント２０８が所定の関係を満たすときに、論理アドレス２０４を、当該ネットワークコントローラ１３０に割り当てられた論理アドレスとして記憶部１４０に書き込む。
【００７９】
（変形例３）
実施の形態では、深さが深くなるにしたがい、ステップカウント２０８がインクリメントされる場合を説明したが、本発明はそれには限定されない。たとえばネットワークツリーの最大深さＭをステップカウント２０８の初期値とし、ノードが深くなるごとに、ステップカウント２０８をデクリメントしてもよい。つまり、ステップカウント２０８は、ルートノードからの深さを示していればよい。
【００８０】
実施の形態にもとづき、具体的な語句を用いて本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が可能である。
【符号の説明】
【００８１】
１００…ネットワークシステム、１１０…ホストコントローラ、１１２…信号処理部、１１４…アドレス設定部、１１６…ＲＯＭ、１１８…第３インタフェース部、１２０…第４インタフェース部、１３０…ネットワークコントローラ、１３２…信号処理部、１３４…第１インタフェース部、１３６…第２インタフェース部、１３８…第５インタフェース部、１４０…記憶部、１４２…アドレス取得部、１５０…機能ブロック、１５２…ホストプロセッサ、２００…アドレス指定データ、２０２…ヘッダ、２０４…論理アドレス値、２０６…深さデータ、２０８…ステップカウント、２１０…転送経路データ、２１２…枝番号データ。
【図１】
0005986814.tif 000002
【図２】
0005986814.tif 000003
【図３】
0005986814.tif 000004
【図４】
0005986814.tif 000005
【図５】
0005986814.tif 000006
【図６】
0005986814.tif 000007