(57)【要約】本発明は、通信システムの加入者装置（９００）に関する。加入者装置（９００）は、マイクロプロセッサ（１０２）、少なくとも２つの通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）、および周辺バス（８２０）を備えている。マイクロプロセッサ（１０２）は、周辺バス（８２０）を介して通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）と接続され、通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）を介して通信システムの各通信接続（１０１ａ、１０１ｂ、１０１ｃ）と接続されており、通信接続（１０１ａ、１０１ｂ、１０１ｃ）を介してメッセージが伝送される。加入者装置（９００）内でゲートウェイ機能を最適化するために、少なくとも１つの通信コントローラ（７５０ａ、７５０ｃ）は、周辺バスとの接続に際して経由するアクティブインタフェース（８３４）と、ゲートウェイ機能を単独で実現するロジックとを有することが提案される。【選択図】図１３
2009512260.tif 000002
【特許請求の範囲】
【請求項１】
通信システムの加入者装置（９００）であって、前記加入者装置（９００）は、マイクロプロセッサ（１０２）、少なくとも２つの通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）、および周辺バス（８２０）を有しており、前記マイクロプロセッサ（１０２）は、前記周辺バス（８２０）を介して前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）と接続され、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）を介して前記通信システムの各通信接続（１０１ａ、１０１ｂ、１０１ｃ）と接続されており、前記通信接続（１０１ａ、１０１ｂ、１０１ｃ）を介してメッセージが伝送される、通信システムの加入者装置（９００）において、
少なくとも１つの前記通信コントローラ（７５０ａ、７５０ｃ）は、前記周辺バス（８２０）との接続に際して経由するアクティブインタフェース（８３４）と、ゲートウェイ機能を単独で実現するロジックとを備えることを特徴とする、通信システムの加入者装置。
【請求項２】
前記ロジックが、ルーティングエンジン（８３０）の機能を実現することを特徴とする、請求項１に記載の加入者装置。
【請求項３】
前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）は、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）に割当てられた前記通信接続（１０１ａ、１０１ｂ、１０１ｃ）のメッセージを一時格納するためのメッセージメモリ（３００ａ、３００ｂ、３００ｃ）、または前記通信接続（１０１ａ、１０１ｂ、１０１ｃ）のためのメッセージメモリ（３００ａ、３００ｂ、３００ｃ）を各々に有しており、前記ロジックは、通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）と前記マイクロプロセッサ（１０２）との間、または、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）の複数の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）の間でデータの単独ルーティングを調整し、制御することを特徴とする、請求項２に記載の加入者装置。
【請求項４】
少なくとも１つの前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）は、通信モジュ−ル（１００ａ、１００ｂ、１００ｃ）を有しており、前記通信モジュ−ル（１００ａ、１００ｂ、１００ｃ）は、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）に割当てられた前記通信接続（１０１ａ、１０１ｂ、１０１ｃ）のメッセージを一時格納するためのメッセージメモリ（３００ａ、３００ｂ、３００ｃ）、または前記通信接続（１０１ａ、１０１ｂ、１０１ｃ）のためのメッセージメモリ（３００ａ、３００ｂ、３００ｃ）を含んでおり、前記ロジックは、通信コントローラの前記メッセージメモリもしくは少なくとも１つの前記通信モジュール（１００ａ、１００ｂ、１００ｃ）の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）と、前記マイクロプロセッサ（１０２）との間、または、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）の複数の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）、および／または、前記少なくとも１つの通信モジュール（１００ａ、１００ｂ、１００ｃ）の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）の間で、データの単独ルーティングを調整し、制御することを特徴とする、請求項３に記載の加入者装置。
【請求項５】
各通信モジュール（１００ａ、１００ｂ、１００ｃ）は、前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）と前記周辺バス（８２０）との間に配置された少なくとも１つのバッファ、特に、少なくとも１つの入力バッファ（２０１ａ、２０１ｂ、２０１ｃ）および少なくとも１つの出力バッファ（２０２ａ、２０２ｂ、２０２ｃ）を有しており、前記ロジックは、通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）もしくは少なくとも１つの前記通信モジュール（１００ａ、１００ｂ、１００ｃ）の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）の前記少なくとも１つのバッファ（２０１ａ、２０１ｂ、２０１ｃ；２０２ａ、２０２ｂ、２０２ｃ）と、前記マイクロプロセッサ（１０２）との間、または、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）の複数の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）、および／または、前記少なくとも１つの通信モジュール（１００ａ、１００ｂ、１００ｃ）の前記メッセージメモリ（３００ａ、３００ｂ、３００ｃ）の前記少なくとも１つのバッファ（２０１ａ、２０１ｂ、２０１ｃ；２０２ａ、２０２ｂ、２０２ｃ）の間で、データの単独ルーティングを調整し、制御する、請求項４に記載の加入者装置。
【請求項６】
前記通信コントローラ（７５０ａ、７５０ｃ）内の前記ロジックがステートマシーンを含むことを特徴とする、請求項１〜５のいずれかに記載の加入者装置。
【請求項７】
前記ステートマシーンがハードウェアに組込まれていることを特徴とする、請求項６に記載の加入者装置。
【請求項８】
アクティブインタフェース（８３４）およびロジックを備える各前記通信コントローラ（７５０ａ、７５０ｃ）は、アービター（８３６）を有しており、前記アービター（８３６）は、前記通信コントローラ（７５０ａ、７５０ｃ）のメッセージメモリ（３００ａ、３００ｃ）、通信モジュール（１００ａ、１００ｃ）のメッセージメモリ（３００ａ、３００ｃ）、または、通信モジュール（１００ａ、１００ｃ）のメッセージメモリ（３００a、３００ｃ）の少なくとも１つのバッファ（２０１ａ、２０１ｃ；２０２ａ、２０２ｃ）に対する、前記マイクロプロセッサ（１０２）および前記ルーティングエンジン（８３０）の同時アクセスを仲裁することを特徴とする、請求項６または７に記載の加入者装置。
【請求項９】
アクティブインタフェース（８３４）およびロジックを備える各前記通信コントローラ（７５０ａ、７５０ｃ）は、制御および／または状態レジスタ（８３８）を有しており、前記マイクロプロセッサ（１０２）は、ゲートウェイ機能の設定、駆動、および／または監視のために、前記制御および／または状態レジスタ（８３８）にアクセスすることを特徴とする、請求項１〜８のいずれかに記載の加入者装置。
【請求項１０】
アクティブインタフェース（８３４）およびロジックを備える各前記通信コントローラ（７５０ａ、７５０ｃ）は、ルーティングメモリ（８４２）を有しており、前記マイクロプロセッサ（１０２）は、前記ゲートウェイ機能の駆動および／または監視のために、前記ルーティングメモリ（８４２）にアクセスすることを特徴とする、請求項１〜９のいずれかに記載の加入者装置。
【請求項１１】
前記加入者装置（９００）は、ＦｌｅｘＲａｙ通信システムのコンポーネントであり、前記ＦｌｅｘＲａｙ通信システムにおいて、前記加入者装置（９００）とＦｌｅｘＲａｙ通信接続（１０１）に接続された他のＦｌｅｘＲａｙ加入者装置との間では、ＦｌｅｘＲａｙプロトコルに基づいてデータ伝送が行われることを特徴とする、請求項１〜１０のいずれかに記載の加入者装置。
【請求項１２】
通信システムの加入者装置（９００）の通信コントローラ（７５０ａ）であって、前記加入者装置（９００）は、マイクロプロセッサ（１０２）、前記通信コントローラ（７５０ａ）、選択的に別の通信コントローラ（７５０ｂ、７５０ｃ）、および周辺バス（８２０）を有しており、前記通信コントローラ（７５０ａ）は、一方では前記周辺バス（８２０）を介して前記マイクロプロセッサ（１０２）と接続され、他方では前記通信システムの通信接続（１０１ａ）に接続されており、前記通信接続（１０１ａ）を介してメッセージが伝送される、通信システムの加入者装置（９００）の通信コントローラ（７５０ａ）において、
前記通信コントローラ（７５０ａ）は、前記周辺バス（８２０）と接続する際に経由するアクティブインタフェース（８３４）と、ゲートウェイ機能を単独で実現するロジックとを備えていることを特徴とする、通信システムの加入者装置の通信コントローラ。
【請求項１３】
前記通信コントローラ（７５０ａ）は、ＦｌｅｘＲａｙ通信システムのコンポーネントであり、前記ＦｌｅｘＲａｙ通信システムにおいて、前記加入者装置（９００）とＦｌｅｘＲａｙ通信接続（１０１）に接続された他のＦｌｅｘＲａｙ加入者装置との間では、ＦｌｅｘＲａｙプロトコルに基づいてデータ伝送が行われることを特徴とする、請求項１２に記載の通信コントローラ。
【請求項１４】
通信システムの加入者装置（９００）内でゲートウェイ機能を実現する方法であって、前記加入者装置（９００）は、マイクロプロセッサ（１０２）、少なくとも２つの通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）、および周辺バス（８２０）を有しており、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）は、一方では前記周辺バス（８２０）を介して前記マイクロプロセッサ（１０２）と接続され、他方では前記通信システムの通信接続（１０１ａ、１０１ｂ、１０１ｃ）に各々に接続されており、前記通信接続（１０１ａ、１０１ｂ、１０１ｃ）を介してメッセージが伝送される、通信システムの加入者装置（９００）内でゲートウェイ機能を実現する方法において、
少なくとも１つの前記通信コントローラ（７５０ａ、７５０ｃ）は、アクティブインタフェース（８３４）を介して前記周辺バス（８２０）に接続され、前記少なくとも１つの通信コントローラ（７５０ａ、７５０ｃ）内のロジックによって前記ゲートウェイ機能が実現されることを特徴とする、通信システムの加入者装置内でゲートウェイ機能を実現する方法。
【請求項１５】
ゲートウェイ機能の枠内で、割込みが開始され、処理され、および、メッセージが断片化され、最適化され、および、前記加入者装置（９００）の複数の通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）の間でメッセージが交換され、および／または、前記通信コントローラ（７５０ａ、７５０ｂ、７５０ｃ）のうちの１つと前記マイクロプロセッサ（１０２）との間でメッセージが交換されることを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記マイクロプロセッサ（１０２）は、前記少なくとも１つの通信コントローラ（７５０ａ、７５０ｃ）の制御および／または状態レジスタ（８３８）内に制御および状態情報を格納することで、前記ゲートウェイ機能が構成され、制御され、および／または、監視されることを特徴とする、請求項１４または１５に記載の方法。
【請求項１７】
前記マイクロプロセッサ（１０２）は、前記少なくとも１つの通信コントローラ（７５０ａ、７５０ｃ）のルーティングメモリ（８４２）内にルーティング情報を格納することで、前記ゲートウェイ機能が制御され、および／または、監視されることを特徴とする、請求項１４〜１６のいずれかに記載の方法。
【請求項１８】
前記少なくとも１つの通信コントローラ（７５０ａ、７５０ｃ）内の前記ロジックがルーティングエンジン（８３０）を含んでおり、前記通信コントローラ（７５０ａ、７５０ｃ）のメッセージメモリ（３００ａ、３００ｃ）、通信モジュール（１００ａ、１００ｃ）のメッセージメモリ（３００ａ、３００ｃ）、または、通信モジュール（１００ａ、１００ｃ）のメッセージメモリ（３００a、３００ｃ）の少なくとも１つのバッファ（２０１ａ、２０１ｃ；２０２ａ、２０２ｃ）に対する、前記マイクロプロセッサ（１０２）および前記ルーティングエンジン（８３０）の同時アクセスが仲裁されることを特徴とする、請求項１４〜１７のいずれかに記載の方法。
【請求項１９】
他の通信コントローラ（７５０ｂ、７５０ｃ）のメッセージメモリ（３００ｂ、３００ｃ）にデータをアクティブに複写するために、前記少なくとも１つの通信コントローラ（７５０ａ）の前記ロジックによって、単独で引起こされ、制御される方法であって、
前記少なくとも１つの通信コントローラ（７５０ａ）のバッファ（２０２ａ）内の受信されたデータを可視化する工程と、
前記アクティブインタフェース（８３４）を介する書込みアクセスによって、前記マイクロプロセッサ（１０２）に割当てられたメモリ部（８０２）の構成可能なアドレス領域内に、または、他の通信コントローラ（７５０ｂ、７５０ｃ）のバッファ（２０１ｂ、２０１ｃ）内に、前記受信されたデータの複写を格納する工程と、
前記他の通信コントローラ（７５０ｂ、７５０ｃ）の前記バッファ（２０１ｂ、２０１ｃ）内にデータの複写を格納する際に、前記バッファ（２０１ｂ、２０１ｃ）から前記他の通信コントローラ（７５０ｂ、７５０ｃ）のメッセージメモリ（３００ｂ、３００ｃ）への前記格納されたデータの伝送を開始する工程と、
を含むことを特徴とする、請求項１４〜１８のいずれかに記載の方法。
【請求項２０】
他の通信コントローラ（７５０ｂ、７５０ｃ）のメッセージメモリ（３００ｂ、３００ｃ）からデータをアクティブに複写するために、前記少なくとも１つの通信コントローラ（７５０ａ）の前記ロジックによって、単独で引起こされ、制御される方法であって、
前記他の通信コントローラ（７５０ｂ、７５０ｃ）のバッファ（２０２ｂ、２０２ｃ）内のデータを可視化する工程と、
前記アクティブインタフェース（８３４）を介する読出しアクセスによって、前記通信コントローラ（７５０ａ）の少なくとも１つのバッファ（２０１ａ）の構成可能なアドレス領域内に、前記マイクロプロセッサ（１０２）に割当てられたメモリ部（８０２）の内容の複写、または、前記他の通信コントローラ（７５０ｂ、７５０ｃ）の前記バッファ（２０２ｂ、２０２ｃ）の内容の複写を格納する工程と、
前記少なくとも１つのバッファ（２０１ａ）から前記通信コントローラ（７５０ａ）の前記通信モジュール（１００ａ）のメッセージメモリ（３００ａ）への前記格納されたデータの伝送を開始する工程と、
を含むことを特徴とする、請求項１４〜１９のいずれかに記載の方法。
【請求項２１】
前記方法が、データ、特にメッセージの受信によって、アクティブインタフェース（８３４）を有する通信コントローラ（７５０ａ、７５０ｃ）によるトリガによって、または、前記マイクロプロセッサ（１０２）によるトリガによって、時間制御で開始されることを特徴とする、請求項１９または２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムの加入者（Teilnehmer：加入者装置、ホスト）に関する。加入者は、マイクロプロセッサ、少なくとも２つの通信コントローラ、および周辺バスを有している。マイクロプロセッサは、周辺バスを介して通信コントローラと接続され、通信コントローラを介して通信システムの各通信接続と接続されており、通信接続を介してメッセージが伝送される。
【０００２】
さらに、本発明は、通信システムの加入者（Teilnehmer：加入者装置、ホスト）の通信コントローラ（Communication Controller ；ＣＣ）に関する。加入者は、マイクロプロセッサ、通信コントローラ、選択的に別のコントローラ、および周辺バスを有している。通信コントローラは、一方では周辺バスを介してマイクロプロセッサと接続され、他方では通信システムの通信接続に接続されており、通信接続を介してメッセージが伝送される。
【０００３】
最後に、本発明は、通信システムの加入者（Teilnehmer：加入者装置、ホスト）内でゲートウェイ機能を実現する方法にも関する。加入者は、マイクロプロセッサ、少なくとも２つの通信コントローラ、および周辺バスを有している。通信コントローラは、一方では周辺バスを介してマイクロプロセッサと接続され、他方では通信システムの各通信接続に接続されており、通信接続を介してメッセージが伝送される。
【背景技術】
【０００４】
近年、最新の車両製造、または機械製作、特に工作機械分野において、あるいはオートメーション分野においても、通信システムおよびバスシステム、従って通信接続を用いることによる、制御装置、センサ技術およびアクター技術のネットワーク化が著しく進展している。この場合、複数の制御装置への機能分散によるシナージー効果が得られる。ここで、システムの分散が問題となる。種々の装置間の通信は、バスシステムからなる通信システムを介して頻繁に行われる。バスシステム上の通信、アクセス、および受信のメカニズム、およびエラー処理は、プロトコルを介して制御される。
【０００５】
この種の既知のプロトコルとして、ＦｌｅｘＲａｙプロトコル標準Ｖ２．０に基づくＦｌｅｘＲａｙプロトコルが存在する。ＦｌｅｘＲａｙプロトコルは、特に車載装備される、高速かつ決定論的であり、エラー許容性（fehlertolerant）を有するバスシステムである。ＦｌｅｘＲａｙプロトコルは、時分割多重アクセス（ＴＤＭＡ）の手順に従って作動し、コンポーネント、従って加入者もしくは伝送されるメッセージは、固定のタイムスロットを割当てられ、タイムスロット中で通信接続への排他的アクセス権を有する。これは、同様にＴＴＣＡＮにも適用される。この場合、タイムスロットが固定されたサイクルで繰返されるので、バスを介してメッセージが伝送されるタイミングが正確に予測でき、バスアクセスが決定論的に行われる。
【０００６】
バスシステム上でメッセージ伝送用の帯域幅を最適に利用するために、ＦｌｅｘＲａｙは、サイクルまたはバスサイクルとも称される伝送サイクルを静的部分と動的部分とに分割する。この場合、固定タイムスロットがバスサイクルの始端の静的部分にある。動的部分では、タイムスロットが動的に与えられる。ここで、排他的なバスアクセス権は、各々に短時間、いわゆるミニスロットの間でのみ可能となる。ミニスロットの間でバスアクセスが行われる場合にのみ、タイムスロットが必要な時間で追加される。よって、実際に必要とされる場合にのみ帯域幅が使用される。
【０００７】
ＦｌｅｘＲａｙは、物理的に分離された２本の通信線を介して、最大１０メガビット／秒のデータ速度で通信する。この場合、バスサイクルは、５ｍｓ毎に、または通信システムに応じては１ｍｓもしくは２．５ｍｓ毎に終了する。この場合、双方のチャネルは、特にＯＳＩ（Open System Architecture）階層モデルの物理層に相当する。これらは、冗長的かつエラー許容性を伴うメッセージ伝送の場合に主として用いられるが、互いに異なるメッセージの伝送にも用いられ、その場合にはデータ速度が二倍となる。しかし、ＦｌｅｘＲａｙは、より低いデータ速度でも動作可能である。
【０００８】
機能の同期化を実現し、かつ２つのメッセージ間の小さなマージンにより帯域幅を最適化するために、通信ネットワーク上で分散されたコンポーネント、従って加入者は、共通の時間基準、いわゆるグローバルな時間を必要とする。加入者のローカル時計の同期化のために、サイクルの静的部分で同期化通知が伝送され、ＦｌｅｘＲａｙ標準に準拠する特殊なアルゴリズムを用いて、コンポーネントのローカルなタイマ時間は、全てのローカル時計がグローバル時計に同期して作動するように補正される。
【０００９】
ＦｌｅｘＲａｙネットワークノード、またはホストとも称されるＦｌｅｘＲａｙ加入者は、加入者プロセッサ、従ってホストプロセッサと、ＦｌｅｘＲａｙコントローラまたは通信コントローラと、バス監視用のバスガーディアンとを有する。この場合、加入者プロセッサは、ＦｌｅｘＲａｙ通信コントローラおよびＦｌｅｘＲａｙ通信接続を介して伝送されるデータを提供して処理する。ＦｌｅｘＲａｙネットワーク上の通信のために、例えば２５４バイトまでのメッセージもしくはメッセージオブジェクトが構成されうる。
【００１０】
メッセージ伝送を媒介するＦｌｅｘＲａｙ通信接続とＦｌｅｘＲａｙ加入者とを結合させるために、本願の出願日にはまだ開示されていなかった独国特許出願第10 2005 034 0744号明細書には、ＦｌｅｘＲａｙ通信モジュールが組込まれている。ＦｌｅｘＲａｙ通信モジュールは、加入者インタフェースを介して加入者へ、および、更なる別の接続を介して通信接続へ接続されている。その際、加入者と通信接続との間でメッセージを伝送するために、通信モジュール内にメッセージを記憶するための構成が設けられている。伝送は、ステートマシーンによって制御される。ＦｌｅｘＲａｙ通信コントローラは、ＦｌｅｘＲａｙ通信コントローラの統合された構成要素に相当し、または異なる構成要素として構成されてもよい。
【００１１】
通信モジュールには、２つの部分要素からなるインタフェースモジュールが設けられている。その際、一方のサブモジュールは加入者に依存せず、他方のサブモジュールは加入者に依存している。加入者専用サブモジュールは、カスタマＣＰＵインタフェース（Customer CPU Interface；ＣＩＦ）とも呼ばれ、加入者専用のホストＣＰＵの形態をしたカスタマ専用加入者を、ＦｌｅｘＲａｙ通信モジュールと接続する。加入者に依存しないサブモジュールは、汎用ＣＰＵインタフェース（Generic CPU Interface；ＧＩＦ）とも呼ばれ、汎用の、つまり一般的なＣＰＵインタフェースに相当する。汎用ＣＰＵインタフェースを介して、対応する加入者専用サブモジュール、つまりカスタマＣＰＵインタフェース（ＣＩＦ）によって、異なるカスタマ専用のホストＣＰＵがＦｌｅｘＲａｙ通信モジュールに接続される。従って、加入者に応じて、加入者専用サブモジュールのみが変更されればよいので、通信モジュールは、異なる加入者に対して問題なく調整されることが可能である。一方、加入者に依存しないサブモジュールおよび残りの通信モジュールは、常に同一に構成されることが可能である。通信モジュールによって、つまり、任意のＦｌｅｘＲａｙ加入者をＦｌｅｘＲａｙ通信接続に接続するための標準インタフェースが生成される。その際、インタフェースは、加入者専用サブモジュールの簡単な変更によって、任意に設定された加入者、または従来の加入者のために柔軟に調整される。その際、各サブモジュールは、インタフェースモジュール内のソフトウェアにおいて実現される、つまりソフトウェア機能としての各サブモジュールとして実現されてもよい。
【００１２】
ＦｌｅｘＲａｙ通信モジュール内のステートマシーンは、ハードウェアに組込まれることが可能である。選択的に、通信モジュール内のステートマシーンは、加入者インタフェースを介して、加入者により自由にプログラム可能でもよい。
【００１３】
従来技術に基づいて、ＦｌｅｘＲａｙ通信モジュールのメッセージメモリは、特に、シングルポートＲＡＭ（Random Access Memory）として実現されている。このＲＡＭメモリは、設定（Konfiguration）および状態データと共に、メッセージまたはメッセージオブジェクト、つまり本来の有効なデータを記憶する。公知の通信モジュールのメッセージメモリの詳細な構造は、上記の独国特許出願第10 2005 034 744号明細書に開示されている。
【００１４】
従来技術に基づいて、加入者の内部では、マイクロコントローラが、パッシブインタフェース、およびマスタとしてのアクティブインタフェースを介して、周辺バスに接続されている。マイクロコントローラは、マイクロプロセッサ（ホストＣＰＵ）、およびメモリ（ＲＡＭ）、およびマイクロプロセッサとメモリとを繋ぐコア・バスを含んでいる。パッシブインタフェースを介して、マイクロコントローラは、周辺バスの他の加入者の命令およびデータを受信することが可能である。アクティブインタフェースを介して、マイクロコントローラ自体が、周辺バスの他の加入者へデータおよび命令を送信することが可能である。パッシブインタフェースを介した周辺装置への加入者の接続とは、スレーブとしての加入者の接続と同義である。アクティブインタフェースを介した加入者の接続とは、マスタとしての加入者の接続に相当する。公知の通信システムにおいて、通信コントローラはスレーブとして、パッシブインタフェースを介して周辺バスに接続されている。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
通信コントローラは、１つまたは複数の通信接続（ＣＡＮ、ＴＴＣＡＮ、ＭＯＳＴ、ＦｌｅｘＲａｙ、ＢｙｔｅＦｌｉｇｈｔ等）に対する加入者の接続を形成する。通信コントローラはそれぞれ、メッセージメモリを有している。メッセージメモリ内に、通信接続によって新たに受信されたメッセージが格納され、メッセージメモリから通信接続により送信されるメッセージが読出される。マイクロプロセッサ（ホストＣＰＵ）は、通信コントローラのパッシブインタフェースを介して、格納されたメッセージオブジェクトにアクセスすることが可能である。
【００１６】
マイクロプロセッサは、通信コントローラを設定し（konfigurieren）、管理し（kontrollieren）、制御する。マイクロプロセッサは、受信されたメッセージを読出し、評価する。さらに、新規メッセージを計算し（berechenen）、通信接続を介して送信するメッセージの書込みを行う。加入者内でのデータ伝送のために、マイクロプロセッサは、通信コントローラからマイクロコントローラのメモリへデータをワード単位で伝送する。その際、マイクロプロセッサのクロックレートが今日一般的であるように高い場合、複数の待機サイクルが発生する。複数の待機サイクルの間、マイクロプロセッサは、データ伝送の終了に備えて待機し、他のタスクに対応することができない。
【００１７】
最も簡単なゲートウェイ動作において、多くの場合、受信されたデータを加入者の通信コントローラから読出し、送信のために加入者の１つまたは複数の他の通信コントローラに書込む必要がある。ＤＭＡ（Direct Memory Access）コントローラが利用されない場合、場合によってはデータを処理し、続いて対応する通信コントローラに複写するために、マイクロプロセッサ（ホストＣＰＵ）は、マイクロプロセッサに割当てられたメモリ部、またはCＰＵ内部のメモリ部へ、通信コントローラからデータをワード単位で伝送する。その際、マイクロプロセッサ（ホストＣＰＵ）のクロックレートが今日一般的であるように高い場合、複数の待機サイクルが発生する。複数の待機時間の間、マイクロプロセッサはロックされており、他のタスクを遂行することができない。
【００１８】
マイクロプロセッサは、少なくとも１つの通信コントローラまたはその内部に含まれるロジック、および、アクティブインタフェースの設定データ（Konfigurationsdaten）を設定し、検証し、制御する。マイクロプロセッサは、既に通信コントローラのメッセージメモリ内に受信され、自動的にマイクロプロセッサのメモリ部に複写されたメッセージオブジェクトを読出し、評価し、または処理する。さらに、新規メッセージオブジェクトを計算し、マイクロプロセッサのメモリ部に格納する。さらに、通信コントローラがマイクロプロセッサのメモリ部から（通信コントローラ）独自のメッセージメモリに目下のデータを伝送可能なように、対応する通信コントローラに情報が伝達される。
【００１９】
同様に、通信システムの加入者のマイクロコントローラのマイクロプロセッサへの負荷を軽減するために、パッシブインタフェース、またはマスタとしてのアクティブインタフェースを介して、周辺バスにＤＭＡコントローラを接続させることが公知である。ＤＭＡコントローラは、マイクロコントローラのメモリ部と通信コントローラとの間のデータ伝送を実行することが可能である。データ伝送のために、ＤＭＡコントローラは、マイクロプロセッサ（ホストＣＰＵ）によって設定され、作動される。その後、ＤＭＡコントローラは、通信コントローラからマイクロコントローラのメモリ部へ、データをワード単位で伝送する。または、この機能がサポートされる場合に、複数の通信コントローラの間で直接、データをワード単位で伝送する。データ伝送の終了は、割込みによってマイクロプロセッサに通知される。通知を受けて、マイクロプロセッサは、次のメッセージのためのプロセスを新たに開始する。割込みの実行によって、複数のＣＰＵ命令が生成される。複数のＣＰＵ命令によって、マイクロプロセッサの計算リソースおよび記憶リソースの大部分が拘束される（gebunden）。さらに、頻繁な割込みによって、中断されたソフトウェアタスクの潜在的なジッタ（実行時間に関する時間的な不安定さ）が増加する。
【００２０】
従って、本発明の課題は、通信システムの加入者装置においてゲートウェイ機能を最適化することにある。特に、加入者装置の複数の通信コントローラの間でのメッセージのルーティングにおいて、加入者マイクロプロセッサの待機サイクルの数、および割込み負荷を低減する必要がある。
【課題を解決するための手段】
【００２１】
本課題を解決するために、冒頭に述べた形態の加入者装置に基づいて、少なくとも１つの通信コントローラは、周辺バスとの接続に際して経由するアクティブインタフェースと、ゲートウェイ機能を単独で実現するロジックとを備えることが提案される。
【００２２】
本発明に基づいて、スレーブではなくマスタとしての通信コントローラを、周辺バスに接続させることが提案される。追加的に、通信コントローラは、ロジックの形態をしたインテリジェンスを有する。インテリジェンスによって、通信コントローラは、通信コントローラのメッセージメモリとマイクロコントローラのメモリとの間のゲートウェイ機能、または、複数の通信コントローラのメッセージメモリの間でのゲートウェイ機能を単独で調整し、制御することが可能になる。ロジックによって、ある程度のＤＭＡ機能を通信コントローラに与えることが可能である。
【００２３】
本発明に基づいて、加入者のマイクロコントローラ（ホストＣＰＵ）と通信コントローラのメッセージメモリとの間のデータ伝送、および複数の通信コントローラのメッセージメモリの間でのデータ伝送は、アクティブインタフェースを追加することによって最適化される。その際特に、時間制御型またはイベント制御型のデータ伝送等の特別なゲートウェイ機能がサポートされる。通信コントローラによるメッセージの伝送は、対応する構成（Konfiguration）に基づいて、加入者のマイクロプロセッサ（ホストＣＰＵ）によって引き続き単独で処理される。メッセージがアクティブインタフェースを介して直接的に伝送可能となるので、本発明に基づく方法によって、待機サイクルまたは割込みによるマイクロプロセッサの従来のような高い使用率が低減される、または回避される。
【００２４】
本発明は、任意の通信システムの任意の加入者において利用されることが可能である。以下では、本発明が、ＦｌｅｘＲａｙ通信システムを用いて例示される。しかし、このようなＦｌｅｘＲａｙプロトコルとの関連は、限定的に解釈されるものではない。当然のことながら、本発明は、ＭＯＳＴ（Media Oriented Systems Transport）システムの加入者、ＣＡＮ（Controller Area Network）システムの加入者、ＴＴＣＡＮ（Time
Triggered CAN）システムの加入者、ＬＩＮ（Local Interconnect Network）システムの加入者、または任意の他の公知の通信システムの加入者において利用されることが可能である。
【００２５】
パッシブインタフェースに加えて、本発明に基づく通信コントローラは、アクティブインタフェースを有している。アクティブインタフェースを介して、通信コントローラに組込まれたロジックは、通信コントローラのメッセージメモリからメッセージオブジェクトを読出し、対応するターゲット（マイクロプロセッサのメモリ部、または通信コントローラのメッセージメモリ）に単独で書込むことが可能である。同様に、ロジックは、ソース（マイクロプロセッサのメモリ部または通信コントローラのメッセージメモリ）からメッセージオブジェクトを読出し、本発明に基づく通信コントローラのメッセージメモリに書込むことも可能である。当然のことながら、１つだけではなく複数の通信コントローラが、本発明に基づく方法で構成されることが考えられる。本発明の場合、全モジュール（通信コントローラ）がアクティブインタフェースを有する必要はない。アクティブインタフェースは（制御しているマイクロコントローラまたは他の制御ユニットによるトリガなしに）、他のモジュールにデータを単独で要求することが可能である。
【００２６】
本発明に基づく通信コントローラ、または本発明に基づく通信コントローラのロジックによって実現される有利なゲートウェイ機能として、例えば、（周辺バス、マイクロプロセッサ、通信コントローラおよび場合によっては更なる別のモジュール等から構成される）ネットワークにおける、到着したメッセージのルーティング（転送）が挙げられる。基本的に、様々なルーティング方法が考えられ、以下では、ルーティング方法を幾つか詳細に説明する。
【００２７】
・静的ルーティング
この方法は非適応的（nicht adaptiv）であり、非常に簡単なのでよく利用されている。各ノード（通信コントローラ）は、各々に可能性のあるターゲットノードの行が記載されたテーブルを保持する。行は、ターゲットノードに対する最適な伝送経路、２番目に最適な伝送経路等を表す、重み付けされたｎ個のエントリを含んでいる。データパケット転送の前に、対応するエントリが選択され、可能性のあるルートのうちの１つが与えられる。ここでの重み付けは、可能性のあるルートが選択される確率を反映している。
【００２８】
・集中ルーティング
集中ルーティングは、適応的な方法に相当する。ネットワークには、ルーティング制御センター（Routing Control Center；ＲＣＣ）が存在し、各ノードは、周期的にＲＣＣに状態情報を送信する。状態情報には、例えば、アクティブな全ての隣接ノードのリスト、目下の待ち行列の長さ、最後のメッセージ（Meldung）以降のトラフィック量等が該当する。ＲＣＣは、状態情報を収集し、この情報に基づいて、全ネットワークにおける全てのノード間の適切な経路の長さを計算する。その後、ＲＣＣは、各ノードにルーティングテーブルを転送する。ノードは、ルーティングテーブルを用いてルーティングの決定を行う。ＲＣＣの機能は、本発明に基づく通信コントローラまたは本発明に基づく通信コントローラのロジックが担う。
【００２９】
長所
−ＲＣＣは、理論的には（ネットワークを）完全に概観するので「完璧な」決定を下すことが可能である。
−ノードは、負荷を要する計算を実行する必要がない。
−ＲＣＣ機能は、１つもしくは複数の通信コントローラ、または、１つもしくは複数の通信コントローラのロジックが少なくも部分的に担うので、加入者のマイクロプロセッサに対する負荷が軽減される。
【００３０】
短所
−大きなネットワークの演算には、場合によって非常に長い時間を要する。
−（バックアッププロセッサが設けられていない、または定義されていない場合）ＲＣＣの故障によって、全ネットワークが麻痺する。
−基本的に、ＲＣＣ近傍のノードは、ＲＣＣから遠く離れたノードよりも早く新しいルーティングテーブルを取得するので、広範囲での不整合が生じうる。
−集中機能によって、ＲＣＣに大きな負荷が生じる。
【００３１】
・個別ルーティング
このルーティング方法の場合、各ノードは、独自で収集する情報または収集した情報に基づいて決定する。ノード間でルーティング情報の交換は行われない。（故障またはノードの追加等による）トラフィックの変更またはネットワークのトポロジの変更に対する調整は、この場合、制限された範囲で行われうるが、基本的には、特に大きな負荷を要することなしに可能となる。個別ルーティングとして、
−ブロードキャストルーティング
−ホットポテト
−バックワードラーニング
−デルタルーティング
が挙げられる。
【００３２】
・ブロードキャストルーティング
ブロードキャストルーティングの場合、パケットが全てのノードに送信される。この場合、２つのバリエーションが存在する。つまり、第１のバリエーションは、各ノードに対して異なるパケットが作成されることである。第２のバリエーションは、輻輳（Fluten）であり、同一のパケットが各ノードに転送される。輻輳は、ここでは最も簡単な方法であり、非適応的である。各到着したパケットは、パケットが到着済みの伝送ルートを除き各伝送ルートで転送される。ここで、輻輳を抑制するために以下のような措置を取ることも可能である。
−パケットに番号を付してパケットの複製を検出する。
−経由した一区間（ホップ）をカウントして、パケットの生存時間を検証する。
−選択的な輻輳（全ルートではなく、幾つかのルートに対してのみ転送）
−ランダム・ウォーク（無作為なルート選択）
【００３３】
・ホットポテト
各ノードは、到着したパケットを可能な限り早く転送しようと試みる（ノードがパケットを熱いじゃがいものように扱うことから、この名称がついた）。ここでは、待ち行列が最も短い伝送ルートが選択される。この方法と静的ルーティングの組合せも存在する。
−伝送ルートの待ち行列の長さが特定の閾値を下回っている限り、静的ルーティングの後に最適な伝送ルートを選択する。
−伝送ルートに付された重み付けが非常に小さい場合、待ち行列が最も短い伝送ルートを選択する（上記の静的ルーティング参照）
【００３４】
・バックワードラーニング
この方法の場合、以下の情報がパケットに保存される必要がある。
−ソースノードの識別
−区間（ホップ）を経由するごとに１つ増加されるカウンタ
ノードがパケットを１つ獲得する場合、ノードはホップ数を検出し、どの入力を介してパケットを獲得したのかを検出することが可能である。従って、各ノードは、どの経路を介して、最小数のホップで他のノードに到達できるかを、獲得されたパケットから推測することが可能である。パケットが、テーブルに登録済みのホップ数より少ないホップ数でノードに到達した場合に、ルーティングテーブルのエントリが置換される。しかし、ある程度の時間に渡って、パケットが特定のホップ数で各ノードによって獲得されなかった場合にも、エントリが更新される。つまり、一定の時間間隔を伴うラーニングサイクルが許容される。ラーニングサイクルにおいて、相対的に好ましいエントリがある程度古くなると、相対的に好ましくないエントリで上書きされる。その後、相対的に好ましい接続はもはや存在しないことを前提として、次に最適な接続が選択される。その際、以下の問題が発生する。
−ラーニングサイクルの間でルーティングが最適とならない。
−ラーニングサイクルが短い場合（エントリが、より速く相対的に好ましくないエントリで更新される。）、複数のパケットが未知の品質の経路をとる。
−ラーニングサイクルが長い場合、ネットワークの状態に対する適応行動（Anpassungsverhalten）が悪い。
【００３５】
・デルタルーティング
この方法は、集中ルーティングと個別ルーティングとの組合せに相当する。この場合、各ノードは、周期的に各伝送経路の（遅延、使用率、容量等の意味での）コストを測定し、この情報をＲＣＣに送信する。ＲＣＣは、ノードｉからノードｊへのｋ個の最適経路を計算する（全ノードｉ、ｊのためのａ）。その際、初期ルート（intiale Leitung）が異なる経路のみが考慮される。ＲＣＣは、全目的ノード（Bestimmungsort）に関する等価な経路のリストを各ノードに送信する。目下のルーティングのため、ノードは、等価な経路を無作為に選択する、または、現在測定されたコストに基づいて決定することが可能である。デルタという名称は、ここでは、２つの経路が等価として見なされるかどうかを検出する機能に由来している。
【００３６】
・分散適応ルーティング
この方法の場合、各ノードは、各隣接ノードとルーティング情報を周期的に独自に交換する。このルーティングでも、各ノードは、ネットワークの他の各ノードに関するエントリを含むルーティングテーブルを保持する。このテーブルには、（他の）各ノードの好適な伝送ルート、時間に関する評価、または（他の）各ノードへの距離が含まれている。
−ホップ数
−ミリ秒単位で推測される遅延
−経路上で待機しているパケットの推測される総数
【００３７】
この評価は、隣接ノードまでの時間／距離、および／または、隣接ノードの（タイムスタンプが付された特別なエコーパケット等を用いた）評価から獲得される。ルーティング情報の交換は、特定の更新間隔で同期に、または、大きな変更があった際には非同期に行われることが可能である。この方法には、特に以下のルーティングが含まれる。
−距離ベクトル型ルーティング
−リンク状態型ルーティング
【００３８】
・距離ベクトル型ルーティング
従来ＲＩＰ（Routing
Information Protocol）としてインターネットで利用された、分散適応ルーティングである。この場合、各ルーターが、各ターゲットおよび各ターゲットのゲート（Ausgang）への最適な距離（ホップ数、遅延等）を示すテーブルを保持する。実際には、この方法では、「無限カウント」の問題に基づいて、複数のルーターが一定の状態に収束するまでに多くの時間を要する。
【００３９】
・リンク状態型ルーティング
ＯＳＰＦ（Open
Shortest Path First）およびＩＳ−ＩＳ（Intermediate System To Intermediate
System）としてインターネットで使用される、分散適応ルーティングである。以下のアルゴリズムが利用される。
−ＨＥＬＬＯパケットによる、新規の隣接ノードの検出
−エコーパケットによる、遅延または各隣接ノードに対する負荷の測定
−学習されたデータ（送信者、遅延している隣接ノードのリスト、世代（Alter）等）を含むリンク状態パケットの作成。リンク状態パケットは、周期的に、またはイベント制御で（新規ノード、ノードの故障等）で生成される。
−全ての隣接パケットへのリンク状態パケットの送信（原則的に輻輳を利用し、洗練させる場合、複製したパケットの破棄、特定の世代以降の情報の抹消等）
−（アルゴリズム、ダイクストラ法等に基づく）他の全てのルーターへの最短経路の計算
この方法は演算に大きな負荷が掛かる。しかし、この方法の最適化が可能であり、ネットワークの対応するトポロジ等に含まれる。
【００４０】
・階層ルーティング
階層ルーティングは、大きなネットワークの領域区分に基づいている。領域のノードは、独自の領域のルーティング情報のみを有している。各領域には、少なくとも、他の領域へのインタフェースの役目を果たす優れたノードが存在する。非常に大きなネットワークでは、ネットワークが拡大するに従って、更に別の階層の利用が可能である（領域、クラスタ、ゾーン、グループ）。
【００４１】
本発明の好適な発展形態に基づいて、ロジックは、ルーティングエンジンの機能を実現することが提案される。通信コントローラのルーティングエンジンのタスクは、特に、（周辺バス、マイクロプロセッサ、通信コントローラ、および場合によっては更なる別のモジュールを含む）ネットワークにおいて、到着したメッセージを転送（weiterzuleiten）することにある。ルーティングエンジンの実現されるべき機能には、特に、既に詳細に説明されたルーティング方法の制御および調整が該当する。
【００４２】
本発明の好適な実施形態に基づいて、通信コントローラは、通信コントローラに割当てられた通信接続のメッセージを一時格納するためのメッセージメモリ、または通信接続のためのメッセージメモリを各々に有しており、ロジックは、通信コントローラのメッセージメモリとマイクロプロセッサとの間、または、通信コントローラの複数のメッセージメモリの間でデータの単独ルーティングを調整し、制御することが提案される。
【００４３】
本発明の特に好適な発展形態に基づいて、少なくとも１つの通信コントローラは、通信モジュ−ルを有しており、通信モジュ−ルは、通信コントローラに割当てられた通信接続のメッセージを一時格納するためのメッセージメモリ、または通信接続のためのメッセージメモリを含んでおり、ロジックは、通信コントローラのメッセージメモリもしくは少なくとも１つの通信モジュールのメッセージメモリと、マイクロプロセッサとの間、または、通信コントローラの複数のメッセージメモリ、および／または、少なくとも１つの通信モジュールのメッセージメモリの間で、データの単独ルーティングを調整し、制御することが提案される。
【００４４】
本発明の好適な実施形態に基づいて、各通信モジュールは、メッセージメモリと周辺バスとの間に配置された少なくとも１つのバッファ、特に、少なくとも１つの入力バッファおよび少なくとも１つの出力バッファを有しており、ロジックは、通信コントローラのメッセージメモリもしくは少なくとも１つの通信モジュールのメッセージメモリの少なくとも１つのバッファと、マイクロプロセッサとの間、または、通信コントローラの複数のメッセージメモリ、および／または、少なくとも１つの通信モジュールのメッセージメモリの少なくとも１つのバッファの間で、データの単独ルーティングを調整し、制御することが提案される。
【００４５】
通信コントローラ内のロジックは、特に、ステートマシーン（Zustandmaschine）、特にＤＭＡステートマシーン（DMA-Zustandmaschine）を含んでいる。ステートマシーンは、特にハードウェアに基づいて実現されており、通信コントローラ内に組込まれている。
【００４６】
本発明の他の実施形態に基づいて、アクティブインタフェースおよびロジックを備える各通信コントローラは、アービターを有しており、アービターは、通信コントローラのメッセージメモリ、通信モジュールのメッセージメモリ、または、通信モジュールのメッセージメモリの少なくとも１つのバッファに対する、マイクロプロセッサおよびロジック（ステートマシーン等）の同時アクセスを仲裁することが提案される。
【００４７】
特に、アクティブインタフェースおよびロジックを備える各通信コントローラは、制御および／または状態レジスタ（Kontroll-und/oder Statusregisters）を有しており、マイクロプロセッサは、ゲートウェイ機能の設定（Konfiguration）、駆動（Ansteuerung）および／または監視のために、制御および／または状態レジスタにアクセスする。
【００４８】
さらに、アクティブインタフェースおよびロジックを備える各通信コントローラは、ルーティングメモリを有しており、マイクロプロセッサは、ゲートウェイ機能の駆動および／または監視のために、ルーティングメモリにアクセスすることが提案される。
【００４９】
加入者装置（Teilnehmer）は、特に、ＦｌｅｘＲａｙ通信システムのコンポーネントであり、ＦｌｅｘＲａｙ通信システムにおいて、加入者装置とＦｌｅｘＲａｙ通信接続に接続された他のＦｌｅｘＲａｙ加入者装置との間では、ＦｌｅｘＲａｙプロトコルに基づいてデータ伝送が行われる。
【００５０】
本発明の課題の更なる別の解決策として、冒頭に記載した形態の通信コントローラに基づいて、通信コントローラは、周辺バスとの接続に際して経由するアクティブインタフェースと、ゲートウェイ機能を単独で実現するロジックとを有することが提案される。
【００５１】
本発明の課題の更なる別の解決策として、冒頭に記載した形態の方法に基づいて、少なくとも１つの通信コントローラは、アクティブインタフェースを介して周辺バスに接続され、少なくとも１つの通信コントローラ内のロジックによってゲートウェイ機能が実現されることが提案される。
【００５２】
本発明の特に好適な発展形態に基づいて、ゲートウェイ機能の枠内で、割込みが開始され、処理され、およびメッセージが断片化され（fragmentieren）、最適化され（defragmentieren）、および、加入者装置の複数の通信コントローラの間でメッセージが交換され、および／または、通信コントローラのうちの１つとマイクロプロセッサのメモリ部（Speicherelement）との間でメッセージが交換されることが提案される。
【００５３】
さらに、マイクロプロセッサは、少なくとも１つの通信コントローラの制御および／または状態レジスタ内に制御および状態情報（Kontroll-und
Status-informationen）を格納することで、ゲートウェイ機能が設定され、制御され、および／または、監視されることが提案される。さらに、マイクロプロセッサは、少なくとも１つの通信コントローラのルーティングメモリ内にルーティング情報を格納することで、ゲートウェイ機能が制御され、および／または、監視されることが提案される。
【００５４】
本発明の好適な実施形態に基づいて、少なくとも１つの通信コントローラ内のロジックがステートマシーンを含んでおり、通信コントローラのメッセージメモリ、通信モジュールのメッセージメモリ、または、通信モジュールのメッセージメモリの少なくとも１つのバッファに対する、マイクロプロセッサおよびステートマシーンの同時アクセスが仲裁されることが提案される。
【００５５】
他の通信コントローラのメッセージメモリにデータをアクティブに複写する（aktiven Kopieren）ために、少なくとも１つの通信コントローラのロジックによって単独で引起こされ（veranlassen）、制御される方法であって、少なくとも１つの通信コントローラのバッファ内の受信されたデータを可視化する（Sichtbarmachen）工程と、アクティブインタフェースを介する書込みアクセスによって、マイクロプロセッサ（ホストＣＰＵ）に割当てられたメモリ部の構成可能（konfigurierbaren）なアドレス領域内に、または、他の通信コントローラのバッファ内に、受信されたデータの複写を格納する工程と、他の通信コントローラのバッファ内にデータの複写を格納する際に、バッファから他の通信コントローラのメッセージメモリへの格納されたデータの伝送を開始する工程と、を含むことが提案される。
【００５６】
他の通信コントローラのメッセージメモリからデータをアクティブに複写するために、少なくとも１つの通信コントローラのロジックによって単独で引起こされ、制御される方法であって、他の通信コントローラのバッファ内のデータを可視化する工程と、アクティブインタフェースを介する読出しアクセスによって、通信コントローラの少なくとも１つのバッファの設定可能（konfigurierbaren）なアドレス領域内に、マイクロプロセッサに割当てられたメモリ部の内容の複写、または、他の通信コントローラのバッファの内容の複写を格納する工程と、少なくとも１つのバッファから通信コントローラの通信モジュールのメッセージメモリへの格納されたデータの伝送を開始する工程と、を含むことが提案される。
【００５７】
最後に、上記方法は、データ、特にメッセージの受信によって、少なくとも１つの通信コントローラによるトリガによって、または、マイクロプロセッサによるトリガによって、時間制御で開始されることが提案される。このトリガには、通常、ロジックへの特別なスタート命令（Ausloese-Befehl）の伝達が含まれる。
【発明を実施するための最善の形態】
【００５８】
以下では、添付の図を用いて、本発明の更なる別の特徴および本発明の長所が詳細に解説される。図１は、加入者またはホスト１０２をＦｌｅｘＲａｙ通信接続１０１、従ってＦｌｅｘＲａｙの物理層に結合するためのＦｌｅｘＲａｙ通信モジュール１００を概念的に示す。物理層は、例えば、２つの伝送線を有するＦｌｅｘＲａｙデータバスとして実現されてもよい。このために、ＦｌｅｘＲａｙ通信モジュール１００は、接続１０７を介して加入者もしくは加入者プロセッサ１０２に、接続１０６を介して通信接続１０１に各々に接続される。一方で伝送時間に関して、他方でデータ一貫性に関して問題なく接続するために、ＦｌｅｘＲａｙ通信モジュールは、本質的に３つの構成として概念的に区別される。この場合、第１の構成１０５、特にクリップボード（zwischenablage）は、伝送されるメッセージの少なくとも一部を、特に一時的に記憶するために用いられる。加入者１０２と第１の構成１０５との間には、接続１０７および１０８を介して第２の構成１０４が接続される。同様に、通信接続１０１と第１の構成１０５との間には、接続１０６および１０９を介して第３の構成１０３が接続される。これにより、最適な速度によりデータ一貫性を保証しつつ、メッセージ、特に第１の構成１０５内または第１の構成１０５からのＦｌｅｘＲａｙメッセージの一部としてのデータが、極めてフレキシブルに、第１の構成１０５に／から入力／出力できる。
【００５９】
図２には、望ましい実施例での通信モジュール１００がさらに詳細に示される。各接続１０６〜１０９も、同様に詳細に示される。この場合、ＦｌｅｘＲａｙ通信モジュール１００をＦｌｅｘＲａｙ加入者装置１０２またはホストプロセッサに接続させるために、第２の構成１０４は、入力バッファメモリ２０１（Input Buffer; ＩＢＦ）、出力バッファメモリ２０２（Output
Buffer; ＯＢＦ）、および２つの部分２０３、２０４からなるインタフェースモジュールを有する。ここで、第１のサブモジュール２０３が加入者に依存せず、第２のサブモジュール２０４が加入者に依存する。加入者に依存するサブモジュール２０４（Customer CPU Interface; ＣＩＦ）は、加入者専用のホストＣＰＵ１０２、従ってカスタマ専用の加入者をＦｌｅｘＲａｙ通信モジュール１００に接続する。このために、双方向のデータ線２１６、アドレス線２１７および制御入力２１８が設けられる。同様に、割込み出力２１９が設けられる。加入者に依存するサブモジュール２０４が加入者に依存しないサブモジュール２０３（Generic CPU Interface; ＧＩＦ）に接続されており、従ってＦｌｅｘＲａｙ通信モジュールまたはＦｌｅｘＲａｙ−ＩＰモジュールは、汎用の、従って一般的なＣＰＵインタフェース２０３を有している。ＣＰＵインタフェース２０３には、対応する加入者に依存するサブモジュール２０４、従って加入者に依存するサブモジュール２０４を介して、多数の異なるカスタマ専用のホストＣＰＵが接続される。これにより、加入者に応じてサブモジュール２０４のみが変更されるので、労力およびコストが著しく低減される。ＣＰＵインタフェース２０３、および通信モジュール１００の他の部分は、変更なしに使用可能となる。
【００６０】
入力バッファメモリ２０１と出力バッファメモリ２０２とは、１つのメモリモジュールまたは異なるメモリモジュールとして形成されうる。この場合、入力バッファメモリ２０１は、メッセージメモリ３００に伝送するためのメッセージを一時的に記憶する。この場合、入力バッファモジュール２０１は、特に設定データ（Konfigurationsdaten）を有するヘッドセグメントと、データセグメントまたはペイロードセグメントとからなる、２つの完全なるメッセージを記憶できるように形成されることが望ましい。この場合、入力バッファメモリ２０１は２つに分割して（サブバッファとシャドウバッファ）形成されており、それによって、入力バッファメモリの２つの部分への交互書込み、またはアクセス交換により、加入者ＣＰＵ１０２とメッセージメモリ３００との間の伝送が高速化される。出力バッファメモリ２０２（Output Buffer; ＯＢＦ）も、同様にメッセージメモリ３００から加入者ＣＰＵ１０２に伝送するためのメッセージを一時的に記憶する。この場合、出力バッファ２０２も、特に設定データ（Konfigurationsdaten）を有するヘッドセグメントと、データセグメント、従ってペイロードセグメントとからなる、２つの完全なるメッセージが記憶されるように形成される。ここでも、出力バッファメモリ２０２が２つの部分、つまりサブバッファとシャドウバッファとに分割されており、それによって、２つの部分への交互読取り、またはアクセス交換により、加入者ＣＰＵもしくはホストＣＰＵ１０２とメッセージメモリ３００との間の伝送が高速化される。ブロック２０１〜２０４からなる第２の構成１０４が、図示するように、第１の構成１０５に接続される。
【００６１】
第１の構成１０５は、メッセージハンドラ２００（Message Handler; ＭＨＤ）およびメッセージメモリ３００（Message
RAM）からなる。メッセージハンドラ２００は、入力バッファメモリ２０１および出力バッファメモリ２０２とメッセージメモリ３００との間のデータ伝送を管理（kontrollieren）もしくは制御する。同様に、メッセージハンドラ２００は、第３の構成１０３を介して他の方向でのデータ伝送を管理もしくは制御する。メッセージメモリ３００は、望ましくはシングルポートＲＡＭとして形成される。このＲＡＭメモリは、メッセージもしくはメッセージオブジェクト、従って本来のデータを設定データおよび状態データと共に記憶する。メッセージメモリ３００の構成が、図３に詳細に示される。
【００６２】
第３の構成１０３は、ブロック２０５〜２０８からなる。ＦｌｅｘＲａｙ物理層の２つのチャネルに従って、構成１０３は、各々に双方向性を有する２つのデータ経路に分割される。これが、接続２１３および２１４によって表されており、そこでは、チャネルＡについて受信（ＲｘＡ）および送信（ＴｘＡ）のための２つのデータ方向ＲｘＡおよびＴｘＡと、チャネルＢについてＲｘＢおよびＴｘＢが示される。接続２１５によって、選択的な双方向の制御入力が示される。第３の構成１０３の接続は、チャネルＢについては第１のバッファメモリ２０５、チャネルＡについては第２のバッファメモリ２０６を各々に介して行われる。２つのバッファメモリ（Transient Buffer RAMs RAM A, RAM B）は、第１の構成１０５から／へのデータ伝送のためのバッファメモリとして機能する。２つのチャネルに従って、２つのバッファメモリ２０５および２０６は、インタフェースモジュール２０８および２０７に各々に接続されている。インタフェースモジュール２０７、２０８は、送信／受信シフトレジスタおよびＦｌｅｘＲａｙプロトコル有限ステートマシーンからなる、ＦｌｅｘＲａｙプロトコルコントローラまたはバスプロトコルコントローラを有する。よって、２つのバッファメモリ２０５および２０６は、インタフェースモジュールまたはＦｌｅｘＲａｙプロトコルコントローラ２０７、２０８のシフトレジスタと、メッセージメモリ３００との間でデータを伝送するための一時的なメモリとして用いられる。ここでも、各バッファメモリ２０５または２０６によって、２つのＦｌｅｘＲａｙメッセージのデータフィールド、従ってペイロードセグメントまたはデータセグメントが記憶されることが望ましい。
【００６３】
さらに、通信モジュール１００には、グローバルタイムユニット２０９（Global Time Unit; ＧＴＵ）が示されており、それはＦｌｅｘＲａｙ内でグローバルタイムスロット、従ってミクロ的なμＴおよびマクロ的なＭＴを提示する役割を果たす。同様に、グローバルタイムユニット２０９を介して、サイクルカウンタ（Cycle Counter）のタイミング同期、およびＦｌｅｘＲａｙの静的および動的セグメントにおける時間経過の管理がエラー許容性を有するように制御される。ブロック２１０は、ＦｌｅｘＲａｙ通信コントローラのオペレーションモードを管理かつ制御する、一般的なシステム制御（System Universal Control; ＳＵＣ）を示す。オペレーションモードには、例えば、ウェイクアップ、スタートアップ、リインテグレーションもしくはインテグレーション、ノーマルオペレーションおよびパッシブオペレーションなどが含まれる。
【００６４】
ブロック２１１は、ＦｌｅｘＲａｙプロトコル標準ｖ２．０に記述されるような、ネットワークおよびエラーマネージメント部（Network- and Error Management; ＮＥＭ）を示す。そして、ブロック２１２は、状態およびエラー割込みフラグ（status and error interrupt flags）を管理し、かつ加入者ＣＰＵ１０２への割込み出力２１９を管理もしくは制御する、割込み制御部（Interrupt Control INT）を示す。ブロック２１２は、さらに、時間割込みを発生させるために、絶対タイマおよび相対タイマもしくはタイミングジェネレータを有する。
【００６５】
ＦｌｅｘＲａｙネットワーク内で通信するために、２５４データバイトまでのメッセージオブジェクトもしくはメッセージ（Message Buffer）が構成されうる。メッセージメモリ３００は、例えば、最大１２８メッセージオブジェクトまでを記憶可能な、メッセージＲＡＭメモリである。メッセージ自体の処理もしくは管理に関する全ての機能は、メッセージハンドラ２００に実装される。この機能は、例えば、許容フィルタリング（Akzeptanzfilterung）、２つのＦｌｅｘＲａｙプロトコルコントローラブロック２０７および２０８とメッセージメモリ３００、従ってメッセージＲＡＭとの間でのメッセージの伝送、および送信順序の管理と設定データ（Konfigurationsdaten）もしくは状態データの準備である。
【００６６】
外部のＣＰＵ、従って加入者プロセッサ１０２の外部のプロセッサは、インタフェースモジュールの加入者に依存する部分２０４を有する加入者インタフェースを介して、ＦｌｅｘＲａｙ通信モジュール１００のレジスタへ直接アクセスすることができる。この場合、複数のレジスタが使用される。レジスタは、ＦｌｅｘＲａｙプロトコルコントローラ、従ってインタフェースモジュール２０７および２０８、メッセージハンドラ２００、グローバルタイムユニット２０９、一般的なシステムコントローラ２１０、ネットワークおよびエラーマネージメントユニット２１１、割込みコントローラ２１２、およびメッセージＲＡＭ、従ってメッセージメモリ３００へのアクセスを、構成し、制御し、同様に該当する状態を表示するために使用される。少なくともレジスタのこれらの部分について、図４〜６および図７〜９でさらに詳細に説明する。前述されたＦｌｅｘＲａｙ通信モジュールによって、ＦｌｅｘＲａｙ標準ｖ２．０が容易に実現されうる。それによって対応するＦｌｅｘＲａｙ機能性を有するＡＳＩＣまたはマイクロコントローラが容易に形成されうる。
【００６７】
ＦｌｅｘＲａｙプロトコル仕様、特にヴァージョン２．０は、上記のＦｌｅｘＲａｙ通信モジュール１００によって完全にサポートされており、例えば、最大１２８個のメッセージまたはメッセージオブジェクトが構成可能である。その際、メッセージの各データフィールドまたは各データ領域の大きさに応じて、異なる数のメッセージオブジェクトを保存するために、柔軟に構成可能なメッセージメモリが設けられる。従って、好適に、異なる長さのデータフィールドを有するメッセージまたはメッセージオブジェクトが構成される。その際、メッセージメモリ３００は、好適に、ＦＩＦＯ（First In-First Out）として構成されるので、構成可能な受信用ＦＩＦＯが設けられる。メモリ内の各メッセージまたは各メッセージオブジェクトは、受信バッファオブジェクトまたは送信バッファオブジェクトまたは構成可能な受信ＦＩＦＯの一部として構成されることが可能である。同様に、ＦｌｅｘＲａｙネットワークにおけるフレームＩＤ、チャネルＩＤおよびサイクルカウンタによる許容範囲のフィルタリングが可能である。従って、有利に、ネットワーク管理が支援される。さらに、好適に、マスク可能なモジュール割込みが設けられている。
【００６８】
図３には、メッセージメモリ３００の分割が詳細に示される。ＦｌｅｘＲａｙプロトコル標準に従って要求される、ＦｌｅｘＲａｙ通信コントローラの機能性のために、送信されるメッセージを準備するためのメッセージメモリ（送信バッファ、Ｔｘ）、およびエラーを伴わずに受信されたメッセージを格納するためのメッセージメモリ（受信バッファ、Ｒｘ）が必要である。ＦｌｅｘＲａｙプロトコルは、０〜２５４バイトのデータ領域、従ってペイロード領域を有するメッセージを許容する。図２に示すように、メッセージメモリ３００は、ＦｌｅｘＲａｙ通信モジュール１００の一部である。以下で説明する方法および対応するメッセージメモリ３００において、特にランダムアクセスメモリ（ＲＡＭ）を使用した送信メッセージおよび受信メッセージの記憶について説明する。前述したメカニズムによって、予め設定された容量のメッセージメモリ内に可変の数のメッセージを記憶することを可能にする。この場合、記憶可能なメッセージ数は、各メッセージのデータ領域のサイズに依存し、それによって、一方では、メッセージのデータ領域のサイズを制限することなしに、必要とされるメモリのサイズを最小限に抑えることができ、他方では、メモリの最適な使用が行われる。以下では、ＦｌｅｘＲａｙ通信コントローラのための、特にＲＡＭベースのメッセージメモリ３００の可変分割について詳細に説明する。
【００６９】
実装のために、例えば、ｎビット（例えば８、１６、３２など）の固定されたワード長と、ｍワードの予め設定されたメモリ深度とを有するメッセージメモリが予め設定される（自然数ｍ、ｎ）。この場合、メッセージメモリ３００は、２つのセグメント、ヘッダセグメントＨＳとデータセグメントＤＳ（ペイロードセクション、ペイロードセグメント）とに分割される。よって、メッセージ毎に１つのヘッダ領域ＨＢおよび１つのデータ領域ＤＢが割当てられる。よって、メッセージ０、１〜ｋ（自然数ｋ）のために、ヘッダ領域ＨＢ０、ＨＢ１〜ＨＢｋとデータ領域ＤＢ０、ＤＢ１〜ＤＢｋとが割当てられる。よって、１つのメッセージ内で第１のデータと第２のデータが区別され、第１のデータは、ＦｌｅｘＲａｙメッセージに関する設定データ（Konfigurationsdaten）および／または状態データに相当し、ヘッダ領域ＨＢ（ＨＢ０、ＨＢ１、…、ＨＢｋ）に格納される。伝送すべき本来のデータに相当する第２のデータは、データ領域ＤＢ（ＤＢ０、ＤＢ１、…、ＤＢｋ）に格納される。よって、各メッセージについて、第１のデータのための第１のデータ量（ビット、バイトまたはワードで測定）と、第２のデータのための第２のデータ量（同様にビット、バイトまたはワードで測定）とが生じており、メッセージ毎の第２のデータ量は各々に異なることができる。ヘッドセグメントＨＳとデータセグメントＤＳとの間の分割は、メッセージメモリ３００内で可変であり、領域間で予め設定された境界が存在しない。ヘッドセグメントＨＳとデータセグメントＤＳとの間の分割は、メッセージ数ｋと、第２のデータ量、従って１つのメッセージもしくはｋ個全てのメッセージについて合計された本来のデータの容量に依存する。各メッセージの設定データＫＤ０、ＫＤ１〜ＫＤｋに、データポインタＤＰ０、ＤＰ１〜ＤＰｋが各々に直接割当てられる。特殊な形態においては、各ヘッド領域ＨＢ０、ＨＢ１〜ＨＢｋに固定数のワード、ここでは２ワードが割当てられるので、設定データＫＤ（ＫＤ０、ＫＤ１、…、ＫＤｋ）とデータポインタＤＰ（ＤＰ０、ＤＰ１、…、ＤＰｋ）とが常にヘッダ領域ＨＢに一緒に格納される。記憶されるメッセージの数ｋに依存するヘッダ領域ＨＢを有するヘッドセグメントＨＳには、本来のメッセージデータＤ０、Ｄ１〜Ｄｋを記憶するためのデータセグメントＤＳが続く。データセグメント（またはデータセクション）ＤＳのデータ量は、格納された各メッセージデータのデータ量に依存しており、ここでは例えば、ＤＢ０が６ワード、ＤＢ１が１ワード、ＤＢｋが２ワードである。よって、各データポインタＤＰ０、ＤＰ１〜ＤＰｋは、各メッセージ０、１〜ｋのデータＤ０、Ｄ１〜Ｄｋについて、データ領域ＤＢ０、ＤＢ１〜ＤＢｋの開始アドレスを示す。よって、メッセージメモリ３００におけるヘッドセグメントＨＳとデータセグメントＤＳとの間の分割は、メッセージ自体の数ｋおよび各メッセージのデータ量に依存する第２のデータ量に応じて可変である。構成されるメッセージが少ない場合、ヘッドセグメントＨＳが小さくなり、メッセージメモリ３００内の未使用領域は、データセグメントＤＳの追加として、データを記憶するために使用される。この可変性によって、最��なメモリ使用が保証されるので、比較的小さなメモリの使用も可能となる。よって、記憶されるメッセージ数ｋと各メッセージの第２のデータ量との組合せに応じて、未使用データセグメントＦＤＳは、特にそのサイズが最小となり、特別な場合には０となりうる。
【００７０】
ヘッドセグメントＨＳ内のヘッド領域ＨＢ０〜ＨＢｋの順序とデータセグメントＤＳ内のデータ領域ＤＢ０〜ＤＢｋの順序とが各々に同一であるので、データポインタを使用する代わりに、第１のデータと第２のデータ、従って設定データＫＤ（ＫＤ０、ＫＤ１、…、ＫＤｋ）と本来のデータＤ（Ｄ０、Ｄ１、…、Ｄｋ）とを予め設定された順序で格納することも可能となる。この場合、条件に応じては、データポインタが省略されうる。
【００７１】
特に望ましい形態では、ＨＳおよびＤＳにはワード毎または領域（ＨＢおよび／またはＤＢ）毎に、チェックサムを特にパリティビットとして一緒に格納できるので、ＨＳおよびＤＳに格納されているデータの正確さを保証するために、メッセージメモリにエラー検出ジェネレータ、特にパリティビットジェネレータ、およびエラー検出チェッカー、特にパリティビットチェッカーが割当てられる。他の検査識別子、例えばＣＲＣ（Cyclic Redundancy check）またはＥＣＣ（Error Code
Correction）のような強力な識別子も考えられる。よって、メッセージメモリの固定的な分割に比較して、以下の利点が得られる。
【００７２】
利用者は、プログラミングに際して、より小さなデータフィールドを有するより多くのメッセージを使用するか、より大きなデータフィールドを有するより少ないメッセージを使用するかを決定できる。異なるサイズのデータ領域ＤＢを有するメッセージを構成するに際して、使用可能なメモリスペースが最適に使用される。利用者は、様々な形式のメッセージに対して、共通のデータ領域を使用する可能性を得る。
【００７３】
集積回路により通信コントローラを実装するに際して、通信コントローラの他の機能を変更することなしに、使用されるメモリのメモリ深度（ｍ個のワード）を適合させることによって、メッセージメモリ３００の容量がアプリケーションの要求に適合させられる。
【００７４】
以下において、図４〜６および図７〜９を用いて、ホストＣＰＵのアクセス、従ってバッファメモリ構成２０１および２０２を介する、設定データもしくは状態データおよび本来のデータの書込みおよび読取りについて詳しく説明する。この場合、データ一貫性が確保され、かつ同時に高い伝送速度が保証されるように、データ伝送に関する分離（Entkopplung）を形成することが目的となる。このプロセスの制御は、後述する図１０、１１および１２でさらに詳細に説明されるように、メッセージハンドラ２００を介して行われる。
【００７５】
図４、５および６では、まず、加入者ＣＰＵのホストＣＰＵ１０２による入力バッファメモリ２０１を介したメッセージメモリ３００への書込みアクセスが詳細に説明される。このために、図４は通信モジュール１００を再び示しており、説明の便宜上、通信モジュール１００の関連部分のみが示される。まず、シーケンス制御の役割を果たすメッセージハンドラ２００、２つの制御レジスタ４０３および４０４が示されており、制御レジスタは、図示するように、通信モジュール１００内でメッセージハンドラ２００の外部に設けられるが、メッセージハンドラ２００の内部に設けられてもよい。この場合、制御レジスタ４０３が入力要求レジスタ（Input Buffer Command Request Register）であり、制御レジスタ４０４が入力マスクレジスタ（Input Buffer Command Mask Register）である。よって、メッセージメモリ３００へのホストＣＰＵ１０２の書込みアクセスは、中間に接続された入力バッファメモリ２０１を介して行われる。入力バッファメモリ２０１は、特にサブバッファ４００とそれに付属するシャドウバッファ４０１として、分割され、もしくは二重に設計される。よって、以下で説明するように、メッセージもしくはメッセージオブジェクトあるいはメッセージメモリ３００のデータに対して、ホストＣＰＵ１０２の連続アクセスが可能となり、それによって、データ一貫性および加速された伝送が保証されうる。
【００７６】
アクセス制御は、入力要求レジスタ４０３および入力マスクレジスタ４０４により行われる。レジスタ４０３では、図５に示す符号０〜３１によって、例えば３２ビットの幅を有するレジスタ４０３の各ビット位置が示される。同様に、レジスタ４０４では、図６に示す符号０〜３１によって、例えば３２ビットの幅を有するレジスタ４０４の各ビット位置が示される。
【００７７】
例えば、レジスタ４０３のビット位置０〜５、１５、１６〜２１および３１は、シーケンス制御に関して特別な機能を有する。つまり、レジスタ４０３のビット位置０〜５には、メッセージ識別子としての識別子ＩＢＲＨ（Input Buffer Request Host）が入力可能である。同様に、レジスタ４０３のビット位置１６〜２１には、識別子ＩＢＲＳ（Input Buffer Request Shadow）が入力可能である。同様に、レジスタ４０３のビット位置１５にはＩＢＳＹＨ、ビット位置３１にはＩＢＳＹＳがアクセス識別子として入力される。レジスタ４０４のビット位置０〜２も特徴を有しており、ビット位置０および１には、ＬＨＳＨ（Load Header Section Host）およびＬＤＳＨ（Load Data
Section Host）によって、データ識別子としての他の識別子が入力される。これらのデータ識別子は、ここでは最も単純な形式、つまり各々に１ビットとして形成される。レジスタ４０４のビット位置２には、ＳＴＸＲＨ（Set Transmission X Request Host）によってスタート識別子が登録される。以下では、入力バッファ２０１を介したメッセージメモリ３００への書込みアクセスのシーケンスについて説明する。
【００７８】
ホストＣＰＵ１０２が、伝送されるメッセージのデータを入力バッファメモリ２０１に書込む。この場合、ホストＣＰＵ１０２は、メッセージメモリ３００のヘッダセグメントＨＳのためにメッセージの設定データおよびヘッダデータＫＤ、またはメッセージメモリ３００のデータセグメントＤＳのためにメッセージの伝送すべき本来のデータＤ、あるいは両方を書込むことができる。メッセージのどの部分、従って設定データおよび／または本来のデータが伝送されるかについては、入力マスクレジスタ４０４の特殊なデータ識別子ＬＨＳＨおよびＬＤＳＨによって定められる。この場合、ＬＨＳＨによって、ヘッダデータ、従って設定データＫＤが伝送されるかが定められ、ＬＤＳＨによって、データＤが伝送されるかが定められる。入力バッファメモリ２０１がバッファメモリ４００とそれに付属するシャドウバッファ４０１とによって二分して形成され、交互アクセスが行われるので、ＬＨＳＨおよびＬＤＳＨに対するペアとして、シャドウバッファ４０１に関連付けられる他の２つのデータ識別子領域が設けられる。レジスタ４０４のビット位置１６および１７のデータ識別子は、ＬＨＳＳ（Load Header Section Shadow）およびＬＤＳＳ（Load Data
Section Shadow）と称される。これらによって、シャドウバッファ４０１に関する伝送プロセスが制御される。
【００７９】
開始ビットもしくはスタート識別子ＳＴＸＲＨが入力マスクレジスタ４０４のビット位置２に設定されている場合、伝送される設定データおよび／または本来のデータがメッセージメモリ３００に各々に伝送された後に、該当するメッセージオブジェクトのための送信要求（Transmission Request）が自動的に設定される。つまり、スタート識別子ＳＴＸＲＨによって、伝送されるメッセージオブジェクトの自動送信が制御され、特に開始される。
【００８０】
シャドウバッファ４０１のための、それに対するペアは、スタート識別子ＳＴＸＲＳ（Set Transmission X Request Shadow）であって、例えば入力マスクレジスタ４０４のビット位置１８に含まれており、ここでも最も単純な形式、同様に１ビットとして形成される。ＳＴＸＲＳの機能は、ＳＴＸＲＨの機能と同様であるが、シャドウバッファ４０１に関連する。
【００８１】
ホストＣＰＵ１０２がメッセージ識別子、特に入力バッファメモリ２０１のデータの伝送先となる、メッセージメモリ３００内のメッセージオブジェクトの番号を、入力要求レジスタ４０３のビット位置０〜５、従ってＩＢＲＨに書込んだ場合、半円形の矢印で示唆されるように入力バッファメモリ２０１のサブバッファ４００とそれに付属するシャドウバッファ４０１とが交換され、もしくは２つの部分メモリ４００および４０１に対するホストＣＰＵ１０２およびメッセージメモリ３００の各アクセスが交換される。この場合、例えばデータ伝送、従ってメッセージメモリ３００へのデータ伝送も開始される。メッセージメモリ３００へのデータ伝送自体は、シャドウバッファ４０１から開始される。同時に、レジスタ領域ＩＢＲＨとＩＢＲＳとが交換される。同様に、ＬＨＳＨおよびＬＤＳＨがＬＨＳＳおよびＬＤＳＳに交換される。同様に、ＳＴＸＲＨがＳＴＸＲＳに交換される。よって、ＩＢＲＳは、メッセージの識別子、従ってシャドウバッファ４０１から伝送中のメッセージオブジェクトの番号、もしくはシャドウバッファ４０１の最新のデータ（ＫＤおよび／またはＤ）を含む、メッセージメモリ３００内の領域を示している。入力要求レジスタ４０３のビット位置３１の識別子（ここでは、例えば１ビット）ＩＢＳＹＳによって、シャドウバッファ４０１が関与する伝送が行われているかが表示される。つまり、例えば、ＩＢＳＹＳ＝１であれば、シャドウバッファ４０１から伝送中であり、ＩＢＳＹＳ＝０であれば、伝送中ではない。ビットＩＢＳＹＳは、例えば、シャドウバッファ４０１とメッセージメモリ３００との間で伝送中であることを表示するために、ＩＢＲＨ、従ってレジスタ４０３のビット位置０〜５への書込みによって設定される。メッセージメモリ３００へのデータ伝送が終了すると、ＩＢＳＹＳが再び初期化される。
【００８２】
シャドウバッファ４０１からのデータ伝送が進行中に、ホストＣＰＵ１０２は、次に伝送されるメッセージを入力バッファメモリ２０１もしくはサブバッファ４００に書込める。例えばレジスタ４０３のビット位置１５で他のアクセス識別子ＩＢＳＹＨ（Input Buffer Busy Host）を用いて、識別子がさらに繊細化されうる。シャドウバッファ４０１とメッセージメモリ３００との間で伝送が進行中に、従ってＩＢＳＹＳ＝１である場合に、ホストＣＰＵ１０２がＩＢＲＨ、従ってレジスタ４０３のビット位置０〜５に書込むと、入力要求レジスタ４０３でＩＢＳＹＨが設定される。進行中の伝送が終了するとすぐに、要求された伝送（前述されたＳＴＸＲＨによる要求）が開始され、ビットＩＢＳＹＨが初期化される。データがメッセージメモリに伝送されていることを表示するために、伝送中において、ビットＩＢＳＹＳが設定された状態にある。この場合、全ての実施例で使用される全てのビットは、１ビット以上の識別子としても形成されうる。記憶および処理の効率化の観点より、１ビットによる解決が効果的である。
【００８３】
前述されたメカニズムによって、ホストＣＰＵ１０２は、ヘッダ領域ＨＢおよびデータ領域ＤＢからなる、メッセージメモリ３００内のメッセージオブジェクトにデータを連続的に伝送することが可能となる。この場合、入力バッファメモリ２０１へのホストＣＰＵ１０２のアクセス速度がＦｌｅｘＲａｙ−ＩＰモジュール、従って通信モジュール１００の内部におけるデータ伝送速度より低い、または等しいことを前提とする。
【００８４】
図７、８および９では、ホストＣＰＵもしくは加入者ＣＰＵ１０２による出力バッファメモリ２０２を介したメッセージメモリ３００への読取りアクセスが詳細に説明される。このために、図７は通信モジュール１００を再び示しており、説明の便宜上、通信モジュール１００の関連部分のみが示される。まず、シーケンス制御の役割を果たすメッセージハンドラ２００、２つの制御レジスタ７０３および７０４が示されており、制御レジスタは、図示のように、通信モジュール１００内でメッセージハンドラ２００の外部に設けられるが、メッセージハンドラ２００の内部に設けられてもよい。この場合、制御レジスタ７０３が出力要求レジスタ（Output Buffer Command Request Register）であり、制御レジスタ７０４が出力マスクレジスタ（Output Buffer Command Mask Register）である。よって、メッセージメモリ３００へのホストＣＰＵ１０２の読取りアクセスは、中間に接続された出力バッファメモリ２０２を介して行われる。出力バッファメモリ２０２は、同様に、特にシャドウバッファ７００とそれに付属するサブバッファ７０１として、分割され、もしくは二重に設計される。よって、ここでも以下で説明するように、メッセージもしくはメッセージオブジェクトあるいはメッセージメモリ３００のデータに対して、ホストＣＰＵ１０２の連続アクセスが可能となり、それによって、メッセージメモリ３００からホスト１０２への逆方向でデータ一貫性および加速された伝送が保証されうる。アクセス制御は、出力要求レジスタ７０３および出力マスクレジスタ７０４を介して行われる。レジスタ７０３では、図８に示す符号０〜３１によって、例えば３２ビットの幅を有するレジスタ７０３の各ビット位置が示される。同様に、レジスタ７０４でも、図９に示す符号０〜３１によって、例えば３２ビットの幅を有するレジスタ７０４の各ビット位置が示される。
【００８５】
例えば、レジスタ７０３のビット位置０〜５、８、９、１５および１６〜２１は、読取りアクセスのシーケンス制御に関して特別な機能を有する。つまり、レジスタ７０３のビット位置０〜５には、メッセージ識別子としての識別子ＯＢＲＳ（Output Buffer Request Shadow）が入力可能である。同様に、レジスタ７０３のビット位置１６〜２１には、識別子ＯＢＲＨ（Output Buffer Request Host）が入力可能である。同様に、レジスタ７０３のビット位置１５には、アクセス識別子として識別子ＯＢＳＹＳ（Output Buffer Busy Shadow）が入力可能である。出力マスクレジスタ７０４のビット位置０および１も特徴を有しており、ビット位置０および１には、ＲＨＳＳ（Read Header Section Shadow）およびＲＤＳＳ（Read Data
Section Shadow）によって、データ識別子としての他の識別子が入力される。例えばビット位置１６および１７には、ＲＨＳＨ（Read Header Section Host）およびＲＤＳＨ（Read Data
Section Host）によって、他のデータ識別子が設けられる。これらのデータ識別子は、ここでも最も単純な形式、つまり各々に１ビットとして形成される。レジスタ７０３のビット位置９には、スタート識別子ＲＥＱが登録される。さらに、例えばレジスタ７０３のビット位置８に登録される、切替識別子ＶＩＥＷが設けられる。
【００８６】
ホストＣＰＵ１０２は、要求するメッセージの識別子、特に要求するメッセージオブジェクトの番号を、ＯＢＲＳ、従ってレジスタ７０３のビット位置０〜５に書込むことによって、メッセージメモリ３００にメッセージオブジェクトのデータを要求する。この場合、ホストＣＰＵは、反対方向と同様に、ヘッダ領域からメッセージの状態データもしくは設定データおよびヘッダデータＫＤを、またはデータ領域からメッセージの伝送すべき本来のデータＤを、あるいは両方を読取ることができる。この場合に、ヘッダ領域および／またはデータ領域から伝送されるデータの部分は、逆方向と同様に、ＲＨＳＳおよびＲＤＳＳによって設定される。つまり、ＲＨＳＳはヘッダデータが読取られるか否かを表し、ＲＤＳＳは本来のデータが読取られるか否かを表す。
【００８７】
スタート識別子は、メッセージメモリ３００からシャドウバッファ７００への伝送を開始させるために用いられる。つまり、識別子として、最も簡単な形式で１ビットが使用される場合、出力要求レジスタ７０３のビット位置９にビットＲＥＱが設定されることによって、メッセージメモリ３００からシャドウバッファ７００への伝送が開始される。進行中の伝送は、アクセス識別子として、最も簡単な形式で、レジスタ７０３のビットＯＢＳＹＳによって表示される。データ衝突を回避するために、ＯＢＳＹＳが設定されておらず、従って伝送が進行中でない場合にのみ、ビットＲＥＱが設定可能であれば効果的である。ここでは、その後、メッセージメモリ３００とシャドウバッファ７００との間のメッセージ伝送も行われる。本来のシーケンスは、一方では、図４、５および６の表示とは反対方向で制御され（相補的なレジスタ配置）、かつ実行され、または、他方では、付加的な識別子、つまりレジスタ７０３のビット位置８の切替識別子ＶＩＥＷによって実行されうる。つまり、伝送の終了後に、ビットＯＢＳＹＳが初期化され、出力要求レジスタ７０３にビットＶＩＥＷを設定することによって、サブバッファ７０１とそれに付属するシャドウバッファ７００とが交換され、もしくはそれらに対するアクセスが交換されて、ホストＣＰＵ１０２は、メッセージメモリ３００から要求されたメッセージオブジェクト、従って該当するメッセージをサブバッファ７０１から読取ることができる。この場合、ここでも、図４〜６の逆方向の伝送と同様に、レジスタセルＯＢＲＳとＯＢＲＨとが交換される。同様に、ＲＨＳＳおよびＲＤＳＳがＲＨＳＨおよびＲＤＳＨに交換される。ここでも、ＯＢＳＹＳが設定されておらず、従って伝送が進行中でない場合にのみ、ビットＶＩＥＷが設定可能となることで、保護機構として設けられうる。
【００８８】
よって、メッセージメモリ３００へのホストＣＰＵ１０２の読取りアクセスは、中間に接続された出力バッファメモリ２０２を介して行われる。出力バッファメモリ２０２は、入力バッファメモリ２０１と同様に、メッセージメモリ３００内に格納されたメッセージオブジェクトへのホストＣＰＵ１０２の連続アクセスを保証するために、二分され、もしくは二重に設計される。ここでも、高いデータ一貫性および加速された伝送という利点が得られる。
【００８９】
前述された入力バッファ２０１および出力バッファ２０２を用いることによって、モジュール内部の待機時間にもかかわらず、割込みされることなしに、ホストＣＰＵ１０２によるメッセージメモリ３００へのアクセスが確保される。
【００９０】
データ一貫性を確保するために、データ伝送、特に通信モジュール１００内の転送（Weiterleitung）がメッセージハンドラ２００（Message Handler; ＭＨＤ）によって行われる。このために、図１０には、メッセージハンドラ２００が示される。メッセージハンドラ２００は、機能性に関して、複数のステートマシーンまたはステートオートマトン、従って有限オートマトン、いわゆる有限ステートマシーン（ＦＳＭ）によって表示可能である。この場合、少なくとも３つのステートマシーン、特に望ましい実施例では４つの有限ステートマシーンが設けられる。第１の有限ステートマシーンがＩＯＢＦ−ＦＳＭ（Input／Output Buffer State Machine）５０１で示される。ＩＯＢＦ−ＦＳＭは、入力バッファメモリ２０１または出力バッファメモリ２０２に関する各伝送方向に応じて、２つの有限ステートマシーン、ＩＢＦ−ＦＳＭ（Input Buffer FSM）とＯＢＦ−ＦＳＭ（Output Buffer FSM）とに分割可能であり、それによって最大５つのステートオートマトン（IBF-FSM, OBF-FSM, TBF1-FMS, TBF2-FSM, AFSM）が考えられる。しかし、全てに共通してＩＯＢＦ−ＦＳＭが設けられることが望ましい。ここでは、少なくとも第２の有限ステートマシーンは、望ましい実施例の特徴として図２に記述するように、２つのブロック５０２および５０３に分割されており、メモリ２０５および２０６に関する２つのチャネルＡおよびＢを操作する。この場合、２つのチャネルを操作するために、１つの有限ステートマシーンを設けることができ、または、望ましい形式として、チャネルＡのための有限ステートマシーンＴＢＦ１−ＦＳＭ（Transient Buffer 1（206, RAM A）ステートマシーン）５０２と、チャネルＢのためのＴＢＦ２−ＦＳＭ（Transient Buffer 2（205, RAM B）ステートマシーン）５０３とが示される。
【００９１】
望ましい実施例では、３つの有限ステートマシーン５０１〜５０３のアクセスを制御するために、アービター有限ステートマシーン、いわゆるＡＦＳＭ５００が用いられる。データ（ＫＤおよび／またはＤ）は、通信モジュール１００内で、例えばＶＣＯ（Voltage controlled oscillator）、振動クォーツなどのようなクロック手段によって生成された、またはそれらに基づいて適合されたクロックで伝送される。この場合、クロックＴは、モジュール内で生成可能であり、または例えば、外部からのバスクロックとして設けられうる。アービター有限ステートマシーンＡＦＳＭ５００は、３つの有限ステートマシーン５０１〜５０３のいずれか１つに対して、特にクロック周期Ｔ毎に、メッセージメモリ３００へのアクセス権を交互に与える。つまり、使用可能な状態にある時間が、各ステートオートマトン５０１、５０２、５０３のアクセス要求に応じて、要求するステートオートマトンに割当てられる。有限ステートマシーンのいずれか１つのみからアクセス要求が行われた場合、その有限ステートマシーンがアクセス時間の１００％、従って全てのクロックＴを取得する。２つのステートオートマトンからアクセス要求が行われた場合、各有限ステートマシーンがアクセス時間の５０％を取得する。そして、３つのステートオートマトンからアクセス要求が行われた場合、各有限ステートマシーンがアクセス時間の１／３を取得する。これによって、使用可能な各帯域幅が最適に使用される。
【００９２】
第１の有限ステートマシーン５０１、従ってＩＯＢＦ−ＦＳＭは、必要に応じて以下の動作を実行する：
−入力バッファメモリ２０１からメッセージメモリ３００内の選択されたメッセージオブジェクトへのデータ伝送
−メッセージメモリ３００内の選択されたメッセージオブジェクトから出力バッファメモリ２０２へのデータ伝送
【００９３】
チャネルＡのためのステートマシーン５０２、従ってＴＢＦ１−ＦＳＭは、以下の動作を実行する：
−メッセージメモリ３００内の選択されたメッセージオブジェクトからチャネルＡのバッファメモリ２０６へのデータ伝送
−バッファメモリ２０６からメッセージメモリ３００内の選択されたメッセージオブジェクトへのデータ伝送
−メッセージメモリ３００内での適切なメッセージオブジェクトのサーチ、その場合、受信に際しては、許容フィルタリングの範囲内で、チャネルＡで受信されるメッセージを格納するためのメッセージオブジェクト（受信バッファ）がサーチされ、送信に際しては、チャネルＡで送信される後続のメッセージオブジェクト（送信バッファ）がサーチされる。
【００９４】
ＴＢＦ２−ＦＳＭ、従ってブロック５０３のチャネルＢのための有限ステートマシーンの動作も同様である。ＴＢＦ２−ＦＳＭは、メッセージメモリ３００内の選択されたメッセージオブジェクトからチャネルＢのバッファメモリ２０５へのデータ伝送と、バッファメモリ２０５からメッセージメモリ３００内の選択されたメッセージオブジェクトへのデータ伝送を実行する。サーチ機能についても、ＴＢＦ１−ＦＳＭと同様に、メッセージメモリ３００内の適切なメッセージオブジェクトがサーチされ、その場合に受信に際しては、許容フィルタリングの範囲内で、チャネルＢで受信されるメッセージを格納するためのメッセージオブジェクト（受信バッファ）がサーチされ、送信に際しては、チャネルＢで送信される後続のメッセージもしくはメッセージオブジェクト（送信バッファ）がサーチされる。
【００９５】
図１１には、シーケンスおよび伝送路が再び示される。３つのステートマシーン５０１〜５０３が、各コンポーネントの間の各データ伝送を制御する。この場合、ホストＣＰＵ１０２、入力バッファメモリ２０１、および出力バッファメモリ２０２が示される。また、メッセージメモリ３００、チャネルＡおよびチャネルＢのための２つのバッファメモリ２０６および２０５が示される。インタフェース２０７および２０８も、同様に示される。第１のステートオートマトンＩＯＢＦ−ＦＳＭ５０１は、データ伝送Ｚ１Ａ、従って入力バッファメモリ２０１からメッセージメモリ３００への伝送と、データＺ１Ｂ、従ってメッセージメモリ３００から出力バッファメモリ２０２への伝送を制御する。この場合、データ伝送は、例えば３２ビットのワード長を有するデータバスを介して実行されるが、他のビット数でも実行可能である。メッセージメモリ３００とバッファメモリ２０６との間の伝送Ｚ２についても、同様である。データ伝送は、ＴＢＦ１−ＦＳＭ、従ってチャネルＡのためのステートマシーン５０２によって制御される。メッセージメモリ３００とバッファメモリ２０５との間の伝送Ｚ３は、ステートオートマトンＴＢＦ２−ＦＳＭ５０３によって制御される。ここでも、データ伝送は、例えば３２ビットのワード長を有するデータバスを介して実行されるが、他のビット数でも実行可能である。通常、前述した伝送路を介して完全なメッセージオブジェクトを伝送するには、複数のクロック周期Ｔが必要とされる。よって、アービター、従ってＡＦＳＭ５００によって、クロック周期Ｔに関連する伝送時間の分割が行われる。図１１には、メッセージハンドラ２００によって管理されるメモリコンポーネント間のデータ経路が示される。メッセージメモリ３００内に記憶されているメッセージオブジェクトのデータ一貫性を確保するために、望ましくは、図示される経路、従ってＺ１ＡおよびＺ１Ｂ、ならびにＺ２およびＺ３のいずれか１つのみで、同時にデータが交換される。
【００９６】
図１２には、使用可能な状態にあるシステムクロックＴがアービター、従ってＡＦＳＭ５００によって、３つの要求するステートオートマトンに対してどのように分割されるかが例示される。第１の段階では、ステートオートマトン５０１および５０２によるアクセス要求が行われ、つまり、全アクセス時間が２つの要求するステートオートマトンに５０％ずつ分割される。第１の段階のクロック周期に関して、ステートオートマトン５０１がクロック周期Ｔ１およびＴ３でアクセスを取得し、ステートオートマトン５０２がクロック周期Ｔ２およびＴ４でアクセスを取得する。第２の段階では、ステートオートマトン５０１によるアクセス要求のみが行われるので、３つのクロック周期の全て、従ってＴ５〜Ｔ７のアクセス時間の１００％をＩＯＢＦ−ＦＳＭが取得する。第３の段階では、３つのステートオートマトン５０１〜５０３の全てによるアクセス要求が行われるので、全アクセス時間が３分割される。この場合、アービターＡＦＳＭ５００は、全アクセス時間を、例えば、クロック周期Ｔ８およびＴ１１で有限ステートマシーン５０１が、クロック周期Ｔ９およびＴ１２で有限ステートマシーン５０２が、クロック周期Ｔ１０およびＴ１３で有限ステートマシーン５０３が各々にアクセスを取得するように分割する。そして、第４の段階では、通信モジュール１００の２つのチャネルＡおよびＢ上で、２つのステートオートマトン５０２および５０３によるアクセスが行われるので、クロック周期Ｔ１４およびＴ１６で有限ステートマシーン５０２が、Ｔ１５およびＴ１７で有限ステートマシーン５０３が各々にアクセスを取得するように分割される。
【００９７】
よって、２つ以上のステートマシーンがメッセージメモリ３００にアクセスを要求した場合には、アービターステートオートマトンＡＦＳＭ５００によって、アクセスは、クロック単位で交互に、要求したステートマシーンに分割される。この方法により、メッセージメモリ３００内に格納されたメッセージオブジェクトの一貫性、従ってデータ一貫性が確保される。例えば、受信されたメッセージがメッセージオブジェクト内に書込まれている最中に、ホストＣＰＵ１０２が出力バッファメモリ２０２を介して当該メッセージオブジェクトを読取ろうとした場合、最初に開始された要求に応じて古い状態または新たな状態が読取られるので、メッセージメモリ３００内のメッセージオブジェクト内でのアクセス自体が衝突しない。
【００９８】
前述した方法は、ホストＣＰＵ１０２が動作の進行中にメッセージメモリ３００内の各任意のメッセージオブジェクトを読取り、または書込むことを可能にし、ホストＣＰＵ１０２のアクセスが継続中には、例えばＦｌｅｘＲａｙバス１０１の２つのチャネル上のデータ交換に際して、選択されたメッセージオブジェクトが加入者によって遮断される（Buffer Locking）ことがない。同時に、クロック単位でアクセスを入れ子にすることによって、メッセージメモリ３００内に格納されているデータの一貫性が確保され、全帯域幅の使用によっても、伝送速度が向上する。
【００９９】
上記の記載において、加入者（Teilnehmer：加入者装置、ホスト）、加入者のマイクロプロセッサ（ホストＣＰＵ）の双方に符号１０２が付され、等価のものとして示されている。しかし、本発明に関する以下の記載においては、双方を区別することが必要である。従って、ＦｌｅｘＲａｙ加入者全体を表す場合には符号９００が付され、加入者９００のマイクロプロセッサ（ホストＣＰＵ）を表す場合には符号１０２が付される。詳細に解説するために、従来技術で公知の加入者９００を示した図１７を参照する。
【０１００】
公知の加入者９００は、マイクロコントローラ８００と、ＤＭＡ（Direct Memory Access）コントローラ８１０と、周辺バス８２０と、複数のＦｌｅｘＲａｙ通信コントローラ、つまり、図示される実施形態においては３つのＦｌｅｘＲａｙ通信コントローラ７５０ａ、７５０ｂ、７５０ｃとを含んでいる。周辺バス８２０は、任意の内部データバスとして構成されることが可能である。符号９００が付された全体部分は、通常、１つの同一の半導体製造者によって製造されるので、多くの場合、周辺バスとして、独自の（proprietaer）データバスが使用される。つまり、全体部分９００内の内部要素８００、８１０および７５０は、周辺バス８２０を介して通信する必要がある。
【０１０１】
ＤＭＡコントローラ８１０は、任意に使用される。マイクロコントローラ８００と複数の通信コントローラのうちの１つとの間でのデータ伝送、または、複数の通信コントローラ７５０の間でのデータ伝送が、ＤＭＡコントローラ８１０が無くても機能する、加入者９００も公知である。
【０１０２】
マイクロコントローラ８００は、マイクロプロセッサ１０２（ホストＣＰＵ）と、メモリ部８０２と、コア・バス８０４とを含んでいる。メモリ部８０２は、例えば、「デュアルポート・密結合メモリ（dual ported Tightly Coupled Memory; ＴＣＭ）」として実現されることが可能である。マイクロコントローラ８００は、マイクロプロセッサ１０２のアクティブインタフェース「a」およびメモリ部８０２のパッシブインタフェース「ｐ」を介して、周辺バス８２０へ接続されている。ＤＭＡコントローラ８１０が設けられている場合、ＤＭＡコントローラ８１０も、アクティブインタフェース「a」およびパッシブインタフェース「ｐ」を介して、周辺バス８２０へ接続されている。しかし、公知の加入者９００の場合、通信コントローラ７５０は、パッシブインタフェース「ｐ」を介してのみ、周辺バス８２０に接続されている。換言すれば、マイクロコントローラ８００およびＤＭＡコントローラ８１０は、マスタとして周辺バス８２０へ接続されているのに対して、通信コントローラ７５０は、スレーブとしてバス８２０に接続されている。
【０１０３】
マイクロプロセッサ１０２は、個々の通信コントローラ７５０を設定し（konfigurieren）、管理し（kontrollieren）、制御する。マイクロプロセッサ１０２は、受信されたメッセージを読出し、処理し、評価する。さらに、新規メッセージを計算し、生成し、通信接続１０１を介して送信するメッセージの書込みを行う。従って、例えば、簡単なＦｌｅｘＲａｙ動作の場合、受信されたデータを通信コントローラ７５０から読出し、１つまたは複数の他の送信用通信コントローラ７５０に書込むことが、多くの場合必要である。ＤＭＡコントローラ８１０を使用せずに加入者９００の内部にゲートウェイ機能を実現するために、マイクロプロセッサ１０２は、通信コントローラ７５０から（点線ａ）、マイクロプロセッサ８００のメモリ部８０２（点線ｆ）またはＣＰＵ内部のメモリ（図示されていない）へ、ワード単位でデータを伝送する。従って、場合によってデータは処理され、引き続いて対応する通信コントローラ７５０へ複写される（点線ｇ）ことが可能である。その際、マイクロプロセッサ１０２のクロックレートが今日一般的であるように高い場合、複数の待機サイクルが発生する。待機サイクルの間、マイクロプロセッサ１０２は、データ伝送の終了に備えて待機する。つまり、マイクロプロセッサ１０２はロックされており（blockieren）、他のタスクに対応することができない。
【０１０４】
ＤＭＡコントローラ８１０が使用される場合、ＤＭＡコントローラ８１０は、マイクロコントローラ８００のメモリ部８０２と通信コントローラ７５０との間のデータ伝送を実行することが可能である。データ伝送は、マイクロプロセッサ１０２によって設定され（konfigurieren）、開始される（点線ｂ）。その後、ＤＭＡコントローラ８１０は、通信コントローラ７５０から（点線ｃ）マイクロコントローラ８００のメモリ部８０２へ（点線ｄ）ワード単位でデータを伝送し、または、直接的に複数の通信コントローラ７５０（点線ｈ）の間でワード単位でデータを伝送する。データ伝送の終了は、割込みによって、マイクロプロセッサ１０２に通知される（点線ｅ）。引き続いて、マイクロプロセッサ１０２は、次のメッセージのためのプロセスを新たに開始する。割込みの実行によって、複数のＣＰＵ命令が生成される。ＣＰＵ命令によって、マイクロプロセッサ１０２の大部分の演算および記憶リソースが拘束される（gebunden）。さらに、頻繁な割込みによって、中断されたソフトウェアタスクのジッタ（実行時間に関する時間的な不安定さ）が増加する。
【０１０５】
図１３には、ＦｌｅｘＲａｙ通信システムの本発明の一実施形態に基づく加入者９００が示されている。２つの通信コントローラ７５０、つまり、通信コントローラ７５０aおよび通信コントローラ７５０ｃが、パッシブインタフェース「ｐ」およびアクティブインタフェース「a」を介して、周辺バス８２０に接続されているのが明確に分かる。つまり、通信コントローラ７５０a、７５０ｃは、スレーブではなくマスタとして、周辺バス８２０に接続されている。従って、通信コントローラ７５０a、７５０ｃは、周辺バス８２０に接続された他のモジュール（マイクロコントローラ８００または他の通信コントローラ７５０等）の命令およびデータを受信、処理するだけではなく、受信されたメッセージ（データおよび命令）を独自に評価し、新規メッセージを計算し、周辺バス８２０を介して、マイクロコントローラ８００または他の通信コントローラ７５０に新規メッセージを送信することが可能である。
【０１０６】
マイクロプロセッサ１０２は、通信コントローラ７５０、および、アクティブインタフェース「a」の設定データ（Konfigurationsdaten）を構成し、管理する（kontrollieren）（点線ａ）。マイクロプロセッサ１０２は、既に受信され、自動的にメモリ部８０２に複写された（点線ｂ）メッセージオブジェクトを読出し、評価し、処理する（点線ｃ）。さらに、新規メッセージオブジェクトを計算し、生成し、メモリ部８０２内に格納する（点線ｃ）。さらに、対応する通信コントローラ７５０がメモリ部８０２から独自のメッセージメモリ３００に目下のデータを伝送できるという情報が、対応する通信コントローラ７５０に与えられる（点線ａ）。伝送は、通信コントローラ７５０a、７５０ｃによって自動的に行われる。メッセージメモリ３００は、設定および状態情報と共に、メッセージオブジェクト（メッセージバッファ）を保存する。
【０１０７】
従来技術で公知の実装に追加して、通信コントローラ７５０a、７５０ｃはそれぞれ、アクティブインタフェース「a」を有している。アクティブインタフェース「a」を介して、コントローラ７５０に組込まれたロジックは単独で、メッセージメモリ３００からメッセージオブジェクトを読出し、対応するターゲット（メモリ部８０２、または他の通信コントローラ７５０のメッセージメモリ３００）へ書込むことが可能である。同様に、アクティブインタフェース「a」を介して、コントローラ７５０に組込まれたロジックは、ソース（メモリ部８０２、または他の通信コントローラ７５０のメッセージメモリ３００）からメッセージオブジェクトを読出し、メッセージメモリ３００へ書込むことも可能である。メモリ部８０２へのルーティング、またはメモリ部８０２からのルーティングは、点線ｂで示されており、複数の通信コントローラの間でのルーティングは、点線ｄで明示されている。その際、通信コントローラ７５０a、７５０ｃのアクティブインタフェース「ａ」は、（制御しているマイクロコントローラ８００または他の制御ユニットによるトリガなしに）、アクティブインタフェース「a」が単独で他のモジュール（通信コントローラ７５０ｂ等）にデータを要求することが可能であるように、構成されている。本発明においては、全モジュールがアクティブインタフェース「a」を有する必要はない。
【０１０８】
データ伝送を開始するために、通信コントローラ７５０a、７５０ｃは、マイクロコントローラ８００のメモリ部８０２内に、または複数の通信コントローラ７５０のうちの１つのメッセージメモリ３００内に、新規データが到着したか否かを、アクティブインタフェース「a」を用いて定期的に検査する。特に、新規メッセージオブジェクトがメモリ部８０２内に格納されたか、および／または、複数の通信コントローラ７５０のうちの１つのメッセージメモリ３００の出力バッファ（ＯＢＦ）２０２のための制御レジスタ７０３、７０４が、新規メッセージオブジェクトを表示しているか否かが検査される。
【０１０９】
７５０ａのメッセージメモリから他の通信コントローラ７５０ｂ、７５０ｃのメッセージメモリへデータをアクティブに複写し、および／または、他の通信コントローラ７５０ｂ、７５０ｃのメッセージメモリからデータをアクティブに複写するための本発明に基づく方法は、時間制御で（例えば周期的に）、データ、特にメッセージの受信によって、受信されたデータの変更によって、他の通信コントローラ７５０ｂ、７５０ｃのうちの１つによるトリガによって、または、通信コントローラ７５０ａのマイクロプロセッサ１０２によるトリガによって、開始される／引起こされることが可能である。このトリガには、通常、ロジックへの特別なスタート命令の転送が含まれる。
【０１１０】
図１４では、本発明の一実施形態に基づく加入者９００内でのルーティングされたデータの可能な伝送経路が示されている。上記のように、通信コントローラ７５０は、メッセージメモリ３００を含んでおり、バッファ、特に少なくとも１つの入力バッファ２０１および少なくとも１つの出力バッファ２０２を含むことが可能である。通信コントローラ７５０の具体的な実施形態に応じて、通信コントローラ７５０aのロジックは、アクティブインタフェース「a」によって、例えば、
−メッセージメモリ３００ａとマイクロコントローラ８００のメモリ部８０２との間の伝送経路（通常は通信モジュール１００の初期化の期間中、それ以外の場合にはハードウェアの特別な構成が必要である。）
−メモリ部８０２から入力バッファ２０１ａへの伝送経路
−他の通信コントローラ７５０ｃの出力バッファ２０２ｃから入力バッファ２０１ａへの伝送経路
−出力バッファ２０２ａからメモリ部８０２への伝送経路
−出力バッファ２０２aから他の通信コントローラ７５０ｃの入力バッファ２０１ｃへの伝送経路
−メッセージメモリ３００ａおよび３００ｃから、出力バッファ２０２ａまたは２０２ｃへの伝送経路、および、
−入力バッファ２０１ａおよび２０１ｃから、メッセージメモリ３００ａまたは３００ｃへの伝送経路
において、データをルーティングすることが可能である。
【０１１１】
対応する方法において、他の通信コントローラ７５０ｃのロジックは、アクティブインタフェース「a」によって、例えば、
−メッセージメモリ３００ｃとマイクロコントローラ８００のメモリ部８０２との間の伝送経路（通常は通信モジュールの初期化の期間中）
−メモリ部８０２から入力バッファ２０１ｃへの伝送経路
−通信コントローラ７５０aの出力バッファ２０２ａから入力バッファ２０１ｃへの伝送経路
−出力バッファ２０２ｃからメモリ部８０２への伝送経路
−出力バッファ２０２ｃから他の通信コントローラ７５０ａの入力バッファ２０１ａへの伝送経路
−メッセージメモリ３００ａおよび３００ｃから、出力バッファ２０２ａまたは２０２ｃへの伝送経路、および、
−入力バッファ２０１ａおよび２０１ｃから、メッセージメモリ３００ａまたは３００ｃへの伝送経路
において、データをルーティングすることが可能である。
【０１１２】
図１５では、アクティブインタフェース「ａ」を有する本発明の一実施形態に基づく通信コントローラ７５０のブロック図が示されている。加入者またはカスタマに依存するインタフェース２０４は、図１６で詳細に示される。図１６全体は、例えば図１３に基づく加入者９００内で（本発明の一実施形態に基づく通信コントローラ７５０が）使用されているように、本発明の一実施形態に基づく通信コントローラ７５０が使用される様子を示している。ＦｌｅｘＲａｙ通信コントローラ７５０は、既に詳細に説明されたように、ＦｌｅｘＲａｙ通信モジュール１００を含んでいる。前述したように、ＦｌｅｘＲａｙ通信モジュール１００は、接続されるマイクロコントローラ８００に依存せずに常に同一に構成可能な汎用の部分要素（図１６の符号８４０）と、カスタマまたは加入者専用の部分要素２０４とに区分されている。汎用の構成要素８４０は、通信コントローラ・コアとも呼ばれる。通信モジュール１００の汎用の構成要素８４０に関しては、図１６において、汎用のインタフェース（ＧＩＦ）２０３および、メッセージメモリ３００の前に配置されたバッファ２０１、２０２が例示されている。入力バッファ２０１は、メッセージメモリ３００へ伝送するためのメッセージを一時格納する役目を果たす。出力バッファ２０２は、メッセージメモリ３００からマイクロコントローラ８００への伝送のための、または、メッセージメモリ３００から加入者９００の他の通信コントローラ７５０のメッセージメモリ３００への伝送のためのメッセージを一時格納する役目を果たす。当然のことながら、図１６の通信モジュール１００は、図２に示された全要素またはいくつかの要素を含むことが可能である。
【０１１３】
通信モジュール１００の汎用の構成要素８４０は、汎用インタフェース２０３（ＧＩＦ）を介して、通信モジュール１００の加入者専用の部分要素である加入者専用インタフェース２０４（ＣＩＦ）に接続されている。汎用インタフェース２０３は、加入者専用インタフェース２０４を介して、カスタマに依存する異なるホストＣＰＵ１０２に接続される。通信コントローラ７５０のロジックは、加入者専用インタフェース（ＣＩＦ）において、ルーティング装置８３０（ルーティングエンジン、ＲＥ）の形態で構成されている。加入者専用インタフェース２０４は、マイクロプロセッサ１０２の周辺データバス８２０を、ＦｌｅｘＲａｙ通信コントローラ・コア８４０の汎用インタフェース２０３（ＧＩＦ）と接続する。さらに、制御および状態情報が格納されている制御および状態レジスタ（Kontroll-und Statusregister）８３８と、ルーティング情報が格納されているルーティングメモリ８４２とが設けられている。レジスタ８３８およびメモリ８４２は、メモリの特定の記憶領域として、またはフリップフロップとして構成されることが可能である。
【０１１４】
通信コントローラ７５０のパッシブインタフェース「ｐ」が符号８３２で、アクティブインタフェース「ａ」が符号８３４で示されている。パッシブインタフェース８３２は、通信コントローラ７５０を、他のモジュール（アクティブインタフェース８３４を有するマイクロコントローラ８００、または、アクティブインタフェース８３４を有する通信コントローラ７５０ａ、７５０ｃのうちの１つ等）のアクティブインタフェース「ａ」と接続する。パッシブインタフェース８３２自体は、伝送を開始することができないので、常に、他のモジュールによって開始される必要がある。パッシブインタフェース８３２を介して、アクティブモジュールは、通信コントローラ７５０に対して、つまり、制御および状態レジスタ８３８内の制御および状態情報に対して、および、ルーティングメモリ８４２内のルーティング情報に対してアクセスすることが可能である。パッシブインタフェース８３２は、使用されるオンチップ周辺バス８２０に依存する。
【０１１５】
アクティブインタフェース８３４自体は、単独で、データ伝送を開始することが可能である。従って、アクティブインタフェース８３４が、独自に他のモジュール（マイクロコントローラ８００、または複数の通信コントローラ７５０のうちの１つ等）にデータを要求する、または、他の記憶領域（メモリ部８０２、または他の通信コントローラ７５０のメッセージメモリ３００等）にデータを書込むことが可能である。その際、ターゲットとなる装置（Gegenstelle）がアクティブモジュールか、パッシブモジュールであるかは重要ではない。インタフェース８３４は、ルーティングエンジン８３０の排他的制御下に置かれている。アクティブインタフェース８３４の設定（Konfiguration）は、制御および状態レジスタ８３８を介して、マイクロプロセッサ１０２（ホストＣＰＵ）によって行われる。アクティブインタフェース８３４は、利用されるオンチップ周辺バス８２０に依存する。
【０１１６】
ルーティングエンジン８３０は、メッセージの伝送を単独で開始可能なステートマシーンを含んでいる。データ伝送の開始は、例えば統合型タイミングジェネレータ（Timer）８４４を介して時間制御で、または、メッセージの受信によって、または、アクティブインタフェース「ａ」を有する他のモジュールによる（例えば、メッセージ処理後のマイクロプロセッサ１０２による）トリガによって、行われることが可能である。アクティブインタフェース「ａ」は、通信コントローラ７５０内でのメッセージの読込み／記憶、および、モジュールへの伝送および／またはモジュールからの伝送を制御する。ルーティングエンジン８３０は、対応する複写および再配置動作（Kopier- und Verschiebeoperationen）によって、断片からなるメッセージをまとめて新規メッセージを作成することが可能である。新規メッセージは、メモリ部８０２内に、または、他の通信コントローラ７５０のメッセージメモリ３００内に格納されている、または格納される。
【０１１７】
データ伝送を制御するために、マイクロプロセッサ１０２（ホストＣＰＵ）による開始の際に、対応するルーティング情報がルーティングメモリ８４２に書込まれる。ルーティング情報によって、ルーティングエンジンは、メッセージの受信の際に、または時間制御で、データ伝送を開始することが可能である。追加的に、他のモジュールは、メッセージ処理に対する命令（Anweisung）を格納することが可能である。メッセージ処理に対する命令は、その後、ルーティングエンジンによって実行される。制御、（非）作動、および属性（Eigenschaft）／状態表示のために、制御および状態情報が含まれている。
【０１１８】
アービター８３６は、（パッシブインタフェース８３２を介して）マイクロプロセッサ１０２と、ルーティングエンジン８３０とによる、通信コントローラ・コア８４０の汎用インタフェース２０３（ＧＩＦ）への同時アクセスに対する問い合わせを制御する。各アクティブモジュール内に格納された情報、および、単独でのデータ伝送のために実装されたロジックに基づいて、分散型ルーティングについて説明することが可能である。つまり、集中ノード、および、ネットワーク全体に関する情報を有する通信コントローラ７５０は存在しない。ルーティング・インテリジェンスをネットワークの複数のモジュールに分散することによって、モジュールが故障したとしても必ずしも加入者内の全ルーティング動作の崩壊に繋がらないので、加入者の稼動性を改善することが可能である。
【０１１９】
個々のモジュール間でのデータスループットを向上させるために、クロスバースイッチ・ネットワークを利用することが可能である。このネットワークは、異なる通信チャネルを同時に開放することを可能にする。その際、（システム構成に応じて）２つまたは複数のマスタ（マイクロプロセッサ１０２、またはアクティブインタフェース「ａ」を有する通信コントローラ７５０ａ、７５０ｃ）は、各々に更なる別のモジュール（マスタまたはスレーブ）へのデータ伝送路を確立し、データを伝送することが可能である。同一モジュールへの同時アクセスは、優先順位がつけられる／仲裁される、さらに、順次に実行される必要がある。稼働中のタスクは、フラグまたはセマフォによって通知されることが可能である。従って、システム全体の可能な帯域幅が、複数倍に増加する。同様に、マイクロプロセッサ１０２の待機時間、およびルーティング中に中断されたソフトウェアタスクのジッタが低減される。
【０１２０】
メッセージ受信後のアクティブな複写のために、アクティブインタフェース「ａ」を有する特定の通信コントローラ（通信コントローラ７５０ａ等）のルーティングエンジン８３０は、通信コントローラ７５０ａのメッセージメモリ３００ａから、他の通信コントローラ７５０ｂのメッセージメモリ３００ｂもしくは他の通信コントローラ７５０ｃのメッセージメモリ３００ｃへ伝送するために、または、通信コントローラ７５０ａのメッセージメモリ３００ａからマイクロコントローラ８００のメモリ部８０２へメッセージを伝送するために、（タイミングジェネレータ８４４の所定値の経過に基づいて）時間制御で、または、アクティブインタフェース「ａ」を有する他の通信コントローラ（通信コントローラ７５０c等）によるトリガに基づいて、または、マイクロプロセッサ１０２（ホストＣＰＵ）によって、連続する以下の工程を単独で制御する。つまり、
−通信コントローラ７５０ａの出力バッファ２０２ａ内の受信されたメッセージオブジェクトを可視化する（Sichtbarmachen）工程と、
−アクティブインタフェース８３４を介する書込みアクセスによって、他の通信コントローラ７５０ｂの入力バッファ２０１ｂ内に、もしくは、他の通信コントローラ７５０ｃの入力バッファ２０１ｃ内に、または、マイクロプロセッサ１０２に割当てられたメモリ部８０２の構成可能なアドレス領域内に、受信されたメッセージオブジェクトの複写を格納する工程と、
−第２の通信コントローラ７５０ｂまたは７５０ｃへの伝送の際に、入力バッファ２０１ｂまたは２０１ｃから、第２の通信コントローラ７５０ｂのメッセージメモリ３００ｂまたは第２の通信コントローラ７５０ｃのメッセージメモリ３００ｃへのメッセージオブジェクトの伝送を開始する工程と、
を単独で制御する。
【０１２１】
メッセージの受信後に、アクティブインタフェース「ａ」を有する特定の通信コントローラ（通信コントローラ７５０ａ等）のルーティングエンジン８３０は、他の通信コントローラ７５０ｂのメッセージメモリ３００ｂまたは他の通信コントローラ７５０ｃのメッセージメモリ３００ｃから、独自のメッセージメモリ３００ａへメッセージを伝送するために、もしくは、マイクロコントローラ８００のメモリ部８０２から独自のメッセージメモリ３００ａへメッセージを伝送するために、（タイミングジェネレータ８４４の所定値の経過に基づいて）時間制御で、または、アクティブインタフェース「ａ」を有する他の通信コントローラ（通信コントローラ７５０ｃ等）によるトリガに基づいて、または、マイクロプロセッサ１０２によって（トリガは、記憶領域およびデータ量等の設定データを制御レジスタ８３８に書込むことによって行われる。）、連続する以下の工程を単独で制御する。つまり、
−データが他の通信コントローラ７５０ｂまたは７５０ｃから通信コントローラ７５０ａへ伝送される必要がある場合に、他の通信コントローラ７５０ｂの出力バッファ２０２ｂ内、または、他の通信コントローラ７５０ｃの出力バッファ２０２ｃ内のデータ（メッセージオブジェクト）を可視化する工程と、
−アクティブインタフェース「ａ」を介する構成可能なアドレス領域への読出しアクセスによって、独自の入力バッファ２０１ａ内に、メモリ部８０２の内容の複写、もしくは、他の通信コントローラ７５０ｂの出力バッファ２０２ｂ、または他の通信コントローラ７５０ｃの出力バッファ２０２ｃの内容の複写を格納する工程と、
−バッファ２０１ａから通信コントローラ７５０ａのメッセージメモリ３００ａまたは通信モジュール１００ａのメッセージメモリ３００ａへの格納されたデータの伝送を開始する工程と、
を単独で制御する。
【０１２２】
前述されたアクティブインタフェース８３４を、ルーティングエンジン８３０の形態のロジックと共に利用することによって、以下の利点が得られる。
−マイクロプロセッサ１０２は、外部のＤＭＡコントローラ（図１７の符号８１０参照）を介したアクセスと比較して、割込みによる大きな負荷から解放される。
−割込みによる負荷がより小さくなることによって、タスクジッタがより小さくなり、従って、システム全体の予測可能性（Vorhersagbarkeit）が改善される。
−メモリ部８０２内のメッセージの複写にアクセスすることによって、より大きなアクセス帯域幅が可能になる。
−より大きなアクセス帯域幅によって、マイクロプロセッサ１０２は、より多くの計算時間を他のタスクのために使用できる（プロセッサ１０２の待機時間が低減される。）。
【図面の簡単な説明】
【０１２３】
【図１】ＦｌｅｘＲａｙ通信システムの通信モジュール、および通信モジュールと通信接続および通信／ホスト加入者との接続を概念的に示す説明図である。
【図２】図１に示す通信モジュールおよび通信モジュールの接続を特別な実施例で詳細に示す説明図である。
【図３】図２に示す通信モジュールのメッセージメモリの構成を示す説明図である。
【図４】加入者からメッセージメモリの方向へデータアクセスする際の構成およびシーケンスを示す説明図である。
【図５】加入者からメッセージメモリの方向へデータアクセスする際の構成およびシーケンスを示す説明図である。
【図６】加入者からメッセージメモリの方向へデータアクセスする際の構成およびシーケンスを示す説明図である。
【図７】メッセージメモリから加入者の方向へデータアクセスする際の構成およびシーケンスを示す説明図である。
【図８】メッセージメモリから加入者の方向へデータアクセスする際の構成およびシーケンスを示す説明図である。
【図９】メッセージメモリから加入者の方向へデータアクセスする際の構成およびシーケンスを示す説明図である。
【図１０】メッセージハンドラおよびメッセージハンドラに含まれる有限ステートマシーンの構成を示す説明図である。
【図１１】図１および図２に示す通信モジュールの構成要素、ならびに加入者およびメッセージハンドラによって制御される対応するデータ経路を示す説明図である。
【図１２】図１１に示すデータ経路に関してメッセージメモリのアクセス分割を示す説明図である。
【図１３】本発明の一実施形態に係る通信システムの加入者を示す説明図である。
【図１４】図１３に示す加入者内でルーティングされたデータの可能な伝送経路を示す説明図である。
【図１５】本発明の一実施形態に係る通信システムの通信コントローラを示す説明図である。
【図１６】図１５に示す通信コントローラ内の加入者インタフェースを示す説明図である。
【図１７】従来の通信システムの加入者を示す説明図である。
【図１】
2009512260.tif 000003
【図２】
2009512260.tif 000004
【図３】
2009512260.tif 000005
【図４】
2009512260.tif 000006
【図５】
2009512260.tif 000007
【図６】
2009512260.tif 000008
【図７】
2009512260.tif 000009
【図８】
2009512260.tif 000010
【図９】
2009512260.tif 000011
【図１０】
2009512260.tif 000012
【図１１】
2009512260.tif 000013
【図１２】
2009512260.tif 000014
【図１３】
2009512260.tif 000015
【図１４】
2009512260.tif 000016
【図１５】
2009512260.tif 000017
【図１６】
2009512260.tif 000018
【図１７】
2009512260.tif 000019
【国際調査報告】
2009512260.tif 000020
2009512260.tif 000021
2009512260.tif 000022
2009512260.tif 000023
2009512260.tif 000024
2009512260.tif 000025