実装情報
Typhoon HILツールチェーンにおける通信プロトコルの実装に関する基本情報
Typhoon HIL ツールチェーンには、通信プロトコルを実装するための 4 つの異なる方法があります。
プロトコルの要件によって実装が定義されます。
- プロトコルの決定性と速度に対する要件が高い場合、ベアメタルアプリケーションとして実装されます。これらのプロトコルは、主にパブリッシャー/サブスクライバー型またはマルチマスター型通信方式を採用しており、接続が確立されておらず、メッセージも複雑ではありません。Typhoon HILツールチェーンでは、これらのプロトコルには以下が含まれます。
- プロトコルの決定論要件が非常に高く、ベアメタルアプリケーションでさえその速度に対応できない場合は、プロトコルをハードウェア記述言語(HDL)でハードウェアレベルで実装する必要があります。Typhoon HILツールチェーンでは、これらのプロトコルには以下が含まれます。
- プロトコルに厳密な決定論的要件がない場合、プロトコルは組み込みLinuxアプリケーションとして実装されます。これらのプロトコルは、アクティブな接続が確立されている間は主にサーバー/クライアント通信タイプを使用し、より複雑なメッセージタイプが交換されます。Typhoon HILツールチェーンでは、これらのプロトコルには以下が含まれます。
- プロトコルが既存の実装と高い相関性を持つ場合は、コンポーネントブロックとして実装できます。Typhoon HILツールチェーンでは、これらのプロトコルには以下が含まれます。
- CHAdeMO ( CANバスプロトコルに基づく)
当然のことながら、プロトコルの速度/確定性要件が高ければ、必要なハードウェアリソースも増加します。ハードウェア実装を必要とするプロトコルの場合、必要なIPコアを実装するためにFPGA上に追加のスペースを確保する必要があります。ベアメタルプロトコルではアプリケーションごとに個別のプロセッサコアが必要ですが、組み込みLinuxプロトコルでは要件が最も緩やかであるため、複数のプロトコルを単一のLinuxプロセッサコア上で並行して実行できます。
特定のHILデバイスと特定のファームウェア構成のみが、ハードウェア実装を必要とする1つ以上のプロトコルをサポートします。これはデバイス構成テーブルで定義されています。
ベアメタル通信プロトコルは、COMM CPU(Communication CPUの略)と呼ばれる専用のプロセッサコア上で実行されます。第4世代HILデバイス(HIL101、HIL404、HIL506、HIL606)には2つのCOMM CPUコアが搭載されていますが、それ以前の世代ではCOMM CPUコアは1つしかありませんでした。つまり、第4世代HILデバイスでは2つのベアメタル通信プロトコルを並列に実行できますが、他の世代では1つしか実行できません。
組み込みLinux CPUコアでは、同時に実行できる通信プロトコルの数に制限はありません。ただし、組み込みLinuxプロトコルを過度に多く並列実行すると、CPU使用率が過度に高くなり、モデルのパフォーマンスが低下する可能性があります。