組込み制御ソフト開発へのシミュレーション応用による開発効率向上
組込みソフトウェアの検証は、一般的にハードウェア(実機)を使用して行われます。これをPC上でシミュレーションして検証できれば、実機で行うよりも不具合修正の手戻り工数が減るとともに、自動テストによる信頼性向上を図ることが可能です。
実機を使用した開発での課題
- 実機は高価で数が揃えられない
- 複数人数での並列開発ができない
- ソフト/ハードの問題切り分けが難しい
- デバッグが難しい
- 自動テストが難しい
GSILを使用した開発フロー
- 安価で複数人での開発可能
- いつでもどこでもテスト可能
- ソフト/ハードの問題切り分けが容易
- デバッグが容易
- 自動テストが容易/信頼性向上
目次
1. PC上でのシミュレーション実現のハードル
2. GSILを使ったPC上でのシミュレーション
3. 容易な環境構築
4. 使用方法が簡単
5. テスト資産の活用
5-1. 既存の対向機アプリを使用してGSILでアプリ検証
5-2. 既存の対向機(ハード)を使用してGSILでアプリ検証
6. GSILを実機モニターとして使用
6-1. 実機完成後にモニターとしてGSILを使用
7. まとめ
1. PC上でのシミュレーション実現のハードル
しかし、PC上でのシミュレーションの実現にはいくつかのハードルがあります。
- テストケースを入力するのが難しい(スイッチ)
- 出力確認が難しい(センサー等)
- 実機毎にハードウェアが異なり、デバイスドライバ対応が必要
- Simulinkを使用したモデルベースによるシミュレーションは、モデル記述方法、コード生成、BSWとの繋ぎこみなどを学ぶ必要があり、敷居が高い。
2. GSILを使ったPC上でのシミュレーション
ユビキタスAI社が販売するGSILは、これらのハードルを克服し、PC上での検証を可能にするシミュレーション向け環境です。
- GSILは、検証環境をPCで実行可能なgccなどのコンパイラを使ってテスト対象のソフトをビルド。その際に入力、出力は、VBUSと呼ばれるBUS上にデータをリードライト可能に。
- 入出力用のGUIを持っているので、そのGUI上でスライダーなどを使って入力を変化させ、プロッターで結果を確認。
- 入力をCSVファイルで与えて、その結果をCSVファイルで出力して確認。
- テストでは、Pythonで入力を作成し、結果を確認することで要求仕様通りに動作しているかを自動テスト。
- 人手では不可能な、網羅的なランダムテストを行うことが可能。発見しづらいゼロ割、バッファオーバーランなどの実行時エラーを自動的に検出。またコンソールから実行することで、CI/CDの実現が容易。
3. 容易な環境構築
GSILは、入力/出力をVBUSに直接リードライトするので、BSWの部分はシミュレーション対象外。これにより、実機ごとの異なるデバイスドライバ対応が不要。gccでコンパイルが通るようにマイコン向けに作られたソースコードを変更する必要はあるものの、vECU構築アシスト機能により、特定のマイコンであればその作業は不要。スタブの自動生成も可能。
4. 使用方法が簡単
Simulinkを使用したモデルベースによるシミュレーションは、モデル記述方、コード生成、BSWとの繋ぎこみなどを学ぶ必要がありますが、GSILでは既存のCソースコードをそのままシミュレーションできますし、その使い方は容易なので、新たな事を学ぶ必要はありません。
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
5. テスト資産の活用
既存の対向機がある場合は、それを使用してテスト資産を活かせます。
5-1. 既存の対向機アプリを使用してGSILでアプリ検証
既存の対向機がある場合の検証の構成
- 対向機で使用するデータをvBUSで利用する
- 対応の為に環境構築(データのvBUSへのR/W対応)が必要
- 対向機アプリのデータがグローバル変数でアクセスしているような物であれば、対応にそれほど工数はかからない
- 試験用の対向機アプリがSimulinkで作られていれば、更に容易に構築可能
5-2. 既存の対向機(ハード)を使用してGSILでアプリ検証
Ethernetを使用した検証
- 既存対向機(ハードウェア)がEthernetでデータを制御していればそれをそのまま使用可能
- Ethernetブリッジの作成(入出力信号の定義)は必要
- GSIL側はEthernetブリッジを作成するか、代わりにGSILサブシミュレーターを使用してJSONで入出力の信号を定義することも可能
6. GSILを実機モニターとして使用
開発終了後は、GSILを実機のモニターとして使用することもできます。
6-1. 実機完成後にモニターとしてGSILを使用
アプリ検証後にモニターとして使用
- iTestを使用して、設定したiTestのGUIをそのまま使用して、実機の制御入力やモニターとして使用することも可能
7. まとめ
このように、GSILを組込み制御ソフトウェア開発のシミュレーションに応用し、実機の完成前にPC上でシミュレーションすることで、不具合の手戻り工数削減、自動テストによるテスト工数削減、信頼性向上、CI/CDの実現が可能になります。
GSILにご興味ある方は、下のボタンからお問い合わせください。GSILについて、より詳しくご説明いたします。
このコラムの著者
株式会社ユビキタスAI
エンベデッド第3事業部 担当部長
植田 宏​(うえだ ひろし)
大学卒業後Tire1メーカーへ入社、ECUソフトウェア開発を行う。その後海外で組込みソフトウェア開発エンジニアの経験を経て、帰国。1998年より車載系ソフトウェアの技術営業に従事。自身の経験を活かし、課題解決に役立つ海外のソフトウェア商材を取扱い、国内のエンジニアへ届けている。
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
ソフトウェアアプリケーションの実行速度高速化技術
2024.09.04
組込み制御ソフトウェアでのCIの課題と実現方法
2024.09.02
イベントチェーンを応用した車載ECUのタイミング検証
2024.08.30
車載制御ECUソフトウェア教育向けパッケージGTrainerとは
2024.08.08
システムテストのカバレッジ測定
2024.06.13
CANを使用したSILSテスト ―車両全体シミュレーション、テストケース再利用―
2024.05.27
GSILのMILS開発への適用
2023.12.20
GSILのCI(Continuous Integration)適用
2023.09.22
GSILの網羅的自動テストケース生成機能を使ったECUの信頼性向上
2023.09.13
OEM⇔サプライヤでのECU制御ソフトウェア環境共有による手戻り工数削減方法
2023.07.25
SILSを使用した車載制御ECUソフトウェア開発競争力強化
2023.07.20
車載ECUシミュレーションでテスト資産を活かすための技術とは?
2022.05.16
早期の車載ECUタイミング検証の実現
2021.08.27