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