こちらのページは日本語に自動翻訳したものです。 元の英語を表示しますか?
この翻訳は役に立ちましたか?
  1. Home

組込みソフトウェア

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

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

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

embedded-software-is803905696-feature-640x360

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

組み込みシステムには多くの種類がありますが、それらはすべて同じ有益な機能と設計特性を共有しています。

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

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

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

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

安定性を重視した設計

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

シーメンスはどのような種類の組み込みソフトウェアを提供していますか?

シーメンスは、車載用組込みソフトウェアと組込みソフトウェア・エンジニアリング・ソリューションの両方を提供しています。シーメンスは、Sokol、Nucleus、およびマルチコアソフトウェア製品の廃止に伴い、SoC向けのスタンドアロン組み込みソフトウェアの提供を終了しました。

組み込みソフトウェアにはどのような種類があり、その目的は何ですか?

  • オペレーティングシステム – オペレーティングシステム(OS)は、最も一般的な意味では、ユーザーがコンピューティングデバイス上で他のアプリケーションを実行できるようにするソフトウェアです。オペレーティング システムは、キーボードやマウスなどの入力デバイス、ディスプレイやプリンターなどの出力デバイス、ネットワーク接続、ハード ドライブやメモリなどのストレージ デバイスなど、プロセッサのハードウェア リソースを管理します。また、OSは、ソフトウェア・アプリケーション・プログラムの効率的な実行と管理、およびメモリ割り当てを容易にするサービスも提供します。
  • ファームウェア – ファームウェアは、ハードウェアに直接記述されたソフトウェアの一種です。API、オペレーティングシステム、デバイスドライバを介さずに動作し、他のデバイスと通信したり、意図したとおりに基本的なタスクや機能を実行したりするために必要な指示やガイダンスを提供します。
  • ミドルウェア – ミドルウェアは、アプリケーションとオペレーティングシステムの間に位置するソフトウェアレイヤーです。ミドルウェアは分散システムでよく使用され、次の機能を提供することでソフトウェア開発を簡素化します。

    • 分散アプリケーションの複雑さを隠す
    • ハードウェア、オペレーティング・システム、プロトコルの異種混在性のマスキング
    • 相互運用可能、再利用可能、移植可能なアプリケーションを作成するために使用される統一された高レベルのインターフェイスを提供します。
    • 作業の重複を最小限に抑え、アプリケーション間のコラボレーションを強化する一連の共通サービスの提供
  • アプリケーション – エンドユーザーは、オペレーティングシステム上で実行され、ミドルウェアやファームウェアを使用または操作する最終的なソフトウェアアプリケーションを開発し、組み込みシステムのターゲット機能の主な焦点となります。各エンドアプリケーションは一意ですが、オペレーティングシステムとファームウェアはデバイス間で同一にすることができます。

組み込みソフトウェア vs 組み込みシステム

組み込みソフトウェアを実行するデバイス内のハードウェアコンポーネントは、「組み込みシステム」と呼ばれます。組み込みシステムで使用されるハードウェアコンポーネントの例としては、電源回路、中央処理装置、フラッシュメモリデバイス、タイマー、シリアル通信ポートなどがあります。デバイスの設計の初期段階では、組み込みシステムを構成するハードウェアと、デバイス内の構成が決定されます。次に、組み込みソフトウェアをゼロから開発し、その正確な構成でそのハードウェア上で排他的に実行します。そのため、組込みソフトウェア設計は、ハードウェアの機能やコンピュータプログラミングに関する深い知識を必要とする専門分野となっています。

組込みソフトウェアによる機能例

回路基板とコンピュータチップを備えたほとんどすべてのデバイスでは、これらのコンポーネントが組み込みソフトウェアシステムに配置されています。その結果、組み込みソフトウェアシステムは日常生活のいたるところにあり、民生用、産業用、自動車用、航空宇宙、医療用、商業用、通信用、軍事用テクノロジーの至る所で使用されています。

組み込みソフトウェアベースの機能の一般的な例には、次のようなものがあります。

  • 医用画像機器に見られる画像処理システム
  • 航空機に搭載されているフライ・バイ・ワイヤ制御システム
  • 防犯カメラの動体検知システム
  • 信号機に見られる交通管制システム
  • スマートホーム機器に見られるタイミングおよび自動化システム

組み込みシステムにはどのような種類がありますか?

性能と機能の要件に基づいて、組み込みシステムには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の抽象化

ファームウェア

ブート・ローダー、セキュア・ストレージ、セキュア・スレッド

ハードウェア

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

関連情報

ソフトウェア・エンジニアリング・ソリューション

シーメンスのソフトウェアエンジニアリング製品では、ソフトウェア開発サイクル全体を管理することができます。

車載組み込みソフトウェア

自動車に組み込まれたソフトウェアは、ブランド体験の創造における差別化要因として、機械工学に取って代わりつつあります。