シーメンスは、 車載用組込みソフトウェア と 組込みソフトウェアの両方のエンジニアリング ・ソリューションを提供しています。シーメンスは、2023年11月にNucleus、Nucleus Hypervisor、Nucleus ReadyStart、Sokol Flex Linux、Sokol Omni Linux、Sourcery CodeBench製品(関連アドオンを含む)の提供を終了し、SoC向けのスタンドアロン組み込みソフトウェアの提供を終了しました。これらの製品の既存のサポート契約は引き続き履行されますので、詳細についてはシーメンス ・サポート・センター にお問い合わせください。
組み込みソフトウェアにはどのような種類があり、その目的は何ですか?
- オペレーティングシステム – オペレーティングシステム(OS)は、最も一般的な意味では、ユーザーがコンピューティングデバイス上で他のアプリケーションを実行できるようにするソフトウェアです。オペレーティング システムは、キーボードやマウスなどの入力デバイス、ディスプレイやプリンターなどの出力デバイス、ネットワーク接続、ハード ドライブやメモリなどのストレージ デバイスなど、プロセッサのハードウェア リソースを管理します。また、OSは、ソフトウェア・アプリケーション・プログラムの効率的な実行と管理、およびメモリ割り当てを容易にするサービスも提供します。
- ファームウェア – ファームウェアは、ハードウェアに直接記述されたソフトウェアの一種です。API、オペレーティングシステム、デバイスドライバを介さずに動作し、他のデバイスと通信したり、意図したとおりに基本的なタスクや機能を実行したりするために必要な指示やガイダンスを提供します。
- ミドルウェア – ミドルウェアは、アプリケーションとオペレーティングシステムの間に位置するソフトウェアレイヤーです。ミドルウェアは分散システムでよく使用され、次の機能を提供することでソフトウェア開発を簡素化します。
- 分散アプリケーションの複雑さを隠す
- ハードウェア、オペレーティング・システム、プロトコルの異種混在性のマスキング
- 相互運用可能、再利用可能、移植可能なアプリケーションを作成するために使用される統一された高レベルのインターフェイスを提供します。
- 作業の重複を最小限に抑え、アプリケーション間のコラボレーションを強化する一連の共通サービスの提供
- アプリケーション – エンドユーザーは、オペレーティングシステム上で実行され、ミドルウェアやファームウェアを使用または操作する最終的なソフトウェアアプリケーションを開発し、組み込みシステムのターゲット機能の主な焦点となります。各エンドアプリケーションは一意ですが、オペレーティングシステムとファームウェアはデバイス間で同一にすることができます。
組み込みソフトウェアと組み込みシステム
組み込みソフトウェアを実行するデバイス内のハードウェアコンポーネントは、「組み込みシステム」と呼ばれます。組み込みシステムで使用されるハードウェアコンポーネントの例としては、電源回路、中央処理装置、フラッシュメモリデバイス、タイマー、シリアル通信ポートなどがあります。デバイスの設計の初期段階では、組み込みシステムを構成するハードウェアと、デバイス内の構成が決定されます。次に、組み込みソフトウェアをゼロから開発し、その正確な構成でそのハードウェア上で排他的に実行します。そのため、組込みソフトウェア設計は、ハードウェアの機能やコンピュータプログラミングに関する深い知識を必要とする専門分野となっています。
組込みソフトウェアによる機能例
回路基板とコンピュータチップを備えたほとんどすべてのデバイスでは、これらのコンポーネントが組み込みソフトウェアシステムに配置されています。その結果、組み込みソフトウェアシステムは日常生活のいたるところにあり、民生用、産業用、自動車用、航空宇宙、医療用、商業用、通信用、軍事用テクノロジーの至る所で使用されています。
組み込みソフトウェアベースの機能の一般的な例には、次のようなものがあります。
- 医用画像機器に見られる画像処理システム
- 航空機に搭載されているフライ・バイ・ワイヤ制御システム
- 防犯カメラの動体検知システム
- 信号機に見られる交通管制システム
- スマートホーム機器に見られるタイミングおよび自動化システム
組み込みシステムにはどのような種類がありますか?
性能と機能の要件に基づいて、組み込みシステムには5つの主要なクラスがあります。
- リアルタイム組み込みシステムは、オペレーティングシステムの基盤となるアーキテクチャとスケジューリング、スレッド、分岐、割り込みレイテンシーのパフォーマンスの影響を受け、決定論的で反復可能な方法でタスクを完了します。汎用の組み込みシステムにはリアルタイム性が要求されず、完了時間に依存することなく割り込みや分岐を管理できます。グラフィックディスプレイとキーボードとマウスの管理は、一般的なシステムの良い例です。
- スタンドアロンの組み込みシステムは、ホストシステムや外部処理リソースなしでタスクを完了できます。接続されたデバイスからデータを出力または受信できますが、タスクを完了するためにそれらに依存しません。
- スタンドアロンの組み込みシステムは、ホストシステムや外部処理リソースなしでタスクを完了できます。接続されたデバイスからデータを出力または受信できますが、タスクを完了するためにそれらに依存しません。
- ネットワーク化された組み込みシステムは、割り当てられたタスクを実行するために接続されたネットワークに依存しています。
- システムのハードウェアアーキテクチャの複雑さに基づいて、組み込みシステムには主に3つのタイプがあります。ネットワーク化された組み込みシステムは、割り当てられたタスクを実行するために接続されたネットワークに依存しています。
エンドマーケットが組み込みシステムに及ぼす影響
組み込みシステムの要件とコンポーネントは、ターゲット市場の要求によって異なります。いくつか例をあげます。
- コンシューマ – 洗濯機、ウェアラブルデバイス、携帯電話などの消費財などのアプリケーションでは、組み込みシステムは、
- システム・オン・チップ、低消費電力またはバッテリ動作、およびグラフィックス・インターフェイス。これらのアプリケーションでは、設定可能なオペレーティングシステムと、設計の非動作「ドメイン」を遮断する機能が重視されます。
- ネットワーキング – エンタープライズネットワークの接続、通信、運用、および管理を可能にするアプリケーション。ユーザー、プロセス、アプリケーション、サービス、および外部ネットワーク/インターネット間の通信パスとサービスを提供します。組み込みネットワークアプリケーションは、応答速度、パケット処理、およびペリフェラルハードウェアパスに重点を置いています。
- 産業 – 工場のフロア管理、モーター、風車などのアプリケーションでは、クラウド接続と決定論的な「リアルタイム」操作の保護に重点が置かれる傾向があり、ミドルウェアに重点を置くことができます。
- 医療、自動車、航空宇宙 – これらの業界では、設計の一部が互いに分離され、必要なデータのみがシステムに出入りするようにし(セキュリティ)、エンドユーザーに害を及ぼさないこと(安全性)を保証する、セーフティクリティカルなシステムが混在しています。例えば、自動車や医療機器の自動運転システムなどです。これらの組み込みシステムは、オープンソース(Linux)と決定論的リアルタイムオペレーティングシステム(RTOS)の組み合わせを特徴とし、実績のあるミドルウェアを多用します。
車載組込みソフトウェアの違い
車載エレクトロニクスでは、ブレーキ、ステアリング、サスペンション、パワートレインなどの機能を制御する複数の組み込みシステム間で複雑なリアルタイムインタラクションが発生します。各組み込みシステムを含む物理的な筐体は、電子制御ユニット(ECU)と呼ばれます。各ECUとその組み込みソフトウェアは、分散システムと呼ばれる複雑な電気アーキテクチャの一部です。
車両の分散システムを構成するECUは、相互に通信することで、自動緊急ブレーキ、アダプティブクルーズコントロール、スタビリティコントロール、アダプティブヘッドライトなど、さまざまな機能を実行できます。1つの機能に、複数のネットワークプロトコルで接続された多数のECUに分散した20以上の組込みソフトウェアアプリケーション間での相互作用が必要な場合があります。組み込みソフトウェアとともに展開された複雑な制御アルゴリズムにより、機能の適切なタイミング、必要な入出力、およびデータセキュリティが確保されます。
車載ソフトウェア・アプリケーション・ベースの機能の一般的な例には、次のようなものがあります。
- アダプティブクルーズコントロール、自動緊急ブレーキ、レーンキープアシスト、トラフィックアシスト、車線逸脱警報などのADAS(先進運転支援システム)機能
- バッテリーマネジメント
- トルク補償
- 燃料噴射速度制御
ECUソフトウェアスタック
電子制御ユニット(ECU)は、チップレベルのハードウェアを備えたメインコンピューティングユニットと、組み込みソフトウェアのスタックで構成されています。しかし、自動車メーカーの間では、1つのチップに複数のコンピューティングコアを含む複雑な集積回路、いわゆるシステムオンチップ(SoC)を備えたECUを設計する傾向が高まっています。これらのSoCは、ハードウェアを統合するために、多数のECU抽象化をホストできます。ECUのソフトウェアスタックには、通常、低レベルのファームウェアから高レベルの組み込みソフトウェアアプリケーションまで、さまざまなソリューションが含まれています。
ECUスタック | 説明 |
組み込みソフトウェアアプリケーション | 制御アルゴリズム、処理、サービス |
アプリケーションフレームワーク | セキュリティと安全のフレームワーク |
動作環境 | AUTOSAR classic, AUTOSAR Adaptive, 入力/出力チャンネル |
組み込み仮想化 | リアルタイムOS、ECUの抽象化 |
ファームウェア | ブート・ローダー、セキュア・ストレージ、セキュア・スレッド |
ハードウェア | シリコンベースのデバイス、マイクロコントローラ、単層または多層基板 |