(57)【要約】製造物品は、プロセッサ上にロードされ、実行されると、リモートデバイスを識別し、リモートデバイスのネットワーキングを構成し、かつリモートデバイスのネットワークスタックをホストするように、プロセッサを構成する命令を有する非一時的機械可読媒体を含む。命令は、別のリモートデバイスを識別し、他のリモートデバイスのネットワーキングを構成し、他のリモートデバイスのネットワークスタックをホストし、かつリモートデバイス間の読み取り及び書き込み要求を発行するように、プロセッサを更に構成する。
2020510332.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
プロセッサと、
非一時的機械可読媒体と、を備え、
前記媒体が、命令を含み、前記命令が、前記プロセッサ上にロードされ、実行されると、前記プロセッサに、
第１のリモートデバイスを識別させ、
前記第１のリモートデバイスのネットワーキングを構成させ、かつ
前記第１のリモートデバイスのネットワークスタックをホストさせるように構成されている、装置。
【請求項２】
前記媒体が、前記第１のリモートデバイスの仕様及び識別子に基づいて、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１に記載の装置。
【請求項３】
前記媒体が、前記第１のリモートデバイスを一意に識別する前記第１のリモートデバイスによって報告された仕様及び識別子に基づいて、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１に記載の装置。
【請求項４】
前記媒体が、前記第１のリモートデバイスのモデルを識別する前記第１のリモートデバイスによって報告された仕様及び識別子に基づいて、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１又は３に記載の装置。
【請求項５】
前記媒体が、
第２のリモートデバイスを識別し、
前記第２のリモートデバイスのネットワーキングを構成し、
前記第２のリモートデバイスのネットワークスタックをホストし、かつ
前記第１のリモートデバイスと前記第２のリモートデバイスとの間の読み取り及び書き込み要求を発行するように、前記プロセッサを構成するための命令を更に含む、請求項１〜４のいずれか一項に記載の装置。
【請求項６】
前記媒体が、
前記第１のリモートデバイスのネットワークインターフェースカード上でスクリプトを実行することによって、前記第１のリモートデバイスのネットワーキングを構成するように、前記プロセッサを構成するための命令を更に含む、請求項１〜５のいずれか一項に記載の装置。
【請求項７】
前記媒体が、
前記第１のリモートデバイスのモデルに基づいて、前記第１のリモートデバイスのネットワーキングを構成するように実行するためのスクリプトを選択するように、前記プロセッサを構成するための命令を更に含む、請求項１〜６のいずれか一項に記載の装置。
【請求項８】
前記媒体が、前記第１のリモートデバイスがプロセッサを含むかどうかに基づいて、前記第１のリモートデバイスのネットワーキングを構成するように実行するためのスクリプトを選択するように、前記プロセッサを構成するための命令を更に含む、請求項１〜７のいずれか一項に記載の装置。
【請求項９】
前記第１のリモートデバイスが、汎用プロセッサを含まない、請求項１〜８のいずれか一項に記載の装置。
【請求項１０】
前記第１のリモートデバイスが、ネットワークスタックを含まない、請求項１〜９のいずれか一項に記載の装置。
【請求項１１】
非一時的機械可読媒体を含む製造物品であって、前記媒体が、命令を含み、前記命令が、プロセッサ上にロードされ、実行されると、
第１のリモートデバイスを識別し、
前記第１のリモートデバイスのネットワーキングを構成し、かつ
前記第１のリモートデバイスのネットワークスタックをホストするように、前記プロセッサを構成する、製造物品。
【請求項１２】
前記第１のリモートデバイスの仕様及び識別子に基づいて、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１１に記載の物品。
【請求項１３】
前記第１のリモートデバイスを一意に識別する前記第１のリモートデバイスによって報告された仕様及び識別子に基づいて、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１１に記載の物品。
【請求項１４】
前記第１のリモートデバイスのモデルを識別する前記第１のリモートデバイスによって報告された仕様及び識別子に基づいて、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１１又は１３に記載の物品。
【請求項１５】
第２のリモートデバイスを識別し、
前記第２のリモートデバイスのネットワーキングを構成し、
前記第２のリモートデバイスのネットワークスタックをホストし、かつ
前記第１のリモートデバイスと前記第２のリモートデバイスとの間の読み取り及び書き込み要求を発行するための命令を更に含む、請求項１１〜１４のいずれか一項に記載の物品。
【請求項１６】
前記第１のリモートデバイスのネットワークインターフェースカード上でスクリプトを実行することによって、前記第１のリモートデバイスのネットワーキングを構成するための命令を更に含む、請求項１１〜１５のいずれか一項に記載の物品。
【請求項１７】
前記第１のリモートデバイスのモデルに基づいて、前記第１のリモートデバイスのネットワーキングを構成するように実行するためのスクリプトを選択するための命令を更に含む、請求項１１〜１６のいずれか一項に記載の物品。
【請求項１８】
前記第１のリモートデバイスがプロセッサを含むかどうかに基づいて、前記第１のリモートデバイスのネットワーキングを構成するように実行するためのスクリプトを選択するための命令を更に含む、請求項１１〜１７のいずれか一項に記載の物品。
【請求項１９】
前記第１のリモートデバイスが、汎用プロセッサを含まない、請求項１１〜１８のいずれか一項に記載の物品。
【請求項２０】
前記第１の除去デバイスが、ネットワークスタックを含まない、請求項１１〜１９のいずれか一項に記載の物品。
【請求項２１】
請求項１１〜２０のいずれか一項に記載の物品のいずれかに含まれる命令を実行すると、プロセッサによって実施される動作を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本出願は、２０１７年３月１７日に出願された、米国特許仮出願第６２／４７２，６４３号に対する優先権を主張し、その内容全体が、参照により本明細書に組み込まれる。
【０００２】
（技術分野）
本開示は、電子デバイスネットワークに関し、より具体的には、統合された集中型ネットワークスタックに関する。
【背景技術】
【０００３】
電子デバイスは、様々な通信規格又は技術を使用して、様々なトポロジーでネットワーク化することができる。ネットワークでは、電子デバイスは、他のネットワーク化電子デバイスと通信するために、様々な設定、ソフトウェア、及び構成でプロビジョニングされなければならない。したがって、各電子デバイスは、ネットワーク上で正常に通信するために、他の電子デバイスの設定、ソフトウェア、及び構成に依存する。
【０００４】
ネットワーク内の異なる電子デバイスが、異なるベンダーによって提供されている場合がある。更に、ネットワーク内のそのような電子デバイス上のソフトウェアが、異なるベンダーによって提供されている場合がある。加えて、電子デバイス上のソフトウェアが、異なるバージョンである場合があり、又は異なる設定又は有効な他の構成を有している場合がある。
【０００５】
ネットワークスタックは、通信プロトコルを解釈するように構成されたソフトウェアを含み得る。通信プロトコルによって定義される層に従って、様々なソフトウェア層がネットワークスタック内に存在し得る。ネットワークスタックは、典型的には、所与の電子デバイス内に存在し得る。ネットワークスタックはロードされてもよく、所与のプロトコル層に通信するために必要なソフトウェアは、プロセッサが実行するためにメモリにロードされてもよい。ネットワークスタックは、結合されてもよく、ソフトウェアプロトコルは、ネットワークインターフェースカード（ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃａｒｄ、ＮＩＣ）などの電子デバイスの識別子又はハードウェアに従って設定されてもよい。
【発明の概要】
【課題を解決するための手段】
【０００６】
本開示の実施形態は、製造物品を含む。この物品は、プロセッサ上にロードされ、実行されると、第１のリモートデバイスを識別し、第１のリモートデバイスのネットワーキングを構成し、かつ第１のリモートデバイスのネットワークスタックをホストするように、プロセッサを構成する命令を有する、非一時的機械可読媒体を含む。上記の実施形態のいずれかと組み合わせて、媒体は、第１のリモートデバイスの仕様及び識別子に基づいて、第１のリモートデバイスのネットワーキングを構成するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、媒体は、第１のリモートデバイスを一意に識別する第１のリモートデバイスによって報告された仕様及び識別子に基づいて、第１のリモートデバイスのネットワーキングを構成するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、媒体は、第１のリモートデバイスのモデルを識別する第１のリモートデバイスによって報告された仕様及び識別子に基づいて、第１のリモートデバイスのネットワーキングを構成するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、媒体は、第２のリモートデバイスを識別し、第２のリモートデバイスのネットワークを構成し、第２のリモートデバイスのネットワークスタックをホストし、かつ第１のリモートデバイスと第２のリモートデバイスとの間で読み取り及び書き込み要求を発行するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、媒体は、第１のリモートデバイスのネットワークインターフェースカード上でスクリプトを実行することによって、第１のリモートデバイスのネットワーキングを構成するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、媒体は、第１のリモートデバイスのモデルに基づいて、第１のリモートデバイスのネットワーキングを構成するように実行するためのスクリプトを選択するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、媒体は、第１のリモートデバイスがプロセッサを含むかどうかに基づいて、第１のリモートデバイスのネットワーキングを構成するように実行するためのスクリプトを選択するための命令を更に含んでもよい。上記の実施形態のいずれかと組み合わせて、第１のリモートデバイスは、汎用プロセッサを含まなくてもよい。上記の実施形態のいずれかと組み合わせて、第１のリモートデバイスは、ネットワークスタックを含まなくてもよい。
【０００７】
本開示の実施形態は、上記の実施形態のいずれかによるプロセッサ及び製造物品を含み得る。
【０００８】
本開示の実施形態は、上記実施形態からの命令のうちのいずれかを実行するプロセッサによって実施される方法を含み得る。
【図面の簡単な説明】
【０００９】
【図１】本開示の実施形態に係る、集中型ネットワーク管理のための例示的なシステム１００の図である。
【図２】本開示の実施形態に係る、システム１００及びシステム１００の動作のより詳細な図を示す。
【発明を実施するための形態】
【００１０】
図１は、本開示の実施形態に係る、集中型ネットワーク管理のための例示的なシステム１００の図である。
【００１１】
特定の数の要素がシステム１００に示されているが、システム１００は、任意の適切な数及び種類の要素を含んでもよい。システム１００は、ルートノード１０２と、スレーブノード１１４及びスレーブノード１２４などの１つ以上のスレーブノードと、を含むことができる。各ノード１０２、１１４、１２４は、ハードウェア及びソフトウェアの適切な構成を含み得る。例えば、各ノード１０２、１１４、１２４は、それぞれのアプリケーションハードウェア１０４、１１６、１３４と、それぞれの中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）１０６、１１８と、それぞれのドライバソフトウェア１２８、１２２と、それぞれのアプリケーション１１２、１２０と、それぞれのネットワークコントローラ（ｎｅｔｗｏｒｋ  ｃｏｎｔｒｏｌｌｅｒ、ＮＷＣ）１２６、１３２、１３６と、を含み得る。図１に示すように、スレーブノード１１４及びスレーブノード１２４は、異なる方法で実装されてもよい。例えば、スレーブノード１２４は、ＣＰＵ及びドライバを含まなくてもよいが、代わりに、他のノードと通信するアプリケーションハードウェア１３４を単に含む。各要素のＣＰＵは、プロセッサ、マイクロコントローラ、コア、又は他の適切な機構によるなどの、任意の適切な方法で実装されてもよい。各要素のドライバソフトウェアは、ネットワークスタックがルートノード１０２に完全に又は部分的にオフロードされ得るため、ストリップダウンネットワークソフトウェアを含んでもよい。アプリケーションハードウェア１０４は、特定用途向けプロセッサ、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）、集積回路、又はネットワーキングを使用し得る特定のタスクを実施するように構成された回路を含む他の機構を含み得る。更に、アプリケーション１１２、１２０は、ネットワーキングを使用し得る、それぞれのＣＰＵ上で実行するソフトウェアを含んでもよい。このようなアプリケーションは、ドライバ１２８、１２２などの更なるソフトウェアを使用して、それぞれのＮＷＣにアクセスすることができる。ＮＷＣ１２６、１３２、１３６は、ＮＷＣ内のプロセッサなどのプロセッサ上で実行するための回路及び命令の任意の適切な組み合わせによって実装されてもよい。ＮＷＣ１２６、１３２、１３６は、ネットワーク１３０を介して、他のノードに接続するように構成されてもよい。ＮＷＣ１２６、１３２、１３６は、ネットワークインターフェースカード（ＮＩＣ）又はインテリジェントＮＩＣ（ｉｎｔｅｌｌｉｇｅｎｔ  ＮＩＣ、ＩＮＩＣ）を含んでもよい。ネットワーク１３０は、イントラネット、インターネット、イーサネット（登録商標）、無線通信ネットワーク、又は適切なプロトコル及びトポロジーによって実装される他のネットワークなどの任意の適切なネットワークを含んでもよい。例えば、ネットワーク１３０は、イーサネット（登録商標）、ＣＡＮ、ＴＣＰ／ＩＰ、ＭＯＳＴ  ＮｅｔＳｅｒｖｉｃｅｓ機能ブロック（Ｆｕｎｃｔｉｏｎ  Ｂｌｏｃｋ、ＦＢｌ���ｃｋ）、又はユーザ特有の規格及びプロトコルを可能にし得る。
【００１２】
ルートノード１０２は、ネットワーク管理を実施するように構成され得る。ネットワーク管理は、集中型ネットワークスタック（ｃｅｎｔｒａｌｉｚｅｄ  ｎｅｔｗｏｒｋ  ｓｔａｃｋ、ＣＮＳ）１１０などのソフトウェアによって、ルートノード１０２で実施することができる。ＣＮＳ１１０は、ＣＰＵ  １０６などのプロセッサによる実行のためのソフトウェア、ルーチン、機能、ライブラリ、スクリプト、アプリケーション、又は他のコードの任意の適切な組み合わせによって実装されてもよい。
【００１３】
一実施形態では、ＣＮＳ１１０は、システム１００内のネットワーク参加者を識別するように構成され得る。ネットワーク参加者は、様々なスレーブノード１１４、１２４内にあり得る。別の実施形態では、ＣＮＳ１１０は、スレーブノード１１４、１２４などの全てのネットワークノードのアドレス割り当てを実施するように構成されてもよい。更に別の実施形態では、ＣＮＳ１１０は、ネットワークの要素間のサービス品質チャネルの割り振りを実施するように構成されてもよい。別の実施形態では、ＣＮＳ１１０は、ネットワーク内の任意の２つのポイント間で帯域幅制御を割り当てるように構成されてもよい。更に別の実施形態では、ＣＮＳ１１０は、ネットワーク１３０のＮＷＣ１２６、１３２、１３６のアプリケーションインターフェースを構成するように動作可能であり得る。別の実施形態では、ＣＮＳ１１０は、ネットワーク１３０のノードのアプリケーションハードウェア１０４、１１６、１３４を構成するように動作可能であり得る。ＣＮＳ１１０からのノードの構成は、汎用入出力（ｇｅｎｅｒａｌ−ｐｕｒｐｏｓｅ  ｉｎｐｕｔ−ｏｕｔｐｕｔ、ＧＰＩＯ）、Ｉ２Ｃ、又はシリアル周辺インターフェース（ｓｅｒｉａｌ  ｐｅｒｉｐｈｅｒａｌ  ｉｎｔｅｒｆａｃｅ、ＳＰＩ）バスなどの帯域内接続又は帯域外接続を通じて実施されてもよい。一実施形態では、ＣＮＳ１１０は、故障状態から回復するためのネットワーク管理を実施してもよい。いったんプロビジョニングされると、ネットワーク１３０のノードは、ピアツーピアネットワーキングプロトコルを介して、互いに代わりに通信することができる。
【００１４】
各スレーブノード１１４、１２４は、システム記述子１０８に従って、構成又は定義されてもよい。システム記述子１０８は、書き込まれるか又は生成されてもよく、そのようなノードのそれぞれの目標状態の拡張可能なマークアップ言語（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ、ＸＭＬ）などのコーディングを含んでもよい。システム記述子１０８は、スレーブノード１１４、１２４に設定を適用することができる、ＣＮＳ１１０によって処理されてもよい。システム記述子１０８に記載されるＣＮＳ１１０によって適用される設定は、スレーブノード１１４、１２４のネットワーク構成を、完全に、又は部分的に置き換えることができる。一実施形態では、システム記述子１０８は、ローカル多目的マイクロコントローラ又はローカル多目的又は汎用プロセッサを含まない、スレーブノード１２４などのノードのネットワーキングを可能にし得る。システム記述子１０８の内容は、それぞれのＮＷＣを通じて、スレーブノード１１４、１２４に設定を適用するＣＮＳ１１０によって実装されてもよい。
【００１５】
図１では、単一のルートノード１０２が示されている。ルートノード１０２は、例えば、サーバ、コンピュータ、ヘッドユニット、又は他の適切な電子デバイス内に実装されてもよい。２つのスレーブノード１１４、１２４が示されている。スレーブノード１１４は、汎用又は多目的マイクロコントローラ又はプロセッサを含む電子デバイス内に実装されてもよい。これらは、例えば、メディアプレーヤ、スマートフォン、コンピュータ、又は自動車ヘッドユニットを含んでもよい。スレーブノード１２４は、マイクロフォン、ヘッドフォン増幅器、電源アダプタ、又はセンサなどの汎用又は多目的マイクロコントローラ又はプロセッサを含まない電子デバイス内に実装されてもよい。様々なスレーブノードはまた、スクリーン、タッチ入力、ダイヤル、ディスプレイ、及びカメラを含んでもよい。ルートノード１０２上で動作するＣＮＳ１１０は、統合された集中型ネットワーク管理スタックであってもよい。
【００１６】
ＣＮＳ１１０は、システム記述子１０８を受信又は読み取ることができる。システム記述子１０８は、メモリに記憶されてもよく、ユーザによって入力されてもよく、又は別のエンティティから受信されてもよく、任意の適切なデータ構造、ファイル、又は他の記憶機構内に実装されてもよい。システム記述子１０８は、全てのサポートされたノードのリスト、そのようなノードのそれぞれのターゲット構成、視聴覚的接続及び設定、発見ノード間で確立される通信チャネルのリスト、並びに任意の他の適切な情報を記述してもよい。チャネルは、特定のノード間、スレーブノードとルートノードとの間、又は一般的に定義され得る。チャネルは、ＧＰＩＯ、Ｉ２Ｃ、若しくはＳＰＩなどの通信プロトコル又は媒体に従って、定義され得る。
【００１７】
ＣＮＳ１１０は、ドライバ１２８を介して、各それぞれのノードのＮＷＣ１２６、１３２、１３６に通信するように構成されてもよい。ドライバ１２８を使用する通信は、例えば、ＵＳＢ、Ｉ２Ｃ、ＳＰＩ、又はＭＬＢを使用して実施することができる。システム記述子１０８の内容によれば、各ローカルＮＷＣ１２６、１３２、１３６は、ネットワークインターフェース及びアプリケーションインターフェースを含むようにセットアップされてもよい。アプリケーションインターフェースは、Ｉ２Ｃ、ＵＳＢ、ＭＬＢ、ＳＰＩ、Ｉ２Ｓ、又はＧＰＩＯなどの、使用されるプロトコルに従って、定義され得る。
【００１８】
ネットワークアクセスが、スレーブノード１１４、１２４などの所与のスレーブノードで確立されると、ＣＮＳ１１０は、ネットワーク内のデバイスを発見することができる。それぞれのＮＷＣ内の各スレーブノード内の記憶されたキー、署名、又は他の識別子を読み取って、通信に使用することができる。記憶された識別子は、ノードを互いに区別するために、使用されてもよい。記憶された識別子は、デバイスの製造中に、又は別の適切な構成プロセスにインストールされてもよい。その後、各ノードは、ＣＮＳ１１０によって、ネットワークアドレスを割り当てられてもよい。各ノードのネットワークインターフェースは、ＣＮＳ１１０によってセットアップされ得る。それぞれのＮＷＣのアプリケーションインターフェースをセットアップすることができる。各ノードのハードウェアアプリケーションは、Ｉ２Ｃ、ＧＰＩＯ又はＳＰＩを利用して、ＮＷＣに接続されてもよい。各ノード内のハードウェアアプリケーションは、これらの確立された接続を使用して、様々なスレーブノード１１４、１２４及びルートノード１０２において、互いに通信することができる。ハードウェアアプリケーション１０４、１１６、１３２は、例えば、第２のスレーブノード１２４などの汎用プロセッサ又はマイクロコントローラを用いずに、プレーン又はベアハードウェアで動作してもよい。それぞれのＮＷＣ１２６、１３２、１３６は、ＮＷＣに到着するストリーミングデータが、アプリケーションハードウェア又はアプリケーションソフトウェア１１２、１２０との正しいインターフェースに適用されることを確実にするように、セットアップされてもよい。ＮＷＣセットアップ中に、ネットワーク１３０内のルーティング、多重化、又は他の接続は、それぞれのデバイスの対応するアプリケーションハードウェア１０４、１１６、１３４で作製され得る。更に、それぞれのデバイス上のアプリケーションソフトウェア１１２、１２０をセットアップすることができる。場合によっては、それぞれのデバイス上のチップは、ＮＷＣから来るストリーミングデータを消費し得る。チップは、動作を正しくセットアップするためのブート、初期化、又はパラメータを必要とし得る。例えば、汎用プロセッサ又はマイクロコントローラを用いずに、アプリケーションハードウェア１３４内の増幅器がスレーブノード１２４上に実装される場合、増幅器は、モノ又はステレオモードを選択し、ボリューム、又は他のパラメータを設定するためのパラメータを必要とする場合がある。ＮＷＣ１３６のセットアップは必要とされ得るが、個々のアプリケーション及びデバイスの必要性に応じて、アプリケーションハードウェア１３４のセットアップは、必要とされる又は任意選択的に別個に定義されてもよい。
【００１９】
システム１００は、汎用プロセッサ又はマイクロコントローラを有さないデバイスがＵＳＢ、Ｉ２Ｃ、又はＳＰＩなどのホストコントローラで他のノードに接続されるシステムとは対照的に動作し得る。デバイスは、他の要素とピアツーピア様式で一般的にネットワークすることができないが、代わりに、ホストコントローラを介して、他のデバイスにのみ通信することができる。更に、システム１００は、非一元的様式で構成された最も多くのネットワークとは対照的に動作してもよい。加えて、システム１００は、スレーブノードが個々のソフトウェアスタック及び汎用コントローラを必要とするネットワークとは対照的に動作し得る。その結果は、汎用プロセッサを有さないデバイスがピアツーピア様式で他の要素と通信することができる既存のネットワークを上回る技術的改善を含み得、ネットワーク要素は、中央に構成されてもよく、したがって、その通信が生じ得るように一貫して構成されてもよく、ネットワーク要素は、処理及び記憶に関して高価であり得る、個々のソフトウェアスタック及び汎用コントローラを必要としない場合がある。
【００２０】
ルートノード１０２において、ＣＮＳ１１０及びアプリケーションソフトウェア１１２は、ドライバ１２８を使用して、ＮＷＣ１２６に通信することができる。同様に、スレーブノード１１４において、アプリケーションソフトウェア１２０は、ドライバ１２２を使用して、ＮＷＣ１３２に通信することができる。しかしながら、スレーブノード１２４がＣＰＵを含まないので、アプリケーションハードウェア１３４の機能は、ＮＷＣ１３６を介して通信され得る。他のノードでは、アプリケーションハードウェア１１６は、ＮＷＣ１３２を介して通信してもよい。アプリケーションハードウェアとＮＷＣとの間の通信は、ＵＳＢ、Ｉ２Ｃ又はＳＰＩなどのホストコントローラ技術を用いて行われてもよい。ＮＷＣ１３６、１３２、１２６間の通信は、ＣＮＳ１１０によって確立及び制御されたピアツーピアネットワークプロトコル及びスタックに従うことができる。
【００２１】
ＣＮＳ１１０、アプリケーション１１２、ドライバソフトウェア１２８、アプリケーション１２０及びドライバソフトウェア１２２は、ロード及び実行されたときに、本開示の機能を実施するようにプロセッサを構成する、プロセッサ（それぞれのＣＰＵ１０６、１１８など）による実行のための命令によって実装されてもよい。命令は、実行のための命令を記憶又はロードするために、必要に応じて１つ以上のメモリに常駐することができる。１つ以上のプロセッサ又はプロセッサコアは、命令を実行することができる。命令は、任意の適切なスクリプト、ファイル、実行可能ファイル、ライブラリ、アプリケーション、機能、アプリケーションプログラミングインターフェース、又はそれらの組み合わせで実装されてもよい。ＣＮＳ１１０は、様々なスレーブノードからの要求又はユーザからの入力のための状態マシン監視を使用して、実装されてもよい。
【００２２】
図２は、本開示の実施形態に係る、システム１００及びシステム１００の動作のより詳細な図を示す。図２の例では、ルートノード１０２は、自動車システム内のノードを管理することができる。ノードは、１１４Ａ及び１１４Ｂとして示されるスレーブノード１１４の２つのインスタンス、並びに１２４Ａとして示されるスレーブノード１２４のインスタンスを含んでもよい。ルートノード１０２は、インフォテインメント及び車両補助システム制御のためのヘッドユニットであり得る。スレーブノード１１４Ａ及びスレーブノード１１４Ｂは、ＵＳＢホスト、ステレオシステム、又は任意の他の適切な機構を含んでもよい。スレーブノード１１４Ａ及びスレーブノード１１４ＢはＣＰＵを含んでもよく、スレーブノード１２４ＡはＣＰＵを含まなくてもよい。スレーブノード１２４Ａは、例えば、システム１００の他の構成要素と共に使用可能であり得る、マイクロフォンであってもよい。
【００２３】
ＣＮＳ１１０は、ルートノード１０２のそれ自体のＮＷＣ１２６を構成し得る。例えば、ルートノード１０２は、３１１の署名を有するＮＷＣ１２６内にＩＮＩＣを有し得る。ＣＮＳ１１０は、２００のネットワークアドレスを、ルートノード１０２に割り当てることができる。
【００２４】
ＣＮＳ１１０は、ネットワークアドレスを、他のノードに割り当てることができる。ＣＮＳ１１０は、２１０のネットワークアドレスをスレーブノード１１４Ａに、２２０のアドレスをスレーブノード１１４Ｂに、５００のアドレスをスレーブノード１２４Ａに割り当てることができる。スレーブノード１１４Ａは、３２４のＮＷＣ１３２内のＩＮＩＣからの署名を有し得る。スレーブノード１１４Ｂがデバイスと同様の製造元及びモデルである場合、スレーブノード１１４Ｂは、３２４の同様の署名を有してもよい。いくつかの実施形態では、２つのそのようなスレーブノードがデバイスと同様の製造元及びモデルである場合であっても、各スレーブノードの署名は異なる場合がある。
【００２５】
ＣＮＳ１１０は、スレーブノード内の識別子に従って、スレーブノード１１４Ａ、１１４Ｂ、１２４Ａを構成してもよい。例えば、ＣＮＳ１１０は、３２４の識別子を有するスレーブノード１１４Ａにアクセスすることができる。識別子３２４に基づいて、ＣＮＳ１１０は、システム記述子１０８にアクセスすることができ、そのようなデバイスは、特定の構成ルーチンで構成されることが指定される。これは「実行＿ａｕｘ＿ｓｃｒｉｐｔ」として示されてもよく、スレーブノード１１４Ａによって実装されるデバイスのタイプに固有であってもよい。更に、そのようなスクリプトは、アプリケーションソフトウェア、ドライバソフトウェア、又はＣＰＵ上で実行することができる他の要素のためのものであってもよい。「ａｕｘ＿ｓｃｒｉｐｔ」は、ＭＣＵを含むノードを構成するためのものであり得る。ＣＮＳ１１０は、スレーブノード１１４Ａを構成し、ネットワークアドレスを割り当てるために、「ａｕｘ＿ｓｃｒｉｐｔ」を実行してもよい。同様に、ＣＮＳ１１０は、スレーブノード１１４Ｂのアプリケーション及びＮＷＣを構成するために、「ａｕｘ＿ｓｃｒｉｐｔ」を実行してもよい。２つのリモートノードは、同様タイプ又は類似のタイプの自動車の視聴覚デバイスであってもよい。
【００２６】
ＣＮＳ１１０は、スレーブノード１２４Ａにアクセスし、スレーブノード１２４Ａが３７５の識別子を有すると判定してもよい。上述したように、スレーブノード１２４Ａは、マイクロコントローラを有さない電子デバイス、例えば、マイクロフォン（単なる例として）を含んでもよい。３７５としてのリモートノード識別に基づいて、システム記述子１０８は、実施例で「ｍｉｃｒｏ＿ｓｃｒｉｐｔ」として指定された特定のスクリプトを使用して、リモートノードが構成されることを指定することができる。マイクロコントローラ又はプロセッサを含むリモートノードを構成するために、「ａｕｘ＿ｓｃｒｉｐｔ」を使用する一方で、マイクロコントローラ又はプロセッサを含まないリモートノードを構成するために、「ｍｉｃｒｏ＿ｓｃｒｉｐｔ」を使用してもよい。ＣＮＳ１１０は、スレーブノード１２４ＡのＮＷＣ１３６を構成するために、「ｍｉｃｒｏ＿ｓｃｒｉｐｔ」を実行してもよい。セットアップ中、ＣＮＳ１１０は、スレーブノード１２４Ａに、５００のネットワークアドレスを割り当ててもよい。音声／視覚（Ａｕｄｉｏ／ｖｉｓｕａｌ、ＡＶ）接続は、ノードに対して確立されてもよい。
【００２７】
一実施形態では、ＣＮＳ１１０は、スレーブノードがプロセッサを含むかどうかにかかわらず、スレーブノード１１４、１２４のネットワーク構成を実施するように構成されてもよい。したがって、ＣＮＳ１１０は、それぞれのスレーブノードの代わりに、「ａｕｘ＿ｓｃｒｉｐｔ」又は「ｍｉｃｒｏ＿ｓｃｒｉｐｔ」などのスクリプトを実行するように構成され得る。ＣＮＳ１１０は、実行されたスクリプトの動作を使用して、それぞれのスレーブノードをリモート制御することができる。ＣＮＳ１１０は、ローカル又はリモートのいずれかで、実行されたスクリプトの動作を、アドレス指定された宛先に適用することができる。ＣＮＳ１１０は、チップ間通信チャネル又は制御チャネルを介して、スレーブノード１１４、１２４に接続されてもよい。そのようなチャネルは、帯域外チャネルであってもよい。
【００２８】
各リモートノードにおいて、スクリプトから得られるコマンドは、それぞれのＮＷＣによって受信されてもよい。それぞれのＮＷＣは、受信されたスクリプトに従って、それ自体を構成することができる。マイクロコントローラ又はプロセッサが存在しない場合、ＮＷＣは、Ｉ２Ｃ及びＧＰＩＯメッセージを、そのローカルハードウェアに渡すことができる。
【００２９】
更に、ＣＮＳ１１０は、各ノードに対する帯域幅割り振り又はサービス品質基準を発行することができる。データ接続、帯域幅割り振り、オーディオビデオ接続、又は他のパラメータは、ノードへのコマンドの再発行によって、動的に変更されてもよい。リモートノードの再構成は、例えば、新しいデバイスがアタッチするとき、又はデバイスがネットワーク１３０からアタッチ解除されたときに実施されてもよい。
【００３０】
制御チャネルを介した構成の後、ネットワークを介して、メッセージを送信することによって、後続の通信を実施することができる。例えば、増幅器の音量を調整すること、又はメディアトラックを選択することは、そのような後続のメッセージを含んでもよい。これらのメッセージは、制御チャネルを介して、Ｉ２Ｃなどの他のチャネル上で、又は構成中に確立されたイーサネット（登録商標）チャネル上で送信されてもよい。メッセージを送信するためのチャネルの決定は、異なるチャネルが異なる帯域幅容量を有するため、メッセージの帯域幅要件に依存し得る。ＣＮＳ１１０は、異なる種類のトラフィックのためにどのチャネルが使用されるべきかを確立することができ、サービス品質（ｑｕａｌｉｔｙ−ｏｆ−ｓｅｒｖｉｃｅ、ＱＯＳ）要件に従って、帯域幅制限を強制することができる。イーサネット（登録商標）などのチャネルが故障した場合、制御チャネルなどの他のチャネルを使用して、そのようなエラーを識別することができる。故障は、バックアップチャネルとして機能する、そのような他のチャネルで診断され得る。
【００３１】
ＣＮＳ１１０によってホストされるネットワークスタックは、メッセージを、ルート１０２及びスレーブノード１１４、１２４の要素にローカルに又はリモートにトリガするように構成されてもよい。ＮＷＣ１２６、１３２、１３６のポートピンの状態は、ＣＮＳ１１０によって適切に取得又は設定され得る。スレーブノード１１４、１２４に対してローカルでは、そのようなポートピンの状態は、スレーブノード１１４、１２４における、回路、ボタン、又は他のヒューマンマシンインターフェースによって設定されてもよい。したがって、システム内の他の場所の情報の要求は、汎用プロセッサなしで、スレーブノード１２４によって生成されてもよい。要求は、ＮＷＣ１３６のポートで、ＣＮＳ１１０によって取得され、その後処理されてもよい。要求は、例えば、データを送信又は受信し、別の要素との接続を確立すること、又は任意の他の適切なタスクの要求であってもよい。
【００３２】
ＣＮＳ１１０は、ネットワーク１３０内の全ての接続を生成及び制御するように構成されてもよい。ＣＮＳ１１０は、スレーブユニット１１４Ａ、１１４Ｂ、１２４Ａのためのリモート制御として機能し得る。例えば、ＣＮＳ１１０は、スレーブユニット１１４Ａによって実装されるヘッドユニットと、スレーブユニット１２４Ａによって実装されるマイクロフォンとの間の接続を確立し得る。スレーブユニット１２４Ａのマイクロフォンは、マルチメディアカードインターフェースを含まなくてもよい。通信は、ＣＮＳ１１０がＮＷＣ１３６をプロビジョニングすることによって確立され得る。そのような実施例では、ＣＮＳ１１０のＩ２Ｃバスマスターは、マイクロフォンへの読み取り及び書き込みを管理することができる。スレーブユニット１２４Ａに、及びスレーブユニット１２４Ａから転送されるデータ及びコマンドは、ＣＮＳ１１０にオフロードされてもよい。したがって、ルートノード１０２内の既存の処理電力を使用して、リモート制御ノードの制御ソフトウェアを実行することができる。１つのソフトウェアインスタンスのみが開発及び展開される必要があるため、ルートノード１０２におけるソフトウェアの集中制御は、開発プロセスを簡略化することができる。したがって、ルートノード１０２内のＣＮＳ１１０ソフトウェアスタックのみが、ネットワーキング知識を必要とする。システム１００用のソフトウェアの開発者は、ノード内の多くの要件をプログラムするために必要とされない場合がある。代わりに、開発者は、システム記述子１０８を構成するだけでよい場合がある。システム１００のアーキテクチャ及びトポロジーは、システム分配、ボード空間、及びリモートデバイスの電力消散を容易にすることができる。ノードは、リモートノード上で追加のメモリ及び電力処理なしに開発されてもよい。
【００３３】
例示的な実施形態について上述したが、これらの実施形態の趣旨及び範囲から逸脱することなく、本開示から他の変形形態及び実施形態を作ることができる。
【図１】
2020510332.tif 000003
【図２】
2020510332.tif 000004
【国際調査報告】
2020510332.tif 000005
2020510332.tif 000006