ダウウェイ・ビークルのCEO、ジョニー・リュー氏による記事
公開日: 2026年3月5日
主なポイント:
- ソフトウェアシフト: 現在、現代の自動車の価値の50%以上をソフトウェアが占めている。
- コアコントローラー: 車両制御ユニット(VCU)は、電気自動車(EV)およびプラグインハイブリッド車(PHEV)の高度な制御を行います。電子制御ユニット(ECU)は、ブレーキやエンジン制御といった特定のサブシステムのタスクを処理します。
- 工学的制約: 車載ソフトウェアは、極端な温度(-40℃~125℃)に耐え、ミリ秒単位の応答時間を保証し、10~15年間動作し、厳格なISO 26262安全基準を満たす必要があります。
- 建築: 業界はAUTOSARに基づいたモジュール式で階層化されたアーキテクチャに依存している。
1. 自動車エレクトロニクスにおけるVCUとECUの概要
自動車は急速に進化している。今日では、ソフトウェアが車両の走行性能を左右する主要な要素となっている。車両制御ユニット(VCU)と電子制御ユニット(ECU)は、この変化の中心に位置している。
一般的な民生用電子機器とは異なり、車載ソフトウェアは極めて過酷な条件下で動作します。エンジニアは、車載グレードの信頼性を保証し、電磁干渉を無視し、数百万時間に及ぶ走行時間においても絶対的な安全性を維持するソフトウェアを開発しなければなりません。このガイドでは、信頼性の高いVCUおよびECUシステムを構築するために必要な、ハードウェアの限界、ソフトウェアアーキテクチャ、アルゴリズム、およびテスト方法を詳細に解説します。
2. コア機能とハードウェア基盤

両ユニットは連続閉ループシステムを形成する。 認識 → 決定 → 実行 → フィードバック 車載ネットワークを介して。
- VCU(車両制御ユニット): これは新エネルギー車(NEV)の頭脳となる部分です。アクセルペダルの位置など、ドライバーの入力を読み取ります。そして、モーター、バッテリー、充電器を連携させて、電力配分、エネルギー回生、安全性を管理します。
- ECU(電子制御ユニット): これらは、すべての自動車に搭載されている物理的な制御システムです。例えば、エンジンマネジメントシステム(EMS)は燃料噴射を制御し、アンチロックブレーキシステム(ABS)は車輪速度を監視します。
ソフトウェア設計は物理的なハードウェアに大きく依存する。AEC-Q100およびASIL(B/D)認証を取得するために、エンジニアは厳格なハードウェア規則に従う必要がある。
| ハードウェアコンポーネント | VCUの要件 | ECUの要件 | 主要エンジニアリング仕様 |
| マイクロコントローラ(MCU) | マルチコア(例:NXP S32K3、Infineon AURIX)、100MHz以上 | 中低価格帯(例:STM32、ルネサスRH850) | 並列処理をサポートする必要があります。 |
| メモリ | フラッシュメモリ:1MB以上、高速RAM | フラッシュメモリ:256KB~1MB、高速RAM | フラッシュメモリは電源オフ後もデータを保持する必要がある。 |
| インターフェース | アナログ/デジタル入出力、イーサネット、CAN FD | 入出力、リレー、LIN、CAN 2.0B | 高速バスプロトコルと低速バスプロトコルを接続します。 |
| 電源モジュール | 9V~16Vの許容範囲 | 9V~16Vの許容範囲 | 過電圧・低電圧保護が必要です。 |
3. VCUおよびECUソフトウェアアーキテクチャ設計

最新の車載ソフトウェアは、AUTOSAR(Automotive Open System Architecture)に基づいた階層型モジュール構造を採用しています。これによりハードウェアとソフトウェアが分離され、開発者は一度コードを書けば、異なるチップ間で再利用できるようになります。
- ハードウェア抽象化レイヤー(HAL / MCAL): 最も低いレベル。ハードウェアの違いを隠蔽するために、GPIOの初期化やCANデータの送信といった基本機能を標準化する。
- 基本ソフトウェア層(BSW): コアサービスを提供します。リアルタイムオペレーティングシステム(FreeRTOSやSYS/BIOSなどのRTOS)、ネットワークスタック、およびISO 14229診断モジュールを内蔵しています。

- ミドルウェア(MW): BSWをアプリケーションに接続します。センサーノイズを低減するためのカルマンフィルターや、CAN信号用のDBCパーサーなど、一般的な数学関数を保持しています。
- アプリケーション層(APP): 特定の制御機能が存在する最上位レベル。VCUの電力配分モジュールやECUの燃料噴射モジュールなどがここに配置される。

4. ソフトウェア設計における主要技術

