(57)【要約】本発明は、通信システムの通信リンク（１０１）を経由してメッセージのデータを伝送する方法、通信モジュール（１００）、ノード（１０２）及び通信システムに関する。メッセージメモリ（３００）におけるメッセージのポジションを確認するため、メッセージメモリを、複数の後続するタイムウィンドウ（ＺＦ）それぞれのために、規則的間隔で、前もって探索する。その結果として、複数の後続するタイムウィンドウ（ＺＦ）で送信又は受信されるメッセージのポジションを、メッセージメモリ（３００）に割り当てられた中間メモリ（６００）にファイルする。本来のデータ伝送（メッセージの送信又は受信）の際には単純に中間メモリ（６００）に、そしてそこにファイルされたポジションを介して、メッセージメモリ（３００）における適切なメッセージオブジェクトにアクセスする。結果、通信モジュール（１００）のリアルタイム性を改善することができる。【選択図】図２
2008529374.tif 000002
【特許請求の範囲】
【請求項１】
指定可能なタイムウィンドウ（ＺＦ）においてメッセージを通信システムの通信リンク（１０１）を経由して周期的に伝送するメッセージデータ伝送方法であって、
前記通信リンク（１０１）を経由して送信及び受信されるメッセージを、まず、通信モジュール（１００）のメッセージメモリ（３００）に中間格納し、そして、現在のタイムウィンドウ（ＺＦ）において送信又は受信される前記メッセージを、前記メッセージメモリ（３００）から取り出して送信するか、又は受信して前記メッセージメモリ（３００）にファイルするメッセージデータ伝送方法において、
前記メッセージメモリ（３００）における前記メッセージのポジションを確認するために、前記メッセージメモリは、その都度、後続する複数のタイムウィンドウ（ＺＦ）のために規則的な間隔で前もって探索され、
前記探索過程の結果として、前記後続する複数のタイムウィンドウ（ＺＦ）で送信又は受信されるメッセージのポジションは、前記メッセージメモリ（３００）に割り当てられた中間メモリ（６００）にファイルされることを特徴とする、メッセージデータ伝送方法。
【請求項２】
前記データ伝送の際に、
前記現在のタイムウィンドウ（ＺＦ）において前記通信システムを経由して伝送されるメッセージは、当該タイムウィンドウ（ＺＦ）のために前記中間メモリ（６００）によって指定された前記メッセージメモリ（３００）のポジションから読み出されて、前記通信リンク（１０１）を経由して伝送されるか、又は、
前記現在のタイムウィンドウ（ＺＦ）において前記通信リンク（１０１）を経由して伝送されたメッセージは、当該タイムウィンドウ（ＺＦ）のために前記中間メモリ（６００）によって指定された前記メッセージメモリ（３００）のポジションにファイルされることを特徴とする、請求項１に記載のメッセージデータ伝送方法。
【請求項３】
前記現在のタイムウィンドウ（ＺＦ）及び前記後続する複数のタイムウィンドウ（ＺＦ８〜ＺＦ１１）のための前記データ伝送であり、
この場合、後者のタイムウィンドウのためには前記メッセージメモリ（３００）における前記メッセージのポジションが、前記中間メモリ（６００）にすでにファイルされており、
当該データ伝送は、それぞれの前記タイムウィンドウ（ＺＦ８〜ＺＦ１１）に到達後において、そのデータ伝送の最後の前記タイムウィンドウ（ＺＦ１１）につながるタイムウィンドウ（ＺＦ）及び後続する複数のタイムウィンドウ（ＺＦ１２〜ＺＦ１５）のための探索過程（ＳＤＬ３）と、同時に実行されることを特徴とする、請求項１又は２に記載のメッセージデータ伝送方法。
【請求項４】
前記探索過程（ＳＤＬ）の前記複数のタイムウィンドウの個数が、前記データ伝送（ＤＡＴ）のための前記複数のタイムウィンドウの個数に等しいことを特徴とする、請求項１〜３のいずれかに記載のメッセージデータ伝送方法。
【請求項５】
前記メッセージメモリ（３００）に格納されるメッセージは、
第１のデータ範囲を含む第１のデータ（ＫＤ０、ＫＤ１、ＫＤｋ）と、
第２のデータ範囲を含む第２のデータ（Ｄ０、Ｄ１、Ｄｋ）と、
を含み、
前記第１のデータ（ＫＤ０、ＫＤ１、ＫＤｋ）は、前記メッセージメモリ（３００）のヘッダセグメント（ＨＳ）において、メッセージごとにそれぞれ１つのヘッダ領域（ＨＢ０、ＨＢ１、ＨＢｋ）に格納され、
前記第２のデータ（Ｄ０、Ｄ１、Ｄｋ）は、データセグメント（ＤＳ）において、メッセージごとにそれぞれ１つのデータ領域（ＤＢ０、ＤＢ１、ＤＢｋ）に格納されることを特徴とする、請求項１〜４のいずれかに記載のメッセージデータ伝送方法。
【請求項６】
前記メッセージメモリ（３００）の前記ヘッダ領域（ＨＢ０、ＨＢ１、ＨＢｋ）に、メッセージごとに１つの識別文字がファイルされており、
当該識別文字は、前記各メッセージを識別し、
当該識別文字によって、前記メッセージを、１つの定められた通信サイクル（ＫＺＹ）、サイクル（ＫＺＹ）内の１つの定められたタイムウィンドウ（ＺＦ）、１つのチャネル（ＣＨ  Ａ、ＣＨ  Ｂ）、又は両チャネル（ＣＨ  Ａ、ＣＨ  Ｂ）に、割り当てることができることを特徴とする、請求項５に記載のメッセージデータ伝送方法。
【請求項７】
探索過程（ＳＤＬ）の間に着目され、前記後続する複数のタイムウィンドウ（ＺＦ）の１つで送信又は受信される全てのメッセージのために、前記中間メモリ（６００）に２つのフィールド（“ポインタ”、“ステータス”）が予定されており、
第１のフィールド（“ポインタ”）には、前記メッセージメモリ（３００）にファイルされているメッセージの対応するポジションを示すポインタがファイルされ、
第２のフィールド（“ステータス”）には、前記メッセージメモリ（３００）にファイルされているメッセージのステータスがファイルされることを特徴とする、請求項１〜６のいずれかに記載のメッセージデータ伝送方法。
【請求項８】
前記ポインタは、前記ヘッダセグメント（ＨＳ）のヘッダ領域（ＨＢ０、ＨＢ１、ＨＢｋ）に格納された前記第１のデータ（ＫＤ０、ＫＤ１、ＫＤｋ）、すなわち前記メッセージメモリ（３００）にファイルされているメッセージの当該第１のデータを示すことを特徴とする、請求項５及び７に記載のメッセージデータ伝送方法。
【請求項９】
前記メッセージメモリ（３００）にファイルされているメッセージのステータスとして、前記中間メモリ（６００）に情報がファイルされており、
当該情報は、着目されたタイムウィンドウ（ＺＦ）が受信又は送信されるべきものなのかどうか（‘ｅｍｐｔｙ’）、及び／又は、当該メッセージが送信されるべきなのか（‘ｔｘ＿ｂｕｆ’）もしくは受信されるべきなのか（‘ｒｘ＿ｂｕｆ’）に関する情報であることを特徴とする、請求項７又は８に記載のメッセージデータ伝送方法。
【請求項１０】
前記中間メモリ（６００）は、区画されており、
前記中間メモリ（６００）の第１の部分（６０１〜６０４）には、前記データ伝送を目的として、前記現在のタイムウィンドウ（ＺＦ）及び前記後続する複数のタイムウィンドウ（ＺＦ８〜ＺＦ１１）のための前記メッセージのポジションがファイルされ、その際、前記後続する複数のタイムウィンドウ（ＺＦ８〜ＺＦ１１）のための前記メッセージメモリ（３００）における前記メッセージのポジションは、前記中間メモリ（６００）にすでにファイルされており、
前記中間メモリ（６００）の第２の部分（６０１ａ〜６０４ａ）には、探索過程（ＳＤＬ）を目的として、当該データ伝送の前記最後のタイムウィンドウ（ＺＦ１１）につながる前記タイムウィンドウ（ＺＦ）及び前記後続する複数のタイムウィンドウ（ＺＦ１２〜ＺＦ１５）のための前記メッセージのポジションがファイルされることを特徴とする、請求項３〜９のいずれかに記載のメッセージデータ伝送方法。
【請求項１１】
前記メッセージメモリ（３００）における前記メッセージのポジションを確認するために、前記メッセージメモリは、その都度、後続する４つのタイムウィンドウ（ＺＦ）のために規則的な間隔で前もって探索され、
探索過程の結果として、前記後続する４つのタイムウィンドウ（ＺＦ）で送信又は受信されるメッセージのポジションが、前記中間メモリ（６００）にファイルされることを特徴とする、請求項１〜１０のいずれかに記載のメッセージデータ伝送方法。
【請求項１２】
前記後続する複数のタイムウィンドウ（ＺＦ）のために前記メッセージメモリ（３００）の探索過程を行う際、下記の判定基準の１つ又は複数に従って探索が行われることを特徴とする、請求項１〜１１のいずれかに記載のメッセージデータ伝送方法。
―前記メッセージメモリ（３００）に、着目された伝送チャネル（ＣＨ  Ａ，ＣＨ  Ｂ）のためのメッセージが格納されているかどうかを確認する。
―前記メッセージメモリ（３００）に、着目された通信サイクル（ＫＺＹ）のためのメッセージが格納されているかどうかを確認する。
―前記メッセージメモリ（３００）に、前記後続する複数のタイムウィンドウ（ＺＦ）のためのメッセージが格納されているかどうかを確認する。
―確認されたメッセージが、前記送信又は受信されるべきメッセージであるかどうかを確認する。
【請求項１３】
通信リンク（１０１）とノードとの間に配置され、前記ノードから前記通信リンク（１０１）を経由して伝送されるべきメッセージ、又は、前記ノードのために前記通信リンク（１０１）を経由して受信されたメッセージを中間格納するためのメッセージメモリ（３００）を備え、指定可能なタイムウィンドウでメッセージを周期的に伝送するために形成された通信モジュール（１００）において、
前記通信モジュール（１００）は、
前記メッセージメモリ（３００）における前記メッセージのポジションを確認するために、前記メッセージメモリ（３００）を、その都度、後続する複数のタイムウィンドウのために規則的な間隔で前もって探索する手段と、
前記メッセージメモリ（３００）に割り当てられた中間メモリと、
探索の結果として、前記後続する複数のタイムウィンドウで送信又は受信されるべき前記メッセージのポジションを、前記中間メモリ（６００）にファイルする手段と、
を備えることを特徴とする、通信モジュール。
【請求項１４】
前記メッセージメモリ（３００）を探索する前記手段と、確認されたメッセージのポジションを前記中間メモリ（６００）にファイルする前記手段とが、状態オートマトン（５０４）として形成されていることを特徴とする、請求項１３に記載の通信モジュール（１００）。
【請求項１５】
前記通信モジュール（１００）が、ＦｌｅｘＲａｙ仕様書に従って伝送されたメッセージを受信、送信、及び中間格納するＦｌｅｘＲａｙ通信モジュールとして形成されていることを特徴とする、請求項１３又は１４に記載の通信モジュール（１００）。
【請求項１６】
前記メッセージメモリ（３００）を探索する前記手段と、確認されたメッセージのポジションを前記中間メモリ（６００）にファイルする前記手段とが、請求項２〜１２のいずれかに記載の方法を実行するために形成されていることを特徴とする、請求項１３〜１５のいずれかに記載の通信モジュール（１００）。
【請求項１７】
ノード（１０２）と、少なくとも１つの他のノードと、前記ノード（１０２）に接続された１つの通信リンク（１０１）と、前記通信リンク（１０１）と前記ノード（１０２）との間に配置され、前記ノード（１０２）から前記通信リンク（１０１）を経由して伝送されるメッセージ、又は、前記ノード（１０２）のために前記通信リンク（１０１）を経由して受信されたメッセージを中間格納するメッセージメモリ（３００）を備える通信モジュール（１００）と、を含み、指定可能なタイムウィンドウにおいてメッセージを周期的に伝送するために形成された通信システムの前記ノード（１０２）において、
前記通信モジュール（１００）は、前記メッセージメモリ（３００）における前記メッセージのポジションを確認するために、前記メッセージメモリ（３００）を、その都度、後続する複数のタイムウィンドウ（ＺＦ）のために規則的な間隔で前もって探索する手段と、
前記メッセージメモリ（３００）に割り当てられた中間メモリ（６００）と、
探索過程（ＳＤＬ）の結果として、前記後続する複数のタイムウィンドウにおいて送信又は受信される前記メッセージのポジションを、前記中間メモリ（６００）にファイルする手段と
を備えることを特徴とする、通信システムのノード。
【請求項１８】
前記ノード（１０２）は、ホストコンピュータを含み、
前記ホストコンピュータは、前記通信モジュール（１００）とともに、１つの共通な半導体エレメントに組み込まれていることを特徴とする、請求項１７に記載の通信システムのノード（１０２）。
【請求項１９】
通前記信モジュール（１００）が、請求項１４〜１６のいずれかに従って形成されていることを特徴とする、請求項１７又は１８に記載の通信システムのノード（１０２）。
【請求項２０】
通信リンク（１０１）に接続された複数のノード（１０２）と、前記通信リンク（１０１）と少なくとも１つの前記ノード（１０２）との間に配置され、少なくとも１つの前記ノード（１０２）から前記通信リンク（１０１）を経由して伝送されるメッセージ、又は、前記少なくとも１つのノード（１０２）のために前記通信リンク（１０２）を経由して受信されたメッセージを中間格納するためのメッセージメモリ（３００）を備えた通信モジュール（１００）と、を含み、指定可能なタイムウィンドウ（ＺＦ）においてメッセージを周期的に伝送するために形成された通信システムにおいて、
前記通信モジュール（１００）は、前記メッセージメモリ（３００）における前記メッセージのポジションを確認するために、前記メッセージメモリ（１００）を、その都度、後続する複数のタイムウィンドウ（ＺＦ）のために規則的な間隔で前もって探索する手段と、
前記メッセージメモリ（３００）に割り当てられた中間メモリ（６００）と、
探索過程の結果として、前記後続する複数のタイムウィンドウ（ＺＦ）において送信又は受信される前記メッセージのポジションを、前記中間メモリ（６００）にファイルする手段と、
を備えることを特徴とする、通信システム。
【請求項２１】
前記通信モジュール（１００）が、請求項１４〜１６のいずれかに従って形成されていることを特徴とする、請求項２０に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定されたタイムウィンドウの中で、通信システムの通信リンクを経由して、周期的に伝送されるメッセージのデータを、伝送する方法に関する。この通信リンクを経由して送信されるメッセージ及び送信されたメッセージは、まず通信モジュールのメッセージメモリに中間格納される。その時点のタイムウィンドウにおいて、ノードによって送信又は受信されるメッセージは、メッセージメモリから取り出されて送信又は受信され、そしてメッセージメモリにファイルされる。
【０００２】
本発明はそのほか、請求項１３に上位概念として記載する通信モジュール、請求項１７に上位概念として記載する通信システムのノード、及び、本方法を実現するための請求項２０に上位概念として記載する通信システムに関する。
【背景技術】
【０００３】
通信システムの通信リンクによるノードのネットワーク化、例えば、制御装置、センサ及びアクチュエータの形態を取るノードのネットワーク化は、現代の自動車製造、機械製造特に工作機械部門、又はオートメーションにおいて、近年ドラスティックに増加している。この場合、諸機能を複数のノードに分配することによる相乗効果が得られる。この場合、分配されたシステムが問題となる。バスシステムとして形成された通信システムの通信リンクを、データバスとして形成し、これを経由してさまざまなノード間の通信が、次第に多く行われるようになっている。バスシステム、アクセス機構、受信機構における通信のやり取り及びエラー処理は、プロトコルを介して制御される。このためのものとして知られているプロトコルとしては、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）プロトコル、ＴＴＣＡＮ（Ｔｉｍｅ  Ｔｒｉｇｇｅｒｅｄ  ＣＡＮ）プロトコル、及びＦｌｅｘＲａｙプロトコルがあり、この場合、今のところＦｌｅｘＲａｙプロトコル仕様書ｖ２．１が基礎になっている。
【０００４】
ＦｌｅｘＲａｙは、高速で決定性あるフォールトトレラントなバスシステムであって、特に自動車に用いるためのものである。ＦｌｅｘＲａｙプロトコルは、Ｔｉｍｅ−Ｄｉｖｉｓｉｏｎ−Ｍｕｌｔｉｐｌｅ−Ａｃｃｅｓｓ（ＴＤＭＡ）手順に従って動作し、この場合、ノード（又はコンポーネント）又は伝送されるメッセージに、固定されたタイムスロット又はタイムウィンドウが割り当てられる。そして、ノード等は、それらタイムスロット又はタイムウィンドウにおいて、通信リンクに排他的なアクセスを行う。同様にしてこれは、ＴＴＣＡＮの場合にも応用される。この場合タイムスロットは、確定されたサイクル、いわゆる通信サイクルとして繰り返されるので、メッセージがデータバスを経由して伝送される時点を、正確に予言することができ、バスアクセスは、決定性をもって行われる。
【０００５】
ＦｌｅｘＲａｙは、バスシステム上でメッセージを伝送する帯域幅を最適に利用するため、通信サイクルを、静的な部分、いわゆるスタティック・セグメントと、動的な部分、いわゆるダイナミック・セグメントと、に区分する。指定された固定長を持つタイムスロットは、この場合、バスサイクル開始時には静的部分に存在する。動的な部分には、タイムスロットが動的に付与される。この部分では、排他的なバスアクセスは、その都度短時間だけ、いわゆるミニスロットだけ可能である。１つのミニスロットの範囲内で、ノードがバスアクセスを行う場合だけ、対応するタイムスロットが、ノードのデータ伝送に必要な時間まで延長される。従って帯域幅が消費されるのは、その帯域幅が実際にデータ伝送に必要とされる場合だけである。このダイナミック・セグメントは、事象制御されたデータ伝送のために利用することができる。
【０００６】
１つのＦｌｅｘＲａｙ通信システムにおいては、チャネルとも呼ばれる２つの物理的に分離されたラインを経由して、今のところそれぞれ毎秒最大１０ＭＢのデータ転送速度で通信される。両者のチャネルは、この場合、物理層、特にＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ａｒｃｈｉｔｅｃｔｕｒｅ）層モデルの物理層に対応する。これらのチャネルは、主として、メッセージの冗長的な、従ってフォールトトレラントな伝送に用いられるが、異なるメッセージも伝送することができ、これによりデータ転送速度を、今のところ２０ＭＢに倍増することができる。当然のことながらＦｌｅｘＲａｙは、より低いデータ転送速度で動作させることもできる。
【０００７】
同期機能を実現し、２つのメッセージ間の間隔を小さくして帯域幅を最適化するには、通信ネットワーク内に分配されたコンポーネント、すなわち通信システム内のノードが、共通の時間基準、いわゆるグローバルタイムを必要とする。これらノードは、みずからのローカルなクロックを持ち、このクロックがグローバルタイムに同期される。クロック同期のため、同期情報がサイクルの静的な部分で伝送される。このクロック同期は、各通信サイクル末尾で、いわゆるＮｅｔｗｏｒｋ  Ｉｄｌｅ  Ｔｉｍｅ（ＮＩＴ）の間に行われる。ＦｌｅｘＲａｙ仕様書に記載の特殊なアルゴリズムを用いて、各コンポーネントのローカルなクロック時間を補正して、全てのローカルなクロックが、グローバルクロックに同期して動作するようにする。この同期は、ＴＴＣＡＮネットワークでも同様に行われる。
【０００８】
ＦｌｅｘＲａｙノードは、ＦｌｅｘＲａｙネットワークノードとも呼ばれる。このノードは、ノードプロセッサ、従ってホストプロセッサと、ＦｌｅｘＲａｙコントローラ、又は通信コントローラと、物理層とのリンクと、バスドライバ（いわゆるＢｕｓ  Ｄｒｉｖｅｒ  ＢＤ）と、を備える。またバスモニタリングを行う場合は、Ｂｕｓ  Ｇｕｒａｄｉａｎ（ＢＧ）を備える。この場合、ホストプロセッサが供給し、処理するのは、ＦｌｅｘＲａｙ通信コントローラを経由して伝送又は受信されるデータである。ＦｌｅｘＲａｙネットワークにおける通信のため、メッセージ又はメッセージオブジェクトを、例えば２５４データバイトで構成することができる。物理層すなわち通信リンクと、ホストプロセッサとの間で、メッセージ又はメッセージオブジェクトを伝送するため、通信モジュール特に通信コントローラを用いる。
【０００９】
この通信モジュールは、メッセージメモリを備え、このメッセージメモリには、その通信モジュールに割り当てられたノードが送信するメッセージオブジェクト、又はそのノードが受信するメッセージオブジェクトが、中間格納される。その後でこれらのメッセージオブジェクトは、送信のため通信リンクに、又は、さらなる処理のためホストプロセッサに転送される。メッセージメモリのデータフィールドの個数と大きさは、通信システムの構成段階又は再構成段階の間に構成される。
【００１０】
従来の技術の場合、メッセージメモリは、各タイムスロットの開始時に、メッセージアドミニストレータによって探索される。これは、メッセージがファイルされている、又はこれからファイルされるデータフィールドを探索するためである。このメッセージは、その時点のチャネルを経由して、その時点の通信サイクル及び／又はその時点のタイムスロットで、送信又は受信されている。このようにメッセージメモリが探索されるとき、例えば、次のようなデータフィールドが確認される。すなわち、その時点の通信サイクルにおいて、そしてその時点のタイムスロットにおいて、その時点で着目されているチャネルを経由して受信したいメッセージのために、予定されているデータフィールドである。メッセージ受信後、そのメッセージは、確認されたデータフィールドにファイルされる。
【００１１】
同様にメッセージメモリ探索の際、例えば、次のようなデータフィールドを確認することができる。すなわち、その時点の通信サイクルにおいて、そしてその時点のタイムスロットにおいて、その時点で着目されているチャネルを経由して送信したいメッセージが、ファイルされているデータフィールドである。そうすると、このメッセージは、確認されたデータフィールドから取り出され、送信のため通信リンクに転送される。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし欠点は、この探索過程が、特にメッセージメモリが大きくなると、比較的多くの時間を必要とし、メッセージの受信又は送信の際に遅延を生じる可能性があることである。タイムスロットごとにメッセージメモリ全体が探索されることによって、通信システムのリアルタイム性が損なわれる可能性がある。
【００１３】
従って、本発明の課題は、メッセージの伝送が最適な方法で支援されるような形態で、そして、特にメッセージメモリが大きくなっても、通信システムのリアルタイム性を確保できるような形態で、メッセージメモリの探索が行われるようにすることである。
【課題を解決するための手段】
【００１４】
この課題を解決するため、冒頭に挙げた種類のデータ伝送手順を出発点として、以下のことを提案する。第１には、メッセージメモリにおけるメッセージのポジションを確認するため、それぞれさらに続く複数のタイムウィンドウのため、規則的間隔で、そのメッセージメモリを前もって探索することである。第２には、探索過程の結果として、さらに続く複数のタイムウィンドウで送信される、又は受信されるメッセージのポジションを、そのメッセージメモリに割り当てられた中間メモリ、つまりメッセージメモリのポジションに対応付けられた中間メモリにファイルすることである。
【００１５】
従って本発明は、メッセージメモリを必ずしもタイムスロットごとに完全には探索せず、むしろ複数の未来のタイムスロットのために探索過程を１回行うことを提案する。
すなわち、ただ１回の探索過程によって、複数の未来のタイムスロットのために、メッセージメモリにおけるそのメッセージのポジションを確認する。探索過程の際に確認されたポジションは中間メモリにファイルされ、後になって本来のデータ伝送の際に、この中間メモリからほとんど遅延なしに呼び出すことができる。従って本来のデータ伝送の際には、メッセージメモリ全体の完全な探索過程は不要である。本発明の通信システムのリアルタイム性は、これによって決定的に改善される。
【００１６】
本発明の１つの有利な発展形では、次のことが提案される。
すなわちデータ伝送の際に、現在のタイムウインドウ（actuellen Zeitfenster：その時点のタイムウィンドウ）において通信システムを経由して伝送されるメッセージを、このタイムウィンドウのため中間メモリ内に指定されたメッセージメモリのポジションから読み出し、通信リンクを経由して伝送する。又は、現在のタイムウィンドウにおいて通信リンクを経由して伝送されたメッセージを、このタイムウィンドウのため中間メモリ内に指定されたメッセージメモリのポジションにファイルする。
【００１７】
従って本来のデータ伝送の際に、１つのメッセージをメッセージメモリから送信したい場合は、単純に中間メモリ内の対応する箇所にアクセスする。次に中間メモリにファイルされたメッセージメモリのポジションにアクセスし、そこに格納されているメッセージを取り出して、送信のため通信リンクに転送する。本来のデータ伝送の際にメッセージを受信してメッセージメモリに格納したいときも、同様に単純に中間メモリ内の対応する箇所にアクセスすることができる。そして通信リンクを経由して受信されたメッセージを、中間メモリ内にファイルされたメッセージメモリのポジションに格納することができる。
【００１８】
本発明の１つの好ましい実施形態では、次のことが提案される。
すなわち現在のタイムウィンドウのために、及び後続する複数のタイムウィンドウ、すなわちメッセージメモリにおけるメッセージのポジションが中間メモリにすでにファイルされているそれら後続するタイムウィンドウのために、データ伝送を行うものとする。このデータ伝送を、そのデータ伝送の最後のタイムウィンドウに続くタイムウィンドウと、さらに後続する複数のタイムウィンドウとのための探索過程と同時に行う。
これはすなわち、未来のタイムスロット１．．．ｎ（ｎ＞１）のための本来のデータ伝送と、さらに後続する未来のタイムスロット（ｎ＋１）．．．２ｎのための探索過程とが平行して行われることを意味する。この実施形態のためのステータスメモリとしては、２ｎ個のデータフィールドを備える大きさのステータスメモリが選択される。これは、データ伝送のためメッセージメモリにおけるメッセージのポジションをファイルすることができるｎ個のデータフィールドと、その時点の探索過程の際に確認されたメッセージメモリにおけるメッセージのポジションをファイルすることができるさらにｎ個のデータフィールドと、を備える大きさのステータスメモリである。好ましくは、本来のデータ伝送のためのメッセージメモリにおけるメッセージのポジションが、先行する探索過程の際に確認され、中間メモリにファイルされているものとする。中間メモリの２組のｎ個のデータフィールドは、好ましくは交代にアクセスされるものとし、いずれのｎ個のデータフィールドも、まず探索過程の際にそれらポジションの格納に、次に本来のデータ伝送の際にそれら格納済みのポジションを呼び出すのに用いるものとする。その際、両者のｎ個のデータフィールドは、探索過程の際又はデータ伝送の際に、決して同時に用いられることはなく、つねに相互に時間をずらして用いられる。この実施形態によってさらに、探索過程のための処理時間を節減することができ、従って通信システムのリアルタイム性がほとんどいつでも得られる。好ましくはこの探索過程は、専用の演算装置、例えばいわゆる状態オートマトン（Ｆｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ）によって協調調整され、実行される。
【００１９】
有利な方法として、探索過程の複数のタイムウィンドウの個数は、本来のデータ伝送のための複数のタイムウィンドウの個数に等しいものとする。従って本発明の方法に従ってデータを伝送（受信又は送信）したい場合、未来のタイムスロットのために順次探索過程を実行し、次に本来のデータ伝送（データの送信又は受信）を実行する。未来の複数のタイムスロットのための本来のデータ伝送と、さらにその後の未来の複数のタイムスロットのための探索過程とを、交互に平行して行う場合、それら未来のタイムスロットの個数は、本来のデータ伝送のためのものと、探索過程のためのものとが等しくなる必要があり、これは、中間メモリの両者の格納領域の間で、未来のタイムスロットの個数に相当する個数のデータフィールドを、その都度包括的に切り替えられるようにするためである。
【００２０】
従って次のことを提案する。
すなわち、中間メモリは区分されているものとし、その際中間メモリの第１の部分には、データ伝送のため、現在のタイムウィンドウと、後続する複数のタイムウィンドウとのための、メッセージのポジションがファイルされるものとする。この場合後者のタイムウィンドウのためには、メッセージメモリにおけるメッセージのポジションが、中間メモリにすでにファイルされているものとする。そして中間メモリの第２の部分では、探索過程のため、データ伝送の最後のタイムウィンドウに続くタイムウィンドウと、後続する複数のタイムウィンドウとのためのメッセージのポジションがファイルされるものとする。
【００２１】
本発明のもう１つの有利な発展形では、次のことを提案する。
メッセージメモリに格納されるべきメッセージには、第１のデータ範囲を持つ第１のデータと、第２のデータ範囲を持つ第２のデータとが含まれる。第１のデータはメッセージ各１個につき、メッセージメモリのヘッダセグメントにおいて、そのヘッダ領域各１個に格納される。第２のデータはメッセージに各１個につき、データセグメントにおいて、データ領域各１個に格納される。メッセージメモリのヘッダセグメントとデータセグメントとへの区分と、データセグメントおけるデータ領域の個数と大きさの選択は、好ましくはメッセージメモリの構成の際、要件に応じて可変的に行うものとする。このため、様々な利点が得られる。ユーザは、比較的小さいデータフィールドをもつメッセージを比較的多数用いたいのか、比較的大きいデータフィールドを持つメッセージを比較的少数用いたいのか、プログラミングの際に決定することができる。大きさの異なるデータ領域を持つメッセージを構成する際でも、既存のメモリを最適に活用することができる。ユーザは、異なるメッセージに対して、１つのデータ領域を共通に用いることができる。従って通信モジュールの通信コントローラを１つの集積回路上で実現する際、使用されるメモリ、特にＲＡＭメモリのメモリ深さを適合させることにより、メッセージメモリの大きさをアプリケーション要件に正確に適合させることができ、しかもその際、通信コントローラ又は通信モジュールのそのほかの機能が変更されることはない。
【００２２】
メッセージメモリの構成は、ヘッダセグメントを介してのみ行われる。ヘッダ領域ではメッセージのために、メッセージを伝送（受信又は送信）したいチャネル、サイクル、タイムスロットが確定される。そのほかメッセージを構成する際に、メッセージメモリのデータセグメントにおけるデータ部の大きさ、データ部の開始を示すポインタ、それにそのメッセージが送信されるものなのか、受信されるものなのかという情報を、確定することができる。
【００２３】
本発明のもう１つの実施形態では、メッセージメモリのヘッダ領域で、メッセージごとに１つの識別コードがファイルされる。この識別コードは各メッセージを識別し、この識別コードによって、メッセージをある特定の通信サイクルに、そしてそのサイクル内のある特定のタイムウィンドウに、割り当てることができる。この識別コードがファイルされているヘッダ領域の部分は、識別フィールドとも呼ばれる。
【００２４】
有利な方法として、探索過程の間に着目され、かつ複数の後続するタイムウィンドウで送信又は受信されるメッセージのため、中間メモリに２つのフィールドを設ける。この場合第１のフィールドには、メッセージメモリにファイルされているメッセージの対応するポジションをさすポインタがファイルされる。第２のフィールドには、メッセージメモリにファイルされているメッセージのステータスがファイルされる。好ましくはこのポインタは、メッセージメモリにファイルされているメッセージの、ヘッダセグメントでヘッダ領域に格納されている第１のデータを示すものとする。
【００２５】
メッセージメモリにファイルされているメッセージのステータスとして、中間メモリに好ましくは次のような情報をファイルする。すなわち、着目されたタイムウィンドウのために、そもそも受信又は送信される何らかのメッセージがあるのか（‘ｅｍｐｔｙ’）、そして／又はそのメッセージを送信すべきなのか（‘ｔｘ＿ｂｕｆ’）、受信すべきなのか（‘ｒｘ＿ｂｕｆ’）という情報である。そのメッセージが送信も受信もされるべきでない場合は、ステータスは‘ｅｍｐｔｙ’にセットされる。
【００２６】
現在有効なＦｌｅｘＲａｙ仕様書ｖ２．１と、ＦｌｅｘＲａｙ通信システムを実現するため現在利用できるハードウェア及びソフトウェアのコンポーネントの場合、次のようにすれば特に有利である。すなわち、メッセージメモリ内のメッセージのポジションを確認するため、後続する４のタイムウィンドウそれぞれのために、規則的間隔をもって、このメッセージメモリを前もって探索し、探索過程の結果として、後続する４つのタイムウィンドウ内で送信又は受信されるメッセージのポジションを、中間メモリ内にファイルするのである。当然のことながらこの探索過程を、２つだけ又は４つ以上のタイムウィンドウのためにも、前もって実行することができる。好ましくは、あるタイムスロットのために探索過程が前もって実行される場合、そのタイムスロットの個数を集合２ｘに含まれる数とし、ここでｘは１より大きい自然数全てとする。従ってタイムスロットの個数として好ましいのは、２、４、８、１６、３２、．．．である。
【００２７】
本発明の１つの好ましい実施形態として、次のことを提案する。すなわち、後続する複数のタイムウィンドウのためにメッセージメモリの探索過程の際、下記の判定基準の１つ又は複数に従って探索する。
―着目された伝送チャネルのためのメッセージが、メッセージメモリに格納されているかどうか確認する。
―着目された通信サイクルのためのメッセージが、メッセージメモリに格納されているかどうか確認する。
―後続する複数のタイムウィンドウのためのメッセージが、メッセージメモリに格納されているかどうか確認する。
―確認されたメッセージが、送信又は受信されるべきメッセージであるかどうか確認する。
【００２８】
メッセージメモリ内の探索過程の際に、その時点で着目されたチャネル（チャネルＡ又はチャネルＢ）に対し、その時点の通信サイクルのため、そして着目された未来のタイムスロットのため、送信されるべきメッセージが見出される場合、着目されたタイムスロットに対応する中間メモリ内の箇所に、‘Ｔｘ＿ｂｕｆ’がファイルされる。メッセージメモリ内の探索過程の際に、その時点で着目されたチャネル（チャネルＡ又はチャネルＢ）に対し、その時点の通信サイクルに対し、そして着目された未来のタイムスロットに対し、受信されるべきメッセージのためのデータフィールドが見出される場合、着目されたタイムスロットに対応する中間メモリ内の箇所に、‘Ｒｘ＿ｂｕｆ’がファイルされる。メッセージメモリ内の探索過程の際に、その時点で着目されたチャネル（チャネルＡ又はチャネルＢ）に対し、その時点の通信サイクルに対し、そして着目された未来のタイムスロットに対し、送信されるべきメッセージも、受信されるべきメッセージのためのデータフィールドも見出されない場合で、かつ探索過程の開始時において着目されたタイムスロットに対応する中間メモリ内の箇所に、‘ｅｍｐｔｙ’がファイルされていない場合、当該箇所に‘ｅｍｐｔｙ’がファイルされる。
【００２９】
探索過程の際、メッセージメモリにファイルされているメッセージについて、下記に挙げる情報が照会される。
―ＣＨ  Ａ，ＣＨ  Ｂ：あるチャネルのためにそのメッセージが予定されている場合、そのチャネルが着目されたチャネルに対応するかどうか、確認するためである。
―Ｃｙｃｌｅ  Ｃｏｄｅ：ある通信サイクルのためにそのメッセージが予定されている場合、その通信サイクルが着目された通信サイクルに対応するかどうか、確認するためである。
―Ｆｒａｍｅ  ＩＤ：あるタイムスロットのためにそのメッセージが予定されている場合、そのタイムスロットが着目されたタイムスロットに対応するかどうか、確認するためである。
―ＴＸＭ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｍｏｄｅ）：そのメッセージが送信のために予定されているのか（ＴＸＭ＝１）、受信のために予定されているのか（ＴＸＭ＝０）を確認するためである。
【００３０】
照会される情報は、好ましくは上記のステータスビット（ＣＨ  Ａ，ＣＨ  Ｂ，Ｃｙｃｌｅ  Ｃｏｄｅ，ＴＸＭ）の中で、第１のデータの一部として、メッセージメモリのヘッダセグメントのヘッダ領域に含まれているものとする。
【００３１】
本発明の課題のもう１つの解決法としては、冒頭に挙げた種類の通信モジュールを出発点として、次のことを提案する。すなわち、メッセージメモリにおけるメッセージのポジションを確認するため、通信モジュールは、複数の後続のタイムウィンドウのために、それぞれ規則的間隔で、メッセージメモリを前もって探索する手段と、そのメッセージメモリに割り当てられた中間メモリと、複数の後続するタイムウィンドウで送信又は受信されるメッセージのポジションを探索過程の結果として中間メモリにファイルする手段とを備えるものとする。
【００３２】
本発明の有利な１つの発展形は、メッセージメモリを探索する手段と、確認されたメッセージのポジションを中間メモリにファイルする手段とは、状態オートマトンとして形成されることを提案する。
【００３３】
本発明の１つの好ましい実施形態は、通信モジュールが、ＦｌｅｘＲａｙ仕様書に従って伝送されたメッセージを、受信、送信及び中間格納するためのＦｌｅｘＲａｙ通信モジュールとして、形成されることを提案する。
【００３４】
有利な方法として、メッセージメモリを探索する手段と、確認されたメッセージのポジションを中間メモリにファイルする手段とが、請求項２〜１２のいずれか一項に記載の方法を実行するために形成されることを提案する。
【００３５】
本発明の課題のもう１つの解決法は、冒頭に挙げた種類の通信システムのノードを出発点として、次のことを提案する。すなわち、メッセージメモリにおけるメッセージのポジションを確認するため、通信モジュールは、複数の後続するタイムウィンドウのために、規則的間隔で、メッセージメモリを前もって探索する手段と、そのメッセージメモリに割り当てられた中間メモリと、複数の後続するタイムウィンドウで送信又は受信されるメッセージのポジションを、探索過程の結果として中間メモリにファイルする手段とを備えるものとする。
【００３６】
本発明の１つの有利な発展形は、ノードがホストコンピュータを備え、このコンピュータは、通信モジュールとともに、１つの共通な半導体コンポーネントに組み込まれることを提案する。このホストコンピュータは、好ましくはマイクロプロセッサとして形成されるものとする。
【００３７】
本発明の１つの好ましい実施形態は、通信モジュールが請求項１４〜１６のいずれか一項に従って形成されることを提案する。
【００３８】
最後に本発明の課題のもう１つの解決法として、冒頭に挙げた種類の通信システムを出発点として、次のことを提案する。すなわち、メッセージメモリにおけるメッセージのポジションを確認するため、通信モジュールは、複数の後続するタイムウィンドウのために、規則的間隔で、メッセージメモリを前もって探索する手段と、そのメッセージメモリに割り当てられた中間メモリと、複数の後続するタイムウィンドウで送信又は受信されるメッセージのポジションを探索過程の結果として中間メモリにファイルする手段とを、備えるものとする。
【００３９】
本発明の１つの有利な発展形は、通信モジュールが、請求項１４〜１６のいずれか一項に従って形成されることを提案する。
【００４０】
本発明のそのほかの利点と有利な実施形態を、各請求項の諸内容、図面と下記の説明に記載する。
【発明を実施するための最良の形態】
【００４１】
図１は、ＦｌｅｘＲａｙ通信リンク１０１に、すなわちＦｌｅｘＲａｙ通信システムの物理層に、ノード又はホスト１０２を接続するためのＦｌｅｘＲａｙ通信モジュール１００を、模式的に示す。通信モジュール１００は、ＦｌｅｘＲａｙ−ＩＰモジュール、又はＥ−Ｒａｙコントローラとも呼ばれる。機能的に見ると、通信モジュール１００は、ＦｌｅｘＲａｙ通信コントローラを備える。ＦｌｅｘＲａｙ通信モジュール１００は、接続１０７を介してノード又はノードプロセッサ１０２（ホストプロセッサの場合もあり）と、接続１０６を介して通信リンク１０１と接続されている。伝送時間及びデータ完全性の点で問題のない接続を行うため、ＦｌｅｘＲａｙ通信モジュール１００では、主として３つの配置物が模式的に区別されている。
【００４２】
この場合第１の配置物１０５は、伝送されるメッセージ、すなわちノード１０２によって送信又は受信されるメッセージの少なくとも一部を格納するため、特に中間ファイルするために用いられる。ノード１０２とこの第１の配置物１０５との間には、接続１０７及び１０８を介して、第２の配置物１０４が接続されている。同様に通信リンク１０１と第１の配置物１０５との間には、接続１０６及び１０９を介して第３の配置物１０３が接続されている。これによりメッセージ、特にＦｌｅｘＲａｙメッセージの一部として、第１の配置物１０５へ、又は、同配置物から、非常にフレキシブルなデータの入力と出力が得られ、かつ最適な速度とともにデータの完全性が保証される。
【００４３】
図２は、１つの好ましい実施形態における通信モジュール１００を若干詳細に示す。各接続１０６〜１０９をも詳細に示す。ここで第２の配置物１０４は、インプットバッファメモリ又は入力バッファメモリ２０１（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  ＩＢＦ）、アウトプットバッファメモリ又は出力バッファメモリ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  ＯＢＦ）、並びにインタフェースモジュールを備える。このインタフェースモジュールは、２つの部分２０３及び２０４からなり、一方のサブモジュール２０３（Ｇｅｎｅｒｉｃ  ＣＰＵ  Ｉｎｔｅｒｆａｃｅ，ＧＩＦ）は、ノードに依存せず、第２のサブモジュール２０４は、ノード固有のものである。ノード固有のサブモジュール２０４（Ｃｕｓｔｏｍｅｒ  ＣＰＵ  Ｉｎｔｅｒｆａｃｅ  ＣＩＦ）は、ノード固有のホストＣＰＵ１０２、すなわち顧客固有のノードを、残りのＦｌｅｘＲａｙ通信モジュール１００と接続する。そのため双方向データライン２１６、アドレスライン２１７、及びコントロールインプット２１８を設ける。同様に割り込みアウトプット２１９を設ける。
【００４４】
ノード固有のサブモジュール２０４は、ノードに依存しないサブモジュール２０３と接続状態にある。すなわちＦｌｅｘＲａｙ通信モジュール１００は、総称的すなわち一般的なＣＰＵインタフェースを備え、このインタフェースに、対応するノード固有のサブモジュール２０４、すなわちＣｕｓｔｏｍｅｒ  ＣＰＵ  Ｉｎｔｅｒｆａｃｅ  ＣＩＦを介して、顧客固有のさまざまなホストＣＰＵを多数接続することができる。これにより、ノードに応じて、ノード固有のサブモジュール２０４だけをさまざまに変えなければならない。しかしそのほかの通信モジュール１００は、ノードに依存せず、つねに同じ形状とすることができ、これはいちじるしいコスト軽減を意味する。ノード固有のサブモジュール２０４は、例えば、ＦｌｅｓＲａｙ通信モジュール１００のビット幅（例えば１６Ｂｉｔ）を、繋がれたホストＣＰＵ１０２のビット幅（例えば８、１６又は３２Ｂｉｔ）に適合させる。
【００４５】
インプットバッファメモリ又は入力バッファメモリ２０１とアウトプットバッファメモリ又は出力バッファメモリ２０２は、１つの共通なメモリモジュールの中に、又は別々のメモリモジュールの中に、形成することができる。この場合、メッセージを中間格納するための入力バッファメモリ２０１が、ホストＣＰＵ１０２からメッセージメモリ３００への伝送のために用いられる。入力バッファモジュール２０１は、好ましくは次のような２つの完全なメッセージを格納できるようなものとして形成する。それらのメッセージとは、それぞれが１つのヘッダセグメントもしくはヘッダセグメントＨＳ、特には構成データを含む同ヘッダセグメントと、１つのデータセグメントＤＳ又はペイロードセグメントとからなるものである。この場合、入力バッファメモリ２０１は、２つの部分（サブバッファメモリとシャドウメモリと）から形成される。従って、入力バッファメモリ２０１の両部分に交代に書き込むことにより、又はアクセスの交代により、ノードＣＰＵ１０２とメッセージメモリ３００との間の伝送を速めることができる。
【００４６】
同様にして、メッセージを中間格納するためのアウトプットバッファメモリ又は出力バッファメモリ（Ｏｕｔｐｕｔ−Ｂｕｆｆｅｒ  ＯＢＦ）２０２が、メッセージメモリ３００からノードＣＰＵ１０２への伝送のために用いられる。この場合、出力バッファメモリ２０２も、ヘッダセグメントＨＳ、特に構成データを含む同ヘッダセグメントと、データセグメントＤＳ、すなわちペイロードセグメントとからなる２つの完全なメッセージを格納できるものとして形成される。ここでも出力バッファメモリ２０２は、２つの部分、すなわちサブバッファメモリとシャドウメモリとに区分される。従ってここでも、出力バッファメモリ２０２の両部分を交代に読み出すことにより、又はアクセス交代により、メッセージメモリ３００とノードＣＰＵ又はホストＣＰＵ１０２との間の伝送を速めることができる。第２の配置物１０４は、ブロック２０１〜２０４からなり、第１の配置物１０５と図示のように接続されている。
【００４７】
配置物１０５は、メッセージアドミニストレータ２００（Ｍｅｓｓａｇｅ  Ｈａｎｄｌｅｒ  ＭＨＤ）と、メッセージメモリ３００（Ｍｅｓｓａｇｅ  ＲＡＭ）と、からなる。メッセージアドミニストレータ２００は、入力バッファメモリ２０１及び出力バッファメモリ２０２と、メッセージメモリ３００との間のデータ転送を制御する。同様にこのメッセージアドミニストレータは、第３の配置物１０３を介して、別方向のデータ伝送を制御する。メッセージメモリ３００は、好ましくは単一ポートＲＡＭとして実現されるものとする。このＲＡＭメモリは、メッセージ又はメッセージオブジェクト、すなわち本来のデータを、構成データやステータスデータとともに格納する。メッセージメモリ３００の詳細な構造を図３に示した。いずれのメッセージオブジェクトも、ヘッダセグメントＨＳと、データセグメントＤＳと、からなる。ヘッダ領域ＨＳには、識別フィールドやそのほかの構成・ステータス情報ＫＤが、ポインタＤＰとともにファイルされている。このポインタは、メッセージメモリ３００のデータセグメントＤＳにおけるデータ領域ＤＢの開始を示す。
【００４８】
第３の配置物１０３は、ブロック２０５〜２０８からなる。この配置物１０３は、物理層（ＦｌｅｘＲａｙ物理層）の両チャネル、Ａ（ＣＨ  Ａ）及びＢ（ＣＨ  Ｂ）に応じて、それぞれがデータ方向を２つ持つ２つのデータ経路に区分される。このことは接続２１３及び２１４によって明らかである。ここではその２つのデータ方向を、チャネルＡに対しては、受信のためのＲ×Ａと送信のためのＴ×Ａ、また、チャネルＢに対しては、Ｒ×Ｂ及びＴ×Ｂとして示す。接続２１５は、選択的双方向型の制御インプットを示す。第３の配置物１０３の接続は、チャネルＢのための第１のバッファメモリ２０５と、チャネルＡのための第２のバッファメモリ２０６とを経由して行われる。これら両者のバッファメモリ（Ｔｒａｎｓｉｅｎｔ  Ｂｕｆｆｅｒ  ＲＡＭ；ＲＡＭ  Ａ及びＲＡＭ  Ｂ）は、第１の配置物１０５からの、又は、同配置物へのデータ伝送のための中間メモリとして用いられる。両チャネルＡ、Ｂに応じて、これら両バッファメモリ２０５及び２０６は、それぞれインタフェースモジュール２０７及び２０８と接続されている。これらインタフェースモジュールは、ＦｌｅｘＲａｙプロトコルコントローラ又はバスプロトコルコントローラを含み、これらコントローラは、送信／受信シフトレジスタ及びＦｌｅｘＲａｙプロトコルＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅからなる。従って両バッファメモリ２０５及び２０６は、インタフェースモジュール又はＦｌｅｘＲａｙプロトコルコントローラ２０７及び２０８のシフトレジスタと、メッセージメモリ３００との間でデータ伝送するための中間メモリとして用いられる。ここでも有利な方法として、いずれのバッファメモリ２０５又は２０６によっても、データフィールドが、すなわち２つのＦｌｅｘＲａｙメッセージのペイロードセグメント又はデータセグメントＤＳが格納されるものとする。
【００４９】
そのほか通信モジュール１００には、グローバルタイムユニット（Ｇｌｏｂａｌ  Ｔｉｍｅ  Ｕｎｉｔ  ＧＴＵ）２０９を図示する。このユニットは、ＦｌｅｘＲａｙにおけるタイムスロットパターンの表示、すなわちマイクロティックμＴと、マクロティックＭＴとを受け持つ。同様にこのグローバルタイムユニット２０９を介して、サイクルカウンタ（Ｃｙｃｌｅ  Ｃｏｕｎｔｅｒ）のフォールトトレラントなクロック同期と、ＦｌｅｘＲａｙの静的及び動的セグメントにおける時間的経過が制御される。通信システムのノード１０２は、みずからのローカルなクロックを備え、このクロックがグローバルタイムに同期される。クロック同期のため、通信サイクルの静的な部分で同期情報が伝送される。クロック同期は、いわゆるＮｅｔｗｏｒｋ  Ｉｄｌｅ  Ｔｉｍｅ（ＮＩＴ）の間、各通信サイクルの終了時に行われる。現時点のＦｌｅｘＲａｙ仕様書に記載の特殊なアルゴリズムを用いて、コンポーネント１０２のローカルなクロックタイムを修正し、全てのローカルなクロックがグローバルタイムに同期して動作するようにする。
【００５０】
ブロック２１０は、一般的なシステム制御ユニット（Ｓｙｓｔｅｍ  Ｕｎｉｖｅｒｓａｌ  Ｃｏｎｔｒｏｌ  ＳＵＣ）であって、これにより、ＦｌｅｘＲａｙ通信コントローラ又は通信モジュール１００の操作モードが制御される。それに含まれるのがウェイクアップと、スタートアップと、再インテグレーション又はインテグレーションと、ノーマル操作（ｎｏｒｍａｌ  ｏｐｅｒａｔｉｏｎ）と、パッシブ操作（ｐａｓｓｅｉｖｅ  ｏｐｅｒａｔｉｏｎ）と、である。ブロック２１１は、ネットワーク−及びエラーマネジメント（Ｎｅｔｗｏｒｋ−  ａｎｄ  Ｅｒｒｏｒ  Ｍａｎａｇｅｍｅｎｔ  ＮＥＭ）であって、ＦｌｅｘＲａｙプロトコル仕様書ｖ２．１に記載されているものである。最後にブロック２１２は、割り込み制御ユニット（Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌ  ＩＮＴ）を示し、これはステータス−及び誤り割込みフラッグ（Ｓｔａｔｕｓ−  ａｎｄ  Ｅｒｒｏｒ  Ｉｎｔｅｒｒｕｐｔｆｌａｇｓ）を管理し、ノードＣＰＵ１０２への割り込みアウトプット２１９を制御する。そのほかブロック２１２は、絶対的及び相対的タイマを備えて、タイマ割り込み、すなわちＴｉｍｅｒ−Ｉｎｔｅｒｒｕｐｔを生じる。
【００５１】
ＦｌｅｘＲａｙネットワーク又はＦｌｅｘＲａｙ通信システムにおける通信のため、メッセージオブジェクト又はメッセージを、２５４データビットまでのＭｅｓｓａｇｅ  Ｂｕｆｆｅｒ３００の中に構成することができる。このメッセージメモリ３００は、特にはメッセージＲＡＭメモリ（Ｍｅｓｓａｇｅ  ＲＡＭ）とし、例えば、メッセージオブジェクトを最大６４個まで格納できるものとする。メッセージの処理又は管理に関する全ての機能は、メッセージアドミニストレータ又はＭｅｓｓａｇｅ  Ｈａｎｄｌｅｒ２００で実行される。これは例えば、まずアクセプタンスフィルタリング機能、次にＦｌｅｘＲａｙプロトコルコントローラブロック２０７及び２０８の両者と、メッセージメモリ３００、すなわちＭｅｓｓａｇｅＲＡＭとの間のメッセージ伝送、そして、次に送信者順序のチェック、及び構成データ又はステータスデータの供給である。
【００５２】
外部のＣＰＵ、すなわち外部のプロセッサ、ノードプロセッサ、又はホスト１０２は、ノード固有の部分２０４を含むインタフェースを経由して、ＦｌｅｘＲａｙ通信モジュールのレジスタに直接アクセスすることができる。このとき、多数のレジスタが用いられる。それは、ＦｌｅｘＲａｙプロトコルコントローラすなわちインタフェースモジュール２０７及び２０８、メッセージアドミニストレータ（Ｍｅｓｓａｇｅ  Ｈａｎｄｌｅｒ  ＭＨＤ）２００、グローバルタイムユニット（Ｇｌｏｂａｌ  Ｔｉｍｅ  Ｕｎｉｔ  ＧＴＵ）２０９、一般的なシステムコントローラ（Ｓｙｔｅｍ  Ｕｎｉｖｅｒｓａｌ  Ｃｏｎｔｒｏｌｌｅｒ  ＳＵＣ）２１０、ネットワーク−及びエラーマネジメントユニット（Ｎｅｔｗｏｒｋ−  ａｎｄ  Ｅｒｒｏｒ  Ｍａｎｅｇｅｍｅｎｔ  ＵｎｉｔＮＥＭ）２１１、割り込みコントローラ（Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ  ＩＮＴ）２１２を、そしてまたＭｅｓｓａｇｅ  ＲＡＭすなわちメッセージメモリ３００へのアクセスを、構成し、制御するためであり、そして対応するステータスを表示するためである。これらレジスタの少なくとも一部を、図４〜６及び７〜９に詳しく示す。ここに述べる本発明のＦｌｅｘｒａｙ通信モジュール１００によって、ＦｌｅｘＲａｙ仕様書Ｖ２．１が簡単に適用できるようになり、これによりＡＳＩＣ、又は対応するＦｌｅｘＲａｙ機能を持つ又はマイクロコントローラを、簡単に生成できるようになる。
【００５３】
図３は、メッセージメモリ３００の区分を詳細に示す。ＦｌｅｘＲａｙ通信コントローラに対してＦｌｅｘＲａｙプロトコル仕様書が求める機能のためには、送信されるメッセージを供給するため（Ｔｒａｎｓｍｉｔｔ  Ｂｕｆｆｅｒ）、及びエラーなしに受信されたメッセージの格納するために（Ｒｅｃｅｉｖｅ  Ｂｕｆｆｅｒ）、メッセージメモリ３００が必要である。ＦｌｅｘＲａｙプロトコルは、０〜２５４バイトのデータ領域、すなわちペイロード領域を許容する。図２に示すように、メッセージメモリ３００は、ＦｌｅｘＲａｙ通信モジュール１００の一部である。下記に説明する方法ならびにそれに対応するメッセージメモリ３００は、送信されるメッセージと受信されたメッセージの格納、特にＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）を用いて行う当該格納に関するものである。この場合、指定された大きさのメッセージメモリ３００に可変的個数のメッセージを格納することが、本発明の機構によって可能となる。この場合、格納可能なメッセージの個数は、各メッセージのデータ領域の大きさに依存する。それは、第１には、メッセージのデータ領域の大きさを制限することなく、必要なメモリ３００の大きさを最小限に抑えることができ、第２には、メモリ３００が最適に活用されることにある。下記では、ＦｌｅｘＲａｙ通信コントローラのための、特にＲＡＭ基盤のメッセージメモリ３００の可変的区分について、さらに詳しく説明したい。
【００５４】
具体例として例えば、固定ワード幅が、ｎビット、例えば８、１６、３２．．．ビット、かつ指定されたメモリ深さがｍワードのメッセージメモリ３００を設ける（ｍ、ｎは自然数）。この場合、メッセージメモリ３００は、２つのセグメント、すなわちヘッダセグメントＨＳ（ドイツ語でいうＫｏｐｆｓｅｇｍｅｎｔ）とデータセグメントＤＳ（Ｐａｙｌｏａｄ  Ｓｅｃｔｉｏｎ、Ｐａｙｌｏａｄ  Ｓｅｇｍｅｎｔ）とに区分される。１メッセージにつき、１ヘッダ領域ＨＢと１データ領域ＤＢとが生成される。従ってメッセージ０、１〜ｋ（ｋは自然数）に対して、ヘッダ領域ＨＢ０、ＨＢ１〜ＨＢｋ、及びデータ領域ＤＢ０、ＤＢ１〜ＤＢｋが生成される。従って１つのメッセージ中では、第１と第２のデータが区別される。第１のデータは、そのＦｌｅｘＲａｙメッセージに関する構成データ及び又はステータスデータに相当し、それぞれ１つのヘッダ領域ＨＢ（ＨＢ０、ＨＢ１、．．．ＨＢｋ）にファイルされる。伝送されるべき本来のデータに相当する第２のデータ（いわゆるユーザデータ）は、それぞれデータ領域ＤＢ（ＤＢ０、ＤＢ１、．．．ＤＢｋ）にファイルされる。従ってメッセージごとに第１のデータに対しては、第１のデータ範囲（ビット、バイト又はメモリワードを単位として測ったもの）が１つ、１つのメッセージの第２のデータに対しては、第２のデータ範囲（やはりビット、バイト又はメモリワードを単位として測ったもの）が１つ生じる。この場合、メッセージあたりの第２のデータ範囲は、さまざまに異なるものとすることができる。メッセージメモリ３００におけるヘッダセグメントＨＳとデータセグメントＤＳとの区分は可変的である。すなわち、両者領域ＨＳ、ＤＳ間に決められた境界はない。ヘッダセグメントＨＳとデータセグメントＤＳとの間の区分は、本発明においてはメッセージの個数ｋと、１つのメッセージ又はｋ個全てのメッセージの第２のデータ範囲、すなわち本来のユーザデータの範囲とに依存する。
【００５５】
本発明においては、各メッセージの構成データＫＤ０、ＫＤ１〜ＫＤｋに、ポインタエレメント又はデータポインタＤＰ０、ＤＰ１〜ＤＰｋがそれぞれ直接割り当てられる。特別な実施形態では、いずれのヘッダ領域ＨＢ０、ＨＢ１〜ＨＢｋにも、固定された個数、ここでは２個のメモリワードが割り当てられる。従って、つねに構成データＫＤ（ＫＤ０，ＫＤ１，．．．ＫＤｋ）と、ポインタエレメントＤＰ（ＤＰ０，ＤＰ１，．．．ＤＰｋ）とが、ともに１つのヘッダ領域ＨＢ（ＨＢ０，ＨＢ１，．．．ＨＢｋ）にファイルされている。これらヘッダ領域ＨＢを含むこのヘッダセグメントＨＳは、その大きさ又は第１のデータ範囲が、格納されるメッセージの個数ｋに依存する。このヘッダセグメントには、本来のメッセージデータＤ０、Ｄ１〜Ｄｋを格納するデータセグメントＤＳがつながる。このデータセグメント（又はデータセクション）ＤＳは、そのデータ範囲が、ファイルされているメッセージデータ（ユーザデータ）のそのときどきのデータ範囲に依存する。ここでは、ＤＢ０が６ワードで、ＤＢ１が１ワードで、ＤＢｋが２ワードである。従って各ポインタエレメントＤＰ０、ＤＰ１〜ＤＰｋは、各データ領域ＤＢ０、ＤＢ１〜ＤＢｋの開始、すなわち開始アドレスを示す。これら開始アドレスには、各メッセージ０、１〜ｋのデータＤ０、Ｄ１〜Ｄｋがファイルされている。従ってヘッダセグメントＨＳとデータセグメントＤＳとの間のメッセージメモリ３００の区分は、可変的であり、メッセージ自体の個数と、メッセージのそれぞれのデータ範囲と、第２のデータ範囲総計とに依存する。構成されるメッセージが少なくなると、ヘッダセグメントＨＳも小さくなる。そしてメッセージメモリ３００で割り当て解除された領域は、データを格納するデータセグメントＤＳへの追加として用いることができる。この可変性によって最適なメモリ活用が得られ、従ってより小さいメモリ３００を用いることも可能となる。割り当て解除されたデータセグメントＦＤＳ、特にその大きさは、格納されているメッセージの個数ｋと、メッセージそれぞれの第２のデータ範囲との組み合わせに同様に依存しているため、最小となり、０となる場合さえある。
【００５６】
従ってメッセージメモリ３００の区分が固定されている場合と比べて、次のような利点が得られる：ユーザはプログラミングの際、データフィールドが小さいメッセージを多数用いるのか、データフィールドが大きいメッセージを少数用いるのかを決定できる。データ領域ＤＢの大きさが異なるメッセージを構成する場合でも、既存の記憶スペースが最適に活用される。ユーザは、１つのデータ格納領域を、さまざまなメッセージのため共通に用いることができる。
【００５７】
ポインタエレメント（ＤＰ０、ＤＰ１、．．．ＤＰｋ）の使用だけでなく、第１と第２のデータ、すなわち構成データＫＤ（ＫＤ０、ＫＤ１，．．．ＫＤｋ）と、本来のデータＤ（Ｄ＝Ｄ０、．．．Ｄｋ）とを、指定可能な順序でファイルすることもできる。従ってヘッダセグメントＨＳにおけるヘッダ領域ＨＢ０〜ＨＢｋの順序と、データセグメントＤＳにおけるデータ領域ＤＢ０〜ＤＢｋの順序は、そのときどきに同一である。従って場合によっては、ポインタエレメントを省くこともできるであろう。しかしこの場合、個々のデータ領域ＤＢ０〜ＤＢｋの長さに関する情報が、アクセス可能である必要があろう。又はデータ領域ＤＢ０〜ＤＢｋ全てを同じ大きさとする。
【００５８】
１つの特別な実施形態では、メッセージメモリ３００に、エラー識別文字発生器、特にパリティビット発生器エレメントと、エラー識別文字テスタ、特にパリティビットテストエレメントとが割り当てられている。これはヘッダセグメントＨＳとデータセグメントＤＳとにおいて、正しい格納データを得るためである。そのためメモリワードごとに、又は領域（ヘッダ領域ＨＢ及び／又はデータ領域ＤＢ）ごとに、１つのチェックサム（Ｃｈｅｃｋｓｕｍ）を、特にパリティビットとして、一緒にファイルすることができる。そのほかのチェック識別文字、例えばＣＲＣ（Ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）、又はＥＣＣ（Ｅｒｒｏｒ  Ｃｏｄｅ  Ｃｏｒｒｅｃｔｉｏｎ）のような、より強力な識別文字が考えられる。
【００５９】
ＦｌｅｘＲａｙ通信コントローラを集積回路上に実現する場合、使用されるメモリのメモリ深さをアプリケーション要件に適合させることにより、メッセージメモリ３００の大きさを適合させることができる。この場合、通信コントローラのそのほかの機能が変更されることはない。
【００６０】
さらに図４〜６及び７〜９を用いて、ホストＣＰＵアクセスを、すなわち構成データ又はステータスデータ及び本来のユーザデータの、バッファメモリ配置物２０１及び２０２を介する書き込みと読み出しを、より詳しく説明する。この場合の目的は、データ完全性と同時に高い伝送速度が得られるように、データ伝送に分割を行うことである。この手順の制御はメッセージアドミニストレータ２００を介して行われるが、これについては後に図１０、１１及び１２でさらに詳しく説明する。
【００６１】
まず図４、５及び６は、ホストＣＰＵ又はノードＣＰＵ１０２が、インプットバッファメモリ２０１を介して行う、メッセージメモリ３００への書き込みアクセスを、詳しく説明する。そのため図４は、通信モジュール１００を再度示すが、この場合、見やすくするため、通信モジュール１００のうちここで関係ある部分だけを示す。それは第１には、プロセスの処理を担当するメッセージアドミニストレータ２００と、２つのコントロールレジスタ４０３及び４０４とであって、これらコントロールレジスタは、図示のように、メッセージアドミニストレータ２００の外部で、通信モジュール１００の中に取り付けることもできるし、メッセージアドミニストレータ２００自体の中に含めることもできる。この場合参照番号４０３は、インプットリクエストレジスタ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  Ｃｏｍｍａｎｄ  Ｒｅｑｕｅｓｔ  Ｒｅｇｉｓｔｅｒ）であって、４０４は、インプットマスクレジスタ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  Ｃｏｍｍａｎｄ  Ｍａｓｋ  Ｒｅｇｉｓｔｅｒ）である。従ってメッセージメモリ３００（Ｍｅｓｓａｇｅ  ＲＡＭ）に対するホストＣＰＵの書き込みアクセスは、中間接続されたインプットバッファメモリ２０１（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ）を介して行われる。このインプットバッファメモリ２０１は、分割され、又は二重に、この場合、サブバッファメモリ４００と、そのサブバッファメモリ４００に付属するシャドウメモリ４０１と、として設計されている。従って下記に説明するように、メッセージ又はメッセージオブジェクトに、又はメッセージメモリ３００のデータに、ホストＣＰＵ１０２が連続的にアクセスすることができ、これによりデータ完全性と、より早い伝送が得られる。アクセスの制御は、インプットリクエストレジスタ４０３及びインプットマスクレジスタ４０４を介して行われる。レジスタ４０３では、レジスタ４０３の各ビットポジションが数字０〜３１で表示されている。ここでは例えば、レジスタの幅を３２ビットとする。レジスタ４０４、及びレジスタ４０４のビットポジション０〜３１についても、同じことが当てはまる。
【００６２】
本発明においては、例えばレジスタ４０３のビットポジション０〜５、１５、１６〜２１及び３１が、手順制御に対して特別な機能を持つものとする。こうしてレジスタ４０３のビットポジション０〜５には、識別文字ＩＢＲＨ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  Ｒｅｑｕｅｓｔ  Ｈｏｓｔ）を、メッセージ識別文字として登録できる。同様にレジスタ４０３のビットポジション１６〜２１には、識別文字ＩＢＲＳ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  Ｒｅｑｕｅｓｔ  Ｓｈａｄｏｗ）を登録できる。同様にしてレジスタ４０３のビットポジション１５にはＩＢＳＹＨが、レジスタ４０３のビットポジション３１にはＩＢＳＹＳが、アクセス識別文字として登録されている。レジスタ４０４のポジション０〜２も、ラベリングされていて、この場合０及び１には、ＬＨＳＨ（Ｌｏａｄ  Ｈｅａｄｅｒ  Ｓｅｃｔｉｏｎ  Ｈｏｓｔ）及びＬＤＳＨ（Ｌｏａｄ  Ｄａｔａ  Ｓｅｃｔｉｏｎ  Ｈｏｓｔ）を用いて、さらなる識別文字がデータ識別文字として完全に登録されている。これらのデータ識別文字は、単純な形に、すなわちそれぞれ１ビットとして形成されている。レジスタ４０４のビットポジション“２”には、ＳＴＸＲＨ（Ｓｅｔ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ  Ｈｏｓｔ）と、スタート識別文字が書き込まれている。
【００６３】
下記には、インプットバッファ２０１を介してのメッセージメモリ３００に対する書き込みアクセスの手順を説明する。
【００６４】
ホストＣＰＵ１０２は、転送されるべきメッセージのデータをインプットバッファメモリ２０１に書き込む。この場合ホストＣＰＵ１０２は、メッセージメモリ３００のヘッダセグメントＨＳに対するメッセージの構成・ヘッダデータＫＤのみ、又はメッセージメモリ３００のデータセグメントＤＳに対するメッセージの本来の伝送されるべきユーザデータＤのみ、又はデータＫＤ、Ｄを両方とも書き込むことができる。メッセージのどの部分を、すなわち構成データＫＤ及び／又は本来のデータＤのどれを伝送すべきかは、インプットマスクレジスタ４０４の特殊なデータ識別文字ＬＨＳＨとＬＤＳＨとによって確定される。この場合、ヘッダデータ、すなわち構成データＫＤが伝送されるべきかどうかは、ＬＨＳＨ（Ｌｏａｄ  Ｈｅａｄｅｒ  Ｓｅｃｔｉｏｎ  Ｈｏｓｔ）によって確定され、データＤが伝送されるべきかどうかは、ＬＤＳＨ（Ｌｏａｄ  Ｄａｔａ  Ｓｅｃｔｉｏｎ  Ｈｏｓｔ）によって確定される。
【００６５】
インプットバッファメモリ２０１は、バッファメモリ４００とそれに付属するシャドウメモリ４０１とという２つの部分から形成され、交代にアクセスを行うものである。これにより、ＬＨＳＨ及びＬＤＳＨと対を成すものとして、さらに２つのデータ識別領域が設けられている。これら領域は、シャドウメモリ４０１に関するものである。レジスタ４０４のビットポジション１６及び１７におけるこれらデータ識別文字は、ＬＨＳＳ（Ｌｏａｄ  Ｈｅａｄｅｒ  Ｓｅｃｔｉｏｎ  Ｓｈａｄｏｗ）及びＬＤＳＳ（Ｌｏａｄ  Ｄａｔａ  Ｓｅｃｔｉｏｎ  Ｓｈａｄｏｗ）と表示される。これらの識別文字によって、シャドウメモリ４０１に関する伝送動作が制御される。
【００６６】
スタートビット又はスタート識別文字ＳＴＸＲＨ（Ｓｅｔ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ  Ｈｏｓｔ）が、インプットマスクレジスタ４０４のビットポジション“２”にセットされているとき、それぞれ伝送されるべき構成データＫＤ及び／又は本来のデータＤが、メッセージメモリ３００に転送された後、そのメッセージオブジェクトに対する送信リクエスト（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ）が、自動的にセットされる。すなわちこのスタート識別文字ＳＴＸＲＨによって、伝送されるべきメッセージオブジェクトの自動的送信が制御され、特には開始される。
【００６７】
シャドウメモリ４０１で上記の対となるのは、スタート識別文字ＳＴＸＲＳ（Ｓｅｔ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ  Ｓｈａｄｏｗ）である。この識別文字は、例えばインプットマスクレジスタ４０４のビットポジション“１８”に含まれ、ここでも最も単純な場合は１ビットとして形成されている。ＳＴＸＲＳの機能は、ＳＴＸＲＨの機能と同様であるが、シャドウメモリ４０１にのみ関する。
【００６８】
ホストＣＰＵ１０２がメッセージ識別文字を、特にメッセージメモリ３００におけるメッセージオブジェクト、かつインプットバッファメモリ２０１の転送先となる同メッセージオブジェクトのポジション又は番号を、インプットリクエストレジスタ４０３のビットポジション０〜５に、すなわちＩＢＲＨに従って書き込むとしよう。この場合、インプットバッファメモリ２０１のサブバッファメモリ４００と、付属するシャドウメモリ４０１とが交換される。又は、ホストＣＰＵ１０２とメッセージメモリ３００とから両サブメモリ４００及び４０１に対する各アクセスが、メモリ４００及び４０１間の半円形矢印に示すように交換される。この場合例えば、データ転送、すなわちメッセージメモリ３００へのデータ伝送も開始される。メッセージメモリ３００自体へのデータ伝送は、シャドウメモリ４０１から行われる。同時にレジスタ領域ＩＢＲＨ及びＩＢＲＳが交換される。同様にして、ＬＨＳＨ及びＬＤＳＨが、ＬＨＳＳ及びＬＤＳＳと交換される。同様にＳＴＸＲＨがＳＴＲＸＲＳと交換される。
【００６９】
従ってＩＢＲＳは、メッセージの識別文字、すなわち次のようなメッセージオブジェクトの番号を示す。それは、あるメッセージオブジェクトに対して伝送が、すなわちシャドウメモリ４０１からの転送が動作中であるとき、又はあるメッセージオブジェクトが、すなわちメッセージメモリ内のそのメッセージオブジェクトの領域が、最後のデータとして（構成データＫＤ及び／又はユーザデータＤ）、シャドウメモリ４０１から受け取られたときのメッセージオブジェクトの番号である。インプットリクエストレジスタ４０３のビットポジション“３１”における識別文字（ここでも例えば１ビットとする）ＩＢＳＹＳ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  Ｂｕｓｙ  Ｓｈａｄｏｗ）によって、１つの伝送が、シャドウメモリ４０１の関与とともに行われるかどうかが表示される。こうして例えば、ＩＢＳＹＳ＝１のとき、まさにシャドウメモリ４０１から伝送が行われ、ＩＢＳＹＳ＝０のときはその伝送は行われない。このＩＢＳＹＳビットは、例えばＩＢＲＨの書き込みによって、すなわちビットポジション“０”〜“５”の書き込みによって、レジスタ４０３にセットされる。これは、シャドウメモリ４０１とメッセージメモリ３００との間の転送が動作中であることを、表示するためである。メッセージメモリ３００へのこのデータ伝送終了後、ＩＢＳＹＳは再びリセットされる。
【００７０】
シャドウメモリ４０１からのデータ転送がちょうど動作中、ホストＣＰＵ１０２は、次に転送されるべきメッセージを、インプットバッファメモリ２０１又はサブバッファメモリ４００に書き込む。もう１つのアクセス識別文字ＩＢＳＹＨ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  Ｂｕｓｙ  Ｈｏｓｔ）が、例えばレジスタ４０３のビットポジション“１５”にあるが、このアクセス識別文字を用いて、上記の識別文字を精細化することができる。シャドウメモリ４０１とメッセージメモリ３００との間の伝送が動作中で、すなわちＩＢＳＹＳ＝１である間、ホストＣＰＵがちょうどＩＢＲＨを書き込むならば、すなわちレジスタ４０３のビットポジション“０”〜“５”に書き込みするならば、インプットリクエストレジスタ４０３にはＩＢＳＹＨがセットされる。動作中であった転送（伝送）が終了するとただちに、リクエストされた転送（ＳＴＸＲＨによるリクエスト。上記参照）が開始され、ＩＢＳＹＨビットは、リセットされる。このＩＢＳＹＳビットは、全時間を通じてセットされたままであるが、これは、データがメッセージメモリ３００に転送されることを表示するためである。全ての実施例で用いられるビットは全て、１ビット以上の識別文字として形成することができる。経済的な格納及び処理という理由からは、１ビットによる解決法が有利である。確実性と信頼正常の理由からは、複数ビットによる解決法が推奨されるであろう。
【００７１】
ここに説明したメカニズムによってホストＣＰＵ１０２は、メッセージメモリ３００に存在するメッセージオブジェクト、かつヘッダ領域ＨＢとデータ領域ＤＢからなる同メッセージオブジェクトに、データを連続して転送できるようになる。ただしこの場合、インプットバッファメモリ２０１に対するホストＣＰＵ１０２のアクセス速度が、通信モジュール１００（すなわちＦｌｅｓＲａｙＩＰモジュール）の内部のデータ転送速度より小さいか、それに等しいことが、前提条件となる。
【００７２】
図７、８及び９は、アウトプットバッファメモリ又は出力バッファメモリ２０２を経由して行われる、ホストＣＰＵ又はノードＣＰＵ１０２によるメッセージメモリ３００への読み出しアクセスを、詳しく説明する。そのため図７は、ここでも通信モジュール１００を示すが、この場合見やすくするため、通信モジュール１００のうち関係する部分だけを示す。これは第１には、手順の制御を担当するメッセージアドミニストレータ２００と、２つのコントロールレジスタ７０３及び７０４と、である。これらのコントロールレジスタは、図示のように通信モジュール１００内でメッセージアドミニストレータ３００の外に取り付けることもできるし、又はメッセージアドミニストレータ２００自体に含めることもできる。ここで番号７０３は、アウトプットリクエストレジスタ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  Ｃｏｍｍａｎｄ  Ｒｅｑｕｅｓｔ  Ｒｅｇｉｓｔｅｒ）であって、番号７０４は、アウトプットマスクレジスタ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  Ｃｏｍｍａｎｄ  Ｍａｓｋ  Ｒｅｇｉｓｔｅｒ）である。従ってメッセージメモリ３００に対するホストＣＰＵ１０２の読み出しアクセスは、中間接続されたアウトプットバッファメモリ２０２（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ）を介して行われる。このアウトプットバッファメモリ２０２は同様に、分割されて、又は二重に、この場合サブバッファメモリ７０１と、そのサブバッファメモリ７０１の１つに付属するシャドウメモリ７００と、として設計されている。従って下記に説明するように、メッセージもしくはメッセージオブジェクトに、又はメッセージメモリ３００のデータに、ホストＣＰＵ１０２が連続的にアクセスすることができる。これによりメッセージメモリ３００からホストＣＰＵ１０２へという反対方向でも、データ完全性と、より早い伝送とが得られる。アクセスの制御は、アウトプットリクエストレジスタ７０３及びアウトプットマスクレジスタ７０４を介して行われる。レジスタ７０３でも、レジスタ７０３の各ビットポジションが数字０〜３１で表示されている。ここでは例えばレジスタの幅を３２ビットとする。レジスタ７０４、及びレジスタ７０４のビットポジション０〜３１についても、同じことが当てはまる。
【００７３】
レジスタ７０３のビットポジション“０”〜“５”、“８”及び“９”、“１５”及び“１６”〜“２１”はここで、例えば読み出しアクセスの手順制御に対して、特別な機能を得る。こうしてレジスタ７０３のビットポジション“０”〜“５”には、識別文字ＯＢＲＳ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  Ｒｅｑｕｅｓｔ  Ｓｈａｄｏｗ）を、メッセージ識別文字として登録することができる。同様にレジスタ７０３のビットポジション“１６”〜“２１”には、識別文字ＯＢＲＨ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  Ｒｅｑｕｅｓｔ  Ｈｏｓｔ）を、登録することができる。アクセス識別文字としては、レジスタ７０３のビットポジション“１５”に、識別文字ＯＢＳＹＳ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  Ｂｕｓｙ  Ｓｈａｄｏｗ）を登録することができる。アウトプットマスクレジスタ７０４のビットポジション“０”及び“１”もラベリングされており、この場合ビットポジション“０”及び“１”には、ＲＤＳＳ（Ｒｅａｄ  Ｄａｔａ  Ｓｅｃｔｉｏｎ  Ｓｈａｄｏｗ）及びＲＨＳＳ（Ｒｅａｄ  Ｈｅａｄｅｒ  Ｓｅｃｔｉｏｎ  Ｓｈａｄｏｗ）を用いて、さらなる識別文字がデータ識別文字として登録される。例えばビットポジション“１６”及び“１７”には、ＲＤＳＨ（Ｒｅａｄ  Ｄａｔａ  Ｓｅｃｔｉｏｎ  Ｈｏｓｔ）及びＲＨＳＨ（Ｒｅａｄ  Ｈｅａｄｅｒ  Ｓｅｃｔｉｏｎ  Ｈｏｓｔ）により、さらなるデータ識別文字が設けられる。これらのデータ識別文字は、ここでも例えば最も単純な形態、すなわちそれぞれ１ビットとして形成されている。レジスタ７０３のビットポジション“９”には、スタート識別文字ＲＥＱが登録されている。そのほか切り替え識別文字ＶＩＥＷが設けられ、これは例えばレジスタ７０３のビットポジション“８”に登録されている。
【００７４】
ホストＣＰＵ１０２は、メッセージメモリ３００に含まれるメッセージオブジェクトのデータを要求する。そのためこのホストＣＰＵは、所望のメッセージの識別文字、すなわち特には所望のメッセージオブジェクトのポジション又は番号を、ＯＢＲＳに従って、すなわちレジスタ７０３のビットポジション０〜５に書き込む。この場合もホストＣＰＵは、反対方向の場合と同様に、すなわちメッセージの状態−又は構成−及びヘッダデータＫＤのみ、つまりヘッダ領域ＨＢにある当該データのみ、又はメッセージの本来伝送されるべきユーザデータＤ、つまりデータ領域ＤＢにある当該データ、又は両者のデータＫＤ、Ｄ、これら三者のいずれかを読み出すことができる。データのいずれの部分を、すなわちヘッダ領域ＨＢ及び／又はデータ領域ＤＢのいずれにある部分を伝送すべきかは、反対方向の場合と同様に、ＲＨＳＳ及びＲＤＳＳによって確定される。すなわちＲＨＳＳは、ヘッダデータＫＤを読み出すべきかどうかを表示し、ＲＤＳＳは、本来のデータＤを読み出すべきかどうかを表示する。
【００７５】
スタート識別文字は、メッセージメモリ３００からシャドウメモリ７００への伝送開始に用いる。すなわち、識別文字の最も単純な例として１ビットを用いる場合、アウトプットリクエストレジスタ７０３におけるビットポジション“９”にＲＥＱビットをセットすることにより、メッセージメモリ３００からシャドウメモリ７００への伝送が開始される。伝送が動作中であることを、再びアクセス識別文字によって、ここでは再び最も単純な例として、レジスタ７０３におけるＯＢＳＹＳビットによって表示する。衝突を避けるためには、ＯＢＳＹＳがセットされていないとき、すなわち伝送が動作中でないときに限って、ＲＥＱビットをセットできるようにすれば有利である。そうすればこの場合、メッセージメモリ３００とシャドウメモリ７００との間のメッセージ転送も行われる。本来の手順は、第１には反対方向の場合と同様に、図４、５及び６に記載するような方法で制御し（相補的レジスタ利用）、行うこともできよう。第２にはバリエーションとして、追加的な識別文字によって、すなわちレジスタ７０３のビットポジション“８”における切り替え識別文字ＶＩＥＷによって、制御し、行うこともできよう。すなわち伝送終了後、ＯＢＳＹＳビットをリセットする。そしてアウトプットリクエストレジスタ７０３でＶＩＥＷビットをセットすることにより、サブバッファメモリ７０１と付属するシャドウメモリ７００とが交換され、又はそれらメモリへのアクセスが交換される。そしてホストＣＰＵ１０２は、メッセージメモリ３００から要求されたメッセージオブジェクト、すなわちそれに対応するメッセージを、サブバッファメモリ７０１から読み出すことができる。ここでも図４〜６における反対伝送方向と同様に、ＯＢＲＳとＯＢＲＨとのレジスタセルが交換される。同様にＲＨＳＳ及びＲＤＳＳは、ＲＨＳＨ及びＲＤＳＨと交換される。ここでも保護メカニズムとして、ＯＢＳＹＳがセットされていない場合、すなわち伝送が動作中でない場合に限って、ＶＩＥＷビットをセットできるようにする。
【００７６】
これにより、中間接続されたアウトプットバッファメモリ２０２を経由して、メッセージメモリ３００に対し、ホストＣＰＵ１０２の読み出しアクセスが行われる。このアウトプットバッファメモリ２０２は、インプットバッファメモリ２０１と同様に二重に設計されている。これは、メッセージメモリ３００にファイルされているメッセージオブジェクトに対し、ホストＣＰＵ１０２が連続的にアクセスできるようにするためである。この場合も、データ完全性が高く、伝送が早くなるという利点が得られる。
【００７７】
書き込みされたインプット及びアウトプットバッファメモリ２０１、２０２を用いることにより、ホストＣＰＵ１０２は、モジュール内部に待ち時間があっても、中断されることなくメッセージメモリ３００にアクセスすることができる。
【００７８】
データ完全性を確保するため、データ伝送、特に通信モジュール１００内における転送を、メッセージアドミニストレータ２００（Ｍｅｓｓａｇｅ  Ｈａｎｄｌｅｒ  ＭＨＤ）によって行う。これについては図１０に、メッセージアドミニストレータ２００の詳細を示す。メッセージアドミニストレータ２００の機能を、複数の状態機械又は状態オートマトン、すなわち有限オートマトン、いわゆるＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ（ＦＳＭ）によって示すことができる。この場合、少なくとも３つの状態機械を、そして１つの特別な実施形態として、４つのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅを設ける。第１のＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅは、ＩＯＢＦ−ＦＳＭ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  ＦＳＭ）５０１である。この状態機械ＩＯＢＦ−ＦＳＭは、インプットバッファメモリ２０１又はアウトプットバッファメモリ２０２の伝送方向を、２つのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅに、例えばＩＢＦ−ＦＳＭ（Ｉｎｐｕｔ  Ｂｕｆｆｅｒ  ＦＳＭ）とＯＢＦ−ＦＳＭ（Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  ＦＳＭ）とに区分することもできよう。これにより、最大５つの状態オートマトン（ＩＢＦ−ＦＳＭ、ＯＢＦ−ＦＳＭ、ＴＢＦ１−ＦＳＭ、ＴＢＦ２−ＦＳＭ及びＡＦＳＭ）が考えられよう。しかし１つの共通なＩＯＢＦ−ＦＳＭを設けるのが好ましい。
【００７９】
ここでは好ましい実施例として、少なくとも１つの第２のＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ  ＴＢＦ−ＦＳＭが、２つのブロック５０２及び５０３に区分される。そして、図２で説明したように、メモリ２０５及び２０６に対応する両チャネルＡ及びＢを操作する。この場合Ｆｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅを１つ設けて、両チャネルＡ及びＢを操作することもできる。又は―この好ましい実施例のように―チャネルＡに対しては、番号５０２を付した第１のＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ  ＴＢＦ１−ＦＳＭ（Ｔｒａｎｓｉｅｎｔ  Ｂｕｆｆｅｒ  １（２０６、ＲＡＭ  Ａ）ＦＳＭ）を、チャネルＢに対しては、番号５０３を付した第２の状態機械ＴＢＦ２−ＦＳＭ（Ｔｒａｎｓｉｅｎｔ  Ｂｕｆｆｅｒ  ２（２０５、ＲＡＭ  Ｂ）ＦＳＭ）を設けることもできる。
【００８０】
この好ましい実施例において、３つのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０１〜５０３へのアクセスを制御するためには、Ａｒｂｉｔｅｒ−Ｆｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ、ここではＡＦＳＭ５００を用いる。データ（ヘッダデータＫＤ及び／又はユーザデータＤ）は、クロックパルスによって通信モジュール１００の中を伝送される。このクロックパルスは、クロックパルス手段、例えばＶＯＣ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌａｔｏｒ）、水晶共振子などによって生成され、又はこのクロックパルス手段によって適合され、又は導き出されたものである。この場合クロックパルスＴを、モジュール１００の中で生成し、又は外部から例えばバスパルスとして供給することができる。Ａｒｂｉｔｅｒ−Ｆｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ  ＡＦＳＭ  ５００は、３つのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０１〜５０３の１つずつが交代で、特にクロックパルス周期Ｔの１つずつにおいて、メッセージメモリ３００にアクセスできるようにする。すなわち利用できる時間は、状態オートマトン５０１、５０２、５０３それぞれのアクセス要求に応じて、要求する状態オートマトン５０１〜５０３に分配される。ただ１つのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅからアクセス要求が行われる場合、この状態オートマトンは、その後の全てのクロックパルスＴを含むアクセス時間の１００％を得る。２つの状態オートマトンがアクセス要求を行うとき、いずれのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅも、アクセス時間の５０％を得る。また最後に、３つの状態オートマトンがアクセス要求を行うとき、いずれのＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅも、アクセス時間の３分の１を得る。これによりそのときどきに得られる帯域が最適に利用される。
【００８１】
第１のＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０１、すなわちＩＯＢＦ−ＦＳＭは、必要に応じて次の動作を行う：
―インプットバッファメモリ２０１から、メッセージメモリ３００における選択されたメッセージオブジェクトへのデータ転送。
―メッセージメモリ３００における選択されたメッセージオブジェクトから、アウトプットバッファメモリ２０２へのデータ転送。
【００８２】
チャネルＡに対する状態機械５０２、すなわちＴＢＦ１−ＦＳＭは、次の動作を行う：
―メッセージメモリ３００における選択されたメッセージオブジェクトから、チャネルＡのバッファメモリ２０６へのデータ転送。
―バッファメモリ２０６から、メッセージメモリ３００における選択されたメッセージオブジェクトへのデータ転送。
―メッセージメモリ３００における適切なメッセージオブジェクトの探索で、この場合、受信の場合であれば、メッセージオブジェクト（Ｒｅｃｅｉｖｅｒ  Ｂｕｆｆｅｒ  ２０２）は、チャネルＡで受信されたメッセージを格納するため、アクセプタンスフィルタリングの際に探索され、送信の場合であれば、チャネルＡで送信される次のメッセージオブジェクト（Ｔｒａｎｓｍｉｔ  Ｂｕｆｆｅｒ  ２０１）が探索される。
【００８３】
状態機械ＴＢＦ２−ＦＳＭ、すなわちブロック５０３におけるチャネルＢに対するＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｎｅ５０３も、上記と同様である。この状態機械は、メッセージメモリ３００における選択されたメッセージオブジェクトから、チャネルＢのバッファメモリ２０５へのデータ転送と、バッファメモリ２０５から、メッセージメモリ３００における選択されたメッセージオブジェクトへのデータ転送とを行う。探索機能もまた、状態機械ＴＢＦ１−ＦＳＭと同様に、メッセージメモリ３００内の適切なメッセージオブジェクトを求めて行われる。それが受信の場合であれば、メッセージオブジェクト（Ｒｅｃｅｉｖｅｒ  Ｂｕｆｆｅｒ  ２０２）は、チャネルＢで受信されたメッセージを格納するため、アクセプタンスフィルタリングの際に探索される。送信の場合であれば、チャネルＢで送信される次のメッセージ、又はメッセージオブジェクト（Ｔｒａｎｓｍｉｔ  Ｂｕｆｆｅｒ  ２０１）が探索される。
【００８４】
手順と伝送経路を図１１に再度示す。３つの状態機械５０１〜５０３が、各部品間のそれぞれのデータ伝送を制御する。ここでも１０２は、ホストＣＰＵで、２０１は、インプットバッファメモリで、２０２は、アウトプットバッファメモリである。３００は、メッセージメモリで、２０６と２０５は、チャネルＡ及びＢに対するそれぞれのバッファメモリである。インタフェースエレメント２０７及び２０８も図示した。第１の状態オートマトンＩＯＢＦ−ＦＳＭ５０１は、データ伝送Ｚ１Ａ及びＺ１Ｂ、すなわちインプットバッファメモリ２０１からメッセージメモリ３００へ、及びメッセージメモリ３００からアウトプットバッファメモリ２０２へのデータ伝送を制御する。しかし、このデータ伝送は、ワード幅が例えば３２ビットのデータバスを経由して行われ、この場合、この他どのようなビット数でも可能である。同じことが、メッセージメモリ３００とバッファメモリ２０６との間の伝送Ｚ２に対しても当てはまる。このデータ伝送は、状態機械ＴＢＦ１−ＦＳＭ５０２、すなわちチャネルＡに対する状態機械によって制御される。メッセージメモリ３００とバッファメモリ２０５との間の伝送Ｚ３は、状態オートマトンＴＢＦ２−ＦＳＭ５０３によって制御される。ここでもデータ伝送は、例えばワード幅３２ビットのデータバスを経由して行われるが、この場合、その他どのようなビット数でも可能である。完全なメッセージオブジェクトを共通な伝送経路を経由して伝送するには、通常は、複数のクロックパルス周期Ｔが必要である。従ってクロックパルス周期Ｔを基準とする伝送時間の配分は、アービタすなわちＡＦＳＭ５００によって行われる。従って、図１１は、Ｍｅｓｓａｇｅ  Ｈａｎｄｌｅｒ２００によってチェックされるメモリコンポーネント間のデータ経路を示す。メッセージメモリ３００に格納されているメッセージオブジェクトのデータ完全性を確保するには、同一時点で、図示の経路すなわちＺ１Ａ及びＺ１ＢならびにＺ２及びＺ３のうちただ１つにおいて、同時にデータを交換するのが有利であろう。
【００８５】
利用できるシステムクロックパルスＴを、アービタすなわちＡＦＳＭ５００は、要求する側の３つの状態オートマトン５０１〜５０３に、どのように分配するか、その例を図１２に示す。段階１では、状態オートマトン５０１及び状態オートマトン５０２のアクセス要求が行われる。従って総計算時間が半分ずつ、要求している状態オートマトン５０１、５０２両者に分配される。段階１におけるクロックパルス周期を基準にすると、このことは、状態オートマトン５０１がクロックパルス周期Ｔ１及びＴ３で、また状態オートマトン５０２はクロックパルス周期Ｔ２及びＴ４でアクセスできることを意味する。段階２では状態機械５０１によってのみアクセスが行われ、その結果、３つ全てのクロックパルス周期Ｔ５〜Ｔ７が、すなわちアクセス時間の１００％が、状態オートマトンＩＯＢＦ−ＦＳＭ５０１のものとなる。段階３では、３つ全ての状態オートマトン５０１〜５０３のアクセス要求が行われ、その結果、総アクセス時間の３分割が行われる。するとアービタＡＦＳＭ５００は、アクセス時間を例えば次のように分配する。すなわちクロックパルス周期Ｔ８及びＴ１１ではＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０１が、クロックパルス周期Ｔ９及びＴ１２ではＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０２が、そしてクロックパルス周期Ｔ１０及びＴ１３ではＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０３が、アクセスを得るように分配する。そして最後に、段階４では、２つの状態オートマトン５０２及び５０３によって、通信モジュール１００の両方のチャネルＡ及びＢに対するアクセスが行われ、その結果、クロックパルス周期Ｔ１４及びＴ１６では第２のＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０２に、Ｔ１５及びＴ１７では第３のＦｉｎｉｔｅ−Ｓｔａｔｅ−Ｍａｃｈｉｎｅ５０３に、アクセスが分配される。
【００８６】
従ってアービタ状態オートマトンＡＦＳＭ５００は、次の手配を行う。すなわち３つの状態機械５０１〜５０３のうち１つ以上が、メッセージメモリ３００に対するアクセスを要求する場合、クロックパルスに従い交代に、要求している状態機械に、アクセスが分配されるようにする。この手順によって、メッセージメモリ３００にファイルされているメッセージオブジェクトの完全性、すなわちデータ完全性が確保される。例えばホストＣＰＵ１０２は、アウトプットバッファメモリ２０２を介してメッセージオブジェクトを読み出し、その間に、ちょうど受信されたメッセージがこのメッセージオブジェクトに書き込まれる。従っていかなる要求が当初開始されたかに応じて、古い状態又は新しい状態が読み出され、その際メッセージメモリ３００自体の中のメッセージオブジェクトで、アクセスが衝突することはない。
【００８７】
本方法によって、ホストＣＰＵ１０２は、運転動作中にメッセージメモリ３００でメッセージオブジェクトを読み出し又は書き込む。その際、選択されたメッセージオブジェクトは、ホストＣＰＵ１０２がアクセスしている間、ＦｌｅｘＲａｙバス１０１の両チャネルＡ及びＢにおけるデータ交換への関与から、遮断されることはない（Ｂｕｆｆｅｒ  Ｌｏｃｋｉｎｇ）。同時にアクセスをクロックパルスごとにインタレーシングすることにより、メッセージメモリ３００にファイルされたデータの完全性が確保され、伝送速度は、全帯域が活用されることにも助けられて上昇する。
【００８８】
通信モジュール１００のメッセージメモリ３００には、通信のため予定されたメッセージオブジェクトが格納される。他方この通信には下記の任務が課される。
【００８９】
通信リンク１０１を経由してメッセージを受信する際、付属するメッセージオブジェクトをメッセージメモリ３００で見つけなければならない。受信されたメッセージを、メッセージメモリ３００内で、メッセージオブジェクトの対応するポジションに格納できるようにするためである。受信されたメッセージがメッセージメモリ３００に格納されるのは、受信されたメッセージの識別フィールドが、構成されたメッセージオブジェクト（いわゆる受信オブジェクト）の識別フィールドと一致する場合に限られる。構成された受信メッセージオブジェクトの識別フィールドは、メッセージメモリ３００の全体が、下記のメッセージオブジェクトを探索されることによって、確認される。
―着目されたチャネル（Ａ又はＢ）を経由して受信するために予定されているメッセージオブジェクト。
―着目された通信サイクルで受信するために予定されているメッセージオブジェクト。
―着目されたタイムスロットで受信するために予定されているメッセージオブジェクト。
―受信のため予定されているメッセージオブジェクト。
【００９０】
同様に時期に遅れることなく送信ウィンドウ開始時に、この送信ウィンドウに適したメッセージオブジェクト（送信オブジェクト）をメッセージメモリ３００で見つけ、送信のためレディ状態としなければならない。送信を待つメッセージオブジェクトが送信されるのは、送信されるメッセージの識別フィールドが、構成されたメッセージオブジェクト（いわゆる送信オブジェクト）の識別フィールドと一致する場合に限られる。構成された送信メッセージオブジェクトの識別フィールドは、メッセージメモリ３００の全体が、下記のメッセージオブジェクトを探索されることによって、確認される。
―着目されたチャネル（Ａ又はＢ）を経由して送信するために予定されているメッセージオブジェクト。
―着目された通信サイクルで送信するために予定されているメッセージオブジェクト。
―着目されたタイムスロットで送信するために予定されているメッセージオブジェクト。
―送信のため予定されているメッセージオブジェクト。
【００９１】
通信モジュールのリアルタイム性を確保するため、両者の場合とも、適切なメッセージオブジェクトを、メッセージメモリで時期に遅れず確認しなければならない。次のタイムウィンドウのためのメッセージオブジェクト３００が、メッセージメモリのどのポジションに存在するかがわかっていないので、メッセージメモリ３００は、タイムウィンドウごとに１回、完全に探索されなければならない。これには（特にメッセージメモリ３００が大きくなると）時間がかかり、通信システムのリアルタイム性を危険にさらし、又は損なう可能性がある。
【００９２】
本発明は、メッセージメモリを探索するための新しく、かつ改善された方法である。この方法の場合、メッセージメモリ３００に格納されているメッセージオブジェクトの識別フィールドは、それぞれ複数のタイムウィンドウ（又はタイムスロット）のためのものが、前もって探索される。この探索は、着目された複数のタイムウィンドウのために、メッセージメモリ３００のただ１回の探索過程によって行われる。従ってメッセージメモリ３００全体に探索過程を１回行うとき、それはつねに、１つの指定可能なグリッド内で着目された未来の複数のタイムウィンドウのためのものである。この場合グリッド内における探索過程実行時点の間隔は、１つのタイムウィンドウより大きく、そして複数のタイムウィンドウを含む。
【００９３】
特には、着目された未来の複数のタイムスロットのための探索過程の際、下記を行い、下記の判定基準により点検することを提案する。
―メッセージメモリ３００に、着目された伝送チャネルＣＨ  Ａ、ＣＨ  Ｂのためのメッセージオブジェクトが格納されているかどうか、確認する。
―メッセージメモリ３００に、着目された通信サイクルのためのメッセージオブジェクトが格納されているかどうか、確認する。
―メッセージメモリ３００に、着目された複数の後続するタイムウィンドウのためのメッセージオブジェクトが格納されているかどうか、確認する。
―確認されたメッセージオブジェクトが、送信又は受信されるべきオブジェクトであるかどうか、点検する。
【００９４】
メッセージメモリ３００内で１つ又は複数のメッセージオブジェクトを確認する場合、かつ、それらのオブジェクトが、上記要求事項の１つ又は複数、好ましくは全てを満足させる場合、メッセージメモリで見つけられたオブジェクトのポジションは、メッセージメモリ３００に割り当てられた中間メモリにファイルされる。この中間メモリを図１３に示し、その全体を参照番号６００で表す。中間メモリ６００は少なくとも、前もって着目されたタイムスロットのいずれのためにも、少なくとも１つのデータフィールドを備えるような大きさとする。図示の実施例では、メッセージメモリ３００が、４つのタイムウィンドウのグリッドにおいて、すなわち全部で４つだけのタイムウィンドウにおいて、探索される。もちろんこの探索は、その時点のただ１つのタイムウィンドウのためにだけでなく、同時に又はほぼ同時に複数の未来のタイムウィンドウのためにも行われる。従って、中間メモリ６００は、４つのデータフィールド６０１〜６０４を備える。これは、確認された最大４つのメッセージオブジェクトのポジションをファイルできるようにするためである。データフィールド６０１〜６０４のいずれにも、データワードを２つずつ、すなわちポインタｉとステータスｉをファイルすることができる。この場合ｉは、メッセージメモリ３００におけるデータフィールド６０１〜６０４の一意的な番号（又は識別文字）に相当する。好ましくはデータフィールド６０１を、第１の着目された未来のタイムウィンドウに、データフィールド６０２を第２の同タイムウィンドウに割り当て、以下データフィールド６０４まで同様とし、このデータフィールド６０４を最後に着目された未来のタイムウィンドウに割り当てるものとする。従って第１の着目された未来のタイムウィンドウのために、対応するメッセージオブジェクトがメッセージメモリ３００に確認されるならば、第１のタイムウィンドウｉのために確認されたメッセージオブジェクトのポインタｉとステータスｉとが、データフィールド６０１の両者のデータワードにファイルされる。
【００９５】
データワード・ポインタ０．．．３として、データフィールド６０１〜６０４に、それぞれメッセージメモリ３００における参照済みメッセージオブジェクトのポジション、例えば番号が格納されている。従ってデータワード・ポインタ０．．．３は、一種のポインタエレメント（いわゆるＤａｔａ−Ｐｏｉｎｔｅｒ）である。このポインタエレメントは、メッセージメモリ３００におけるメッセージオブジェクトの開始を、好ましくはヘッダセグメントＨＳにおけるヘッダ領域ＨＢの開始を、すなわち確認されたメッセージオブジェクトの構成データＫＤを示す。メッセージメモリ３００にファイルされているメッセージのステータス０．．．３として、中間メモリ６００には、好ましくは次のような情報をファイルする。すなわち、着目されたタイムウィンドウのために、何らかのメッセージを受信又は送信するべきかどうか、そして／又はそのメッセージを送信又は受信するべきかどうか、という情報である。そのメッセージを送信するべき場合は、ステータス０．．．３は‘ｔｘ＿ｂｕｆ’に、そのメッセージを受信するべき場合は、ステータス０．．．３は‘ｒｘ＿ｂｕｆ’にセットされる。着目されたタイムスロットのためのメッセージが、送信も受信もされるべきでない場合、ステータスは‘ｅｍｐｔｙ’にセットされる。ただしこのようなセットが、すでに探索過程開始時に、データフィールド６０１〜６０４の全てのデータワードに対して、少なくともデータワード・ステータス０．．．３に対して、行われていないものとする。
【００９６】
図１３は、図示の中間メモリ６００が二重に形成されていることを、わかりやすく示す。すなわちデータフィールド６０１〜６０４が二重に形成されているので、追加的なデータフィールド６０１ａ〜６０４ａが存在する。これには次のような利点があり、例えばデータフィールド６０１〜６０４には、探索過程の際にアクセスすることができ、同時にデータフィールド６０１ａ〜６０４ａには、本来のデータ伝送の際に、すなわちデータの送信又は受信の際に、アクセスすることができる。データ伝送と探索過程が終了しているときに、データフィールドを交換し、その結果、データフィールド６０１ａ〜６０４ａには、探索過程の際にアクセスすることができ、同時にデータフィールド６０１〜６０４には、本来のデータ伝送の際に、すなわちデータの送信又は受信の際に、アクセスすることができるようになる。この方法によれば、データ伝送時の待ち時間を、メッセージメモリ３００における探索過程により、防止することができる。
【００９７】
効果的な方法として送信フィルタリングを行う。すなわち、ある１つのメッセージの中間格納に予定されているポジション（又はメッセージオブジェクト）を、メッセージメモリ３００で探索する。このメッセージとは、ホストＣＰＵ１０２が、着目された通信サイクルにおいて、そして着目されたタイムウィンドウにおいて、通信リンク１０１を通る着目されたチャネルを経由して、送信するべきメッセージである。追加的方法又は上記と異なる方法として、受信フィルタリングを行う。すなわち、ある１つのメッセージの中間格納に予定されているポジション（又はメッセージオブジェクト）について、メッセージメモリ３００が探索される。このメッセージとは、ホストＣＰＵ１０２が、着目された通信サイクルにおいて、そして着目されたタイムウィンドウにおいて、通信リンク１０１を通る着目されたチャネルを経由して、受信するべきメッセージである。この探索方法の目的は、通信サイクルごとに必要なメッセージメモリ３００探索過程の回数を削減し、通信モジュール１００のリアルタイム性を改善することである。
【００９８】
本項の説明は、合計８個のエレメント６０１〜６０４及び６０１ａ〜６０４ａを持つ間のメモリ６００に関する。しかし中間メモリ６００の大きさは、データ伝送のための本発明による方法と、特に提案された探索方法とを維持しながら、任意に変化させ、特には拡大することができ、メッセージメモリ３００の大きさに弾力的に適合させることができる。そのほか探索経過に際して、最大でどのくらいの数のタイムウィンドウのために、メッセージメモリ３００を前もって探索するべきか、中間メモリ６００の大きさを介して前もって決定することができる。規則通りの機能を本発明の方法から確保できるようにするため、特には送信又は受信されるべきメッセージのスキップを防止するため、定められたタイムスロットに関する探索経過終了と、これらのタイムスロットに関する本来のデータ伝送終了との間では、メッセージメモリ３００の再構成は、できれば行わないようにするべきであろう。もし行われたら、最後の探索経過の際に確認された中間メモリ６００の内容は、場合によっては無効となるであろう。なぜならば再構成によって、当該タイムスロットの送信又は受信されるべきメッセージへの、メッセージメモリ３００のメモリ領域の割り当ては、場合によっては変わってしまっている可能性があるからである。このような場合、あらためて探索過程を行う必要があろう。そうすると、少なくともデータ伝送時の遅延を、場合によっては、わずかながらデータ損失を生じる可能性があろう。しかしＦｌｅｘＲａｙ仕様書には、適切なメカニズムを記載していて、このような遅延又はデータ損失をブロックすることができる。従ってデータ伝送に対する不利な影響を心配する必要はない。
【００９９】
本発明の方法を、以下に図１４を用いて詳しく説明する。図１４では、ＫＺＹが通信サイクルである。ＺＥはサイクルエンド、ＺＦはタイムウィンドウである。ＳＤＬは探索過程を表す。また最後に、ＤＡＴは本来のデータ伝送、すなわちメッセージの送信又は受信である。図１４では、通信サイクルＫＺＹ（ｎ）に着目する。この通信サイクルは、まずサイクルＫＺＹ（ｎ）の静的セグメントの４つのタイムウィンドウ“１”〜“４”を含み、これには、サイクルＫＺＹ（ｎ）の動的セグメントのタイムウィンドウ合計２０個が続く。サイクルエンドＺＥ（ｎ）には、例えばＳｙｍｂｏｌ  Ｗｉｎｄｏｗ（もしあれば）と、いわゆるＮｅｔｗｏｒｋ  Ｉｄｌｅ  Ｔｉｍｅ（ＮＩＴ）とが含まれ、このＮＩＴは、ノード１０２のローカルクロックのクロック同期に用いられる。図示の実施例では、メッセージメモリは、つねに４つのタイムスロットＺＦのために、前もって探索される。本発明による方法がスタートした後、最初の探索過程だけは１つの例外となり、まず中間メモリの８個のエレメント６０１〜６０４及び６０１ａ〜６０４ａ全てを、充填しなければならないからである。
【０１００】
本発明による方法のフローチャートを図１５に示す。この方法は、機能ブロック７００で開始する。機能ブロック７０１では最初の探索過程が行われるが、この探索過程を以下に詳しく説明する。探索過程の際、例えば中間メモリ６００のフィールド又はエレメント６０１〜６０４で、対応する情報、すなわち続いて行われる本来のデータ伝送に必要な情報がファイルされる。それが本発明の方法スタート後、最初の探索過程である場合、中間メモリ６００の残りのフィールド又はエレメント６０１ａ〜６０４ａはまだ空であって、直接続くさらなる探索過程によって充填されなければならない。従って照会ブロック７０２は、それが方法スタート以来最初の探索過程であるかどうかを点検する。ｙｅｓである場合、探索過程７０１がもう一度行われ、そうでない場合は、新しい機能ブロック７０３に分岐し、そこで本来のデータ伝送、すなわちメッセージの送信及び／又は受信が、次に述べるようなノード１０２に対して行われ、そのノードに対しては、通信モジュール１００、そのメッセージメモリ３００が、先行する探索過程で探索済みである。つづいて照会ブロック７０４で、本発明の方法が終了しているかどうか点検する。ｙｅｓの場合、ブロック７０５に分岐し、本方法は終了する。ｙｅｓでない場合は機能ブロック７０６に分岐し、そこで中間メモリ６００のフィールド又はエレメント６０１〜６０４が、フィールド又はエレメント６０１ａ〜６０４ａと交換され、その結果、続く探索過程７０１で確認された情報、特にメッセージオブジェクトのポジションは、もはやフィールド６０１〜６０４ではなく、フィールド６０１ａ〜６０４ａにファイルされる。同様に、機能ブロック７０６における中間メモリ６００のフィールド交換の結果として、後続する本来のデータ伝送の間、もはやフィールド６０１ａ〜６０４ａではなく、フィールド６０１〜６０４にアクセスされる。そのほか機能ブロック７０６では、次の４つのタイムスロットが、後続する探索過程で着目されるタイムスロットとして確定される。次に再び機能ブロック７０１に分岐し、探索過程と本来のデータ伝送が再度行われるが、しかし今回は、先行過程のタイムスロットの次の４つのタイムスロットのために行われる。
【０１０１】
図１５で一般的に７０１と番号をつけた探索過程を、図１４の実施例を用いて詳しく説明する。この探索過程は、順次続く４つのタイムウィンドウＺＦのために行われ、その際、４つのタイムウィンドウ全てのために、適切なメッセージオブジェクトがメッセージメモリ３００で探索される。仕様書に従って、第１のタイムウィンドウ“０”は存在しないので、最初の探索過程は、例外的にタイムウィンドウＺＦを３つだけ含む。しかし後続する探索過程は全て、４つのタイムウィンドウＺＦを含む。適切なオブジェクトを確認するため、特に上記に挙げた判定基準、通信サイクル、タイムスロット、チャネル及び送信／受信を点検する。探索結果は、メッセージメモリ３００で確認された適切なメッセージオブジェクトのポジションとして、中間メモリ６００にファイルされる。中間メモリは、８個のエレメント６０１〜６０４及び６０１ａ〜６０４ａ、エレメント“０”〜エレメント“７”を記載する１つのリストを含む。
【０１０２】
通信モジュール１００の構成段階終了後、そしていずれの通信サイクルＫＺＹ（ｎ−１）もその終了時に、中間メモリ６００は消去される。全てのポインタ“０”〜“７”は０に、全てのステータス情報フィールド“０”〜“７”は‘ｅｍｐｔｙ’にセットされる。最初の探索過程は、例外的に、手順がほかの探索過程と若干異なる。先行するサイクルＫＺＹ（ｎ−１）の最後の探索過程では、メッセージメモリ３００が、後続の通信サイクルＫＺＹ（ｎ）の第１のタイムスロットＺＦのための適切なメッセージオブジェクトを探索される。例えばシステムがちょうどスタートアップされたばかり、構成されたばかりであるという理由で、先行する通信サイクルＫＺＹ（ｎ−１）が存在しない場合、メッセージメモリ３００は、構成段階に続いて、後続する通信サイクルＫＺＹ（ｎ）の第１のタイムスロットＺＦのための適切なメッセージオブジェクトを探索する。この探索の結果は、中間メモリのエレメント“１”参照番号６０２に格納される。
【０１０３】
続いて通信サイクルＫＺＹ（ｎ）が開始され、第１のタイムスロットＺＦ１で、縮小された探索過程が行われる。この探索過程の間、メッセージメモリ３００は、タイムスロットＺＦ２及びＺＦ３のための適切なメッセージオブジェクトを探索される。この縮小された探索過程の結果は、中間メモリ６００のエレメント“２”参照番号６０３及び“３”参照番号６０４にファイルされる。さらにメッセージメモリ３００は、第１のタイムスロットＺＦ１において、後続する４つのタイムスロットＺＦ４〜ＺＦ７のための適切なメッセージオブジェクトを探索されなければならない。この探索の結果は、中間メモリ６００のエレメント“４”参照番号６０１ａ〜“７”参照番号６０４ａにファイルされる。タイムスロットＺＦ２〜ＺＦ７のための適切なオブジェクトの探索は、ただ１つの探索過程ＳＤＬ１の間に行うことができる。さらには第１のタイムスロットＺＦ１において、第１のタイムスロットＺＦ１に予定されているメッセージの本来のデータ伝送が行われる。第１に、第１のタイムスロットＺＦ１は、ＦｌｅｘＲａｙ仕様書によって、確実に静的タイムスロットであり、この静的タイムスロットは―動的タイムスロットとは異なって―定められた最小限経過時間を下回らず、この最小限時間は、第１のタイムスロットＺＦ１の間に上記全てのステップを実行するに十分な長さである。第２に、中間メモリ６００は、最初の探索過程ＳＤＬ１の時点において空であり、この２つの理由から中間メモリ６００においては、実際に適切なメッセージオブジェクトがメッセージメモリ３００で見出された場合に限り、情報をファイルすればよい。定められたタイムスロットＺＦのためのオブジェクトが見出されなかった場合、対応するエレメント６０１〜６０４又は６０１ａ〜６０４ａは、ポインタ＝‘０’かつステータス＝‘ｅｍｐｔｙ’のままである。
【０１０４】
最初の探索過程ＳＤＬ１の際、第１のタイムウィンドウＺＦ１において、まず第１のメッセージオブジェクトの識別フィールドを、メッセージメモリ３００のヘッダ部分ＨＳから読み出す。メッセージの識別フィールドは、少なくとも次のステータスビットを含む：１１ビットＦｒａｍｅ  ＩＤ（Ｈｅａｄｅｒ  Ｗｏｒｄのビット０〜１０）、７ビットＣｙｃｌｅ  ｃｏｄｅ（Ｈｅａｄｅｒ  Ｗｏｒｄのビット１６〜２２）、１ビットＣｈａｎｎｅｌ  Ａ（ＣＨ  Ａ）（Ｈｅａｄｅｒ  Ｗｏｒｄのビット２４）、１ビットＣｈａｎｎｅｌ  Ｂ（ＣＨ  Ｂ）（Ｈｅａｄｅｒ  Ｗｏｒｄのビット２５）、及び１ビットＴｒａｎｓｍｉｓｓｉｏｎ  Ｍｏｄｅ（ＴＸＭ）（Ｈｅａｄｅｒ  Ｗｏｒｄのビット２８）である。この識別フィールドが、着目された通信サイクルＫＺＹ（ｎ）のタイムウィンドウＺＦ２〜ＺＦ７の１つに適合していれば、中間メモリ６００の対応するエレメント“２”〜“７”のポインタは、メッセージメモリ３００におけるメッセージオブジェクトの番号にセットされる。そして対応するステータス“２”〜“７”は、そのメッセージが送信されるのか、受信されるのかに応じて、‘ｔｘ＿ｂｕｆ’又は‘ｒｘ＿ｂｕｆ’にセットされる。
【０１０５】
次に―依然として同じ探索過程ＳＤＬ１において―次のメッセージオブジェクトの識別フィールドが読み出され、タイムウィンドウＺＦ２〜ＺＦ７に対する一致が存在するかどうか、必要な場合は、中間メモリ６００の対応するエレメント６０１〜６０４、６０１ａ〜６０４ａのポインタとステータス情報フィールドがセットされているかどうかが、点検される。
【０１０６】
対応する中間メモリのエレメントのステータスが、すでにもはや‘ｅｍｐｔｙ’でないならば、いかなるポインタもステータス情報も中間メモリ６００に格納されない。すなわち２つ又はそれ以上のメッセージオブジェクトが、同じ通信サイクルＫＺＹ（ｎ）の同じタイムウィンドウＺＦのために構成されているならば、第１のメッセージオブジェクトが用いられ、後続するメッセージオブジェクトは破棄される。
【０１０７】
メッセージメモリ３００のヘッダ部分から最後の識別フィールドが読み出されるとともに、探索課程ＳＤＬ１は終了する。すると本来のデータ伝送の際に、大きな遅延なしに、タイムウィンドウＺＦ１〜ＺＦ７のために、適切なメッセージオブジェクトの番号を、中間メモリ６００から直接取り出すことができる。
【０１０８】
タイムウィンドウＺＦ４の開始とともに、中間メモリ６００のエレメント６０２〜６０４は処理済みとなっている（タイムウィンドウＺＦ０は欠落しているので、エレメント６０１は不要となっている）。すなわちこれらのタイムウィンドウＺＦ１〜ＺＦ３における本来のデータ伝送は、すでに実行されている。中間メモリ６００のエレメント６０１〜６０４は、今や消去することができる（ポインタ＝‘０’、ステータス＝‘ｅｍｐｔｙ’）。そして次の探索過程ＳＤＬ２がスタートする。この探索過程は、その時点の通信サイクルＫＺＹ（ｎ）のタイムウィンドウＺＦ８〜ＺＦ１１に関するものである。探索結果は、中間メモリ６００のエレメント“０”参照番号６０１〜“３”参照番号６０４にファイルされる。タイムウィンドウＺＦ８の開始とともに、タイムウィンドウＺＦ１２〜ＺＦ１５のためのさらなる探索過程ＳＤＬ３がスタートする。これら探索結果は、中間メモリのエレメント“４”参照番号６０１ａ〜“７”参照番号６０４ａにファイルされ、これらエレメントはやはり探索過程ＳＤＬ３の開始時に消去されている（ポインタ＝‘０’、ステータス＝‘ｅｍｐｔｙ’）。
【０１０９】
探索過程ＳＤＬと平行して、本来のデータ伝送ＤＡＴの処理が、それぞれのタイムウィンドウＺＦ到達後に行われる。こうして例えば第２の探索過程ＳＤＬ２の間、タイムウィンドウＺＦ４〜ＺＦ７のための本来のデータ伝送が処理される。その際、伝送されるべき（送信又は受信されるべき）メッセージを、メッセージメモリ３００のどこにファイルするべきか、又はメッセージメモリ３００のどこから読み出すべきかという情報は、中間メモリ６００のエレメント“４”参照番号６０１ａ〜“７”参照番号６０４ａから取り出される。これらのエレメントには、それらの情報が最初の探索過程ＳＤＬ１の間にファイルされている。同様に、第３の探索過程ＳＤＬ３の間、タイムウィンドウＺＦ８〜ＺＦ１１のための本来のデータ伝送が処理される。その際、伝送されるべきメッセージを、メッセージメモリ３００のどこにファイルするべきか、又はメッセージメモリ３００のどこから読み出すべきかという情報は、中間メモリ６００のエレメント“０”参照番号６０１〜“３”参照番号６０４から取り出される。これらのエレメントには、それらの情報が第２の探索過程ＳＤＬ２の間にファイルされている。同様にして、その後の探索過程ＳＤＬ４〜ＳＤＬ６が行われ、その際、その時点の通信サイクルＫＺＹ（ｎ）の最後の探索過程ＳＤＬ６の間、メッセージメモリ３００は―上記に説明したように―それに続く通信サイクルＫＺＹ（ｎ＋１）の第１のタイムウィンドウＺＦ１のための適切なメッセージオブジェクトを探索される。
【０１１０】
いずれの探索過程ＳＤＬも、そのほかのプロセスを割り込ませることができるが、遅くとも第４のタイムウィンドウＺＦの後は終了しなければならない。この要件が達成不可能な場合は、中間メモリ６００を拡大して、例えばエレメントを８個から１６個とすることができる。利用できる時間はこれにより、例えばタイムウィンドウ８個に増加する。しかしそれにより、データ伝送システム内の柔軟性が制限される。なぜならば、そうなると、前もって探索された８個のタイムウィンドウのために、再構成が行われるのは、これらのタイムウィンドウのために、本来のデータ伝送が処理されてからにするべきだからである。
【０１１１】
ある１つの送信オブジェクトに対し、割り当てられたタイムウィンドウＺＦの開始時に、メッセージメモリ３００から送信ユニットへの転送が開始されると、メッセージオブジェクトがそれまでの間に変化しなかったかどうか、点検される。変化していれば、中間メモリ６００内の登録は破棄され、それに対応するメッセージオブジェクトは送信されない。ある１つの受信オブジェクトに対して、割り当てられたタイムウィンドウＺＦ終了時に（次のタイムウィンドウ開始時に）、受信ユニットからの転送が開始されると、中間メモリ内のメッセージオブジェクトが変化していないかどうか、点検される。変化していれば、中間メモリ６００内の登録は破棄され、受信されたメッセージは格納されない。データ完全性の点検は、例えばチェックサム形成により、又はそのほか任意の方法（例えばＰａｒｉｔｙ−Ｂｉｔ又はＣＲＣ）によって行うことができる。
【０１１２】
十分な知識を持つ専門家には、本発明を拡大したものとして、本発明の考えを離れることなく実現できるものが、多数得られる。考えられるいくつかの拡大可能性の例を、下記に挙げる。
【０１１３】
このデータ伝送システムを運転中に、メッセージメモリ３００内のメッセージオブジェクトが再構成される場合、中間メモリ６００のその時点のタイムウィンドウ領域ＺＦｉ〜ＺＦｉ＋３に、識別フィールドが合致するかどうか点検される。ｙｅｓであれば、必要に応じて、対応する中間メモリのエレメント６０１〜６０４と６０１ａ〜６０４ａとを置き換える。この拡張によって、中間メモリ６００の大きさに依存しないで、識別フィールドで確定されているタイムウィンドウＺＦの開始までに、メッセージオブジェクトを再構成できるようになる。
【０１１４】
ここに説明した手順により、通信モジュール１００のメッセージメモリ３００は、文字通り先見的な方法で、次のタイムウィンドウＺＦに適合するメッセージオブジェクトを探索される。中間メモリ６００にファイルされたポインタ、すなわちメッセージオブジェクトとそのステータスを示すポインタを介して、次のタイムウィンドウＺＦのために予定されたメッセージオブジェクトに、迅速にアクセスすることができる。従ってタイムウィンドウＺＦごとに、メッセージメモリ３００全体をあらためて探索する必要はなくなる。
【０１１５】
ここに説明した探索方法を用いれば、メッセージメモリ３００の探索は、通信サイクルＫＺＹ（ｎ）あたり必要回数が減少する。これにより、通信モジュール１００のリアルタイム性が大きく改善される。
【図面の簡単な説明】
【０１１６】
【図１】通信モジュール、ならびに同モジュールと通信リンク及びノードとの接続の模式図を示す。
【図２】図１に記載する通信モジュールの特別な実施形態とその接続の詳細を示す。
【図３】図１又は２に記載する通信モジュールのメッセージメモリの構造詳細図を示す。
【図４】データ方向がノードからメッセージメモリに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。
【図５】データ方向がノードからメッセージメモリに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。
【図６】データ方向がノードからメッセージメモリに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。
【図７】データ方向がメッセージメモリからノードに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。
【図８】データ方向がメッセージメモリからノードに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。
【図９】データ方向がメッセージメモリからノードに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。
【図１０】図１又は２に記載する通信モジュールのメッセージアドミニストレータと、その中に含まれる状態オートマトンの模式図を示す。
【図１１】通信モジュールのいくつかのコンポーネント、ならびにノード、そしてメッセージアドミニストレータによって制御される各データ経路を、模式図として再度示す。
【図１２】図１１に記載のデータ経路に対するアクセス分配を示す。
【図１３】本発明による通信モジュールの中間メモリを示す。
【図１４】本発明によるデータ伝送で実行される探索手順のフローチャートを示す。
【図１５】１つの好ましい実施形態における本発明のデータ伝送手順のフローチャートを示す。
【図１】
2008529374.tif 000003
【図２】
2008529374.tif 000004
【図３】
2008529374.tif 000005
【図４】
2008529374.tif 000006
【図５】
2008529374.tif 000007
【図６】
2008529374.tif 000008
【図７】
2008529374.tif 000009
【図８】
2008529374.tif 000010
【図９】
2008529374.tif 000011
【図１０】
2008529374.tif 000012
【図１１】
2008529374.tif 000013
【図１２】
2008529374.tif 000014
【図１３】
2008529374.tif 000015
【図１４】
2008529374.tif 000016
【図１５】
2008529374.tif 000017
【国際調査報告】
2008529374.tif 000018
2008529374.tif 000019
2008529374.tif 000020
2008529374.tif 000021
2008529374.tif 000022