(57)【要約】ネットワークバスを介して少なくとも１つのネットワークデバイスと通信するためのシステム及び方法であって、バス制御装置とホストコンピュータとを含む。バス制御装置はホストコンピュータからそのバス制御装置に転送可能な一連の命令を実行する。これらの命令は、ホストコンピュータの作業量を減らしてネットワークバスを介してバス制御装置とネットワークデバイスとの間で行われる通信を制御するために、ホストコンピュータとは独立な仕方で一般的には繰り返し実行される。バス制御装置はホストコンピュータに更に割り込まれることなく一連の命令を実行することができるので、ホストコンピュータはバス制御装置が一連の命令を実行するのと同時に他の作業を実行することができる。一具体例としては、一連の命令の中の少なくとも１つの命令は、ホストコンピュータによって変更されることが可能な関連する可変データフィールドを有しており、ホストコンピュータは、その可変データフィールドの値を変えることによってバス制御装置により使用される命令を変更することができるようになっている。
2005500593.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと、
ネットワークバス及び該ホストコンピュータと電気通信するように配置されており一連の命令を記憶するためのメモリデバイスを含むバス制御装置であって、前記ネットワークバスを介して前記少なくとも１つのネットワークデバイスとの間で行われる通信を制御するために前記ホストコンピュータとは独立な仕方で前記一連の命令を実行するのに適合したバス制御装置と
を含んでなる、ネットワークバスを介して少なくとも１つのネットワークデバイスと通信するためのシステム。
【請求項２】
前記ホストコンピュータは、前記一連の命令を前記バス制御装置のメモリデバイスに転送してコマンド・スケジュールを該バス制御装置に事前にロードすることができるものである請求項１に記載のシステム。
【請求項３】
前記バス制御装置のメモリデバイスは不揮発性メモリデバイスを含み、前記ホストコンピュータは、前記バス制御装置が前記一連の命令を実行する期間よりも遅れることなく前記不揮発性メモリデバイスに前記一連の命令を事前にロードすることができるものである請求項２に記載のシステム。
【請求項４】
前記バス制御装置のメモリデバイスは揮発性メモリデバイスを含み、前記ホストコンピュータは、前記バス制御装置が前記一連の命令を実行する前に前記揮発性メモリデバイスに前記一連の命令を事前にロードすることができるものである請求項２に記載のシステム。
【請求項５】
前記バス制御装置は、前記一連の命令を時間確定的な仕方で繰り返し実行するものである請求項１に記載のシステム。
【請求項６】
前記ホストコンピュータは、前記バス制御装置が前記少なくとも１つのネットワークデバイスとの通信を制御するために実行する一連の命令を含むコマンド・スケジュールを該バス制御装置に事前にロードすることができ、前記一連の命令の中の少なくとも１つの命令は関連する可変データフィールドを有しており、前記ホストコンピュータは前記ネットワークバス上における通信を評価して前記少なくとも１つの命令の可変データフィールドを変更してそれにより該ネットワークバス上における前記バス制御装置と前記少なくとも１つのネットワークデバイスとの間の通信を変更することができるものである請求項１に記載のシステム。
【請求項７】
前記バス制御装置は、一連の命令を記憶するためのメモリデバイスを含み、前記ネットワークバスを介して前記少なくとも１つのネットワークデバイスとの間で行われる通信を制御するために前記一連の命令を実行するのに適合しており、前記一連の命令の中の少なくとも１つの命令は可変データに関連する少なくとも１つの可変データフィールドを有しており、前記ホストコンピュータは前記少なくとも１つの命令の少なくとも１つの可変データフィールドに関連する可変データを変更してそれにより前記バス制御装置によって実行される前記少なくとも１つの命令をそれぞれ変更することができるものである請求項１に記載のシステム。
【請求項８】
前記ホストコンピュータは、前記ネットワークバスを介して行われる通信を評価することができ、その通信評価に基づいて前記少なくとも１つの命令の少なくとも１つの可変データフィールドに関連する可変データを変更することができるものである請求項７に記載のシステム。
【請求項９】
前記バス制御装置のメモリデバイスは少なくとも１つの予め指定されたアドレスに可変データを記憶することができ、該可変データに関連する少なくとも１つの可変データフィールドは関連する可変データの少なくとも１つの予め指定されたアドレスを特定することが可能であって前記バス制御装置が少なくとも１つの可変データフィールドを含む少なくとも１つの命令を実行するときには該バス制御装置は前記メモリデバイスから少なくとも１つの可変データフィールドによってそれぞれ特定される少なくとも１つの予め指定されたアドレスにおいて可変データを読み出すようになっている請求項７に記載のシステム。
【請求項１０】
前記バス制御装置のメモリデバイスは前記少なくとも１つの予め指定されたアドレスを含む少なくとも１つのレジスタを含んでおり、該少なくとも１つのレジスタは前記少なくとも１つの予め指定されたアドレスに可変データを記憶することができるものである請求項９に記載のシステム。
【請求項１１】
ホストコンピュータからバス制御装置へ一連の命令を転送して該バス制御装置にコマンド・スケジュールが事前にロードされるようにするステップと、
ネットワークバスを介して前記バス制御装置と少なくとも１つのネットワークデバイスとの間で行われる通信を制御するために前記ホストコンピュータとは独立な仕方で前記一連の命令を実行するステップと、
前記バス制御装置が前記一連の命令を実行するのと同時に前記ホストコンピュータが作業を実行することができるようにするステップと
を含んでなる、ネットワークバスを介して通信するための方法。
【請求項１２】
前記ホストコンピュータから前記バス制御装置へ一連の命令を転送することは該バス制御装置の不揮発性メモリデバイスに該一連の命令を転送するものであり、該一連の命令が実行される期間よりも遅れることなく該一連の命令の転送を行うものである請求項１１に記載の方法。
【請求項１３】
前記ホストコンピュータから前記バス制御装置へ一連の命令を転送することは、該バス制御装置の揮発性メモリデバイスに該一連の命令を転送するものである請求項１１に記載の方法。
【請求項１４】
前記一連の命令を実行することは、時間確定的な仕方で該一連の命令を繰り返し実行するものである請求項１１に記載の方法。
【請求項１５】
前記一連の命令を実行するステップは、前記ネットワークバスを介して前記バス制御装置と複数のネットワークデバイスとの間で行われる通信を制御するために或る仕方で該一連の命令を実行するものであり、該一連の命令の中の少なくとも１つの命令は可変データに関連する少なくとも１つの可変データフィールドを有し、当該方法は、前記少なくとも１つの命令の少なくとも１つの可変データフィールドに関連する可変データを変更することによりそれぞれの命令の実行内容を変更することを更に含むものである請求項１１に記載の方法。
【請求項１６】
前記一連の命令が実行されると前記ネットワークバスを介して行われる通信を評価することを更に含み、前記可変データを変更するステップはその通信評価に基づいて前記少なくとも１つの命令の少なくとも１つの可変データフィールドに関連する可変データを変更することを含むものである請求項１５に記載の方法。
【請求項１７】
前記可変データは少なくとも１つの予め指定されたアドレスに記憶されることができ、前記少なくとも１つの命令の少なくとも１つの可変データフィールドは、それに関連する可変データの少なくとも１つのの予め指定されたアドレスを特定することができ、前記一連の命令を実行するステップは、前記少なくとも１つの可変データフィールドを含む少なくとも１つの命令を実行して該少なくとも１つの命令の少なくとも１つの可変データフィールドによって特定される少なくとも１つの予め指定されたアドレスに基づいてそれぞれの可変データを読み出すものである請求項１５に記載の方法。
【請求項１８】
ネットワークバス上に命令を送信することができる送信機と、
該ネットワークバスからデータを受信することができる受信機と、
一連の命令を記憶することが可能なメモリデバイスと
を含んでなり、前記ネットワークバスを介して前記少なくとも１つのネットワークデバイスとの間で行われる通信を制御するためにホストコンピュータとは独立な仕方で前記メモリデバイス内の前記一連の命令を実行するのに適合したものである、ネットワークバスを介して少なくとも１つのネットワークデバイスと通信することができるバス制御装置。
【請求項１９】
当該バス制御装置にコマンド・スケジュールが事前にロードされるように、前記メモリデバイスは、前記ホストコンピュータから前記一連の命令を受信することができるものである請求項１８に記載のバス制御装置。
【請求項２０】
前記メモリデバイスは不揮発性メモリデバイスを含み、該メモリデバイスは当該バス制御装置が前記一連の命令を実行する期間よりも遅れることなく該一連の命令を受信することができるものである請求項１９に記載のバス制御装置。
【請求項２１】
前記メモリデバイスは揮発性メモリデバイスを含み、該メモリデバイスは当該バス制御装置が前記一連の命令を実行する前に該一連の命令を受信することができるものである請求項１９に記載のバス制御装置。
【請求項２２】
前記ネットワークバスを介して少なくとも１つのネットワークデバイスとの間で行われる通信を制御するために前記一連の命令を繰り返し実行するのに適合したものである請求項１８に記載のバス制御装置。
【請求項２３】
前記メモリデバイスは可変データに関連する少なくとも１つの可変データフィールドを有する前記一連の命令の少なくとも１つの命令を記憶し、前記可変データは前記ホストコンピュータによって変更されることができるため、当該バス制御装置によって実行される前記少なくとも１つの命令がそれぞれ変更されるものである請求項１８に記載のバス制御装置。
【請求項２４】
前記メモリデバイスは少なくとも１つの予め指定されたアドレスに可変データを記憶することができ、該可変データに関連する少なくとも１つの可変データフィールドは関連する可変データの少なくとも１つの予め指定されたアドレスを特定することができ、当該バス制御装置が少なくとも１つの可変データフィールドを含む少なくとも１つの命令を実行するときには当該バス制御装置は前記メモリデバイスから少なくとも１つの可変データフィールドによってそれぞれ特定される少なくとも１つの予め指定されたアドレスにおいて可変データを読み出すことができるものである請求項２３に記載のバス制御装置。
【請求項２５】
前記メモリデバイスは、前記少なくとも１つの予め指定されたアドレスを含む少なくとも１つのレジスタを含んでおり、該少なくとも１つのレジスタは前記少なくとも１つの予め指定されたアドレスに可変データを記憶することができるものである請求項２４に記載のバス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータの作業量を減らすためのシステム及びシステム、特に、ホストコンピュータに割り込まれることなく一般的に繰り返し実行することができるコマンド・スケジュールをバス制御装置に事前にロードする（preload）ためのシステム及び方法に関する。
【背景技術】
【０００２】
自動車産業や航空宇宙産業によって利用される、マルチメディア・エンターテーメント、通信、プロセス制御、及び診断用のシステムなどのシステムはより複雑になると、お互いと通信したりあるいは中央制御装置等と通信したりするための追加のデバイスに対する必要性が生じる。歴史的には、これらのシステムには様々なデバイス間の通信をサポートするためにそれらを結ぶ専用配線が敷設されてきた。しかしシステムがより集積化され、通信の必要性が増大してくると、配線に必要なスペースや配線及び付随設備のコストの両面から、必要とされる専用配線量が急速に過大化する可能性がある。さらに、専用配線の量が増大するにつれて、配線の一部が敷設中または敷設後に破損または破壊されてしまう可能性だけでなくシステムの全体的な複雑さも一般的には増大する。
【０００３】
このようなことから、複数のデバイスを結ぶ共通の通信路を提供するためのネットワークバスが開発されてきた。例えば自動車産業や航空宇宙産業向けの用途では、ネットワークバスは様々な構成部品を監視して診断情報やステータス情報を収集するために利用することができる。このことについては、様々な構成部品が受けている、歪み、加速度、圧力及び／または温度に関する診断情報及びステータス情報が収集され分析されることがある。更なる例として、ネットワークバスアーキテクチャは、通信や、自動車、ミニバン（minivan）、スポーツカー、航空機、ボート等の乗り物の乗員に向けてのマルチメディア情報配信をサポートするように現在開発が進められている。有利には、このネットワークバスは、ラジオ、カセットテーププレーヤ、コンパクトディスクプレーヤ等の中の１つ以上のものによって作り出されたストリーミング・オーディオ信号を含むオーディオ信号を車両の至る所の選ばれたスピーカまたはヘッドフォンジャックまで運ぶ。同様に、このようなネットワークバスは車両の乗員が持ち運ぶ携帯電話機との音声通信やデータ通信、並びにラップトップ型コンピュータや手持ち式計算機等との通信をサポートする場合がある。またネットワークバスは、テレビ受像機、ビデオカセットレコーダないしは他のビデオソースから１つ以上のビデオモニタまでストリーミング・ビデオ信号を含むビデオ信号を伝送する場合がある。さらに、ネットワークバスはセンサ信号やアクチュエータ信号を動力伝達系装置、自動安全装置、衝撃防護装置、電子制御方式運転装置等などのデバイスへ及びデバイスから伝送する場合がある。
【０００４】
ネットワークバスに接続された様々なデバイスの他に、これらの様々なデバイスからデータを受信してそれらのデバイスにコマンドを送信するための１つ以上の制御装置もネットワークバスに一般的に接続される。とりわけ、これらのコマンドは、様々なデバイスがネットワークバス上で情報を伝送する仕方を含む、様々なデバイスの機能の仕方を指定する。さらに、このような制御装置は、車両の乗員などのオペレータから入力（信号）を受信することができる。この入力は例えばネットワークバス上で伝送される信号の発信源並びにその信号の宛先に関する表示を含みうる。
【０００５】
或るシステムにおいては、１つ以上のバス制御装置はホストプロセッサとしても知られるホストコンピュータの制御の下、そのホストコンピュータと連動して動作する。ホストコンピュータは一般的にはバス制御装置にネットワークバスを介して送信されるコマンドを提供する。逆に、ホストコンピュータにはバス制御装置によってネットワークデバイスからの応答が提供される。ホストコンピュータはそのホストコンピュータによってバス制御装置に発行されるコマンドのタイミングに基づいてバス制御装置の動きに連携または同期することができる。その上、ホストコンピュータは、バス制御装置によって提供されるデータの相当量のデータ解析とデータマイニング（data mining）も実行しながら、多数のシステムワイドな作業（system-wide operations）を指揮するプロセス制御アルゴリズムを実行する。
【０００６】
ホストコンピュータが実行しなければならない様々な機能の結果として、ホストコンピュータは、望むスケジュールに従ってバス制御装置にコマンドを提供することがときとして不可能になることがある。このことについて、バス制御装置へのコマンドの供給を含む、ホストコンピュータによって実行されるシステムワイドな作業は、一般的に、他の機能を除外して実行されなければならない高い優先順位の作業に指定される。ホストコンピュータが直面する問題は、ホストコンピュータがバス制御装置とより頻繁に相互作用することが期待されるためにシステムが高いバンド幅を持つことによって悪化の一途をたどる。さらに、多数のシステムは、ネットワークデバイスがバス制御装置によって発行されたコマンドによって或る機能を実行することが引き起こされるように、時間確定的（time deterministic）になるように設計されている。ネットワークデバイスは例えばデータサンプルを特定の時点に取得するなどの特定の機能を実行することがしばしば望まれるので、バス制御装置は好ましくは特定の時点にコマンドを発行してネットワークデバイスが特定の機能を実行するのを引き起こす。しかし、ホストコンピュータの作業量がバンド幅の高まりとともに増大するにつれ、バス制御装置が時間確定的な仕方でネットワークバス上にコマンドを置くことができるようにホストコンピュータがバス制御装置へのコマンドの発行時期を確実に選ぶことができなくなってくる。
【０００７】
例えば、システムは複数のセンサから所定のサンプリング頻度でデータを収集するように設計される場合がある。バス制御装置によって発行されるコマンドによってデータの収集が引き起こされるので、バス制御装置によって発行されるコマンドは同じ所定のサンプリング頻度で発行されなければならない。このため、ホストコンピュータがバス制御装置に同じサンプリング頻度でコマンドを発行するよう指揮することが不可能な場合には、システムは望んだスケジュールに従ってデータを取得することが不可能になり、結果的にデータは振幅と位相の歪みを結果として生じさせる相当量のタイミングジッタ（timing fitter）を含みうる。
【０００８】
これらの欠点に対処する試みにおいて、組込みソフトウェアプロセス（embedded software process）またはリアルタイム・オペレーティングシステムを備えたより高速なプロセッサを有するホストコンピュータが利用されてきた。このアプローチは時間確定的な仕方では上手く働くことができるものの、ホストコンピュータはなおもネットワーク・トラヒック（network traffic）をその他の機能のパーフォーマンスと一緒にスケジュールしなけばならない。加えて、これらの欠点に対処する試みにおいてシステムによってはプロトコル符号器及び復号器を含むが、これらのシステムはネットワーク・トラヒックをスケジュールすることがなおも必要とされる。つまり、これらのアプローチはどれもバス制御装置を介してネットワーク・トラヒックを管理する必要性をホストコンピュータから取り除くものではない。そのため、バス制御装置にコマンドがより予測可能な仕方で提供でき、それによりバス制御装置が時間確定的な仕方でコマンドを発行することができるようにホストコンピュータの作業量を減らすことが望ましい。
【発明の開示】
【０００９】
以上の技術的背景に鑑みて、本発明はネットワークバスを介して少なくとも１つのネットワークデバイスと通信するための改良されたシステム及び方法を提供する。本発明に係るシステム及び方法は、バス制御装置がコマンド・スケジュール（command schedule）（作業スケジュール（operation schedule）とも呼ばれる）に従ってホストコンピュータとは独立な仕方でコマンドを発行することを認めることによって、ホストコンピュータの作業量を減らす。この点に関し、ホストコンピュータはバス制御装置に一連の命令を転送してそのバス制御装置にコマンド・スケジュールが事前にロードされるようにすることができる。本発明の１つの特徴として、本発明に係るシステムはホストコンピュータとこのホストコンピュータ及びネットワークバスの両方と電気通信するように配置されたバス制御装置とを含む。バス制御装置は一連の命令を記憶するためのメモリデバイスを含み、ネットワークバスを介して行われる通信を制御するためにホストコンピュータとは独立な仕方で前記一連の命令を一般的には繰り返し実行するのに適合している。
【００１０】
このようにして、一連の命令は、まず最初にホストコンピュータからバス制御装置に転送されて、バス制御装置にコマンド・スケジュールが事前にロードされるようにする。そして前記一連の命令はネットワークバスを介してバス制御装置とネットワークデバイスとの間で行われる通信を制御するためにホストコンピュータとは独立な仕方で一般的には繰り返し実行される。バス制御装置はホストコンピュータによって更に割り込まれることなく前記一連の命令を実行することができるので、ホストコンピュータはバス制御装置が一連の命令を実行するのと同時に他の作業を実行することが許される。例えば、ホストコンピュータはバス制御装置にコマンドを発行するのを指揮する必要なしにデータ解析とシステム作業を実行することができる。加えて、バス制御装置にコマンド・スケジュールを事前にロードすることにより、バス制御装置は望むスケジュールに従ってネットワークバスを介してデータの収集と他のタイプの通信をサポートするために時間確定的な仕方でコマンドを発行することができる。
【００１１】
既に議論されたように、本発明に係るシステム及び方法はホストプロセッサを使用することなく確定的なネットワークプロセスを実行する能力を実現する。具体的には、本発明に係るシステム及び方法は、バス制御装置によって発行されたコマンドがネットワークプロトコルに限定されたもので周期的に繰り返される場合（すなわち、周期的に継続的に繰り返される一連のプロトコル・コマンド）を特定する。本発明に係るシステム及び方法はこれらの繰り返される一連のコマンドをホストプロセッサが実行しなければならない作業から取り除いて、それらのコマンド及びデータを一般的には一連の命令の形式でコマンド・スケジュールへと事前にロードさせる。しかし、これまで説明されてきたように、本発明に係るシステム及び方法は、ネットワークシステムの作動中において変わらない一連のコマンド及びデータを含むコマンド・スケジュールを事前にロードするだけである。しかしながら、コマンド・スケジュールに列挙されるコマンドまたはデータを周期的なコマンド・スケジュールを実行する間に動的に変更することが、ネットワークシステムがよりよいプロセス制御を実現するのに有利な場合も存在する。換言すれば、ネットワークシステムに関連するプロセスに基づいて作動中に変更または更新できるコマンド及びデータを有する事前にロードされたコマンド・スケジュールを提供することが有利な場合もある。
【００１２】
このことを考慮して、本発明に係るシステム及び方法は、具体例において、ホストプロセッサが組み込まれたコマンド・スケジュールのコンテンツと実行の手順（execution）を変更して、それによってよりよいプロセス制御を実現することを可能にする。本発明に係るシステム及び方法によれば、ホスト制御装置はネットワークからデータを受信してそれを解析し、解析結果を計算して、そしてコマンドまたは変数としてコマンド・スケジュールに挿入し直すことができる適切なプロセス変更を生み出すことが可能となる。これらの具体例では、ホストプロセッサはコマンド・スケジュールの事前にロードされたコマンド及びデータを周期的に評価して変更しなければならないが、バス制御装置によってコマンド・スケジュールに基づく大半のプロセシングが実行されるのでホストプロセッサはより高水準のプロセシングを実行することが自由になる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の好ましい実施の態様を添付図面を参照しながら詳細に説明する。しかしながら、本発明は、多くの異なった態様により実施されることができ、以下説明される実施態様に限定されるものとして受け取るべきではない。むしろ以下説明されるこれらの実施態様は、本開示が詳細で完全なものとなり、そして当業者に本発明の技術的思想及び技術的範囲を十分に明示することを意図して与えられる。なお、添付図面において同一または類似の要素には同一または類似の符号が付されている。
【００１４】
図１に本発明の一実施態様におけるシステム１０を示す。ここにはシステムのいくつかの実施態様が例示目的で説明されるが、他のタイプのシステムも本発明において利用することができる。さらに、本発明に係るシステム及び方法は主に自動車及び航空宇宙産業の用途に関連して説明されるが、そのような自動車及び航空宇宙産業の用途というのは例えば、通信及び車両の乗員に向けてのマルチメディア情報の配信をサポートするために、そして／またはエンジン制御、トランスミッション制御、ワイヤ駆動若しくはワイヤブレーキ等に適用されるプロセス制御などの用途のために様々な構成部品をモニタして診断情報やステータス情報を収集するために考えられるものである。しかしながら、本発明に係るシステム及び方法は、自動車産業及び航空宇宙産業の両分野とそれらの産業以外において、他の様々な用途に関連して利用することができる。例えば、本発明に係るシステム及び方法は産業用オートメーション並びに地上実験（ground testing）の用途において利用することができる。
【００１５】
図１に示されるように、一実施態様におけるシステム１０は、第１バス制御装置１４と第２バス制御装置１６と複数のネットワークデバイス１８とを繋ぐためのネットワークバス１２を含む。これらのバス制御装置はネットワークバスに電気的に接続されている。図示された実施態様においては、第１及び第２のバス制御装置は、ネットワークバスがこの一対のバス制御装置との間でループを形成するように同じ場所に配置することができる。明らかではあるが、バス制御装置はネットワークにおける異なるポジションに配置することができる。図１のシステムは、ネットワークバスに沿った異なる場所においてネットワークバスに電気的に接続された、つまりネットワークバスを介してバス制御装置に電気的に接続された、複数のネットワークデバイス１８も含む。従って、ネットワークバスはネットワークデバイス間の通信の他にバス制御装置とネットワークデバイスとの間の通信もサポートする。
【００１６】
バス制御装置１４と１６は、それぞれのネットワークデバイス１８にコマンドを発行し、少なくとも一部の実施態様においてはネットワークデバイスからデータ受信するように設計される。例えば、コマンドはネットワークデバイスがステータスデータまたは他の診断データなどの特定のタイプのデータを提供することを命令してよい。代わりに、バス制御装置によって発行されるコマンドは、少なくとも１つのネットワークデバイスに対してオーディオ信号やビデオ信号等の所定のタイプの信号を提供するよう指揮して、他の少なくとも１つのネットワークデバイスに対してそれらの信号を受信するよう指揮することができる。様々なタイプのバス制御装置が利用できるが、或る一つの有利なタイプのバス制御装置としては２０００年１２月１４日に出願された米国特許出願公開第09/736,878号明細書の「Network Controller for Digitally Controlling Network Devices Via a Common Bus」に記載されたネットワーク制御装置がある。この特許明細書の開示内容を引用することにより本明細書の一部をなすものとする。
【００１７】
米国特許出願公開第09/736,878号明細書に記載されているように、図１に示されるようにバス制御装置１４と１６は一般的には、一般にバス制御装置の作業を指揮するホストプロセッサ（host processor）とも称されるホストコンピュータ２０とも電気通信するように配置される。例えば従来のシステムにおいては、ホストコンピュータはバス制御装置によるコマンドの発行の他にコマンドのタイミングをも指揮する。その上、ホストコンピュータはバス制御装置によってネットワークデバイスから受信されたデータをデータマイニング（mine）することそしてそうでなくてもそのようなデータを解析することができ、多数の他の高い優先順位のシステムワイドな作業を実行することができる。バス制御装置とホストコンピュータの相互作用とそれぞれの機能に関する更なる詳細については下文に説明される。
【００１８】
図１のシステム１０の通常稼働時において、第１バス制御装置１４は、一般的にはマスター制御装置の役割を果し、ネットワークバス１２上へのコマンドの発行を担当する。第１バス制御装置は、ネットワークバスのプライマリモニタとしても機能し、ネットワークデバイス１８によって提供されるリスポンスを受信することができる。
【００１９】
様々なタイプのネットワークバス１２が採用できる。一般的にネットワークバスは、コマンド、データ及び他の信号を送信するための、対撚り銅配線（differential twisted-pair copper wires）などの一対、二対、三対またはそれ以上の数の対の配線から成る。このため、このようなネットワークバスは一対の配線による標準的な半二重方式（half duplex configuration）または二対の配線による全二重方式（full duplex configuration）のいずれかに対応するように設計することができる。同期作業用に設計された一部の実施態様においては、バス制御装置からネットワークデバイス１８にクロック信号を送信するのに一般に何対かの配線の中の一対の配線が利用できる。さらには、ネットワークバスはネットワークデバイスに電力及び共通のアースを提供するための一対の配線を含みうる。
【００２０】
システム１０は多種多様なネットワークデバイス１８を含むことができ、全部ではないがそれらのほとんどはバス制御装置からは遠隔に位置する。例えば、ネットワークデバイスは、ステータスデータまたは診断データなどのデータを、バス制御装置及びバス制御装置を経由してホストコンピュータ２０に提供するためのセンサを含むことができ、センサが何を感知しても調子（health）及び／またはオペレーション（働き）を監視できるようにすることができる。例えば自動車産業用途においては、このようなネットワークデバイスは、例えばいくつかの例として、スロットルポジション（throttle position）、油圧、水温、トランスミッションオイル圧（transmission fluid pressure）、座席位置、アンチロックブレーキシステム（antilock brake system）、サスペンション（suspension）、自動安全装置（passive restraint system）、スティアリングシステム（steering system）等を監視するためのセンサを含む。オペレータにフィードバックを提供するために、ネットワークデバイスは、ステータスデータまたは診断データを直接的または適切なプロセシング後のいずれかで表示するための、車両のダッシュボードディスプレイなどの１つ以上のディスプレイも含みうる。代わりに、ネットワークデバイスはバス制御装置からのコマンドに応答して特定の機能を実行するためのアクチュエータを含みうる。
【００２１】
自動車産業用途においては、この場合のネットワークデバイスは、例えばいくつかの例として、スロットルポジション、アンチロックブレーキシステム、サスペンション、自動安全装置及びアクティブサスペンションシステム等を制御するためのアクチュエータを含みうる。さらには、このようなネットワークデバイスは、オーディオまたはビデオの発生源を含みうる。この点に関しては、ネットワークデバイスは、場合によってはストリーミング・オーディオ信号を含むオーディオ信号をネットワークバスに提供するための、無線受信機、テープカセットプレーヤ、コンパクトディスクプレーヤ、携帯電話受信機または他の音響源を含みうる。これに対応して、ネットワークデバイスは、オーディオ信号をネットワークバスから受信して、対応する可聴出力を提供する等のための、スピーカ、ヘッドフォンジャック等を含みうる。同様に、ネットワークデバイスは、ネットワークバスへストリーミング・ビデオ信号を含むビデオ信号を提供するテレビジョン受像機またはビデオカセットプレーヤを含みうる。従ってネットワークデバイスは、ビデオ信号を受信してそのビデオ信号に基づいて画像を表示するためのビデオモニタ等を含みうる。
【００２２】
ネットワークデバイス１８はネットワークバス１２に直接接続されることがあるが、１つの有利な態様のネットワークデバイスはそれぞれのネットワークデバイスインタフェース（network device interface）２２に付随する。このネットワークデバイスインタフェースは２０００年１２月１２日に出願された「Network Device Interface for Digitally  Interfacing Data Channels to a Controller Via a Network」と題された米国特許出願公開第09/735,146号明細書に記載されている。この特許明細書の開示内容を引用することにより本明細書の一部をなすものとする。この有利な態様において、このネットワークデバイスインタフェースは、信号をネットワークバスに伝送したり、ネットワークバスから信号を受信したりするために、ネットワークバスと電気通信するように配置されている。各ネットワークデバイスインタフェースは１つ以上のネットワークデバイスとそれぞれのデータ伝送路を介して通信も行う。図１には各ネットワークデバイスインタフェースは単一のネットワークデバイスに接続されているものとして図示されているが、ネットワークデバイスインタフェースは必要に応じて複数のネットワークデバイスと接続されてもよい。米国特許出願公開第09/735,146号明細書に記載されているように、ネットワークデバイスインタフェースはネットワークバス上におけるネットワークデバイスによる通信を円滑にするための様々な機能を実行する。例えば、ネットワークデバイスインタフェースはその関連するネットワークデバイスによって収集されたデータを記憶してよく、記憶されたデータはリクエストがあればネットワークバスを介してバス制御装置１４と１６に提供されるようにしてよい。ネットワークデバイスがアナログ装置の場合、そのネットワークデバイスインタフェースはネットワークバスがサポートするデジタル形式とネットワークデバイスがサポートするアナログ形式の間で信号の変換も行ってよい。
【００２３】
ネットワークが初期化されると、第１バス制御装置１４はネットワークバス１２に接続されたネットワークデバイス１８の目録（インベントリ（inventory））を作成して固有の論理アドレスを各ネットワークデバイスに割り当てて、バス制御装置が特定のネットワークデバイスまたは特定のグループのネットワークデバイスと通信することができるようにする。ネットワークバスに接続されたネットワークデバイスの目録を作成してネットワークデバイスに固有の論理アドレスを割り当てるためには多種多様な技術が利用できる。ネットワークデバイスの目録を作成してネットワークデバイスに固有の論理アドレスを割り当てるための１つの有利な技術は、米国特許出願公開第09/735,146号明細書並びに２００１年４月２６日出願の「Systems and Methods for Assigning an Address to a Network Device Added to an Existing Network」と題された米国仮特許出願公開第60/286,793号明細書及び「Systenas and Methods for Assigning an Address to a Network Device Added to an Existing Network」と題されたＰＣＴ国際公開第＊＊＊号公報に記載されたビット競合（bit competition）技術である。これらの特許明細書の開示内容も引用することにより本明細書の一部をなすものとする。
【００２４】
動作に関しては、第１バス制御装置１４は様々なコマンドを発行し、それぞれのネットワークデバイス１８はそれらのコマンドに基づいて応答する。バス制御装置とネットワークデバイスは多数の異なったプロトコルのいずれかに従って通信することできる。例えば米国特許出願公開第09/736,878号明細書に記載されているように、バス制御装置とネットワークデバイスはマンチェスタ符号方式BiSenSysプロトコル（Manchester-encoded bi-phase sensor and system (BiSenSys) protocol）に基づいて通信することができる。代わりに、バス制御装置とネットワークデバイスはユーアート（universal asynchronous receiver transmitter (UART)）物理層と互換性のあるプロトコルに従って通信することができる。しかし好ましくは、プロトコルはオーバヘッドを最小化してこれに相応じてデータ転送能力を最大化するように選ばれる。さらに、プロトコルは、好ましくは、ネットワークデバイスとネットワークデバイスインタフェース２２とがどちらも高水準プロセッサ（high level processor）を必要とすることがないように比較的にシンプルになるように選ばれる。その代わりに、バス制御装置とそれに関連するホストコンピュータ２０は処理能力の大部分を含むことができ、ネットワークデバイスインタフェースは、ハードウェア、ソフトウェア、またはファームウェア（firmware）において容易に具現化される論理（logic）を含みうる。システム１０がサポートする通信は同期的あるいは非同期的のいずれであってもよく、また様々なタイプのメッセージの送信を含みうる。例えば米国特許出願公開第09/736,878号明細書に記載されているように、１つの有利な通信技術は、それぞれ所定の長さもしくはサイズを有するコマンドフレームとデータフレームを含むメッセージフレームの送信に基づくものである。
【００２５】
プロトコルに応じて、システムは様々なコマンドセットに対応することもできる。プロトコルと同様に、コマンドセットは、好ましくは、ネットワークバスを介して伝送されなければならないオーバヘッドを最小化して比較的にシンプルになるように選ばれる。適切なコマンドセットの一例は、米国特許出願公開第09/735,146号明細書に記載されている。
【００２６】
【表１Ａ】
2005500593.tif 000003
【００２７】
【表１Ｂ】
2005500593.tif 000004
【００２８】
或る１つのレベルのコマンドはサービスコマンド（service commands）である。このサービスコマンドは、ネットワークハウスキーピング（network housekeeping）、ネットワークデバイスインタフェースステータス（network device interface status）、電力制御、キャリブレーション及びバスマスタアービトレーション（bus master arbitration）を目的としている。第２のタイプのコマンドはデータタイプコマンド（data type commands）である。これらのコマンドは時間確定的なデータ収集及び制御用に仕立てられる。ネットワーク効率は、ネットワークデバイスが１つ以上のデータポイントを直接的に動かす、あるいは指定された長さのブロックの転送として２つ以上のデータポイントを動かすことを認めることによって最大化される。例えばTrigger（トリガー）コマンドは、センサからの入射データ測定を開始し、またはアクチュエータ用に物理量へのデータ変換を引き起こすために、バス制御装置によって使用される。
【００２９】
サービスコマンドとデータタイプコマンドの他に、本例におけるコマンドセットは、メモリコマンド（memory commans）も含む。これらのメモリコマンドによれば、データをそこに書き込みまたはそこから読み出すことができる特定の指定された記憶場所または機能にアクセスすることが可能となる。これにより、ランダムアクセスデータブロック（random access data blocks）を或る１つのシステムと別のシステムとの間をわずかなオーバヘッドで効率的に転送することが可能となる。またダイレクトなメモリアクセス及び／または１つ以上のデータバッファブロック（data buffers blocks）を動かすことも可能となる。このようなコマンドセットに関する更に詳細な情報については米国特許出願公開第09/735,146号明細書の他に２つとも同じ２００１年４月２６日に出願された「System and Method for Reestablishing the Impedance Stability of a Network Bus」と題された米国仮特許出願公開第60/286,644号明細書及び「Methods and Bus Controllers for Creating an Event Trigger on a Network Bus」並びに２つとも同時出願された「Systems and Methods for Maintaining Network Stability」と題されたＰＣＴ国際公開第＊＊＊号公報、及び「Systems, Methods and Bus Controllers for Creating an Event Trigger on a Network Bus」と題されたＰＣＴ国際公開第＊＊＊号公報に記載されている。これらの特許明細書の開示内容も引用することにより本明細書の一部をなすものとする。
【００３０】
本発明によれば、バス制御装置１４、特にこのバス制御装置に付随するメモリデバイス２４には、コマンド・スケジュール（作業スケジュール（operation schedule）とも呼ばれる）を形成するマイクロコード（microcode）と呼ばれる一連の命令が事前にロードされる（例えば図２を参照のこと）。この一連の命令は様々な方法で提供できるが、ホストコンピュータ２０は、一般的にはバス制御装置のメモリデバイスに一連の命令を事前にロードする。その後、バス制御装置はホストコンピュータから更に割り込まれたりあるいは指揮されたりすることなく事前にロード済みの一連の命令を実行することができる。この結果、ホストコンピュータは大きな割合のプロセシング時間及び電力をシステムワイドな作業とデータ解析を含む他の機能を実行するのに費やすことが可能となる。さらに、一連の命令（すなわちコマンド・スケジュール）をバス制御装置に事前にロードすることにより、バス制御装置は様々なコマンドが予め指定された時間にネットワークバス上に置かれることを保証することができ、それによりシステム１０の時間確定的な作業が可能になる。
【００３１】
任意の一連の命令がバス制御装置１４に事前にロードできるが、或る１つの有利な態様におけるシステム１０は繰り返し実行される一連の命令を事前にロードする。つまり、ネットワークバス１２上における通信を十分な期間制御するために比較的小さな一連の命令がバス制御装置に事前にロードでき、そしてバス制御装置によって実行でき、それによりホストコンピュータ２０は他の機能を実行することが自由になる。繰り返しの一連の命令がバス制御装置に事前にロードされ、バス制御装置によって繰り返し実行されても、ホストコンピュータはバス制御装置に対して事前にロード済みの一連の命令によってもくろまれていた機能以外の機能を実行するよう命令するためにたまに追加の命令を提供する必要がある場合がある。しかしこの場合でも、ホストコンピュータの作業量は大きく減少し、バス制御装置が時間確定的な仕方で作業することができる信頼度は向上する。
【００３２】
一般的に、一連の命令はバス制御装置１４のランタイム（run-time）前またはランタイム中にそのバス制御装置に事前にロードされる。一連の命令を記憶するメモリデバイス２４が不揮発性メモリである実施態様では、バス制御装置はパワーアップ時またはホストコンピュータ２０による命令時にコマンドを実行し始めることができる。代わりに、メモリデバイスが揮発性メモリである実施態様では、ホストコンピュータはバス制御装置に一連の命令をパワーアップ後でしかもバス制御装置がコマンドの実行を開始する前にロードしなければならない。
【００３３】
一連の命令は様々なマイクロコードコマンドを含むことができ、その中の一部のマイクロコードコマンドは対応するデータフィールドを有する場合がある。しかし、例示目的のため、１セットのマイクロコードコマンドについて以下説明される。この例示の実施態様において、マイクロコードコマンドは一連の命令の実行の手順（execution）をメモリデバイス２４のアドレス０にリセットするためのResetコマンド（Reset command）を含む。図２に示されるように、一連の命令は、一般に、最初のコマンドがメモリアドレス０に置かれるようにメモリデバイスにロードされる。つまり、Resetコマンドは基本的には一連の命令の実行の手順（execution）がもう一度最初のコマンドを始めるようにするものである。理解されるように、このResetコマンドはバス制御装置に付随するメモリデバイスがマイクロコードコマンドを含む場合のみ有効であり、メモリデバイスがマイクロコードコマンドを含まない場合は何ら処置は採られない。
【００３４】
マイクロコードコマンドは、一連の命令の実行を一時停止するためのPauseコマンド（Pause command）も含む。このPauseコマンドの後は、作業は所定の信号の受信に応じて再開が可能である。別のマイクロコードコマンドはDelayコマンド（Delay command）で、これはネットワークバス１２を介して発行されたマイクロコード間に時間遅延（time delay）を挿入する。ResetコマンドもPauseコマンドも対応するデータフィールド（data field）を持たないが、このDelayコマンドに対応するデータフィールドは挿入される時間遅延量（一般的にナノ秒で測られる）を指定する。
【００３５】
別のマイクロコードコマンドはResponseDelayコマンド（Response Delay command）である。このResponseDelayコマンドは、ネットワークバス１２を介して発行されるマイクロコード間に応答遅延（delay）を挿入して、管理の理由からネットワークデバイス１８がすぐ前のマイクロコードに対してリスポンスを提供することができるようにするものである。他の全ての遅延に対しては、Delayコマンドが利用される。ResponseDelayコマンドに関連するデータフィールドは応答遅延のデータバイト数を指定する。つまり、実際の遅延時間は通信がネットワークバスを介して行われる通信速度（baud rate）に依存する。
【００３６】
マイクロコードコマンドは、バス制御装置１４に対してネットワークバス１２上にコマンドを送信するよう命令するSendCommandマイクロコードコマンド（以下、単にSendCommand）も含む。ネットワークバスを介して送信されるべきコマンドはSendCommand命令に関連するデータフィールドによって指定される。例えば以下説明されるように、このSendCommandはReadコマンド（Read command）またはWriteコマンド（Write command）がネットワークバスを介して送信されることを命令してよい。つまりこれらの場合には、SendCommandに関連するデータフィールドはコマンドが指し向けられるネットワークデバイス１８のアドレスも特定する。一般に、パリティビット（parity bit）は関連するデータフィールドに含まれないが、しかし、ネットワークバスを介してコマンドを送信する際にバス制御装置によって自動的に計算されて添付される。同様に、マイクロコードコマンドは、データフレーム（data frame）がネットワークバスを介して一般的にはネットワークデバイスからバス制御装置に送信されることを可能にするためのSendDataコマンド（Send Data command）も含む。このとき送信されるべきデータフレームはこのSendDataコマンドに関連するデータフィールドに指定される。SendCommandと同様に、パリティビットは関連するデータフィールドに含まれないが、しかしそれはネットワークバスを介してコマンドを送信する時点においてバス制御装置によって自動的に計算されて添付される。
【００３７】
この例示態様におけるマイクロコードコマンドセットはAbsoluteJumpコマンド（Absolute Jump command）も含むが、このコマンドはその関連するデータフィールドに指定されるメモリアドレスに一連の命令の実行の手順（execution）がジャンプするようにするものである。Resetコマンドと同様に、AbsoluteJumpコマンドはバス制御装置１４に付随するメモリデバイス２４がマイクロコードコマンドを含む場合のみ有効であり、メモリデバイスがマイクロコードコマンドを含まない場合は何も処置は発生しない。最後に、マイクロコードコマンドは、現時点においてバス制御装置の受信バッファ（receive buffer）（図示せず）内にあるデータを利用してデータフレームをネットワークバス１２を介して送信するEchoDataコマンド（Echo Data command）を含みうる。受信バッファがデータを含まないまたは受信バッファ内のデータが無効な場合には、EchoDataコマンドはスキップされ、ネットワークバスを介してデータは全く送信されない。以前のように、パリティビットはネットワークバスを介してデータフレームを送信する間にバス制御装置によって自動的に計算されて添付される。
この例示態様におけるマイクロコードコマンドは以上説明したようなものであるが、それらのマイクロコードコマンドセットとそれに関連するデータフィールドは次の表にまとめられる。
【００３８】
【表２】
2005500593.tif 000005
【００３９】
バス制御装置１４が実行することになっている作業に応じて、マイクロコードコマンドから成る予め指定された一連の命令と関連するデータフィールドはバス制御装置に付随するメモリデバイス２４にロードされる。説明目的のため、図２において１セットのマイクロコードコマンドとデータフィールドが示される。そこに示されるように、一連の命令はメモリアドレス０で始まるように記憶される。しかし、必要に応じてこれらの命令は他の場所に記憶されてよい。作業が開始されると、バス制御装置は最初のマイクロコードコマンドであるSendCommandを実行する。このSendCommandはネットワークバス１２を介して送信されるべきコマンドをTriggerコマンドとなるように指定する関連するデータフィールド（図ではTrigger）を有する。その後、別のSendCommandには、アドレス１を持つ（図２にＮ１で示される）ネットワークデバイス用のReadコマンドとして送信されるべきコマンドを指定する関連するデータフィールド（図ではRead 1）が与えられる。そして、ネットワークデバイスＮ１に対しネットワークバス上へのデータｗ（図ではData w）の読み出しの機会を与えるためにResponseDelayコマンドが実行される。その後、関連するデータフィールド（図ではRead 2）がアドレス２を持つ（図２にＮ２で示される）ネットワークデバイスへ送信されるべきReadコマンドを指定する別のSendCommandが実行される。そして、ResponseDelayコマンドが実行され、それによりネットワークデバイスＮ２に、リクエストされたデータｘ（図ではData ｘ）をネットワークバス上に読み出すための時間が与えられる。
【００４０】
データｘがネットワークバス上に読み出された後、アドレス３を持つ（図２にＮ３で示される）ネットワークデバイスにデータが書き込まれるべきことをその関連するデータフィールド（図ではWrite 3）が指示するSendCommandが再び実行される。そこで、ネットワークデバイスＮ３に送信されるべきデータｙ（図ではData y）をその関連するデータフィールドが特定するSendDataコマンドが実行される。最後に、アドレス４の（図２にＮ４で示される）ネットワークデバイスにデータが書き込まれるべきことをその関連するデータフィールド（図ではWrite 4）が指定する別のSendCommandが実行される。そして、ネットワークデバイスＮ４に書き込まれるべきデータをその関連するデータフィールドが与えるSendDataコマンドが再び実行される。この場合のデータはｚ（図では実際にはData z）で表示されている。一連の命令を繰り返すために、実行の手順（execution）が記憶場所０にジャンプすべきことを指示する関連するデータフィールドを有するAbsoluteJumpコマンドが実行され、それによりプロセスの実行が実際上再開される。このようにして、この例示態様における一連の命令は、第１及び第２のセンサなどのネットワークデバイスＮ１とＮ２によって与えられるデータを周期的に読み出して、第３及び第４のアクチュエータなどのネットワークデバイスＮ３とＮ４にデータを周期的に書き込む。
【００４１】
図２に示されるように、バス制御装置１４は、ネットワークバス１２上に読み出されるデータを受信するための受信機２６を含む。このデータは一般的には更なる処理のためにホストコンピュータ２０に提供される。例えば、ホストコンピュータは、このデータを構文解析して、その後に用途に応じて様々なデータ解析及び／またはデータマイニング作業を実行することができる。
【００４２】
図２のバス制御装置１４に付随するメモリデバイス２４に事前にロードされた一連の命令の実行は内部クロック２８によって制御されるが、その一連の命令の実行は外部クロックによっても制御できる。このことについて、図３に外部クロック３０がバス制御装置、特に一連の命令を記憶するメモリデバイスに提供される類似のシステム１０を示す。このようにして、数個のバス制御装置とそれぞれのネットワークバスの働きを制御して同期させるためにそれらのバス制御装置に同じ外部クロックを提供することができる。
【００４３】
一対のバス制御装置１４と１６の間を繋ぐネットワークバス１２を採用するシステム１０が示されているが、本発明に係るシステム及び方法は他の多種多様なネットワークバスアーキテクチャに適している。例えば、本発明に係るシステムにおいては、ネットワークの一端部またはネットワークバスに沿った任意のポイントでネットワークバスに単一のバス制御装置を接続することができる。
【００４４】
本発明のどの実施態様においても、そのシステム１０及び方法は、コマンド・スケジュールを一般的には一連の命令の形式でバス制御装置１４に付随するメモリデバイス２４に事前にロードするようになっている。事前にロード後において、バス制御装置はネットワークバスに適切なコマンドを置くために一連の命令を実行することができる。一連の命令をバス制御装置に事前にロードすることにより、ホストコンピュータ２０の作業量は減少する。ホストコンピュータの作業量が減れば、バス制御装置が事前にロード済の一連の命令を実行している間にホストコンピュータはシステムワイドな作業及び／またはデータ解析などの他の機能を実行することが可能となる。さらに、バス制御装置が一連の命令の実行を制御することができるようにすることにより、そのバス制御装置は様々なネットワークデバイスと適切に相互作用するためにコマンドが時間確定的な仕方で発行されることを保証する。
【００４５】
既に示され議論されたように、本発明に係るシステム及び方法は、ホストプロセッサを使用することなく確定的なネットワークプロセスを実行する能力を実現する。具体的には、本発明に係るシステム及び方法は、バス制御装置によって発行されたコマンドがネットワークプロトコルに限定されたもの（network protocol specific）であり周期的に繰り返される（すなわち周期的に継続して繰り返される一連のプロトコルコマンド）場合を特定する。本発明に係るシステム及び方法は、ホストプロセッサが実行しなければならない作業からこれら繰り返しの一連のコマンドを取り除いて、それらのコマンド及びデータを一般的には一連の命令の形式でコマンド・スケジュールに事前にロードする。このコマンド・スケジュールは、このコマンド・スケジュールを実行するためのマイクロコード（microcode）と呼ばれるコードと一緒にバス制御装置に記憶される。作動中においては、この繰り返しのコマンドは、ホストプロセッサとは対照的に周期的なコマンド・スケジュールを使用するバス制御装置によって実行される。
【００４６】
しかしこれまで議論されてきたように、本発明に係るシステム及び方法はネットワークシステムの作動中において変わらない一連のコマンド及びデータを含むコマンド・スケジュールを事前にロードするだけである。換言すれば、周期的なコマンド・スケジュールは変更不可能な固定されたコマンド及びデータを含むだけである。このため、この周期的なスケジュールによっては、事前プログラムされたデータ収集またはデータ出力の連続的な流れ作業の実行が許されるのみである。一方、これはデータ収集の用途またはプロセス変更を必要としない単純な繰り返し制御シーケンスには容認可能だが、周期的なコマンド・スケジュールの実行中においてコマンド・スケジュールに列挙されたコマンドまたはデータを動的に変更することがネットワークシステムがよりよいプロセス制御を達成することができるようにするのに有利になる場合が存在する。言い替えると、ネットワークシステムに関連するプロセスに基づいて作動中に変更または更新ができるコマンド及びデータを有する事前にロードされたコマンド・スケジュールを提供することが有利な場合がある。
【００４７】
例えば、ネットワークシステムは、長時間にわたって変化することがある変数を有するプロセスに関連して使用される場合がある。これらの変数が変化すると、様々なネットワークデバイスに伝送されるコマンド及びデータは、プロセスがこれらの変化を考慮して十分に正確に制御されていることを保証するために変更される必要がある。このような場合において、コマンド・スケジュールに事前にロードされた一部のコマンド及びデータは正しい制御を実現するために変更されるべきである。
【００４８】
このことに鑑み、本発明に係るシステム及び方法は、実施態様によっては、ホストプロセッサが組込済みのコマンド・スケジュールのコンテンツと実行の手順（execution）を変更してそれによってよりよいプロセス制御を実現することができるようにする手続を提供する。本発明に係るこのシステム及び方法によれば、ホスト制御装置はネットワークからデータを受信して解析し、解析結果を計算して、そしてコマンドまたは変数としてコマンド・スケジュールに挿入し直すことができる適切なプロセス変更を作り出すことが可能となる。またこれらの実施態様においてホストプロセッサはコマンド・スケジュールの事前にロード済のコマンド及びデータを周期的に評価し変更しなければならないが、コマンド・スケジュールに基づくプロセシングの大半がバス制御装置によって実行されるので、ホストプロセッサはより水準の高いプロセッシングを実行することが自由になる。
【００４９】
重要なことは、本発明に係るシステム及び方法は図５及び図６に示されるように、バス制御装置に付随するメモリデバイス２４内に位置する一連のレジスタ４０を提供することである。これらのレジスタは、好ましくは１７ビット長であり、コマンド・スケジュールの変数に対する値を記憶するために使用される。換言すると、ホストプロセッサがネットワークシステムからのデータを解析するときに、そのホストプロセッサは解析結果を計算して、コマンド・スケジュールのこれらの変数に対する適切なプロセス変更（process modifications）を生成する。これらの更新はレジスタに記憶され、そこでそれらをコマンド・スケジュールのコマンドまたは変数に挿入し直すことができる。
【００５０】
更新または変更された値をコマンド・スケジュールへと組み込むために、本発明に係るシステム及び方法は、追加のマイクロコードの集合を含む。この追加のマイクロコードの集合は、一連のレジスタからの値をコマンド・スケジュールにロードしてそのコマンド・スケジュールの可変コマンド及びデータを変更し、それにより、よりよいプロセス制御を実現するためのものである。これらの追加のマイクロコードは以下の表にまとめられる。
【００５１】
【表３】
2005500593.tif 000006
【００５２】
SendCommandFromRegisterマイクロコードはもっと従来的なSendCommandに類似するが、そのデータフィールド内のデータはホストプロセッサにより変更可能である。具体的には、コマンド及びデータが事前にロードされて再設定可能でない以前の実施態様において、SendCommandはコマンド・スケジュールにコマンドと共に事前記憶されたデータフィールド内のデータを送信する。しかしながら、SendCommandRegisterは、レジスタ４０の１つからのデータをコマンドフレーム（command frame）用データとして使用する。このレジスタはSendCommandFromRegisterマイクロコードのデータフィールド内に指定され、バス制御装置がコマンド・スケジュールを実行する際にそのバス制御装置によって発行されるコマンドは、適切なレジスタ４０に記憶された値をホストプロセッサによって単に変更することにより設定することができる。
【００５３】
SendDataFromRegisterマイクロコードコマンドは、SendCommandFromRegisterマイクロコードに類似するが、コマンドではなくデータを送信するために使用される。具体的に、SendCommandRegisterは、レジスタ４０の１つからのデータをデータフレーム（data frame）用データとして使用する。このレジスタはSendDataコマンドのデータフィールド内に指定され、バス制御装置がコマンド・スケジュールを実行する際にそのバス制御装置によって送られるデータは、適切なレジスタ４０に記憶された値を単にホストプロセッサによって変更することにより設定することができる。
【００５４】
上述したように、本発明に係るシステム及び方法は、指定した遅延を作業中に許すDelayマイクロコードを含む。コマンド及びデータが事前にロードされて再設定可能ではなかった以前の実施態様において、遅延値のデータはコマンド・スケジュールにDelayコマンド共に事前に記憶される。しかしながら、DelayFromRegisterコマンドはレジスタ４０の１つからのデータを遅延時間用データとして使用する。このレジスタはDelayコマンドのデータフィールド内に指定される。ここで再び、バス制御装置がコマンド・スケジュールを実行する際にそのバス制御装置によって発行されるDelayFromRegisterコマンドによって送られる遅延値は、適切なレジスタ４０に記憶された値をホストプロセッサによって単に変更することにより設定することができる。
【００５５】
加えて、本発明に係るシステム及び方法は、AbsoluteJumpFromRegisterマイクロコードコマンドを含む。このコマンドは、絶対ジャンプ値（absolute jump value）のデータがコマンド・スケジュールにコマンドと共に記憶されたデータフィールドからではなくレジスタ４０から来ることを除けば、AbsoluteJumpコードと同じ働きを行う。その他の追加されたコマンドと同様に、このジャンプ値は、コマンド用のデータフィールドとして使用される適切なレジスタ４０に記憶された値をホストプロセッサによって単に変更することにより設定することができる。従って、ホストプロセッサはこのレジスタ内の値を変えることによってバス制御装置がコマンド・スケジュールのどこにジャンプすればよいかを制御することができる。
【００５６】
次に図５と図６を参照して、SendDataFromRegisterコマンドとAbsoluteJumpFromRegisterコマンドの用法について説明する。例えば図５に示されるように、一連の命令がメモリアドレス０から始まるように記憶される。作業が開始されると、バス制御装置は最初のマイクロコードコマンドSendCommandを実行する。このSendCommandはバス制御装置１２を介して送信されることになっているコマンドフレームがTriggerコマンドであることを指定する関連するデータフィールドを有する。その次に、送信されるべきコマンドフレームがアドレス１を持つ（図２にＮ１で示される）ネットワークデバイス用の読み出し作業（Read 1）であるべきこと示す関連するデータフィールドが与えられた別のSendCommandが実行される。続いてResponseDelayコマンドが実行されてデータｗ(Data w)を提供する機会がネットワークデバイスＮ１に認められる。その後、送信されるべきコマンドフレームがアドレス２を持つ（図２にＮ２で示される）ネットワークデバイス用の読み出し作業（Read 2）であるべきことを示す関連するデータフィールドが与えられた別のSendCommandが実行される。続いてResponseDelayコマンドが実行されて、リクエストされたデータｘ(Data x)を提供する時間がネットワークデバイスＮ２に与えられる。
【００５７】
次のコマンドの集合に関して、コマンド・スケジュールは、SendDataFromRegisterコマンドを含むが、このコマンドによってこのコマンドに付随するデータはホストプロセッサによって変更されることが許される。この方法により、ホスト制御装置は、ネットワーク作業とは非同期的ではあるがなおリアルタイムにデータをネットワーク上に置き戻して、ネットワークから読み出されたデータから計算される制御作業用データ及び他のソースを、ほぼリアルタイムにネットワーク上へと置くことができる。
【００５８】
具体的には、SendCommandが再び実行されるが、このSendCommandに関連するデータフィールドはアドレス３を持つ（図２にＮ３で示される）ネットワークデバイスにデータが書き込まれるべきこと（Write 3）を指示する。このコマンドに関連するデータは、SendDataFromRegisterコマンドを使用してアドレス１０を持つレジスタ４０から提供される。つまり、アドレス１０を持つレジスタに記憶されたデータ値ｙがアドレス３を持つネットワークデバイスに送られる。値ｙはレジスタの１つに記憶されているので、値ｙは、可変的であり、ホストコンピュータによって確定される。
【００５９】
さらに、別のSendCommandが実行されるが、このコマンドに関連するデータフィールドはアドレス４を持つ（図２にＮ４で示される）ネットワークデバイスにデータが書き込まれるべきこと（Write 4）を指定する。その後にSendDataFromRegisterコマンドが再び実行されるが、このコマンドに関連するデータフィールドはアドレス１２を持つレジスタからネットワークデバイスＮ４に書き込まれるべきデータを与える。先と同様に、アドレス１２を持つレジスタに記憶されるデータｚは、可変的であり、ホストプロセッサによるネットワークからのデータの解析に基づいてそのホストプロセッサによって設定することができる。このプロセスを繰り返すためにAbsoluteJumpコマンドが実行されるが、このコマンドに関連するデータフィールドは実行の手順（execution）がメモリ場所０にジャンプすべきことを指示して、それによりプロセスの実行が実際上反復して開始される。このようにして、本例の一連の命令は、第１及び第２のセンサなどのネットワークデバイスＮ１及びＮ２によって提供されるデータを周期的に読み出して、第３及び第４のアクチュエータなどのネットワークデバイスＮ３及びＮ４にデータを周期的に書き込む。
【００６０】
図６を参照して、AbsoluteJumpFromRegisterコマンドについて説明する。このコマンドは、ホスト制御装置がメインのプログラムループから別のセットのコードを実行することがある別のプログラムループに分岐することができるようにするものである。具体的にはこの図に示されているように、ホストプロセッサはAbsoluteJumpFromRegisterコマンドに対するアドレスを供給する。示されているように、この第２プロセス用コードのアドレス（図ではアドレスａ）はアドレス１４を持つレジスタに記憶することができ、バス制御装置はホストプロセッサによって実行されたプロセスの解析に基づいて第２セットのコマンドに切り替わるようになっている。この点において、図５と図６はマイクロコードを追加して使用する例示的な実施態様だけを示している。実際には、マイクロコードにはネットワークシステムのコンテクストにおいて考えられる多くのあらゆる用法が存在する。
【００６１】
以上の説明と添付図面によって与えられた教示の恩恵を受けた当業者であれば本発明の多くの変更と他の実施態様を思いつくことであろう。そのため、本発明はここに開示された特定の実施態様に限定されずに、その多くの変更や他の実施態様は本発明の技術的思想と技術的範囲内に入ることが意図されているものは理解されなければならない。また、ここには特定の用語が採用されているが、それらは限定目的からではなく一般的で記述的な意味においてのみ使用されている。
【図面の簡単な説明】
【００６２】
【図１】ネットワークバスの対立する端部に接続された一対のバス制御装置を備えた本発明の一実施態様におけるシステムの概略図である。
【図２】バス制御装置に事前にロードされたコマンド・スケジュールの一例を示した本発明の一実施態様におけるシステムのブロック図である。
【図３】コマンド・スケジュールが事前にロードされたバス制御装置が複数バス制御装置の動作に同期するために利用することができる外部クロックの制御の下で動作する本発明の別の実施態様におけるシステムのブロック図である。
【図４】単一のバス制御装置を含む本発明の別の実施態様におけるシステムの概略図である。
【図５】本発明の一実施態様に基づくSendDataFromRegisterコマンドの働きを説明するための本発明の一実施態様におけるシステムのブロック図である。
【図６】本発明の一実施態様に基づくAbsoluteJumpFromRegisterコマンドの働きを説明するための本発明の一実施態様におけるシステムのブロック図である。
【図１】
2005500593.tif 000007
【図２】
2005500593.tif 000008
【図３】
2005500593.tif 000009
【図４】
2005500593.tif 000010
【図５】
2005500593.tif 000011
【図６】
2005500593.tif 000012
【国際公開パンフレット】
2005500593.tif 000013
2005500593.tif 000014
2005500593.tif 000015
2005500593.tif 000016
2005500593.tif 000017
2005500593.tif 000018
2005500593.tif 000019
2005500593.tif 000020
2005500593.tif 000021
2005500593.tif 000022
2005500593.tif 000023
2005500593.tif 000024
2005500593.tif 000025
2005500593.tif 000026
2005500593.tif 000027
2005500593.tif 000028
2005500593.tif 000029
2005500593.tif 000030
2005500593.tif 000031
2005500593.tif 000032
2005500593.tif 000033
2005500593.tif 000034
2005500593.tif 000035
2005500593.tif 000036
2005500593.tif 000037
2005500593.tif 000038
2005500593.tif 000039
2005500593.tif 000040
2005500593.tif 000041
2005500593.tif 000042
2005500593.tif 000043
2005500593.tif 000044
2005500593.tif 000045
2005500593.tif 000046
2005500593.tif 000047
2005500593.tif 000048
2005500593.tif 000049
2005500593.tif 000050
【国際調査報告】
2005500593.tif 000051
2005500593.tif 000052