リアルタイム制御とRTOS管理
自動車コードは待てない。VCUの電力割り当てコマンドは、一定時間内に処理されなければならない。 10ms. ECUのブレーキ指令は、 5ms。
RTOSは、これらの期限を満たすためにプリエンプティブスケジューリングを使用します。障害処理タスクは最も高い優先度を持ち、ログ記録は最も低い優先度を持ちます。割り込み処理時間は以下である必要があります。 1ms. エンジニアは、CPUのフリーズを防ぐために、高速な割り込み処理に「サービスルーチン+タスクキュー」方式をよく用いる。
コア制御アルゴリズム
- VCUロジック: このシステムは、ペダル位置とバッテリーの充電状態に基づいて、モーターとエンジン間の電力バランスを動的に調整します。エネルギー回生においては、PID制御アルゴリズムを用いて運動エネルギーをバッテリー充電に変換します。ソフトウェアは回生トルクを慎重に調整することで、車両が安全にブレーキをかけられるようにします。
- ECUロジック: エンジンECUは、クローズドループPID制御を使用して、エンジン回転数に基づいて空燃比を管理し、点火時期を調整します。
バス通信プロトコル
VCUとECUはCAN 2.0B、CAN FD、およびLINネットワークを介して通信します。エンジニアは厳密な信号マトリックスを定義します。たとえば、VCUはID 0x100、8バイトのデータ、10ms周期でトルクコマンドをモーターECUに送信します。モーターECUはID 0x101、4バイトのデータ、5ms周期で速度フィードバックを返信します。
故障診断と安全性(ISO 15031-6)
ソフトウェアはセンサーデータを常にハードリミットと比較しています。VCU電源電圧が9Vを下回ると、障害が発生します。障害は4つのレベルに分類されます。
- レベル1(緊急時): モーターを即座に停止します。
- レベル2(重度): 電力制限(リンプホームモード)。
- レベル3(一般): 一部機能が失われますが、主要な駆動機能は正常に動作します。
- レベル4(マイナー): 今後のメンテナンスのために記録しました。
メモリには少なくとも 50の歴史的な断層 電源サイクルに耐える。
機能安全(ISO 26262)
VCU電源モジュールは一般的に ASIL-B 安全評価。重要なエンジン点火には ASIL-C. エンジニアはデュアルコアMCUを使用します。メインコアがロジックを実行し、セカンダリのチェッカーコアがエラーを監視し、メインコアが故障した場合に処理を引き継ぎます。

