Skip to main content
このページは自動翻訳を使用して表示されます。 元の英語を表示しますか?

組み込みソフトウェア

組み込みソフトウェアは、SoCまたはICに埋め込まれた処理クラスター上で動作する特殊なアプリケーションまたはファームウェアです。ほとんどすべての電子製品には、今日の自動車、工場フロアオートメーション、航空電子機器、医療機器などに一般的な1つまたは複数の組み込みプロセッサが搭載されています。

組み込みソフトウェアにはどのような種類がありますか?

組み込みソフトウェアアプリケーションは、デバイスの特定の機能を制御するために、PC以外のデバイス内で(マイクロチップの一部として、またはチップの上にある別のアプリケーションの一部として)特殊なプログラミングです。さまざまなコンピューターシステムにインストールでき、さまざまなレベルの機能を提供するように変更できるPCアプリケーションとは異なり、組み込みソフトウェアのハードウェア要件と機能は固定されています。動作する特定のデバイス専用に作成されており、処理とメモリの制限はその仕様に直接関係しています。この議論の文脈では、組み込みソフトウェアには、追加のロジックに「埋め込まれた」単一のマイクロプロセッサまたはマイクロプロセッサのクラスター上で実行されるアプリケーション、ファームウェア、ミドルウェア、およびオペレーティングシステムが含まれます。

関連製品: Capital Embedded AR Classic | Capital Embedded Integrator AR Classic | Capital Embedded Virtualizer AR Classic

A professional working on a computer with a graph, another person standing nearby observing the screen.

組み込みシステムの特徴と特徴

組み込みシステムにはさまざまな種類がありますが、それらはすべて同じ利点と設計上の特徴を共有しています。

すべての組み込みシステムはタスク固有です

使用可能期間を通じて、事前にプログラムされた同じ機能を実行し、変更することはできません。

すべての組み込みシステムは高効率です

組み込みソフトウェアのリソース要件は、それがインストールされているハードウェアの容量を超えてはならず、ハードウェアの仕様は組み込みソフトウェアの最低要件を超えてはなりません。

安定性を重視した設計

すべての組み込みシステムは、信頼性が高く安定するように設計されています。彼らは、彼らを収容するデバイスの寿命全体を通して、一貫した応答時間と機能でタスクを実行しなければなりません。

Siemens どのような組み込みソフトウェアを提供していますか?

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の抽象化

ファームウェア

ブートローダー、セキュアストレージ、セキュア・スレッディング

ハードウェア

シリコンベースのデバイス、マイクロコントローラー、単層または多層ボード

組み込みソフトウェア関連のリソース

もっと詳しく知る

組み込みソフトウェアとネットワーク設計

重要な製品機能を提供する革新的で安全なソフトウェアを迅速かつ効率的に開発する方法をご覧ください。