JP4740261B2 - 通信システム及び通信モジュールの通信リンクや通信システムのノードを経由してメッセージのデータを伝送する方法と、この方法を実現するための通信システム。 - Google Patents

通信システム及び通信モジュールの通信リンクや通信システムのノードを経由してメッセージのデータを伝送する方法と、この方法を実現するための通信システム。 Download PDF

Info

Publication number
JP4740261B2
JP4740261B2 JP2007552647A JP2007552647A JP4740261B2 JP 4740261 B2 JP4740261 B2 JP 4740261B2 JP 2007552647 A JP2007552647 A JP 2007552647A JP 2007552647 A JP2007552647 A JP 2007552647A JP 4740261 B2 JP4740261 B2 JP 4740261B2
Authority
JP
Japan
Prior art keywords
message
memory
data
communication
message memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007552647A
Other languages
English (en)
Other versions
JP2008529374A (ja
Inventor
ホルスト、クリスティアン
バイラー、フランツ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2008529374A publication Critical patent/JP2008529374A/ja
Application granted granted Critical
Publication of JP4740261B2 publication Critical patent/JP4740261B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/43Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、指定されたタイムウィンドウの中で、通信システムの通信リンクを経由して、周期的に伝送されるメッセージのデータを、伝送する方法に関する。この通信リンクを経由して送信されるメッセージ及び送信されたメッセージは、まず通信モジュールのメッセージメモリに中間格納される。その時点のタイムウィンドウにおいて、ノードによって送信又は受信されるメッセージは、メッセージメモリから取り出されて送信又は受信され、そしてメッセージメモリにファイルされる。
本発明はそのほか、請求項13に上位概念として記載する通信モジュール、請求項17に上位概念として記載する通信システムのノード、及び、本方法を実現するための請求項20に上位概念として記載する通信システムに関する。
通信システムの通信リンクによるノードのネットワーク化、例えば、制御装置、センサ及びアクチュエータの形態を取るノードのネットワーク化は、現代の自動車製造、機械製造特に工作機械部門、又はオートメーションにおいて、近年ドラスティックに増加している。この場合、諸機能を複数のノードに分配することによる相乗効果が得られる。この場合、分配されたシステムが問題となる。バスシステムとして形成された通信システムの通信リンクを、データバスとして形成し、これを経由してさまざまなノード間の通信が、次第に多く行われるようになっている。バスシステム、アクセス機構、受信機構における通信のやり取り及びエラー処理は、プロトコルを介して制御される。このためのものとして知られているプロトコルとしては、CAN(Controller Area Network)プロトコル、TTCAN(Time Triggered CAN)プロトコル、及びFlexRayプロトコルがあり、この場合、今のところFlexRayプロトコル仕様書v2.1が基礎になっている。
FlexRayは、高速で決定性あるフォールトトレラントなバスシステムであって、特に自動車に用いるためのものである。FlexRayプロトコルは、Time−Division−Multiple−Access(TDMA)手順に従って動作し、この場合、ノード(又はコンポーネント)又は伝送されるメッセージに、固定されたタイムスロット又はタイムウィンドウが割り当てられる。そして、ノード等は、それらタイムスロット又はタイムウィンドウにおいて、通信リンクに排他的なアクセスを行う。同様にしてこれは、TTCANの場合にも応用される。この場合タイムスロットは、確定されたサイクル、いわゆる通信サイクルとして繰り返されるので、メッセージがデータバスを経由して伝送される時点を、正確に予言することができ、バスアクセスは、決定性をもって行われる。
FlexRayは、バスシステム上でメッセージを伝送する帯域幅を最適に利用するため、通信サイクルを、静的な部分、いわゆるスタティック・セグメントと、動的な部分、いわゆるダイナミック・セグメントと、に区分する。指定された固定長を持つタイムスロットは、この場合、バスサイクル開始時には静的部分に存在する。動的な部分には、タイムスロットが動的に付与される。この部分では、排他的なバスアクセスは、その都度短時間だけ、いわゆるミニスロットだけ可能である。1つのミニスロットの範囲内で、ノードがバスアクセスを行う場合だけ、対応するタイムスロットが、ノードのデータ伝送に必要な時間まで延長される。従って帯域幅が消費されるのは、その帯域幅が実際にデータ伝送に必要とされる場合だけである。このダイナミック・セグメントは、事象制御されたデータ伝送のために利用することができる。
1つのFlexRay通信システムにおいては、チャネルとも呼ばれる2つの物理的に分離されたラインを経由して、今のところそれぞれ毎秒最大10MBのデータ転送速度で通信される。両者のチャネルは、この場合、物理層、特にOSI(Open System Architecture)層モデルの物理層に対応する。これらのチャネルは、主として、メッセージの冗長的な、従ってフォールトトレラントな伝送に用いられるが、異なるメッセージも伝送することができ、これによりデータ転送速度を、今のところ20MBに倍増することができる。当然のことながらFlexRayは、より低いデータ転送速度で動作させることもできる。
同期機能を実現し、2つのメッセージ間の間隔を小さくして帯域幅を最適化するには、通信ネットワーク内に分配されたコンポーネント、すなわち通信システム内のノードが、共通の時間基準、いわゆるグローバルタイムを必要とする。これらノードは、みずからのローカルなクロックを持ち、このクロックがグローバルタイムに同期される。クロック同期のため、同期情報がサイクルの静的な部分で伝送される。このクロック同期は、各通信サイクル末尾で、いわゆるNetwork Idle Time(NIT)の間に行われる。FlexRay仕様書に記載の特殊なアルゴリズムを用いて、各コンポーネントのローカルなクロック時間を補正して、全てのローカルなクロックが、グローバルクロックに同期して動作するようにする。この同期は、TTCANネットワークでも同様に行われる。
FlexRayノードは、FlexRayネットワークノードとも呼ばれる。このノードは、ノードプロセッサ、従ってホストプロセッサと、FlexRayコントローラ、又は通信コントローラと、物理層とのリンクと、バスドライバ(いわゆるBus Driver BD)と、を備える。またバスモニタリングを行う場合は、Bus Guradian(BG)を備える。この場合、ホストプロセッサが供給し、処理するのは、FlexRay通信コントローラを経由して伝送又は受信されるデータである。FlexRayネットワークにおける通信のため、メッセージ又はメッセージオブジェクトを、例えば254データバイトで構成することができる。物理層すなわち通信リンクと、ホストプロセッサとの間で、メッセージ又はメッセージオブジェクトを伝送するため、通信モジュール特に通信コントローラを用いる。
この通信モジュールは、メッセージメモリを備え、このメッセージメモリには、その通信モジュールに割り当てられたノードが送信するメッセージオブジェクト、又はそのノードが受信するメッセージオブジェクトが、中間格納される。その後でこれらのメッセージオブジェクトは、送信のため通信リンクに、又は、さらなる処理のためホストプロセッサに転送される。メッセージメモリのデータフィールドの個数と大きさは、通信システムの構成段階又は再構成段階の間に構成される。
従来の技術の場合、メッセージメモリは、各タイムスロットの開始時に、メッセージアドミニストレータによって探索される。これは、メッセージがファイルされている、又はこれからファイルされるデータフィールドを探索するためである。このメッセージは、その時点のチャネルを経由して、その時点の通信サイクル及び/又はその時点のタイムスロットで、送信又は受信されている。このようにメッセージメモリが探索されるとき、例えば、次のようなデータフィールドが確認される。すなわち、その時点の通信サイクルにおいて、そしてその時点のタイムスロットにおいて、その時点で着目されているチャネルを経由して受信したいメッセージのために、予定されているデータフィールドである。メッセージ受信後、そのメッセージは、確認されたデータフィールドにファイルされる。
同様にメッセージメモリ探索の際、例えば、次のようなデータフィールドを確認することができる。すなわち、その時点の通信サイクルにおいて、そしてその時点のタイムスロットにおいて、その時点で着目されているチャネルを経由して送信したいメッセージが、ファイルされているデータフィールドである。そうすると、このメッセージは、確認されたデータフィールドから取り出され、送信のため通信リンクに転送される。
しかし欠点は、この探索過程が、特にメッセージメモリが大きくなると、比較的多くの時間を必要とし、メッセージの受信又は送信の際に遅延を生じる可能性があることである。タイムスロットごとにメッセージメモリ全体が探索されることによって、通信システムのリアルタイム性が損なわれる可能性がある。
従って、本発明の課題は、メッセージの伝送が最適な方法で支援されるような形態で、そして、特にメッセージメモリが大きくなっても、通信システムのリアルタイム性を確保できるような形態で、メッセージメモリの探索が行われるようにすることである。
この課題を解決するため、冒頭に挙げた種類のデータ伝送手順を出発点として、以下のことを提案する。第1には、メッセージメモリにおけるメッセージのポジションを確認するため、それぞれさらに続く複数のタイムウィンドウのため、規則的間隔で、そのメッセージメモリを前もって探索することである。第2には、探索過程の結果として、さらに続く複数のタイムウィンドウで送信される、又は受信されるメッセージのポジションを、そのメッセージメモリに割り当てられた中間メモリ、つまりメッセージメモリのポジションに対応付けられた中間メモリにファイルすることである。
従って本発明は、メッセージメモリを必ずしもタイムスロットごとに完全には探索せず、むしろ複数の未来のタイムスロットのために探索過程を1回行うことを提案する。
すなわち、ただ1回の探索過程によって、複数の未来のタイムスロットのために、メッセージメモリにおけるそのメッセージのポジションを確認する。探索過程の際に確認されたポジションは中間メモリにファイルされ、後になって本来のデータ伝送の際に、この中間メモリからほとんど遅延なしに呼び出すことができる。従って本来のデータ伝送の際には、メッセージメモリ全体の完全な探索過程は不要である。本発明の通信システムのリアルタイム性は、これによって決定的に改善される。
本発明の1つの有利な発展形では、次のことが提案される。
すなわちデータ伝送の際に、現在のタイムウインドウ(actuellen Zeitfenster:その時点のタイムウィンドウ)において通信システムを経由して伝送されるメッセージを、このタイムウィンドウのため中間メモリ内に指定されたメッセージメモリのポジションから読み出し、通信リンクを経由して伝送する。又は、現在のタイムウィンドウにおいて通信リンクを経由して伝送されたメッセージを、このタイムウィンドウのため中間メモリ内に指定されたメッセージメモリのポジションにファイルする。
従って本来のデータ伝送の際に、1つのメッセージをメッセージメモリから送信したい場合は、単純に中間メモリ内の対応する箇所にアクセスする。次に中間メモリにファイルされたメッセージメモリのポジションにアクセスし、そこに格納されているメッセージを取り出して、送信のため通信リンクに転送する。本来のデータ伝送の際にメッセージを受信してメッセージメモリに格納したいときも、同様に単純に中間メモリ内の対応する箇所にアクセスすることができる。そして通信リンクを経由して受信されたメッセージを、中間メモリ内にファイルされたメッセージメモリのポジションに格納することができる。
本発明の1つの好ましい実施形態では、次のことが提案される。
すなわち現在のタイムウィンドウのために、及び後続する複数のタイムウィンドウ、すなわちメッセージメモリにおけるメッセージのポジションが中間メモリにすでにファイルされているそれら後続するタイムウィンドウのために、データ伝送を行うものとする。このデータ伝送を、そのデータ伝送の最後のタイムウィンドウに続くタイムウィンドウと、さらに後続する複数のタイムウィンドウとのための探索過程と同時に行う。
これはすなわち、未来のタイムスロット1...n(n>1)のための本来のデータ伝送と、さらに後続する未来のタイムスロット(n+1)...2nのための探索過程とが平行して行われることを意味する。この実施形態のためのステータスメモリとしては、2n個のデータフィールドを備える大きさのステータスメモリが選択される。これは、データ伝送のためメッセージメモリにおけるメッセージのポジションをファイルすることができるn個のデータフィールドと、その時点の探索過程の際に確認されたメッセージメモリにおけるメッセージのポジションをファイルすることができるさらにn個のデータフィールドと、を備える大きさのステータスメモリである。好ましくは、本来のデータ伝送のためのメッセージメモリにおけるメッセージのポジションが、先行する探索過程の際に確認され、中間メモリにファイルされているものとする。中間メモリの2組のn個のデータフィールドは、好ましくは交代にアクセスされるものとし、いずれのn個のデータフィールドも、まず探索過程の際にそれらポジションの格納に、次に本来のデータ伝送の際にそれら格納済みのポジションを呼び出すのに用いるものとする。その際、両者のn個のデータフィールドは、探索過程の際又はデータ伝送の際に、決して同時に用いられることはなく、つねに相互に時間をずらして用いられる。この実施形態によってさらに、探索過程のための処理時間を節減することができ、従って通信システムのリアルタイム性がほとんどいつでも得られる。好ましくはこの探索過程は、専用の演算装置、例えばいわゆる状態オートマトン(Finite−State−Machine)によって協調調整され、実行される。
有利な方法として、探索過程の複数のタイムウィンドウの個数は、本来のデータ伝送のための複数のタイムウィンドウの個数に等しいものとする。従って本発明の方法に従ってデータを伝送(受信又は送信)したい場合、未来のタイムスロットのために順次探索過程を実行し、次に本来のデータ伝送(データの送信又は受信)を実行する。未来の複数のタイムスロットのための本来のデータ伝送と、さらにその後の未来の複数のタイムスロットのための探索過程とを、交互に平行して行う場合、それら未来のタイムスロットの個数は、本来のデータ伝送のためのものと、探索過程のためのものとが等しくなる必要があり、これは、中間メモリの両者の格納領域の間で、未来のタイムスロットの個数に相当する個数のデータフィールドを、その都度包括的に切り替えられるようにするためである。
従って次のことを提案する。
すなわち、中間メモリは区分されているものとし、その際中間メモリの第1の部分には、データ伝送のため、現在のタイムウィンドウと、後続する複数のタイムウィンドウとのための、メッセージのポジションがファイルされるものとする。この場合後者のタイムウィンドウのためには、メッセージメモリにおけるメッセージのポジションが、中間メモリにすでにファイルされているものとする。そして中間メモリの第2の部分では、探索過程のため、データ伝送の最後のタイムウィンドウに続くタイムウィンドウと、後続する複数のタイムウィンドウとのためのメッセージのポジションがファイルされるものとする。
本発明のもう1つの有利な発展形では、次のことを提案する。
メッセージメモリに格納されるべきメッセージには、第1のデータ範囲を持つ第1のデータと、第2のデータ範囲を持つ第2のデータとが含まれる。第1のデータはメッセージ各1個につき、メッセージメモリのヘッダセグメントにおいて、そのヘッダ領域各1個に格納される。第2のデータはメッセージに各1個につき、データセグメントにおいて、データ領域各1個に格納される。メッセージメモリのヘッダセグメントとデータセグメントとへの区分と、データセグメントおけるデータ領域の個数と大きさの選択は、好ましくはメッセージメモリの構成の際、要件に応じて可変的に行うものとする。このため、様々な利点が得られる。ユーザは、比較的小さいデータフィールドをもつメッセージを比較的多数用いたいのか、比較的大きいデータフィールドを持つメッセージを比較的少数用いたいのか、プログラミングの際に決定することができる。大きさの異なるデータ領域を持つメッセージを構成する際でも、既存のメモリを最適に活用することができる。ユーザは、異なるメッセージに対して、1つのデータ領域を共通に用いることができる。従って通信モジュールの通信コントローラを1つの集積回路上で実現する際、使用されるメモリ、特にRAMメモリのメモリ深さを適合させることにより、メッセージメモリの大きさをアプリケーション要件に正確に適合させることができ、しかもその際、通信コントローラ又は通信モジュールのそのほかの機能が変更されることはない。
メッセージメモリの構成は、ヘッダセグメントを介してのみ行われる。ヘッダ領域ではメッセージのために、メッセージを伝送(受信又は送信)したいチャネル、サイクル、タイムスロットが確定される。そのほかメッセージを構成する際に、メッセージメモリのデータセグメントにおけるデータ部の大きさ、データ部の開始を示すポインタ、それにそのメッセージが送信されるものなのか、受信されるものなのかという情報を、確定することができる。
本発明のもう1つの実施形態では、メッセージメモリのヘッダ領域で、メッセージごとに1つの識別コードがファイルされる。この識別コードは各メッセージを識別し、この識別コードによって、メッセージをある特定の通信サイクルに、そしてそのサイクル内のある特定のタイムウィンドウに、割り当てることができる。この識別コードがファイルされているヘッダ領域の部分は、識別フィールドとも呼ばれる。
有利な方法として、探索過程の間に着目され、かつ複数の後続するタイムウィンドウで送信又は受信されるメッセージのため、中間メモリに2つのフィールドを設ける。この場合第1のフィールドには、メッセージメモリにファイルされているメッセージの対応するポジションをさすポインタがファイルされる。第2のフィールドには、メッセージメモリにファイルされているメッセージのステータスがファイルされる。好ましくはこのポインタは、メッセージメモリにファイルされているメッセージの、ヘッダセグメントでヘッダ領域に格納されている第1のデータを示すものとする。
メッセージメモリにファイルされているメッセージのステータスとして、中間メモリに好ましくは次のような情報をファイルする。すなわち、着目されたタイムウィンドウのために、そもそも受信又は送信される何らかのメッセージがあるのか(‘empty’)、そして/又はそのメッセージを送信すべきなのか(‘tx_buf’)、受信すべきなのか(‘rx_buf’)という情報である。そのメッセージが送信も受信もされるべきでない場合は、ステータスは‘empty’にセットされる。
現在有効なFlexRay仕様書v2.1と、FlexRay通信システムを実現するため現在利用できるハードウェア及びソフトウェアのコンポーネントの場合、次のようにすれば特に有利である。すなわち、メッセージメモリ内のメッセージのポジションを確認するため、後続する4のタイムウィンドウそれぞれのために、規則的間隔をもって、このメッセージメモリを前もって探索し、探索過程の結果として、後続する4つのタイムウィンドウ内で送信又は受信されるメッセージのポジションを、中間メモリ内にファイルするのである。当然のことながらこの探索過程を、2つだけ又は4つ以上のタイムウィンドウのためにも、前もって実行することができる。好ましくは、あるタイムスロットのために探索過程が前もって実行される場合、そのタイムスロットの個数を集合2に含まれる数とし、ここでxは1より大きい自然数全てとする。従ってタイムスロットの個数として好ましいのは、2、4、8、16、32、...である。
本発明の1つの好ましい実施形態として、次のことを提案する。すなわち、後続する複数のタイムウィンドウのためにメッセージメモリの探索過程の際、下記の判定基準の1つ又は複数に従って探索する。
―着目された伝送チャネルのためのメッセージが、メッセージメモリに格納されているかどうか確認する。
―着目された通信サイクルのためのメッセージが、メッセージメモリに格納されているかどうか確認する。
―後続する複数のタイムウィンドウのためのメッセージが、メッセージメモリに格納されているかどうか確認する。
―確認されたメッセージが、送信又は受信されるべきメッセージであるかどうか確認する。
メッセージメモリ内の探索過程の際に、その時点で着目されたチャネル(チャネルA又はチャネルB)に対し、その時点の通信サイクルのため、そして着目された未来のタイムスロットのため、送信されるべきメッセージが見出される場合、着目されたタイムスロットに対応する中間メモリ内の箇所に、‘Tx_buf’がファイルされる。メッセージメモリ内の探索過程の際に、その時点で着目されたチャネル(チャネルA又はチャネルB)に対し、その時点の通信サイクルに対し、そして着目された未来のタイムスロットに対し、受信されるべきメッセージのためのデータフィールドが見出される場合、着目されたタイムスロットに対応する中間メモリ内の箇所に、‘Rx_buf’がファイルされる。メッセージメモリ内の探索過程の際に、その時点で着目されたチャネル(チャネルA又はチャネルB)に対し、その時点の通信サイクルに対し、そして着目された未来のタイムスロットに対し、送信されるべきメッセージも、受信されるべきメッセージのためのデータフィールドも見出されない場合で、かつ探索過程の開始時において着目されたタイムスロットに対応する中間メモリ内の箇所に、‘empty’がファイルされていない場合、当該箇所に‘empty’がファイルされる。
探索過程の際、メッセージメモリにファイルされているメッセージについて、下記に挙げる情報が照会される。
―CH A,CH B:あるチャネルのためにそのメッセージが予定されている場合、そのチャネルが着目されたチャネルに対応するかどうか、確認するためである。
―Cycle Code:ある通信サイクルのためにそのメッセージが予定されている場合、その通信サイクルが着目された通信サイクルに対応するかどうか、確認するためである。
―Frame ID:あるタイムスロットのためにそのメッセージが予定されている場合、そのタイムスロットが着目されたタイムスロットに対応するかどうか、確認するためである。
―TXM(Transmission Mode):そのメッセージが送信のために予定されているのか(TXM=1)、受信のために予定されているのか(TXM=0)を確認するためである。
照会される情報は、好ましくは上記のステータスビット(CH A,CH B,Cycle Code,TXM)の中で、第1のデータの一部として、メッセージメモリのヘッダセグメントのヘッダ領域に含まれているものとする。
本発明の課題のもう1つの解決法としては、冒頭に挙げた種類の通信モジュールを出発点として、次のことを提案する。すなわち、メッセージメモリにおけるメッセージのポジションを確認するため、通信モジュールは、複数の後続のタイムウィンドウのために、それぞれ規則的間隔で、メッセージメモリを前もって探索する手段と、そのメッセージメモリに割り当てられた中間メモリと、複数の後続するタイムウィンドウで送信又は受信されるメッセージのポジションを探索過程の結果として中間メモリにファイルする手段とを備えるものとする。
本発明の有利な1つの発展形は、メッセージメモリを探索する手段と、確認されたメッセージのポジションを中間メモリにファイルする手段とは、状態オートマトンとして形成されることを提案する。
本発明の1つの好ましい実施形態は、通信モジュールが、FlexRay仕様書に従って伝送されたメッセージを、受信、送信及び中間格納するためのFlexRay通信モジュールとして、形成されることを提案する。
有利な方法として、メッセージメモリを探索する手段と、確認されたメッセージのポジションを中間メモリにファイルする手段とが、請求項2〜12のいずれか一項に記載の方法を実行するために形成されることを提案する。
本発明の課題のもう1つの解決法は、冒頭に挙げた種類の通信システムのノードを出発点として、次のことを提案する。すなわち、メッセージメモリにおけるメッセージのポジションを確認するため、通信モジュールは、複数の後続するタイムウィンドウのために、規則的間隔で、メッセージメモリを前もって探索する手段と、そのメッセージメモリに割り当てられた中間メモリと、複数の後続するタイムウィンドウで送信又は受信されるメッセージのポジションを、探索過程の結果として中間メモリにファイルする手段とを備えるものとする。
本発明の1つの有利な発展形は、ノードがホストコンピュータを備え、このコンピュータは、通信モジュールとともに、1つの共通な半導体コンポーネントに組み込まれることを提案する。このホストコンピュータは、好ましくはマイクロプロセッサとして形成されるものとする。
本発明の1つの好ましい実施形態は、通信モジュールが請求項14〜16のいずれか一項に従って形成されることを提案する。
最後に本発明の課題のもう1つの解決法として、冒頭に挙げた種類の通信システムを出発点として、次のことを提案する。すなわち、メッセージメモリにおけるメッセージのポジションを確認するため、通信モジュールは、複数の後続するタイムウィンドウのために、規則的間隔で、メッセージメモリを前もって探索する手段と、そのメッセージメモリに割り当てられた中間メモリと、複数の後続するタイムウィンドウで送信又は受信されるメッセージのポジションを探索過程の結果として中間メモリにファイルする手段とを、備えるものとする。
本発明の1つの有利な発展形は、通信モジュールが、請求項14〜16のいずれか一項に従って形成されることを提案する。
本発明のそのほかの利点と有利な実施形態を、各請求項の諸内容、図面と下記の説明に記載する。
図1は、FlexRay通信リンク101に、すなわちFlexRay通信システムの物理層に、ノード又はホスト102を接続するためのFlexRay通信モジュール100を、模式的に示す。通信モジュール100は、FlexRay−IPモジュール、又はE−Rayコントローラとも呼ばれる。機能的に見ると、通信モジュール100は、FlexRay通信コントローラを備える。FlexRay通信モジュール100は、接続107を介してノード又はノードプロセッサ102(ホストプロセッサの場合もあり)と、接続106を介して通信リンク101と接続されている。伝送時間及びデータ完全性の点で問題のない接続を行うため、FlexRay通信モジュール100では、主として3つの配置物が模式的に区別されている。
この場合第1の配置物105は、伝送されるメッセージ、すなわちノード102によって送信又は受信されるメッセージの少なくとも一部を格納するため、特に中間ファイルするために用いられる。ノード102とこの第1の配置物105との間には、接続107及び108を介して、第2の配置物104が接続されている。同様に通信リンク101と第1の配置物105との間には、接続106及び109を介して第3の配置物103が接続されている。これによりメッセージ、特にFlexRayメッセージの一部として、第1の配置物105へ、又は、同配置物から、非常にフレキシブルなデータの入力と出力が得られ、かつ最適な速度とともにデータの完全性が保証される。
図2は、1つの好ましい実施形態における通信モジュール100を若干詳細に示す。各接続106〜109をも詳細に示す。ここで第2の配置物104は、インプットバッファメモリ又は入力バッファメモリ201(Input Buffer IBF)、アウトプットバッファメモリ又は出力バッファメモリ(Output Buffer OBF)、並びにインタフェースモジュールを備える。このインタフェースモジュールは、2つの部分203及び204からなり、一方のサブモジュール203(Generic CPU Interface,GIF)は、ノードに依存せず、第2のサブモジュール204は、ノード固有のものである。ノード固有のサブモジュール204(Customer CPU Interface CIF)は、ノード固有のホストCPU102、すなわち顧客固有のノードを、残りのFlexRay通信モジュール100と接続する。そのため双方向データライン216、アドレスライン217、及びコントロールインプット218を設ける。同様に割り込みアウトプット219を設ける。
ノード固有のサブモジュール204は、ノードに依存しないサブモジュール203と接続状態にある。すなわちFlexRay通信モジュール100は、総称的すなわち一般的なCPUインタフェースを備え、このインタフェースに、対応するノード固有のサブモジュール204、すなわちCustomer CPU Interface CIFを介して、顧客固有のさまざまなホストCPUを多数接続することができる。これにより、ノードに応じて、ノード固有のサブモジュール204だけをさまざまに変えなければならない。しかしそのほかの通信モジュール100は、ノードに依存せず、つねに同じ形状とすることができ、これはいちじるしいコスト軽減を意味する。ノード固有のサブモジュール204は、例えば、FlesRay通信モジュール100のビット幅(例えば16Bit)を、繋がれたホストCPU102のビット幅(例えば8、16又は32Bit)に適合させる。
インプットバッファメモリ又は入力バッファメモリ201とアウトプットバッファメモリ又は出力バッファメモリ202は、1つの共通なメモリモジュールの中に、又は別々のメモリモジュールの中に、形成することができる。この場合、メッセージを中間格納するための入力バッファメモリ201が、ホストCPU102からメッセージメモリ300への伝送のために用いられる。入力バッファモジュール201は、好ましくは次のような2つの完全なメッセージを格納できるようなものとして形成する。それらのメッセージとは、それぞれが1つのヘッダセグメントもしくはヘッダセグメントHS、特には構成データを含む同ヘッダセグメントと、1つのデータセグメントDS又はペイロードセグメントとからなるものである。この場合、入力バッファメモリ201は、2つの部分(サブバッファメモリとシャドウメモリと)から形成される。従って、入力バッファメモリ201の両部分に交代に書き込むことにより、又はアクセスの交代により、ノードCPU102とメッセージメモリ300との間の伝送を速めることができる。
同様にして、メッセージを中間格納するためのアウトプットバッファメモリ又は出力バッファメモリ(Output−Buffer OBF)202が、メッセージメモリ300からノードCPU102への伝送のために用いられる。この場合、出力バッファメモリ202も、ヘッダセグメントHS、特に構成データを含む同ヘッダセグメントと、データセグメントDS、すなわちペイロードセグメントとからなる2つの完全なメッセージを格納できるものとして形成される。ここでも出力バッファメモリ202は、2つの部分、すなわちサブバッファメモリとシャドウメモリとに区分される。従ってここでも、出力バッファメモリ202の両部分を交代に読み出すことにより、又はアクセス交代により、メッセージメモリ300とノードCPU又はホストCPU102との間の伝送を速めることができる。第2の配置物104は、ブロック201〜204からなり、第1の配置物105と図示のように接続されている。
配置物105は、メッセージアドミニストレータ200(Message Handler MHD)と、メッセージメモリ300(Message RAM)と、からなる。メッセージアドミニストレータ200は、入力バッファメモリ201及び出力バッファメモリ202と、メッセージメモリ300との間のデータ転送を制御する。同様にこのメッセージアドミニストレータは、第3の配置物103を介して、別方向のデータ伝送を制御する。メッセージメモリ300は、好ましくは単一ポートRAMとして実現されるものとする。このRAMメモリは、メッセージ又はメッセージオブジェクト、すなわち本来のデータを、構成データやステータスデータとともに格納する。メッセージメモリ300の詳細な構造を図3に示した。いずれのメッセージオブジェクトも、ヘッダセグメントHSと、データセグメントDSと、からなる。ヘッダ領域HSには、識別フィールドやそのほかの構成・ステータス情報KDが、ポインタDPとともにファイルされている。このポインタは、メッセージメモリ300のデータセグメントDSにおけるデータ領域DBの開始を示す。
第3の配置物103は、ブロック205〜208からなる。この配置物103は、物理層(FlexRay物理層)の両チャネル、A(CH A)及びB(CH B)に応じて、それぞれがデータ方向を2つ持つ2つのデータ経路に区分される。このことは接続213及び214によって明らかである。ここではその2つのデータ方向を、チャネルAに対しては、受信のためのR×Aと送信のためのT×A、また、チャネルBに対しては、R×B及びT×Bとして示す。接続215は、選択的双方向型の制御インプットを示す。第3の配置物103の接続は、チャネルBのための第1のバッファメモリ205と、チャネルAのための第2のバッファメモリ206とを経由して行われる。これら両者のバッファメモリ(Transient Buffer RAM;RAM A及びRAM B)は、第1の配置物105からの、又は、同配置物へのデータ伝送のための中間メモリとして用いられる。両チャネルA、Bに応じて、これら両バッファメモリ205及び206は、それぞれインタフェースモジュール207及び208と接続されている。これらインタフェースモジュールは、FlexRayプロトコルコントローラ又はバスプロトコルコントローラを含み、これらコントローラは、送信/受信シフトレジスタ及びFlexRayプロトコルFinite−State−Machineからなる。従って両バッファメモリ205及び206は、インタフェースモジュール又はFlexRayプロトコルコントローラ207及び208のシフトレジスタと、メッセージメモリ300との間でデータ伝送するための中間メモリとして用いられる。ここでも有利な方法として、いずれのバッファメモリ205又は206によっても、データフィールドが、すなわち2つのFlexRayメッセージのペイロードセグメント又はデータセグメントDSが格納されるものとする。
そのほか通信モジュール100には、グローバルタイムユニット(Global Time Unit GTU)209を図示する。このユニットは、FlexRayにおけるタイムスロットパターンの表示、すなわちマイクロティックμTと、マクロティックMTとを受け持つ。同様にこのグローバルタイムユニット209を介して、サイクルカウンタ(Cycle Counter)のフォールトトレラントなクロック同期と、FlexRayの静的及び動的セグメントにおける時間的経過が制御される。通信システムのノード102は、みずからのローカルなクロックを備え、このクロックがグローバルタイムに同期される。クロック同期のため、通信サイクルの静的な部分で同期情報が伝送される。クロック同期は、いわゆるNetwork Idle Time(NIT)の間、各通信サイクルの終了時に行われる。現時点のFlexRay仕様書に記載の特殊なアルゴリズムを用いて、コンポーネント102のローカルなクロックタイムを修正し、全てのローカルなクロックがグローバルタイムに同期して動作するようにする。
ブロック210は、一般的なシステム制御ユニット(System Universal Control SUC)であって、これにより、FlexRay通信コントローラ又は通信モジュール100の操作モードが制御される。それに含まれるのがウェイクアップと、スタートアップと、再インテグレーション又はインテグレーションと、ノーマル操作(normal operation)と、パッシブ操作(passeive operation)と、である。ブロック211は、ネットワーク−及びエラーマネジメント(Network− and Error Management NEM)であって、FlexRayプロトコル仕様書v2.1に記載されているものである。最後にブロック212は、割り込み制御ユニット(Interrupt Control INT)を示し、これはステータス−及び誤り割込みフラッグ(Status− and Error Interruptflags)を管理し、ノードCPU102への割り込みアウトプット219を制御する。そのほかブロック212は、絶対的及び相対的タイマを備えて、タイマ割り込み、すなわちTimer−Interruptを生じる。
FlexRayネットワーク又はFlexRay通信システムにおける通信のため、メッセージオブジェクト又はメッセージを、254データビットまでのMessage Buffer300の中に構成することができる。このメッセージメモリ300は、特にはメッセージRAMメモリ(Message RAM)とし、例えば、メッセージオブジェクトを最大64個まで格納できるものとする。メッセージの処理又は管理に関する全ての機能は、メッセージアドミニストレータ又はMessage Handler200で実行される。これは例えば、まずアクセプタンスフィルタリング機能、次にFlexRayプロトコルコントローラブロック207及び208の両者と、メッセージメモリ300、すなわちMessageRAMとの間のメッセージ伝送、そして、次に送信者順序のチェック、及び構成データ又はステータスデータの供給である。
外部のCPU、すなわち外部のプロセッサ、ノードプロセッサ、又はホスト102は、ノード固有の部分204を含むインタフェースを経由して、FlexRay通信モジュールのレジスタに直接アクセスすることができる。このとき、多数のレジスタが用いられる。それは、FlexRayプロトコルコントローラすなわちインタフェースモジュール207及び208、メッセージアドミニストレータ(Message Handler MHD)200、グローバルタイムユニット(Global Time Unit GTU)209、一般的なシステムコントローラ(Sytem Universal Controller SUC)210、ネットワーク−及びエラーマネジメントユニット(Network− and Error Manegement UnitNEM)211、割り込みコントローラ(Interrupt Controller INT)212を、そしてまたMessage RAMすなわちメッセージメモリ300へのアクセスを、構成し、制御するためであり、そして対応するステータスを表示するためである。これらレジスタの少なくとも一部を、図4〜6及び7〜9に詳しく示す。ここに述べる本発明のFlexray通信モジュール100によって、FlexRay仕様書V2.1が簡単に適用できるようになり、これによりASIC、又は対応するFlexRay機能を持つ又はマイクロコントローラを、簡単に生成できるようになる。
図3は、メッセージメモリ300の区分を詳細に示す。FlexRay通信コントローラに対してFlexRayプロトコル仕様書が求める機能のためには、送信されるメッセージを供給するため(Transmitt Buffer)、及びエラーなしに受信されたメッセージの格納するために(Receive Buffer)、メッセージメモリ300が必要である。FlexRayプロトコルは、0〜254バイトのデータ領域、すなわちペイロード領域を許容する。図2に示すように、メッセージメモリ300は、FlexRay通信モジュール100の一部である。下記に説明する方法ならびにそれに対応するメッセージメモリ300は、送信されるメッセージと受信されたメッセージの格納、特にRandom Access Memory(RAM)を用いて行う当該格納に関するものである。この場合、指定された大きさのメッセージメモリ300に可変的個数のメッセージを格納することが、本発明の機構によって可能となる。この場合、格納可能なメッセージの個数は、各メッセージのデータ領域の大きさに依存する。それは、第1には、メッセージのデータ領域の大きさを制限することなく、必要なメモリ300の大きさを最小限に抑えることができ、第2には、メモリ300が最適に活用されることにある。下記では、FlexRay通信コントローラのための、特にRAM基盤のメッセージメモリ300の可変的区分について、さらに詳しく説明したい。
具体例として例えば、固定ワード幅が、nビット、例えば8、16、32...ビット、かつ指定されたメモリ深さがmワードのメッセージメモリ300を設ける(m、nは自然数)。この場合、メッセージメモリ300は、2つのセグメント、すなわちヘッダセグメントHS(ドイツ語でいうKopfsegment)とデータセグメントDS(Payload Section、Payload Segment)とに区分される。1メッセージにつき、1ヘッダ領域HBと1データ領域DBとが生成される。従ってメッセージ0、1〜k(kは自然数)に対して、ヘッダ領域HB0、HB1〜HBk、及びデータ領域DB0、DB1〜DBkが生成される。従って1つのメッセージ中では、第1と第2のデータが区別される。第1のデータは、そのFlexRayメッセージに関する構成データ及び又はステータスデータに相当し、それぞれ1つのヘッダ領域HB(HB0、HB1、...HBk)にファイルされる。伝送されるべき本来のデータに相当する第2のデータ(いわゆるユーザデータ)は、それぞれデータ領域DB(DB0、DB1、...DBk)にファイルされる。従ってメッセージごとに第1のデータに対しては、第1のデータ範囲(ビット、バイト又はメモリワードを単位として測ったもの)が1つ、1つのメッセージの第2のデータに対しては、第2のデータ範囲(やはりビット、バイト又はメモリワードを単位として測ったもの)が1つ生じる。この場合、メッセージあたりの第2のデータ範囲は、さまざまに異なるものとすることができる。メッセージメモリ300におけるヘッダセグメントHSとデータセグメントDSとの区分は可変的である。すなわち、両者領域HS、DS間に決められた境界はない。ヘッダセグメントHSとデータセグメントDSとの間の区分は、本発明においてはメッセージの個数kと、1つのメッセージ又はk個全てのメッセージの第2のデータ範囲、すなわち本来のユーザデータの範囲とに依存する。
本発明においては、各メッセージの構成データKD0、KD1〜KDkに、ポインタエレメント又はデータポインタDP0、DP1〜DPkがそれぞれ直接割り当てられる。特別な実施形態では、いずれのヘッダ領域HB0、HB1〜HBkにも、固定された個数、ここでは2個のメモリワードが割り当てられる。従って、つねに構成データKD(KD0,KD1,...KDk)と、ポインタエレメントDP(DP0,DP1,...DPk)とが、ともに1つのヘッダ領域HB(HB0,HB1,...HBk)にファイルされている。これらヘッダ領域HBを含むこのヘッダセグメントHSは、その大きさ又は第1のデータ範囲が、格納されるメッセージの個数kに依存する。このヘッダセグメントには、本来のメッセージデータD0、D1〜Dkを格納するデータセグメントDSがつながる。このデータセグメント(又はデータセクション)DSは、そのデータ範囲が、ファイルされているメッセージデータ(ユーザデータ)のそのときどきのデータ範囲に依存する。ここでは、DB0が6ワードで、DB1が1ワードで、DBkが2ワードである。従って各ポインタエレメントDP0、DP1〜DPkは、各データ領域DB0、DB1〜DBkの開始、すなわち開始アドレスを示す。これら開始アドレスには、各メッセージ0、1〜kのデータD0、D1〜Dkがファイルされている。従ってヘッダセグメントHSとデータセグメントDSとの間のメッセージメモリ300の区分は、可変的であり、メッセージ自体の個数と、メッセージのそれぞれのデータ範囲と、第2のデータ範囲総計とに依存する。構成されるメッセージが少なくなると、ヘッダセグメントHSも小さくなる。そしてメッセージメモリ300で割り当て解除された領域は、データを格納するデータセグメントDSへの追加として用いることができる。この可変性によって最適なメモリ活用が得られ、従ってより小さいメモリ300を用いることも可能となる。割り当て解除されたデータセグメントFDS、特にその大きさは、格納されているメッセージの個数kと、メッセージそれぞれの第2のデータ範囲との組み合わせに同様に依存しているため、最小となり、0となる場合さえある。
従ってメッセージメモリ300の区分が固定されている場合と比べて、次のような利点が得られる:ユーザはプログラミングの際、データフィールドが小さいメッセージを多数用いるのか、データフィールドが大きいメッセージを少数用いるのかを決定できる。データ領域DBの大きさが異なるメッセージを構成する場合でも、既存の記憶スペースが最適に活用される。ユーザは、1つのデータ格納領域を、さまざまなメッセージのため共通に用いることができる。
ポインタエレメント(DP0、DP1、...DPk)の使用だけでなく、第1と第2のデータ、すなわち構成データKD(KD0、KD1,...KDk)と、本来のデータD(D=D0、...Dk)とを、指定可能な順序でファイルすることもできる。従ってヘッダセグメントHSにおけるヘッダ領域HB0〜HBkの順序と、データセグメントDSにおけるデータ領域DB0〜DBkの順序は、そのときどきに同一である。従って場合によっては、ポインタエレメントを省くこともできるであろう。しかしこの場合、個々のデータ領域DB0〜DBkの長さに関する情報が、アクセス可能である必要があろう。又はデータ領域DB0〜DBk全てを同じ大きさとする。
1つの特別な実施形態では、メッセージメモリ300に、エラー識別文字発生器、特にパリティビット発生器エレメントと、エラー識別文字テスタ、特にパリティビットテストエレメントとが割り当てられている。これはヘッダセグメントHSとデータセグメントDSとにおいて、正しい格納データを得るためである。そのためメモリワードごとに、又は領域(ヘッダ領域HB及び/又はデータ領域DB)ごとに、1つのチェックサム(Checksum)を、特にパリティビットとして、一緒にファイルすることができる。そのほかのチェック識別文字、例えばCRC(Cyclic redundancy check)、又はECC(Error Code Correction)のような、より強力な識別文字が考えられる。
FlexRay通信コントローラを集積回路上に実現する場合、使用されるメモリのメモリ深さをアプリケーション要件に適合させることにより、メッセージメモリ300の大きさを適合させることができる。この場合、通信コントローラのそのほかの機能が変更されることはない。
さらに図4〜6及び7〜9を用いて、ホストCPUアクセスを、すなわち構成データ又はステータスデータ及び本来のユーザデータの、バッファメモリ配置物201及び202を介する書き込みと読み出しを、より詳しく説明する。この場合の目的は、データ完全性と同時に高い伝送速度が得られるように、データ伝送に分割を行うことである。この手順の制御はメッセージアドミニストレータ200を介して行われるが、これについては後に図10、11及び12でさらに詳しく説明する。
まず図4、5及び6は、ホストCPU又はノードCPU102が、インプットバッファメモリ201を介して行う、メッセージメモリ300への書き込みアクセスを、詳しく説明する。そのため図4は、通信モジュール100を再度示すが、この場合、見やすくするため、通信モジュール100のうちここで関係ある部分だけを示す。それは第1には、プロセスの処理を担当するメッセージアドミニストレータ200と、2つのコントロールレジスタ403及び404とであって、これらコントロールレジスタは、図示のように、メッセージアドミニストレータ200の外部で、通信モジュール100の中に取り付けることもできるし、メッセージアドミニストレータ200自体の中に含めることもできる。この場合参照番号403は、インプットリクエストレジスタ(Input Buffer Command Request Register)であって、404は、インプットマスクレジスタ(Input Buffer Command Mask Register)である。従ってメッセージメモリ300(Message RAM)に対するホストCPUの書き込みアクセスは、中間接続されたインプットバッファメモリ201(Input Buffer)を介して行われる。このインプットバッファメモリ201は、分割され、又は二重に、この場合、サブバッファメモリ400と、そのサブバッファメモリ400に付属するシャドウメモリ401と、として設計されている。従って下記に説明するように、メッセージ又はメッセージオブジェクトに、又はメッセージメモリ300のデータに、ホストCPU102が連続的にアクセスすることができ、これによりデータ完全性と、より早い伝送が得られる。アクセスの制御は、インプットリクエストレジスタ403及びインプットマスクレジスタ404を介して行われる。レジスタ403では、レジスタ403の各ビットポジションが数字0〜31で表示されている。ここでは例えば、レジスタの幅を32ビットとする。レジスタ404、及びレジスタ404のビットポジション0〜31についても、同じことが当てはまる。
本発明においては、例えばレジスタ403のビットポジション0〜5、15、16〜21及び31が、手順制御に対して特別な機能を持つものとする。こうしてレジスタ403のビットポジション0〜5には、識別文字IBRH(Input Buffer Request Host)を、メッセージ識別文字として登録できる。同様にレジスタ403のビットポジション16〜21には、識別文字IBRS(Input Buffer Request Shadow)を登録できる。同様にしてレジスタ403のビットポジション15にはIBSYHが、レジスタ403のビットポジション31にはIBSYSが、アクセス識別文字として登録されている。レジスタ404のポジション0〜2も、ラベリングされていて、この場合0及び1には、LHSH(Load Header Section Host)及びLDSH(Load Data Section Host)を用いて、さらなる識別文字がデータ識別文字として完全に登録されている。これらのデータ識別文字は、単純な形に、すなわちそれぞれ1ビットとして形成されている。レジスタ404のビットポジション“2”には、STXRH(Set Transmission Request Host)と、スタート識別文字が書き込まれている。
下記には、インプットバッファ201を介してのメッセージメモリ300に対する書き込みアクセスの手順を説明する。
ホストCPU102は、転送されるべきメッセージのデータをインプットバッファメモリ201に書き込む。この場合ホストCPU102は、メッセージメモリ300のヘッダセグメントHSに対するメッセージの構成・ヘッダデータKDのみ、又はメッセージメモリ300のデータセグメントDSに対するメッセージの本来の伝送されるべきユーザデータDのみ、又はデータKD、Dを両方とも書き込むことができる。メッセージのどの部分を、すなわち構成データKD及び/又は本来のデータDのどれを伝送すべきかは、インプットマスクレジスタ404の特殊なデータ識別文字LHSHとLDSHとによって確定される。この場合、ヘッダデータ、すなわち構成データKDが伝送されるべきかどうかは、LHSH(Load Header Section Host)によって確定され、データDが伝送されるべきかどうかは、LDSH(Load Data Section Host)によって確定される。
インプットバッファメモリ201は、バッファメモリ400とそれに付属するシャドウメモリ401とという2つの部分から形成され、交代にアクセスを行うものである。これにより、LHSH及びLDSHと対を成すものとして、さらに2つのデータ識別領域が設けられている。これら領域は、シャドウメモリ401に関するものである。レジスタ404のビットポジション16及び17におけるこれらデータ識別文字は、LHSS(Load Header Section Shadow)及びLDSS(Load Data Section Shadow)と表示される。これらの識別文字によって、シャドウメモリ401に関する伝送動作が制御される。
スタートビット又はスタート識別文字STXRH(Set Transmission Request Host)が、インプットマスクレジスタ404のビットポジション“2”にセットされているとき、それぞれ伝送されるべき構成データKD及び/又は本来のデータDが、メッセージメモリ300に転送された後、そのメッセージオブジェクトに対する送信リクエスト(Transmission Request)が、自動的にセットされる。すなわちこのスタート識別文字STXRHによって、伝送されるべきメッセージオブジェクトの自動的送信が制御され、特には開始される。
シャドウメモリ401で上記の対となるのは、スタート識別文字STXRS(Set Transmission Request Shadow)である。この識別文字は、例えばインプットマスクレジスタ404のビットポジション“18”に含まれ、ここでも最も単純な場合は1ビットとして形成されている。STXRSの機能は、STXRHの機能と同様であるが、シャドウメモリ401にのみ関する。
ホストCPU102がメッセージ識別文字を、特にメッセージメモリ300におけるメッセージオブジェクト、かつインプットバッファメモリ201の転送先となる同メッセージオブジェクトのポジション又は番号を、インプットリクエストレジスタ403のビットポジション0〜5に、すなわちIBRHに従って書き込むとしよう。この場合、インプットバッファメモリ201のサブバッファメモリ400と、付属するシャドウメモリ401とが交換される。又は、ホストCPU102とメッセージメモリ300とから両サブメモリ400及び401に対する各アクセスが、メモリ400及び401間の半円形矢印に示すように交換される。この場合例えば、データ転送、すなわちメッセージメモリ300へのデータ伝送も開始される。メッセージメモリ300自体へのデータ伝送は、シャドウメモリ401から行われる。同時にレジスタ領域IBRH及びIBRSが交換される。同様にして、LHSH及びLDSHが、LHSS及びLDSSと交換される。同様にSTXRHがSTRXRSと交換される。
従ってIBRSは、メッセージの識別文字、すなわち次のようなメッセージオブジェクトの番号を示す。それは、あるメッセージオブジェクトに対して伝送が、すなわちシャドウメモリ401からの転送が動作中であるとき、又はあるメッセージオブジェクトが、すなわちメッセージメモリ内のそのメッセージオブジェクトの領域が、最後のデータとして(構成データKD及び/又はユーザデータD)、シャドウメモリ401から受け取られたときのメッセージオブジェクトの番号である。インプットリクエストレジスタ403のビットポジション“31”における識別文字(ここでも例えば1ビットとする)IBSYS(Input Buffer Busy Shadow)によって、1つの伝送が、シャドウメモリ401の関与とともに行われるかどうかが表示される。こうして例えば、IBSYS=1のとき、まさにシャドウメモリ401から伝送が行われ、IBSYS=0のときはその伝送は行われない。このIBSYSビットは、例えばIBRHの書き込みによって、すなわちビットポジション“0”〜“5”の書き込みによって、レジスタ403にセットされる。これは、シャドウメモリ401とメッセージメモリ300との間の転送が動作中であることを、表示するためである。メッセージメモリ300へのこのデータ伝送終了後、IBSYSは再びリセットされる。
シャドウメモリ401からのデータ転送がちょうど動作中、ホストCPU102は、次に転送されるべきメッセージを、インプットバッファメモリ201又はサブバッファメモリ400に書き込む。もう1つのアクセス識別文字IBSYH(Input Buffer Busy Host)が、例えばレジスタ403のビットポジション“15”にあるが、このアクセス識別文字を用いて、上記の識別文字を精細化することができる。シャドウメモリ401とメッセージメモリ300との間の伝送が動作中で、すなわちIBSYS=1である間、ホストCPUがちょうどIBRHを書き込むならば、すなわちレジスタ403のビットポジション“0”〜“5”に書き込みするならば、インプットリクエストレジスタ403にはIBSYHがセットされる。動作中であった転送(伝送)が終了するとただちに、リクエストされた転送(STXRHによるリクエスト。上記参照)が開始され、IBSYHビットは、リセットされる。このIBSYSビットは、全時間を通じてセットされたままであるが、これは、データがメッセージメモリ300に転送されることを表示するためである。全ての実施例で用いられるビットは全て、1ビット以上の識別文字として形成することができる。経済的な格納及び処理という理由からは、1ビットによる解決法が有利である。確実性と信頼正常の理由からは、複数ビットによる解決法が推奨されるであろう。
ここに説明したメカニズムによってホストCPU102は、メッセージメモリ300に存在するメッセージオブジェクト、かつヘッダ領域HBとデータ領域DBからなる同メッセージオブジェクトに、データを連続して転送できるようになる。ただしこの場合、インプットバッファメモリ201に対するホストCPU102のアクセス速度が、通信モジュール100(すなわちFlesRayIPモジュール)の内部のデータ転送速度より小さいか、それに等しいことが、前提条件となる。
図7、8及び9は、アウトプットバッファメモリ又は出力バッファメモリ202を経由して行われる、ホストCPU又はノードCPU102によるメッセージメモリ300への読み出しアクセスを、詳しく説明する。そのため図7は、ここでも通信モジュール100を示すが、この場合見やすくするため、通信モジュール100のうち関係する部分だけを示す。これは第1には、手順の制御を担当するメッセージアドミニストレータ200と、2つのコントロールレジスタ703及び704と、である。これらのコントロールレジスタは、図示のように通信モジュール100内でメッセージアドミニストレータ300の外に取り付けることもできるし、又はメッセージアドミニストレータ200自体に含めることもできる。ここで番号703は、アウトプットリクエストレジスタ(Output Buffer Command Request Register)であって、番号704は、アウトプットマスクレジスタ(Output Buffer Command Mask Register)である。従ってメッセージメモリ300に対するホストCPU102の読み出しアクセスは、中間接続されたアウトプットバッファメモリ202(Output Buffer)を介して行われる。このアウトプットバッファメモリ202は同様に、分割されて、又は二重に、この場合サブバッファメモリ701と、そのサブバッファメモリ701の1つに付属するシャドウメモリ700と、として設計されている。従って下記に説明するように、メッセージもしくはメッセージオブジェクトに、又はメッセージメモリ300のデータに、ホストCPU102が連続的にアクセスすることができる。これによりメッセージメモリ300からホストCPU102へという反対方向でも、データ完全性と、より早い伝送とが得られる。アクセスの制御は、アウトプットリクエストレジスタ703及びアウトプットマスクレジスタ704を介して行われる。レジスタ703でも、レジスタ703の各ビットポジションが数字0〜31で表示されている。ここでは例えばレジスタの幅を32ビットとする。レジスタ704、及びレジスタ704のビットポジション0〜31についても、同じことが当てはまる。
レジスタ703のビットポジション“0”〜“5”、“8”及び“9”、“15”及び“16”〜“21”はここで、例えば読み出しアクセスの手順制御に対して、特別な機能を得る。こうしてレジスタ703のビットポジション“0”〜“5”には、識別文字OBRS(Output Buffer Request Shadow)を、メッセージ識別文字として登録することができる。同様にレジスタ703のビットポジション“16”〜“21”には、識別文字OBRH(Output Buffer Request Host)を、登録することができる。アクセス識別文字としては、レジスタ703のビットポジション“15”に、識別文字OBSYS(Output Buffer Busy Shadow)を登録することができる。アウトプットマスクレジスタ704のビットポジション“0”及び“1”もラベリングされており、この場合ビットポジション“0”及び“1”には、RDSS(Read Data Section Shadow)及びRHSS(Read Header Section Shadow)を用いて、さらなる識別文字がデータ識別文字として登録される。例えばビットポジション“16”及び“17”には、RDSH(Read Data Section Host)及びRHSH(Read Header Section Host)により、さらなるデータ識別文字が設けられる。これらのデータ識別文字は、ここでも例えば最も単純な形態、すなわちそれぞれ1ビットとして形成されている。レジスタ703のビットポジション“9”には、スタート識別文字REQが登録されている。そのほか切り替え識別文字VIEWが設けられ、これは例えばレジスタ703のビットポジション“8”に登録されている。
ホストCPU102は、メッセージメモリ300に含まれるメッセージオブジェクトのデータを要求する。そのためこのホストCPUは、所望のメッセージの識別文字、すなわち特には所望のメッセージオブジェクトのポジション又は番号を、OBRSに従って、すなわちレジスタ703のビットポジション0〜5に書き込む。この場合もホストCPUは、反対方向の場合と同様に、すなわちメッセージの状態−又は構成−及びヘッダデータKDのみ、つまりヘッダ領域HBにある当該データのみ、又はメッセージの本来伝送されるべきユーザデータD、つまりデータ領域DBにある当該データ、又は両者のデータKD、D、これら三者のいずれかを読み出すことができる。データのいずれの部分を、すなわちヘッダ領域HB及び/又はデータ領域DBのいずれにある部分を伝送すべきかは、反対方向の場合と同様に、RHSS及びRDSSによって確定される。すなわちRHSSは、ヘッダデータKDを読み出すべきかどうかを表示し、RDSSは、本来のデータDを読み出すべきかどうかを表示する。
スタート識別文字は、メッセージメモリ300からシャドウメモリ700への伝送開始に用いる。すなわち、識別文字の最も単純な例として1ビットを用いる場合、アウトプットリクエストレジスタ703におけるビットポジション“9”にREQビットをセットすることにより、メッセージメモリ300からシャドウメモリ700への伝送が開始される。伝送が動作中であることを、再びアクセス識別文字によって、ここでは再び最も単純な例として、レジスタ703におけるOBSYSビットによって表示する。衝突を避けるためには、OBSYSがセットされていないとき、すなわち伝送が動作中でないときに限って、REQビットをセットできるようにすれば有利である。そうすればこの場合、メッセージメモリ300とシャドウメモリ700との間のメッセージ転送も行われる。本来の手順は、第1には反対方向の場合と同様に、図4、5及び6に記載するような方法で制御し(相補的レジスタ利用)、行うこともできよう。第2にはバリエーションとして、追加的な識別文字によって、すなわちレジスタ703のビットポジション“8”における切り替え識別文字VIEWによって、制御し、行うこともできよう。すなわち伝送終了後、OBSYSビットをリセットする。そしてアウトプットリクエストレジスタ703でVIEWビットをセットすることにより、サブバッファメモリ701と付属するシャドウメモリ700とが交換され、又はそれらメモリへのアクセスが交換される。そしてホストCPU102は、メッセージメモリ300から要求されたメッセージオブジェクト、すなわちそれに対応するメッセージを、サブバッファメモリ701から読み出すことができる。ここでも図4〜6における反対伝送方向と同様に、OBRSとOBRHとのレジスタセルが交換される。同様にRHSS及びRDSSは、RHSH及びRDSHと交換される。ここでも保護メカニズムとして、OBSYSがセットされていない場合、すなわち伝送が動作中でない場合に限って、VIEWビットをセットできるようにする。
これにより、中間接続されたアウトプットバッファメモリ202を経由して、メッセージメモリ300に対し、ホストCPU102の読み出しアクセスが行われる。このアウトプットバッファメモリ202は、インプットバッファメモリ201と同様に二重に設計されている。これは、メッセージメモリ300にファイルされているメッセージオブジェクトに対し、ホストCPU102が連続的にアクセスできるようにするためである。この場合も、データ完全性が高く、伝送が早くなるという利点が得られる。
書き込みされたインプット及びアウトプットバッファメモリ201、202を用いることにより、ホストCPU102は、モジュール内部に待ち時間があっても、中断されることなくメッセージメモリ300にアクセスすることができる。
データ完全性を確保するため、データ伝送、特に通信モジュール100内における転送を、メッセージアドミニストレータ200(Message Handler MHD)によって行う。これについては図10に、メッセージアドミニストレータ200の詳細を示す。メッセージアドミニストレータ200の機能を、複数の状態機械又は状態オートマトン、すなわち有限オートマトン、いわゆるFinite−State−Machine(FSM)によって示すことができる。この場合、少なくとも3つの状態機械を、そして1つの特別な実施形態として、4つのFinite−State−Machineを設ける。第1のFinite−State−Machineは、IOBF−FSM(Input/Output Buffer FSM)501である。この状態機械IOBF−FSMは、インプットバッファメモリ201又はアウトプットバッファメモリ202の伝送方向を、2つのFinite−State−Machineに、例えばIBF−FSM(Input Buffer FSM)とOBF−FSM(Output Buffer FSM)とに区分することもできよう。これにより、最大5つの状態オートマトン(IBF−FSM、OBF−FSM、TBF1−FSM、TBF2−FSM及びAFSM)が考えられよう。しかし1つの共通なIOBF−FSMを設けるのが好ましい。
ここでは好ましい実施例として、少なくとも1つの第2のFinite−State−Machine TBF−FSMが、2つのブロック502及び503に区分される。そして、図2で説明したように、メモリ205及び206に対応する両チャネルA及びBを操作する。この場合Finite−State−Machineを1つ設けて、両チャネルA及びBを操作することもできる。又は―この好ましい実施例のように―チャネルAに対しては、番号502を付した第1のFinite−State−Machine TBF1−FSM(Transient Buffer 1(206、RAM A)FSM)を、チャネルBに対しては、番号503を付した第2の状態機械TBF2−FSM(Transient Buffer 2(205、RAM B)FSM)を設けることもできる。
この好ましい実施例において、3つのFinite−State−Machine501〜503へのアクセスを制御するためには、Arbiter−Finite−State−Machine、ここではAFSM500を用いる。データ(ヘッダデータKD及び/又はユーザデータD)は、クロックパルスによって通信モジュール100の中を伝送される。このクロックパルスは、クロックパルス手段、例えばVOC(Voltage Controlled Oscilator)、水晶共振子などによって生成され、又はこのクロックパルス手段によって適合され、又は導き出されたものである。この場合クロックパルスTを、モジュール100の中で生成し、又は外部から例えばバスパルスとして供給することができる。Arbiter−Finite−State−Machine AFSM 500は、3つのFinite−State−Machine501〜503の1つずつが交代で、特にクロックパルス周期Tの1つずつにおいて、メッセージメモリ300にアクセスできるようにする。すなわち利用できる時間は、状態オートマトン501、502、503それぞれのアクセス要求に応じて、要求する状態オートマトン501〜503に分配される。ただ1つのFinite−State−Machineからアクセス要求が行われる場合、この状態オートマトンは、その後の全てのクロックパルスTを含むアクセス時間の100%を得る。2つの状態オートマトンがアクセス要求を行うとき、いずれのFinite−State−Machineも、アクセス時間の50%を得る。また最後に、3つの状態オートマトンがアクセス要求を行うとき、いずれのFinite−State−Machineも、アクセス時間の3分の1を得る。これによりそのときどきに得られる帯域が最適に利用される。
第1のFinite−State−Machine501、すなわちIOBF−FSMは、必要に応じて次の動作を行う:
―インプットバッファメモリ201から、メッセージメモリ300における選択されたメッセージオブジェクトへのデータ転送。
―メッセージメモリ300における選択されたメッセージオブジェクトから、アウトプットバッファメモリ202へのデータ転送。
チャネルAに対する状態機械502、すなわちTBF1−FSMは、次の動作を行う:
―メッセージメモリ300における選択されたメッセージオブジェクトから、チャネルAのバッファメモリ206へのデータ転送。
―バッファメモリ206から、メッセージメモリ300における選択されたメッセージオブジェクトへのデータ転送。
―メッセージメモリ300における適切なメッセージオブジェクトの探索で、この場合、受信の場合であれば、メッセージオブジェクト(Receiver Buffer 202)は、チャネルAで受信されたメッセージを格納するため、アクセプタンスフィルタリングの際に探索され、送信の場合であれば、チャネルAで送信される次のメッセージオブジェクト(Transmit Buffer 201)が探索される。
状態機械TBF2−FSM、すなわちブロック503におけるチャネルBに対するFinite−State−Machne503も、上記と同様である。この状態機械は、メッセージメモリ300における選択されたメッセージオブジェクトから、チャネルBのバッファメモリ205へのデータ転送と、バッファメモリ205から、メッセージメモリ300における選択されたメッセージオブジェクトへのデータ転送とを行う。探索機能もまた、状態機械TBF1−FSMと同様に、メッセージメモリ300内の適切なメッセージオブジェクトを求めて行われる。それが受信の場合であれば、メッセージオブジェクト(Receiver Buffer 202)は、チャネルBで受信されたメッセージを格納するため、アクセプタンスフィルタリングの際に探索される。送信の場合であれば、チャネルBで送信される次のメッセージ、又はメッセージオブジェクト(Transmit Buffer 201)が探索される。
手順と伝送経路を図11に再度示す。3つの状態機械501〜503が、各部品間のそれぞれのデータ伝送を制御する。ここでも102は、ホストCPUで、201は、インプットバッファメモリで、202は、アウトプットバッファメモリである。300は、メッセージメモリで、206と205は、チャネルA及びBに対するそれぞれのバッファメモリである。インタフェースエレメント207及び208も図示した。第1の状態オートマトンIOBF−FSM501は、データ伝送Z1A及びZ1B、すなわちインプットバッファメモリ201からメッセージメモリ300へ、及びメッセージメモリ300からアウトプットバッファメモリ202へのデータ伝送を制御する。しかし、このデータ伝送は、ワード幅が例えば32ビットのデータバスを経由して行われ、この場合、この他どのようなビット数でも可能である。同じことが、メッセージメモリ300とバッファメモリ206との間の伝送Z2に対しても当てはまる。このデータ伝送は、状態機械TBF1−FSM502、すなわちチャネルAに対する状態機械によって制御される。メッセージメモリ300とバッファメモリ205との間の伝送Z3は、状態オートマトンTBF2−FSM503によって制御される。ここでもデータ伝送は、例えばワード幅32ビットのデータバスを経由して行われるが、この場合、その他どのようなビット数でも可能である。完全なメッセージオブジェクトを共通な伝送経路を経由して伝送するには、通常は、複数のクロックパルス周期Tが必要である。従ってクロックパルス周期Tを基準とする伝送時間の配分は、アービタすなわちAFSM500によって行われる。従って、図11は、Message Handler200によってチェックされるメモリコンポーネント間のデータ経路を示す。メッセージメモリ300に格納されているメッセージオブジェクトのデータ完全性を確保するには、同一時点で、図示の経路すなわちZ1A及びZ1BならびにZ2及びZ3のうちただ1つにおいて、同時にデータを交換するのが有利であろう。
利用できるシステムクロックパルスTを、アービタすなわちAFSM500は、要求する側の3つの状態オートマトン501〜503に、どのように分配するか、その例を図12に示す。段階1では、状態オートマトン501及び状態オートマトン502のアクセス要求が行われる。従って総計算時間が半分ずつ、要求している状態オートマトン501、502両者に分配される。段階1におけるクロックパルス周期を基準にすると、このことは、状態オートマトン501がクロックパルス周期T1及びT3で、また状態オートマトン502はクロックパルス周期T2及びT4でアクセスできることを意味する。段階2では状態機械501によってのみアクセスが行われ、その結果、3つ全てのクロックパルス周期T5〜T7が、すなわちアクセス時間の100%が、状態オートマトンIOBF−FSM501のものとなる。段階3では、3つ全ての状態オートマトン501〜503のアクセス要求が行われ、その結果、総アクセス時間の3分割が行われる。するとアービタAFSM500は、アクセス時間を例えば次のように分配する。すなわちクロックパルス周期T8及びT11ではFinite−State−Machine501が、クロックパルス周期T9及びT12ではFinite−State−Machine502が、そしてクロックパルス周期T10及びT13ではFinite−State−Machine503が、アクセスを得るように分配する。そして最後に、段階4では、2つの状態オートマトン502及び503によって、通信モジュール100の両方のチャネルA及びBに対するアクセスが行われ、その結果、クロックパルス周期T14及びT16では第2のFinite−State−Machine502に、T15及びT17では第3のFinite−State−Machine503に、アクセスが分配される。
従ってアービタ状態オートマトンAFSM500は、次の手配を行う。すなわち3つの状態機械501〜503のうち1つ以上が、メッセージメモリ300に対するアクセスを要求する場合、クロックパルスに従い交代に、要求している状態機械に、アクセスが分配されるようにする。この手順によって、メッセージメモリ300にファイルされているメッセージオブジェクトの完全性、すなわちデータ完全性が確保される。例えばホストCPU102は、アウトプットバッファメモリ202を介してメッセージオブジェクトを読み出し、その間に、ちょうど受信されたメッセージがこのメッセージオブジェクトに書き込まれる。従っていかなる要求が当初開始されたかに応じて、古い状態又は新しい状態が読み出され、その際メッセージメモリ300自体の中のメッセージオブジェクトで、アクセスが衝突することはない。
本方法によって、ホストCPU102は、運転動作中にメッセージメモリ300でメッセージオブジェクトを読み出し又は書き込む。その際、選択されたメッセージオブジェクトは、ホストCPU102がアクセスしている間、FlexRayバス101の両チャネルA及びBにおけるデータ交換への関与から、遮断されることはない(Buffer Locking)。同時にアクセスをクロックパルスごとにインタレーシングすることにより、メッセージメモリ300にファイルされたデータの完全性が確保され、伝送速度は、全帯域が活用されることにも助けられて上昇する。
通信モジュール100のメッセージメモリ300には、通信のため予定されたメッセージオブジェクトが格納される。他方この通信には下記の任務が課される。
通信リンク101を経由してメッセージを受信する際、付属するメッセージオブジェクトをメッセージメモリ300で見つけなければならない。受信されたメッセージを、メッセージメモリ300内で、メッセージオブジェクトの対応するポジションに格納できるようにするためである。受信されたメッセージがメッセージメモリ300に格納されるのは、受信されたメッセージの識別フィールドが、構成されたメッセージオブジェクト(いわゆる受信オブジェクト)の識別フィールドと一致する場合に限られる。構成された受信メッセージオブジェクトの識別フィールドは、メッセージメモリ300の全体が、下記のメッセージオブジェクトを探索されることによって、確認される。
―着目されたチャネル(A又はB)を経由して受信するために予定されているメッセージオブジェクト。
―着目された通信サイクルで受信するために予定されているメッセージオブジェクト。
―着目されたタイムスロットで受信するために予定されているメッセージオブジェクト。
―受信のため予定されているメッセージオブジェクト。
同様に時期に遅れることなく送信ウィンドウ開始時に、この送信ウィンドウに適したメッセージオブジェクト(送信オブジェクト)をメッセージメモリ300で見つけ、送信のためレディ状態としなければならない。送信を待つメッセージオブジェクトが送信されるのは、送信されるメッセージの識別フィールドが、構成されたメッセージオブジェクト(いわゆる送信オブジェクト)の識別フィールドと一致する場合に限られる。構成された送信メッセージオブジェクトの識別フィールドは、メッセージメモリ300の全体が、下記のメッセージオブジェクトを探索されることによって、確認される。
―着目されたチャネル(A又はB)を経由して送信するために予定されているメッセージオブジェクト。
―着目された通信サイクルで送信するために予定されているメッセージオブジェクト。
―着目されたタイムスロットで送信するために予定されているメッセージオブジェクト。
―送信のため予定されているメッセージオブジェクト。
通信モジュールのリアルタイム性を確保するため、両者の場合とも、適切なメッセージオブジェクトを、メッセージメモリで時期に遅れず確認しなければならない。次のタイムウィンドウのためのメッセージオブジェクト300が、メッセージメモリのどのポジションに存在するかがわかっていないので、メッセージメモリ300は、タイムウィンドウごとに1回、完全に探索されなければならない。これには(特にメッセージメモリ300が大きくなると)時間がかかり、通信システムのリアルタイム性を危険にさらし、又は損なう可能性がある。
本発明は、メッセージメモリを探索するための新しく、かつ改善された方法である。この方法の場合、メッセージメモリ300に格納されているメッセージオブジェクトの識別フィールドは、それぞれ複数のタイムウィンドウ(又はタイムスロット)のためのものが、前もって探索される。この探索は、着目された複数のタイムウィンドウのために、メッセージメモリ300のただ1回の探索過程によって行われる。従ってメッセージメモリ300全体に探索過程を1回行うとき、それはつねに、1つの指定可能なグリッド内で着目された未来の複数のタイムウィンドウのためのものである。この場合グリッド内における探索過程実行時点の間隔は、1つのタイムウィンドウより大きく、そして複数のタイムウィンドウを含む。
特には、着目された未来の複数のタイムスロットのための探索過程の際、下記を行い、下記の判定基準により点検することを提案する。
―メッセージメモリ300に、着目された伝送チャネルCH A、CH Bのためのメッセージオブジェクトが格納されているかどうか、確認する。
―メッセージメモリ300に、着目された通信サイクルのためのメッセージオブジェクトが格納されているかどうか、確認する。
―メッセージメモリ300に、着目された複数の後続するタイムウィンドウのためのメッセージオブジェクトが格納されているかどうか、確認する。
―確認されたメッセージオブジェクトが、送信又は受信されるべきオブジェクトであるかどうか、点検する。
メッセージメモリ300内で1つ又は複数のメッセージオブジェクトを確認する場合、かつ、それらのオブジェクトが、上記要求事項の1つ又は複数、好ましくは全てを満足させる場合、メッセージメモリで見つけられたオブジェクトのポジションは、メッセージメモリ300に割り当てられた中間メモリにファイルされる。この中間メモリを図13に示し、その全体を参照番号600で表す。中間メモリ600は少なくとも、前もって着目されたタイムスロットのいずれのためにも、少なくとも1つのデータフィールドを備えるような大きさとする。図示の実施例では、メッセージメモリ300が、4つのタイムウィンドウのグリッドにおいて、すなわち全部で4つだけのタイムウィンドウにおいて、探索される。もちろんこの探索は、その時点のただ1つのタイムウィンドウのためにだけでなく、同時に又はほぼ同時に複数の未来のタイムウィンドウのためにも行われる。従って、中間メモリ600は、4つのデータフィールド601〜604を備える。これは、確認された最大4つのメッセージオブジェクトのポジションをファイルできるようにするためである。データフィールド601〜604のいずれにも、データワードを2つずつ、すなわちポインタiとステータスiをファイルすることができる。この場合iは、メッセージメモリ300におけるデータフィールド601〜604の一意的な番号(又は識別文字)に相当する。好ましくはデータフィールド601を、第1の着目された未来のタイムウィンドウに、データフィールド602を第2の同タイムウィンドウに割り当て、以下データフィールド604まで同様とし、このデータフィールド604を最後に着目された未来のタイムウィンドウに割り当てるものとする。従って第1の着目された未来のタイムウィンドウのために、対応するメッセージオブジェクトがメッセージメモリ300に確認されるならば、第1のタイムウィンドウiのために確認されたメッセージオブジェクトのポインタiとステータスiとが、データフィールド601の両者のデータワードにファイルされる。
データワード・ポインタ0...3として、データフィールド601〜604に、それぞれメッセージメモリ300における参照済みメッセージオブジェクトのポジション、例えば番号が格納されている。従ってデータワード・ポインタ0...3は、一種のポインタエレメント(いわゆるData−Pointer)である。このポインタエレメントは、メッセージメモリ300におけるメッセージオブジェクトの開始を、好ましくはヘッダセグメントHSにおけるヘッダ領域HBの開始を、すなわち確認されたメッセージオブジェクトの構成データKDを示す。メッセージメモリ300にファイルされているメッセージのステータス0...3として、中間メモリ600には、好ましくは次のような情報をファイルする。すなわち、着目されたタイムウィンドウのために、何らかのメッセージを受信又は送信するべきかどうか、そして/又はそのメッセージを送信又は受信するべきかどうか、という情報である。そのメッセージを送信するべき場合は、ステータス0...3は‘tx_buf’に、そのメッセージを受信するべき場合は、ステータス0...3は‘rx_buf’にセットされる。着目されたタイムスロットのためのメッセージが、送信も受信もされるべきでない場合、ステータスは‘empty’にセットされる。ただしこのようなセットが、すでに探索過程開始時に、データフィールド601〜604の全てのデータワードに対して、少なくともデータワード・ステータス0...3に対して、行われていないものとする。
図13は、図示の中間メモリ600が二重に形成されていることを、わかりやすく示す。すなわちデータフィールド601〜604が二重に形成されているので、追加的なデータフィールド601a〜604aが存在する。これには次のような利点があり、例えばデータフィールド601〜604には、探索過程の際にアクセスすることができ、同時にデータフィールド601a〜604aには、本来のデータ伝送の際に、すなわちデータの送信又は受信の際に、アクセスすることができる。データ伝送と探索過程が終了しているときに、データフィールドを交換し、その結果、データフィールド601a〜604aには、探索過程の際にアクセスすることができ、同時にデータフィールド601〜604には、本来のデータ伝送の際に、すなわちデータの送信又は受信の際に、アクセスすることができるようになる。この方法によれば、データ伝送時の待ち時間を、メッセージメモリ300における探索過程により、防止することができる。
効果的な方法として送信フィルタリングを行う。すなわち、ある1つのメッセージの中間格納に予定されているポジション(又はメッセージオブジェクト)を、メッセージメモリ300で探索する。このメッセージとは、ホストCPU102が、着目された通信サイクルにおいて、そして着目されたタイムウィンドウにおいて、通信リンク101を通る着目されたチャネルを経由して、送信するべきメッセージである。追加的方法又は上記と異なる方法として、受信フィルタリングを行う。すなわち、ある1つのメッセージの中間格納に予定されているポジション(又はメッセージオブジェクト)について、メッセージメモリ300が探索される。このメッセージとは、ホストCPU102が、着目された通信サイクルにおいて、そして着目されたタイムウィンドウにおいて、通信リンク101を通る着目されたチャネルを経由して、受信するべきメッセージである。この探索方法の目的は、通信サイクルごとに必要なメッセージメモリ300探索過程の回数を削減し、通信モジュール100のリアルタイム性を改善することである。
本項の説明は、合計8個のエレメント601〜604及び601a〜604aを持つ間のメモリ600に関する。しかし中間メモリ600の大きさは、データ伝送のための本発明による方法と、特に提案された探索方法とを維持しながら、任意に変化させ、特には拡大することができ、メッセージメモリ300の大きさに弾力的に適合させることができる。そのほか探索経過に際して、最大でどのくらいの数のタイムウィンドウのために、メッセージメモリ300を前もって探索するべきか、中間メモリ600の大きさを介して前もって決定することができる。規則通りの機能を本発明の方法から確保できるようにするため、特には送信又は受信されるべきメッセージのスキップを防止するため、定められたタイムスロットに関する探索経過終了と、これらのタイムスロットに関する本来のデータ伝送終了との間では、メッセージメモリ300の再構成は、できれば行わないようにするべきであろう。もし行われたら、最後の探索経過の際に確認された中間メモリ600の内容は、場合によっては無効となるであろう。なぜならば再構成によって、当該タイムスロットの送信又は受信されるべきメッセージへの、メッセージメモリ300のメモリ領域の割り当ては、場合によっては変わってしまっている可能性があるからである。このような場合、あらためて探索過程を行う必要があろう。そうすると、少なくともデータ伝送時の遅延を、場合によっては、わずかながらデータ損失を生じる可能性があろう。しかしFlexRay仕様書には、適切なメカニズムを記載していて、このような遅延又はデータ損失をブロックすることができる。従ってデータ伝送に対する不利な影響を心配する必要はない。
本発明の方法を、以下に図14を用いて詳しく説明する。図14では、KZYが通信サイクルである。ZEはサイクルエンド、ZFはタイムウィンドウである。SDLは探索過程を表す。また最後に、DATは本来のデータ伝送、すなわちメッセージの送信又は受信である。図14では、通信サイクルKZY(n)に着目する。この通信サイクルは、まずサイクルKZY(n)の静的セグメントの4つのタイムウィンドウ“1”〜“4”を含み、これには、サイクルKZY(n)の動的セグメントのタイムウィンドウ合計20個が続く。サイクルエンドZE(n)には、例えばSymbol Window(もしあれば)と、いわゆるNetwork Idle Time(NIT)とが含まれ、このNITは、ノード102のローカルクロックのクロック同期に用いられる。図示の実施例では、メッセージメモリは、つねに4つのタイムスロットZFのために、前もって探索される。本発明による方法がスタートした後、最初の探索過程だけは1つの例外となり、まず中間メモリの8個のエレメント601〜604及び601a〜604a全てを、充填しなければならないからである。
本発明による方法のフローチャートを図15に示す。この方法は、機能ブロック700で開始する。機能ブロック701では最初の探索過程が行われるが、この探索過程を以下に詳しく説明する。探索過程の際、例えば中間メモリ600のフィールド又はエレメント601〜604で、対応する情報、すなわち続いて行われる本来のデータ伝送に必要な情報がファイルされる。それが本発明の方法スタート後、最初の探索過程である場合、中間メモリ600の残りのフィールド又はエレメント601a〜604aはまだ空であって、直接続くさらなる探索過程によって充填されなければならない。従って照会ブロック702は、それが方法スタート以来最初の探索過程であるかどうかを点検する。yesである場合、探索過程701がもう一度行われ、そうでない場合は、新しい機能ブロック703に分岐し、そこで本来のデータ伝送、すなわちメッセージの送信及び/又は受信が、次に述べるようなノード102に対して行われ、そのノードに対しては、通信モジュール100、そのメッセージメモリ300が、先行する探索過程で探索済みである。つづいて照会ブロック704で、本発明の方法が終了しているかどうか点検する。yesの場合、ブロック705に分岐し、本方法は終了する。yesでない場合は機能ブロック706に分岐し、そこで中間メモリ600のフィールド又はエレメント601〜604が、フィールド又はエレメント601a〜604aと交換され、その結果、続く探索過程701で確認された情報、特にメッセージオブジェクトのポジションは、もはやフィールド601〜604ではなく、フィールド601a〜604aにファイルされる。同様に、機能ブロック706における中間メモリ600のフィールド交換の結果として、後続する本来のデータ伝送の間、もはやフィールド601a〜604aではなく、フィールド601〜604にアクセスされる。そのほか機能ブロック706では、次の4つのタイムスロットが、後続する探索過程で着目されるタイムスロットとして確定される。次に再び機能ブロック701に分岐し、探索過程と本来のデータ伝送が再度行われるが、しかし今回は、先行過程のタイムスロットの次の4つのタイムスロットのために行われる。
図15で一般的に701と番号をつけた探索過程を、図14の実施例を用いて詳しく説明する。この探索過程は、順次続く4つのタイムウィンドウZFのために行われ、その際、4つのタイムウィンドウ全てのために、適切なメッセージオブジェクトがメッセージメモリ300で探索される。仕様書に従って、第1のタイムウィンドウ“0”は存在しないので、最初の探索過程は、例外的にタイムウィンドウZFを3つだけ含む。しかし後続する探索過程は全て、4つのタイムウィンドウZFを含む。適切なオブジェクトを確認するため、特に上記に挙げた判定基準、通信サイクル、タイムスロット、チャネル及び送信/受信を点検する。探索結果は、メッセージメモリ300で確認された適切なメッセージオブジェクトのポジションとして、中間メモリ600にファイルされる。中間メモリは、8個のエレメント601〜604及び601a〜604a、エレメント“0”〜エレメント“7”を記載する1つのリストを含む。
通信モジュール100の構成段階終了後、そしていずれの通信サイクルKZY(n−1)もその終了時に、中間メモリ600は消去される。全てのポインタ“0”〜“7”は0に、全てのステータス情報フィールド“0”〜“7”は‘empty’にセットされる。最初の探索過程は、例外的に、手順がほかの探索過程と若干異なる。先行するサイクルKZY(n−1)の最後の探索過程では、メッセージメモリ300が、後続の通信サイクルKZY(n)の第1のタイムスロットZFのための適切なメッセージオブジェクトを探索される。例えばシステムがちょうどスタートアップされたばかり、構成されたばかりであるという理由で、先行する通信サイクルKZY(n−1)が存在しない場合、メッセージメモリ300は、構成段階に続いて、後続する通信サイクルKZY(n)の第1のタイムスロットZFのための適切なメッセージオブジェクトを探索する。この探索の結果は、中間メモリのエレメント“1”参照番号602に格納される。
続いて通信サイクルKZY(n)が開始され、第1のタイムスロットZF1で、縮小された探索過程が行われる。この探索過程の間、メッセージメモリ300は、タイムスロットZF2及びZF3のための適切なメッセージオブジェクトを探索される。この縮小された探索過程の結果は、中間メモリ600のエレメント“2”参照番号603及び“3”参照番号604にファイルされる。さらにメッセージメモリ300は、第1のタイムスロットZF1において、後続する4つのタイムスロットZF4〜ZF7のための適切なメッセージオブジェクトを探索されなければならない。この探索の結果は、中間メモリ600のエレメント“4”参照番号601a〜“7”参照番号604aにファイルされる。タイムスロットZF2〜ZF7のための適切なオブジェクトの探索は、ただ1つの探索過程SDL1の間に行うことができる。さらには第1のタイムスロットZF1において、第1のタイムスロットZF1に予定されているメッセージの本来のデータ伝送が行われる。第1に、第1のタイムスロットZF1は、FlexRay仕様書によって、確実に静的タイムスロットであり、この静的タイムスロットは―動的タイムスロットとは異なって―定められた最小限経過時間を下回らず、この最小限時間は、第1のタイムスロットZF1の間に上記全てのステップを実行するに十分な長さである。第2に、中間メモリ600は、最初の探索過程SDL1の時点において空であり、この2つの理由から中間メモリ600においては、実際に適切なメッセージオブジェクトがメッセージメモリ300で見出された場合に限り、情報をファイルすればよい。定められたタイムスロットZFのためのオブジェクトが見出されなかった場合、対応するエレメント601〜604又は601a〜604aは、ポインタ=‘0’かつステータス=‘empty’のままである。
最初の探索過程SDL1の際、第1のタイムウィンドウZF1において、まず第1のメッセージオブジェクトの識別フィールドを、メッセージメモリ300のヘッダ部分HSから読み出す。メッセージの識別フィールドは、少なくとも次のステータスビットを含む:11ビットFrame ID(Header Wordのビット0〜10)、7ビットCycle code(Header Wordのビット16〜22)、1ビットChannel A(CH A)(Header Wordのビット24)、1ビットChannel B(CH B)(Header Wordのビット25)、及び1ビットTransmission Mode(TXM)(Header Wordのビット28)である。この識別フィールドが、着目された通信サイクルKZY(n)のタイムウィンドウZF2〜ZF7の1つに適合していれば、中間メモリ600の対応するエレメント“2”〜“7”のポインタは、メッセージメモリ300におけるメッセージオブジェクトの番号にセットされる。そして対応するステータス“2”〜“7”は、そのメッセージが送信されるのか、受信されるのかに応じて、‘tx_buf’又は‘rx_buf’にセットされる。
次に―依然として同じ探索過程SDL1において―次のメッセージオブジェクトの識別フィールドが読み出され、タイムウィンドウZF2〜ZF7に対する一致が存在するかどうか、必要な場合は、中間メモリ600の対応するエレメント601〜604、601a〜604aのポインタとステータス情報フィールドがセットされているかどうかが、点検される。
対応する中間メモリのエレメントのステータスが、すでにもはや‘empty’でないならば、いかなるポインタもステータス情報も中間メモリ600に格納されない。すなわち2つ又はそれ以上のメッセージオブジェクトが、同じ通信サイクルKZY(n)の同じタイムウィンドウZFのために構成されているならば、第1のメッセージオブジェクトが用いられ、後続するメッセージオブジェクトは破棄される。
メッセージメモリ300のヘッダ部分から最後の識別フィールドが読み出されるとともに、探索課程SDL1は終了する。すると本来のデータ伝送の際に、大きな遅延なしに、タイムウィンドウZF1〜ZF7のために、適切なメッセージオブジェクトの番号を、中間メモリ600から直接取り出すことができる。
タイムウィンドウZF4の開始とともに、中間メモリ600のエレメント602〜604は処理済みとなっている(タイムウィンドウZF0は欠落しているので、エレメント601は不要となっている)。すなわちこれらのタイムウィンドウZF1〜ZF3における本来のデータ伝送は、すでに実行されている。中間メモリ600のエレメント601〜604は、今や消去することができる(ポインタ=‘0’、ステータス=‘empty’)。そして次の探索過程SDL2がスタートする。この探索過程は、その時点の通信サイクルKZY(n)のタイムウィンドウZF8〜ZF11に関するものである。探索結果は、中間メモリ600のエレメント“0”参照番号601〜“3”参照番号604にファイルされる。タイムウィンドウZF8の開始とともに、タイムウィンドウZF12〜ZF15のためのさらなる探索過程SDL3がスタートする。これら探索結果は、中間メモリのエレメント“4”参照番号601a〜“7”参照番号604aにファイルされ、これらエレメントはやはり探索過程SDL3の開始時に消去されている(ポインタ=‘0’、ステータス=‘empty’)。
探索過程SDLと平行して、本来のデータ伝送DATの処理が、それぞれのタイムウィンドウZF到達後に行われる。こうして例えば第2の探索過程SDL2の間、タイムウィンドウZF4〜ZF7のための本来のデータ伝送が処理される。その際、伝送されるべき(送信又は受信されるべき)メッセージを、メッセージメモリ300のどこにファイルするべきか、又はメッセージメモリ300のどこから読み出すべきかという情報は、中間メモリ600のエレメント“4”参照番号601a〜“7”参照番号604aから取り出される。これらのエレメントには、それらの情報が最初の探索過程SDL1の間にファイルされている。同様に、第3の探索過程SDL3の間、タイムウィンドウZF8〜ZF11のための本来のデータ伝送が処理される。その際、伝送されるべきメッセージを、メッセージメモリ300のどこにファイルするべきか、又はメッセージメモリ300のどこから読み出すべきかという情報は、中間メモリ600のエレメント“0”参照番号601〜“3”参照番号604から取り出される。これらのエレメントには、それらの情報が第2の探索過程SDL2の間にファイルされている。同様にして、その後の探索過程SDL4〜SDL6が行われ、その際、その時点の通信サイクルKZY(n)の最後の探索過程SDL6の間、メッセージメモリ300は―上記に説明したように―それに続く通信サイクルKZY(n+1)の第1のタイムウィンドウZF1のための適切なメッセージオブジェクトを探索される。
いずれの探索過程SDLも、そのほかのプロセスを割り込ませることができるが、遅くとも第4のタイムウィンドウZFの後は終了しなければならない。この要件が達成不可能な場合は、中間メモリ600を拡大して、例えばエレメントを8個から16個とすることができる。利用できる時間はこれにより、例えばタイムウィンドウ8個に増加する。しかしそれにより、データ伝送システム内の柔軟性が制限される。なぜならば、そうなると、前もって探索された8個のタイムウィンドウのために、再構成が行われるのは、これらのタイムウィンドウのために、本来のデータ伝送が処理されてからにするべきだからである。
ある1つの送信オブジェクトに対し、割り当てられたタイムウィンドウZFの開始時に、メッセージメモリ300から送信ユニットへの転送が開始されると、メッセージオブジェクトがそれまでの間に変化しなかったかどうか、点検される。変化していれば、中間メモリ600内の登録は破棄され、それに対応するメッセージオブジェクトは送信されない。ある1つの受信オブジェクトに対して、割り当てられたタイムウィンドウZF終了時に(次のタイムウィンドウ開始時に)、受信ユニットからの転送が開始されると、中間メモリ内のメッセージオブジェクトが変化していないかどうか、点検される。変化していれば、中間メモリ600内の登録は破棄され、受信されたメッセージは格納されない。データ完全性の点検は、例えばチェックサム形成により、又はそのほか任意の方法(例えばParity−Bit又はCRC)によって行うことができる。
十分な知識を持つ専門家には、本発明を拡大したものとして、本発明の考えを離れることなく実現できるものが、多数得られる。考えられるいくつかの拡大可能性の例を、下記に挙げる。
このデータ伝送システムを運転中に、メッセージメモリ300内のメッセージオブジェクトが再構成される場合、中間メモリ600のその時点のタイムウィンドウ領域ZFi〜ZFi+3に、識別フィールドが合致するかどうか点検される。yesであれば、必要に応じて、対応する中間メモリのエレメント601〜604と601a〜604aとを置き換える。この拡張によって、中間メモリ600の大きさに依存しないで、識別フィールドで確定されているタイムウィンドウZFの開始までに、メッセージオブジェクトを再構成できるようになる。
ここに説明した手順により、通信モジュール100のメッセージメモリ300は、文字通り先見的な方法で、次のタイムウィンドウZFに適合するメッセージオブジェクトを探索される。中間メモリ600にファイルされたポインタ、すなわちメッセージオブジェクトとそのステータスを示すポインタを介して、次のタイムウィンドウZFのために予定されたメッセージオブジェクトに、迅速にアクセスすることができる。従ってタイムウィンドウZFごとに、メッセージメモリ300全体をあらためて探索する必要はなくなる。
ここに説明した探索方法を用いれば、メッセージメモリ300の探索は、通信サイクルKZY(n)あたり必要回数が減少する。これにより、通信モジュール100のリアルタイム性が大きく改善される。
通信モジュール、ならびに同モジュールと通信リンク及びノードとの接続の模式図を示す。 図1に記載する通信モジュールの特別な実施形態とその接続の詳細を示す。 図1又は2に記載する通信モジュールのメッセージメモリの構造詳細図を示す。 データ方向がノードからメッセージメモリに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。 データ方向がノードからメッセージメモリに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。 データ方向がノードからメッセージメモリに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。 データ方向がメッセージメモリからノードに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。 データ方向がメッセージメモリからノードに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。 データ方向がメッセージメモリからノードに向かう場合の、アーキテクチャとデータアクセスプロセスの模式図を示す。 図1又は2に記載する通信モジュールのメッセージアドミニストレータと、その中に含まれる状態オートマトンの模式図を示す。 通信モジュールのいくつかのコンポーネント、ならびにノード、そしてメッセージアドミニストレータによって制御される各データ経路を、模式図として再度示す。 図11に記載のデータ経路に対するアクセス分配を示す。 本発明による通信モジュールの中間メモリを示す。 本発明によるデータ伝送で実行される探索手順のフローチャートを示す。 1つの好ましい実施形態における本発明のデータ伝送手順のフローチャートを示す。

Claims (20)

  1. 指定可能なタイムウィンドウ(ZF)においてメッセージを通信システムの通信リンク(101)を経由して周期的に伝送するメッセージデータ伝送方法であって、
    前記通信リンク(101)を経由して送信及び受信されるメッセージを、まず、通信モジュール(100)のメッセージメモリ(300)に中間格納し、そして、現在のタイムウィンドウ(ZF)において送信又は受信される前記メッセージを、前記メッセージメモリ(300)から取り出して送信するか、又は受信して前記メッセージメモリ(300)にファイルするメッセージデータ伝送方法において、
    前記メッセージメモリ(300)における前記メッセージのポジションを確認するために、前記メッセージメモリは、その都度、後続する複数のタイムウィンドウ(ZF)のために規則的な間隔で前もって探索され、
    前記探索過程の結果として、前記後続する複数のタイムウィンドウ(ZF)で送信又は受信されるメッセージのポジションは、前記メッセージメモリ(300)に割り当てられた中間メモリ(600)にファイルされ、
    前記メッセージメモリ(300)に格納されるメッセージは、
    第1のデータ範囲を含む第1のデータ(KD0、KD1、KDk)と、
    第2のデータ範囲を含む第2のデータ(D0、D1、Dk)と、
    を含み、
    前記第1のデータ(KD0、KD1、KDk)は、前記メッセージメモリ(300)のヘッダセグメント(HS)において、メッセージごとにそれぞれ1つのヘッダ領域(HB0、HB1、HBk)に格納され、
    前記第2のデータ(D0、D1、Dk)は、データセグメント(DS)において、メッセージごとにそれぞれ1つのデータ領域(DB0、DB1、DBk)に格納されることを特徴とする、メッセージデータ伝送方法。
  2. 前記データ伝送の際に、
    前記現在のタイムウィンドウ(ZF)において前記通信システムを経由して伝送されるメッセージは、当該タイムウィンドウ(ZF)のために前記中間メモリ(600)によって指定された前記メッセージメモリ(300)のポジションから読み出されて、前記通信リンク(101)を経由して伝送されるか、又は、
    前記現在のタイムウィンドウ(ZF)において前記通信リンク(101)を経由して伝送されたメッセージは、当該タイムウィンドウ(ZF)のために前記中間メモリ(600)によって指定された前記メッセージメモリ(300)のポジションにファイルされることを特徴とする、請求項1に記載のメッセージデータ伝送方法。
  3. 前記現在のタイムウィンドウ(ZF)及び前記後続する複数のタイムウィンドウ(ZF8〜ZF11)のための前記データ伝送であり、
    この場合、後者のタイムウィンドウのためには前記メッセージメモリ(300)における前記メッセージのポジションが、前記中間メモリ(600)にすでにファイルされており、
    当該データ伝送は、それぞれの前記タイムウィンドウ(ZF8〜ZF11)に到達後において、そのデータ伝送の最後の前記タイムウィンドウ(ZF11)につながるタイムウィンドウ(ZF)及び後続する複数のタイムウィンドウ(ZF12〜ZF15)のための探索過程(SDL3)と、同時に実行されることを特徴とする、請求項1又は2に記載のメッセージデータ伝送方法。
  4. 前記探索過程(SDL)の前記複数のタイムウィンドウの個数が、前記データ伝送(DAT)のための前記複数のタイムウィンドウの個数に等しいことを特徴とする、請求項1〜3のいずれかに記載のメッセージデータ伝送方法。
  5. 前記メッセージメモリ(300)の前記ヘッダ領域(HB0、HB1、HBk)に、メッセージごとに1つの識別文字がファイルされており、
    当該識別文字は、前記各メッセージを識別し、
    当該識別文字によって、前記メッセージを、1つの定められた通信サイクル(KZY)、サイクル(KZY)内の1つの定められたタイムウィンドウ(ZF)、1つのチャネル(CH A、CH B)、又は両チャネル(CH A、CH B)に、割り当てることができることを特徴とする、請求項1に記載のメッセージデータ伝送方法。
  6. 探索過程(SDL)の間に着目され、前記後続する複数のタイムウィンドウ(ZF)の1つで送信又は受信される全てのメッセージのために、前記中間メモリ(600)に2つのフィールド(“ポインタ”、“ステータス”)が予定されており、
    第1のフィールド(“ポインタ”)には、前記メッセージメモリ(300)にファイルされているメッセージの対応するポジションを示すポインタがファイルされ、
    第2のフィールド(“ステータス”)には、前記メッセージメモリ(300)にファイルされているメッセージのステータスがファイルされることを特徴とする、請求項1〜5のいずれかに記載のメッセージデータ伝送方法。
  7. 前記ポインタは、前記ヘッダセグメント(HS)のヘッダ領域(HB0、HB1、HBk)に格納された前記第1のデータ(KD0、KD1、KDk)、すなわち前記メッセージメモリ(300)にファイルされているメッセージの当該第1のデータを示すことを特徴とする、請求項1及び6に記載のメッセージデータ伝送方法。
  8. 前記メッセージメモリ(300)にファイルされているメッセージのステータスとして、前記中間メモリ(600)に情報がファイルされており、
    当該情報は、着目されたタイムウィンドウ(ZF)が受信又は送信されるべきものなのかどうか(‘empty’)、及び/又は、当該メッセージが送信されるべきなのか(‘tx_buf’)もしくは受信されるべきなのか(‘rx_buf’)に関する情報であることを特徴とする、請求項6又は7に記載のメッセージデータ伝送方法。
  9. 前記中間メモリ(600)は、区画されており、
    前記中間メモリ(600)の第1の部分(601〜604)には、前記データ伝送を目的として、前記現在のタイムウィンドウ(ZF)及び前記後続する複数のタイムウィンドウ(ZF8〜ZF11)のための前記メッセージのポジションがファイルされ、その際、前記後続する複数のタイムウィンドウ(ZF8〜ZF11)のための前記メッセージメモリ(300)における前記メッセージのポジションは、前記中間メモリ(600)にすでにファイルされており、
    前記中間メモリ(600)の第2の部分(601a〜604a)には、探索過程(SDL)を目的として、当該データ伝送の前記最後のタイムウィンドウ(ZF11)につながる前記タイムウィンドウ(ZF)及び前記後続する複数のタイムウィンドウ(ZF12〜ZF15)のための前記メッセージのポジションがファイルされることを特徴とする、請求項3〜8のいずれかに記載のメッセージデータ伝送方法。
  10. 前記メッセージメモリ(300)における前記メッセージのポジションを確認するために、前記メッセージメモリは、その都度、後続する4つのタイムウィンドウ(ZF)のために規則的な間隔で前もって探索され、
    探索過程の結果として、前記後続する4つのタイムウィンドウ(ZF)で送信又は受信されるメッセージのポジションが、前記中間メモリ(600)にファイルされることを特徴とする、請求項1〜9のいずれかに記載のメッセージデータ伝送方法。
  11. 前記後続する複数のタイムウィンドウ(ZF)のために前記メッセージメモリ(300)の探索過程を行う際、下記の判定基準の1つ又は複数に従って探索が行われることを特徴とする、請求項1〜10のいずれかに記載のメッセージデータ伝送方法。
    ―前記メッセージメモリ(300)に、着目された伝送チャネル(CH A,CH B)のためのメッセージが格納されているかどうかを確認する。
    ―前記メッセージメモリ(300)に、着目された通信サイクル(KZY)のためのメッセージが格納されているかどうかを確認する。
    ―前記メッセージメモリ(300)に、前記後続する複数のタイムウィンドウ(ZF)のためのメッセージが格納されているかどうかを確認する。
    ―確認されたメッセージが、前記送信又は受信されるべきメッセージであるかどうかを確認する。
  12. 通信リンク(101)とノードとの間に配置され、前記ノードから前記通信リンク(101)を経由して伝送されるべきメッセージ、又は、前記ノードのために前記通信リンク(101)を経由して受信されたメッセージを中間格納するためのメッセージメモリ(300)を備え、指定可能なタイムウィンドウでメッセージを周期的に伝送するために形成された通信モジュール(100)において、
    前記通信モジュール(100)は、
    前記メッセージメモリ(300)における前記メッセージのポジションを確認するために、前記メッセージメモリ(300)を、その都度、後続する複数のタイムウィンドウのために規則的な間隔で前もって探索する手段と、
    前記メッセージメモリ(300)に割り当てられた中間メモリと、
    探索の結果として、前記後続する複数のタイムウィンドウで送信又は受信されるべき前記メッセージのポジションを、前記中間メモリ(600)にファイルする手段と、
    を備え、
    前記メッセージメモリ(300)に格納されるメッセージは、
    第1のデータ範囲を含む第1のデータ(KD0、KD1、KDk)と、
    第2のデータ範囲を含む第2のデータ(D0、D1、Dk)と、
    を含み、
    前記第1のデータ(KD0、KD1、KDk)は、前記メッセージメモリ(300)のヘッダセグメント(HS)において、メッセージごとにそれぞれ1つのヘッダ領域(HB0、HB1、HBk)に格納され、
    前記第2のデータ(D0、D1、Dk)は、データセグメント(DS)において、メッセージごとにそれぞれ1つのデータ領域(DB0、DB1、DBk)に格納されることを特徴とする、通信モジュール。
  13. 前記メッセージメモリ(300)を探索する前記手段と、確認されたメッセージのポジションを前記中間メモリ(600)にファイルする前記手段とが、状態オートマトン(504)として形成されていることを特徴とする、請求項12に記載の通信モジュール(100)。
  14. 前記通信モジュール(100)が、FlexRay仕様書に従って伝送されたメッセージを受信、送信、及び中間格納するFlexRay通信モジュールとして形成されていることを特徴とする、請求項12又は13に記載の通信モジュール(100)。
  15. 前記メッセージメモリ(300)を探索する前記手段と、確認されたメッセージのポジションを前記中間メモリ(600)にファイルする前記手段とが、請求項2〜11のいずれかに記載の方法を実行するために形成されていることを特徴とする、請求項12〜14のいずれかに記載の通信モジュール(100)。
  16. ノード(102)と、少なくとも1つの他のノードと、前記ノード(102)に接続された1つの通信リンク(101)と、前記通信リンク(101)と前記ノード(102)との間に配置され、前記ノード(102)から前記通信リンク(101)を経由して伝送されるメッセージ、又は、前記ノード(102)のために前記通信リンク(101)を経由して受信されたメッセージを中間格納するメッセージメモリ(300)を備える通信モジュール(100)と、を含み、指定可能なタイムウィンドウにおいてメッセージを周期的に伝送するために形成された通信システムの前記ノード(102)において、
    前記通信モジュール(100)は、前記メッセージメモリ(300)における前記メッセージのポジションを確認するために、前記メッセージメモリ(300)を、その都度、後続する複数のタイムウィンドウ(ZF)のために規則的な間隔で前もって探索する手段と、
    前記メッセージメモリ(300)に割り当てられた中間メモリ(600)と、
    探索過程(SDL)の結果として、前記後続する複数のタイムウィンドウにおいて送信又は受信される前記メッセージのポジションを、前記中間メモリ(600)にファイルする手段と
    を備え、
    前記メッセージメモリ(300)に格納されるメッセージは、
    第1のデータ範囲を含む第1のデータ(KD0、KD1、KDk)と、
    第2のデータ範囲を含む第2のデータ(D0、D1、Dk)と、
    を含み、
    前記第1のデータ(KD0、KD1、KDk)は、前記メッセージメモリ(300)のヘッダセグメント(HS)において、メッセージごとにそれぞれ1つのヘッダ領域(HB0、HB1、HBk)に格納され、
    前記第2のデータ(D0、D1、Dk)は、データセグメント(DS)において、メッセージごとにそれぞれ1つのデータ領域(DB0、DB1、DBk)に格納されることを特徴とする、通信システムのノード。
  17. 前記ノード(102)は、ホストコンピュータを含み、
    前記ホストコンピュータは、前記通信モジュール(100)とともに、1つの共通な半導体エレメントに組み込まれていることを特徴とする、請求項16に記載の通信システムのノード(102)。
  18. 通前記信モジュール(100)が、請求項13〜15のいずれかに従って形成されていることを特徴とする、請求項16又は17に記載の通信システムのノード(102)。
  19. 通信リンク(101)に接続された複数のノード(102)と、前記通信リンク(101)と少なくとも1つの前記ノード(102)との間に配置され、少なくとも1つの前記ノード(102)から前記通信リンク(101)を経由して伝送されるメッセージ、又は、前記少なくとも1つのノード(102)のために前記通信リンク(102)を経由して受信されたメッセージを中間格納するためのメッセージメモリ(300)を備えた通信モジュール(100)と、を含み、指定可能なタイムウィンドウ(ZF)においてメッセージを周期的に伝送するために形成された通信システムにおいて、
    前記通信モジュール(100)は、前記メッセージメモリ(300)における前記メッセージのポジションを確認するために、前記メッセージメモリ(100)を、その都度、後続する複数のタイムウィンドウ(ZF)のために規則的な間隔で前もって探索する手段と、
    前記メッセージメモリ(300)に割り当てられた中間メモリ(600)と、
    探索過程の結果として、前記後続する複数のタイムウィンドウ(ZF)において送信又は受信される前記メッセージのポジションを、前記中間メモリ(600)にファイルする手段と、を備え、
    前記メッセージメモリ(300)に格納されるメッセージは、
    第1のデータ範囲を含む第1のデータ(KD0、KD1、KDk)と、
    第2のデータ範囲を含む第2のデータ(D0、D1、Dk)と、
    を含み、
    前記第1のデータ(KD0、KD1、KDk)は、前記メッセージメモリ(300)のヘッダセグメント(HS)において、メッセージごとにそれぞれ1つのヘッダ領域(HB0、HB1、HBk)に格納され、
    前記第2のデータ(D0、D1、Dk)は、データセグメント(DS)において、メッセージごとにそれぞれ1つのデータ領域(DB0、DB1、DBk)に格納されることを特徴とする、通信システム。
  20. 前記通信モジュール(100)が、請求項14〜16のいずれかに従って形成されていることを特徴とする、請求項19に記載の通信システム。
JP2007552647A 2005-01-31 2006-01-26 通信システム及び通信モジュールの通信リンクや通信システムのノードを経由してメッセージのデータを伝送する方法と、この方法を実現するための通信システム。 Expired - Fee Related JP4740261B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102005004464.6 2005-01-31
DE102005004464A DE102005004464A1 (de) 2005-01-31 2005-01-31 Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher
PCT/EP2006/050477 WO2006079651A1 (de) 2005-01-31 2006-01-26 Verfahren zum übertragen von daten in botschaften über eine kommunikationsverbindung eines kommunikationssystems, sowie kommunikationsbaustein, teilnehmer eines kommunikationssystems und kommunikationssystem zur realisierung dieses verfahrens

Publications (2)

Publication Number Publication Date
JP2008529374A JP2008529374A (ja) 2008-07-31
JP4740261B2 true JP4740261B2 (ja) 2011-08-03

Family

ID=36180383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007552647A Expired - Fee Related JP4740261B2 (ja) 2005-01-31 2006-01-26 通信システム及び通信モジュールの通信リンクや通信システムのノードを経由してメッセージのデータを伝送する方法と、この方法を実現するための通信システム。

Country Status (10)

Country Link
US (1) US7801131B2 (ja)
EP (1) EP1846827B1 (ja)
JP (1) JP4740261B2 (ja)
KR (1) KR101172103B1 (ja)
CN (1) CN101111826B (ja)
AT (1) ATE483201T1 (ja)
DE (2) DE102005004464A1 (ja)
ES (1) ES2353810T3 (ja)
RU (1) RU2401452C2 (ja)
WO (1) WO2006079651A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501583A (ja) * 2003-05-21 2007-01-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 通信プロトコルに関するメッセージメモリ及び方法
DE602004027024D1 (de) * 2004-08-05 2010-06-17 Bosch Gmbh Robert Kommunikationskontrolleur für FlexRay-Netze
DE102005018837A1 (de) * 2005-04-22 2006-10-26 Robert Bosch Gmbh Verfahren und Vorrichtung zur Synchronisation zweier Bussysteme sowie Anordnung aus zwei Bussystemen
DE102005048582A1 (de) * 2005-10-06 2007-04-12 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay-Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
EP1998498B1 (de) * 2007-05-26 2018-01-03 Vector Informatik GmbH Testvorrichtung und Testverfahren
WO2012006311A1 (en) 2010-07-07 2012-01-12 Huawei Technologies Co., Ltd. Deterministic placement of timestamp packets using a periodic gap
JP2012080379A (ja) * 2010-10-04 2012-04-19 Renesas Electronics Corp 半導体データ処理装置及びデータ処理システム
US8761190B2 (en) * 2011-01-06 2014-06-24 GM Global Technology Operations LLC Message loss prevention by using sender and receiver buffers in event-triggered distributed embedded real-time systems
US8670314B2 (en) * 2011-01-06 2014-03-11 GM Global Technology Operations LLC Message loss prevention by using sender buffer and traffic shaping in event-triggered distributed embedded real-time systems
EP2597832B1 (en) * 2011-11-02 2016-12-28 Renesas Electronics Europe Limited Message buffer controller
CN103259655B (zh) * 2012-05-07 2016-03-16 中国交通通信信息中心 一种基于卫星通信业务的用户管理系统
DE102013217595A1 (de) * 2013-09-04 2015-03-05 Robert Bosch Gmbh Bereitstellung unterschiedlicher Datenübertragungsraten und Redundanz durch gemeinsame und getrennte Nutzung von physikalischen Übertragungskanälen im Kraftfahrzeug
US10579607B2 (en) * 2017-04-28 2020-03-03 Splunk Inc. Single point of dispatch for hybrid cloud deployment for indexer clusters
WO2019232482A1 (en) * 2018-05-31 2019-12-05 Synaptics Incorporated Low power, high bandwidth, low latency data bus
EP3790232A1 (en) 2019-09-09 2021-03-10 TTTech Computertechnik Aktiengesellschaft Method for generating a schedule for mixed critical computer networks
EP4002770B1 (en) * 2020-11-16 2024-04-03 Ratier-Figeac SAS Serial time triggered data bus
CN112769661B (zh) * 2020-12-29 2022-07-29 北京航天自动控制研究所 一种高速时分复用通信总线时隙分配与控制方法
KR20220128094A (ko) * 2021-03-12 2022-09-20 주식회사 에이치엘클레무브 차량 통신 제어 장치 및 제어 방법
TWI789103B (zh) * 2021-11-08 2023-01-01 旺宏電子股份有限公司 記憶體裝置及其操作方法
US11776618B2 (en) 2021-11-08 2023-10-03 Macronix International Co., Ltd. Memory device with in-memory searching array and operation method thereof for implementing finite state machine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884040A (en) * 1995-01-11 1999-03-16 Sony Corporation Per-packet jamming in a multi-port bridge for a local area network
JP2000244548A (ja) * 1999-02-18 2000-09-08 Nippon Soken Inc データ中継装置および多重通信システム
WO2004098955A1 (en) * 2003-05-06 2004-11-18 Philips Intellectual Property & Standards Gmbh Timeslot sharing over different cycles in tdma bus

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3908092A (en) * 1973-12-21 1975-09-23 Bell Telephone Labor Inc Program controlled time division switching systems
US4521880A (en) * 1983-12-06 1985-06-04 At&T Bell Laboratories Time-slot interchanger for fast circuit switching
US6311212B1 (en) * 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
JP4319268B2 (ja) * 1998-08-07 2009-08-26 富士通株式会社 動画像復号方法及び装置
AU2322900A (en) * 1999-01-29 2000-08-18 Degitaldesign, ltd. Data transmission method, computer-readable medium, and data transmission apparatus
DE10215719A1 (de) * 2002-04-10 2003-10-30 Philips Intellectual Property Datenspeicher
US7272853B2 (en) 2003-06-04 2007-09-18 Microsoft Corporation Origination/destination features and lists for spam prevention
US7398338B2 (en) * 2004-06-30 2008-07-08 Sap Ag Flexible and error resistant data buffering and connectivity

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884040A (en) * 1995-01-11 1999-03-16 Sony Corporation Per-packet jamming in a multi-port bridge for a local area network
JP2000244548A (ja) * 1999-02-18 2000-09-08 Nippon Soken Inc データ中継装置および多重通信システム
WO2004098955A1 (en) * 2003-05-06 2004-11-18 Philips Intellectual Property & Standards Gmbh Timeslot sharing over different cycles in tdma bus

Also Published As

Publication number Publication date
KR20070114714A (ko) 2007-12-04
WO2006079651A1 (de) 2006-08-03
CN101111826B (zh) 2010-06-09
RU2007132705A (ru) 2009-07-27
ATE483201T1 (de) 2010-10-15
US20080137679A1 (en) 2008-06-12
JP2008529374A (ja) 2008-07-31
RU2401452C2 (ru) 2010-10-10
EP1846827A1 (de) 2007-10-24
CN101111826A (zh) 2008-01-23
DE102005004464A1 (de) 2006-10-26
KR101172103B1 (ko) 2012-08-09
US7801131B2 (en) 2010-09-21
ES2353810T3 (es) 2011-03-07
DE502006007959D1 (de) 2010-11-11
EP1846827B1 (de) 2010-09-29

Similar Documents

Publication Publication Date Title
JP4740261B2 (ja) 通信システム及び通信モジュールの通信リンクや通信システムのノードを経由してメッセージのデータを伝送する方法と、この方法を実現するための通信システム。
KR101028898B1 (ko) 플렉스레이 통신 장치
KR100970300B1 (ko) 통신 모듈의 메시지 메모리의 데이터를 액세스하기 위한 방법 및 장치
KR100981461B1 (ko) 통신 칩 및 메시지 관리자에 의한 통신 칩의 메시지 메모리의 데이터에 대한 액세스 제어 방법
US8792508B2 (en) Subscriber and communication controller of a communication system and method for implementing a gateway functionality in a subscriber of a communication system
US20100161834A1 (en) User interface between a microcontroller and a flexray communications module; flexray user; and method for transmitting messages via such an interface
KR100977897B1 (ko) 메시지 메모리 내에서 메시지를 저장하기 위한 방법 및상응하는 메시지 메모리
JP4903801B2 (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
US20090300254A1 (en) Method for Connecting a Flexray user having a Microcontroller to a Flexray Communications line Via a Flexray Communications Control Device, and Flexray Communications Control Device, Flexray User, and Flexray Communications System for Realizing this Method
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110428

R150 Certificate of patent or registration of utility model

Ref document number: 4740261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees