従来の静的組み込みソフトウェアを使用した電子制御ユニット(ECU)の例を考えてみましょう。ブートローダは、ECUメインソフトウェアの起動(ソフトウェアをRAMにコピーするなど)を開始することと、起動前にソフトウェアのチェックを実行することの両方に使用されるソフトウェアコンポーネントです。ブートローダは、ソフトウェアの更新、受信、チェック、および更新されたソフトウェアのメモリ(通常はフラッシュメモリ)への書き込みも担当します。したがって、フラッシュブートローダーという用語も一般的に使用されます。
開発環境と本番環境で同じブートローダーが使用されていますか?
通常、車両および関連するECUの開発と本番環境では、同じブートローダが使用され、本番ECUで開発またはエンジニアリングブートローダの多くの機能が無効化されるように保護されます。車両開発では、開発ソフトウェアを迅速に展開できるように、本番ブートローダのセキュリティメカニズムを削除することが望ましいことがよくあります。
セキュアブートローダ
すべてのブートローダにセキュリティが求められるようになってきています。ただし、従来、これは区別であり、通常はセキュリティ、安全性、場合によってはパフォーマンスに関連する機能を保護するために実装されていました。
ブートローダは通常、起動時にECUのソフトウェアメモリをチェックし、ソフトウェアアップデートの前に受信したソフトウェアをチェックし、ソフトウェアアップデート後にメモリ内をチェックします。
メカニズムには、一般的に次のものが含まれます。
- ブート時にメモリに受信または存在するソフトウェアの認証で、多くの場合、ソフトウェアバイナリのハッシュを使用して、公式にリリースされたソフトウェアバージョンの安全なコンパイルプロセスから生成された正確性をチェックします。
- シードとキーを使用した送信者の認証、セキュアメモリを使用したECU内のセキュアデータの保護、およびアクセス可能/書き換え可能な領域を定義するためのメモリマップ。
デュアルブートローダ
ブートローダの実装の中には 2 つの部分に分かれているものもあるため、デュアルブートローダという用語があります。この場合、プライマリブートローダーは、ブートローダーをセキュリティで保護する一環として、更新不可能です。これは、モジュールの起動とセカンダリブートローダの更新に関係します。セカンダリブートローダは、安全なプロセスを介して更新することができ、メモリマップなどのソフトウェア更新プロセスの変更を可能にし、これらを通常どおりロックすることができます。このタイプのブートローダーは、HSM(ハードウェアセキュアモジュール)などのオンボードセキュアハードウェアを使用して更新プロセスを保護する新しい方法により、現在はあまり一般的ではありません。
この用語はデュアルブートと同様、2つのブートブロックまたはフルメモリが利用可能であり、1つのバージョンがアクティブな間に未使用のバージョンで更新を行うことができます。これには、このアップデート方法をサポートする各ECUに追加のメモリが必要です。
Capital Embedded Bootloader
Capital Embedded Bootloaderは、接続された診断ツールまたは無線手法を介して、開発中、車両生産中、および車両の耐用年数中に信頼性の高いECUアップデートをサポートします。標準化されたISO 14229 UDSプロトコルは、一般的な車両ネットワークバス、イーサネット、CAN/CAN-FD、LIN、FlexRayで使用され、ASAM校正プロトコルなどの他の方法を使用することもできます。サイバーセキュリティは、ソフトウェア更新フローの重要な側面であり、ソフトウェア認証を可能にする機能であり、セキュアブートオプションはソリューションの一部です。OEM(相手先ブランド供給)およびMCU固有の要件を満たすために、幅広いECUプロジェクトに対して幅広いサポートを利用できます。
OTAとFOTAの違いは何ですか?
OTA(Over the Air)アップデート、または (FOTA:Firmware Over the Air)は、自動車ECUなどの組み込みデバイス用の新しいソフトウェアを、ワークショップで直接接続されたサービスツールを介さずに、リモートで受信する方法です。これには、コーディネートECUのオンボード診断テスター機能や、ブートローダ自体のリカバリおよびセルフテスト機能が必要になる場合があります。