図1は、第1の実施形態に係るバスインタフェースユニット100を示している。バスインタフェースユニット100は、バスシステム10を介してデータを交換する役目を果たす。このようにして、例えば、外部ユニット2000は、バスインタフェースユニット100を利用して、バスシステム10を介してデータを伝送する(受信及び/又は送信する)。本発明の主題ではない外部ユニットは、例えば、特に車両の、制御装置(図示せず)の演算ユニットであってもよく、又は、他の装置へのデータ転送のため又は複数の装置間のデータ交換のために設けられたゲートウェイ装置等であってもよい。
本発明に基づいて、バスインタフェースユニット100は、バス制御ユニット110を有し、このバス制御ユニット110は、バスシステム10への接続のために設けられ、「バスコントローラ」とも呼ばれる。本発明に基づいて、バスインタフェースユニット100はさらに、バス制御ユニット110とは異なる制御ユニット120を有し、この制御ユニット120は、バス制御ユニット110を介してバスシステム10から受信されたデータ及び/又は当該データに由来するデータを、外部ユニット2000へと出力し、及び/又は、外部ユニット2000から獲得されたデータ及び/または当該データに由来するデータを、バス制御ユニット110を介してバスシステム10に出力するよう構成される。
これに関して、図6は、本発明に係る方法の一実施形態に係る簡略化されたフロー図を概略的に示している。工程200において、バス制御ユニット110(図1)は、バスシステム10の他のバス加入者(図示せず)から送信されたデータを、バスシステム10を介して受信する。工程210(図6)において、制御ユニット120は、工程200で受信されたデータを外部ユニット2000へと出力する。
一実施形態において、制御ユニット120又は一般にバスインタフェースユニット100と、外部ユニット2000と、の間の対応するデータ接続DVは、1つ以上の(専用)データ線、又は、アドレスバス及び/データバスを含み、従って、構成要素120又は100と、構成要素2000と、の間の効率の良い高性能のデータ交換が可能である。
更なる別の実施形態において、制御ユニット120、好適にバスインタフェースユニット100全体が、ハードウェアを利用して又はハードウェアの形態により実現され、特に、特定用途向け集積回路(ASIC)若しくはプログラム可能な論理回路(FPGA)として、又は、特定用途向け集積回路(ASIC)の一部若しくはプログラム可能な論理回路(FPGA)の一部として実現される。この場合には、データ処理時間が特に短くなり、特に、本発明に係る制御ユニット120又はバスインタフェースユニット100によるデータの加工時間又は処理時間が予測可能になり、外部ユニット2000内でのデータの更なる高性能処理に良い影響が与えられる。例えば、バス制御ユニット110の機能は、制御ユニット120の機能と同一のFPGAで実現されてもよい。更なる別の実施形態において、構成要素110、120又は一般に構成要素100の機能は、例えば、外部ユニット200と同一のFPGAに組み込まれてもよい。
図2は、第2の実施形態に係るバスインタフェースユニット100aを示している。バスインタフェースユニット100aは、CANバスとして構成されたバスシステム10aに接続され、バス制御ユニット110aを介してCANバス10aから受信されたデータ及び/又は当該データに由来するデータを、外部ユニット2000へと出力し、及び/又は、外部ユニット2000から獲得されたデータ及び/又は当該データに由来するデータを、バス制御ユニット110aを介してCANバス10aへと出力するよう構成される。バスインタフェースユニット100aと外部ユニット2000との間のデータ交換は、図2では、複数の矢印1228又はブロック矢印111’、117a’、1288で示され、以下で詳細に記載される。
バスインタフェースユニット100aのバス制御ユニット110aは、ここでは、先に既に述べたロバートボッシュ社の「M_CAN IPモジュール」であって、CANバスシステム10a上で規格ISO11898−1に準拠した通信を実行するよう構成された上記「M_CAN IPモジュール」に基づいて実現されている。代替的に、他のCANコントローラ110aが利用されてもよい。M_CAN IPモジュールの機能、特にバスインタフェースユニット100a全体の機能は、特に好適に、FPGA(field programmable gate array、プログラム可能な論理モジュール)F1の一部という形態により実現され、その際に、FPGA F1は、ここでは、少なくとも部分的に外部ユニット2000の機能も実現する。このことは、図2では、ユニット100a、2000を囲む符号F1が付いた点線によって示されている。バスインタフェースユニット100aと外部ユニット2000とを同一のFPGA F1に組み込むことによって、ユニット100a、2000間の特に効率が良いデータ伝送の可能性が生まれる。というのは、例えば、FPGA内部のバス又はデータ伝送システムにアクセス出来るからである。製造業者であるアルテラ(Altera)社のFPGAの場合には、例えば、アルテラ(Altera)FPGAの所謂アバロン(Avalon)インタフェースにアクセスすることが可能であり、このアバロンインタフェースによって、同一のFPGA F1内に配置された複数の構成要素又はユニットの効率の良いデータ接続が可能となる。特に好適に、FPGA F1の場合は、ユニットの100a、2000の構成要素間のデータ接続を確立するために、例えば「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースが利用可能である。
図2で示される構成では、本発明に係る制御ユニット120aの機能(図1の符号120も参照)は、複数の機能ブロックに分散され、即ち基本的に機能ブロック122a、124a、126a、128aに分散されるが、このことについては以下で詳細に解説する。
有利な実施形態において、第1の機能ブロック122aが設けられ、この第1の機能ブロック122aは、「ホストサービス」とも呼ばれ、バスインタフェースユニット100aの駆動を制御するよう構成される。特に、第1の機能ブロック122aは、外部ユニット2000から制御データ及び/又は設定データを受信するよう構成可能であり、これにより、本発明に係る制御ユニット120aは、特に、外部ユニット2000の更なる駆動に依存せずに又は当該駆動とは無関係に、制御データ及び/又は設定データをバス制御ユニット110aに直接的に供給できるようになる。このようにして、制御データ及び/又は設定データは、例えば、当該制御データ及び/又は設定データの転送がCANバス10aを介するデータ通信に特にさほど悪影響を与えない駆動状態において、バス制御ユニット110aに供給されうる。
上記の制御データは、一実施形態によれば、例えば、バス制御ユニット110aの始動又は起動/停止を開始し及び/又はそれ以外のバス制御ユニット110aの駆動状態間の変更を開始する制御命令を含んでもよい。
図3aは、図2のバスインタフェースユニット100aの一観点を概略的に示している。ここでは、「ホストサービス」とも呼ばれる第1の機能ブロック122aが示されている。
有利な実施形態において、第1の機能ブロック122a内には、例えば状態オートマトン1220a(有限オートマトン、(FSM:finite state machine、有限状態機械))が実現されてもよく、この状態オートマトン1220aは、バスインタフェースユニット100aの様々な駆動状態を表し、それ自体は公知のやり方で駆動状態の遷移を制御し又は上記の制御データ及び/又は設定データを制御しながら上記駆動状態を遷移させる。
例えば、状態オートマトン1220aは、一実施形態によれば、3つの状態、即ち、「デフォルト(Default)」、「レディ(Ready)」、「ランニング(Running)」という状態を有し、その際、例えば、状態オートマトン1220a又は第1の機能ブロック122aの作動後には、第1の状態「デフォルト」となる。例えば、状態オートマトン1220aは、バス制御ユニット110a(図2)が初期化され又はリセットされることによって、第1の状態「デフォルト」から第2の状態「レディ」となり、このことは、外部ユニット2000から制御ユニット120a又は第1の機能ブロック122aへの対応する制御データの送信により可能である。同様に外部ユニット2000から制御ユニット120a又は第1の機能ブロック122aへと伝送可能な開始命令によって、状態オートマトン1220aは、最終的に、第2の状態「レディ」から第3の状態「ランニング」になる。これと同様に、状態オートマトン1220aは、同様に外部ユニット2000から制御ユニット120a又は第1の機能ブロック122aへと伝送可能な停止命令によって、第3の状態「ランニング」から第1の状態「デフォルト」になる。
追加的に、駆動状態「レディ」及び/又は「ランニング」において、(例えば、CANバス10aへのアクセスのためのバスタイミングの調整のために)バス制御ユニット110aの設定データが変更され、及び/又は、(例えば、ユニット100a、2000間のデータ経路の設定のために)バスインタフェースユニット100a全体の設定データが変更されることが構想される。これに関連して、制御ユニット120aは、対応する制御データ及び/又は設定データを、例えば外部データ2000から獲得することが可能である。
一実施形態において、バス制御ユニット110aは、第3の駆動状態「ランニング」において、CANバス10a上でデータ通信に関してアクティブであり、CANメッセージを受信及び/又は送信することが可能である。
例えば、制御ユニット120aは、一実施形態によれば、上記の「M_CAN IPモジュール」に基づきCANバス制御ユニット110aが構成される際には、例えば、外部ユニット2000から獲得された制御データ及び/又は設定データを、CANバス制御ユニット110a又はCANバス制御ユニット110aのレジスタに書き込むために、M_CAN IPモジュールのメモリレジスタ又は設定レジスタにアクセスするよう構成されうる。
更なる別の有利な実施形態において、図3aに係る第1の機能ブロック122a内に、いわゆるホストサービスハンドラ1222aが設けられてもよく、このホストサービスハンドラ1222aは、以下の機能の1つ以上を提供するよう構成され、即ち、外部ユニット2000へのデータ接続1224、CANバス制御ユニット110aへのデータ接続1226、割り込みコントローラ1228、CANバス制御ユニット110aの内部構成要素への直接的なデータ接続1230、制御情報のシグナリングのためのデータ接続1232、のうちの1つ以上の機能を提供するよう構成される。
有利な実施形態において、外部ユニット2000へのデータ接続1224は、例えば、1つ以上のFPGA内部のデータ接続を含んでもよく、例えば、アルテラFPGA F1(図2)の場合には、1つ以上のこのようなアバロンインタフェース、例えば、「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースを含んでもよい。
有利な実施形態において、CANバス制御ユニット110aへのデータ接続1226、特に、M_CAN IPモジュールのAEIインタフェースAEI(図2参照)へのデータ接続1226は、M_CAN IPモジュールのM_CANマルチプレクサへの接続線を含んでもよい。更なる別の有利な実施形態において、割り込みコントローラ1228の機能には、外部ユニット2000への割り込み(「割り込み要求」)信号の出力が含まれてもよい。更なる別の有利な実施形態において、CANバス制御ユニット110aの内部の構成要素への直接的なデータ接続1230は、いわゆるボンドアウト(BondOuts)を介して実現されてもよく、即ち、CANバス制御ユニット110aから、又はCANバス制御ユニット110aの機能を実装する装置(ハードウェア、特に、既存のASIC及び/又はIC及び/又はFPGAが考えられる)からの直接的な信号の案内を介して実現されてもよい。更なる別の有利な実施形態において、状態情報のシグナリングのためのデータ接続1232は、例えばシグナリング装置(例えば、発光ダイオードのような視覚警報)に対して又は外部ユニット2000に対して直接的に作用してもよい。
図3bは、図2に係るバスインタフェースユニット100aの更なる別の観点を概略的に示している。ここでは、状態及びイベントサーバ(SES)が示され、図3bでは第2の機能ブロック124aにより表されている。
SES124aがあるために、バスインタフェースユニット100aは、一実施形態によれば、バス制御ユニット110aから、当該バス制御ユニット110a(図2)の駆動状態を特徴付ける情報を受信し、バス制御ユニット110aの駆動状態を特徴付ける情報を少なくとも部分的に外部ユニット2000に出力するよう構成され、その際に、バス制御ユニット110a(図2)の駆動状態を特徴付ける情報は、特に制御ユニット120aに、ここでは特にSES124aに一時的に格納される。
これに関して、SES124aは、一実施形態によれば状態及びイベントハンドラ(略称「SEH」)1240aを有し、この状態及びイベントハンドラSEH1240aは、データ線1244を介して、バス制御ユニット110aの駆動状態を特徴付ける情報、特にCANバスコントローラ110aの状態情報及びイベント情報を、バスコントローラ110aから受信する。更なる別の有利な実施形態において、CANバス制御ユニット110aの内部構成要素に直接通ずるデータ接続1244は、上記のデータ接続1230と同様に、BondOutを介して実現されうる。
更なる別の有利な実施形態において、SEH1240aは、バス制御ユニット110aのイベント、及び、状態変更を受信し、評価し、特にフィルタに掛けるよう構成されてもよい。SEH1240aはさらに、この評価及び/又はフィルタリングに従って、例えば上記評価及び/又はフィルタリングについて又は一般にCANコントローラ110aの状態情報及びイベント情報について外部ユニット2000に報知するために、外部ユニット2000へのデータ伝送を実施し、又は促してもよい。外部ユニット2000へのデータ接続は、例えば、バスインタフェース1246を介して実現可能である。有利な実施形態において、外部ユニット2000へのデータインタフェース1246は、例えば、1つ以上のFPGA内部のデータ接続を含んでもよく、例えば、アルテラFPGA F1(図2)の場合には、1つ以上の所謂アバロンインタフェースを含んでもよく、例えば、第1の(「ホストサービス」)機能ブロック122aと外部ユニット2000との間のデータインタフェース1224と比較可能な「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースを含んでもよい。直接的なデータ接続1246によって、外部ユニット2000へと送信されるデータは特に効率良く、特に、例えばポーリングの仕組み等のソフトウェアで制御される過程無しに、外部ユニット2000へと伝送される。むしろ、ユニット100aがハードウェアで又はFPGA F1の機能により実現される場合には、好適に純粋にハードウェアに基づく高性能のデータ通信が行われ、当該データ通信の個々の処理過程は特に決定論的でもあり、即ち期間が予め予測可能である。
更なる別の実施形態において、SES124aは、図3bでは機能ブロック1242aで示される、いわゆるSES入力コーディネータ(「イングレスハンドラ」)も有してもよく、このSES入力コーディネータ1242aは、外部ユニット2000への(固有の)データ接続1248を有する。好適な実施形態において、SES入力コーディネータ1242aは、1つ又は複数のデータセグメント、特に一定の長さのデータセグメントの形態によりデータを外部ユニット2000と交換するよう構成されることが構想される。これにより、外部ユニット2000内でのデータセグメントの決定論的な移動時間又は加工時間が可能である。SES入力コーディネータ1242aはさらに、例えば、上記のCANバスコントローラ110aの状態情報及びイベント情報又は当該データに由来するデータを、SEH1240aから外部ユニット2000へと伝送するために、SEH1240aにより自身に宛てられたデータ伝送要求の調停を行うよう構成されてよい。
特に、SES124aは、一実施形態において、データ接続1246を介して外部ユニット2000へとデータを伝送してもよいこと、及び/又は、SES入力コーディネータ1242aのデータ接続線1248を介して外部ユニット2000へとデータを伝送してもよいことが有利であり、その際に、データ接続1248を介するデータ伝送は、特に、一定の長さのデータセグメントの形態により行われる。
図3cは、図2に係るバスインタフェースユニット100aの更なる別の観点を示している。ここでは、受信待ち行列プロセッサ(略称「RQP」)126aが示されている。受信待ち行列プロセッサ126aは、入力バッファコーディネータ(略称「RFH」)1260aを有する。さらに、RQP126aは、一実施形態によれば、局所的なバッファメモリ1262aを有する。さらに、RQP126aは、一実施形態によれば、局所的な入力コーディネータ1264aを有する。
RFH1260aは、一実施形態によれば、バス制御ユニット110aによりCANバス10aから受信されたデータ又は当該データに由来するデータを受け取るよう構成されたデータ接続線1266を有する。CANバス10aから受信される他の送信者(図示されない他のバス加入者)のデーダの他に、バス制御ユニット110aによりCANバス10aへと送信されると共にバス制御ユニット110aにより再び受信される(「自受信(self−reception))データが関わっていてもよい。効率の良い高性能のシーケンス制御のために、RFH1260aは、一実施形態において、CANバス制御ユニット110aへの直接的なデータ接続線1268を有してもよく、例えば、BondOutsを利用して実現されてもよい。
RFH1260aは、更なる別の実施形態によれば、外部ユニット2000とのデータ交換を可能にするよう構成されたデータ接続線1269aを有する。有利な実施形態において、外部ユニット2000へのデータ接続線1269aは、例えば、1つ以上のFPGA内部のデータ接続を含んでもよく、例えば、アルテラFPGA F1(図2)の場合には、1つ以上の所謂アバロンインタフェース、例えば、上記のデータインタフェース1224又は1246と比較可能な「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースを含んでもよい。
RQP126aが局所的な入力コーディネータ(イングレスハンドラ)1264aを有する実施形態において、この局所的な入力コーディネータ1264aは、外部ユニット2000への(固有の)データ接続線1269bを有してもよい。有利な実施形態において、局所的な入力コーディネータ1264aは、1つ以上のデータセグメント、特に一定の長さのデータセグメントの形態によりデータを外部ユニット2000と交換するよう構成されることが構想される。これにより、外部ユニット2000内でのデータセグメントの決定論的な移動時間又は加工時間が可能である。局所的な入力コーディネータ1264aはさらに、例えば、上記の受信されたCANメッセージ若しくはデータ、又は当該データに由来するデータを、RFH1260aから外部ユニット2000へと伝送するために、RFH1260aにより自身へと宛てられたデータ伝送要求の調停を行うよう構成されてもよい。
一実施形態によれば、受信待ち行列プロセッサ(RQP)126aは、外部ユニット2000へとCANメッセージを伝送すべき場合には、以下の工程を実施するよう構成され、即ち、バス制御ユニット110aのメモリ118a(図2)から局所的なバッファメモリ1262aへとCANメッセージをロードし、即ち好適にはCANメッセージ全体(ヘッダデータ(「ヘッダ」)及びユーザデータ(「ペイロード」))をロードする工程と、好適に、局所的な入力コーディネータ1264aを制御し、外部ユニット2000への局所的な入力コーディネータ1264aのデータ接続1269bを利用して、局所的なバッファメモリ1262aから外部ユニット2000へのCANメッセージのデータ伝送を促す工程と、を実施するよう構成される。
一実施形態によれば、バス制御ユニット110aのメモリ118aは、外部メモリとして実現されてもよい(図2のブロック118a参照)。特に、メモリ118aは、デュアルポートメモリとして、有利に、例えば32ビット又は64ビットのデータバス幅を有するデュアルポートRAM(random access memory)として構成されてもよい。
図3dは、図2に係るバスインタフェースユニット100aの更なる別の観点を示している。ここでは、送信待ち行列プロセッサ128a(略称「TQP」128a)が示されている。送信待ち行列プロセッサ128aは、出力バッファコーディネータ(略称「TQH」)1280aを有する。さらに、TQP128aは、一実施形態によれば、局所的な出力コーディネータ1282aを有する。TQH1280aは、一実施形態によれば、バス制御ユニット110aへの直接的なデータ接続1284を有し、このデータ接続1284によって、TQH1280aは、バス制御ユニット110aの制御データ及び/又は設定データの制御又は変更、又は、バス制御ユニット110aの制御レジスタ及び/又は設定レジスタの制御又は変更が可能になる。これにより、TQH1280aは、例えば、バス制御ユニット110aの送信待ち行列も管理し、又は、バス制御ユニット110aによる送信待ち行列の加工に影響を与えることが可能である。バス制御ユニット110aの「自受信」機能も、データ接続線1284があるために、TQH1280aによって制御されうる。TQH1280aを設けることによって、幾つかの適用ケースでは、バス制御ユニット110aに組み込まれた送信待ち行列プロセッサを使用しなくてもよく、むしろ、制御はTQH1280a自身によって行われうる。
TQP128aの局所的な出力コーディネータ1282aは、データ接続1286を介して、バス制御ユニット110aのメモリ118aと接続可能であり、従って、局所的な出力コーディネータ1282aは、バス制御ユニット110aによりCANメッセージの形態でCANバス10aへと送信されるデータを、上記データ接続1286を介してメモリ118aに書き込むことが可能である。バス制御ユニット110aは、それ自体は公知のやり方で、このようなデータをメモリ118aから取り出し、CANバス10a上で送信することが可能である。
TQP128aの局所的な出力コーディネータ1282aは、さらに、データ接続1288を介して外部ユニット2000と接続可能であり、このデータ接続1288を介して、局所的な出力コーディネータ1282aは、例えば一定の長さのデータセグメントの形態で、バス制御ユニット110aを介してCANメッセージの形態でCANバス10aと送信すべきデータを、外部ユニット2000から受信することが可能である。
好適な実施形態において、送信待ち行列プロセッサ(TQP)128aは、外部ユニット2000からデータ接続線1288を介して獲得されたデータを、好適に実時間で、例えばヘッダデータの適合によってCANメッセージへと変換し、このように生成されたCANメッセージを、特にデータ接続1286を介してメモリ118aに書き込むよう構成される。これに関して、データ接続1286は好適に以下の特徴を有し、即ち、クロックサイクル(clock cycle)ごとに64ビットのデータスループット、及び/又は、メモリ118aへのメモリアクセスの際の可能な限り高い優先度、及び/又は、1クロックサイクル内でのメモリアクセスのための調停という特徴を有する。
更なる別の実施形態において、TQP128aは、CANバス10aを介した送信のために行列待ちしているCANメッセージを、全ての必要な処理工程(例えば、バス制御ユニット110aによる送信、「自受信」の終了、受信待ち行列プロセッサ(RQP)126aによる肯定応答)が終わるまで、(例えば上書きを防止するために)メモリ118a内でブロックするよう構成されてもよい。
バスインタフェースユニット100aの更なる別の実施形態において、MCANマルチプレクサ112a(図2)が設けられてもよく、このMCANマルチプレクサ112aを介して、ホストサービスとも呼ばれる第1の機能ブロック122aが、そのデータ線1226を利用して、バス制御ユニット110aと、特にそのAEIインタフェースと接続可能である。
バスインタフェースユニット100aの更なる別の実施形態において、第1の調停ユニット114aが設けられてもよく、この第1の調停ユニット114aは、AEIMインタフェースを介してバス制御ユニット110aと接続可能であり、さらにメモリ118aと接続されている。従ってバス制御ユニット110aは、第1の調停ユニット114aを介して外部メモリ118aにアクセスすることが可能である。さらに、詳細には示されない更なる別のデータ接続が、構成要素112a、114a間に設けられてもよい。
バスインタフェースユニット100aの更なる別の実施形態において、構成要素126a、128aによる(そのデータ接続1266、1286を介した)メモリ118aへのアクセスを制御する第2の調停ユニット116aが設けられてもよい。その際に、第2の調停ユニット116aは、例えば、好適にデュアルポートRAMとして実現されたメモリ118aの第2の接続部(ポート)に接続されるが、第1の調停ユニット114aは、メモリ118aの第1のポートに接続される。このようにして、以下の構成要素群、即ち、第1群(110a、122a)、第2群(126a、128a)のメンバによるメモリ118aへの同時アクセスが行われる。
バスインタフェースユニット100aの更なる別の実施形態において、構成要素124a、126aによる(そのデータ接続1248、1269aを介した)外部ユニット2000へのデータ経路117a’に対するアクセスを制御する第3の調停ユニット117aが設けられてもよい。
バス制御ユニット100aの更なる別の実施形態によれば、外部ユニット2000へのデータ経路111’に対する、データ接続線1224、1269aを介したデータアクセスを制御するマルチプレクサユニット111が設けられてもよい。例えば、FPGA F1が製造業者アルテラ社のモデルである場合には、アバロンタイプのマルチプレクサユニット111が設けられる。
更なる別の実施形態において、データ接続1248、1269b、117a’、1288はそれぞれ64ビットのデータ幅を有し、従って、クロックサイクルごとに、同時に8バイトのデータを送信することが可能である。追加的に、1つ以上の制御線が存在してもよい。
図2に係るバスインタフェースユニット100aは、以下のような特別な利点を有する。構成要素122a、124aを設けることによって、バス制御ユニット110aの駆動状態情報、イベント情報、及び、ステータス情報は、例えば当該情報が上述の通り、データ接続1246を介して外部ユニット2000へと伝送されることで、効率良く、特にブロックされることなく外部ユニット2000へと伝送されうる。このような伝送は、有利に、外部ユニット2000への連続的なデータストリームで行われ、その際特に、上記データの受信について外部ユニット2000のどの肯定応答信号も検査されない。外部ユニット2000及び/又は他の外部の制御部等(図示せず)は、有利に、ホストサービス122aを介してバス制御ユニット110aにアクセスすることが可能であり、従って例えば、従来のマイクロコントローラ内で実現されるような、ソフトウェアで制御されたアクセスが行われなくなる。むしろ、好適にハードウェアで又はFPGA F1の形態により実現されたバスインタフェースユニット100aは、迅速かつ効率良くバス制御ユニット110aにアクセスすることが可能である。有利に、図2以降の本発明に係る構成によってさらに、バス制御ユニット110aへの設定アクセスと、バス制御ユニット110aへのデータアクセスと、の間の調停が可能になる。例えば、バス制御ユニット110aの設定データは、上記のBondOut接続によって、バス制御ユニット110a内で直接変更されうるが、このこととは完全に無関係に、データアクセス(CANメッセ―ジ又はCANメッセ―ジの構成要素(ヘッダ、ペイロード)の読出し/書込み)が、構成要素126a、128aを介して行われうる。さらに、バス制御ユニット110aの状態情報又はイベント又はそれ以外のバス制御ユニット110aの駆動状態を特徴付けるデータを外部ユニット2000に供給するために、割り込み又はポーリングの仕組みが必要ではない。むしろ、バスインタフェースユニット100a自体がこのような情報の存在を検出することが可能であり(例えば、バス制御ユニット110aの割り込み要求は、ユニット126aに直接案内される)、外部ユニット2000への対応するデータ転送を開始することが可能である。さらに、公知の「M_CAN IPモジュール」の機能(及び、大きさ/必要なメモリ又はゲート等価(gate equivalent)等)を、当該機能に匹敵する機能又は本発明に基づき改良された機能が本発明に係るバス制御ユニット100aの残りの構成要素によってカバーされる限り、縮小することが構想されうる。
図4は、第2の実施形態に係るバスインタフェースユニット100bを概略的に示している。バスインタフェース100bは、FlexRayバスとして構成されたバスシステム10bに接続され、バス制御ユニット110bを介してFlexRayバス10bから受信されたデータ及び/又は当該データに由来するデータを、外部ユニット2000へと出力し、及び/又は、外部ユニット2000から獲得されたデータ及び/又は当該データに由来するデータを、バス制御ユニット110bを介してFlexRayバス10bへと出力するよう構成される。バスインタフェースユニット100bと外部ユニット2000との間のデータ交換は、図4では、複数の矢印1227b又はブロック矢印111’、117b’、1281b、1281eによって示され、以下でより詳細に解説される。
バスインタフェースユニット100bのバス制御ユニット110bは、ここでは、先に既に記載したロバートボッシュ社の「E−Ray IPモジュール」であって、FlexRayバスシステム10b上でデータ通信を実施するよう構成された上記「E−Ray IPモジュール」に基づいて実現されている。代替的に、他のFlexRayコントローラ110bが利用されてもよい。E−Ray IPモジュールの機能、特にバスインタフェースユニット100b全体の機能が、特に好適に、FPGA(field programmable gate array、プログラム可能な論理モジュール)F2の一部という形態により実現され、その際に、FPGA F2は、ここでは、少なくとも部分的に外部ユニット2000の機能も実現する。このことは、図4では、外部ユニット100b、2000を囲む符号F2が付いた点線によって示される。バスインタフェースユニット100bと外部ユニット2000とを同一のFPGA F2に組み込むことによって、ユニット100b、2000間の特に効率の良いデータ伝送の可能性が生まれる。というのは、例えば、FPGA内部のバスシステム又はデータ伝送システムにアクセス出来るからである。製造業者アルテラ(Altera)社のFPGAの場合には、例えば、アルテラFPGA F2のアバロン(Avalon)インタフェースにアクセスすることが可能であり、このアバロンインタフェースによって、同一のFPGA F2内に配置された複数の構成要素又はユニットの効率の良いデータ接続が可能となる。特に好適に、FPGA F2の場合には、ユニット100b、2000の構成要素間のデータ接続を確立するために、例えば、「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースが利用可能である。
図4に示された構成では、本発明に係る制御ユニット120b(図1の符号120も参照)の機能は、複数の機能ブロックに分散され、即ち、基本的には機能ブロック122b、124b、126b、128bに分散されるが、このこといついては以下で詳細に解説する。
有利な実施形態において、機能ブロック122bが設けられ、この機能ブロック122bは、図2のCANバスインタフェースユニット100aの機能ブロック122aと同様に、「ホストサービス」とも呼ばれ、図4に係るFlexRayバスインタフェースユニット100bの駆動を制御するよう構成される。特に、機能ブロック122bは、外部ユニット2000から制御データ及び/又は設定データを受信するよう構成可能であり、これにより、本発明に係る制御ユニット120bは、特に、外部ユニット2000の更なる駆動に依存せずに又は当該駆動とは無関係に、バス制御ユニット110bに直接的に制御データ及び/又は設定データを供給できるようになる。このようにして、制御データ及び/又は設定データは、例えば、当該制御データ及び/設定データの転送がFelxRayバス10bを介するデータ通信に特にさほど悪影響を与えない駆動状態において、バス制御ユニット110bに供給されうる。
上記の制御データは、一実施形態によれば、例えば、バス制御ユニット110bの始動又は起動/停止を開始し及び/又はそれ以外のバス制御ユニット110bの駆動状態間の変更を開始する制御命令を含んでもよい。
図5aは、図4のバスインタフェースユニット100bの一観点を概略的に示している。ここでは、「ホストサービス」とも呼ばれる第1の機能ブロック122bが示されている。
有利な実施形態において、ホストサービス機能ブロック122b内には、例えば状態オートマトン1220b(有限オートマトン、(FSM:finite state machine、有限状態機械))が実現されてもよく、この状態オートマトン1220bは、バスインタフェースユニット100bの様々な駆動状態を表し、それ自体は公知のやり方で駆動状態の遷移を制御し又は、上記の制御データ及び/又は設定データを制御しながら上記駆動状態を遷移させる。例えば、状態オートマトン1220bは、先に既に記載した状態オートマトン1220aと同じように3つの状態(「デフォルト」、「レディ」、「ランニング」)を有する。
例えば、制御ユニット120bは、一実施形態によれば、上記の「E−Ray IPモジュール」に基づきFlexRayバス制御ユニット110bが構成される際には、例えば、外部ユニット2000から獲得した制御データ及び/又は設定データを、FlexRayバス制御ユニット110b又はレジスタに書き込むために、E−Ray IPモジュールのメモリレジスタ又は設定レジスタにアクセスするよう構成されうる。
更なる別の有利な実施形態において、図5aの機能ブロック122b内には、いわゆるホストサービスハンドラ1222bが設けられてよく、このホストサービスハンドラ1222bは、以下の機能のうちの1つ以上を提供するよう構成され、即ち、外部ユニット2000へのデータ接続1224b、FlexRayバス制御ユニット110bへのデータ接続1226b、割り込みコントローラ1225b、特に、ビット伝送層(ISO/OSI基本参照モデルの第1層(物理層))に関する状態情報を、外部ユニット2000と交換するためのデータ接続1227b、FlexRayバス制御ユニット110bの状態情報を交換し特に受信するためのデータ接続1227c、のうちの1つ以上を提供するよう構成される。
有利な実施形態において、外部ユニット2000へのデータ接続1224bは、例えば、1つ以上のFPGA内部のデータ接続を含んでもよく、例えば、アルテラFPGA F2(図4)の場合には、1つ以上の所謂アバロンインタフェース、例えば、「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースを含んでもよい。
有利な実施形態において、FlexRayバス制御ユニット110bへのデータ接続1226bは、E−Ray調停ユニット113への接続線を含んでもよく、その際に、複数の更なる別のデータ接続が、調停ユニット113を介してE−Rayデータ経路113aに結合可能である。好適に、調停ユニット113は、アクセス粒度ではなくタスク粒度に基づいて調停が行われるように機能する。更なる別の実施形態において、このことは、図2の変形例の1つ以上の調停ユニット114a、116a、117aにも該当する。
更なる別の有利な実施形態において、割り込みコントローラ1225bの機能には、外部ユニット2000への割り込み(割り込み要求)信号の出力が含まれてもよい。
更なる別の有利な実施形態において、ホストサービス機能ブロック122bには、いわゆる「インタフェースシーケンサ」の機能が組み込まれてもよく、このインタフェースシーケンサは、特にデータ接続1226bに依存せずに、FlexRayバス制御ユニット110bへの1つ以上の以下のアクセスを実施するよう構成され、即ち、chicmd(apply E−Ray CHI command)、do_unlock(apply E−Ray Unlock Sequence)、do_write(process CONF_WRITE_REG command)、do_read(process CONF_READ_REG command)、do_mbuf(process CONF_MBUF command)、のうちの1つ以上のアクセスを実施するよう構成される。
好適に、機能ブロック122bの駆動も、状態オートマトン1228bによって制御されうる。状態オートマトン1228bは特に、例えば、外部ユニット2000から獲得された制御命令及び/又は設定命令を、例えば機能ブロック1222bを利用して処理するように構成されてもよい。好適に、状態オートマトン1228bはさらに、E−Rayデータ接続113a(図4)への、割り込みの無いアクセスを可能にするために、E−Ray調停ユニット113を制御するよう構成される。
図5bは、図4のバスインタフェースユニット100bの更なる別の観点を概略的に示している。図5bには、状態及びイベントサーバ(略称「SES」)が示され、第2の機能ブロック124bによって表されている。
SES124bがあるために、バスインタフェースユニット100bは、一実施形態によれば、バス制御ユニット110b(図4)の駆動状態を特徴付ける情報をバス制御ユニット110bから受信し、バス制御ユニット110bの駆動状態を特徴付ける情報を、少なくとも部分的に外部ユニット2000へと出力するよう構成され、その際に、バス制御ユニット110bの駆動状態を特徴付ける情報は、特に制御ユニット120bに一時的に格納され、ここでは特にSES124bに一時的に格納される。
これに関して、SES124bは、一実施形態によれば状態及びイベントハンドラ(略称「SEH」)1240bを有し、この状態及びイベントハンドラ1240bは、データ接続1244を介して、バス制御ユニット110bの駆動状態を特徴付ける情報、特にFlexRayバスコントローラ110bの状態情報及びイベント情報を、バスコントローラ110bから受信する。
更なる別の有利な実施形態において、SEH1240bは、バス制御ユニット110bのイベント、及び、状態変更を受信し評価し、特にフィルタに掛けるよう構成されてもよい。当該評価及び/又はフィルタリングに従って、SEH1240bはさらに、例えば、上記評価及び/又はフィルタリングについて又は一般にFlexRayバスコントローラ110bの状態及びイベント情報について外部ユニット2000に報知するために、外部ユニット2000へのデータ伝送を実施し又は促すよう構成されてもよい。外部ユニット2000へのデータ接続は、例えば、データインタフェース1246bを介して実現可能である。有利な実施形態において、外部ユニット2000へのデータインタフェース1246bは、例えば、1つ以上のFPGA内部のデータ接続を含んでもよく、例えば、アルテラFPGA F2(図4)の場合には、1つ以上の所謂アバロンインタフェースを含んでもよく、例えば、「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースを含んでもよい。直接的なデータ接続1246bによって、外部ユニット2000へと送信されるデータは特に効率良く、特に、例えばポーリングの仕組み等のソフトウェアにより制御される過程無しで、外部ユニット2000へと伝送される。むしろ、ユニット100bがハードウェアで又はFPGA F2の機能により実現される際には、好適に純粋にハードウェアに基づく高性能のデータ通信が行われ、当該データ通信の個々の処理過程は特に決定論的でもあり、即ち期間が予測可能である。
更なる別の有利な実施形態において、SES124bは、図5bに機能ブロック1242bで示される所謂SES入力コーディネータ(「イングレスハンドラ」)も有しても良く、このSES入力コーディネータ1242bは、外部ユニット2000への(固有の)データ接続1248bを有する。好適な実施形態において、SES入力コーディネータ1242bは、1つ以上のデータセグメント、特に一定の長さのデータセグメントの形態によりデータを外部ユニット2000と交換するよう構成される。これにより、外部ユニット2000内でのデータセグメントの決定論的な移動時間又は加工時間が可能である。SES入力コーディネータ1242bはさらに、例えば、上記のFlexRayバスコントローラ110bの状態情報及びイベント情報又は当該データに由来するデータを、SEH1240bから外部ユニット2000へと伝送するために、SEH1240bにより自身に宛てられたデータ伝送要求の調停を行うよう構成されてもよい。
特に好適に、SES124bは、一実施形態において、データ接続1246bを介して外部ユニット2000へとデータを伝送してもよく、及び/又は、SES入力コーディネータ1242bのデータ接続1248bを介して外部ユニット2000へとデータを伝送してもよく、その際に、データ接続1248bを介するデータ伝送は、特に一定の長さのデータセグメントの形態により行われる。
図5cは、図4に係るバスインタフェースユニット100bの更なる別の観点を概略的に示している。ここでは、受信待ち行列プロセッサ126b(略称「RQP」126b)が示されている。この受信待ち行列プロセッサ126bは、入力バッファコーディネータ(略称「RFH」)1260bを有する。さらに、RQP126bは、一実施形態によれば局所的な入力コーディネータ1264bを有する。
RFH1260bは、一実施形態によれば、データ接続1266bを有し、このデータ接続1266bは、バス制御ユニット110bによりFlexRayバス10bから受信されたデータ又は当該データに由来するデータを受け取り、及び/又は、FlexRayバス10bを介した送信のためのデータを、バス制御ユニット110bへと伝送するよう構成される。FlexRayバス10bから受信された他の送信者(図示されない他のバス加入者)のデータの他に、バス制御ユニット110bによりFlexRayバス10b上で送信されると共にバス制御ユニット110bにより再び受信されるデータ(「自受信」)が関わっていてもよい。
RFH1260bは、更なる別の実施形態によれば、外部ユニット2000とのデータ交換を可能にするよう構成されたデータ接続1269b’を有する。有利な実施形態において、外部ユニット2000へのデータ接続1269’は、例えば、1つ以上のFPGA内部のデータ接続を含んでもよく、例えば、アルテラFPGA F2(図4)の場合には、1つ以上の所謂アバロンインタフェースを含んでも良く、例えば、「Avalon Memory Mapped Interface(Avalon−MM)」という型のインタフェースを含んでもよい。
さらに、RFH1260bは、バス制御ユニット110bのステータス情報又は状態情報等を受信するためのデータ接続1269b’’を有してもよい。
SES124bが局所的な入力コーディネータ(イングレスハンドラ)1264bを有する実施形態において、この局所的な入力コーディネータ1264bは、外部ユニット2000への(固有の)データ接続1269b’’’を有してもよい。好適な実施形態において、局所的な入力コーディネータ1264bが、1つ以上のデータセグメント、特に一定の長さのデータセグメントの形態によりデータを外部ユニット2000と交換するよう構成されることが構想される。これにより、外部ユニット2000内でのデータセグメントの決定論的な移動時間又は加工時間が可能である。局所的な入力コーディネータ1264bはさらに、例えば、上記の受信されたFlexRayメッセージ若しくはデータ、又は、当該FlexRayメッセージ若しくはデータに由来するデータをRFH1260bから外部ユニット2000へと伝送するために、RFH1260bにより自身に宛てられたデータ伝送要求の調停を行うよう構成されてもよい。
更なる別のデータ接続1269’’’’を介して、入力コーディネータ1264bは、好適にはダイレクトメモリアクセスを利用して、バス制御ユニット110bの出力バッファにアクセスしてもよいことが有利である。
一実施形態において、受信待ち行列プロセッサ(RQP)126bは、FlexRayメッセージが外部ユニット2000へと伝送される場合には、以下の工程を実施するよう構成され、即ち、E−Rayメッセージバッファ(図示せず)からバス制御ユニット110bの出力バッファへとメッセージをロードする工程と、好適に、(32ビットのデータ幅又はバス幅を好適に有する)データ接続1266bを介して、該当するメッセージのヘッダデータを読み出す工程と、外部ユニット2000へのFlexRayメッセージのデータ伝送を促す工程であって、(特にヘッダデータの)データ伝送の間に、該当するメッセージのユーザデータが実時間でDMAアクセスによりバス制御ユニット110bの出力バッファから直接読み出され、データ接続1269b’’’を介して外部ユニット2000へと伝送される、上記データ伝送を促す工程と、を実施するよう構成される。これによりユーザデータを局所的に一時格納することが回避されることが有利である。
図5dは、図4に係るバスインタフェースユニット100bの更なる別の観点を概略的に示している。ここでは、送信待ち行列プロセッサ128b(略称「TQP」128b)が示されている。送信待ち行列プロセッサ128bは、好適にアバロンインタフェースの形態により実現可能な、外部ユニット2000へのデータ接続1281を有する。送信待ち行列プロセッサ128bとバス制御ユニット110bとの間の、場合により調停ユニット113(図4)を介する、データ接続は、符号1281aで表されている。外部ユニット2000から送信待ち行列プロセッサ128bへの(好適に一定の長さのデータセグメントの形態による)データの伝達を可能にする更なる別のデータ接続が、符号1281bで表されている。ステータス情報及び状態情報等は、バス制御ユニット110bによって、更なる別のデータ接続1281cを介して送信待ち行列プロセッサ128bに供給されうる。好適にDMAアクセスを利用した、送信待ち行列プロセッサ128bによるバス制御ユニット110bの入力バッファ(図示せず)へのデータ伝送を可能にする更なる別のデータ接続が、符号1281dで表されている。
以下では、一実施形態に係る送信待ち行列プロセッサ128bの駆動について、図5dのブロック図を参照しながら詳細に記載する。出力プロセッサ1283は、データ接続1281bを介して、好適に一定の長さのデータセグメントの形態による、FlexRayメッセージという形でバス制御ユニット110bがFlexRayバス10bへと出力すべきデータを獲得する。好適に、出力プロセッサ1283が、FlexRayメッセージのヘッダデータを局所的に一時格納する一方で、FlexRayメッセージのユーザデータは、好適にデータ接続1281bを介した入力の際に直接的に、DMAアクセスを利用してデータ接続1281dを介してバス制御ユニット110bの入力バッファ(図示せず)に書き込まれる。少なくとも1つのFlexRayメッセージのためのユーザデータが完全なものとなり次第、出力プロセッサ1283は、バッファメモリプロセッサ1283aに、バス制御ユニット110bの入力バッファからバス制御ユニット110bのメッセージRAMへのデータ転送を行うように促す。対応するデータ通信が、例えば、好適に32ビットのデータ幅を有するデータ接続1281aを介して行われうる。
更なる別の実施形態において、送信待ち行列プロセッサ128bと外部ユニット2000との間の更なる別のデータ接続1281eが設けられてもよい。この更なる別のデータ接続1281eを介して、例えば、構成要素128b、2000間での同期化を達成することが可能である。さらに、例えばアバロンインタフェースを利用して実現可能なデータ接続1281eによって、FlexRayバス10b上で、バス制御ユニット110bによるFlexRayメッセージの送信のために空スロットが利用可能であるか、及び/又は、いつFlexRayバス10b上で、バス制御ユニット110bによるFlexRayメッセージの送信のために空スロットが利用可能であるか、について、送信待ち行列プロセッサ128bが外部ユニット2000に報知する可能性が生まれる。
更なる別の実施形態において、データ接続117b’、1281bはそれぞれ64ビットのデータ幅を有し、従って、クロックサイクルごとに、同時に8バイトのデータを伝送することが可能である。追加的に1つ以上の制御線が存在してもよい。
本発明に係る原則によって、既存のバス制御ユニットを、即ち例えばCANコントローラ及びFlexRayコントローラを、上記の機能の分だけ拡張することが可能となることが有利である。