(57)【特許請求の範囲】
【請求項１】
共通デジタルバスを介して、バスコントローラとセンサデータチャネルとアクチュエータデータチャネルとからなる複数のデータチャネルとの間の通信を容易にするためのシステムであって、
前記共通デジタルバスに接続されたバスコントローラと、前記共通デジタルバスと前記複数のデータチャネルとの間に接続されたネットワークデバイスインターフェイスとを備え、
前記バスコントローラは、前記ネットワークデバイスインターフェイスに、予め定められたビットレートで第１のメッセージを送信し、
前記ネットワークデバイスインターフェイスは、同期クロック信号に依存しない前記第１のメッセージを前記バスコントローラから受信すると、前記第１のメッセージが送信された、前記予め定められたビットレートを判断し、
前記ネットワークデバイスインターフェイスは、前記第１のメッセージに応答して、前記バスコントローラに対して、同一の予め定められたビットレートで第２のメッセージを送信し、
前記バスコントローラは、前記予め定められたビットレートを変更し、
前記バスコントローラと前記ネットワークデバイスインターフェイスとは、前記第１のメッセージの送信と、前記予め定められたビットレートの判断と、前記変更されたビットレートでの第２のメッセージの送信とを繰り返し、前記バスコントローラは、前記ネットワークデバイスインターフェイスに対して、次の第１のメッセージが送信されるビットレートを決定するボー選択コマンドを送信するシステム。
【請求項２】
前記バスコントローラは、前記同一の予め定められたビットレートで、同期クロック信号に依存せずに、前記第２のメッセージを受信する、請求項１に記載のシステム。
【請求項３】
前記バスコントローラは、前記予め定められたビットレートの変更の後に、かつ、前記バスコントローラによる前記第１のメッセージの送信の前に、前記ネットワークデバイスインターフェイスに対して、変更されたビットレートで、例としてのメッセージを送信し、
前記ネットワークデバイスインターフェイスによる前記例としてのメッセージが受信されると、前記変更されたビットレートが判断され得る、請求項１に記載のシステム。
【請求項４】
前記ネットワークデバイスインターフェイスは、それに関連付けられる前記データチャネルと通信するために、前記予め定められたビットレートを使用する、請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［連邦政府の支援を受けた研究または開発］
この発明は、ＮＡＳＡによって与えられた協力協定番号第ＮＣＣＷ−００７６号のもとに政府の支援を受けて行なわれた。政府は、この発明に或る権利を有する。
【０００２】
［関連出願への相互参照］
この出願は、２０００年１２月８日出願の「ネットワーク経由でデータチャネルをコントローラにデジタル方式でインターフェイスするためのネットワーク・デバイス・インターフェイス（NETWORK DEVICE INTERFACE FOR DIGITALLY INTERFACING DATA CHANNELS TO A CONTROLLER VIA A NETWRK）」と題される米国仮特許出願連続番号第６０／２５４，１３６号からの優先権を主張し、その内容をここに引用により援用する。
【０００３】
この発明は一般に、ネットワーク・デバイス・インターフェイスに関し、特に、共通のネットワークバス上でデータチャネルをコントローラにデジタル方式でインターフェイスするための装置および方法に関する。
【背景技術】
【０００４】
今日多くの産業において、システム故障の可能性、または関心のあるオブジェクトに対する環境およびその他の外部的な力の影響の評価を行なうためにモニタリングシステムが使用されている。たとえば、航空電子業界では、モニタリングシステムは、航空機上のさまざまな重要な構造的な場所における、歪み、加速度、圧力、腐食および温度などのパラメータを監視するために用いられている。同様に、そのようなモニタリングシステムは、オン／オフ乗員制御から動力伝達経路制御およびマルチメディアシステムに至るまで、あらゆるものを制御および監視するために自動車業界でも使用することができる。
【０００５】
これら従来のモニタリングシステムの多くは、重要な場所で監視されているオブジェクトのまわりに位置付けられる、センサ、アクチュエータおよびサブシステムなどの複数の遠隔デバイスを使用する。さらに、これら従来のモニタリングシステムの多くは、遠隔デバイスからのデータを受取りかつ遠隔デバイスにコマンドを送信するために、遠隔デバイスの各々に接続される１つまたはいくつかのコントローラを含む。作動中、コントローラはさまざまなセンサからデータを取得する。コントローラは、オブジェクト上で機能を実現するためにアクチュエータの作動も行なう。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これら従来のモニタリングシステムは、オブジェクトの重要な構造を監視するための方法を提供するが、いくつか欠点がある。たとえば、従来のモニタリングシステムの多くは、遠隔デバイスの各々をコントローラに接続するために専用の配線および信号調整を使用する。さらに、通常、遠隔デバイスの多くはアナログ方式であり、通常、遠隔デバイスから受取られるデータはアナログの形である。
【０００７】
航空電子業界および自動車業界を含め、今日多くの業界では、ネットワークの複雑さによって、いくつかの理由のため、従来のモニタリングシステムは非実用的なものになり得る。特に、専用の配線および信号調整は、高価で、かさばり、重く、しかも設置および維持が難しくなり得る。これは、重量およびサイズを第１に考慮する航空機での応用において、特に重大な意味を持つ。さらに、自動車業界では、配線の追加は自動車の重量とコス
トを増やし得る。
【０００８】
さらに上述のように、多くの従来のモデリングシステムは、アナログフォーマットでデータを伝送する。通常、アナログ信号は、データ伝送中に信号に取込まれる雑音の影響を受けやすい。伝送される信号の多くは、開始の振幅が低いため、この雑音は、信号を劣化させ、信号の解像度の損失を引起こす信号対雑音比を低下させる。さらに、これら遠隔デバイスの多くは、コントローラからかなりの距離の所に散在するため、遠隔デバイスをコントローラに接続する電気線が、配線内のＤＣ抵抗による信号劣化を引起こすほどに長くなり得る。
【０００９】
このことを考慮すると、専用の配線およびアナログ伝送を共通のバスで置き換え、データのデジタル伝送を使用することが有利であろう。しかし、多くの従来のデジタルネットワークには、それ自身にさまざまな問題がある。たとえば、多くの既存のデジタルネットワークは、プロセッサを必要とし、かつ受容できないほどの大きいまたは費用のかかる遠隔デバイスを強要する、複雑なプロトコルを必要とする。プロセッサベースの検出装置も、正確に、正しい時間にアナログデータをサンプリングする際、またはアクチュエータに動作を行なわせる際に問題を有し得る。また、複雑なプロトコルは、データ取得および制御に必要のないオーバーヘッドをバス上のメッセージに取込む。このオーバーヘッドによって、バス上で伝送可能なデータサンプルの数が大きく制限されることがある。これらのネットワークには他にも問題がある。たとえば、通常、それらは、取得および制御の両方をサポートせず、通常、短いネットワークのみをサポートする。さらに、これら従来のネットワークは、大抵、かさばるネットワーク・デバイス・インターフェイスを有し、ネットワークデータレートは遅く、またはネットワーク装置数が少ない。これに加えて、デジタルネットワークを含む多くのコンピュータシステムは、時間で決定された態様で作動しない。一般に、これらコンピュータシステムは、何らかの正しいタイミングで繰返しまたは解釈され実行される、ネットワーク構成要素へのトリガコマンドをスケジュールする能力に欠ける。
【００１０】
上述のことを考慮すると、ネットワーク構成要素が、安価、単純かつ高速でありながら堅牢なネットワーク線上でデジタル形式で通信するのを可能にし、プロトコルが単純でオーバーヘッドメッセージが少なく、構成要素のサイズが小さく、しかも配線数の少ない、ネットワークシステムを提供すれば有利であろう。さらに、ネットワークシステムが、ネットワーク・デバイス用のマイクロコントローラまたはプロセッサを使用せずに作動すれば有利であろう。また、このネットワークシステムは、取得および制御の両方をサポートし、ネットワークに接続された複数の構成要素から同時にデータを取得または変換することができる。さらに、このネットワークシステムは、多くの構成要素、より長いネットワーク線を可能にし、正確な態様で時間決定性を保証する。
【課題を解決するための手段】
【００１１】
［発明の概要］
理解を促し、この明細書での混乱を避けるため、ここでネットワークオブジェクトについて簡単に定義することが必要である。定義すべき第１のネットワークオブジェクトはバスコントローラである。バスコントローラは、ネットワークバス上でコマンドを送信するネットワーク・デバイスである。ネットワーク上の他のすべてのデバイスは、バスコントローラを聴き、バスコントローラのコマンドに基づいて動作を行なう。ネットワーク上の、バスコントローラでない装置はどれでもネットワーク・デバイスである。ネットワーク・デバイスは、この開示を通じて、しばしば遠隔デバイスと称される。ネットワーク・デバイス・インターフェイス（Network Device Interface；ＮＤＩ）は、ネットワーク・デバイスの構成要素である。ＮＤＩは、バスコントローラおよびバス上の他のトラフィックを聞き、ネットワークバス上のトラフィックに応じて、動作を行なうか、またはネットワ
ーク・デバイスに動作を行なわせる。大抵のＮＤＩは、少なくとも１つまたは複数のデータチャネルに接続される。データチャネルは、センサ、アクチュエータ、センサおよび信号調整、アクチュエータおよび信号調整、またはその他アナログまたはデジタルシステムである。データチャネルは、ネットワーク・デバイスの構成要素であるか、またはネットワーク・デバイスに接続される。
【００１２】
後に詳しく記載するように、この発明は、センサ、アクチュエータおよびサブシステムなどのさまざまなデータチャネルを共通のコントローラに接続して、データチャネルおよびコントローラからの、ならびにデータチャネルおよびコントローラへの、コマンドならびにデータの伝送を行なうためのネットワーク・デバイス・インターフェイス（ＮＤＩ）を提供することによって、これらの問題およびその他の問題を解決する。重要なことは、この発明のＮＤＩデバイスは、共通のネットワークを介してさまざまなデータチャネルをコントローラに接続することであり、このことによって、さまざまなデータチャネルが同じ配線を共有してコントローラと通信可能となることである。さらに、この発明のＮＤＩは、アナログ−デジタル、またはデジタル−アナログ、もしくはその他であり得る、異なる種類のデータチャネルをインターフェイスすることができる。センサはアナログ−デジタルのデータチャネルとしてＮＤＩに接続され、アクチュエータはデジタル−アナログのデータチャネルとしてＮＤＩに接続される。この発明のＮＤＩは、アナログ−デジタルのチャネルからデジタルデータをとり、適切なプロトコルに従ってそれをフォーマットし、適切なプロトコルに従ってそれをネットワーク上で伝送することができる。この発明のＮＤＩは、ネットワークからデジタルデータをとり、それをデジタルデータとしてデジタル−アナログのコンバータ（Ｄ／Ａ）に与え、Ｄ／Ａにそのデータをアナログ信号に変換させることもできる。ＮＤＩがそのデータチャネルから直接アナログ信号を受取り、またはそのデータチャネルに直接アナログ信号を生成する、ＮＤＩの他の実施例も可能である。デジタルフォーマットでネットワーク上でデータを伝送することにより、コマンドおよびデータは、雑音および劣化の影響を受けにくい。
【００１３】
さらに、この発明のＮＤＩデバイスは、ネットワーク上で一度に１つまたはいくつかのネットワーク・デバイスとコントローラが通信することを可能にするデータプロトコルとともに作動する。重要なのは、この発明のＮＤＩデバイスによって使用されるデータプロトコルは、固定された低レベル命令セットを有することである。プロトコルが単純なため、この発明のＮＤＩデバイスは、高レベルプロセッサである必要はない。その代わりに、好ましい一実施例では、この発明のＮＤＩのデバイスは、特定用途向け集積回路（ＡＳＩＣ）として実現されるステートマシンである。マイクロコントローラまたはプロセッサの代わりにステートマシンを使用してＮＤＩデバイスを実現することの利点は、多くのプロセスを同時に行なえることであり、このことは、ＮＤＩデバイスが時間決定的かつ高速となるのを支援する。
【００１４】
有利には、一実施例において、この発明は、同期通信または非同期通信のいずれかを使用して、コントローラとデータチャネル間でコマンドおよびデータを通信可能なネットワーク・デバイス・インターフェイスを提供する。この実施例では、ＮＤＩデバイスは、共通のデジタルバスを介してコントローラからメッセージを受取るための受信機を有する。この実施例のＮＤＩデバイスは、受信機によって受取られたメッセージに応答して、関連づけられるデータチャネルにコマンドを与えかつ関連づけられるデータチャネルからデータを受取るための、インターフェイスをさらに含む。さらに、ＮＤＩデバイスは、共通のデジタルバスを介してコントローラにメッセージを伝送するための送信機も含む。重要なのは、ＮＤＩデバイスが同期ネットワークバスクロック検出器をさらに含むことである。
【００１５】
作動中、コントローラからデータが受取られると、この発明のＮＤＩデバイスのクロック検出器は、クロック信号がコントローラからのデータに付随するかを判断する。もしク
ロック信号が存在すれば、コントローラは同期モードで通信している。この場合、ＮＤＩデバイスは、クロック信号を使用して、データチャネルにコマンドおよびデータを与え、データチャネルからデータを受取る。さらに、この発明のＮＤＩデバイスの送信機は、バスクロック信号を使用してデータをコントローラに伝送する。
【００１６】
しかしながら、ＮＤＩデバイスのクロック検出器がコントローラからのデータに関連づけられるクロック信号を検出しない場合、ＮＤＩデバイスは、バスコントローラが非同期モードで作動していると判断する。この場合、ＮＤＩデバイスは、バスクロックから独立して、非同期モードでデータをデータチャネルに与え、データチャネルからデータを受取る。さらに、この発明のＮＤＩデバイスの送信機は、同期モードのバスクロックから独立して、非同期でコントローラにデータを伝送する。
【００１７】
一実施例において、コントローラは、共通のクロックバスを介して同期信号を与える。この場合、この発明のクロック検出器は、同期クロック信号を受取り、信号を分析して、それがデータビットと同じレートで送信されているかを判断する。もしそうであれば、ネットワーク・デバイス・インターフェイスのクロック検出器は、コントローラが同期モードで作動していると判断する。
【００１８】
さらに、いくつかの実施例では、この発明のネットワーク・デバイス・インターフェイスは、共通のデジタルバスに接続されるビットレート検出器をさらに含んでもよい。この実施例では、コントローラが非同期モードで作動している場合、コントローラは或るビットレートでコマンドおよびデータを伝送している。この発明のビットレート検出器はビットレートを検出し、ＮＤＩデバイスはこのビットレートを使用してデータチャネルにコマンドおよびデータを送信し、データチャネルからデータを受取る。さらにこの発明の送信機は、検出されたビットレートを使用してコントローラにデータを送り返す。
【００１９】
規定されたビットレートで非同期モードを使用してデータを伝送することに加え、コントローラは、通信中にビットレートを変更することもできる。この実施例では、まず、コントローラは、或る予め定められたビットレートで第１のメッセージをデータチャネルに送ることができる。この実施例では、クロック検出器は同期クロック信号を検出しないが、ビットレート検出器は、メッセージがコントローラによって伝送される第１のビットレートを検出する。この第１のビットレートに基づいて、この発明のネットワーク・デバイス・インターフェイスは、このビットレートを使用して、コマンドおよびデータをデータチャネルに送り、データチャネルからデータを受取る。さらに、この発明の送信機は、検出された第１のビットレートを使用してデータをコントローラに送り返す。
【００２０】
第１のメッセージまたはいくつかのメッセージが第１のビットレートで送られた後、コントローラは、ビットレートを変更して第２のメッセージを第２のビットレートで送ることができる。この実施例では、ＮＤＩデバイスのビットレート検出器は、メッセージがコントローラによって伝送される第２のビットレートを検出する。この第２のビットレートに基づいて、この発明のＮＤＩデバイスは、このビットレートを使用して、バスコントローラからコマンドおよび引数を受取り、バスコントローラにデータを送り返す。
【００２１】
一実施例では、コントローラは、コマンドおよびデータを送るために以前に使用されたビットレートから変更されたビットレートで、例としてのメッセージを送ってもよい。この実施例では、ＮＤＩデバイスのビットレート検出器は、ビットレートの変化を検出し、ＮＤＩデバイスの送信機は、新しいビットレートでコントローラにデータを送り返し、ビットレートが変更されたことを示す。さらに、別の実施例では、コントローラは、メッセージが伝送されるべきビットレートを規定するボー選択コマンドを送ることもできる。
【００２２】
上述のように、この発明のＮＤＩデバイスはプロトコルとともに作動する。一実施例では、プロトコルは、複数の異なるアドレスを使用して、同時に１つまたはいくつかのデータチャネルをアドレス指定する。たとえば、この発明の一実施例では、プロトコルは、論理アドレスを使用して個々のデータチャネルをアドレス指定し、グループアドレスを使用していくつかのデータチャネルをアドレス指定し、グローバルアドレスを使用して同時にすべてのデータチャネルをアドレス指定する。この実施例では、論理マスクおよびグループマスクは、この発明のＮＤＩデバイスに関連づけられる記憶装置に記憶される。グループマスクは、ＮＤＩデバイスが各チャネルのためのグループアドレスのリストを記憶するのに効率のよい方法である。グループマスクは、各データチャネルについての複数のビットを含むものと解釈される。マスクの各ビットは、それぞれのグループに関連づけられ、それぞれのデータチャネルがグループのメンバーであることを示す第１の状態、およびそれぞれのデータチャネルがグループのメンバーでないことを示す第２の状態を有する。マスクは、ネットワーク・デバイス・インターフェイスに関連づけられるメモリにも記憶される。
【００２３】
この実施例では、コマンドまたはデータがいつ送られようと、それは論理アドレス、グループアドレスまたはグローバルアドレスのどれかを含む。送られる各コマンドまたはデータメッセージについて、そのメッセージに関連づけられるアドレスがＮＤＩデバイスによって分析される。アドレスがグローバルであれば、ＮＤＩデバイスはそのコマンドを実施する。同様に、アドレスが論理アドレスであり、ＮＤＩデバイスに関連づけられるデータチャネルの論理アドレスに対応する場合、ＮＤＩデバイスはコマンドを実施する。アドレスがグループアドレスである場合、この発明のＮＤＩデバイスは、それぞれのデータチャネルに関連づけられるマスクを分析することによって、ＮＤＩデバイスに関連づけられるデータチャネルがそのグループアドレスによって規定されるグループのメンバーであるかを判断する。ネットワーク・デバイス・インターフェイスは、データチャネルがそのグループアドレスを有するグループのメンバーである場合のみ、コマンドを実施する。
【００２４】
上述のように、この発明のＮＤＩデバイスは、同期モードまたは非同期モードのどちらでも作動可能である。さらに、コントローラは、グループアドレスを与えて複数のデータチャネルに同時にコマンドを送ることができる。しかしながら、各データチャネルに接続されるＮＤＩデバイスが非同期モードで作動している場合、ＮＤＩデバイスを同期させて、グループアドレスに関連づけられるコマンドを、ＮＤＩデバイスに接続されるそれぞれのデータチャネルにＮＤＩデバイスが同時に適用するようにすることが困難だという点において、問題が発生する。このことを考慮して、一実施例では、ＮＤＩデバイスは、それらが非同期モードで作動している場合でも同期させることができる。
【００２５】
特に、この発明の一実施例では、コントローラはコマンドを複数のデータチャネルに伝送し、この場合、コマンドは、第１の状態と第２の状態との間の遷移によって規定される値を有する複数のビットを含む。この実施例では、この発明のＮＤＩデバイスの各々は、複数のネットワーク・デバイス・インターフェイスが時間で決定される形でコマンドを同時に実行するように、コマンドのそれぞれのビットの値を規定する遷移に比例して予め定められた同じ時にコマンドの実施を開始する。さらに一実施例では、コントローラは、同期部、メッセージ本体およびパリティビットを含むコマンドを伝送する。この実施例では、この発明のＮＤＩデバイスは、パリティビットの値を規定する遷移と同時にコマンドの実行を開始する。さらに別の実施例では、コントローラは、スタートビットと、コマンド領域と、０にセットされた未使用の最後のビットを有するアドレス領域と、１にセットされたストップビットとを含むコマンドを伝送する。この実施例では、この発明のＮＤＩデバイスは、アドレス領域の未使用ビットからストップビットへの遷移と同時に、各データチャネルでの機能の実現を開始する。
【００２６】
さらに上述のように、同期モードでは、コントローラは同期クロック信号を共通のデジタルバス上で伝送する。この実施例では、この発明のＮＤＩデバイスは、同期クロック信号を使用することによって、いくつかのネットワーク・デバイス・インターフェイス間で同期してコマンドを実行することも可能にし得る。具体的には、この実施例では、コントローラは、複数のデータチャネルにコマンドを伝送し、メッセージは、第１の状態と第２の状態との間の遷移によって規定される値を有する複数のビットを含む。さらに、コントローラは、メッセージと同時に、複数のクロックパルスを含む同期クロック信号をコントローラから複数のデータチャネルへ伝送する。この実施例では、複数のネットワーク・デバイス・インターフェイスは、それぞれのクロックパルスによって規定される予め定められた同じときにコマンドの実行を開始し、それぞれのクロックパルスは、メッセージのそれぞれのビットに対する予め定められた関係に基づいて規定される。
【００２７】
たとえば、一実施例において、ネットワーク・デバイス・インターフェイスは、メッセージのそれぞれのビットに続く第１のクロックパルスに同期して、実行を開始する。具体的には、一実施例では、伝送されるメッセージは、第１の状態と第２の状態との間の遷移によって規定される値を有する複数のビットを有し、メッセージは、同期部、メッセージ本体およびパリティビットを規定する。この実施例では、ネットワーク・デバイス・インターフェイスは、それぞれのクロックパルスによって規定される予め定められた同じときにコマンドの実行を開始し、それぞれのクロックパルスは、メッセージのパリティビットの値を規定する遷移に対する予め定められた関係に基づいて規定される。
【００２８】
上述のように、この発明のＮＤＩデバイスは、簡略化したコントローラおよびネットワーク・デバイス・インターフェイスをネットワーク・デバイス上で使用することを場合によっては可能にする固定された低レベル命令セットを有するプロトコルとともに作動する。具体的には、一実施例では、この発明は、コンピュータ読取可能な記録媒体に記憶されるプロトコルを提供する。プロトコルは、共通のデジタルネットワークを通じてコントローラおよびネットワーク・デバイス・インターフェイス間でコマンドおよびデータを伝送するために使用される。重要なのは、プロトコルは、それぞれのコマンドおよび引数をデータチャネルに送るために、コマンドおよびデータ構造のうちの少なくとも１つを含むことである。データ構造も、データチャネルからバスコントローラにデータを送るために使用される。
【００２９】
このことを考慮して、この発明は、ステートマシンを使用するシリアルな多重化された通信システムも提供する。特に、この発明の通信システムは、複数のコマンドを発行するためのコントローラ、およびコマンドに応答して予め規定された機能を実現するための複数のデータチャネルを含む。コントローラとネットワーク・デバイス・インターフェイスとを接続しているのは、それらの間の通信を支援するための共通のデジタルバスである。さらに、通信システムは、複数のネットワーク・デバイス・インターフェイスを含み、それらの１つは、各データチャネルに関連づけられて、それぞれのデータチャネルを共通のデジタルバスに相互接続する。この実施例では、各ネットワーク・デバイス・インターフェイスは、ステートマシンを含み、プロセッサから独立している。
【００３０】
先に述べたように、同期モードでは、コントローラは、ネットワークバス上でネットワーク・デバイス・インターフェイスに同期クロック信号を与える。同期モードでは、同期クロックは、データを伝送するためのクロック信号として使用される。しかしながら、Ａ／ＤコンバータおよびＤ／Ａコンバータならびに信号調整デバイスの中には、同期クロックによってセットされるクロック速度で作動することができないものがある。このことを考慮して、この発明の一実施例では、ネットワーク・デバイス・インターフェイスはクロック分割器を含んでもよい。クロック分割器は、コントローラによって同期クロック信号を出力に接続されてもよいし、またはローカルの発振器に接続されてもよい。
【００３１】
具体的には、この実施例では、バスコントローラがあり、１つの周波数で同期クロック信号およびコマンドをネットワーク・デバイスに送り、ＮＤＩデバイスは、バスコントローラからの同期クロックおよびデータを聞く。ＮＤＩデバイスは、バスコントローラからのデータおよびコマンドを、ＮＤＩデバイスに接続されるデータチャネルによって期待される適切なフォーマットに変換し、同時にＮＤＩデバイスは、分割された第２のクロック信号をデータチャネルに与えて、コントローラおよびＮＤＩデバイスが第１のクロック周波数と一致して作動して、コマンドおよびデータをネットワークバス上で送る一方で、データチャネルが第２のクロック信号周波数と一致して作動しデータを変換するようにする。
【００３２】
さらに別の実施例では、この発明のＮＤＩデバイスは、各ＮＤＩデバイスに関連づけられる分割器を共通のデジタルバスに接続される他のすべてのＮＤＩデバイスの分割器と同期させるための方法もさらに含む。特に、上述のように、いくつかの実施例では、コントローラは、コマンドが複数のデータチャネル上で同時に実行されるように、グループアドレスを送る。しかしながら、これを行なうには、各ＮＤＩデバイスに配置される分割されたクロックを使用するデータチャネルに設けられるクロック分割器のすべてを同期させなければならない。このことを考慮して、一実施例では、コントローラは共通のバスにわたって第１のクロック信号を送る。さらに、コントローラは、分割器の各々にそれらのそれぞれの第２のクロック信号の伝送を第１のクロック信号のエッジと同期させるように命令して、分割器の各々によって与えられる個々の第２のクロック信号が第１のクロック信号に対して同期し、このことによってコンバータの各々が同期するようにする。
【００３３】
異なるクロック信号に従って作動することに加え、Ａ／ＤおよびＤ／Ａコンバータの中には、コントローラによって使用されるコマンドとは異なる特別なコマンドに従った作動も行なうものがある。このことを考慮して、この発明のネットワーク・デバイス・インターフェイスは、コンバータのための特別なコマンドを与えるために使用される特別な特徴を含み得る。この特徴はコマンド変換と呼ばれる。このため、作動中、この発明のＮＤＩデバイスは、第１のセットのコマンドに従ってコントローラからコマンドおよびデータを受取り、第２のセットのコマンドに従ってそのコマンドを変換してコンバータに適用する。さらに、この発明のＮＤＩデバイスは、第１のセットのコマンドに従って、コンバータから受取ったデータを共通のデジタルバスを通じて送ることもできる。
【００３４】
ＮＤＩデバイスに好ましいプロトコルは、ＮＤＩデバイスの小型化を可能にするように、ネットワークデータビットのマンチェスター符号化を使用する。どのようなデバイスでも非同期シリアルデータを受取るには、シリアルデータストリームからデータシーケンスのタイミングを取得できなければならないことを理解されたい。通常、シリアル非同期データの受信機は、その受信機を作動させ、シリアルデータからタイミング情報を回収するためにローカルの発振器を有しなければならない。一旦タイミング情報が抽出されると、ローカルの発振器の周波数があれば、非同期受信機は、或るレートでシリアルデータを受取ることができ、これらのレートから或る偏差分増加または減少したレートで受信することができる。シリアルデータのマンチェスター符号化によって、各ビットの中央でhighからlowへ、またはlowからhighへの遷移が起こる。このことによって、シリアルデータストリームから必要なタイミング情報を抽出することが容易になる。マンチェスター符号化されたシリアルデータストリームからタイミング情報を抽出することは容易であるため、予想されるデータレートからの比較的大きな偏差も、ローカルの発振器に基づいて許容され得る。予想されるデータレートからの比較的大きな偏差に対してこのように許容差があるため、各ＮＤＩ受信機は、精度の低いローカルの発振器を使用してマンチェスター符号化されたデータを受取ることができる。精度の低いローカル発振器は、極めて小型化することができる。適切なローカル発振器の現在の実施例は、わずか約１×１．５ミリメートル
である。このことはＮＤＩデバイスの小型化に役立つ。
【発明を実施するための最良の形態】
【００３５】
［詳細な説明］
ここからは、この発明の好ましい実施例が示される添付の図面を参照して、この発明をさらに十分に説明する。しかしながら、この発明は、多くの異なる形で実現可能であり、ここに示される実施例に限定されるものと解釈すべきではない。そうではなく、これらの実施例はこの開示を完璧かつ完全なものとし、当業者にこの発明の範囲を十分に伝えるために与えられるものである。同じ参照番号は、全体を通じて同じ要素を示す。
【００３６】
上述のように、多くの従来のデータ取得および制御システムは、個々の配線を使用して、センサ、アクチュエータおよびサブシステムなどの遠隔デバイスを中央コントローラに接続し、データ取得および制御を行なっている。遠隔デバイスの数が多いため、これらのデバイスの各々のための個々の配線を合計すると、高価でかさばり、重く、しかも設置および維持が難しいものとなり得る。さらに、これら遠隔デバイスの多くは、アナログであるため、遠隔デバイスからの信号および遠隔デバイスへの信号は、雑音および信号の劣化の影響を受けやすい。
【００３７】
後にさらに詳細に記載するように、この発明は、センサ、アクチュエータおよびサブシステムであり得るさまざまなデータチャネルを共通のコントローラに接続して、データチャネルおよびコントローラでコマンドならびにデータを伝送し合うためのネットワーク・デバイス・インターフェイス（ＮＤＩ）を提供することによって、これらの問題および他の問題を解決する。重要なのは、この発明のＮＤＩデバイスが共通のネットワークを介してさまざまな遠隔デバイスをコントローラに接続することであり、このことによって、さまざまな遠隔デバイスは同じ配線を共有してコントローラと通信することができる。さらに、この発明のＮＤＩは、アナログからデジタル、またはデジタルからアナログまたはその他であり得る、異なる種類のデータチャネルにインターフェイスすることができる。センサは、アナログ−デジタル・データチャネルとしてＮＤＩに接続され、アクチュエータは、デジタル−アナログ・データチャネルとしてＮＤＩに接続される。この発明のＮＤＩは、アナログ−デジタル・チャネルからデジタルデータをとり、適切なプロトコルに従ってそれをフォーマットし、プロトコルに従ってそれをネットワークに伝送することができる。この発明のＮＤＩは、ネットワークからデジタルデータをとり、それをデジタルデータとしてデジタル−アナログ・コンバータ（Ｄ／Ａ）に与え、Ｄ／Ａにそのデータをアナログ信号に変換させることもできる。ＮＤＩの他の実施例は、そのデータチャネルにアナログ信号を直接生成し、またはそのデータチャネルからアナログ信号を直接受取ることも可能である。デジタルフォーマットでネットワークでデータを伝送することにより、コマンドおよびデータは、雑音および劣化の影響を受けくい。
【００３８】
さらにこの発明のＮＤＩは、コントローラがネットワーク上で１つまたはいくつかのネットワーク・デバイスと同時に通信することを可能にするデータプロトコルとともに作動する。重要なのは、この発明のＮＤＩデバイスによって使用されるデータプロトコルは、固定された低レベル命令セットを有することである。プロトコルが単純であるため、この発明のＮＤＩデバイスは高レベルプロセッサである必要はない。その代わりに、好ましい一実施例では、この発明のＮＤＩデバイスは、特定用途向け集積回路（ＡＳＩＣ）として実現されるステートマシンである。マイクロコントローラまたはプロセッサの代わりにステートマシンを使用してＮＤＩを実現する利点は、多くのプロセスを同時に行なえることであり、このことによって、ＮＤＩが時間決定性を持ち、かつ高速となるのが支援される。
【００３９】
上述のように、この発明のＮＤＩは、共通のコントローラと、共通のネットワークによ
ってそのコントローラに接続されるさまざまなネットワーク・デバイスとの間のインターフェイスとして使用される。図１は、この発明のインターフェイスの実現の一実施例を示す。この図示は、この発明がより完全に理解されるようにするために与えられる。この発明は、この構成に限定されるのではなく、多くの異なるネットワークシステムで実現可能であることを理解されたい。ＮＤＩのこの実施例は、ＲＨＡＭＩＳ−ＨＳプロトコルを使用するが、この開示によって企図される他の実施例は、他のプロトコルを使用し得る。
【００４０】
図１を参照すると、この発明が使用されるネットワークシステム３０の一般的な実施例が示される。具体的には、このネットワークシステムは、高レベルプロセッサまたはパーソナルコンピュータなどのマスターコントローラ３２を含み、これが、ネットワーク内の所望の点に位置するセンサ、アクチュエータおよびサブシステムなどのデータチャネル３４からのデータを処理し、コマンドおよびデータをデータチャネル３４に送る。重要なのは、ネットワークシステムがマスタコントローラ３２とネットワークバス３８との間に接続されるネットワークコントローラ３６、およびネットワークバスとデータチャネルとの間に接続される１つまたはいくつかのＮＤＩデバイス４０をさらに含むことである。ネットワークコントローラおよびＮＤＩデバイスをネットワークバスに接続するのは、それぞれの送信器４２〜４６および受信器４８〜５２である。ネットワークコントローラとネットワークバスとの間に接続される第１の送信器４２は、ネットワーク上でコマンドおよびデータを伝送し、これもネットワークコントローラとネットワークバスとの間に接続される第２の送信器４４は、同期クロック信号を伝送するために使用することができる。
【００４１】
通常動作において、センサである遠隔デバイスは、検討中の特定のオブジェクトに接続され、温度、歪み、屈曲、速度、空気の流れ等のそのオブジェクトの特性を検知する。さらに、アクチュエータである遠隔デバイスは、機械的な部材およびその他の構造体に接続されて、テスト中のオブジェクト上で作動する。１つまたはいくつかの遠隔デバイスは、コンバータおよび信号調整デバイスを含む個々のデータチャネルを介して、この発明の１つのＮＤＩデバイスに接続される。さらに、データおよびコマンドをネットワーク上でさまざまなネットワーク・デバイスに送信するように、マスターコントローラまたはネットワークコントローラのどちらかを構成することができる。これらコントローラの両方がそのような動作が可能であるため、バスコントローラという総称は、以下の議論において、マスターコントローラまたはネットワークコントローラのどちらかによって行なわれ得る動作を示すのに使用される。
【００４２】
図２を参照すると、センサからデータを取得するため、またはアクチュエータを作動させるため、コントローラは、ネットワークを通じて、コマンドおよびデータを遠隔デバイスにデジタル方式で送り、コマンドおよびデータは、遠隔デバイス上のデータチャネルの１つまたはグループのために設計されている（ステップ２００を参照）。コマンドおよびデータは、データプロトコルを使用して、ネットワーク上で伝送される。この発明のＮＤＩデバイスは、データプロトコルの構造を使用して、データおよびコマンドを受取り、解釈する（ステップ２１０を参照）。さらに、この発明のＮＤＩデバイスは、コマンドおよびデータがそこに接続されるデータチャネルのために指定されているかを判断する（ステップ２２０を参照）。もしそうであれば、ＮＤＩは、それがセンサであれば、指定されたデータチャネルからデータを取得し、またはそれがアクチュエータであれば、データチャネルに変換を行なうように命令する（ステップ２３０を参照）。センサチャネルから検索されるアナログデータは、まずデジタルデータに変換され（ステップ２４０を参照）、次に、データプロトコルに従って適切なフォーマットに変換される。さらにデジタルデータは、コントローラに伝送される（ステップ２５０を参照）。
【００４３】
図１および２に示されるように、この発明のＮＤＩデバイスは、バスコントローラとデータチャネルとの間のインターフェイスとして作動する。重要なのは、この発明のＮＤＩ
デバイスは、データチャネルからデジタル化されたアナログデータ信号を受入れ、ネットワークバス上で伝送できることである。ＮＤＩは、バスコントローラからデジタルデータを受入れ、それをデータチャネルに与えることもできる。次にＤ／Ａコンバータは、データをアナログ信号に変換することができる。データチャネルの中には、デジタルデータをアナログに変換することなく、直接それを受入れ使用することも可能であるものもある。ＮＤＩのいくつかの実施例は、ＮＤＩに一体化されたアナログ−デジタル（Ａ／Ｄ）コンバータおよびＤ／Ａコンバータを有してもよく、このことによって、アナログ信号をデータチャネルから受入れ、またはデータチャネルへ与えるように構成される。この発明のＮＤＩデバイスは、選択されたデータプロトコルとともに作動して、ネットワークバスを介して適切にデータを受取りかつデコードし、またはフォーマットし、データを効率よく送信することができる。
【００４４】
さらにこの発明のＮＤＩデバイスは、データチャネルを構成する異なる種類のデバイスとコントローラが通信することを可能にする、たとえば、プログラム可能なトリガコマンド変換およびクロック信号などの、付加的な動作および特徴も提供する。これに加えて、この発明のＮＤＩデバイスは、そこに接続されるデータチャネルを構成するための記憶された情報および手順を含む。Ａ／ＤおよびＤ／Ａコンバータは、プログラムする必要のあり得るまたは構成する必要のあり得るデータチャネルの構成要素の例である。この発明のＮＤＩデバイスは、ローカルの発振器または同期バスクロックの何らかの断片または複数のローカル発振器または同期バスクロックであるローカルクロック信号をデータチャネルに与えることもあり得る。ネットワーク上の多くのまたはすべてのＮＤＩデバイスのローカルクロック信号は、バスコントローラによって同期させることができる。さらにこの発明のＮＤＩデバイスは、データチャネルを、個々に、同期グループで、またはすべてまとめてアドレス指定することができるように、データプロトコルとともに作動して、一意の論理アドレスおよびグループアドレスをデータチャネルの各々に与える。
【００４５】
コントローラおよび遠隔デバイスならびに異なる構成を有するデータチャネルの間でのデータ通信を可能にすることに加え、この発明のＮＤＩデバイスは、異なるデータ伝送モードを使用する、バスネットワーク上でのデータ通信も可能にする。具体的には、この発明の１つのモードでは、この発明のＮＤＩデバイスは、同期モードでコントローラとともに作動し、コントローラによって与えられる同期クロック信号は、バスコントローラからコマンドおよびデータを受取るためにＮＤＩデバイスによって使用される。この同じ同期クロック信号をＮＤＩが使用して、データをバスコントローラまたはその他のネットワーク・デバイスに送信する。
【００４６】
注意すべきことは、通常、ＮＤＩデバイスは、同期バスクロック信号をバスコントローラに送り返さないことである。その代わり、通常、ＮＤＩデバイスは、同期モードでは同期バスクロック信号を受信したエッジでデータの出力時刻を記録する。一般に、バスコントローラのみが同期バスクロック信号を伝送する。さらに、通常、バスコントローラは、ＮＤＩデバイスからデータを受取るために非同期受信器を含む。
【００４７】
同じ実施例または異なる実施例となり得る別のモードでは、ＮＤＩデバイスは、非同期モードでコントローラとともに作動する。この実施例では、この発明のＮＤＩデバイスは、コントローラがネットワークバス上でデータを伝送しているレートを分析および判断して、このビットレートを使用してバスコントローラからコマンドおよびデータを検索し、バスコントローラまたはその他のネットワーク・デバイスにデータを送る。非同期モードでも、ＮＤＩデバイスは、異なるＮＤＩデバイス上にあるデータチャネルでのデータ変換を同期させることができる。データ変換は、バスコントローラからのコマンド内の特別なビットのエッジの変化で、またはその直後にそれを行なうことによって、異なるデータチャネル上で同期される。
【００４８】
これらの利点および他の利点は、この発明のＮＤＩデバイスによって実現され、その一実施例は、図３Ａおよび図３Ｂに示される。特に、図３Ａは、この発明の一実施例による、ＮＤＩデバイス４０の一般的なブロック図である。図示のように、この発明のＮＤＩデバイスは、先に図１に示したように、ネットワークバス３８と遠隔デバイス３４および３６との間に接続される。この実施例では、遠隔デバイス３４の１つはセンサであり、もう一方の遠隔デバイス３６は、アクチュエータまたは同様の装置である。両方の遠隔デバイスとも、アナログ信号を調整するための信号調整デバイス５８および６０を含む。遠隔デバイス３４に関しては、信号調整５８はセンサ信号用である。アクチュエータのための信号調整は、６０に示される。信号調整は、増幅器、フィルタ、減衰器等を含み得るが、これらに限定されない。
【００４９】
重要なのは、遠隔デバイスと、この発明のＮＤＩデバイスとの間に接続されるのは、それぞれＡ／Ｄコンバータ６２およびＤ／Ａコンバータ６４であるということである。Ａ／Ｄコンバータ６２は、ＮＤＩデバイスとセンサ３４との間に接続される。Ａ／Ｄコンバータは、センサチャネルからのアナログ信号をデジタルデータに変換して、ＮＤＩデバイスに入力する。同様に、Ｄ／Ａコンバータ６４は、ＮＤＩデバイスとアクチュエータ装置３６との間に接続され、ＮＤＩデバイスからのデジタル信号をアナログ信号に変換して、アクチュエータチャネルに入力する。センサおよびアクチュエータの中には、デジタル信号を直接生成または受信し得るものがあるため、Ａ／Ｄ６２またはＤ／Ａ６４が必要でない場合もあり得る。
【００５０】
先に図１に示したように、この発明のＮＤＩデバイスは、コントローラからコマンドおよびデータを受取る第１の受信器５０を介して、ネットワークバスに接続される。第２の受信器５２も、ネットワークが同期モードで作動している場合にコントローラから任意の同期クロック信号を受取るために設けられる。送信器４６も、データをコントローラに伝送するために、この発明のＮＤＩデバイスとネットワークバスとの間に接続される。さらに、記憶装置６６およびローカルの発振器６８は、この発明のＮＤＩデバイスに接続される。ＮＤＩデバイスの異なる実施例は、受信器、送信器、ローカルの発振器およびメモリの一部またはすべてを組込み得る。
【００５１】
図３Ｂは、この発明の一実施例によるＮＤＩデバイス４０のさまざまな制御論理構成要素を示す。特に、この発明のこの実施例のＮＤＩデバイスは、データチャネル３４および３６に接続するためのポート７０および７２を含む。通常、これらポートはシリアルポートであるが、いくつかの実施例では、パラレルポートであってもよい。ＮＤＩデバイスのポートは、個々のポートコントローラ７４および７６によって制御される。各ポートに組込まれるデータ線は、シリアルＭＯＳＩ（master out slave in；マスター・アウト・スレーブ・イン）と称されるデータ出力線７８、ＣＥと称されるチップ可能化またはチップ選択線８０、シリアルＣＬＫと称されるクロック信号線８２およびトリガ８４を含む。図示のように、データ出力線７８は、構成データ出力線７８ａおよびデータ出力／特別コマンド出力線７８ｂからなる。構成データ出力線７８ａは、後に説明するように、パワーアップ時にデータチャネルを構成するために使用される。さらに、データ出力／特別コマンド出力線は、バスコントローラからのデータをデータチャネルに与える。出力選択線７９は、ＮＤＩデバイスがパワーアップモードであるか、または通常動作であるかに応じて、構成データ出力線とシリアル出力データ線との間で選択スイッチ８６のトグル動作を行なう。
【００５２】
上述のように、この発明のＮＤＩデバイスは、メモリを作る複数のデータレジスタとして規定されるデータスタック８８をさらに含む。データスタックは、データチャネルから取得されたデジタルデータを記憶するために使用される。データスタックは、データチャ
ネルに送信するためのバスコントローラからのデータを記憶するためにも使用することができる。通常、データスタックは、後入れ先出し（last in first out；ＬＩＦＯ）デバイスとして作動し、ここでは、データスタックに最後に位置づけられたデータが最初にデータスタックから検索される値である。このようにして、スタックのサイズにかかわらず、データは、異なるＮＤＩデバイスによって同じ順序でバスコントローラに戻される。新しいデータの値をスタックの最上部に置いてから、バスコントローラがそれを読取ることが可能になるまでの遅延は、最低限になる。しかしながら、バスコントローラがスタックの底部からデータを読取らなければならないのであれば、大きな遅延が生じるであろう。
【００５３】
図示のように、データスタックに関連づけられるのは、スタック深さレジスタ９０である。スタック深さレジスタは、その時点でのスタック内の有効なデータワード数を示す。
【００５４】
さらに、この発明のＮＤＩデバイスの現在の実施例の内部には、各データチャネルのための状態レジスタ９２およびデータ選択マルチプレクサ９４がある。重要なのは、状態レジスタが、たとえば、データチャネルがレディモードであるか、データチャネルがコマンドをサポートするか、またはメッセージ伝送エラーがあるか等の、データチャネルの状態に関する情報を含むことである。データ選択マルチプレクサは、要求されるデータに応じて、状態レジスタ、データスタックまたはスタック深さレジスタのいずれかを出力データマルチプレクサ９６に接続する。各チャネルについてのデータ選択マルチプレクサ９４は、それぞれのポートコントローラ７４および７６によって制御される。出力データマルチプレクサ９６は、２つの遠隔デバイスの出力またはデバイス・インベントリ・レジスタ９８の出力から選択する。ＮＤＩデバイスの異なる実施例は、ＮＤＩデバイス内に異なるマルチプレクサの配置を有し得るが、その効果は常に、バスコントローラが、必要とするＮＤＩデバイス内のどのデータチャネルのためのレジスタにもアクセスできるようにすることである。
【００５５】
デバイス・インベントリ（Device Inventory）・ブロック９８は、図８のフローチャートに示されるデバイス・インベントリ・オペレーションを実行するためにＮＤＩデバイスによって使用される。
【００５６】
さらにこの発明のＮＤＩデバイスは、アドレスデコーダ１００およびコマンドデコーダ１０２も含む。後に説明するように、これらデコーダは、コントローラによって伝送されるコマンドおよびデータを受取り、コマンドおよびデータをデコードし、そのコマンドおよびデータがＮＤＩデバイスに接続されるデータチャネルの１つまたは複数にアドレス指定されているかを判断する。コマンドおよびデータがデータチャネルの１つについてアドレス指定されている場合、この発明のＮＤＩデバイスは、コマンドに従ってそのデータチャネル上で作動する。上述の構成要素は、しばしばここでは、デバイス・インターフェイスと称される。
【００５７】
ＮＤＩデバイスは、ＵＵＩＤ、プロトコルバージョン、データチャネルの数、論理アドレス、グループマスク、構成データ、および製造者またはユーザが規定し得るその他のデータを記憶するためにＮＤＩが使用する記憶装置６６として、図３Ａに示される不揮発性メモリを含む。この記憶装置との通信は、構成レジスタ１０４から記憶装置への入出力線によって、図３Ｂに示される。バスコントローラは、プロトコルに従ってメモリを読出し、さまざまな記憶場所に書込むことができる。メモリ内の論理アドレスおよびグループマスク領域は特別である。これらは、図８のフロー図に従ってＮＤＩデバイスがデバイス・インベントリ競合（Device Inventory Competition）に勝った直後に、バスコントローラによってのみ書込むことができる。このことによって、すべてのＮＤＩデバイスがバスコントローラによって一意に識別されることが可能となり、論理アドレスおよびグループマスクを割当てることが可能となる。これらの領域に書込む前にデバイス・インベントリ競
合に勝たなければならないと命令することによって、これらの値を偶然変更することは事実上不可能となる。これと同じ種類のメモリ保護は、ＮＤＩデバイス製造者によって他のメモリ領域に適用することが可能である。
【００５８】
パワーアップ時、不揮発性メモリ６６の内容の一部は、論理およびグループアドレスデコーダレジスタ１００、シリアルポート７０および７２のための構成レジスタ１０４、ポートコントローラ７４および７６内のコマンド変換レジスタにロードされ、一部の内容は、データチャネルを構成するためにシリアルポートまたはその他のパラレルポートから送り出される。パワーアップ時、このメモリデータは、他にも使用され得る。このメモリは、ネットワーク・デバイス設置場所、較正データ等、ユーザが規定する情報を記憶するためにバスコントローラによって使用することもできる。通常、このメモリの内容は、トランスデューサ電子データシート（Transducer Electronic Data Sheet）を示すＴＥＤと呼ばれる。
【００５９】
さらに、この発明のＮＤＩデバイスは、コマンドを受取り、内蔵テスト、較正を行ない、かつＮＤＩデバイスをスリープモードおよびウエイクモードの間で遷移させるために、制御論理１０６を含んでもよい。
【００６０】
図１に示されるように、この発明のＮＤＩデバイスは、ネットワークバスを通じてコントローラと通信する。以下に記載する、この発明のさまざまな動作の説明は、ＮＤＩデバイスに関するものである。マスターコントローラおよびネットワークコントローラの詳細な動作は、ここには記載しない。しかしながら、マスターコントローラおよびネットワークコントローラの動作の完全な詳細な開示は、２０００年１２月８日出願の「共通のバスを介して遠隔デバイスをデジタル方式で制御するためのネットワークコントローラ（NETWORK CONTROLLER FOR DIGITALLY CONTROLLING REMOTE DEVICES VIA A COMMON BUS）」と題される米国仮特許出願番号第６０／２５４，１３７号に提供される。この特許出願の内容を、ここに引用により援用する。
【００６１】
上述のように、この発明のＮＤＩデバイスは、いくつかの利点をもたらす。この発明のＮＤＩデバイスの１つの重要な局面は、パワーアップ時にＡ／ＤおよびＤ／ＡコンバータならびにＮＤＩデバイスに接続される遠隔デバイスが自己構成されることである。図１に示すように、ネットワークバスに接続される遠隔デバイスは、非常に多数でかつ非常に遠くに離れていることがあり得るため、中央の場所からデバイスを構成することは難しくなり得る。このことを考慮して、この発明の一実施例では、ＮＤＩデバイスは、信号調整デバイス５８および６０の利得、オフセット、フィルタ等に関するデータ、ならびに記憶装置６６（図３Ａに示す）に記憶されるＡ／ＤおよびＤ／Ａコンバータに関連する情報を含む。具体的には、一実施例では、この発明のＮＤＩデバイスは、パワーアップ時に、記憶装置から１６の１６ビットデジタルワードがポートの各々７０および７２を介して出力されるのを可能にする。この発明のＮＤＩデバイスのこの局面は、市販のＡ／ＤコンバータおよびＤ／Ａコンバータの自動構成を可能にしている。
【００６２】
記憶装置に記憶される構成データは、コントローラによってプログラム可能である。１６の１６ビットワードは、３２の８ビットバイトに分割して、ポートによってＡ／ＤコンバータおよびＤ／Ａコンバータならびに信号調整に出力されるようにプログラム可能である。さらに、この発明のＮＤＩデバイスは、構成データがポート７０および７２で出力されるときのシリアルクロック８２の位相およびシリアルクロック８２の極性を変更するために、コントローラによってプログラム可能である。
【００６３】
パワーアップ時にＡ／ＤコンバータおよびＤ／Ａコンバータならびに信号調整デバイスを構成することに加え、この発明のＮＤＩデバイスは、異なる種類のＡ／Ｄコンバータお
よびＤ／Ａコンバータならびに信号調整デバイスと作動するように構成可能でもある。具体的には、逐次近似Ａ／Ｄコンバータおよびシグマ／デルタオーバーサンプリングコンバータ等、多くの種類のコンバータがある。これらのコンバータは、クロックおよび動作遅延の面から見て、異なる動作をし得る。さらに、スイッチド・キャパシタ・フィルタおよびデジタル・アンチエイリアス・フィルタなどの信号調整デバイスの中には、クロックの面から見て異なる動作をするものがある。
【００６４】
たとえば、図１に示されるように、同期モードでは、コントローラはネットワークバスを通じてネットワーク・デバイスに同期クロック信号を与える。同期モードでは、同期クロック信号は、ネットワークデータを伝送するためのクロック信号として使用される。アナログ・デバイシズ（Analog Devices）社のＡＤ７７１４コンバータなどのＡ／Ｄコンバータの中には、正しく作動するために連続するクロック信号を必要とするものもある。通常、このクロックは、コントローラによって与えられる同期クロック信号よりも低い周波数である。このことを考慮して、この発明の一実施例では、この発明のＮＤＩデバイスは、クロック分割器１０８を含んでもよい。クロック分割器は、図３Ｂに示されるようにコントローラによって出力される同期クロック信号に接続されていてもよいし、または図３Ａに示されるようにローカルの発振器６８に接続されていてもよい。
【００６５】
ＮＤＩデバイスによって与えられるこのクロック信号は、図９に示されるバスコントローラによって同期させることができる。クロック信号は、バス上の、１つ、いくつかまたはすべてのＮＤＩデバイスで、同時に同期させることができる。図９の例では、内部クロック周波数は、同期バスクロック周波数の１／４として示される。実際には、これは同期バスクロック周波数の何分の１であってもよい。
【００６６】
図４は、バスコントローラからの１つの特定のコマンドに応答してＮＤＩによって行なわれる動作のブロック図である。この図は、ＮＤＩデバイスが１度に２つ以上の作業を行なえることを示す。ＮＤＩデバイスの同時に複数の作業を行なえる能力によって、この発明のＮＤＩデバイスは、同時に１つまたは複数のデータチャネルを取得または制御する一方で、同時にバスコントローラと通信することができる。
【００６７】
図４を参照すると、作動中、この発明のＮＤＩデバイスは、まずトリガおよび読出（Trigger and Read）コマンドなどのコマンドをコントローラから受取り（ステップ３１０を参照）、そのコマンドを解釈する。コマンドおよびアドレスがＮＤＩデバイス上のデータチャネルのためのものであれば、ＮＤＩデバイスは、ステップ３３０および３６０に示される動作を並行して開始する。具体的には、ＮＤＩデバイスは、ＮＤＩに装着されるデータチャネルに変換信号を送る（ステップ３３０を参照）。このデータパルスの立上がりエッジは、トリガおよび読出コマンドの終わりにパリティビットの中央エッジで起こる。変換信号は、アナログデータをサンプルにラッチし、Ａ／Ｄコンバータの回路を保持するために与えられるか、または変換信号は、Ｄ／Ａに変換プロセスを開始させるために使用することもできる。この信号の立上がりエッジの正確なタイミングによって、ネットワーク・デバイスが同期モードで作動していない場合でも、多くのデータチャネルは、いつアナログデータをサンプリングすべきか、または変換するべきかを知ることができる。
【００６８】
変換信号が生成された後、短い休止が起こる（ステップ３４０を参照）。この休止によって、データチャネルは、そのサンプルにラッチされるアナログ信号を変換して、デジタル値に変換するように保持するための時間を有することができる。ＮＤＩデバイスのこの実施例では、この休止はプログラム可能である。２つの選択肢がある。これは僅か数百ナノ秒であってもよく、または６マイクロ秒にプログラムすることも可能である。
【００６９】
休止の後、シリアル転送が行なわれる（ステップ３５０を参照）。このシリアル転送中
、プログラム可能なワードの出力時刻がＭＯＳＩ線上で記録される。このプログラム可能なワードは、特別なＡ／Ｄコンバータにデータを出力させるために使用される。例としては、ＡＤ７７１４がある。このシリアル転送が続く中で、データはデータチャネルからＮＤＩデバイスに戻される。ＭＯＳＩ線上でＮＤＩデバイスに戻されるデジタルデータは、データレジスタ８９に記憶される。
【００７０】
動作ステップ３３０、３４０および３５０が行なわれるのと同時に、動作ステップ３６０、３７０および３８０も行なわれる。動作ステップ３６０において、入力データレジスタ８９の内容は、データスタックの最上部にシフトされる。次に、データスタックの最上部の内容は、送信機レジスタにロードされる（ステップ３７０を参照）。最後に、送信機レジスタの内容は、ＮＤＩデバイスの送信器４６によってバスコントローラに送り返される（ステップ３８０を参照）。
【００７１】
これら動作のすべての間、ＮＤＩインターフェイスは、連続したクロック信号をデータチャネルに与えている。すべてのデータチャネルがこのクロックを使用するわけではないが、使用可能である。このクロックの周波数はプログラム可能である。このクロック信号は、スイッチド・キャパシタ・フィルタ、デジタルフィルタまたはシグマ／デルタコンバータ等のデバイスを作動させるために有用である。このクロック信号は、動作ステップ３００から３８０が行なわれていないときでも作動し続ける。
【００７２】
汎用非同期送受信器（Universal Asynchronous Receiver Transmitter；ＵＡＲＴ）プロトコルが使用されている場合、コントローラは、スタートビット、コマンド領域、０にセットされる未使用の最後のビットを有するアドレス領域、および１にセットされるストップビットを含む、コマンドを伝送する。この実施例では、この発明のＮＤＩデバイスは、アドレス領域の未使用ビットからストップビットへの遷移と同時に、各データチャネルでの関数の実行を開始する。
【００７３】
クロックおよび遅延の発行に加え、Ａ／ＤコンバータおよびＤ／Ａコンバータの中には特別なコマンドも必要とするものがある。たとえば、Ａ／ＤコンバータおよびＤ／Ａコンバータの中には、センサからの異なる読取値をとるようにプログラム可能なものもある。たとえば、１つの応用例では、Ａ／Ｄコンバータは、３次元で歪みを感知する歪みゲージに接続される。各読取可能な寸法は、別々の１６ビットのアドレスでアドレス指定可能である。各寸法の測定値の１つまたはすべては、関連づけられる１６ビットコマンドをコンバータに適用することによってアクセス可能である。ビットコマンドのすべてをコントローラに記憶して、それらをネットワーク上で伝送することは煩わしい場合があり得る。プロトコルの動作を簡略化するため、（以下に説明するように）、この発明のＮＤＩは、これら特別なコマンドを維持して、コントローラがそれらを維持したり、それらをネットワーク上で送る必要をなくす。このことを考慮して、一実施例では、この発明のＮＤＩは、ＮＤＩに接続されるＡ／ＤコンバータまたはＤ／Ａコンバータに関連づけられる特別なビットコマンドを含む。図３Ａおよび３Ｂを参照すると、これらコマンドは、元々は記憶装置６６に記憶され、プログラム可能である。パワーアップ時、これらの特別なビットコマンドは、コマンドデコーダ１０２に記憶することができる。
【００７４】
図５を参照すると、作動中、特別なコマンドを備えるコンバータを有する遠隔デバイスがアドレス指定される場合、（センサからデータを取得するため、またはアクチュエータの場合は遠隔デバイスを作動させるため）、コントローラは、そのコンバータを備えるデータチャネルのアドレスとともに、適切にフォーマットされたトリガコマンドを送る（ステップ４００を参照）。（コマンドのフォーマットは後述する）。データチャネルに関連づけられるＮＤＩがコマンドおよびアドレスを受取ると（ステップ４１０を参照）、まず、ＮＤＩは、アドレス指定された遠隔デバイスが特別なコマンドを必要とするかを判断す
る。これは、受取ったアドレスをコマンドデコーダに記憶されるデータに関連づけられるアドレスと比較することによって行なう（ステップ４２０を参照）。アドレスに基づいて、この発明のＮＤＩは、コマンド変換レジスタから適切な特別コマンドを検索する（ステップ４３０を参照）。次に、特別コマンドは、情報を受取るために、センサの場合はコマンドに対応するアクチュエータを作動させるために、コンバータに適用される（ステップ４４０を参照）。
【００７５】
先に簡単に述べたように、コントローラおよびこの発明のＮＤＩデバイスは、同期モードまたは非同期モードのどちらでも作動することができる。同期モードでは、コントローラは連続する同期クロック信号を与える。同期クロック信号は、バスコントローラからのデータの入力時刻を記録し、コントローラへのデータの出力時刻を記録するために、この発明のＮＤＩデバイスによって使用される。このことによって、バスコントローラは、０ビット／秒から何らかの最大ビットレートまでのどのようなデータレートも選ぶことができる。
【００７６】
この発明のＮＤＩデバイスは、コントローラが非同期モードまたは同期モードのどちらで作動しているかを自動的に検出することができる。具体的には、図３Ａ、３Ｂおよび図６を参照すると、この発明のＮＤＩデバイスは、クロック検出器を使用して、第２の受信器５２で受取られる信号を連続的に調べる（ステップ５００を参照）。同期クロック信号が存在する場合（ステップ５１０を参照）、この発明のＮＤＩデバイスは、同期モードで作動し（ステップ５２０を参照）、コントローラからの同期クロック信号を使用して、データの入力時刻および出力時刻を記録する。しかしながら、この発明のＮＤＩデバイスが第２の受信器５２からの同期クロック信号を検出しない場合（ステップ５１０を参照）、この発明のＮＤＩデバイスは、非同期モードで作動する（ステップ５３０を参照）。
【００７７】
上述のように、非同期モードでは、コントローラはさまざまなビットレートで作動し得る。このことを考慮して、一実施例において、この発明のＮＤＩデバイスは、コントローラが作動しているビットレートを検出する。具体的には、図７を参照すると、この実施例では、この発明のＮＤＩデバイスがコントローラが非同期モードで作動していると判断した後、この発明のＮＤＩデバイスは、コントローラによって伝送されるコマンドおよびデータのビットを監視する（ステップ６００を参照）。ＮＤＩデバイスは、ビットレートデコーダを使用して、各ビットの受取り間の時間を判断する。伝送間の時間が実質的に同じである予め定められた数のビットが受取られた後（ステップ６１０を参照）、この発明のＮＤＩデバイスは、ＮＤＩデバイスに送られているデータのビットレートを選び、そのビットレートで作動する（ステップ６２０を参照）。重要なのは、ＮＤＩデバイスのビットレートを検出する能力は、ネットワークシステムに電力障害があった場合、またはコントローラが同期モードから非同期モードに遷移した場合に、すばやく復旧するために有利であることである。自動的に同期クロックを検出する特徴および自動的にビットレートを検出する特徴の第２の重要な局面は、それによって、１つの種類のＮＤＩデバイスが異なるモードのネットワーク通信を使用してネットワーク上で通信することが可能となることである。ネットワークシステムの設計者は、ネットワークシステムの特定の用途に最適化したネットワーク通信のモードを選ぶことができる。
【００７８】
さらに一実施例では、バスコントローラは、ＮＤＩデバイスに或る特定のビットレートでデータを送受信するように命令することができる。バスコントローラは、ビットレート変更コマンドを送り、それに続いてＮＤＩデバイスがこれからそれに変更するビットレートを送ることができる。ＮＤＩデバイスは、バスコントローラによって指示されるビットレートで、データをバスコントローラから受取り、バスコントローラに伝送する。さらに、コントローラは、例としてのメッセージを新しいビットレートで送ることができ、この発明のＮＤＩは、実際のコマンドおよびデータが送られる前にその新しいビットレートに
変更する。
【００７９】
この発明のＮＤＩデバイスのもう１つの利点には、或るネットワークバス上の多くの異なるＮＤＩデバイス上の多くのデータチャネルが同期または非同期モードでバスコントローラに通信している場合に、アナログデータを実質的に同時にサンプリングまたは変換することができる点である。非同期モードでのデータサンプリングまたは変換を同期させる１つの方法は、変換信号８４の立上がりエッジ（図３Ｂを参照）を、コントローラからの変換コマンドの中央エッジが変化したとき、またはその直後にhighにすることによって達成される。プロトコルの中には、変換コマンドをトリガコマンドと呼ぶものがある。プロトコルおよびＮＤＩデバイスが非同期モードでも同時にデータをとり、またはデータを変換する能力は、等時性と呼ばれる。
【００８０】
同期データサンプリングの第２の方法は、同期クロック信号を各ＮＤＩデバイスから各ＮＤＩデバイスに関連づけられる各データチャネルに与えることによるものである。クロック信号は、同期コマンドを使用してバスコントローラによって同期され、ＮＤＩデバイスは、図９のタイミングに従ってコマンドに応答して同期する。そのようにして、同期バス信号の分割された一部である周波数を有するクロック信号を使用するデータチャネルのすべては、ほぼ完璧に同期して作動する。
【００８１】
インターフェイスに異なる種類のＡ／ＤコンバータおよびＤ／Ａコンバータならびに異なる信号調整システムを与え、同期モードおよび非同期モードの両方で作動することに加え、この発明のＮＤＩデバイスは、ネットワークでのデータの伝送におけるオーバーヘッドを省くこともできる。特に、図３Ｂに示されるように、この発明のＮＤＩデバイスは、データスタック８８を含む。ＮＤＩデバイスがセンサ遠隔デバイスに接続される場合、データスタックは、入力データスタックである。入力データスタックは、データチャネルから受取ったデータを含む。この場合、入力データスタックに記憶されるデータは、コントローラによって１度に１つのワード（すなわち１度に１つのレジスタ）、またはデータのブロックとして（すなわち一度に複数のレジスタを）読出すことができる。データスタックから一度にデータのブロックを読出すことによって、ネットワークのオーバーヘッドが省かれる。
【００８２】
さらに、この発明のＮＤＩデバイスがアクチュエータ遠隔デバイスに接続される場合、データスタックは、出力データスタックである。この場合、出力データスタックは、コントローラによって転送されアクチュエータ・データチャネルに出力されるべきデータを含む。トリガコマンドがアクチュエータに送られると、アクチュエータはデータスタックの最上部のワードのデジタルからアナログへの変換を行ない、次に、ＮＤＩデバイスは、スタックをポップし、スタックの最上部の新しいワードをＤ／Ａに伝送する。データワードは、コントローラによって個々にまたはワードのブロックとして出力データスタックに書込むことができる。出力データスタックに、一度に１つではなく、データのブロックを書込むことによって、ネットワークのオーバーヘッドが省かれる。
【００８３】
上述の利点に加え、この発明のＮＤＩデバイスにはさらなる利点がある。具体的には、一実施例において、この発明のＮＤＩデバイスは、単純かつ高速でありながら堅牢なデジタル・マルチドロップ・ネットワーク上でデータチャネルが通信することを可能にするプロトコルとともに作動する。どのような適用可能なプロトコルでも、この発明のＮＤＩデバイスとともに使用可能であることを理解されたい。しかしながら、以下に記載するのは、図１に示されるネットワークシステム３０で使用される場合に、いくつかの利点を提供する、或る特定のプロトコルである。１つの重要な利点は、プロトコルが単純であるため、ＮＤＩデバイスを高レベルプロセッサではなく、ステートマシンとして実現することができることである。
【００８４】
特に、プロトコルは、低レベル通信制御インターフェイス（すなわちネットワークコントローラおよびＮＤＩデバイス）を保証するように設計される。プロトコルによって、ネットワーク内で高度に小型化されたコントローラおよびネットワーク・デバイス・インターフェイスを開発することが可能となる。ネットワークコントローラおよびＮＤＩデバイスが、プロトコルとともに作動する特定用途向け集積回路（ＡＳＩＣ）またはＦＰＧＡで実現される場合、ネットワークコントローラおよびＮＤＩデバイスは、素早く応答することができかつ最大限のバスの効率を効率良く実現する。バスコントローラまたはＮＤＩデバイスがＡＳＩＣとして実現される場合、バスコントローラおよびＮＤＩデバイスは、非常に小型化できる。
【００８５】
この発明のプロトコルは、低オーバーヘッドのコマンド構造も有する。この発明のプロトコルは、固定長のメッセージを使用しない。メッセージの長さは、コマンドに応じて変り得る。このことによって、コマンドを実行するのに必要でない場合、不必要なデータが伝送されるのを排除することができる。さらに、コマンドセットは最低限かつ単刀直入であるため、ユーザは最低限の操作でネットワークバスを介してデータを容易に渡すことができる。
【００８６】
上述のように、この発明のＮＤＩデバイスは、固定された低レベル命令セットを有するため、簡略化されたコントローラおよびネットワーク・デバイス・インターフェイスをネットワーク・デバイス上で使用することを場合によっては可能にするプロトコルとともに作動する。特に、低レベルコマンドセットによって、ＮＤＩデバイスは、プロセッサまたはマイクロコントローラではなく、ステートマシンとして実現することができる。低レベルコマンドセットがどのように働くかの一例を示す。バスコントローラがＮＤＩデバイスのメモリからデータワードを読出したい場合、これは、セットポインタと呼ばれるコマンドをＮＤＩに送り、次にそのコマンドに続いてそのポインタの値を送る。ＮＤＩは、そのコマンドをデコードし、そのメモリアドレスポインタをバスコントローラによって送られた値にセットする。メモリアドレスポインタは、バスコントローラによって送られる値をラッチするレジスタでありさえすればよい。次に、バスコントローラは、メモリワード読出コマンドをＮＤＩデバイスに発行する。ＮＤＩデバイスは、そのメモリアドレスポインタによって指し示されるメモリワードにアクセスし、それをバスコントローラに伝送することによって応答する。バスコントローラがＮＤＩのメモリからデータのブロックを読出したい場合、このプロセスを複数回繰返す。
【００８７】
コマンドセットが高レベルコマンドセットである場合、上述の読出プロセスは、特別メモリブロック読出コマンドとして実現される。ＮＤＩデバイスは、特別メモリブロックにアクセスするためにそのポインタをどこにセットするかを知り、そのポインタをセットし、特別メモリブロックがどれくらい大きいかを知り、次に特別メモリブロックを送ることができる必要がある。このプロトコルは、どこに特別メモリ情報が記憶されているか、および特別メモリ情報のブロックサイズがどれくらい大きいか、どこに特別メモリデータを記憶するかを常に把握するなどのこれらの作業を、ＮＤＩデバイスから取除く。これらの作業は、メモリポインタと読書きできるメモリとをセットするように低レベルの命令をつなげる代わりに、バスコントローラによって行なう。
【００８８】
上述のように、この発明のＮＤＩデバイスは、固定された低レベルかつ低オーバーヘッドの命令セットを有するプロトコルとともに作動し、このプロトコルは高性能なセンサおよびアクチュエータとともに使用されると、ネットワークバス上の実際のデータレートを向上する。センサおよびアクチュエータをネットワークするためのネットワーク・トラフィックは、通常のコンピュータネットワーク・トラフィックとは異なる。コンピュータネットワークは、１つのコンピュータから別のコンピュータへ大きなデータファイルまたは
メッセージを伝送する必要がある。結果として、それらは、堅牢かつエラーのないデータ伝送を保証するため、メッセージに関連づけられるチェックサムおよびブロックサイズを有する。これらコンピュータネットワークプロトコルに関連づけられる、これらのチェックサムおよびブロックサイズ、またはその他のオーバーヘッドは、オーバーヘッドのサイズが合計のメッセージサイズと比較して小さいため、問題にはならない。センサおよびアクチュエータのネットワークトラフィックが異なるのは、多くの場合、ネットワーク上のメッセージの大半が、１６ビットのデータのみを備える非常に小型のメッセージであるためである。ブロックサイズ、チェックサムまたはその他の不必要なオーバーヘッドが小型の１６ビットデータメッセージに付加されると、チェックサム、ブロックサイズおよびその他のオーバーヘッドは、実際の１６ビットデータメッセージよりも多くのビットを有し得る。このことによって、事実上、センサおよびアクチュエータ・ネットワークバスの帯域幅が低減する。この発明のＮＤＩデバイスは、チェックサムおよびブロックサイズなど不必要なオーバーヘッドを短い１６ビットのメッセージに付加しないメッセージプロトコルを使用することによって、この問題を解決する。これら短い１６ビットのメッセージに付加される唯一のオーバーヘッドは、メッセージの開始を示す同期パターン、フラグビットおよびパリティビットである。パリティビットは、１６ビットのメッセージにエラーがないかをチェックするために使用される。フラグビットは、送信するＮＤＩデバイスまたは関連づけられるデータチャネルにエラー状況が存在するかどうかを示す。
【００８９】
この発明のプロトコルは、通常、マンチェスタ符号化されたフォーマットで伝送されるが、他のＵＡＲＴシステムと通信するため、必要であれば、汎用非同期送受信器（ＵＡＲＴ）フォーマットプロトコルで実現され得る。たとえば、一実施例では、プロトコルは、Bi-Phase Sensor and System（BiSenSys）と称する、ＲＳ−４８５ベースの、マルチドロップ、マンチェスタ符号化されたプロトコルを使用する。BiSenSysは、１８ビットの高速かつ高効率のプロトコルで、マンチェスタ符号化を使用するデジタルバス構造上の遠隔デバイスとサブシステムとを接続するために使用する。マンチェスタ符号化を使用する別のプロトコルの例は、ＭＩＬ−ＳＴＤ−１５５３である。具体的には、データの各ビットは、１つの検出可能な遷移によって検出可能である（すなわち、「０」はlowからhighと規定され、「１」はhighからlowと規定される）。さらに、各メッセージは、同期パターン、メッセージ本体およびパリティフラグからなる。BiSenSys伝送プロトコルは、同期モードまたは非同期モードで作動可能であり、同期モードでは、１Ｈｚ〜１０ＭＨｚまでのどのデータレートでも作動するように実現可能であり、または非同期モードでは、１．２５メガバイト毎秒、２．５メガバイト毎秒、５．０メガバイト毎秒、および１０．０メガバイト毎秒で作動するように実現可能である。さらにこの発明のプロトコルは、ＵＡＲＴベースのプロトコルで実現され得る。このプロトコルは、１．０メガビット毎秒のデータレートで作動するように設計され、９ビットメッセージフォーマットおよび非ゼロ回帰（non-return-to-zero）ビット符号化を使用する。
【００９０】
ネットワークバスにわたって伝送されるデータフレームには、少なくとも３種類があり、データフレームは、BiSenSysプロトコルとＵＡＲＴプロトコルとの間で異なる。BiSenSysデータフレームには３種類ある。第１の種類は、コマンドフレームである。コマンドフレームは、コマンド同期パターン、これに続くマンチェスタ符号化された１０のアドレスビット、これに続くマンチェスタ符号化された７つのコマンドオペコードビット、およびマンチェスタ符号化された１つのパリティビットからなる。コマンド同期は、バス上の、１と２分の１バスビット期間のhighの状態と１と２分の１ビット期間lowの状態とからなる。
【００９１】
第２の種類のフレームは引数フレームである。引数フレームは、データ同期パターンで始まり、これにマンチェスタ符号化された１６の引数ビット、マンチェスタ符号化された１つのフラグビット、最後にマンチェスタ符号化された１つのパリティビットが続く。デ
ータ同期パターンは、１と２分の１ビット期間のlowと、それに続く１と２分の１ビット期間のhighとからなる。BiSenSysフレームの最後の種類は、データフレームである。データフレームは、データ同期パターンで始まり、これに１６ビットのマンチェスタ符号化されたデータが続き、マンチェスタ符号化された１つのフラットビット、マンチェスタ符号化された１つのパリティビットが続く。引数フレームとデータフレームとの唯一の違いは、引数フレームがバスコントローラによって伝送され、データフレームはネットワーク・デバイスによって伝送される点である。引数は、あるコマンドに続いてバスコントローラによってのみ伝送される。引数が続くことを必要とするコマンドは、ＲＨＡＭＩＳ／BiSenSysプロトコルで規定される。バスクロックがBiSenSys同期モードで使用される場合、これはマンチェスタ符号化されたビットストリームに直交して伝送される。
【００９２】
ＵＡＲＴプロトコルの場合、メッセージフォーマットは、３つ以上の１１ビットフレームを含む。各メッセージは、発行されるコマンドに応じて、メッセージにつき２つの付加的なオプションのフレームを備えた、メッセージにつき３つの必要なフレームを有する。すべてのフレームの第１のビットは、スタートビット（０にセットされる）である。すべてのフレームの最後のビットは、ストップビット（１にセットされる）である。メッセージの第１のフレームは、ＵＡＲＴプロトコルのためのアドレスフレームである。これは、スタートビット、８ビットのアドレス領域、１にセットされるアドレスビット、およびストップビットの形である。ＵＡＲＴメッセージの第２のフレームは、コマンドフレームである。コマンドフレームは、スタートビット、７ビットのコマンド領域、未使用ビット、０にセットされるアドレスビットおよびストップビットからなる。引数フレームがＵＡＲＴメッセージに属する場合、それらはコマンドフレームに続く。それらは、スタートビット、それに続く８つの引数ビット、０にセットされるアドレスビット、ストップビットからなる。ＵＡＲＴメッセージの最後のフレームは、チェックサムフレームである。これは、スタートビット、アドレス、コマンドおよび桁上がりを伴わないデータビットの、２を法とした合計である８ビットチェックサム、０にセットされるアドレスビットおよびストップビットからなる。
【００９３】
同期モード、非同期モードのどちらでも作動しかつ異なる伝送プロトコルで作動する低レベル命令セットを有するプロトコルを提供することに加え、この発明は、各データチャネルに一意のアドレスを割当てるための方法も提供する。図１に示されるように、典型的なネットワークシステム３０には、複数の異なるＮＤＩデバイスに接続される多数のデータチャネルがあり、それらのすべてがバスコントローラと通信するために共通のネットワークバスを使用する。さらに、ネットワーク・デバイスの各々は、ＮＤＩデバイスによって命令され得るいくつかのデータチャネルまたはいくつかの作業を有し得る。この発明のプロトコルは、ネットワーク・デバイスの各データチャネルに３つの種類のアドレスを与える。具体的には、各ネットワーク・デバイス上の各データチャネルには、個々の論理アドレス、グローバルアドレス、および設定されている場合、グループマスクを割当てることが可能である。
【００９４】
論理アドレスは、ネットワーク・デバイス上の１つのデータチャネルによって、またはネットワーク・デバイスの１つの制御可能な作業によって認識される、アドレスである。一方グローバルアドレスは、すべてのネットワーク・デバイスのすべてのデータチャネルによって認識され、グループアドレスは、すべてのネットワーク・デバイスのすべてのデータチャネルのサブセットによって認識される。データチャネルにはグループアドレスは割当てられない。それらにはグループマスクが割当てられる。グループマスク内の各ビットはグループアドレスに対応する。このようにして、１つの１６ビットマスクを使用して、データチャネルを１６のグループに割当てることができる。たとえば、グループマスクの第１および第３のビットが１にセットされている場合、データチャネルは、それ自身がグループ１および３に属すると認識する。それは、１または３のいずれかのグループアド
レスを有するコマンドメッセージに応答する。これら３つの異なるアドレスは、それらによって、コントローラが、同じネットワーク・デバイス内の、または複数のネットワーク・デバイス内の、１つのネットワーク・デバイスの個々のデータチャネルまたはデータチャネルのグループと通信することが可能となり、またはすべてのネットワーク・デバイスのすべてのデータチャネルと通信することが可能となるため重要である。これらアドレスの各々は後に詳しく説明する。
【００９５】
論理アドレスおよびグループアドレスの判断は、どのような方法を選択して行なってもよい。好ましい方法は、２０００年１２月８日出願の「共通のバスを介して遠隔デバイスをデジタル方式で制御するためのネットワークコントローラ（NETWORK CONTROLLER FOR DIGITALLY CONTROLLING REMOTE DEVICES VIA A COMMON BUS）」と題される、米国仮特許出願番号第６０／２５４，１３７号に記載される。この方法は、各ネットワーク・デバイスに関連づけられる汎用一意識別子（Universal Unique Identifier；ＵＵＩＤ）を使用する。ＵＵＩＤコードは、すべてのネットワーク・デバイスに対して一意である８０ビットのコードであり、デバイスが製造された場所および日付に基づく。
【００９６】
図３Ａを参照すると、通常、この発明のネットワーク・デバイスのためのＵＵＩＤは、ＮＤＩデバイスの記憶装置６６に記憶される。論理アドレスおよびグループ後の判断中、コントローラは、この発明のＮＤＩデバイスにさまざまなコマンドを送り、それらにそれらのそれぞれの記憶装置にアクセスし、ＵＵＩＤの個々のビットを分析し、或るビットが１か０であるかに基づいて応答するかまたは沈黙したままでいるように命令する。このことによって、バスコントローラは、一度に１つのネットワーク・デバイスずつ、すべてのネットワーク・デバイスのＵＵＩＤを発見することができる。ネットワーク・デバイスのＵＵＩＤを見つけるとその直後に、バスコントローラは、そのネットワーク・デバイス上のすべてのデータチャネルに論理アドレスおよびグループマスクを割当てる。
【００９７】
図８は、バスコントローラの制御の下、ＮＤＩデバイスを使用して、ネットワーク・デバイスがそれ自身をバスコントローラに対して一意に識別するために行なうステップのフローチャートである。デバイス・インベントリ・セッションを開始するため、ＮＤＩデバイスは、デバイス・インベントリ可能化（Device Inventory Enable）コマンドを使用して可能化される。これによって、ＮＤＩはデバイス・インベントリ・モードに入る（ステップ７００を参照）。アドレス「０」（すべてのデバイスのために確保されたグローバルアドレス）がアドレス領域で指定されると、バス上のすべてのネットワーク・デバイスは、それ自身をデバイス・インベントリ・モードにする。現在割当てられている論理アドレスがアドレス領域で指定されると、そのネットワーク・デバイスは、それ自身をデバイス・インベントリ・モードにする。現在割当てられているグループアドレスがアドレス領域で指定されると、そのグループに属するすべてのネットワーク・デバイスは、それら自身をデバイス・インベントリ・モードにする。
【００９８】
ＵＵＩＤワードサーチ（word search）中、デバイス・インベントリ・コマンド内のさまざまな関数コードが使用される。新しいＵＵＩＤワードサーチ関数コードを備えるデバイス・インベントリ・コマンドは、すべてのデバイス・インベントリ・セッション可能化装置をＵＵＩＤワードサーチモードにセットする（ステップ７０５を参照）。バス上のネットワーク・デバイスは、ＵＵＩＤワードサーチモードでなければ、ＵＵＩＤワードサーチで競合しない。ワードサーチモードに入るようにと命令された直後、ＮＤＩデバイスは、ＵＵＩＤの最下位ビットを第１のレジスタへロードし、かつ「１」を第２のレジスタにロードすることによって、自動的に進行する（ステップ７１０を参照）。ＮＤＩデバイスがＵＵＩＤワードサーチモードである場合、それらは、２つのＵＵＩＤビット競合関数コードに応答する。
【００９９】
マスターコントローラは、ＵＵＩＤビット競合(Bit Competition）、ノー・ドロップアウト（No Dropout）関数コードを備えるデバイス・インベントリ・コマンドを発行する。すべてのＮＤＩデバイスは、このコマンドに基づいて判断を行なう（ステップ７２０を参照）。ＮＤＩデバイスは、ステップ７３０に進み、レジスタ１内のそのビットに基づいて判断を行なう。このビットが「１」であれば（ステップ７３０を参照）、ネットワーク・デバイスは沈黙したままである。このビットが「０」である場合、ネットワーク・デバイスはＵＵＩＤパルスを伝送する（ステップ７４０を参照）。次に、ネットワーク・デバイスは、評価済みのビット（「１」または「０」のどちらか）をビットレジスタ２に移動し、その次のＵＵＩＤビットにアクセスし、それをビットレジスタ１にロードする（ステップ７６０を参照）。
【０１００】
マスターコントローラは、バス上で伝送されるＵＵＩＤパルスを聞く。マスターコントローラがＵＵＩＤパルスを聞いた場合、少なくとも１つのネットワーク・デバイスがその現在のＵＵＩＤビットに「０」を有することがわかる。マスターコントローラが少なくとも１つのＵＵＩＤパルスを聞いた場合、それが発行する次のコマンドは、ＵＵＩＤビット競合、１のドロップアウト（1's Dropout）関数コードを備えるデバイス・インベントリ・コマンドである。ＮＤＩデバイスは、そのコマンドを解釈し、判断を行なわなければならない（ステップ７２０を参照）。ネットワーク・デバイスがこのコマンドおよびコードを聞いた場合、レジスタ２のそのＵＵＩＤビットを見る（ステップ７８０を参照）。このビットが「１」である場合、ネットワーク・デバイスは、現在のＵＵＩＤビット競合モードを出て、ＵＵＩＤワードサーチでの競合を終了する。レジスタ２のビットが「０」である場合、ネットワーク・デバイスは、レジスタ１のビットを見る（ステップ７３０を参照）。それが「０」である場合、ネットワーク・デバイスはＵＵＩＤパルスを伝送する（ステップ７４０を参照）。このビットが「１」である場合、ネットワーク・デバイスは沈黙したままである。次に、ネットワーク・デバイスは、レジスタ１のビットをビットレジスタ２に移動し、その次のＵＵＩＤビットにアクセスし、それをビットレジスタ１にロードする（ステップ７８０を参照）。
【０１０１】
バス上でマスタコントローラにどのようなＵＵＩＤパルスも聞こえない場合、マスタコントローラは、依然としてＵＵＩＤワードサーチモードにあるすべてのネットワークデバイスがビットレジスタ２内に「１」を有することを認識する。これに応答して、マスタコントローラが発行する次のコマンドは、ＵＵＩＤ Bit Competition、No Dropout 関数コードを伴った Device Inventory コマンドである。ネットワークデバイスがこのコマンドを受取ると、そのレジスタ内に何があるかに関係なく、競合したままとなる。このコマンドに応答して、競合するすべてのデバイスは、ビットレジスタ１を見る（ステップ７３０参照）。それが「０」であると、ネットワークデバイスはＵＵＩＤパルスを送信する（ステップ７４０参照）。それが「１」であると、ネットワークデバイスは使用されないままとなる。ネットワークデバイスは、レジスタ１内のビットをビットレジスタ２内に移し、その次のＵＵＩＤビットにアクセスして、それをビットレジスタ１内にロードする（ステップ７６０参照）。
【０１０２】
このセクションで説明されるＵＵＩＤ Bit Competition は、８０のＵＵＩＤビットのすべてに対して繰返される。マスタコントローラは、全部合わせて８１のＵＵＩＤ Bit Competition 関数コードを発行しなければならない（ステップ７５０参照）。マスタコントローラは、バス上の最後のネットワークデバイスが、勝った最終ビットを誰が有したかを決定できるように、８１番目のＵＵＩＤ Bit Competition 関数コードを発行しなければならない。
【０１０３】
ＵＵＩＤ Bit Competition 関数コードを伴った Device Inventory コマンドが、全部合わせて８１回にわたって発行された後に、ＵＵＩＤワードサーチモードで残されるのは
、１つのネットワークデバイスのみである。このネットワークデバイスが勝者である（ステップ７７０参照）。このネットワークデバイスは、この時点でバスコントローラに一意に識別されており、特定の記憶場所の内容で応答する（ステップ７８０参照）。特定の記憶場所の上位のバイトはプロトコルの改訂数を保持し、下位のバイトはネットワークデバイス上のデータチャネル数である。勝ったネットワークデバイスおよびバスコントローラは、このネットワークデバイスが、全８１ビットの競合に勝ったことによって勝利したことを認識している。
【０１０４】
勝ったデバイスが８１番目のＵＵＩＤ Bit Competition 関数コードを受取ると、このデバイスは、このデバイスがそのメモリ内に記憶したプロトコルのバージョン数およびチャネル数を含むバイフェイズ準拠データフィールドで応答する（ステップ７８０参照）。バスコントローラは、勝ったデバイスの論理アドレスチャネル割当を決定するために、この情報を用いることができる。勝ったネットワークデバイスは、その論理アドレスおよびグループマスクの記憶場所を保護しない（ステップ７９０参照）。バスコントローラは、すぐにひき続いて、論理アドレスおよびグループマスクを割当てる（ステップ８００参照）。データチャネルが複数のチャネルを含む場合、マスタコントローラは、各チャネルに論理アドレスとグループマスクとを割当てる（ステップ８１０参照）。論理アドレスおよびグループマスクが割当てられた後に、ネットワークデバイスは、デバイスインベントリモードを終了する。バスコントローラは、すべてのネットワークデバイスが発見され、かつ、論理アドレスおよびグループマスクが各チャネルに割当てられるまで、ＵＵＩＤワードサーチを繰返す。バスコントローラは、バス内のＵＵＩＤが、仮に発見されるとしてすべて１’ｓである場合に、全デバイスを発見したことになると認識する。すべて１のＵＵＩＤを有するネットワークデバイスは存在しない。
【０１０５】
上述のように、各ネットワークデバイスに対する各チャネルには、データチャネルを一意に識別する論理アドレスが供給される。さらに、多数のデータチャネルをアドレス指定するグループアドレスと、全ネットワークデバイスの全チャネルをアドレス指定するグローバルアドレスとが存在する。グローバルアドレスは、グローバルデータおよびコマンドを交換するために用いられる。グループアドレスは、ネットワークデバイスの複数のデータチャネルによって認識されるアドレスである。グループアドレスにより、１つ以上のデータチャネルは、同じコマンドに同時に応答する。１つのデータチャネルのみをグループアドレスに割当てることができる。グループアドレスと関連するのが、アドレスデコーダ１００内に記憶されるグループマスクである。グループマスクは、１６ビットワードであり、１にセットされた各ビットは、データチャネルが属するグループを示す。
【０１０６】
一実施例における一例として、グローバルアドレスには００００ｈｅｘが割当てられる。この実施例において、アドレス００００ｈｅｘが送信されると、ＮＤＩデバイスのすべてがこのコマンドに従う。これは、一般に、システムのリセットまたはシステムのテストのために用いられる。さらに、一実施例において、グループアドレスは、０００１ｈｅｘから０００ｆｈｅｘの範囲で選択される。この実施例において、この範囲のアドレスがＮＤＩデバイスによって受取られると、それは、グループアドレスと、アドレスデコーダレジスタ１００内に記憶されたグループマスクとを比較する。グループアドレスに対応するグループマスク内のビットがセットされると、この発明のＮＤＩデバイスデータチャネルは、そのグループアドレスに関連するコマンドを解釈して、それに従う。たとえば、デバイスインベントリレジスタ内に記憶されたグループマスクが１０００００００１１００ｂｉｎである場合、ＮＤＩデバイスは、グループアドレス０００ｆｈｅｘ、０００３ｈｅｘ、および０００２ｈｅｘに属する。
【０１０７】
グループアドレススキームは、さまざまなサンプル速度でセンサまたはアクチュエータのグループに対して、時間で決定されるトリガをユーザが設定できるように設計される。
表１は、異なるサンプル速度を有するセンサのグループと、それらのグループ割当とを示し、表２は、デバイスをポーリングするためのシーケンスを示す。これらの表から分かるように、データチャネルは、それらが同時に、かつ異なったサンプル速度でトリガされ得るように、ともにグループ化され得る。
【０１０８】
【表１】
0004709800.tif 000002
【０１０９】
【表２】
0004709800.tif 000003
【０１１０】
グループアドレスに関しては、コントローラがグループアドレスを送信すると、この発明のアドレスデコーダ１００およびコマンドデコーダ１０２がコマンドのアドレス部分をデコードし、グループアドレスと、それ自体に記憶されたグループマスクとを比較する。ネットワークデバイスがグループアドレスの支配下にあることをグループマスクが示すと、そのグループアドレスと関連するコマンドを、適切なデータチャネルがネットワークデバイス上で実行する。
【０１１１】
上述のように、プロトコルとともに用いられるアドレス指定方法により、コントローラは、コマンドおよびデータをネットワークデバイスの１つまたはいくつかのいずれかに送信することができ、データの異なった形式は、ＢｉＳｅｎＳｙｓまたはＵＡＲＴのどちらが用いられているかに依存して、送信される。以下に、ネットワークバスを介して通信するために一般に用いられるコマンドを示す。上述のように、この発明のプロトコルは、コマンドおよび応答メッセージが、任意のコマンドを実行するのに必要とされるデータ量に依存して長さを変化させ得るように、効率を最大にするように設計される。このことを達成するために、この発明のプロトコルは、３レベルのユーティリティを設ける。これらのコマンドを表３に示す。
【０１１２】
【表３】
0004709800.tif 000004
【０１１３】
コマンドの１つのレベルはサービスコマンドである。サービスコマンドは、ネットワークハウスキーピング、ネットワーク・デバイス・インターフェイス状態、電源管理、較正、およびバスマスタ裁定のためのものである。これらのコマンドを、以下に簡潔に説明する。たとえば、 No Op コマンドは、この発明のＮＤＩデバイスに対し、アクションを取らないように命令する。No Op コマンドは一般に、バス制御を維持するために、演算の初期化において、またはマスタもしくはネットワークコントローラによって、用いられる（図１参照）。
【０１１４】
Built-In-Test（ＢＩＴ）、Ｅ−Calibration、およびＺ−Calibration コマンドは、ネットワークバスに接続されたＮＤＩデバイスにセルフテストを行なうために用いられる。たとえば、ＢＩＴコマンドは、ＮＤＩデバイスに対し、内部回路のチェックを行なうよう指令する。Ｅ−Calibration コマンドは、励起較正を強制して、センサネットワークデバイスからの入力が基準電圧に置換えられ、ＮＤＩデバイスが基準電圧におけるＮＤＩデバイスの較正値を測定するために読出しを行なう。同様に、Ｚ−Calibration コマンドは、ゼロ較正の測定を開始し、センサデータチャネルに対する入力が短絡される。ＮＤＩデバイスは、データチャネルのオフセット値を測定するために読出しを行なう。
【０１１５】
プロトコルは、２種類のリセットコマンド、すなわち、Reset およびSynchronize も含む。Reset コマンドは、ネットワークバスに接続された、この発明のネットワーク・デバイス・インターフェイスのすべてをパワーアップ状態に初期化する。この Reset コマンドは一般に、必要時にバスおよびネットワークデバイスをリセットして、ネットワークバスの制御を取り戻すために、コントローラによって用いられる。
【０１１６】
Synchronize コマンドは、いくつかのＮＤＩデバイス間で同期を確立して維持するために重要なコマンドである。特に、上述のように、Ａ／ＤおよびＤ／Ａコンバータの中には、コントローラによって供給される同期クロック信号とは異なる、連続したクロック信号を必要とするものがある。このクロック信号は、ローカル発振器からのクロック信号または同期バスクロック信号のいずれかを分割する分割器によって供給される。この分割されたクロック信号は、データを変換するために、コンバータによって用いられる。分割器はコンバータによって必要とされる適切なクロック周波数を供給するが、異なったＮＤＩデバイス上にこれらの異なった分割器が存在することにより、１つのＮＤＩデバイス上のコンバータが別のＮＤＩデバイス上のコンバータと同期されないことがあり得る。特に、コンバータのすべては同一周波数で作動できるが、分割器は位相がずれていることがあり得る。
【０１１７】
このことに照らして、Synchronize コマンドは、複数のＮＤＩデバイス間で、分割されたクロック信号を同期させる。特に、図９を参照すると、分割器が同期クロック信号を用いており、かつ、Synchronize コマンドが発行されると、ＮＤＩデバイスは、そのクロック分割器を制御して、クロック信号の生成をリセットし、再開する。ＮＤＩデバイスのすべてが、同期コマンドで用いられるグループアドレスまたはグローバルアドレスに従って、それらのクロック分割器の同じリセットおよび再開を同時に行なう。
【０１１８】
図１１ａ、図１１ｂ、および図１１ｃは、この発明のＮＤＩデバイスが、どのように取付けられて異なるデータチャネルを制御することができるかの代替的実施例を示す。データチャネルの中には、図１１Ａに示されるように、データを正確なタイミングで取得するために、ＮＤＩデバイスから変換信号のみを必要とするものがある。データチャネルの中には、図１１Ｂにおけるように、データを正確なタイミングで取得するために、同期された分割クロック信号および可能性として同期信号のみを必要とするものがある。データチャネルの中には、図１１Ｃにおけるように、正確なタイミングでデータを取得するために、変換信号および分割クロック信号の両方を必要とし得るものがある。
【０１１９】
図１１Ａ〜図１１Ｃを参照すると、Synchronize コマンドの使用が、異なるネットワークデバイス間のデータチャネルにおいてスイッチド・キャパシタ・フィルタ１２６、シグマ／デルタＡ／Ｄコンバータ１２０、またはデジタルフィルタ１１８等をすべて同期に作動させることに関して示される。クロック分割器がクロック信号を生成するためにローカル発振器を分割する場合に、この分割器は、同期コマンドのパリティビットの中央エッジにてリセットし、再開する。これにより、複数のＮＤＩデバイス間のクロック分割器は、
ともに同期する。しかしながら、ローカル発振器の周波数の変化により、クロックが経時的に位相を外れてドリフトすることを認識されたい。クロック分割器に対するソースがバスクロックである場合、クロック分割器は図９のタイミングに従って同期し、分割されたクロックは、その後同期して稼働し続ける。ＮＤＩデバイスの本実施例は、シグマ／デルタＡ／Ｄコンバータ１２０、デジタルフィルタ１１８、または他のデバイスのリセットまたは同期を行なうために、同期信号１１６、１２４、および１２８をそれに取付けられたデータチャネルに与える。
【０１２０】
表３を参照すると、プロトコルは、Wake および Sleep コマンドも含む。Sleep コマンドは、ネットワークデバイスの特定の部分をパワーダウンさせ、Wake コマンドは、それらをパワーアップする。さらに、プロトコルは、Read Status Register コマンドを含む。このコマンドは、ＮＤＩデバイスの状態レジスタの読出しを生じ、ネットワークデバイスが忙しいか否か、それが特定のコマンドを指示するか否か、コントローラがデータスタックに要求したデータが多すぎるかまたは少なすぎるか、メッセージ送信エラーが生じたか否か、メモリが保護されていないか否か等の情報を供給する。Control Pass コマンドは、ネットワークバス上に２つ以上のバスコントローラがある場合に、どのバスコントローラがバスの制御下にあるかを確立するために、マスタおよびネットワークコントローラによって用いられる。さらに、Baud Select コマンドは、非同期モードで作動している際にネットワークバス上のボーレートを変更するために、コントローラによって用いられ得る。
【０１２１】
Device Inventory Enable コマンドおよび Device Inventory コマンドは、各ネットワークデバイスの一意な識別、ならびに論理アドレスおよびグループマスクのデータチャネルへの割当に関して上で論じた。Device Inventory Enable コマンドは、一覧にされるべきネットワークデバイスのグループを選択する。Device Inventory コマンドは、ネットワークデバイスの識別ならびに論理アドレスおよびグループマスクの割当に関するほとんどのアクションを制御するために用いられる。このコマンドは、コマンドのアドレスフィールドが、さまざまなデバイスインベントリ関数をデバイス内に方向づけるために用いられる点において異なる。たとえば、これらの関数は、新規の Word Search 競合に入ること、ならびに No Dropout および 1's Dropout と関連するアクションを含む。さらに、このコマンドは、Word Search に勝ったデバイスのメモリから読出すこと、ならびに論理アドレスおよびグループマスクの書込みを含む。
【０１２２】
コマンドの第２の種類はデータタイプコマンドである。これらのコマンドは、時間で決定されるデータ取得および制御に適合される。ネットワーク効率は、ＮＤＩデバイスが、１つのデータポイントを直接動かすか、または規定された長さのブロック転送として２つ以上のデータポイントを動かすことを可能にすることによって最大にされる。たとえば、Trigger コマンドは、センサデータチャネルで入来するデータの測定を開始するか、または、アクチュエータのデータチャネルで物理量へのデータ変換を生じるために、コントローラによって用いられる。図３Ｂを参照すると、この発明のネットワーク・デバイス・インターフェイスのチャネルの各々は、入力データレジスタ８９および入力データスタック８８を含む。Trigger コマンドがＮＤＩデバイスによって受取られると、入力データレジスタの内容は、その入力データスタックの上部にプッシュされる。次に、それはデータチャネルから新規の読出しを行なう。読出しが終了すると、新規の読出し値は、入力データレジスタ内に存在する。バスコントローラは通常、入力データスタックからデータを読出す。
【０１２３】
入力データスタックからデータを取得することにより、バスコントローラに送られるセンサ読出し値の１つ以上のサンプルのレイテンシが生じるが、この配置により、Read-in-data-stack コマンドが、Trigger コマンドの直後にセンサデータチャネルに発行され得
る。Read in-data stack コマンドは、入力データスタックからデータを読出す。このことは、次いで、ネットワークバス帯域幅を最大限に用いることを可能にし、これは、センサデータチャネルが長い変換時間を有する場合に重要である。このことは、また、ユーザが書込まなければならないTrigger および Read コマンドの組を単純化する。なぜなら、入力データスタックから読出す前に、休止を含む必要がないからである。
【０１２４】
Read In-Data Register Word コマンドは、それがデータチャネルから利用可能になった直後に入力データレジスタからのデータの読出しを可能にする。バスコントローラは、データが有効になる前に、このレジスタから読出しを試みる必要がない。ネットワークデバイスがアクチュエータである場合、ＮＤＩデバイスは、出力データスタックの上部においてデータを値に変換することを指令し、次に、出力データスタックをポップする。ここに図示されていないＮＤＩデバイスの現時点の実施例において、ＮＤＩデバイスに出力データスタックは存在しない。データはバスコントローラからＮＤＩデバイスに送られて、データスタックを通過せずにＤ／Ａコンバータまたはデータチャネルに直接至る。しかしながら、ＮＤＩデバイスに接続されたＤ／Ａまたはデータチャネルは、１スタックワードのサイズの出力データスタックとして働く、データを保持するためのレジスタを有する。
【０１２５】
上で論じたように、Trigger および Read コマンドは、データチャネルの測定サイクルを開始して、前の測定結果をネットワークバス上で直ちに送信するために用いられる。このコマンドに応答して、この発明のＮＤＩデバイスは、同時に、入力データレジスタの内容を入力データスタック上にプッシュし、新規の測定サイクルを開始し、入力データスタックの上部の内容の送信を始める。入力データスタックへのプッシュは、コマンドのデータ同期パターンの送信前および送信中に生じる。このようにして、前の測定結果は、有効となって、ＮＤＩデバイスの送信機部分が送信のためにそれにアクセスする際に、データスタックに存在することになる。次に、新規の測定値が取られる間に、データサンプルがネットワークバスを介して送信される。
【０１２６】
読出しコマンドに関し、Read In-Data Register Word コマンドは、入力データレジスタから直接に読出しを開始する。ＮＤＩデバイスは、入力データレジスタの内容をネットワークバス上に配置する。Read In-Data Stack Word コマンドは、入力データスタックの上部からデータワードを読出すために用いられる。この場合、この発明のＮＤＩデバイスは、データスタックから最新のデータワードをネットワークバス上に出力することによって応答し、より古いデータがスタックの上部にシフトされる。
【０１２７】
図３Ｂに示されるように、この発明のＮＤＩデバイスの各チャネルと関連するデータスタックは、いくつかのレジスタを含む。入力データまたは出力データスタック上にいくつの有効なデータワードが存在するかを決定するために、Query In-Data/Out-Data Stack Depth コマンドが用いられる。この場合、この発明のＮＤＩデバイスは、そのスタック深さレジスタ内の有効データワード数を記憶する。このレジスタの値は、バスコントローラによって指令されると、ＮＤＩデバイスによってバスコントローラに送信される。
【０１２８】
Write Out-Data Stack Word コマンドは、この発明のＮＤＩデバイスに対し、データワードを出力データスタックの上部に書込ませる。さらに、Write Out-Data Stack Word/Acquire To In-Data Register コマンドは、さらに、ＮＤＩデバイスに対し、同時に、データチャネルからデータを取得させ、それを入力データレジスタ内に入れさせる。データチャネルへの出力信号が、データチャネルからＮＤＩへの出力に接続される場合は、このコマンドを、アクチュエータに送信されたデータをバスコントローラにエコーバックするために用いることができる。Write Out-Data Stack Word と同様に、Write Out-Data Stack
Block コマンドは、ＮＤＩデバイスに対し、複数のデータワードを出力データスタックに書込ませる。
【０１２９】
サービスおよびデータタイプのコマンドに加え、この発明のプロトコルは、メモリコマンドも含む。これらのコマンドは、それに対してデータの書込みまたは読出しが行われ得る、特定の規定された記憶場所または関数へのアクセスを可能にする。これにより、ランダムアクセスデータブロックは、オーバーヘッドをほとんど伴なわずに、システム間で効率よく転送され得る。それはまた、直接メモリアクセスおよび／または１つ以上のデータバッファブロックの移動も可能にする。
【０１３０】
たとえば、Set Memory Pointer コマンドは、ＮＤＩデバイス内にメモリアドレスポインタをセットする。Read Memory Word With Current Pointer コマンドは、メモリアドレスポインタによってポイントされたメモリから１つのワードを読出すために用いられる。Read Memory Word With Current Pointer は、メモリアドレスポインタの現在の値によってポイントされたメモリワードで開始するメモリからデータワードのブロックを読出すために用いられる。コマンドとともにＮＤＩデバイスに渡される引数は、ＮＤＩデバイスに対し、いくつのデータワードが読出されるべきであるかを教える。各メモリワードがＮＤＩデバイスによってバスコントローラに送信された後に、メモリポインタは、自動的に１ずつインクリメントされる。次に、次のメモリワードが送信される。このプロセスは、バスコントローラによってリクエストされた数のメモリワードが送信されるまで繰返される。
【０１３１】
この発明のプロトコルはまた、書込みメモリコマンドも含む。具体的に、Write Memory
Word With Current Pointer コマンドは、メモリ内に１ワードを書込む。ＮＤＩデバイスは、コマンドを伴う引数を、メモリアドレスポインタによって現時点でポイントされた場所でメモリに書込む。その一方で、Write Memory Block With Current Pointer コマンドは、データワードのブロックをメモリ内に書込む。この発明のＮＤＩデバイスは、コマンドを伴う引数を、メモリアドレスポインタによって現時点でポイントされた場所で始まるメモリ内に書込む。各ワードが書込まれると、メモリアドレスポインタは、１ずつインクリメントされる。このプロセスは、ワードのすべてがメモリ内に書込まれるまで繰返される。
【０１３２】
上述のコマンドと同様に、この発明のプロトコルは、コマンドとともにコントローラによって送信されるポインタを用いて、データのブロックおよびワードをメモリから読出し、メモリに書込むためのコマンドを含む。これらのコマンドは、上述のものと同様に作用するが、例外として、ポインタは、コマンドに続く引数として供給される。これらのコマンドは、Read Memory Word With Passed Pointer、Read Memory Block With Passed Pointer、Write Memory Word With Passed Pointer、および Write Memory Block With Passed Pointer である。
【０１３３】
上述のように、この発明のＮＤＩデバイスは、コントローラとさまざまなネットワークデバイスとの間でネットワークバスを介した、コマンドおよびデータのデジタル通信を供給する。図１０を参照すると、この発明のＮＤＩデバイスを実現するネットワーク化システムが、航空機１０において示される。この実施例では、重要な構造上のさまざまな場所を監視するために、ネットワークが用いられる。航空機には、翼付根、翼表面、尾翼付根、尾翼ケーブル、および着陸装置の歪み等の歪み１２、ならびに主翼端および尾翼端の加速度等の加速度１４を測定するためのネットワークデバイスが配置される。さらに、ネットワークは、音響疲労に対する重要な胴体圧に加え、レーダ、着陸装置、および着陸端部に対する重要な腐食箇所１８等のさまざまな重要な構造上の場所における圧力、ならびにエンジンの外枠の温度２０を監視するためのセンサ１６を含む。この実施例において、ネットワークデバイスのすべては共通バスに接続され、それにより、過剰な配線をなくす。さらに、データおよびコマンドは、デジタル式に送信されて、雑音による影響が低減され
る。
【０１３４】
加えて、ＮＤＩデバイスに対する好ましいプロトコルは、ＮＤＩデバイスの小型化を可能にする助けとなるように、ネットワークデータビットにマンチェスター符号化を用いる。非同期のシリアルデータを受信するあらゆるデバイスにおいては、それが、シリアルなデータストリームからデータシーケンスのタイミングを取得する能力を有していなければならないことを理解されるべきである。通常、シリアルな非同期データの受信機はローカル発振器を有しており、その受信機に動作をさせ、かつ、シリアルなデータからタイミング情報を取り戻させなければならない。タイミング情報が抽出されると、非同期受信機は、或る速度で、これらの速度、すなわち所与のこのローカル発振器の周波数から或る一定のプラスまたはマイナスの偏差で、シリアルなデータを受信することができる。シリアルなデータのマンチェスター符号化により、各ビットの中心において、ハイからローまたはローからハイへの遷移を生じる。これにより、シリアルなデータストリームからの必要なタイミング情報の抽出が容易となる。マンチェスター符号化されたシリアルなデータストリームからのタイミング情報の抽出が、非常に容易であるために、ローカル発振器に基づいた、期待されたデータ速度からの比較的大きな偏差を許容することができる。期待されたデータ速度からの比較的大きな偏差に対するこのような許容性により、各ＮＤＩ受信機は、精度の低いローカル発振器を用いてもマンチェスター符号化されたデータを受取ることができる。精度の低いローカル発振器は、極めて小さく形成することができる。適切なローカル発振器の本実施例は、僅か約１×１．５ミリメートルである。これにより、小型のＮＤＩデバイスを形成する助けとなる。
【０１３５】
上述の説明および関連する図面に示された教示の恩恵を受ける、この発明が属する当該技術の当業者は、この発明の多くの変更例および他の実施例を思いつくであろう。したがって、この発明が、開示された特定の実施例に限定されず、変更例および他の実施例が前掲の請求項の範囲内に含まれることを意図するものと理解されたい。特定の用語がこの明細書で用いられているが、それらは限定するためではなく、一般的な説明のためにのみ用いられる。
【図面の簡単な説明】
【０１３６】
【図１】図１は、この発明の一実施例による、ネットワークバスを介してコントローラと複数のデータチャネルとの間でコマンドおよびデータをデジタル方式で伝送するためのネットワークシステムのブロック図である。
【図２】この発明の一実施例による、ネットワークバスを介してコントローラと複数のデータチャネルとの間でコマンドおよびデータをデジタル方式で伝送するために行なわれる動作のブロック図である。
【図３Ａ】この発明の一実施例による、ネットワークバス上でデータチャネルとコントローラとの間でデジタル方式でコマンドおよびデータを通信するためのＮＤＩデバイスの一般的なブロック図である。
【図３Ｂ】この発明の一実施例による、ネットワークバス上でデータチャネルとコントローラとの間でデジタル方式でコマンドおよびデータを通信するためのＮＤＩデバイスの一般的なブロック図である。
【図４】この発明の一実施例による、遠隔デバイスからデータを検索するためにＮＤＩが行なう動作のブロック図であり、ＮＤＩデバイスが同時に複数の作業を行なう一方、同時にバスコントローラと通信する能力を示す。
【図５】この発明の一実施例による、コントローラから遠隔デバイスに送られたコマンドを、ＮＤＩに接続されるコンバータによって使用される特別なコマンドに変換して、コントローラが遠隔デバイスと通信できるようにするために行なわれる動作のブロック図である。
【図６】この発明の一実施例による、コントローラが同期モードまたは非同期モードのどちらで作動しているかを判断するために行なわれる動作のブロック図である。
【図７】この発明の一実施例による、コントローラがコマンドおよびデータを伝送しているビットレートを判断するために行なわれる動作のブロック図である。
【図８】この発明の一実施例による、バスコントローラが論理アドレスおよびグループアドレスをネットワーク・デバイスに割当てているときに、ＮＤＩによって行なわれる動作のブロック図である。
【図９】この発明の一実施例による、複数のＮＤＩデバイスを通じてネットワークに装着される複数のデータチャネルのフリーランニングブロックを同期させるために、ＮＤＩデバイスによってデータチャネルに与えられる内部フリーランニングクロックの同期を示すグラフである。
【図１０】航空機で実現される、この発明の一実施例による、電気的ネットワークシステムの概略図である。
【図１１Ａ】この発明の一実施例による、ＮＤＩデバイスからの変換信号を使用して正しいタイミングでデータを取得する逐次近似Ａ／Ｄへの、この発明のＮＤＩデバイスの接続のブロック図である。
【図１１Ｂ】この発明の一実施例による、正しいタイミングでデータを取得するため、同期された分割クロックを使用し、同期信号を使用する可能性もあるデジタルフィルタおよびデシメータならびにシグマ／デルタＡ／Ｄへの、この発明のＮＤＩデバイスの接続のブロック図である。
【図１１Ｃ】この発明の一実施例による、スイッチド・キャパシタ・フィルタを備える逐次近似Ａ／Ｄおよび信号調整への、この発明のＮＤＩデバイスの接続のブロック図であり、スイッチド・キャパシタ・フィルタは、正確なタイミングでデータを取得するために変換信号および分割されたクロック信号の両方を必要とする。
【図１】
0004709800.tif 000005
【図２】
0004709800.tif 000006
【図３Ａ】
0004709800.tif 000007
【図３Ｂ】
0004709800.tif 000008
【図４】
0004709800.tif 000009
【図５】
0004709800.tif 000010
【図６】
0004709800.tif 000011
【図７】
0004709800.tif 000012
【図８】
0004709800.tif 000013
【図９】
0004709800.tif 000014
【図１０】
0004709800.tif 000015
【図１１Ａ】
0004709800.tif 000016
【図１１Ｂ】
0004709800.tif 000017
【図１１Ｃ】
0004709800.tif 000018