(57)【特許請求の範囲】
【請求項１】
制限された任意の数ｎ個のデータ要素からなるフレームの伝送を支援するバス（５）上で，データ源（１）から受信端末（８）へデータブロックを伝送する方法であって：
ａ）少なくとも伝送すべきブロック内に含まれるデータ要素の数Ｎを記した制御情報を，受信端末（８）からデータ源（１）へ伝送し（Ｓ２）；
ｂ）Ｎ＞ｎである場合，伝送すべきブロックにおけるｎ個のデータ要素からなるｉｎｔ（Ｎ／ｎ）個のフレームと，伝送すべきブロックにおける（Ｎ  ｍｏｄ  ｎ）個のデータ要素からなる１個のフレームとを，データ源（１）から受信端末（８）へ送信し（Ｄ４）（ここで，ｉｎｔ（Ｎ／ｎ）は，Ｎ／ｎより小さいかそれと等しい整数で最大の数）；
ｃ）前記ステップｂ）で受信されたデータ要素の数が，制御情報内に記された数Ｎと一致する場合，受信端末（８）を介したブロックの伝送が完全であることを認識する（Ｓ９）；
ステップを含み、
前記データ源（１）は，制御情報内に記されている時点において，ブロックを送信することを特徴とする，前記方法。
【請求項２】
Ｎ≦ｎである場合，前記データ源（１）は，Ｎ個のデータ要素を有する唯一のフレームを送信し，受信端末（８）は，前記唯一のフレームの受信後すぐにブロックが完全であることを認識する（Ｓ８）ことを特徴とする，請求項１に記載の方法。
【請求項３】
前記データ源（１）は，制御情報内に記されている多数のパラメータによって，ブロックをつなぎ合わせることを特徴とする，請求項１又は２に記載の方法。
【請求項４】
前記バスは，ＣＡＮバスであることを特徴とする，請求項１から３のいずれか１項に記載の方法。
【請求項５】
コントローラ回路のための開発環境において使用され，
前記データ源（１）は前記コントローラ回路であって，受信端末（８）はホストコンピュータであることを特徴とする，請求項１から４のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，制限された任意の数のデータ要素からなるフレームの伝送を支援するバス上で，データ源（Ｄａｔｅｎｑｕｅｌｌｅ）から受信端末（Ｄａｔｅｎｓｅｎｋｅ）へデータブロックを伝送する方法に関する。
【背景技術】
【０００２】
この種のブロックにおけるデータ要素の数が，フレームとして伝送可能なデータ要素の最大数より大きい場合に，ブロックを複数のフレームに分割して伝送しなければならない。これらのフレームを受信した受信端末は，それらからブロックを再び形成する必要が生じる。
【０００３】
データ源から受信端末へ伝送する際に，フレームとして認識されずに失われてしまう可能性がある場合，あるいは，ブロックを伝送する際の最後のフレームとなるフレームが最後であることを認識されず，後に受信された他のフレームも受信端末によって同じブロックに対応づけられる場合は，ブロックの正確な再形成は不可能となる。
【０００４】
１つのフレームに完全には収まらない大規模なデータブロックを伝送しなければならない問題は，特に，例えば自動車技術のための制御装置におけるＣＡＮスタンダードに基づくデータ処理システムを開発する場合に生じる。ＣＡＮスタンダードは，予め定められた時間範囲内に，小さいデータ量をセンサから制御装置へ，または，制御装置から自動車エンジンの駆動状態を調節するためのアクチュエータもしくは自動車の他のユニットへ伝送するために良好に適合されている。しかし，この種のシステムの開発と最適化の進行中に，しばしば，制御装置と，開発環境としてのホストコンピュータとの間で大規模なデータ量が必要に伝送され，開発者はホストコンピュータとのやりとりにおいて，制御装置の動作方法を正確かつ詳細に追従することができる。
【０００５】
ＣＡＮバスを介してこの種のデータを伝送すると，著しいオーバーヘッドを要し，かつ，ＣＡＮバスの伝送容量の著しい負担をもたらす。この制御装置とホストコンピュータとの通信が，バス上で行われる，制御装置が実現すべき制御課題のため必要な他の通信プロセスと，通信容量に関して競合する場合，すべての課題に対して伝送容量が十分ではなくなり得る可能性があり，かつ機器の機能性が損なわれる可能性がある。
【発明の開示】
【０００６】
本発明によって，わずかな伝送オーバーヘッドのみで，それによってバス上で提供される帯域幅を有効に利用する，バス上でデータ源と受信端末との間でデータブロックを伝送する方法が提供される。本方法は，受信端末が，特にデータブロックにおけるデータ要素の数を記したフォーマットによって，データ源からの受信を予測することに基づいている。
【０００７】
上記データ要素の数は，バスシステムによって支援される個々のフレームとして伝送可能なデータ要素の数よりも大きくすることができる。大きくする場合には，ブロックのデータ要素が複数のフレームに分割され，バス上でそれらのフレームが伝送されなければならない。Ｎが伝送すべきブロックのデータ要素の数であり，ｎが１つのフレームによって伝送可能な最大のデータ要素の数である場合に，ブロックはｉｎｔ（Ｎ／ｎ）個のフレームで完全に満たされ，その場合にｉｎｔ（Ｎ／ｎ）は，Ｎ／ｎより小さいかそれと等しい整数の最大値である。このように完全に満たされたフレームが伝送される場合，引き続いて，（Ｎ  ｍｏｄ  ｎ）個のデータ要素を含むフレームが伝送される。従って，上記最後のフレームにおけるデータ要素の数は，Ｎがｎによって余りなしで割りきれる場合，ゼロとなることもあり得る。
【０００８】
最大可能な数ｎのデータ要素よりも少ないデータ要素を有するフレームが受信された，という事実から，受信端末は，それがブロックの最後のフレームであるという結論を導き出すことができる。実際に受信されたデータ要素の数と予測される数Ｎとを比較することによって，受信端末の側は，ブロックが完全に受信されたかのどうかの判定を行う。
【０００９】
伝送すべきブロックのデータ要素の数Ｎが，フレームにおける伝送可能なデータ要素の最大数ｎよりも小さい場合には，上述した方法を原理的にそのまま使用することができる。この場合には，ｉｎｔ（Ｎ／ｎ）＝０であり，従って，Ｎ個のデータ要素を有する唯一のフレームのみが伝送され，受信端末によって，そのフレームがブロックの最後のフレームであると直ぐに認識される。
【００１０】
好ましい特別制御は，ブロックのデータ要素の数Ｎと，フレームのデータ要素の最大数ｎとが一致する場合に可能である。受信端末は，ブロック中の伝送すべきデータ要素の数の詳細を保持しており，かつ，そのブロックを受信した際，フレームを完全に受信した直後に，その中に含まれるブロックが完全であることを認識することができる。場合によっては失われ，あるいは他の方法によりエラーを含んで伝送され得る，他のフレームが伝送されないので，上記の場合においては，受信端末にブロックの完全な伝送を示すための，データ要素を含まないフレームを送信する必要はない。
【００１１】
好ましくは受信端末からデータ源へ伝送される制御情報は，伝送すべきブロックにおけるデータ要素の数だけでなく，時点（ないし，周期的な伝送の場合には，複数の時点）および伝送すべきパラメータの種類と意味も記される。
【発明を実施するための最良の形態】
【００１２】
本発明の他の特徴と利点は，添付の図面を参照して以下で行う実施例の説明から明らかにされる。
【００１３】
図１のブロック図は，本発明に基づくデータ処理システムの例として，コントローラ，特に自動車制御装置のための開発環境を示している。この制御装置１は，マイクロプロセッサ２，メモリモジュール３およびバス，特にＣＡＮバス５へのインターフェイス４を有している。そのバスに自動車の複数の機能ユニット６が接続されており，それら機能ユニットは，車両の駆動パラメータの測定値を，バス５を介して制御装置１へ供給し，および／または，制御装置１から指令を受信してそれを実施する。
【００１４】
機能ユニットは，例えば，自動車エンジンのクランク軸に設けられた回転角度センサであって，クランク軸の回転角度のための測定値を制御装置１へ供給し，あるいは，エンジンの点火プラグであって，制御装置１が回転角度の測定値から導き出した点火指令を受け取る。機能ユニットは，さらに様々な他の測定および制御課題を満たすことができ，それらについてはここでは詳細に説明しない。
【００１５】
制御装置１が，まだテストおよび開発の段階にある間，ＣＡＮバス５にはインターフェイス７が接続されており，そのインターフェイスを介して開発環境のホストコンピュータ８と制御装置１とが通信可能である。
【００１６】
このホストコンピュータ８を用いて，例えば，制御装置１が様々な機能ユニット６から集めてメモリモジュール３に格納したデータを読み出し，開発者に提示することが可能になる。開発者は，マイクロプロセッサ２の動作方法を判断し，動作方法に万一エラーがある場合，マイクロプロセッサ２の制御プログラムを修正することによって上記エラーを除去することができる。
【００１７】
マイクロプロセッサ２が機能ユニット６と通信するときは，一般に，厳しい時間的要求の元で小さいデータ量が伝送される。即ち，機能ユニット６の１つがパラメータ値を供給した場合に，制御装置１は予め定められた短い時間内にそれに応答しなければならず，例えば，機能ユニットの複数の測定値を集めて，その複数の測定値を，伝送の効率を改善するための，オーバーヘッド情報の１つのセットとして伝送することは，不可能である。この理由から，ＣＡＮバスプロトコルでは最大８バイトの有効データ内容を有する比較的短いフレームを使用し，それにおいて全体的な伝送されるデータ量におけるオーバーヘッド割合は極めて高いが，その代わりに短い遅延を伴うデータ伝送が可能となる。
【００１８】
これらを明らかにするために，図２に，ＣＡＮフレームの構造が詳細に示されている。個々のスタートビットＳは，フレームの開始を特徴づける。その次に１１ビット幅のフィールドＩＤが続き，そのフィールドＩＤは，当該ＣＡＮフレームによって定められる有効データとして，ＣＡＮバス５に接続された機器（機能ユニット６のうち１つ，制御装置１もしくはその上で遂行される個々のプロセス，または，ホストコンピュータ８もしくはその上で遂行されるプロセス）の一義的な記号（名称）を含んでいる。
【００１９】
ＣＡＮフレームの特性を特徴づける３つのステータスフラグＦがそれに続くが，これらは本発明にとっては重要ではないのでこれ以上説明はしない。
【００２０】
それに続く４ビット幅のフィールドＬが，ＣＡＮフレーム内に含まれる有効データバイトの数を示す。この数は，０バイトと８バイトの間にあるとしても良い。
【００２１】
それに続く部分ＤＡＴＡの長さは，フィールドＬに記載されているバイト数に相当する。
【００２２】
１６ビット幅のチェックサムフィールドＣＲＣは，従来の方法において，その前にあるフィールド内で発生した伝送エラーの検知と除去を可能にする。それに２つのアクノリッジビットＡＣＫと，フレームのエンドを示すビットパターンを有する７ビット幅のフィールドＥＯＦが続く。そのフレームに続くフレームの開始までに，情報を伝送しない１〜３ビットを付加することができる。
【００２３】
ＣＡＮプロトコルは，短い反応時間を有する小さいデータ量の伝送には良好に適合されているが，一つ一つのＣＡＮフレームに収まらない，つながっている大きいデータ量を伝送しなければならない場合には，問題が生じる。このデータは，それぞれ，バス５へデータを送信するデータ源側で複数のフレームに分配され，それを受信する受信端末側で再び完全かつ正しい順序でつなぎ合わされなければならない。これは特に，識別子部分ＩＤを伝送する際のエラーによって，受信端末が識別するために定められているフレームをそのようには認識せず，無視した場合，同じ理由から，受信端末があるフレームを誤って，識別するために定められているフレームと解釈した場合，フィールド長Ｌの受信の際にエラーが発生し，有効データが誤って伝わる可能性もある。
【００２４】
これを回避し，あるいはこの種のエラーを少なくとも検知して食い止めることを可能にするために，従来のシステムにおいては，各フレームの８有効データバイトの１つが，連続番号を伝送するために利用され，その連続番号は，受信端末が，連続する受信したフレームの欠落あるいは誤ってそれに対応づけられたフレームを認識することを可能にする。この種の連続番号の伝送は，フレームのオーバーヘッド割合をさらに増大させ，データ伝送の効率を減少させる。
【００２５】
この不都合に対処するために，本発明は，受信端末の多くの伝送課題において，伝送すべきデータセットの範囲が前もってわかっているという事実を利用している。これは特に，図１に示すようなデータ処理システムにおける，制御装置１の測定データまたは他の駆動パラメータがホストコンピュータ８へ伝送される場合である。これは，一般に，ホストコンピュータ８が事前に指示することに基づいて行われ，従ってホストコンピュータは，制御装置１から伝送されるデータが何であるか，およびそれがどの程度の大きさであるかを「知っている」。
【００２６】
従って，ホストコンピュータが，制御装置からデータブロックの伝送を終了したとする指示を受信した場合に，伝送エラーが生じているかを検出するために，実際にブロック内で受信されたデータの大きさと，予めわかっている大きさとを比較し，受信したデータ量が予測されるデータ量と一致したならば伝送が成功したと見なすことができる。
【００２７】
上述した原理に従って協働する制御装置１とホストコンピュータ８の動作方法を，図３と４のフローチャートを参照して説明する。
【００２８】
図３は，受信端末，従ってここで考察する例においてはホストコンピュータ８の動作方法，そして図４は，データ源，即ち制御装置１の動作方法を示している。
【００２９】
ステップＳ１において，開発者はホストコンピュータ８とのやりとりにおいて，制御装置１からホストコンピュータ８へ伝送すべきデータブロックの構造を定義する。この構造の定義は，詳細には識別子ＩＤの値の決定を有し，その値は後で，伝送されたフレームを，ホストコンピュータ上で遂行されているそのフレームを必要とするプロセスに対応づけることを可能にする。さらに，伝送すべきパラメータ，即ちホストコンピュータ８へ伝送すべき，制御装置１のメモリモジュール３のレジスタまたはメモリスペースのリストの内容が定められ，これらのパラメータを伝送すべき順序が定められる。そして，さらに，該当するメモリスペースの読出しが行われるべき時点が決定される。この時点は，個々に定められた絶対的な時点とすることができ，その時点は外部の条件の発生に対する所定の時間的関係によって（例えば所定のインターラプトの作動後に記された遅延をもって）定めることができ，あるいは記された周期による周期的伝送を設けることもできる。
【００３０】
ステップＳ２においては，このようにして定められた制御情報が制御装置１へ伝送される。簡単のために，伝送すべき制御情報の大きさが８バイトを超えない，制御情報が従来の一つ一つのＣＡＮフレーム内で伝送できるものと仮定する。伝送すべき制御情報が，８バイトよりも多い場合には，以下において示される，データ源から受信端末へデータブロックを伝送するために説明される方法を，受信端末からデータ源への制御情報の伝送にも使用することができる。
【００３１】
制御情報は，データ源，ここでは制御装置１によって受信される（図４のステップＤ１）。その間に，受信端末は，カウンタＮ（ｔ）をゼロにセットすることによって，データの第１ブロック受信の準備を行う（ステップＳ３）。次に，受信端末は待機状態Ｓ４へ移行して，その状態においてＣＡＮバス５を介してのフレームの受信を待機する。
【００３２】
それに並行して，データ源は，制御情報内に記された，レジスタを読み出す時点まで待機する（Ｄ２）。上記記載の時点で，データ源はレジスタの読出しを開始し，ＣＡＮフレームのヘッダー部分Ｈ，即ち図２におけるＳ〜Ｌで示される部分をホストコンピュータ８へ送信する。ホストコンピュータは，ステップＳ５において，伝送されたヘッダー部分Ｈ内の識別子ＩＤを，それが予測されたものと一致するかについて，チェックする。一致しない場合，さらに，ホストコンピュータ８は待機状態Ｓ４へ戻るか，あるいは，識別子ＩＤが場合によってはホストコンピュータ内で実施される他のプロセスに相当する場合に，他の処理プロセスへ分岐する。
【００３３】
その間に，制御装置はステップＤ４においてフレームのデータバイトを送信する。次に，制御装置は，ブロックの定義に従って，まだ送信すべきデータバイトが残っているかを調べる（Ｄ５）。残っていない場合には，ステップＤ６において，ＣＡＮフレームの尾の部分（トレイラー），即ちＣＲＣ部分〜ＥＯＦ部分が送信される（Ｄ６）。
【００３４】
その後ステップＤ７において，ブロックのバイト数Ｎがｎとは異なるか，あるいは余りなしでｎによって割り切れるかが調べられる。この条件が満たされている場合には，ブロックが一回だけの送信に限定されたブロックでない限り，処理がステップＤ２へ戻る前のステップＤ８において，さらに有効データを含まないブロックが送信される。他の場合には，処理は直接，あるいは空フレームの送信なしで，Ｄ２へ戻る。
【００３５】
ステップＤ５における検査の結果，まだ送信すべきデータバイトがあることが明らかになった場合，処理は，さらにステップＤ９へ進み，そこで，伝送中のフレーム内でさらに他のバイトを送信すべきかが調べられる。肯定である場合，処理は，バイトを送信するためにステップＤ４へ戻り，否定の場合，ステップＤ１０において尾の部分が送信される。さらに処理は，他のフレームのヘッダー部分の伝送を開始するために，ステップＤ３へ戻る。
【００３６】
ホストコンピュータ８が，ステップＳ５においてフレームの識別子を正しいと判断した場合，ホストコンピュータは，ステップＳ６において，データバイトを受信し，受信したバイトの分，カウンタＮ（ｔ）をインクリメントする。次に，ホストコンピュータはステップＳ７において，ヘッダー部分Ｈのフィールド長Ｌに記載され，このフレームに含まれる有効データバイトの数であるｎ（ｔ）と，有効データバイトの最大許容される数ｎ＝８と比較する。
【００３７】
両方の値が一致した場合，ステップＳ８へ分岐し，そこでホストコンピュータは，ブロックの定義（ステップＳ１）で知られる，伝送すべきブロックに含まれるデータバイトの全体数Ｎと，１つのフレームで最大許容されるバイト数ｎとを比較する。ここで，両者が一致しない場合には，それは，同じブロックの他のバイトを移送する，他のＣＡＮフレームの伝送であることが予測され，処理はステップＳ４の待機状態へ戻る。しかし，ステップＳ８において同一性が確認された場合，それは，ブロックが全体として８以下のデータバイトしか含んでおらず，その伝送が完結していることを意味する。この場合には，処理は，受信したデータバイトを処理する次のステップへ移行する。
【００３８】
ホストコンピュータ８がステップＳ７において，現在のフレーム内で伝送されたビット数ｎ（ｔ）が最大許容されるビット数ｎでないことを検出した場合に，それは，それがブロックの最後のフレームであることを意味している。ホストコンピュータ８は，それに続いて（Ｓ９），このブロックのそれまでに受信されたデータバイトの数Ｎ（ｔ）と，ステップ１における定義に基づくバイト数Ｎと比較する。一致しない場合には，エラーが生じている可能性があり，処理は，エラー処理ルーチンへ分岐して，そこで例えばブロック全部が破棄され，あるいはブロックの新規伝送を要請することができる。一致する場合には，ブロックが正しく受信されたと見なされて，次のステップで処理される。
【００３９】
次に処理は，バイトカウンタＮ（ｔ）を新たにゼロにセットし，他のデータブロックの伝送を待機するステップＳ３へ戻る。
【００４０】
本方法では，ＣＡＮフレームの収容能力以上の多くの有効データビットを含む，つながり合った有効データブロックを伝送する場合においても，ＣＡＮフレームの全伝送容量がこの有効データを伝送するために提供され，かつ，制御情報の伝送のための付加的な有効データ伝送容量を設ける必要がない。本方法は，すでにある，ＣＡＮバス上でのデータ伝送に関する規格と互換性がある。
【図面の簡単な説明】
【００４１】
【図１】本発明に基づく方法を適用することのできる，データ処理システムのサンプルを示したブロック図である。
【図２】ＣＡＮフレームの構造を示している。
【図３】ホストコンピュータによって実施される処理を説明するフローチャートである。
【図４】図１に示す制御装置によって本発明に基づく方法の範囲内で実施される処理のフローチャートである。
【図１】
0004511358.tif 000002
【図２】
0004511358.tif 000003
【図３】
0004511358.tif 000004
【図４】
0004511358.tif 000005