(57)【特許請求の範囲】
【請求項１】
コントローラ・エリア・ネットワーク（「CAN」）シリアル通信プロトコルを用いて、バス（104）によって接続された複数のノード（101−103）間でデータを決定論的に転送するのに必要なメッセージの数を低減するための方法であって、
１）前記バス（104）を介して前記複数のノード（101−103）に、高い優先度を有する同期メッセージ（407）をブロードキャストするステップ（600）であって、前記同期メッセージ（407）が、複数の高い優先度のメッセージと少なくとも１つの低い優先度のメッセージとを送信するための十分な時間を含むメッセージを送信するための共通時間分割（TDn）を示す同期信号を含むステップと、
２）前記複数のノード間の調停を実行して（601）、前記複数のノードの１つから前記複数の高い優先度のメッセージの１つを送信するステップと、
３）前記複数のノードの前記１つが調停に勝ったのに応答して、前記複数のノードの前記１つから前記複数の高い優先度のメッセージの前記１つを送信するステップ（601）と、
４）前記高い優先度のメッセージのうちの少なくとも１つが送信されるべき状態にあるのに応答して、前記ステップ２）および３）を反復するステップ（601）と、
５）前記共通時間分割が残りの時間を有するか否かを決定するステップ（603）と、
６）前記共通時間分割が残りの時間を有することに応答して、前記少なくとも１つの低い優先度のメッセージに対して前記複数のノード間の調停を実行するステップ（604）と、
７）前記調停に勝った前記複数のノードの１つから、低い優先度のメッセージを送信するステップ（604）と、
８）低い優先度のメッセージが送信されるべき状態にあるか否かを決定するステップ（604）と、
９）低い優先度のメッセージが残っていることに応答して、前記ステップ５）〜８）を反復するステップ（604）と、
を備える方法。
【請求項２】
請求項１記載の方法であって、前記共通時間分割が残りの時間を有するか否かを決定する前記ステップが、前記共通時間分割（TDn）の完了と第２の時間分割（TDn−１）の開始とを示す同期信号を含む高い優先度の第２の同期メッセージ（411）をブロードキャストするステップ（600）を含む方法。
【請求項３】
請求項１記載の方法であって、前記第２の同期メッセージ（411）の受信に応答して、前記低い優先度のメッセージ（410）の送信を停止するステップ（603）を更に含む方法。
【請求項４】
請求項３記載の方法であって、後の共通時間分割の期間に送信するために、残りの前記低い優先度のメッセージの各々を発生した各々の前記ノード（101）において、残りの前記低い優先度のメッセージ（410）の各々を蓄積するステップを更に含む方法。
【請求項５】
請求項１記載の方法において、前記第１の同期信号の受信に応答して、前記複数のノードのうちの少なくとも１つにおいて前記複数の高い優先度のメッセージのうちの少なくとも１つを発生するステップ（602）を更に含む方法。
【請求項６】
請求項３記載の方法において、後の共通時間分割（TDn−１）の送信のために、前記複数のノードのうちの少なくとも１つにおけるメモリに前記複数の高い優先度のメッセージのうちの少なくとも１つを蓄積するステップを更に含む方法。
【請求項７】
請求項６記載の方法において、前記共通時間分割が残りの時間を有するか否かを決定する前記ステップが、高い優先度を有する第２の同期メッセージ（411）を前記バス（104）を介して前記複数のノード（101−103）へブロードキャストして、前記共通時間分割（TDn）の終了と第２の共通時間分割（TDn−１）の開始とを示すステップ（600）を含む方法。
【請求項８】
請求項７記載の方法において、前記第２の同期メッセージの受信に応答して前記ステップ２）〜９）を反復するステップを更に含む方法。
【請求項９】
請求項８記載の方法において、前記複数のノード（101−103）の前記メモリ（509）に蓄積された前記の少なくとも１つの高い優先度のメッセージ（412−413）の送信（601）の終了に応答して、前記低い優先度のメッセージ（414−415）のうちの少なくとも１つを送信するステップ（604）を更に含む方法。
【請求項１０】
請求項５記載の方法において、発生する前記ステップ（602）が、
前記ノード（101−103）のCANコントローラ（504）におけるノードで機器からのデータを受信するステップと、
前記データの受信に応答して、前記CANコントローラにより前記データをCANメッセージに挿入するステップと、
を含む方法。
【請求項１１】
請求項10記載の方法において、前記複数のノードのうちの少なくとも１つにおける機器が質量流量センサであり、前記データが物質の質量流量である方法。
【請求項１２】
請求項10記載の方法において、前記ノードのうちの１つにおける前記機器が圧力センサを含み、前記データが質量流量センサでの流体圧力である方法。
【請求項１３】
請求項10記載の方法において、前記複数のノードのうちの１つが流体の粘度を計算する機器を含む方法。
【請求項１４】
請求項１記載の方法において、前記第１の同期メッセージの受信に応答して、前記第１の同期メッセージに基づいて、各々の前記ノードにおけるオペレーティング・システムのクロックを設定するステップを更に含む方法。
【請求項１５】
請求項１記載の方法において、前記複数の高い優先度のメッセージが実時間メッセージを含む方法。
【請求項１６】
請求項１記載の方法において、前記複数の高い優先度のメッセージが非実時間メッセージを含む方法。
【請求項１７】
請求項１記載の方法において、マスタ・ノードにおいて前記第１の同期メッセージを発生するステップを更に含む方法。
【請求項１８】
コントローラ・エリア・ネットワーク（「CAN」）シリアル通信プロトコルを用いて、通信バス（104）によって接続された複数のノード（101−103）間で決定論的通信を行うのに必要なメッセージの数を低減するための装置（100）であって、
前記複数のノードの１つであって、高い優先度の同期メッセージ（407）を発生し、前記バスを介して前記同期メッセージ（407）を送信して共通時間分割（TDn）を開始させるCANコントローラを有するマスタ・ノード（103）であるノードと、
前記同期メッセージ（407）を受信するための、残りの前記ノードの各々における手段と、
バスの制御を調停し、前記同期メッセージの受信に応答して高い優先度のメッセージ（408,409）を送信するための、残りの前記ノードの各々における手段と、
前記高い優先度のメッセージの送信の終了に応答して、低い優先度のメッセージを送信する調停を行い、残りの前記ノードの各々における手段と、
を具備する装置。
【請求項１９】
請求項18記載の装置において、前記マスタ・ノードが、第２の同期メッセージを発生し且つ送信して、前記共通時間分割を終了させて第２の共通時間分割を開始する装置。
【請求項２０】
請求項18記載の装置において、前記ノード内で発生されるメッセージを、前記CANプロトコルに準拠するフォーマットに変換する、前記複数のノードの各々における手段を更に含む装置。
【請求項２１】
請求項20記載の装置において、変換する前記手段が、
前記バスとのインターフェースを行う物理的インターフェース手段と、
前記ノード内で発生されたメッセージを前記CANプロトコルに準拠するフォーマットへ変換するCANプロトコル手段と、
を備える装置。
【請求項２２】
請求項18記載の装置において、前記マスタ・ノードが、それぞれの前記共通時間分割を決定するためのタイミング手段を含む装置。
【請求項２３】
請求項18記載の装置において、それぞれの前記ノードが、データを含むCANメッセージを発生する手段を含む装置。
【発明の詳細な説明】
発明の分野
本発明は、一般的に、シリアル・バス通信システムの分野に関する。具体的には、本発明は、コントローラ・エリア・ネットワーク（「CAN」）プロトコルを用いるシリアル・バス通信システムの分野に関し、特に通信バス上のノード間およびノード内の機能ブロック間におけるリアル・タイム・データの決定論的通信（deterministic communication）を行うようにCANプロトコルを適合させる方法に関するものである。
課題の説明
データ・バス通信システムは、無数の用途に用いられている。一般にプロセス制御工業と呼ばれている工業プロセスの制御および操作は、複数のノード間においてデータ送信を必要とする用途の一例である。プロセス制御工業は、複数のセンサ、例えば、流量計および複数の制御エレメント、例えば、バルブ間でデータ通信を必要とする。センサおよび制御エレメントをここでは総称して計器または計測機器と呼ぶことにする。連続プロセスを監視し制御するために、典型的には、処理対称物質の或る種の特性を測定し、測定した特性からプロセスの状態または条件を推論し、ポンプ、コンベア・ベルトおよびバルブのような機器を制御するように動作する制御信号を発生し、指定された動作範囲内にプロセスを維持する。最終製品の品質、およびプロセス・プラントの安全性は、プロセスを適正に制御する度合いによって決定される。
プロセス制御プラントにおける計測機器には、中央制御システムに送信されるデータを生成するものがある。制御システムは、種々の計器からのデータを処理し、制御信号を制御エレメントに送信する。制御エレメントとしては、例えば、制御システムが生成する制御信号に応答して開閉するバルブが考えられる。所与のプロセス・プラントにおける計測機器および制御システムは全て、ある種の通信バスを通じて相互接続され、必要な測定データの処理および制御信号の送信を可能にしている。
データ・バス上には、異なる種類のデータが伝達される。「非リアル・タイム」データは、データがある期限までに受信されなくても、価値が低下しないデータである。非リアル・タイム・データの一例は、中央制御システムから圧力発信器に、当該圧力発信器の連番を要求する要求である。システムの適正な制御は、要求が発生された時点を正確に把握することには依存しない。「リアル・タイム」データは、具体的な期限を有し、その時までにデータを受信しなければならず、そうでなければデータは失われるか、あるいは無駄になる。リアル・タイム・データの一例は、質量流量計器から制御システムに送信される質量流量信号である。例えば、制御システムは、この質量流量信号を用いてバルブに制御信号を発生し、システムを通過する質量流量を目標値の0.5％以内に維持することができる。この場合、連続的で予測可能な質量流量データ・ストリームを制御システムに配信し、制御システムから制御バルブに配信することが重要である。
それぞれの計測機器によって測定される、プロセスの現ステータスは処理され、プロセス自体を調節するためにフィード・バックされるので、プロセス計測機器のデータのリアル・タイム性は維持しなければならない。とりわけこの理由のため、システム内の計測機器の各単体は、典型的に、制御システムに別個に接続され、その各測定値を示すリアル・タイム・データを制御システムに供給する。次いで、制御システムは、必要なタイミングを与えて調整を行い、計測機器の複数のセンサからの複数の信号を処理して、必要な制御信号を生成する。システムによっては、計測機器の各単体に制御システムに対する専用のハード・ワイヤ接続を備える場合もある。これによって、計測機器の各単体からのデータは、データのリアル・タイム性を保存するように、制御システムに確実に伝達される。しかしながら、このシステムは、ときとして数千もの計器を制御システムに接続するため、複雑で費用がかかるプロセス・プラント配線システムが必要となる。
場合によっては、計測機器の単体が、局部的な制御または制御システムへの送信の目的で、複数のデータ信号を発生することもある。例えば、コリオリ質量流量計は、タンク内に流れ込む流体の量を測定するために用いることができる。所定の質量の流体がタンクに流入した後、バルブをオフに切り替えることによって、タンクへの流体の流れを停止する。所定の質量に達したときを判定するために必要なデータには、流体の質量流量、およびタンクに流入した流体の全質量が含まれる。これらの値は双方共、コリオリ質量流量計によって供給される。質量流量値および全質量値をコリオリ質量流量計から制御システムに伝達してバルブ制御信号を発生するよりは、コリオリ質量流量計内部で局所的に質量流量および全質量データを処理し、バルブ制御信号を生成する方が望ましい。質量データに加えて、コリオリ流量計には、内部で処理される種々の非リアル・タイム・データ信号がある。これらの信号には、コンフィギュレーション・データやタグ情報に対する変更が含まれるが、これらに限定される訳ではない。これら非リアル・タイム信号は、リアル・タイム信号よりは優先度が低い。何故なら、それらの処理が遅れても、流量計またはタンク・バッチ制御の精度や処理能力の低下を来さないからである。単一の機器内部で種々のリアル・タイムおよび非リアル・タイム・データ信号の送信を調整するためには、時としてデータ・バスが必要となる場合もある。
プロセス・プラント全体にわたる企業規模の通信バスを検討するにしろ、あるいは単一の計測コンピュータ内の計器内バスを検討するにしろ、選択すべき通信プロトコルには、２つの主な形式がある。キャリア検知多元接続（「CSMA」）プロトコルでは、バス上の各ノードがトラフィックを検知し、メッセージを送る前にトラフィックがクリアされるのを待つ。２つのノードが同時にメッセージを送ろうとした場合、双方のノードは延期し、後の時点に再度送信しようとする。別の種類の通信プロトコルに、時分割多元接続（「TDMA」）という名称で知られているものがある。TDMA型プロトコルでは、バス上の各ノードには、タイム・スロットが割り当てられ、その中でメッセージの送受信を行う。典型的に、TDMAプロトコルは、とりわけ決定論的である。決定論的通信プロトコルとは、リアル・タイム・システムにおける行為（action）の確実なスケジュール管理機能（schedulability）を備えたもののことである。
コントローラ・エリア・ネットワーク（「CAN」）は、一般にCSMAの名称で知られているプロトコル群における１つのプロトコルである。CANプロトコルは、自動車の内部動作データ通信のための標準の１つとして自動車業界で採用されている。典型的に、車両中の様々な場所に複数のセンサを配置する。二線シリアル・バスを用いて、複数のセンサと一つまたは複数のマイクロプロセッサとの間で通信を行う。例えば、エンジン・ベイにおいてエンジン管理に必要なセンサや、各車輪付近においてアンチ・ロック・ブレーキに必要なセンサがあると考えられる。これらのセンサからの出力を二線バスを通じてマイクロプロセッサに伝達し、車両の適正な制御を判定するために用いる。CANは、特徴の中でもとりわけ、種々のセンサ間の調停を行い、それらの各信号間のコンフリクトを回避する手段を提供する。この調停は、信号の優先度を決定し、重要性の高い信号を重要性の低い信号よりも前に処理する方法を含む。これによって、マイクロプロセッサは、「ブレーキ適用」信号と「空調オン」信号とが同時に発生した場合、「ブレーキ適用」信号を「空調オン」信号よりも前に処理することができる。また、CANは、メッセージ・フォーマットを規定し、エラー・チェック方式を備え、伝達されるメッセージの健全性を確認する。しかしながら、CANは、リアル・タイム・メッセージのような、ある形式または種類のメッセージを規則的且つ決定論的に確実に伝達する手段を備えていない。
自動車産業によるCANプロトコルの採用によって、CANを基本とするシステムを実現するために特定的に設計されたマイクロプロセッサや周辺機器が容易に入手可能となった。それらの広い使用範囲および比較的低いコストのため、CANプロセッサは、通信バスの設計者にとっても魅力的な選択肢となっている。
決定論的にメッセージを送信するためにCANを使用するよう提案されたプロセスが存在する。こうしたプロセスの１つは、フォート・ローダーデール（アメリカ、フロリダ州）のIFACリアルタイム・プログラミングによって1995年11月６日に出版された、J.D.DecotignieおよびM.A.Peraldiによる「コントローラ・エリア・ネットワーク上の生産者−分配者−顧客のモデル」において提案されている。この提案において、集中的および非集中的アービタ・モデルが提案された。集中的アービタ・モデルにおいては、アービタは各所要のメッセージに対するデータの要求を送信する。これは実時間データの送信に要するメッセージの数を大幅に増加させるので、ネットワークにおける伝達を大きく遅延させ得る。非集中的モデルにおいては、ノードは共通の時間指示を持たなければならず、１周期における特定の時間においてネットワークを制御するための命令を含まなければならない。これでは、ネットワーク内の各ノードで多量の追加の命令を使用することが必要になり、別のノードを追加する柔軟性が提供されない。
調停、エラー・チェック、および明確なメッセージ・フォーマットのようなCSMA通信プロトコルの利点、およびTDMA型通信プロトコルによって得られる決定論（determinism）の利点を兼ね備えた通信バスに対する要望がある。即ち、設計者が比較的安価であるというCANプロトコルの利点、および決定論的通信環境におけるハードウエアの入手容易性という利点を利用可能とする、決定論的CANに基づくプロトコルに対する要望がある。
解決策の説明
本発明の決定論的シリアル・バス通信システムによって、先に確認した問題点、およびその他の問題点は解決され、そのうえ、本分野における技術的な発展も達成される。本発明は、標準的なCANプロセッサおよび関連するハードウエアを、リアル・タイム決定論的処理システムに用いるための方法および装置を提供する。安価なプロセッサ、メッセージ衝突の解決策、エラー処理、およびメッセージ定義を含むCANプロトコルの利点は、リアル・タイム・システムにおける動作の確実なスケジュール管理機能を備えた時間同期手法と組み合わされる。
概して言えば、本発明は、シリアル・バスを通じて複数のノードに伝達される同期信号を利用する。同期信号は、バス・システムに接続されているノードの各々に時分割の開始を定義する。本発明の一実施形態では、各ノードは、バスに取り付けられている１つ以上のセンサを表わす。例えば、化学処理プラントにおける計測機器の各単体は、シリアル・バス上のノードと考えることができる。本発明の別の実施形態では、各ノードは１つ以上の処理モジュールを表わす。例えば、コリオリ流量計の発信器は、あるノードにおける質量流量処理モジュールと別のノードにおける密度処理モジュールとを含む。双方のノードはバスに接続されている。本発明の第３実施形態では、ノードは、複数の機能ブロックを含むことも可能である。例えば、コリオリ流量計の発信器は、バッチ制御信号を生成するノードを含む。バッチ・ノードは、総合質量流量を決定する１つの機能ブロックと、総合質量流量に応答してバッチ制御信号を生成する別の機能ブロックとを含む。あるノード内部の機能ブロック間におけるノード内データ通信は、本発明のCANプロトコルと容易に調整されるように行われる。本発明のCANプロトコルは、標準的なCANプロトコルのTDMAに基づくプロトコルの決定論との混成を表わす。本発明の通信プロトコルを、ここでは決定論を備えたCAN（「CAN−Ｄ」）と呼ぶことにする。
本発明の一実施形態では、各時分割は、３つの期間から成る。第１セグメント即ち時分割期間では、同期信号（「sync信号」）が、バス上のノード全てに、新たな時分割の開始を通知する。また、この期間中に、リアル・タイム・データを発生するバス上の各ノードは、送信のために適切なデータを整列させる。第２セグメント即ち時分割期間では、リアル・タイム・データを発生するノードの各々はそのデータをバスに送信する。第３セグメント即ち時分割期間では、あらゆるノードが非リアル・タイム・データを要求し、バスを通じて送信することができる。その結果、いずれの時分割期間にでも、スケジュール自在にリアル・タイム・データがバスに送信される。本発明の確実なスケジュール管理機能、即ち、決定論は、連続リアル・タイム・プロセスを制御するために用いられるリアル・タイム・データが、既知の規則的な間隔でバス上を送信されることを意味する。
本発明の更に別の実施形態では、各sync信号が次の時分割を開始させ、直前の時分割を終了させる。リアル・タイム・データを生成するノードからのメッセージには、非リアル・タイム・データを生成するノードからのメッセージよりも高い優先度が与えられる。標準的なCAN衝突解決法が、バス上のメッセージ・トラフィックを調停するように動作する。時分割の長さおよびバス上のノード数は、各リアル・タイム・ノードが各時分割期間にメッセージを送信できるように選択される。リアル・タイム・メッセージの送信後の時分割期間に十分な時間が残っていない場合、非リアル・タイム・メッセージは、次の時分割期間に送信するために保持される。
本発明の更に別の実施形態では、各同期信号が次の時分割を開始させ、直前の時分割を終了させる。各ノードにおいて、ソフトウエア・ルータが、現時分割期間に、当該ノードのためにメッセージの発生を指示する。各ノードにおけるメッセージの発生は各ノードのそれぞれのソフトウエア・ルータからの指示に応答して行われる。リアル・タイム・メッセージは、１回の時分割期間に整列され、次の時分割の開始時に送信される。非リアル・タイム・メッセージは、現時分割期間に時間が許すときに送信される。次の同期信号によって、次の時分割が開始する。整列されたリアル・タイム・メッセージは、時分割の開始時に送信される。その後、ノードのソフトウエア・ルータは、次のメッセージ集合を発生するように指示する。
各時分割期間に、メッセージ調停、エラー・チェックおよびメッセージのフォーマット設定が、CANプロトコルにしたがって行われる。１回の時分割の終了時および次の時分割の開始時は、同期信号によって決定される。同期信号が発生した時点でバスがアイドル状態にあり、送信されているメッセージがないことを意味する場合、同期信号が発生したときに次の時分割が開始する。同期信号が発生した時点で、多部分メッセージ（multi−part message）がバス上を送信されている場合、同期信号は優先度が高いので、同期信号は１つ以上のCANパケットを「切断」することも可能である。新たな時分割の開始のために切断または終了させた信号は全て、その全体がバス上を正常に送信されるまで、後続の時分割において送信される。
本発明は、計測機器またはプラントの設計者が、実績があり安価なCANプロトコルおよびCANプロセッサを用いること、および決定論的シリアル通信バスを用いたリアル・タイム・データの処理のためにそれを行うことを可能にするものである。また、本発明は、標準的なCANプロセッサを用いて、計測機器のモジュール状設計も可能にする。本発明による計器の様々な処理モジュールは、CAN−Ｄプロトコルを利用して互いに通信し合う。また、本発明は、ノード内部の機能ブロック間におけるノード内通信を制御するためにも用いられる。
【図面の簡単な説明】
図１は、CANプロトコルを実施する通信バスのブロック図である。
図２は、本発明による通信システムにおけるバス・メッセージ活動を示すタイムライン（timeline）である。
図３は、本発明によるバス・メッセージ活動およびノード・メッセージ発生活動を示すタイムラインの一群である。
図４は、本発明の通信システムの更に別の実施形態を示すタイムラインである。
図５は、単一のノードを更に詳細に示す。
図６は、sync信号に対するメッセージの通信に関する処理ステップを示すフローチャートである。
詳細な説明
コントローラ・エリア・ネットワーク（CAN）プロトコルおよびネットワーク−−図１
図１は、ノード101〜103を含むネットワーク100を示す。ノード101〜103の各々は、二線バス104に接続されている。図１は、双方向に延びるバス104の一部分のみを示す。
ネットワーク100は、CANプロトコルを利用するノードのネットワークの典型である。自動車産業では、用途の一例として、ノード101がエンジン管理制御機器であり、ノード102がアンチ・ロック・ブレーキ・センサであり、ノード103がアンチ・ロック・ブレーキ制御機器であるという場合が挙げられる。各ノードは、CANコントローラを内蔵する。これは、マイクロプロセッサ内に埋め込まれるか、あるいは単体のコントローラである。CANコントローラを埋め込んで使用可能なマイクロプロセッサの一例は、モトローラMC68HC05マイクロプロセッサである。単体のCANコントローラの一例はジーメンス81C90/91のスタンドアロン・スルCANコントローラである。CANコントローラは、以下で更に詳しく論ずる、CANプロトコルの規則を実施する役割を担う。また、各ノードは、当該ノードとCANバスとの間の物理インターフェースを制御するCANトランシーバも内蔵する。最も一般的な物理インターフェース、および本発明の好適な実施形態において用いられるのは、ISO11898、"Road Vehicles−Interchange of digital information−Controller Area Network（CAN）for high speed communications"（路上車両−ディジタル情報の相互交換−高速通信用コントローラ・エリア・ネットワーク（CAN））に基づくものである。ISO11898規格に適合するCANトランシーバ・チップの一例は、フィリップス82C250  CANトランシーバである。
ノード101は、CANトランシーバ105を含む。CANトランシーバ105は、ノード内経路108を通じて、CANコントローラ106と通信する。CANコントローラは、ノード内経路109を通じて、マイクロプロセッサ107と通信する。マイクロプロセッサ107がバス104を通じてメッセージを送る毎に、メッセージは実際にはマイクロプロセッサ107からCANコントローラ106に送られる。CANコントローラ106は、エラー・チェック、バス調停およびメッセージ送信を、全てCANプロトコルにしたがって実行する役割を担っている。CANコントローラ106は、CANトランシーバ105を介して、物理的にバス104に接続されている。同様に、ノード102はCANトランシーバ110を含む。CANトランシーバ110は、ノード内経路113を通じて、CANコントローラ111と通信する。CANコントローラは、ノード内経路114を通じて、マイクロプロセッサ112と通信する。ノード103は、ノード101〜102と同様の機能性を含むが、ハードウエア構成は異なる。CANコントローラは、マイクロプロセッサ116内に埋め込まれている。マイクロプロセッサ116とCANトランシーバ115との間の通信は、ノード内経路117を通じて行われる。
アンチ・ロック・ブレーキ・システムの例をネットワーク100に適用すると、センサ（図示せず）は車輪速度をノード102のマイクロプロセッサ112に入力する。ノード102は、バス104を通じて、メッセージをノード101に送信するように動作する。このメッセージは、ノード101によって検知された車輪速度の測定値を含む。ノード101のマイクロプロセッサ107は、ノード102からのメッセージに応答して、適切な行為を計算する。ノード101は、ノード103が制御する車輪にブレーキをかけることを指示するメッセージを、バス104を通じてノード103に伝達するように動作する。ノード103のマイクロプロセッサ116は、ブレーキ制御部（図示せず）に信号を出力し、ブレーキをかける。バス104上のメッセージは全て、CANプロトコルにしたがって発生する。
CANコントローラ106,111および116は、バス104上のメッセージの送信を調整する。CANコントローラは、CANプロトコルのCANメッセージのフォーマット設定、エラー・チェック、およびメッセージ調停を実施する。バス104上を伝わる各メッセージは、以下に説明するCANメッセージ・フォーマットに準拠する。メッセージ調停が必要なのは、複数のノードがバス104に接続されているからである。CANは、異なるノードからのメッセージの優先順位付けを可能にする調停システムを提供する。例えば、エンジン管理ノード（図示せず）がバス104上にメッセージを送信しようとしたのと同時に、アンチ・ロック・ブレーキ・センサ素子であるノード102がバス104上にメッセージを送信しようとした場合、CANプロトコルはどちらのノードがバス104上で最初に「対話」（talk）を得るのかを自動的に決定する。この例では、ノード102からのアンチ・ロック・ブレーキに関するメッセージの方が、エンジン管理制御に関するメッセージよりも重要と見なされ、したがってCANプロトコルの下では、ノード102からのメッセージに高い優先度が与えられる。
CANプロトコル（バージョン1.2）は、各メッセージ内に、優先度コードとして11ビットの識別子フィールドを利用して、バス104に接続されている個々の機器を識別する。識別子フィールドは、ヘッダと同様であり、その後にデータ・フィールドが続く。当業者には理解されようが、CANプロトコルの11ビット識別子フィールドは、システム内の特定の機器を識別するために用いることができ、あるいは、特定のメッセージを識別するために用いることができる。全てのメッセージには優先度が付けられ、最も高い優先度を有するメッセージには、最も小さいディジタル値を有する識別子フィールドが割り当てられる。優先度が２番目に高いメッセージには、２番目に小さいディジタル値が割り当てられるというように、優先度が最も低いメッセージまで続く。優先度が最も低いメッセージには最も大きなディジタル値が割り当てられる。各ノード101〜103の送信ロジックは、それが送信するメッセージとバス・ロジック・レベルとの間で、ビット毎の比較を行う。偶然２つのノードがバス104上に同時に送信した場合、優先度が低い方のノードが、例えば論理１の劣性ビット（recessive bit）を、メッセージ識別子の前の方に有する。これは、優先度が高いメッセージの優勢ビット（dominant bit）、例えば、論理０によって上書きされる。これを検出すると、優先度が低いメッセージを送信しようとしているノードは送信を停止し、「聴取側」（listener）となる。これは、CAN優先度調停の基本概念である。各ノードには、そのノード・アドレスによって、異なる優先度が割り当てられている（即ち、優先順位が決定されている）。各メッセージの優先度は、識別子フィールド内にセットされている値によって決定される。識別子フィールドは、ノードが送る各メッセージの最初のフィールドである。CAN識別子フィールドおよびCAN調停は、一般に、当業者には周知である。CANプロトコル自体は、ロベルト・ボッシュ社によって、"CAN Specification Version 1.2"（CAN仕様書第1.2版）として定義されている。
CANコントローラおよびCANプロトコルの標準的な構成要素は、エラー・チェック機能である。CANのエラー・チェックは、典型的に、CANコントローラによって行われ、16ビット巡回冗長チェック（CRC）チェックサム検査である。
既存のCANシステムは、部分的に、前述のフォーマット設定、エラー・チェックおよびメッセージ調停のために、その実現は非常に柔軟性があり、しかも効率的である。しかしながら、注記したように、既存のCANシステムは、或る時間期間中に或るイベントまたはメッセージが発生することを保証する機能を備えていない。例えば、配管を通過する流体の質量流量を、１秒当たりのグラム単位で測定している場合、精度の高い測定値を生成するためには、周期的に或る情報を得る必要がある。既存のCANシステムは、周期的にバスを通じてある情報が送信されることを保証できない。即ち、既存のCANシステムは決定論的ではない。既存のCANシステムは、優先度の高いメッセージは、優先度の低いメッセージよりも前にバスを通じて送信されることを保証できるに過ぎない。
決定論を有するCAN−全体構成−−図２
図２は、本発明の動作を全体的に示すタイミング図200を含む。バス104に関する基本的なハードウエア構成は、本発明によるネットワークも既存のCANシステムによるネットワークも同一であるので、本発明に関しても図１も参照する。本発明の通信システムを、ここでは決定論を有するCAN（決定論CAN）（「CAN−Ｄ」）と呼ぶ。タイムライン200は、時間シーケンス中のバス104上のメッセージ活動を表わす。CAN−Ｄ通信システムは、syncパルス201〜204を送信し、等しい周期的時分割TDn,TDn+1およびTDn+2を生成することにより、システム時間を規定する。syncパルス201〜204は、それら自体が高い優先度を有するCANメッセージである。タイムライン200は、数個の時分割のみを示す。当業者は、これが全システム時間の部分的なセグメントのみを表わすことを認めよう。
時分割TDnは、バス104上にsyncパルス201を送信することによって開始する。時分割TDnが終了し、バス104上にsyncパルス202を送信することによって、時分割TDn+1が開始する。時分割TDn+1が終了すると、バス104上にsyncパルス203を送信することによって時分割TDn+2が開始する。syncパルスは周期的に発生し、等しい時分割を形成する。ネットワーク上のいずれのノードも、syncパルスを発生するように構成することができる。１つのノードが「マスタ・ノード」として指定される。これは、単にマスタ・ノードに、ネットワークにおいて用いられる最低のアドレス、例えば、ゼロを割り当てることによる。ゼロのノード・アドレスとは、マスタ・ノードからのメッセージが最高の優先度を有することを意味する。本発明の好適な実施形態では、syncパルスは、10.0ミリ秒毎にバス104上に送信され、１秒当たり100回の時分割が生じる。バス・システムの時分割が、システムの構成に応じて調整可能であることを当業者は認めよう。本発明の好適な実施形態の10.0ミリ秒の時分割は、単に或る特定のバス・システム構成に適するだけである。メッセージ205〜215の各々は、バス104を通じて送信されるメッセージである。各メッセージのフォーマットおよびビット指定は、図１および既存のCANシステムに関して先に論じた通りである。簡略化のために、図２におけるメッセージは、タイムライン100に沿った単一のボックスとして表わされ、ビット毎の一層詳細な図は示さないことにする。
CAN−Ｄシステムを更に説明するために、工業用プロセス制御の一例を示す。図１におけるノード101は、質量流量センサ（図示せず）を含む。ノード101は、各時分割期間に、質量流量センサを通過する流体の１秒当たりのグラム単位での現質量流量を含むメッセージを生成するように構成されている。ノードＡが生成するメッセージは、リアル・タイム・メッセージである。メッセージ205は、時分割TDnの期間にノード101によって送信され、メッセージ209は時分割TDn+1の期間にノード101によって送信され、メッセージ213は時分割TDn+2の期間にノード101によって送信される。ノード102は圧力センサを含む。ノード102は、各時分割期間に、１平方インチ当たりのポンドという単位で、質量流量センサ間の流体圧力の現在の低下を含むメッセージを生成するように構成されている。ノード102によって生成されるメッセージは、リアル・タイム・メッセージである。メッセージ206は時分割TDnの期間にノード102によって送信され、メッセージ210は時分割TDn+1の期間にノード102によって送信され、メッセージ214は時分割TDn+2の期間にノード102によって送信される。周期的な時分割の長さ、ノードの総数、リアル・タイム・ノードの数、および各メッセージの長さは、各時分割期間に、必要な通信が行われる十分な時間が確保できるように、システム設計によって制御される。
各時分割期間に、ノード101からの質量流量メッセージおよびノード102からの圧力低下メッセージは、ノード103によって読み取られてマイクロプロセッサ116によって処理される。マイクロプロセッサ116は、ノード101〜102からのデータを公知の方法で組み合わせ、測定された流体の粘度を表わす値を生成する。CAN−Ｄの決定論的特性によって、同時またはほぼ同時に発生した質量流量データおよび圧力データを用いて、マイクロプロセッサ116が粘度を計算することが保証される。時分割の長さが10.0ミリ秒である実施形態の場合、質量流量データおよび圧力データが互いの10.0ミリ秒以内に発生されたことがわかる。
マイクロプロセッサ116が生成した粘度データは、数種類の異なる方法のいずれかで用いることができる。例えば、粘度データを表示装置（図示せず）上に提示し、ユーザが視認することが可能である。あるいは、粘度データをバス104を通じて、バス104上の他のノードに送信することも可能である。
非リアル・タイム・メッセージは、これらが得られかつ優先度調停がその送信を許可するときにはいつでも、バス104上を送信される。メッセージ207,208,211,212および215は、バス104上を送信される追加のメッセージである。これらのメッセージは、リアル・タイムまたは非リアル・タイム・メッセージである。
非リアル・タイム・メッセージは、リアル・タイム・メッセージと比較して、必ずしも優先度が低い訳ではない。前述の例を用いると、追加のノード（図示せず）には、レベル警報を生成するレベル・センサが含まれる。レベル・センサは、粘度測定の対象である流体が流入するタンクに取り付けられている。流体がタンク内のあるレベルに達した場合、レベル・センサはレベル・アラームを生成し、これがメッセージとしてバス104を通じて送信される。レベル・アラーム・メッセージはリアル・タイム・メッセージではないが、レベル・アラームに応答し損ねると、タンクを溢れさせかねないので、比較的高い優先度が割り当てられている。
図２に関して説明したCAN−Ｄバス通信システムは、CANプロトコルおよび図１に関して説明したメッセージのフォーマット設定、優先度調停、およびエラー・チェックのメッセージを利用する。加えて、CAN−Ｄは、市販のCANコントローラおよびトランシーバ・チップを利用する。CAN−Ｄにおいてシステム時間を形成するために用いられるsyncメッセージは、標準的なCANプロトコルにTDMA型決定論を組み込む。したがって、CAN−Ｄは、リアル・タイム・プロセス制御の用途または、リアル・タイム・データの送信を必要とするその他のあらゆる用途に特に適している。
ノード101が質量流量計であり、ノード102が圧力変換器である前述の例は、プロセス・プラントにおける別個の計器間の通信バス104に適用したCAN−Ｄシステムの一例である。CAN−Ｄシステムの同じ原理が、あらゆる形式の２つのノード間での通信にも適用可能であることを、当業者は認めよう。
CAN−Ｄノードの活動−−図３
図３は、ノード101〜102内におけるメッセージ発生活動を含む本発明の動作を概略的に示す、一群のタイミング図200,300および301である。タイムライン200は、図２のタイムライン200と同一であり、バス104上でのバス活動（CANメッセージ）を示す。タイムライン300および301は、それぞれ、各時分割期間におけるノード101〜102内部の活動を示す。タイムライン200に沿った各ボックスは、バス104上のCANメッセージを示すが、タイムライン300および301に沿った各三角形は、それぞれ、ノード101〜102内におけるメッセージ・コンテンツの発生を示す。図３は、ノード内におけるメッセージ情報の発生とこれらメッセージのバス104上での送信との間のタイミング関係を示す。
タイムライン300は、図１のノード101内の活動を表わす。同様に、タイムライン301は、図１のノード102内の活動を表わす。CAN−Ｄシステムの動作全体を説明する目的のためには、各ノード内部で行われる処理を説明または理解することは必要でない。標準的なCANフォーマット設定および制御ロジックを各ノードにおいて用い、バス104上に送信するメッセージを利用可能とすることを理解することが必要なだけである。例えば、ノードは、各syncパルス201〜204が当該ノードに新たなメッセージの発生を開始させるように構成すればよい。あるいは、ノードは、２つ置きのsyncパルスが当該ノードに新たなメッセージの発生を開始させるように構成してもよい。各ノードは、リアル・タイムであれ、非リアル・タイムであれ、各時分割期間にメッセージを生成する必要はない。また、単一のノードが１回の時分割期間に２つ以上のメッセージを生成する場合もある。各syncパルスは、CAN−Ｄネットワーク上のあらゆるノードに送信され、これによって全ノードに共通の時間観念を与える。
時分割TDn+1の期間にバス104上に送信されたCANメッセージ209は、メッセージ・コンテンツ302を含む。タイムライン300上に示すメッセージ・コンテンツ302は、時分割TDnの期間にマイクロプロセッサ107が発生したものである。メッセージ・コンテンツ302が発生したのは、ノード101が各時分割期間毎にリアル・タイム・メッセージを生成するように構成されているからである。あるいは、メッセージ・コンテンツ302は、当該メッセージの発生を要求する「発行要求」に応答して発生することも可能である。発行要求は、ノードに、メッセージをバス上に送信する用意をすることを指令する。発行要求は、或るノードからシステム・メッセージとしてバス104上に発することができ、あるいは各ノード内部で発することもできる。メッセージ・コンテンツ302は、syncパルス202まで、ノード101内で整列している。メッセージ・コンテンツ304は、時分割TDnの期間にノード102内で発生され、syncパルス202までノード102内で整列している。
各syncパルス201〜204が発生した後、ノードにおいて整列しているメッセージはバス104上に送信され、ノードでは新たなメッセージが発生し、整列する。例えば、syncパルス202の後、ノード101〜102において整列しているメッセージはバス104上に送信され、ノード101〜102において新たなメッセージが発生し整列する。時分割TDnの期間にノード101内で発生し整列しているメッセージ・コンテンツ302は、時分割TDn+1の期間にsyncパルス202の後にメッセージ209としてバス104上を送信される。時分割TDnの期間にノード102に内で発生し整列しているメッセージ・コンテンツ304は、時分割TDn+1の期間にsyncパルス202の後にメッセージ210としてバス104上を送信される。ノード101からのメッセージは、ノード102からのメッセージよりも高いCAN優先度を有するので、メッセージ210がバス104上を送信されるよりも前に、メッセージ209がバス104上を送信される。
時分割TDn+1の期間に、メッセージ・コンテンツ303がノード101内で発生し、メッセージ・コンテンツ305がノード102内で発生する。両メッセージは、次のsyncパルス203まで、それらの各ノード内で整列している。各時分割期間に行われるように、整列しているメッセージは各syncパルスの後にバス104を送信される。syncパルス203の後、メッセージ・コンテンツ303がメッセージ213としてバス104上を送信され、メッセージ・コンテンツ305がメッセージ214としてバス104上を送信される。或るメッセージ・コンテンツが１回の時分割期間に何時発生するかは問題ではない。各時分割期間にリアル・タイム・メッセージが発生するようにノードが構成されているのであれば、そのように発生することのみが問題である。標準的なCAN優先度調停は、バス104上のメッセージ送信に適正な順序を確保する。
時分割TDnの期間にバス104上を送信されるメッセージ205および206は、直前の時分割TDn-1（図示せず）の期間に発生したものである。syncパルス201によって、ノード101〜102からバス104上へのそれぞれの送信が開始した。前述の図３の説明は、バス104上で送信するリアル・タイム・メッセージに関するものである。決定論的通信バスは、リアル・タイム・システムにおける行為およびメッセージの確実なスケジュール管理機能を必要とする。CAN−Ｄシステムは、既知のしかも予測可能な時分割期間のリアル・タイム・データが伝達されることを保証する。CAN−Ｄバスの決定論的特質は、非リアル・タイム・メッセージの送信には重要ではない。各時分割期間に、非リアル・タイム・メッセージの前に、リアル・タイム・メッセージをCANバス上で送信する。これは、非リアル・タイム・ノードよりも、リアル・タイム・ノードに高い優先度CANアドレスを割り当てることによって保証される。リアル・タイム・メッセージ全ての送信後、所与の時分割内で残っている時間が、非リアル・タイム・メッセージの送信に利用可能となる。時分割が終了したために非リアル・タイム・メッセージが全く送られない場合、残った非リアル・タイム・メッセージは、次の時分割期間に送信するために保持される。次の時分割期間に、リアル・タイム・メッセージが送信されるまで、保持された非リアル・タイム・メッセージの送信は再度待たなければならない。
CAN−Ｄ時分割の区分化−−図４
CAND−Ｄには種々の実施態様が可能であり、その全てにおいて決定論的CAN通信環境が得られる。図４は、本発明の一実施形態のタイミング図を示し、この場合、各時分割は３つのセグメントに区分され、sync信号は、新たな時分割の開始を知らせることに加えて、複数の機能を行う。
タイムライン400は、２回の時分割期間におけるバス104上のメッセージ活動を示す。時分割TDnは各時間セグメントを表わし、３つのセグメント401〜403に細分化される。セグメント401は「syncセグメント」であり、セグメント402は「リアル・タイム・セグメント」であり、セグメント403は「非リアル・タイム・セグメント」である。時分割TDnは、syncメッセージ407の送信によって開始される。syncメッセージ407は優先度が高いシステム・メッセージであり、sync期間401の持続時間中に送信される。syncメッセージ407は、図２および図３のsyncパルスと同様、最も高い優先度を有するCANメッセージである。syncメッセージ407の送信は、いくつかの目的を達成する。syncメッセージ407の送信によって達成される目的の１つは、新たな時分割の開始である。syncメッセージ407の送信によって達成される別の目的は、syncメッセージの高い優先度の故に、他の全メッセージをバスから遠ざけることである。syncメッセージの更に別の効果は、各ノードに対してそのリアル・タイム・メッセージを作成するための信号または割込みとしてのものである。メッセージはsync期間401の期間に各ノードにおいて用意され、そのバス104上での送信は、セグメント402〜403の期間に、標準的なCAN調停を待つ。syncメッセージの持続時間は、各時分割期間の時間長と同じである。例えば、10.0ミリ秒の時分割を用いる一実施形態では、syncメッセージは１ミリ秒持続する。
syncメッセージ407の送信に対応するセグメント401の期間に、種々のリアル・タイム生成ノードは、それらの各リアル・タイム・メッセージを発生し、整列させる。TDnのセグメント402は、syncメッセージ407が完了したときに開始する。すると、標準的なCAN優先度調停が、整列されているリアル・タイム・メッセージを自動的に並び替え、セグメント402の期間にバス104上に送出させる。リアル・タイムおよび非リアル・タイム・メッセージは、リアル・タイム・メッセージを全て、しかしリアル・タイム・メッセージのみを各時分割のリアル・タイム・セグメントの期間に送信するように、その優先度が決定される。
TDnのセグメント403は、バス104上でリアル・タイム・メッセージを送信し終えたときに開始する。バス104に接続するリアル・タイム・ノード数の選択は、各リアル・タイム・セグメントの期間に各ノードがメッセージを送信することができ、しかも十分な量の非リアル・タイム・メッセージのために十分長い非リアル・タイム・セグメントを残しておけるように行わなければならない。所与の時分割の期間に十分な時間がなくて送信できない非リアル・タイム・メッセージは全て、次の時分割の非リアル・タイム・セグメントまで、バスから遠ざけられる。
時分割TDn+1は、同期セグメント404、リアル・タイム・セグメント405および非リアル・タイム・セグメント406に区分される。時分割TDnに関して説明したように、CANメッセージは、時分割TDn+1およびその他の時分割（図示せず）の期間に形成され、送信される。
ノード内通信−−図５
本発明の通信プロトコルは、単一ノード内の機能ブロック間の通信にも適用可能である。図５は、CAN−Ｄバス501に接続されたノード500を示す。ノード500は、図１ないし図４に関して論じた主要な構成部品、即ち、CANトランシーバ502、CANコントローラ504およびマイクロプロセッサ506を含む。CANトランシーバ502は、ノード500とCAN−Ｄバス501との間の物理的なインターフェースを制御する。CANトランシーバ502は、経路503を通じてCANコントローラ504と通信する。CANコントローラ504は、優先度調停やエラー・チェックというような標準的なCANプロトコル機能を実現する。CANコントローラ504は、経路505を通じて、マイクロプロセッサ506と通信する。マイクロプロセッサ506は、図１のマイクロプロセッサよりも更に詳細に示されている。ノード500が実行する動作のためにプログラムした命令が、中央演算装置（「CPU」）507上で実行される。CPU507は、メモリ・バス508を通じて、プログラムの命令および／またはデータをメモリ素子に格納および／またはメモリ素子から検索する。メモリ素子には、ランダム・アクセス・メモリ（RAM）509およびリード・オンリ・メモリ（ROM）510が含まれるが、これらに限定される訳ではない。別のアクセス可能なメモリ素子には、ローカル・バス511を介して不揮発性メモリ素子512が含まれる。複数のアプリケーション513〜515を実現するためにプログラムされた命令が、不揮発性メモリ素子512に格納されている。以下で説明するように、ソフトウエア・ルータ516がノード500のノード内の動作を指示する。ローカル・バス511には種々の入出力機器（図示せず）が接続され、ユーザにノード500の機能性との双方向処理を可能にしている。
ソフトウエア・ルータ516は、CPU507によって実行されるアプリケーションである。ソフトウエア・ルータ516は、他のアプリケーションまたはノード500内部の機能ブロックの動作を指示するように、ユーザによってプログラムされる。例えば、ノード500の一実施形態では、粘度の測定値が、１つ置きの時分割で、ノード500によってCAN−Ｄバス501に送り込まれる。CPU507によって実行されるソフトウエア・ルータ516は、各sync信号に応答し、アプリケーション513〜515による動作を指示する。この例では、アプリケーション513は質量流量データを生成し、アプリケーション514は差圧データを生成し、アプリケーション515は粘度データを生成する。アプリケーション515は、アプリケーション513〜514からのデータを使用して、粘度データを生成する。アプリケーション513〜515は、ソフトウエル・ルータ516によって指示されたときに、それらの各出力を生成する。ソフトウエア・ルータ516は、アプリケーション513〜515の内のどれが各sync信号に続いて出力を生成するかについて指示を与える。この例では、ソフトウエア・ルータ516は、１）アプリケーション513（質量流量）が各時分割期間に出力を生成することを要求し、２）アプリケーション514（差圧）が交互の時分割期間に出力を生成することを要求し、３）アプリケーション515（粘度）に交互の時分割（アプリケーション514が出力を生成しない時分割）期間に出力を生成することを要求するようにプログラムされている。第1sync信号に応答して、ソフトウエア・ルータ516は、アプリケーション513および514に出力を生成するように命令する。（第1sync信号によって開始された）第１時分割期間に、アプリケーション513および514は、出力メッセージをソフトウエア・ルータ516に生成する。第2sync信号に応答して、ソフトウエア・ルータ516は、アプリケーション513〜514からの出力メッセージ（直前の時分割期間に発生した）をアプリケーション515に向けて送出し、アプリケーション513からの質量流量出力メッセージをCAN−Ｄバス501に向けて送出する。CAN−Ｄバス501上のその他のノード（図示せず）は、ノード500からの質量流量出力を利用する。また、ソフトウエア・ルータ516は、アプリケーション515に粘度出力メッセージを生成するように要求する。アプリケーション515は、アプリケーション513および514がそれぞれ生成した質量流量および差圧メッセージ（直前の時分割期間に発生した）を処理し、粘度メッセージを生成し、これをソフトウエア・ルータ516に送る。第３時分割（第3sync信号の後）期間に、ソフトウエア・ルータ516は、粘度メッセージ（直前の時分割期間にアプリケーション515から受信した）を、他のノード（図示せず）が使用するために、CAN−Ｄバス501に向けて送出する。
CAN−Ｄプロトコルおよびソフトウエア・ルータは、システム・アーキテクチャ全体の柔軟な実現および補正を可能にする。例えば、粘度生成ノードとは異なる別個のノードにおいて質量流量情報を発生させる方が一層効率的な場合もある。この場合、アプリケーション513はノード500からCAN−Ｄバス501上の異なるノード（図示せず）に移される。アプリケーション513には何の変更も必要ない。これは単に他のノードに位置し、そこで当該ノードのソフトウエア・ルータがアプリケーション513にいつ出力を生成するのかを命令するだけである。
「ソフトウエア・ルータ」は、本発明の通信プロトコルによれば、必須ではない。例えば、ノード内部の各機能ブロックは、代わりに、各時分割期間に適切なメッセージ（複数のメッセージ）を生成し、適切な時分割期間に受信されるように、これらのメッセージを送信するように構成することも可能である。ソフトウエア・ルータは、とりわけ、１回の時分割期間に受信したメッセージを整列し、整列したメッセージを適切な機能ブロックに次の時分割期間に送る便利なスケジューリング・ツールとして単に機能するに過ぎない。これは、本発明の通信プロトコルの決定論的特質を保存するようにメッセージを通信することを保証する。
本発明の更に別の実施形態では、図５に関して説明したノード内通信を、ノードがCAN−Ｄバスまたは他のあらゆる形式のバスとデータを交換しない場合に利用する。図５を参照すると、マイクロプロセッサ506のみがこの実施例に関連し、残りのエレメント、例えば、CANトランシーバ502、CANコントローラ504およびCAN−Ｄバス501は存在しないか、あるいは利用されない。バス上のマスタ・ノードからsyncパルスを受信するのではなく、syncパルスとして同等の効果を有する周期的イベントを生成するために、オペレーティング・システムの方法を利用してタイマが実装される。オペレーティング・システムとは、１つ以上の機能ブロックがハードウエア・プラットフォームを共有可能にする手段を提供する１組のサービスのことである。各タイマ・イベントは、新たな時分割の開始をマークし、この時分割期間に、ソフトウエア・ルータ516が要求メッセージを機能ブロック513〜515に送る。機能ブロック513〜515は、ソフトウエア・ルータ516から要求メッセージを受信し、要求されたデータをソフトウエア・ルータ516に返送する。この実施形態では、ソフトウエア・ルータ516は、オペレーティング・システムが提供するメッセージ・キューを利用して、次の時分割まで機能ブロック513〜515からのメッセージを整列させる。次の時分割の開始時に、ソフトウエア・ルータ516は、整列させたメッセージを機能ブロック513〜515の内の適切なものに分配し、次の１組の要求メッセージを機能ブロック513〜515に送る。この実施形態では、オペレーティング・システムの方法にしたがってメッセージに優先順位を決め、リアル・タイム・メッセージには高い優先度を割り当て、非リアル・タイム・メッセージには低い優先度を割り当てる。この実施形態は、ノードがCAN−Ｄバスに接続されていないときでさえ、単一のノードにおいて決定論的リアル・タイム処理を可能にする。勿論、このように動作するノードは、適宜CAN−Ｄバス環境に容易に統合可能である。
ノード内処理ステップ−−図６
図６は、sync信号に応答して各ノードにおいて行われるステップを示す。図６を用いて、CAN−Ｄバス上に複数のノードを含む実施形態、およびCAN−Ｄバスには接続されていないがCAN−Ｄに基づくプロトコルにしたがって複数の機能ブロック間で通信を行う単一ノードの実施形態の動作を説明する。ステップ600では、ノードにおいてsync信号が受信される。先に注記したように、sync信号はマスタ・ノードからバスに送信されるか、あるいはノードがバスとは独立して動作する場合は、ローカル・タイマ・イベントとして発生してもよい。各ノードが各sync信号を用いて新たな時分割をリセットすることによって、バスの全ノード間および／またはノード内の全機能ブロック間に、共通の時間感覚が達成される。新たな時分割は各sync信号で開始し、処理はステップ601に進む。
ステップ601では、直前の時分割期間に整列させたあらゆるリアル・タイム・メッセージを適切に伝達する。CAN−Ｄバスに複数のノードが接続されている場合、リアル・タイム・メッセージはCAN−Ｄバス上に置かれる。単一ノードの場合、リアル・タイム・メッセージは、適切な機能ブロックに分配される。次いで、処理はステップ602に進む。
ステップ602では、現時分割のリアル・タイム・データが発生される。ノードの構成に応じて（および／または、ノード内のソフトウエア・ルータの構成に応じて）、リアル・タイム・データが発生した時分割期間に、これらリアル・タイム・データを送ることができる。典型的には、時分割期間に時間が得られるときはいつでも、非リアル・タイム・データが送られる。これは、リアル・タイム・データを全て送り終えた後、またはリアル・タイム・データを発生している期間またはバスがアイドル状態にある期間に生じ得る。処理はステップ602から判断ブロック603に進み、現時分割において未だ時間が利用できる場合、処理はステップ604に移る。ステップ604において、非リアル・タイム・データを送る。リアル・タイム・データをこのステップで送ることも可能である。ステップ603〜604は、別のsync信号が発生し新たな時分割の開始を示すまで繰り返される。
処理ステップ600〜604は、各時分割期間に、リアル・タイム・データを最初に送信するように動作する。残りの時間は、非リアル・タイム・データの送信に用いられる。
まとめ
本発明のシリアル・バス通信システムは、低コストのCAN構成部品およびプロトコルの簡素性および入手容易性を、決定論の属性と組み合わせたものである。したがって、本発明の決定論的CANプロトコルは、従来のCANの実施態様と比較して、リアル・タイム・データの通信に特に適している。
【図１】
0003657999.tif 000002
【図２】
0003657999.tif 000003
【図４】
0003657999.tif 000004
【図３】
0003657999.tif 000005
【図５】
0003657999.tif 000006
【図６】
0003657999.tif 000007