5. Vモデルエンジニアリングプロセス
自動車ソフトウェアエンジニアリングは、8段階のVモデルに従って、すべての要件を最初から最後まで追跡します。
- 要件分析: 電力配分誤差を5%以下、エネルギー回収効率を20%以上、故障応答時間を10ms以下など、厳格な目標を設定する。
- システム設計: 階層型アーキテクチャとCANバスマトリックスの設計。
- 詳細設計: PIDパラメータの設定とフィルタリングロジック。
- コーディング実装: バグを防止するため、C/C++コードはMISRA C規格に厳密に従って記述する。
- 単体テスト: 静的コード解析を実行しています。
- 統合テスト: モジュール間のバス通信をチェックしています。
- システムテスト: HIL(Hardware-in-the-Loop)ベンチテストのために、実際のハードウェアにコードをフラッシュする。
- 検証と配信: 最終点検と車両への組み込み。
6. テストフレームワークと実践的なソリューション
エンジニアは、バグを早期に発見するために、複数段階のテストフレームワークを使用します。
- シミュレーション: MATLAB/Simulinkを使用して、電力分配アルゴリズムを視覚的にテストする。
- HILテスト: dSPACEシステムを使用して、実際のエンジン回転数とエンジン負荷を物理的なECUに対してシミュレーションする。
- 路上テスト: 実際に車を運転して、市街地の交通、高速道路、そして水上を走行する。
一般的なボトルネックの解決:
複数の車種でソフトウェアが動作するようにするため、エンジニアはコアコードを書き直す代わりに、パラメータ化された設定ファイルを使用します。CPUに過負荷がかかった場合は、複雑な数式をシンプルな「ルックアップテーブル」に置き換えて処理時間を短縮します。隠れたバグを追跡するために、エラー発生時の車両の正確な状態を記録する詳細なデータロガーを構築します。
7.コンプライアンス基準と今後の動向
エンジニアは厳格な一連の規則に従わなければなりません。安全性についてはISO 26262、コーディングについてはMISRA C/C++、CANおよび診断についてはISO 11898/14229、ハードウェアについてはAEC-Q100、ハッカー対策についてはISO/SAE 21434です。
今後、業界は数十個の小型ECUから、サービス指向アーキテクチャ(SOA)を採用した少数の高性能ドメインコントローラへと移行しつつあります。各チームは、ドライバーの運転習慣を予測するためにディープラーニングを導入しています。OTA(Over-The-Air)アップデートにより、差分パッチを適用してソフトウェアをリモートで修正することが可能になりました。さらに、AUTOSAR Adaptiveプラットフォームはハイパーバイザを使用して、単一チップ上で複数のオペレーティングシステムを実行します。
8. よくある質問
Q1:VCUまたはECUの標準的なソフトウェアアーキテクチャは何ですか?
簡潔な回答: 業界では、ハードウェアとアプリケーションロジックを分離するために、階層化されたAUTOSAR準拠のアーキテクチャに依存している。
ほとんどの自動車用ECUは、コードのモジュール性と安全性を確保するためにこの構造を採用しています。この構造には、MCAL(ハードウェアドライバ)、BSW(オペレーティングシステム、CANスタック、診断)、ミドルウェア(信号処理)、およびアプリケーション層(制御アルゴリズム)が含まれます。
Q2:VCUは車両内の複数のECUとどのように連携するのですか?
簡潔な回答: VCUは中央制御ユニットとして機能し、車両からの入力を読み取り、CANおよびLINネットワークを介して個々のECUに動作コマンドを送信する。
現代の自動車には数十個のECU(電子制御ユニット)が搭載されています。VCU(車両制御ユニット)はペダル入力とバッテリーの状態を読み取り、適切な応答を計算し、CAN FDや車載イーサネットなどの高速ネットワークを介して、モーター制御ユニットやブレーキシステムなどの特定のユニットにデータを送信します。
Q3:VCU/ECUの制御アルゴリズムはどのように開発されるのですか?
簡潔な回答: エンジニアは、モデルベース開発(MBD)を使用して視覚的なロジックモデルを設計し、最終的なCコードを自動的に生成します。
チームは、C言語のコードを一から記述する代わりに、MATLABやSimulinkといったツールを使用してロジックを設計します。そして、これらのモデル上でシミュレーションを実行し、TargetLinkなどのツールを使ってハードウェア向けの製品版コードを構築します。
Q4:ECUおよびVCUソフトウェアにおける安全性はどのように確保されていますか?
簡潔な回答: エンジニアはISO 26262規格を厳守し、ハードウェアの冗長化と継続的なソフトウェアチェックを用いて危険な故障を防止しています。
システムはリスクに基づいてASIL(システムセキュリティレベル)評価を受けます。エンジニアはデュアルコアのロックステップCPU、ウォッチドッグタイマー、CRCデータ検証などを活用します。また、単一の配線断線やセンサーの故障がシステム障害を引き起こさないことを証明するために、障害注入テストを実行します。
Q5:エンジニアは、大規模なECUシステムの複雑さをどのように管理すればよいでしょうか?
簡潔な回答: 彼らはモジュール設計を採用し、ソフトウェア機能を独立させるためにサービス指向アーキテクチャ(SOA)へと移行している。
車両機能の85%は他の機能に依存しているため、密結合したコードは容易に不具合を起こします。車載イーサネットとSOA(サービス指向アーキテクチャ)を用いることで、エンジニアは機能を分離できます。これにより、車両のネットワーク全体に影響を与えることなく、無線で特定のモジュールをアップデートすることが可能になります。
ボーナス:VCU/ECUのソフトウェアアーキテクト向け高度な面接質問10選
(大手OEMメーカーやティア1サプライヤーがよく尋ねるこれらの質問で、あなたの知識を試してみましょう。)
- OSEK/AUTOSARオペレーティングシステムで優先順位の逆転問題が発生した場合、どのように解決すればよいですか?
- CANバスがECUをディープスリープ状態から起動させる正確な手順を説明してください。
- 主トルクセンサーが故障した場合に、VCU(車両制御ユニット)の適切なリンプホーム戦略をどのように設計すればよいでしょうか?
- モデルベース開発において、低価格帯のMCUにおける浮動小数点数から固定小数点数への変換はどのように処理しますか?
- ASIL分解と物理的なハードウェア冗長性には、どのような機能的な違いがありますか?
- 複数の高速処理タスクが同じグローバル変数からデータを読み取る場合、データの一貫性をどのように確保しますか?
- UDS(ISO 14229)0x19サービスについて説明し、EEPROMが過去のDTCとフリーズフレームをどのように保存するかを解説してください。
- VCU上でセキュアなOTAアップデートを実現するために、A/Bパーティションスワップ戦略をどのように実装しますか?
- パワートレイン制御におけるCAN 2.0B、CAN FD、および車載イーサネットの技術的なトレードオフは何ですか?
- AUTOSAR RTEレイヤーを使用して、新しいエネルギー回収アルゴリズムを基盤となるハードウェアから分離する方法を説明してください。





