不具合の早期発見や複数開発者による並行開発で開発期間の短縮を実現
ハードウェアが完成する前の初期段階で検証を行うことで、問題を発見し修正できるようになります。また、柔軟なライセンス体系により、開発者はGSILを自由に利用でき、複数の開発者がいつでもどこでも同時に作業できます。
GSILの詳細について知りたい方や車載ECUソフトウェア開発に課題をお持ちの方は、お気軽にご相談ください。
オンデマンドウェビナー動画もご用意しておりますのでご興味のある方はぜひご覧ください。
車載ECUソフトウェアは複雑化の一途をたどり、その検証には膨大な工数がかかります。ハードウェア完成後の検証では十分な信頼性を確保することは困難です。
GSILは、車載ECUソフトウェア開発向けのシミュレーター(SILS)です。ハードウェア無しでPC上でのシミュレーションを実現、容易にECUアプリケーションのテスト、デバッグ、検証を可能にし、工数/コストの大幅な削減と、さらなる信頼性の向上を実現します。
近年、車載制御ソフト開発の効率化のためにSILS(Software In the Loop Simulation)を採用するケースが増えてきています。SILSは、手書きのソースコードやSimulinkなどのモデルから自動生成されたECUアプリケーションのソースコードを、PC上で検証します。ハードが完成する前の段階で容易にコード検証が行えるので、効率的なソフトウェアの開発、検証並びに工数の削減が可能となります。実機レス検証なのでリモートワークでの開発、検証も可能です。
ハードウェアが完成する前の初期段階で検証を行うことで、問題を発見し修正できるようになります。また、柔軟なライセンス体系により、開発者はGSILを自由に利用でき、複数の開発者がいつでもどこでも同時に作業できます。
HILS、実機、実車では困難なソースコードデバッグによる問題発見、原因追求、修正が容易です。ハードが絡まないので、ハードとソフトの問題切り分けも明確にできます。また、GSILに搭載されている自動網羅テスト機能により、別ツール追加購入することなく、マンパワーでは不可能な量の膨大なテストを実現。信頼性を確保します。
HILS、実機、実車では困難なCI環境の構築が可能です。開発者がソースコードをチェックインした後、静的解析ツール、仮想ECU生成、自動テスト、カバレッジ測定、結果検証などの一連の流れを自動化できます。
各種組込み向けコンパイラに対応済みで、環境構築に必要な人手でのソースコード変更はほぼ不要です。リンクエラーも自動的に解消し、スタブを自動で生成します。これにより、少ない工数で容易に仮想ECU環境の構築が可能となります。
OEM⇔サプライヤでシミュレーション環境を共有すれば、不具合手戻り工数削減が可能ですが、その際に環境構築作業が必要です。GSILは環境構築が容易ですし、OEM、サプライヤどちらか片方がGSIL を所有していれば、作業のために他方は購入の必要がありません。また、GSILの場合、仮想環境、プラントモデルはdll化されるので秘匿性の問題がありません。
GTrainerはGSILを使用したECU制御ソフトウェア開発者向け学習パッケージです。演習環境はすべてソフトウェアベースで提供され、あらかじめ用意された問題集に沿って学習を行えるため、ハードウェアの購入やセットアップが不要です。そのためロケーションや時間に縛られず、いつでもどこでもECU制御ソフトウェア開発が学べる魅力的なパッケージとなっています。自己学習で学べるため、教育する側の手間も取らせません。
ECU制御ソフトウェアの開発では、V字モデルが使用されます。不具合が後工程で発見されればされるほど、そこまでの各工程をやり直す必要があるため、修正にかかる工数(手戻り工数)は大きくなってしまいます。
このグラフは、開発の各フェーズで1つの不具合を修正する場合のコストを示した資料です。修正コストは、実装以前のフェーズではさほど大きくなく、テスト以降になると跳ね上がります。
特に、自動車ECUで量産後に不具合が発生、リコールになってしまうと、莫大な対応コストとブランドイメージの低下を引き起こすため、可能な限り早期段階で不具合を発見し修正するということが求められます。この概念は、フロントローディング、シフトレフトなどと呼ばれます。
SILSは、MILSモデルから自動生成されたECUアプリケーションのソースコードを、PC上で検証ができ、CIによるテスト自動化も可能です。ハードが完成する前の段階で容易に自動でコード検証が行えるので、効率的なソフトウェアの開発、検証並びに工数の削減が可能となり、修正コストを抑えることができます。
V字モデルでの不具合修正手戻り工数
各開発フェーズにおける一つの不具合が発生した時に要する修正コスト
GSILの各種機能や活用事例について、オンデマンドウェビナーでご紹介しています。
動画をご覧になりたい方は以下よりお申し込みください。
※2 HILS(Hardware-in-the-loop simulation):実制御装置(ECU)と模擬した制御対象を用いたシミュレーション
ECU制御ソフトウェアでは一つのECU内で手書きソースコード、自動ソースコード両方が使用されることが多くなってきています。GSILを使用すればそれらと、プラントモデルも合わせて結合テストをすることができます。
GSILでは関数単体テストではなく、複数関数にまたがった機能の単体テスト、ECU内部結合テスト、CAN等で接続された複数ECUにまたがったテストが可能です。
GSILでは以下のような仕様の検証や実行時エラーの検出が可能です。
GSILはECU制御ソフトの開発以外でも組込み向け制御ソフトウェアで応用することが可能です。
Ethernetを使用して対向機とGSILを接続し、制御ソフトウェアをシミュレーションできます。
GSILの年間保守契約にて技術サポートをご提供します。
また、お客様のECUコードからのvECU構築サービスやツールのカスタマイズ、CI化支援、お客様に合わせたトレーニングなどにも対応できますので、ご相談ください。
近年、ソフトウェアの実行速度に対する高速化の要求がはますます高まっています。例えば、SDV(Software defined vehicle)の時代を迎え、ソフトウェアの比率が高まる車載ECUでは、大量生産によるコスト削減のためにできるだけ低価格のマイコンを使用する必要がありますが、安価でクロック数が低いマイコンでもアプリケーションの実行速度は下げないことが重要となってきています。
CI(Continuous Integration:継続的インテグレーション)は開発における自動化プロセスであり、開発者がソースコードをコミットした後に静的解析、単体テスト、結合テストなどを行い、結果を確認するといった各種工程を自動化する、つまり「ソースコードをコミットするたびに継続して後工程を自動化する」ことで、開発を効率化することができます。
タイミング検証とは、例えば自動ブレーキシステムの場合、安全性確保のために「センサーが障害物を検出してから、必ず300ms以内にブレーキを作動させなければいけない」といったタイミングの要求に対し、そのタイミング要求を満たしているかどうかを検証することをいいます。
カバレッジ測定は、テストの「進捗率把握」「終了基準」の一つとして使用されます。例えば、C0カバレッジでは、対象ソースコード行数に対するテストされた行数の割合です。しかし、カバレッジ率が100%とは、すべての入力の組み合わせをテストしたということではありませんし、不具合が無いことの証明にもなりません。
組込みソフトウェアの検証は、一般的にハードウェア(実機)を使用して行われます。これをPC上でシミュレーションして検証できれば、実機で行うよりも不具合修正の手戻り工数が減るとともに、自動テストによる信頼性向上を図ることが可能です。
―車両全体シミュレーション、テストケース再利用―
SILSは、主にECUのソフトウェア開発向けの開発支援環境です。実機が完成していない段階でもPC上で各種検証を行うことで、CIの容易な実施、開発の手戻り工数削減、自動テストによる信頼性向上などが可能です。GSILは、ユビキタスAI社が販売している、CAN通信に対応したSILSツールです。CANを使うことで、応用範囲が更に広がります。
Simulinkなどを使用するMILS(Model In the Loop Simulation)では、ツールに含まれているモデルのライブラリを結線して制御モデルを作成することで、車両モデルをPC上で検証することができます。そのモデルをECUの実機で使用するマイコン向けにコードを自動生成すれば、GSILのようなSILSを使用しなくとも、手書きコードによるデバッグ作業を行うことなく実機での検証が可能になります。では、既にこのような開発を行っている場合に、GSILのようなSILSを使用するメリットはあるのでしょうか。
CI(Continuous Integration、継続的インテグレーション)とは、開発者が実装した新規のコードを頻繁に結合、テストする手法です。実装直後の早期に不具合を発見して不具合修正の手戻り工数を減らし、テストを自動化することでテスト工数を削減する。これを実現することにより、大きな開発効率の向上が望めます。しかし、制御ECUソフトウェアのCIを、HILSや実車などの検証環境で実現することは容易ではありません。
実行時エラーとは、コンパイル時には不具合かどうかわからない、プログラムを実行したときに発生するエラーで、ゼロ除算、バッファオーバーランなどのエラーをいいます。自動車の機能を制御するECUに実行時エラーが起きると、特に運転中は危険な状態になるため絶対に避けなければいけません。
ECU制御ソフトウェアの開発ではV字開発モデルが使用されています。不具合が発見されるのが後になればなるほど、そこまでの各工程をやり直す必要があるので、修正にかかる工数(手戻り工数)は大きくなってしまいます。そのため、可能な限り早期段階で不具合を発見し、修正することが求められます。
近年、車載制御ソフト開発の効率化のためにSILS(Software In the Loop Simulation)を採用するケース増えてきています。SILSでは、ハードウェアが完成する前の段階で容易にコード検証が行えるため、効率的なソフトウェアの開発・検証、そして工数の削減が可能となります。
昨今、ECUの制御ソフトウェアの重要度は高まり続け、それにともなうテスト工数が膨大になっていますが、そのテスト資産を活かすにはどうしたら良いでしょうか?ここでは、資産を有効に活用するための技術とそれに対応するツールをご紹介します。
車載ECUの制御では、特定の時間内に処理を終えないといけないといったタイミングの要求があります。このタイミング要求は、車載制御ECU、特に自動運転制御などでは数百の要求項目があり、開発の最終段階で要件未達が判明した場合、修正は容易ではありません。そのため、開発のより早い段階でのタイミング検証が求められます。
GTrainerはGSILを使用したECU制御ソフトウェア開発者向け学習パッケージです。演習環境はすべてソフトウェアベースで提供され、あらかじめ用意された問題集に沿って学習を行えるため、ハードウェアの購入やセットアップが不要です。
CodeSonarは静的解析ツールで特にその高度な解析エンジンにより不具合の見逃しが少なかったり、制御ECUでは重要な割り込み干渉の検出ができるのが特徴です。GSILと組み合わせてCI環境の実現によりコード変更直後の静的解析が可能となります。
Codeeはアプリケーション高速化支援ツールです。ソースコードを静的に解析し、高速化可能な部分を指摘し、どのように高速化できるかをサジェスチョンしたり、自動でコードを変更します。GSILと組み合わせてCI環境の実現により開発者がコードを変更した直後に、高速化支援が可能となります。
chronSUITEは、リアルタイムシステム向けのタイミング解析、最悪実行時間算出ツールです。chronSUITEは、シミュレーションによる検証と、実機での検証により、高精度で、まれにしか起こらない不具合等のタイミング検証が低コストで可能となります。GSILと組み合わせることで開発の早期の段階でタイミング検証が可能となります。
Testwell CTC++は、組込みシステム向けのカバレッジ計測ツールです。カバレッジを測定するために必要なインスツルメントおよびRAM消費量が非常に小さいのが特徴です。Testwell CTC++ とGSILを組み合わせることで実機完成前の早期の段階でカバレッジの測定が可能になります。
Infortainment/ADAS(先進運転支援システム)/ECU/ドライブレコーダー
ファクトリーオートメーション(FA)/ビルディングオートメーション(BAS)/オフィスオートメーション(OA)/プロセスオートメーション(PA)/POS
Digital Camera/Digital TV/IoT家電
手術用ロボット/血糖計/輸液ポンプ/体外血液循環装置/内視鏡/治療機器
太陽光発電/照明/EV/PHV/蓄電池/燃料電池/スマートメーター
ノートPC / デスクトップPC/産業用PC/エンタープライズサーバー/データセンター