私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
組み込みネットワークは、さまざまな組み込みシステムを接続して、相互に情報を転送し、リソースを共有できるようにするために使用されるネットワーク システムです。組み込みシステムは、家庭用情報ネットワーク、産業オートメーション分野のフィールドバス、モバイル情報機器などの組み込みシステムのモバイル通信ネットワークなど、さまざまな状況で異なる接続テクノロジを使用します。また、専用の接続テクノロジもいくつかあります。組み込みシステムの接続に使用されます。
フィールドバスは、アナログ機器制御システム、集中デジタル制御システム、分散制御システムに続いて 1980 年代半ばに開発されたコンピュータ制御技術であり、今日の自動化制御分野における技術開発のホットスポットの 1 つでもあります。産業オートメーションの分野では、コンピューター ローカル エリア ネットワークと呼ばれることがよくあります。
フィールドバスは、デジタル センサー、コンバータ、産業用機器、制御アクチュエーターなどのフィールド デバイスを産業用プロセス制御ユニットやフィールド オペレーティング ステーションと相互接続するネットワークです。これは、完全なデジタル化、分散化、双方向伝送、およびマルチブランチの特徴を持ち、フィールドレベルまでの産業用制御ネットワークの開発の産物です。
フィールドバスは、生産制御およびネットワーク構造の下部に位置する低帯域幅の基盤となる制御ネットワークであるため、基盤ネットワーク (インフラネット) とも呼ばれます。主に生産現場で、測定機器と制御機器間の双方向シリアル、マルチノードデジタル通信を実現するために使用されます。
フィールドコントロールシステム(FCS)は、フィールドバスを利用して各種コントローラと計測機器を接続する制御システムで、制御機能を現場に完全分散させ、導入コストや保守コストを削減します。実際、FCS はオープンで相互運用可能な完全に分散型の分散制御システムです。
組み込みフィールド制御システムは、従来の測定および制御機器に専用のマイクロプロセッサを組み込んでおり、デジタル コンピューティングおよびデジタル通信機能を備えています。ツイストペア、電力線、または光ファイバーをバスとして使用し、複数の測定および制御機器をネットワークに接続します。標準通信プロトコルに従って、現場にある複数のコンピュータ化された測定および制御機器、および現場の機器と遠隔監視を接続します。コンピュータ間でのデータ伝送や情報交換を実現し、実際のニーズに合わせたさまざまな自動制御システムを構築します。つまり、フィールドバス制御システムは、個々の分散測定および制御デバイスをネットワーク ノードに変え、フィールドバスをリンクとして使用して、これらの分散デバイスを相互に通信し、自動制御タスクを一緒に完了できるネットワーク システムにします。フィールドバス技術の助けにより、従来の単一の分散制御機器は、相互に通信し、協調して動作する全体となりました。
ホーム情報ネットワークは、家庭内のパソコン、家電製品、水道、電気、ガスメーター、照明機器、ネットワーク機器、セキュリティ機器などを接続するローカルエリアネットワークです。その主な機能は、上記のデバイスを集中制御し、それらをインターネットに接続してネットワーク リソースとサービスを共有することです。さらに、住宅情報ネットワークは家全体、さらにはコミュニティ全体に拡張することもでき、スマート住宅コミュニティやスマート社会の基盤となります。 ホーム情報ネットワークシステムでは、家電製品、水道、電気、ガスメーター、照明器具など、あらゆる住宅機器がインテリジェント化されます。これらは相互に通信し、ホーム ゲートウェイを介してインターネットにアクセスできます。家庭情報ネットワークの実現は、人々に、より安全、より便利、快適な住環境を提供します。例えば、飼い主が外出すると自動的にドアが閉まって施錠され、監視システムが自動的にオンになり、家の異常を飼い主に自動的に通知するなど、家の中のさまざまな機器をいつでも制御できます。いつでもどこでも計測データを自動でアップロードできます。
家族情報ネットワークは、次の 2 つの基本的な問題を解決する必要があります。
(1) 家電製品、水道、電気、ガスメーター、照明器具等の接続方法。
(2) これらの接続された機器間の相互運用性、つまり、ホーム情報ネットワーク上の機器が必要に応じて自動的にサービスを要求し、関連する機器がサービスを提供したり、要求を受け入れて処理したりできる相互運用性をどのように実現するか。ホーム情報ネットワークは、バス型、スター型構造など、さまざまなトポロジー構造を採用できます。ホーム情報ネットワークはさらにいくつかの制御サブネットとデータ サブネットに分割できます。制御サブネットはフィールド バスに似ており、主に制御情報の送受信に使用されます。データ サブネットにはより高い帯域幅要件があり、データ サブネットに接続されているデバイスは大量のデータ情報を送信する必要があります。
近年、携帯電話通信の急速な発展とパーソナルコンピュータの急速な普及に伴い、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータなどの様々なポータブルコンピュータ間でのデータ通信が急速に増加している。もはやニーズを満たしていません。いつでもどこでもデータ情報を伝送・交換したいという願いから、データ通信の伝送媒体は有線から無線へと拡大し、無線によるモバイルデータ通信が登場しました。 無線データ通信ネットワークは、電波を介してデータを送信するネットワーク システムです。有線データ通信をベースに開発されており、モバイル状態でもデータ通信を実現できます。無線データ通信ネットワークを通じて、スマートフォン、PDA、
ノートブック コンピュータは相互にデータ情報を転送し、インターネットにアクセスできます。無線データ通信ネットワークは、短距離無線ネットワークと無線インターネットに分けられます。短距離無線ネットワークには、主に 802.11、Bluetooth、IrDA、HomeRF が含まれます。ワイヤレス インターネットまたはモバイル インターネットは主に 2 つのワイヤレス接続技術を使用します。1 つは GSM、GPRS、CDPD (Cellular Digital Packet Data) などのモバイル ワイヤレス アクセス技術で、もう 1 つはマイクロ波、スペクトル拡散通信などの固定ワイヤレス アクセス技術です。 、衛星および無線光伝送など。
インターネットと組み込み技術の急速な発展に伴い、Webテレビ電話やセットトップボックス、情報家電などの組み込みシステム製品など、ますます多くの情報家電がインターネットに接続され、利便性を共有することが求められています。 、インターネットによって提供されるユビキタスな情報リソースとサービス、つまり組み込みインターネット技術。組み込みインターネット技術には、インテリジェント交通機関、ハウスキーピング システム、ホーム オートメーション、産業オートメーション、POS、電子商取引の分野で幅広い応用の可能性があります。
1.組み込みインターネットアクセス方式
組み込みデバイスは、TCP/IP プロトコル スタックと関連ソフトウェアを統合し、インターネット上のノードとして使用し、IP アドレスを割り当てて、インターネットに直接相互接続できます。このアクセス方法の特徴は次のとおりです。
2.組み込みTCP/IPプロトコルスタック
組み込み TCP/IP プロトコル スタックによって完成される機能は、完全な TCP/IP プロトコル スタックと同じですが、組み込みシステムのリソース制限により、組み込みプロトコル スタックの一部のインジケーターとインターフェイスが通常のものと異なる場合があります。プロトコルスタック。
(1) 組み込みプロトコルスタックの呼び出しインターフェースは、通常のプロトコルスタックとは異なります。通常のプロトコルスタックのソケットインターフェイスは標準であり、アプリケーションソフトウェアとの互換性は良好ですが、標準化されたインターフェイスを実装する場合、コードのオーバーヘッド、処理、ストレージのオーバーヘッドが膨大になります。したがって、ほとんどのメーカーは、標準プロトコル スタック インターフェイスを組み込みシステムに移植するときに、さまざまな程度の変更と簡素化を行って、効率的な専用プロトコル スタックを確立しました。それらの API は、一般的なプロトコル スタックの API とはまったく同じでなければなりません。 。
(2) 組み込みプロトコル スタックの調整可能性。ほとんどの組み込みプロトコル スタックはモジュール式であり、メモリ スペースが限られている場合は、必要に応じて動的にインストールでき、インターフェイス転送やインターネット サービス ツールの完全なセットなど、組み込みシステムにとって重要ではないいくつかの部分が省略されます。
(3) 組み込みプロトコルスタックのプラットフォーム互換性。一般に、プロトコル スタックはオペレーティング システムと密接に統合されており、ほとんどのプロトコル スタックはオペレーティング システムのカーネルに実装されています。プロトコル スタックの実装はオペレーティング システムによって提供されるサービスに依存しており、移植性が低くなります。組み込みプロトコル スタックの実装は、通常、オペレーティング システムへの依存性がほとんどなく、移植が簡単です。多くの商用組み込みプロトコル スタックは、複数のオペレーティング システム プラットフォームをサポートしています。
(4) 組み込みプロトコルスタックの高効率化。組み込みプロトコル スタックの実装は通常、占有スペースが少なく、必要なデータ メモリも小さくなり、コード効率が高いため、プロセッサのパフォーマンス要件が軽減されます。
組み込み技術の発展に伴い、組み込みデータベースは徐々に応用に向けて進んでいます。本質的に、組み込みデータベースは、一般的なデータベースを発展させて、さまざまな組み込みデバイスやモバイルデバイス上で動作するため、組み込みシステム自体のアプリケーション環境に制限されるため、組み込みシステムでの優位性を発揮します。 。
通常、組み込みデータベース管理システムは、組み込みデバイスで使用されるデータベース管理システムです。組み込みデータベース管理システムのほとんどは、ハンドヘルド コンピュータ、PDA、車載デバイス、その他の移動通信デバイスなどの移動情報デバイスであるため、固定位置の組み込みデバイスが使用されることはほとんどないため、組み込みデータベースはモバイル データベースまたはモバイルとも呼ばれます。組み込みモバイルデータベース。その主な機能は、モバイル コンピューティング環境におけるデータ管理の問題を解決することです。モバイル データベースはモバイル コンピューティング環境の重要な部分です。
分散データベース。
組み込みシステムへのデータベース テクノロジの導入は、主に、組み込みオペレーティング システムまたはベア メタル上で情報管理アプリケーションを直接開発する場合の次の欠点によるものです。
(1) すべてのアプリケーションでは繰り返しのデータ管理作業が必要となり、開発の難易度やコストが増加します。
(2) アプリケーション間のデータ共有が不十分です。
(3) アプリケーションソフトの独立性、移植性、再利用性が低い。
組み込みシステムにデータベース管理システムを導入すると、上記の問題は大幅に解決され、アプリケーション システムの開発効率と移植性が向上します。
組み込みデータベースシステムは、組み込みデータベース管理システムを含む包括的なシステムであり、移動通信デバイス、ワークステーションまたはデスクトップコンピュータ、およびデータサーバーにまたがります。このシステムの機能とシステムの使用環境は、組み込みデータベース管理システムに大きな影響を与えます。より大きな影響は、組み込みデータベース管理システムの構造に直接影響します。使用環境の特徴を簡単にまとめると以下のようになります。
(1) デバイスはいつでも移動可能 組み込みデータベースは主にモバイル情報デバイス上で使用され、デバイスの位置はユーザーとともに移動することがよくあります。
(2) ネットワークが頻繁に切断され、使用中にモバイル機器や携帯端末の位置が頻繁に変化します。また、使用方法、電源、無線通信、ネットワーク状況などの要因にも影響されます。したがって、ネットワーク接続は通常、継続的に維持されるのではなく、能動的または受動的に切断され、断続的に接続されることがよくあります。
(3) ネットワーク状況は多様です。携帯情報機器の位置は頻繁に変化するため、携帯情報機器とデータサーバーが異なる時間帯に異なるネットワークシステムを介して接続される場合があります。これらのネットワークは、ネットワーク帯域幅、通信コスト、ネットワーク遅延、サービス品質などが異なる場合があります。
(4) 非対称通信機能 モバイル デバイスのリソース制約により、モバイル デバイスとサーバー間のネットワーク通信機能は非対称になります。モバイル デバイスの送信機能は非常に限られているため、データ サーバーからモバイル デバイスへのダウンリンク通信帯域幅とモバイル デバイスからデータ サーバーへのアップリンク帯域幅は大きく異なります。
完全な組み込みデータベース管理システムは、図 12-6 に示すように、メイン データベース管理システム、同期サーバー、組み込みデータベース管理システム、接続ネットワーク、その他のサブシステムを含むいくつかのサブシステムで構成されます。
(1) 組み込みデータベース管理システム。組み込みデータベース管理システムは、機能的に独立したシングルユーザー データベース管理システムです。同期サーバーおよびメインデータベース管理システムから独立して実行し、組み込みシステム内のデータを管理することもできます。また、同期サーバーを介してメインサーバーに接続し、メインデータベース内のデータを操作することもできます。さまざまな方法でデータを同期します。
(2) 同期サーバー。同期サーバーは、組み込みデータベースとメイン データベース間の接続ハブであり、組み込みデータベースとメイン データベースのデータの一貫性を確保します。
(3) データサーバー。データサーバーのメインデータベースとデータベース管理システムには、Oracle や Sybase などの大規模な汎用データベース システムを使用できます。
(4) ネットワークに接続します。メイン データベース サーバーと同期サーバーは、通常、高帯域幅、低遅延の固定ネットワークを介して接続されます。モバイルデバイスと同期サーバー間の接続は、デバイスの特定の条件に応じて、無線 LAN、赤外線接続、ユニバーサル シリアル回線、または公衆ネットワークにすることができます。
1.アプリケーションにモバイルデータベースを組み込むための鍵
実際のアプリケーションでは、組み込みモバイル データベースは、データの一貫性 (レプリケーション)、効率的なトランザクション処理、データ セキュリティなどの問題を解決する必要があります。
(1) データの一貫性。組み込みモバイル データベースの注目すべき特徴は、モバイル データ端末と同期サーバー間の接続が弱い、つまり帯域幅が狭く、遅延が長く、不安定で頻繁に切断されることです。脆弱な環境でのデータベースに対するユーザーの操作をサポートするために、ユーザーがローカル キャッシュ上でデータ コピーを操作できるようにするために、オプティミスティック レプリケーション方法 (オプティミスティック レプリケーションまたは遅延レプリケーション) が現在一般的に使用されています。ネットワークが再接続された後、データベース サーバーまたは他のモバイル データ端末とデータ変更情報が交換され、競合の検出と調整によってデータの一貫性が復元されます。
(2) 効率的なトランザクション処理。モバイル トランザクションは、頻繁かつ予測可能な切断が発生するモバイル環境で実行されます。アクティブなトランザクションを確実にスムーズに完了するには、新しいトランザクション管理戦略とアルゴリズムを設計して実装する必要があります。ネットワーク接続状況に基づいてトランザクション処理の優先順位を決定し、ネットワーク接続速度の高いトランザクション要求が最初に処理されます。
トランザクションが移行されるかどうかは操作時間に基づいて決定されます。つまり、長期的なトランザクション操作はすべて実行のためにサーバーに移行されます。トランザクションがアップロードされるかどうかを決定するために、ネットワークが常にスムーズであることを確認する必要はありません。データのサイズに基づいてデータ コピーが実行されるかダウンロードされるか、トランザクション処理中に、ネットワーク切断処理中にユーザーの位置属性をリアルタイムで更新するときにサーバー検出メカニズムを使用するか、クライアント宣言メカニズムを使用するか。トランザクションの移動 (位置関連のクエリなど)。
(3) データのセキュリティ。多くの応用分野における組み込みデバイスは、システム内のデータ管理または処理のための重要なデバイスであるため、組み込みデバイス上のデータベース システムはアクセス許可をより厳密に制御します。同時に、多くの組み込みデバイスは高い可動性、可搬性、および固定されていない作業環境を備えており、これも潜在的な危険要因をもたらします。また、データの中には個人のプライバシー性が高いものもあり、衝突、磁界干渉、紛失、盗難などの防止の観点から、個人データの安全性を十分に保証する必要があります。データのセキュリティを確保するための主な対策としては、不正な端末による不正アクセスを防ぐための携帯端末の認証、データ情報の漏洩を防ぐための無線通信の暗号化、携帯端末の物理的な損失を防ぐためのダウンロードされたデータのコピーの暗号化と保存などが挙げられます。
2.モバイルデータベース管理システムの特徴
モバイル DBMS のコンピューティング環境は、従来の分散 DBMS を拡張したもので、クライアントと固定サーバー ノードが動的に接続された分散システムとみなすことができます。したがって、モバイル コンピューティング環境におけるデータベース管理システムは、動的分散データベース管理システムです。組み込みモバイル データベース管理システムは、モバイル コンピューティング環境の組み込みオペレーティング システムに適用されるため、独自の特性と機能要件があります。
(1) マイクロカーネル構造により組み込み機能の実現が容易。組み込みデバイスの限られたリソースを考慮すると、組み込みモバイル DBMS は、組み込みアプリケーションのニーズを満たすために小型化技術を使用して実装され、そのシステム構造をコンパクトにする必要があります。
(2) 標準 SQL のサポート。組み込みモバイル DBMS は、標準 SQL のサポートを提供する必要があります。 SQL92 標準のサブセットをサポートし、データ クエリ (結合クエリ、サブクエリ、並べ替え、グループ化など)、複数の標準 SQL ステートメントの挿入、更新、削除をサポートし、組み込みアプリケーション開発のニーズを完全に満たします。
(3) トランザクション管理機能。組み込みモバイル DBMS はトランザクション処理機能を備え、トランザクションの整合性、アトミック性、その他の特性を自動的に維持し、エンティティの整合性と参照整合性をサポートする必要があります。
(4) 完全なデータ同期メカニズム。データの同期は、組み込みデータベースの最も重要な機能です。データ レプリケーションを通じて、組み込みデータベースまたはメイン データベースの変更を相互に適用して、データの一貫性を確保できます。 組み込みモバイル データベース管理システムのデータ同期メカニズムには、次の特性が必要です。
(5) 複数の接続プロトコルをサポートします。組み込みモバイル DBMS は、複数の通信接続プロトコルをサポートする必要があります。組み込み機器やデータベースサーバーとの接続は、シリアル通信、TCP/IP、赤外線通信、Bluetoothなどのさまざまな接続方式で実現できます。
(6) 組み込みデータベース管理機能を完備。組み込みモバイル DBMS は、基本的に組み込みデータベースの管理に手動介入を必要とせず、ユーザー データの安全性と信頼性を確保するためにデータのバックアップとリカバリを提供できる自動リカバリ機能を備えている必要があります。
(7) プラットフォームの独立性と複数の組み込みオペレーティング システムのサポート。組み込みモバイル DBMS は、組み込みモバイル データベース管理システムがモバイル端末によって制限されないように、Windows CE や Palm OS など、現在普及しているさまざまな組み込みオペレーティング システムをサポートできなければなりません。
(8) 管理機能がありません。組み込みデータベースには自動リカバリ機能があり、手動介入なしで組み込みデータベースを管理し、データのバックアップと同期を提供します。
また、利用者は1台のモバイル端末(携帯電話など)だけで、それに関わる全てのモバイルデータベースのデータ操作・管理ができる状態が理想です。そのためには、フロントエンド システムが汎用的であること、およびモバイル データベースのインターフェイスが統一および標準化された標準を備えていることが必要です。フロントエンド管理システムは、データ処理中に統合トランザクション処理コマンドを自動的に生成し、現在接続されているデータ サーバーに送信して実行します。これにより、組み込みモバイル データベース管理システムの多用途性が効果的に強化され、組み込みモバイル データベースのアプリケーションの可能性が広がります。
つまり、組み込みモバイル データベース管理システムでは、切断操作のサポート、リージョン間のロング トランザクションのサポート、位置関連のクエリのサポートなど、従来のコンピューティング環境では考慮する必要のなかった多くの問題を考慮する必要があります。 、クエリの最適化。限られたリソースの利用とシステム効率を向上させるための特別な考慮事項と考慮事項。上記の問題を効果的に解決するために、レプリケーションおよびキャッシュ技術、モバイルトランザクション処理、データブロードキャスト技術、モバイルクエリ処理およびクエリ最適化、位置関連データ処理およびクエリ技術、モバイル情報公開技術、モバイルエージェントなどの技術が必要となります。テクノロジーはまだ開発中です。開発と改善により、組み込みモバイル データベース管理システムの開発がさらに促進されます。
簡単に言えば、リアルタイム システムは、外部イベントにタイムリーに応答できるシステムとみなすことができます。この種のシステムの最も重要な特徴は適時性、つまりリアルタイム性です。リアルタイム システムの正確さは、システムの計算の論理的な結果だけでなく、その結果が生成される時間にも依存します。
現在、ほとんどのリアルタイム システムは組み込み型であり、実際に稼働する組み込み型システムにもリアルタイム性が要求されます。したがって、リアルタイム組み込み型オペレーティング システムは、さまざまな種類の組み込みオペレーティング システムの中で最も代表的なものです。したがって、このセクションでは、リアルタイム組み込みオペレーティング システムの特性と概念に主に焦点を当て、組み込みオペレーティング システムの基本概念と特性、基本アーキテクチャ、およびコア コンテンツの包括的な紹介を行います。サービス、カーネル オブジェクト、カーネル サービスなど。
現実の世界では、すべての組み込みシステムがリアルタイム特性を備えているわけではなく、すべてのリアルタイム システムが必ずしも組み込まれているわけでもありません。ただし、これら 2 つのシステムは相互に排他的なものではなく、両方のシステムの特徴を備えたシステムをリアルタイム組み込みシステムと呼びます。それらの関係を図 12-7 に示します。
(1) 正しいロジック (または機能) とは、システムが外部イベントを処理するときに正しい結果を生成できることを意味します。
(2) 正確な時刻とは、システムによる外部イベントの処理が所定の期間内に完了する必要があることを意味します。
(3) 期限または期限、期限、期限とは、システムが外部イベントを処理しなければならない最後の期限を指します。この期限を満たさないと、重大な結果が生じる可能性があります。通常、制限時間に達する前に計算を完了する必要があります。
(4) リアルタイムシステムとは、正確な機能と正確な時間を両方とも満たすシステムを指します。どちらも同様に重要です。言い換えれば、リアルタイム システムは時間に制約があり、期限に左右されます。ただし、システムによっては、機能の正確性を確保するためにタイミングの正確性が犠牲になる場合があります。
リアルタイム システムの分割については、通常、リアルタイム システムは次のように分割できます。
(1) 強力なリアルタイム システム。システムの応答時間は非常に短く、通常はミリ秒またはマイクロ秒レベルです。
(2) 一般的なリアルタイム システムの場合、システム応答時間は強力なリアルタイム システムよりも低く、通常は 2 番目のレベルにあります。
(3) リアルタイム システムが弱い場合、システムの応答時間が長くなる可能性があり、システム負荷の重大度によっても変化する可能性があります。
リアルタイム システムは、期限遅れに対する許容度や結果の深刻さに基づいて、ソフト リアルタイム システムとハード リアルタイム システムに分類できます。
(1) ハードリアルタイムシステムとは、制限時間ゼロに近い柔軟性を持つリアルタイムシステムを指します。制限時間は必ず守らなければなりません
そうしないと、壊滅的な結果が発生し、制限時間後に得られる処理結果はゼロレベルで役に立たないか、または大幅に価値が低下します。
(2) ソフトリアルタイムシステムとは、時間制限の要件を満たす必要があるが、ある程度の柔軟性を備えたリアルタイムシステムを指します。期限には、可変の許容レベル、平均期限、さらには応答時間の許容度が異なる統計分布を含めることができます。ソフト リアルタイム システムでは、通常、期限を過ぎてもシステム障害などの重大な結果にはつながりません。表 12-2 は、ソフト リアルタイム システムとハード リアルタイム システムの比較です。
比較すると、期限切れはソフト リアルタイム システムの動作に決定的な影響を与えないため、ソフト リアルタイム システムは保留中の期限切れがあるかどうかを予測する必要がないことがわかります。対照的に、ソフト リアルタイム システムは、期限切れを検出した後に回復プロセスを開始できます。
リアルタイム システムでは、タスクの開始時刻は期限や完了時刻と同じくらい重要です。タスクに必要な CPU やメモリなどのリソースが不足すると、タスクの実行開始が妨げられ、タスクの実行ミスに直結する可能性があります。タスクの完了期限が決まるため、期限の問題はリソースのスケジュールの問題になります。
これは、スケジューリング アルゴリズムとタスクの設計に重大な影響を与えます。
いわゆる組み込みオペレーティング システムは、組み込みアプリケーションをサポートするために組み込みコンピュータ システム上で実行されるオペレーティング システムを指し、組み込みシステム内のハードウェアおよびソフトウェア リソースを制御および管理し、システム サービスを提供するために使用されるソフトウェアの集合です。組み込みオペレーティング システムは、組み込みソフトウェアの重要な部分です。その出現により、組み込みソフトウェア開発の効率が向上し、アプリケーションソフトウェアの移植性が向上し、組み込みシステムの開発が効果的に促進されました。
1.組み込みオペレーティングシステムの特徴
組み込みオペレーティングシステムは、汎用オペレーティングシステムと比較して、主に次のような特徴があります。
(1)小型化:組み込みオペレーティングシステムの実行プラットフォームは汎用コンピュータではなく、組み込みコンピュータシステムである。このタイプのシステムは通常、大容量のメモリを持たず、外部メモリもほとんど持たないため、システム リソースの占有を最小限に抑えるために、組み込みオペレーティング システムをコンパクトにする必要があります。システムの実行速度と信頼性を向上させるために、組み込みシステムのソフトウェアは一般に、ディスクなどのキャリアに格納されるのではなく、メモリチップ内に固定化されます。
(2) 高いコード品質: ほとんどのアプリケーションでは、ストレージ領域は依然として貴重なリソースであるため、プログラム コードの品質が高く、コードが可能な限り合理化されている必要があります。
(3) 特化: 組み込みシステムにはさまざまなハードウェア プラットフォームがあり、それぞれのプロセッサはさまざまなアプリケーション分野向けに特別に設計されています。したがって、組み込みオペレーティング システムは、優れた適応性と移植性を備えている必要があり、また複数の開発プラットフォームをサポートする必要があります。
(4) 強力なリアルタイム性能: 組み込みシステムは、プロセス制御、データ収集、通信、マルチメディア情報処理、およびリアルタイム応答が必要なその他の状況で広く使用されているため、リアルタイム性能は組み込みオペレーティング システムのもう 1 つの特徴となっています。 。
(5) 切断可能および構成可能: アプリケーションの多様性には、組み込みオペレーティング システムが強力な適応性を備え、小型化と特殊化の要件に適応するために、アプリケーションの特性および特定の要件に応じて柔軟に構成および合理的に切断できることが必要です。
2.組み込みオペレーティング システムの分類
組み込みオペレーティング システムには多くの種類があり、さまざまな観点から分類できます。組み込みオペレーティングシステムの入手形態から、商用タイプと無償タイプの 2 つのカテゴリに分類できます。
(1)商用タイプ。市販の組み込みオペレーティング システムには、通常、安定した信頼性の高い機能、完全な技術サポート、完全な開発ツール、およびアフターサービスが備わっています。 WindRiver 社の VxWorks、pSOS、Palm 社の Palm OS など。しかし、それは高価であり、ユーザーは通常、システムのソースコードを入手できません。
(2)フリータイプ。無料の組み込みオペレーティング システムの利点は、その価格に加えて、アプリケーション システムの開発者がシステムのソース コードを入手できるため、開発が容易になります。ただし、無料のオペレーティング システムは機能が単純で、技術サポートが不十分で、システムの安定性も劣っています。代表的なシステムとしては組み込みLinuxやuC/OSなどが挙げられます。 組み込みオペレーティング システムは、リアルタイムの性質から、リアルタイム組み込みオペレーティング システムと非リアルタイム組み込みオペレーティング システムの 2 つのカテゴリに分類できます。
(1) リアルタイム組み込み OS (RTEOS)。リアルタイム組み込みオペレーティング システムは、リアルタイム システム作業をサポートします。その主なタスクは、外部イベントに応答するためのリアルタイム時間制限に合わせて、利用可能なすべてのリソースをスケジュールすることです。第 2 に、システムの効率を向上させることに重点を置いています。リアルタイム組み込みオペレーティング システムは、主に制御、通信などの分野で使用されます。現在、市販の組み込みオペレーティング システムのほとんどはリアルタイム オペレーティング システムです。
(2) 非リアルタイム組み込みオペレーティング システム。このタイプのオペレーティング システムは、単一タスクの応答時間には特に注意を払わず、平均パフォーマンス、システム効率、リソース使用率が一般的に高く、厳密なリアルタイム要件を持たない家電製品に適しています。携帯情報端末、セットトップ ボックスなど。
全体として、組み込みシステムのリアルタイム パフォーマンスは、ハードウェア、リアルタイム オペレーティング システム、およびアプリケーションによって決まります。その中で、組み込みリアルタイム オペレーティング システム コアのパフォーマンスが重要な役割を果たします。一般に、リアルタイム組み込みオペレーティング システムには、リアルタイム カーネル ベースの RTEOS と汎用 RTEOS の 2 種類があります。
リアルタイム カーネル タイプ RTEOS: このタイプのオペレーティング システムでは、ドライバーは伝統的にカーネルに埋め込まれ、アプリケーションとミドルウェアは標準のアプリケーション プログラミング インターフェイス (API、アプリケーション プログラミング インターフェイス) 上に実装されます。
リアルタイム汎用 RTEOS: このタイプのオペレーティング システムでは、ドライバーはカーネルに深く埋め込まれていませんが、カーネルの最上位に実装されており、必要なドライバーのみが含まれており、直接実装できます。標準 API に実装する必要はありません。それらの違いを図 12-8 に示します。
リアルタイム組み込みオペレーティング システムと汎用オペレーティング システムの間には、機能的に多くの類似点があります。たとえば、どちらもマルチタスクをサポートし、ソフトウェアとハードウェアのリソース管理をサポートし、アプリケーションに基本的なオペレーティング システム サービスを提供します。
1.組み込みリアルタイム オペレーティング システムの主な機能
リアルタイム組み込みオペレーティングシステムは、汎用オペレーティングシステムと比較して機能的に多くの特徴を持っています。汎用オペレーティング システムとは異なる、リアルタイム組み込みオペレーティング システムに固有の主な機能は次のとおりです。
2.組み込みリアルタイム オペレーティング システムのリアルタイム パフォーマンス インジケーター リアルタイム オペレーティング システム設計のパフォーマンスを評価する場合、時間パフォーマンス インジケーター
この指標は最も重要なパフォーマンス指標であり、一般的に使用される時間パフォーマンス指標には主に次のようなものがあります。
(1) タスク切り替え時間: 実行中のタスクから別の実行可能なタスクに CPU 制御を移すのに必要な時間を指します。これには、タスクのスケジューリングを実行するときにタスク コンテキストの保存と復元、および次に実行するタスクの選択に費やされる時間が含まれます。時間とともに、この指標はレジスタの数とマイクロプロセッサのシステム構造に関連します。同じオペレーティング システムでも、異なるマイクロプロセッサ上で実行すると、かかる時間が異なる場合があります。タスク切り替え時間に対応するタイミング図を図 12-9 に示します。
(2) 割り込み処理に関連する時間インジケータ。対応する割り込みタイミング図を図 12-10 に示します。
割り込み遅延時間は、割り込みの発生からシステムが割り込みを学習するまでの時間を指し、主にシステムの最大オフ割り込み時間の影響を受けます。
中断時間が長いほど、中断遅延も長くなります。
割り込み処理の実行時間は、特定のアプリケーションによって決まります。
割り込み応答時間とは、割り込みの発生からユーザー割り込みサービスルーチンの実行開始までの時間を指します。
割り込み回復時間とは、ユーザーの割り込みサービス ルーチンが終了してから割り込みコードに戻るまでの時間を指します。
最大割り込みオフ時間には 2 つの側面が含まれます。1 つはカーネルの最大割り込みオフ時間、つまりクリティカル セクション コードの実行時にカーネルが割り込みをオフにする時間、もう 1 つはアプリケーションの割り込みオフ時間と最大割り込みオフ時間です。時間はこれら 2 つの割り込みオフ時間の最大値です。タスク応答時間は、タスクに対応する割り込みが生成されてからタスクが実際に実行を開始するまでの時間を指します。
プリエンプティブル スケジューリングの場合、タスクの切り替えと新しいタスク コンテキストの復元にかかる時間に、割り込み回復の時間も追加されます。
間。
(3) システム応答時間: システムが処理要求を発行してから応答するまでの時間を指します。つまり、この時間のサイズは主にカーネル タスクのスケジューリング アルゴリズムによって決まります。 プリエンプティブル リアルタイム カーネルの代表的な性能指数計算方法をまとめて表 12-3 に示します。
これまでのところ、不完全な統計によると、世界中に存在する組み込みオペレーティング システムの総数は数百に達します。最も一般的に使用されているオペレーティング システムは十数種類あり、それぞれのアプリケーション分野で人気が高く、多くのユーザー ベースを持っています。表 12-4 では、比較のために業界で一般的な組み込みオペレーティング システムをいくつか選択しています。
組み込みシステム設計の主なタスクは、システムの機能を定義し、システムのアーキテクチャを決定し、その機能をシステム実装アーキテクチャにマッピングすることです。ここで、システムアーキテクチャには、ソフトウェアシステムアーキテクチャとハードウェアシステムアーキテクチャの両方が含まれる。アーキテクチャは、さまざまな異なる物理実装にマッピングでき、それぞれが、特定の設計基準を満たし、その他を最適化しながら、異なるトレードオフを表します。
組込みシステムの設計手法は、一般的なハードウェア設計やソフトウェア開発手法とは異なり、ソフトウェア分野の知識だけでなく、ハードウェアに関する総合的な知識も必要とする開発プロセスです。分野、さらには機械などの知識の側面も含まれます。設計者は、設計したシステムを最適化するために、これらの分野のさまざまな技術を熟知し、自由に使いこなすことが求められます。
組み込みシステム アプリケーション ソフトウェアの設計ソリューションはアプリケーション分野によって異なりますが、組み込みシステムの分析および設計方法も、ソフトウェア エンジニアリングの一般原則に従っています。多くの成熟した分析および設計方法は、組み込み分野に適用できます。組み込みシステムの開発プロセスには、要件分析、システム設計、実装、テストといったいくつかの基本的な段階も含まれており、各段階には独自の特徴と焦点があります。
このセクションでは、主に組み込みシステムの開発と設計の技術と方法を紹介し、アプリケーション ソフトウェアの設計方法と設計プロセスで直面する主な問題を、組み込みシステムのアプリケーションとコンピューティング モデルの観点から分析します。最後に、組み込み分野におけるソフトウェア移植に関する問題について説明します。
組み込みシステムを設計する前に、組み込みシステム設計自体の特性と、組み込みシステムの設計を測定するための主要な技術指標のいくつかを明確にする必要があります。
1.組み込みシステム設計の特徴
組込みシステムの設計は、通常のシステム設計と比較して次のような特徴があります。
2.組み込みシステムのテクニカル指標
組み込みシステム設計で一般的に使用される指標には次のものがあります。
(1) NRE コスト (非経常エンジニアリングコスト): システムを設計するために支払う必要がある 1 回限りの金銭的コスト。つまり、設計が完了すると、追加の設計料を支払うことなく任意の数の製品を製造できます。 。
(2) 単価:NREコストを除いた、単一の製品を生産するのに必要な金銭的コスト。
(3) サイズ: システムが占有するスペースを指します。ソフトウェアの場合は通常バイト数で測定され、ハードウェアの場合は論理ゲートまたはトランジスタの数で測定されます。
(4) パフォーマンス: システムが指定されたタスクを完了するのに必要な時間は、設計時に最も一般的に使用される設計指標です。1 つは、実行の開始から終了までの時間である応答時間です。タスク。 2つ目は完了量で、単位時間当たりに完了したタスクの量です。
(5) 電力: システムによって消費される電力。これにより、バッテリーの寿命や回路の放熱要件が決まります。
(6) 柔軟性: NRE コストを増加させることなくシステム機能を変更できる機能。
(7) プロトタイプの作成時間: システムの実行可能なバージョンを確立するのに必要な時間。システムのプロトタイプは最終製品よりも大きく、高価になる可能性がありますが、システムの使用法と正確性を検証し、システムの機能を向上させることができます。システム。
(8) 市場投入までの時間: システム開発から消費者に販売できるまでの時間。最も重要な影響要因には、設計時間、製造時間、テスト時間が含まれます。
(9) 保守性: システムの発売または販売後に、特にオリジナル開発者以外によるシステムの変更が容易であること。
(10) 正確性:システムの機能が正しく実装されていれば、システムの機能は設計プロセス全体でチェックでき、テスト回路を挿入してそれが正しいかどうかをチェックすることもできます。
(11) 安全性: システムが害を及ぼさない確率。一般に、さまざまな設計指標は互いに競合します。多くの場合、1 つの指標を改善すると、他の指標が悪化します。設計最適化の要件を最大限に満たすためには、設計者はさまざまなソフトウェアおよびハードウェアの実装テクノロジを理解し、そこから学ぶ必要があります。特定の制約の下で最適なソリューションを見つけるために、テクノロジーは別のテクノロジーに移転されます。
3.組み込みシステム設計の課題
組み込みシステム設計が直面する課題には、次のような側面が含まれます。
(1) 必要なハードウェアの量: 設計者は、問題を解決するために使用するコンピューティング能力を強力に制御でき、使用するプロセッサーだけでなく、使用するメモリー、周辺機器などの量も選択できます。パフォーマンス要件を満たすためには、ハードウェアの選択も非常に重要です。ハードウェアが少なすぎると、機能とパフォーマンスの要件を満たせなくなり、ハードウェアが多すぎると、製品が高価になりすぎます。
(2) 時間制限を守る方法: 時間制限を解決するために、プロセッサの速度を上げてプログラムの実行を高速化する方法は、システムの価格が上昇するため、お勧めできません。同時に、プログラムの速度はストレージ システムによって制限される可能性があるため、プロセッサのクロック周波数を上げても実行速度が向上しない場合があります。
(3) システムの消費電力を削減する方法: バッテリ駆動システムの場合、消費電力は非常にデリケートな問題です。非バッテリ駆動システムの場合、高電力は高熱放散を意味します。システムの消費電力を削減する 1 つの方法は、計算速度を下げることですが、単に計算速度を下げるだけでは明らかにパフォーマンスが不十分になるため、パフォーマンスの制約を満たしながら消費電力を削減するように慎重に設計する必要があります。
(4) システムの拡張性を確保する方法: システムのハードウェア プラットフォームは複数の世代を使用することも、同じ世代の異なるレベルの製品を使用することもできます。これらの場合、設計者はシステムの特性をいくつか変更するだけで済みます。ソフトウェアを変更することで、ソフトウェアではまだ利用できないパフォーマンス機能を提供できるマシンを設計します。
(5) システムの信頼性を確保する方法: 信頼性は、製品を販売する際の重要な指標です。安全制御システムなどの一部のシステムでは、製品が適切に動作することが消費者にとって当然の要件となります。
(6) テストの複雑さ: 組み込みシステムのテストは、単にデータを入力するよりもはるかに難しいため、正しいデータを生成するためにマシン全体を実行する必要があります。データが生成される時間は非常に重要です。組み込みシステムを離れて、環境全体を操作して組み込みシステムをテストします。
(7) 可視性と制御性の制限: 通常、組み込みシステムには表示デバイスやキーボードがないため、開発者がシステム内で何が起こっているかを理解することが難しく、場合によってはマイクロコントローラーを監視する必要があります。理解するための信号。リアルタイム システムでは、通常、観察のためにシステムをシャットダウンすることはできません。
(8) 限られた開発環境:組み込みシステムの開発ソフトウェアやハードウェアツールなどの開発環境は、汎用のコンピュータやワークステーションで利用できる環境に比べて制限されていることが多いため、クロス開発しか利用できません。開発の進行に影響を与えます。
一般的なシステムの開発と同様に、組み込みシステムの開発でも、主にウォーターフォール モデル、スパイラル モデル、段階的改良モデル、階層モデルなどのソフトウェア エンジニアリングにおける一般的な開発モデルを採用できます。
1.一般的な開発モデル
設計プロセスは、システムの設計中に実行する必要がある一連のステップであり、その一部は自動ツールで実行できますが、その他は手動でのみ実行できます。組込みシステムの分野では、以下のような開発プロセスモデルがよく使われています。
(1) ウォーターフォールモデル。ウォーターフォール モデルは、主に 5 つの段階で構成されます。要件分析段階では、ターゲット システムの基本特性を決定します。システム構造設計段階では、システムの機能を主な構造に分解します。コーディング段階では、主にプログラムの作成とデバッグを行います。そして最後のメンテナンスフェーズは、環境の変化に適応するためにコードを変更し、エラーを修正し、アップグレードすることを主に担当します。各段階の作業と情報は常に、高レベルの抽象化からより詳細な設計ステップへの一方向に流れます。これは、理想的なトップダウン設計モデルです。
(2) スパイラルモデル。スパイラル モデルは、システムの複数のバージョンが構築されることを前提としています。初期バージョンは、設計者がシステムについての直感を確立し、このシステムの開発経験を蓄積するのに役立つ単純な実験モデルです。設計が進むにつれて、より複雑なバージョンが作成されます。システムを作成しました。設計の各層で、設計者は需要分析、構造設計、テストの 3 つの段階を経ます。後の段階で、より複雑なバージョンのシステムが構築されると、各段階でさらに多くの作業が行われるため、設計スパイラルを拡張する必要があります。この段階的なアプローチにより、設計者はさらに作業を進めることができます。一連の設計サイクルを通じて、開発されたシステムを理解します。スパイラルの上部にある最初のループは非常に小さくて短いですが、スパイラルの下部にある最後のループはスパイラル モデルの初期のループに詳細を追加しており、ウォーターフォール モデルよりも現実的です。
(3) モデルを段階的に改良します。段階的改良モデルは、複数回構築されるシステムであり、最初のシステムがプロトタイプとして使用され、その後、システムが 1 つずつ改良されます。このアプローチは、設計者が構築するシステムのアプリケーション ドメインにあまり詳しくない場合に合理的です。複雑さを増すいくつかのシステムを構築してシステムを改良することで、設計者はアーキテクチャと設計手法をテストできるようになります。さらに、システムが最終的に完成するまで、さまざまな反復手法が部分的にのみ完了する可能性があります。
(4) 階層モデル。多くの組み込みシステム自体は、より小規模な設計で構成されており、完全なシステムにはさまざまなソフトウェア コンポーネントやハードウェア コンポーネントが必要になる場合があります。これらの部品は、まだ設計されていない小さな部品で構成されている場合があるため、システム全体の初期設計から個々の部品の設計、最終的な全体設計まで、設計プロセスはシステムの抽象化のレベルに応じて変化します。最高レベルの抽象化から中間レベルへ 抽象化レベルでの詳細な設計、その後、各特定のモジュールの設計が層ごとに展開されます。各プロセスは、単一の設計者または設計チームによって実行されます。各グループは、他のグループの結果に依存します。 、各グループは上司から学び、親グループは個々のグループ設計の品質とパフォーマンスに依存します。さらに、プロセスの各実装段階は、仕様からテストまでの完全なプロセスです。
2.組込みシステムの設計手法
優れた組み込みシステム設計手法は、次の理由から非常に重要です。
(1) 優れた設計方法を使用すると、設計者は自分が行っている作業の進捗状況を明確に理解できるようになり、どれも見逃すことがなくなります。
(2) 設計者の作業を支援するコンピュータ支援ツールの使用を許可し、プロセス全体をいくつかの制御可能なステップに分割します。
(3) 優れた設計手法により、設計チームのメンバー間のコミュニケーションが促進されます。包括的な設計プロセスを定義することで、チームの各メンバーは、自分がやらなければならない作業と、自分に割り当てられたタスクを完了するために必要な手順をよく理解できます。目標を達成しました。
組込みシステムソフトウェアの開発プロセスは、プロジェクト計画、実現可能性分析、要件分析、概要設計、詳細設計、プログラム作成、ダウンロード、デバッグ、確定、テスト、運用といったいくつかの段階に分かれます。
プロジェクトの計画、実現可能性分析、要件分析、概要設計、詳細設計の各段階は、一般的なソフトウェアの開発プロセスと基本的に同じであり、プロトタイピング手法や構造化手法などのソフトウェアエンジニアリング手法に従って行うことができます。 。
組込みソフトウェアは実行環境と開発環境が異なるため、開発作業は横断的に行われるため、各段階で考慮する必要があります。プログラム構築フェーズの作業は、詳細設計フェーズで作成されたドキュメントに基づいて行われます。この段階の作業には主に、ソース コードの作成、コンパイル、リンクなどのいくつかのサブプロセスが含まれており、これらのタスクはすべてホスト マシン上で実行されるため、ターゲット マシンを使用する必要はありません。 アプリケーションの実行ファイルを生成した後、デバッグにはクロス開発環境を使用する必要があります。実際の状況に応じて選択できます。
これを行うには、利用可能ないくつかのデバッグ方法の 1 つ、またはそれらの有効な組み合わせを使用します。図 12-11 に示すように、組み込みシステム設計は従来のソフトウェア設計とは異なります。多くの場合、ハードウェア設計とソフトウェア設計が関係し、仕様やシステム アーキテクチャなどのフロントエンドの作業では、ハードウェアとソフトウェアの両方の側面を考慮する必要があります。
同様に、システム統合やテストなどのバックエンド設計もシステム全体を考慮します。中間段階では、ソフトウェアとハードウェアのコンポーネントは互いに独立して開発され、ほとんどのハードウェアとソフトウェアの作業は比較的独立して実行できます。最後に、デバッグ後の正しい実行可能プログラムをターゲット マシン上に固定する必要があります。組み込みシステム ハードウェアの構成に応じて、EPROM や FLASH などのメモリ、または DOC や DOM などの電子デバイスで修復する方法がいくつかあります。
サブプレート。通常、これは特別なプログラマーの助けを借りて行われます。
組み込みシステムには汎用コンピュータ システムよりも高いセキュリティと信頼性の要件があるため、組み込みシステムのホワイトボックス テストを実施する場合は、より高いコード カバレッジが必要です。システム開発プロセスの各段階では、システムの確認と性能評価、セキュリティ評価とリスク評価を実施し、システムの実装をテストして検証する必要があります。
組み込みシステムの開発はソフトウェアとハードウェアの総合的な開発であり、一般的なシステムの開発とは大きく異なります。一方で、各組み込みシステムはソフトウェアとハードウェアの組み合わせです。ソフトウェアはハードウェアとともに製品として固まり、強い特異性を持っています。これらの特性の影響で、組込みシステムの開発プロセスを支援するには、一般的なソフトウェア開発プロセスとは異なるエンジニアリング手法が必要となると同時に、組込みシステム開発における独自のコア技術も決定されます。
一般に、組み込み開発の分野では、プロセッサ技術、IC技術、設計・検証技術の3つのコア技術が存在します。
1. プロセッサーテクノロジー
プロセッサ テクノロジは、システム機能を実装するコンピューティング エンジンの構造に関連しており、プログラム不可能なデジタル システムの多くもプロセッサとみなすことができます。これらのプロセッサの違いは、特定の機能に対する特化の程度であり、その結果、他のプロセッサとは設計仕様が異なります。 。
(1) 汎用プロセッサ。このタイプのプロセッサは、さまざまなタイプのアプリケーションに使用できます。重要な特徴は、プログラムを保存できることです。設計者はプロセッサがどのような動作を実行するかわからないため、デジタル回路を使用してプログラムを作成することはできません。もう 1 つの特徴は、ユニバーサル データ パスです。さまざまな計算を処理するために、データ パスは一般に多数のレジスタと 1 つ以上の汎用算術論理ユニットを備えています。設計者は、必要な機能、つまり設計関連のソフトウェアを実行するためにプロセッサのメモリをプログラムするだけで済みます。
組み込みシステムで汎用プロセッサを使用すると、設計基準の点でいくつかの利点があります。設計者はデジタル設計を行わずにプログラムを作成するだけで済むため、市場投入までの時間が短く、プログラムを変更することで機能変更が可能です。自社でプロセッサを設計する場合に比べ、少量の場合は単価が安くなります。
もちろん、この方法には設計指標にもいくつかの欠陥があります。数量が多い場合、自社設計の NRE のコストが償却され、単価が下がるため、単価が比較的高くなります。同時に、一部のアプリケーションではパフォーマンスが低下する可能性があります。不要なプロセッサ ハードウェアが組み込まれているため、システムのサイズと消費電力が増加する可能性があります。
(2) 単一目的のプロセッサ。専用プロセッサは、特定のプログラムを実行するために設計されたデジタル回路であり、コプロセッサ、アクセラレータ、ペリフェラルなども指します。 JPEG などのコーデックは、単一のプロセスを実行してビデオ情報を圧縮または解凍します。組み込みシステムの設計者は、特定のデジタル回路を設計することで、単一目的のプロセッサを作成できます。設計者は、事前に設計された商用の専用プロセッサを使用することもできます。
組み込みシステムでの専用プロセッサの使用には、メトリクスの観点からいくつかの利点と欠点があります。これらの長所と短所は、基本的に汎用プロセッサとは逆であり、性能が優れ、サイズと電力が小さく、量が多い場合は単価が安くなり、設計時間と NRE コストが高くなります。柔軟性が低く、時間あたりの単価が高く、アプリケーションによっては汎用プロセッサに比べてパフォーマンスが劣ります。
(3) 専用プロセッサ。特殊用途の命令セット プロセッサは、特定の種類のアプリケーション向けに最適化されたプログラマブル プロセッサです。このような特定のアプリケーションには、組み込み制御、デジタル信号処理など、同じ特性があります。組み込みシステムで専用プロセッサを使用すると、優れたパフォーマンス、電力、サイズを確保しながら柔軟性を高めることができますが、そのようなプロセッサではプロセッサ自体とコンパイラを構築するために依然として高価なコストが必要です。マイクロコントローラとデジタル シグナル プロセッサは、広く使用されている 2 種類の専用プロセッサです。デジタル シグナル プロセッサはデジタル信号に対して一般的な演算を実行するマイクロプロセッサであり、マイクロコントローラは組み込み制御プロセッサ用に最適化されたマイクロプロセッサです。
2. IC技術
システムの集積回路設計記述から実際のチップの物理マッピングプロセスを取得する実装技術がIC(Integrated Circuits、集積回路)技術であり、現在半導体分野における実装技術はフルカスタマイズの3種類がある。 、セミカスタマイズおよびプログラマブル技術は、組み込みシステムのハードウェア設計に適用できます。
(1) 完全にカスタマイズされた/VLSI (超大規模集積回路、超大規模集積回路)。完全にカスタマイズされた IC テクノロジでは、各層の設計者は、高いチップ面積使用率、高速速度、低消費電力を実現するために、トランジスタのレイアウト サイズ、位置、配線から開始して、特定の組み込みシステムのデジタル実装を最適化する必要があります。パフォーマンスを最適化します。マスクを使用して製造工場で実際のチップを製造する完全カスタム IC 設計 (VLSI とも呼ばれる) は、NRE コストが高く、製造時間が長く、大量生産またはパフォーマンスが重要なアプリケーションに適しています。
(2)セミカスタム/ASIC(特定用途向け集積回路、特定用途向け集積回路)。セミカスタム ASIC は、ゲート アレイ設計手法やスタンダード セル設計手法を含む制約付き設計手法です。これは、チップ上にいくつかの汎用ユニットコンポーネントとコンポーネントグループが作成された半完成のハードウェアです。設計者は、回路の論理機能と機能モジュール間の合理的な接続のみを考慮する必要があります。この設計方法は柔軟で便利でコスト効率が高く、設計サイクルを短縮し、歩留まりを向上させます。
(3) プログラマブル/ASIC。プログラマブル デバイスのすべての層はすでに存在しており、設計が完了すると、IC メーカーの介入なしに設計されたチップを実験室で焼成できるため、開発サイクルが大幅に短縮されます。プログラマブル ASIC は、NRE コストが低く、単位コストが高く、消費電力が高く、速度が遅くなります。
3.設計・検証技術
組込みシステムの設計技術には、主にハードウェア設計技術とソフトウェア設計技術の2種類があります。このうちハードウェア設計分野の技術には、主にチップレベルの設計技術と回路基板レベルの設計技術が含まれます。
チップレベルの設計技術の中核は、コンパイル・合成、ライブラリ・IP(Intellectual Property、知的財産)、テスト・検証です。コンパイル/合成テクノロジーにより、設計者は必要な機能を抽象的な方法で記述し、実装の詳細を自動的に分析して挿入することができます。ライブラリ/IP テクノロジは、高レベルの抽象化に対して、事前に設計された低レベルの抽象化の実装を使用します。テスト/検証テクノロジーにより、各レベルが正しく機能することが保証され、レベル間の反復設計のコストが削減されます。
ソフトウェア設計技術の中核はソフトウェア言語です。ソフトウェア言語は、低級言語(機械語、アセンブリ言語)から高級言語(例えば、構造化設計言語、オブジェクト指向設計言語)までの開発プロセスを経験しており、その開発を推進するのは、アセンブリ技術、解析技術、編集・解釈技術など関連技術も多数。ソフトウェア言語のレベルも、実装レベル、設計レベル、機能レベルから需要レベルの言語開発へと徐々に移行しています。
初期の段階では、汎用プロセッサの概念が徐々に形成され、ソフトウェア技術が急速に発展し、ソフトウェアの複雑さも増大し始め、ソフトウェア設計とハードウェア設計の技術と分野は完全に分離されました。設計手法とツールはこれら 2 つの分野で同時に開発され、設計の複雑さの増大するニーズに適応するために、ますます抽象的なレベルで動作記述を実行できるようになりました。この同時開発により、両方のフィールドが動作を記述するために同じタイミング モデルを使用するようになったため、2 つのフィールドが再び 1 つのフィールドに統合される可能性があります。
ほとんどの組み込みシステムはリアルタイムのリアクティブ システムであるという事実に鑑み、リアクティブ システムは、マルチタスクの同時実行性、厳密な時間制約、高い信頼性といった特徴を備えており、リアクティブ システムの設計と記述に関して、さまざまな提案が次々と行われてきました。記述言語と検証方法。たとえば、逐次ロジックはリアクティブ システムの性質を記述し、リアクティブ システムの動作を推論するために使用され、モデル検査テクノロジはリアクティブ システム設計の正確性を検証するために使用されます。これらのテクノロジは、組み込み開発において徐々に重要な役割を果たしています。プロセス。 。
組み込みシステムの開発環境にはさまざまな種類があり、一般に次のカテゴリに分類できます。
(1) 組み込みオペレーティング システムをサポートする開発環境 このカテゴリには、PalmOS、THOS、VxWorks、Windows CE およびその他の商用組み込みオペレーティング システムなど、多くの開発環境があり、それらをサポートする完全な機能の開発環境があります。
(2) プロセッサチップをサポートする開発環境。この種の開発環境は一般的にプロセッサメーカーによって提供されており、例えば、EPSON が発売するマイコンチップ S1C33 シリーズをベースとした組み込みシステムの開発に特化したツールキットがこのタイプの開発環境です。
(3) 特定のアプリケーションプラットフォームに適合した開発環境。このタイプの開発環境は、Qualcomm の Brew SDK など、非常にターゲットが絞られています。
(4) その他の種類の開発環境。このタイプの開発環境は主に、一部の組み込みシステム ベンダーが GNU オープン ソース ツールに基づいて開発またはカスタマイズした、より一般的な開発環境を指します。このようなツールは無料で入手でき、幅広い種類のプロセッサをサポートし、完全な機能を備えていますが、技術サポートは専門的な商用ツールよりもわずかに劣ります。
組み込みシステムの機能がますます複雑になるにつれて、これらの機能的に複雑なシステムの動作を記述することがますます困難になってきており、計算モデルを使用してシステムを記述および分析することが工学的価値のある方法であることが実証されています。
このセクションでは、組み込み分野で一般的に使用されるいくつかのコンピューティング モデルを紹介し、コンピューティング モデルの観点から組み込みアプリケーションの設計と開発に関連する問題を分析および説明します。計算モデルは、複雑な動作を単純なオブジェクトと組み合わせるための一連のメソッドを提供し、設計者がシステムの動作を理解して説明するのに役立ちます。組み込みシステムで一般的に使用されるコンピューティング モデルには、シーケンシャル コンピューティング モデル、通信プロセス モデル、ステート マシン モデル、データ フロー モデル、オブジェクト指向モデル、および同時プロセス モデルが含まれます。 これらのモデルはさまざまなアプリケーション分野で使用されます。たとえば、ステート マシン モデルは制御指向のシステムを記述するのに特に適しており、データ フロー モデルはデータ処理と変換の問題を適切に記述することができます。現在最も広く使用されているのは、同時プロセス モデルです。
1.ステートマシンモデル
有限状態マシン (FSM) は、システムの動作を記述するために可能な状態のセットを使用できる基本的な状態モデルです。システムは常にいずれかの状態にのみ存在することができ、また、決定された状態を記述することもできます。最後に、遷移は、特定の状態または状態遷移中に発生する可能性のある操作を記述することができます。
有限状態マシン FSM は 6 タプル F です。<S,I,O,F,H,S0> ここで、S は状態セット {s0, s1,…,sl}、I は入力セット {I0, I1,…,Im}、O は出力セット {o0, o1,…,on}、F はまたは、状態と入力を状態にマッピングする遷移関数 (S×I→S)、H は状態を出力にマッピングする (S→O)、S0 は初期状態です。 。
図 12-12 は、エレベータ制御ユニットのステートマシン記述です。初期の「アイドル」状態では、上下を0、開を1に設定します。ステート マシンは、要求されたフロアが現在のフロアと異なるまで「アイドル」状態のままになります。要求されたフロアが現在のフロアよりも大きい場合、ステート マシンは「アップ」状態に移行し、最大 1 に設定されます。要求されたフロアが現在のフロアよりも小さい場合、ステート マシンは「ダウン」状態に移行し、ダウンは 1 に設定されます。ステート マシンは、現在のフロアが要求されたフロアと等しくなるまで「ダウン」または「アップ」状態を維持し、その後、オープンが 1 に設定された「オープン」状態に遷移します。通常、システムにはタイマーが備わっているため、ステート マシンが「オープン ドア」状態に移行すると、タイマーも開始され、タイマーがタイムアウトするまで「オープン ドア」状態に留まります。 「アイドル」状態。
FSM が組み込みシステム設計で使用される場合、その入力と出力のデータ型は両方ともブール型であり、関数はブール演算を含むブール関数を表します。このモデルは、データの入力または出力が十分にない多くの純粋な制御システムに使用されています。 。データを処理する場合は、FSM をデータパスを備えたステート マシンに拡張します (FSM with Datapath、FSMD)。さらに、ステート マシン モデルは、階層型および同時実行性をサポートするようにさらに拡張できます。このモデルは、階層/同時実行 FSM (HCFSM) モデルと呼ばれます。
2.データフローモデル
データ フロー モデルは、同時マルチタスク モデルから派生したモデルであり、システムの動作をノードとエッジのセットとして記述します。ノードは変換を表し、エッジはあるノードから別のノードへのデータ フローを表します。 。各ノードは入力エッジからのデータを使用し、変換を実行して出力エッジにデータを生成します。
各エッジにはデータがある場合とない場合があります。エッジに表示されるデータはトークンと呼ばれます。ノードのすべての入力エッジに少なくとも 1 つのトークンがある場合、ノードをトリガーできます。ノードがトリガーされた後、各入力エッジからのトークンが使用され、使用されたすべてのトークンに対してデータ変換が実行され、出力エッジでトークンが生成されます。ノードのトリガーはトークンの発生にのみ依存します。 。
図 12-13 は、z=(a+b)×(cd) を計算するためのデータ フロー モデルを示しています。 現在、グラフィカル言語でのデータ フロー モデルの表現をサポートする商用ツールがいくつかあります。これらのツールは、データ フロー モデルをマイクロプロセッサ上で実装するための同時マルチタスク モデルに自動的に変換できます。変換方法は、各ノードをタスクに変換し、各エッジをチャネルに変換することです。同時マルチタスク モデルの実装方法は、リアルタイム オペレーティング システムを使用して同時タスクをマッピングすることです。
図 12-14 は同期データ フロー モデルです。このモデルでは、ノードの各入力エッジと出力エッジに、各トリガーで使用および生成されたトークンの数がマークされます。このモデルの利点は、実装中に同時マルチタスク モデルに変換する必要がなく、代わりにノードが静的な方法でスケジュールされ、逐次プログラム モデルが生成されることです。モデルはC言語などの逐次型プログラミング言語で表現でき、リアルタイムOSがなくても実行できるため、実行効率が高くなります。
3. 同時プロセスモデル
並行プロセスモデルは、プロセスの集合から構成され、各プロセスは逐次実行プロセスであり、各プロセスは並行して実行できます。同時プロセス モデルは、プロセスの作成、終了、一時停止、再開、および接続のための操作を提供します。プロセスは実行中に相互に通信し、データを交換できます。プロセス間通信には、共有変数とメッセージ パッシングという 2 つの形式があります。セマフォ、クリティカル セクション、チューブ、パス式などは、同時プロセスの操作を同期するために使用されます。
一般に、リアルタイム システムは、それぞれに時間要件がある、同時に実行される多数のプロセスで構成されるシステムとみなすことができます。このように、多くの組み込みシステムは、同時に実行される一連のタスクによってより簡単に記述できます。これは、これらのシステム自体がマルチタスク システムであり、同時プロセス モデルは、リアルタイム オペレーティング システムのマルチタスクによって自然に実装できるためです。
4.オブジェクト指向モデル
従来の並行プロセス モデルは、プロセスの概念に基づいて設計されています。プロセスは、オブジェクトの世界でのアクティビティの間接的なシミュレーションであるため、プロセス モデルを使用して並行性の問題を解決することは非常に困難です。それは不自然であり、並行プログラムの設計と理解も困難になります。
オブジェクト指向モデルは、オブジェクトの世界におけるアクティビティをより直接的な方法で記述しており、モデルには潜在的な同時実行機能があります。あるオブジェクトが別のオブジェクトにメッセージを送信した後、メッセージの処理結果が必要ない場合、またはすぐに必要でない場合、前者は後者がメッセージを処理するのを待つ必要はなく、メッセージ送信者とメッセージ受信者は実行できます。同時に。オブジェクトは、すべてが受動的なサービス提供状態にあるわけではなく、メッセージを受信することによってサービスを提供するだけでなく、独自のトランザクション処理を行うこともできます。
理由。多くの場合、オブジェクトは複数のメッセージを同時に処理できます。
オブジェクトはデータと操作をカプセル化したもので、データはオブジェクトのローカル変数に格納されます。オブジェクトの状態は、ある時点でのオブジェクトのすべてのローカル変数の値によって表されます。同時実行環境では、オブジェクトの同時実行状態の制御はオブジェクトの同時実行状態に基づいているため、オブジェクトの同時実行状態の記述も考慮する必要があります。同時実行性とオブジェクト指向の組み合わせは、次の 2 つの方法に要約できます。
(1) オブジェクト指向モデルに並行性メカニズムを導入し、オブジェクト指向技術を最大限に活用して、オブジェクト世界の優れたモデル能力とオブジェクト指向のさまざまな重要な特性を記述し、同時にその潜在的な並行性機能を説明します。ので、同時コンピューティングの説明に適しています。
(2) 従来の同時実行モデルにオブジェクト指向の考え方を導入します。 オブジェクト指向同時実行モデルは、暗黙的同時実行モデルと明示的同時実行モデルの 2 つのタイプに分類できます。
(1) 暗黙的な同時実行モデル。このモデルの特徴は、並行設計を延期し、モデリングの基礎としてオブジェクト モデリングを使用することです。実行フェーズに入る前に、オブジェクトを自律的な単位として扱い、さまざまなオブジェクトのアクティビティを理想的な並行方法で完了する特定のタスクとして扱います。各オブジェクトに独自のプロセッサがあるのと同じように、このプロセッサはオブジェクトに実行スレッドを提供できます。システムに入る外部イベントは処理要求とみなされ、いくつかのオブジェクトにブロードキャストされ、これらのオブジェクトは他のオブジェクトにさらに処理要求を送信します。理論的には、リクエストに応じて、任意の数のオブジェクトが対応する処理を実行できます。図 12-15 に示すように、実装中に、スケジューラはオブジェクトに対する操作の順序を最終的に決定します。
(2) 明示的な同時実行モデル。このモデルの特徴は、同時実行性を最初に考慮し、同時実行性の概念とオブジェクトの概念を最初に分離する必要があることです。オブジェクトが確立された後、リアルタイム オペレーティング システムによってサポートされるプロセスの概念が同時実行性を表すために使用され、オブジェクトとプロセスの 2 つの抽象レベルが形成されます。つまり、まず開始点としてシステムを準同時プロセスに分解します。各プロセス内でオブジェクト指向テクノロジーを使用します。オブジェクト間の対話はネストされた関数呼び出しとして表現され、オブジェクトの整合性を確保するためにロック、モニター、セマフォなどの明示的な同期メカニズムが追加されます。このモデルでは、プロセスがオブジェクトの上に配置されるため、図 12-16 に示すように、オブジェクト内の同時実行性やオブジェクトの直列化を考慮する必要がありません。
初期のリアルタイム システムの設計手法は、主に構造化設計手法でした。構造化手法を使用するシステムには、再利用性と変更可能性の点で大きな制限がありました。オブジェクト指向のリアルタイム システム設計方法には、これらの問題に対して明らかに利点があります。より実用的なオブジェクト指向設計手法は、Nokia の OCTOPUS 手法です。この手法は、OMT と Fusion Method に基づいており、リアルタイム システムの応答時間、時間領域、同時実行性を処理する手法を提案しており、特にリアルタイムに対処する手法を提案しています。システムの応答時間、タイムドメイン、同時実行性、同期、通信、割り込み処理、ASIC、ハードウェアインターフェイス、エンドツーエンドの応答時間などの処理側面。 OCTOPUS アプローチは、ソフトウェア開発の主要なフェーズを適切に組み合わせ、仕様から実行モデルへの緊密かつ自然な移行を提供し、増分開発をサポートします。 OCTOPUS方式は、現在のオブジェクト指向技術とリアルタイムシステムを組み合わせた代表的な設計手法です。さらに、正式なオブジェクト指向開発手法とモデリング言語が、リアルタイム システム モデリングの初期段階に徐々に適用されています。
設計する前に、デザイナーは何を設計するかを知っておく必要があります。要件と仕様は、設計プロセスのこれら 2 つの関連しているが別個のステップを説明するためによく使用されます。要件はユーザーが望むものについての非公式な記述ですが、仕様はシステム アーキテクチャの作成に使用できる、より詳細で正確かつ一貫した記述です。もちろん、要件と仕様はガイダンス システムの外部表現であり、内部表現ではありません。要件には、機能要件と非機能要件の 2 種類があります。機能要件はシステムが実行する必要があることを記述し、非機能要件は物理サイズ、価格、消費電力、設計時間、信頼性などのシステムのその他の属性を記述します。待って。
大規模システムの要件分析は複雑で時間のかかる作業ですが、明確でシンプルな形式で少量の情報を取得することは、システムの要件を理解するための良いスタートとなります。表 12-5 は、プロジェクトの開始時に記入される要件フォームであり、システムの基本特性を検討する際のチェックリストとして使用できます。
この要求書の内容は、GPS(Global Position System、携帯地図システム)を例として作成されています。モバイルマップシステムは、高速道路を走行するユーザーなどに向けて設計された携帯型のデバイスで、GPSから位置情報を取得し、ユーザーに応じて地図の内容が変化する現在地や周囲の地形図を表示します。ユーザーおよびデバイスの位置に応じて変化します。
要件分析フェーズで出力される最も重要な文書はシステム仕様です。
仕様書は顧客のニーズを正確に反映し、設計時に遵守すべき要件となる技術文書です。ソフトウェア開発のプロセスにおいて、仕様は非常に重要です。システムアナリストはユーザーの要件を受け入れ、ターゲットソフトウェアシステムの仕様を生成します。設計者とコーダーは仕様に従ってモジュールを設計し、最終的にテストおよび受け入れ担当者が最終的なソフトウェアが仕様を満たしているかどうかを検証します。仕様は明確かつ明確である必要があります。そうしないと、仕様に基づいて構築されたシステムが実際の要件を満たさない可能性があります。
現在、業界でより一般的な方法は、UML を使用して仕様を記述することです。 UML は、静的な構造と動的な動作を備えたあらゆるシステムをモデル化できる普遍的な標準モデリング言語です。 UML は、要件定義からシステム完成後のテストまで、システム開発プロセスのさまざまな段階に適しています。図 12-17 は、開始と終了が特別な状態であり、ステート マシン内の状態が異なる概念的な操作を表すことを示すステート マシン仕様の例です。
要件分析フェーズでは、ユースケースを通じてユーザー要件が取得されます。ユースケースのモデリングを通じて、システムに関心を持つ外部アクターと、そのシステムに対する機能要件 (ユースケース) を説明します。分析フェーズは主に、問題領域の主要な概念 (抽象化、クラス、オブジェクトなど) とメカニズムに関係しており、これらのクラスとその関係を特定し、UML クラス図で記述する必要があります。分析フェーズでは、ソフトウェア システムの技術的な詳細を定義するクラス (ユーザー インターフェイス、データベース、通信、および並列処理)。
現在、組み込みシステム設計ツールは、協調合成ツールと協調シミュレーション ツールの 2 つのカテゴリに分類できます。
(1) 協調合成ツール。現在、組み込み開発に使用される主な協調合成ツールには、POLIS、COSYMA、Chinook などがあります。
POLIS: POLIS は、UC-Berkeley によって開発された対話型組み込みシステム用のソフトウェアとハードウェアの共同設計フレームワークです。システム記述は、FSM (Finite State Machine) ベースの言語をサポートしています。ソフトウェアとハードウェアの両方を同じ CFSM 記述から透過的に取得できるため、PTOLEMY を使用した協調シミュレーションもアーキテクチャのサポートでサポートされます。つまり、ハードウェア CFSM は 1 つのプロセッサのみで囲まれており、共有メモリをサポートしません。
COSYMA: COSYMA は、ハードウェアとソフトウェアの協調設計の合成プロセスを探索するためにドイツの IDA 社によって開発されたプラットフォームです。ソフトウェア システムについては比較的単純な記述があり、自動セグメンテーションとコプロセッサ合成をサポートし、設計空間を探索できます。合成期間中、システム合成はハードウェアの制限に依存し、同時実行モジュールをサポートしません。つまり、アーキテクチャも制限されており、デザインの成功をサポートしません。パーティショニングとコスト見積もり手法に依存します。
Chinook: Chinook は、システム全体の記述が入力として提供されます。その内部モデルは、コードをセグメント化するものではありません。 Chinook は、さまざまなシステム アーキテクチャ、特にマルチプロセッサ アーキテクチャをサポートします。また、タイミング制約の記述もサポートしており、システム間のソフトウェアおよびハードウェア インターフェイスを含むさまざまなインターフェイスを合成でき、タイミング チャートから直接デバイス ドライバーを合成したり、プロセッサ間の通信を制御したりできます。
(2) 共同シミュレーションツール。協調シミュレーションは、システム全体の設計が完了した後、検証を行うだけでなく、ユーザーに各システムのパフォーマンス情報を提供するために、さまざまな種類のコンポーネントをシミュレーションする必要があります。 . 大きな損失を引き起こすことなく、システムの初期段階で変更を提案するのに役立ちます。現在、主な共同シミュレーション ツールは 2 つあります。
PTOLEMY: PTOLEMY の重要なアイデアは、コンピューティング モデルとオブジェクト指向カーネルを混合することです。これはさまざまなシステムのシミュレーションに使用でき、さまざまなアプリケーションで広く使用されていますが、システム合成には適していません。もその機能の一つです。 TSS: TSS (Tool for System Simulation) は、C 言語で書かれた、個々のモジュールの抽出を制御でき、モジュールの追加と削除が簡単に行えます。ただし、階層モジュールはサポートされておらず、各プロセッサによる共有データ構造へのアクセスを同期するメカニズムはなく、モジュール間の通信はポートとバスを通じて実行されます。さらに、TSS はマルチコア システムのシミュレーションをサポートします。
1.システムアーキテクチャ設計
仕様で定義された機能をシステムがどのように実装するかを説明することが、システム アーキテクチャ設計の主な目的です。しかし、組み込みシステムのシステム構造を設計する場合、ソフトウェアとハードウェアを完全に分離することは困難です。通常のアプローチは、最初にシステムのソフトウェア アーキテクチャを検討し、次にそのハードウェア実装を検討することです。システム アーキテクチャの記述は、機能要件および非機能要件を満たしている必要があります。必要な機能を実装するだけでなく、コスト、速度、消費電力などの機能以外の制約も満たさなければなりません。システムの元のブロック図の機能要素を 1 つずつ検討して洗練し、非機能的な制約を考慮しながら元のブロック図をソフトウェアおよびハードウェアのシステム構造に変換する実用的な方法です。以下では、説明する例として GPS モバイル マップ システムのアーキテクチャ設計を取り上げます。
(1) 元のブロック図。図 12-18 に示すように、この元のブロック図は、モバイル マップ システムの主な動作とデータ フローです。
(2) ソフトウェアシステムアーキテクチャ。図 12-19 に示すように、ソフトウェア システムは主にユーザー インターフェイス、データベース検索エンジン、データ コンバーターで構成されます。
(3) ハードウェア システム アーキテクチャ。図 12-20 に示すように、ハードウェア システムは汎用マイクロプロセッサ、メモリ、および I/O デバイスで構成されます。このシステムは、一般データ、プログラム メモリ、ピクセル表示用のフレーム バッファ メモリの 2 種類のメモリを選択します。
2.ハードウェア サブシステムの設計
組み込みシステムの開発環境は、ターゲット ハードウェア プラットフォーム、組み込みオペレーティング システム、プログラミング言語、開発ツールの 4 つの部分で構成されます。その中で、プロセッサとオペレーティング システムの選択では、プロジェクトの進行に影響を与える誤った決定を避けるために、より多くの要素を考慮する必要があります。 。
(1) プロセッサテクノロジーを選択します。組み込みシステム設計における大きな課題は、競合する設計仕様を同時に最適化する方法です。設計者は、さまざまなプロセッサ テクノロジと IC テクノロジの間でトレードオフを行う必要があります。一般に、プロセッサ テクノロジは IC テクノロジとは何の関係もありません。つまり、どのプロセッサ テクノロジも、どの IC テクノロジを使用して実装することもできますが、最終デバイスのパフォーマンス、NRE コスト、消費電力、サイズ、その他の指標は非常に重要になります。図 12-21 に示すように、異なります。
より汎用性の高いプログラマブル テクノロジにより、柔軟性が向上し、NRE コストが削減され、製品のプロトタイプと発売時間が短縮されます。カスタマイズされたテクノロジーにより、消費電力の低減、パフォーマンスの向上、サイズの小型化、および大量生産のコスト削減が可能になります。
通常、企業がセットトップ ボックス、ホーム ルーター、汎用プロセッサなどの製品を発売したい場合、まずセミカスタマイズされた製品を発売してできるだけ早く市場を獲得し、その後、完全にカスタマイズされた製品。また、最初に信頼性の高い古いテクノロジを使用してプロセッサを実装し、次に新しいプロセス テクノロジを使用して次世代を実装することもできます。同様に、組み込みシステムの設計者は、プログラマブル デバイスを使用してプロトタイプを構築し、市場投入までの時間を短縮し、量産にはカスタム デバイスを使用できます。 これらの原則に基づいて、設計者は、使用するプロセッサ テクノロジとプロセッサについて合理的な選択を行うことができます。一般に、完全にカスタマイズ可能な市販の「ユニバーサル プロセッサ ソフトウェア」が、ほとんどの状況に適したオプションです。
(2) 一般的な組み込みプロセッサの選択。ユーザーとプロジェクトのニーズに基づいて、適切な汎用組み込みプロセッサを選択してください。選択する際には、次の指標を考慮する必要があります。
プロセッサの速度。プロセッサのパフォーマンスは、クロック周波数、内部レジスタのサイズ、命令がすべてのレジスタを均等に処理するかどうかなど、多くの要因によって決まります。プロセッサを必要とする多くの組み込みシステム設計の目標は、最速のプロセッサを選択することではなく、ジョブを実行できるプロセッサと I/O サブシステムを選択することです。プロセッサの性能はシステムのニーズを満たしており、ある程度の余裕はありますが、あまり高く選ぶ必要はありません。テクニカル指標。現在、多くの組み込みプロセッサは周辺機器の機能を統合することでチップ数を減らし、システム全体の開発コストを削減しています。開発者が最初に考慮するのは、システムに必要なハードウェアの一部を過度の組み合わせロジックなしでプロセッサに接続できるかどうかです。次に、DMA コントローラー、メモリ マネージャー、割り込みコントローラー、シリアル デバイス、クロックなど、プロセッサーのサポート チップを考慮します。開発者がプロセッサに精通しているということは、プロジェクト開発者がプロセッサ自体のコストと開発コストの間でトレードオフを行う必要があることを意味します。
プロセッサの I/O 機能がシステムのニーズを満たしているかどうか。つまり、多くのプロセッサはチップ数を減らしてコストを削減するために、外部デバイスを内蔵しています。この解決策を可能な限り考慮する必要があります。プロセッサーに関連するソフトウェア サポート ツール、つまり、プロセッサーが組み込みオペレーティング システム、プログラミング言語、開発ツールなどを完全にサポートしているかどうか。
プロセッサのデバッグとは、JTAG、BDM、その他のデバッグ方法をサポートするかどうかなど、プロセッサにデバッグ機能が統合されているかどうかを指します。プロセッサーのメーカーサポートの信頼性。製品のライフサイクル中に特定のプロセッサを選択する場合、設計者は、そのプロセッサに十分な供給、技術サポートなどが提供されていることを確認する必要があります。プロセッサの消費電力が低いこと。
組み込みマイクロプロセッサの最大かつ急速に成長している市場は、ハンドヘルド デバイス、電子メモ帳、PDA、携帯電話、GPS ナビゲータ、スマート家電などの家庭用電子製品です。これらの製品で購入されるマイクロプロセッサは、通常、高いパフォーマンスを必要とすることが特徴です。低消費電力。多くの CPU メーカーがすでにこの分野に参入しています。
(3) ハードウェア設計上の注意事項。まず、ハードウェアをコンポーネントまたはモジュールに分割し、コンポーネントまたはモジュールの接続のブロック図を描きます。次に、各モジュールを改良し、システムを独立して実装できる、より管理しやすい部分に分割します。通常、システムの一部の機能はソフトウェアとハードウェアの両方で実装できます。設計者がソフトウェアとハードウェアの機能の割り当てを決定するための統一された方法はありませんが、パフォーマンスとコストのトレードオフは、ソフトウェアとハードウェアの両方で行うことができます。制約リスト。ソフトウェアとハードウェア間のインターフェイスを設計する場合、ハードウェア設計者とソフトウェア設計者が協力してインターフェイスを完成させる必要があります。これにより、ハードウェアがシンプルでプログラミングしやすくなります。 設計時には以下の点に注意してください。
つまり、ソフトウェアの設計と開発を促進するために、ハードウェア設計者はソフトウェア設計者にさらに詳細な情報を提供する必要があります。
3.ソフトウェアサブシステム設計
要件分析段階の仕様書に従って、システム計算モデルを決定し、ソフトウェア部分の合理的な設計を行います。
(1) OSの選択。組み込みオペレーティング システムを選択する場合は、次のような多くの側面を考慮する必要があります。
オペレーティング システムの機能。プロジェクトで必要なオペレーティング システムの機能に基づいて、システムがオペレーティング システムの機能のすべてをサポートしているか一部をサポートしているか、ファイル システムをサポートしているか、マン マシン インターフェイスをサポートしているか、リアルタイム システムであるかを検討して、オペレーティング システム製品を選択します。それともタイムシェアリングか、システムを削減できるかなど。
サポートする開発ツールの選択。一部のリアルタイム オペレーティング システム (rto) は、システム ベンダーの開発ツールのみをサポートします。つまり、コンパイラやデバッガなどもオペレーティング システム ベンダーから入手する必要があります。一部のオペレーティング システムは広く使用されており、サードパーティ製のツールも利用できるため、選択肢が広がります。オペレーティング システムの移植がいかに簡単であるか。オペレーティング システムをハードウェアに移植することは重要な問題です。システム全体を予定通りに完成させることができるかどうかは重要な要素となるため、ハードウェアへのOSの移植の難しさに起因するさまざまな問題を回避し、開発の進捗を加速するためには、移植性の高いOSを選択する必要があります。システムの。オペレーティング システムのメモリ要件はどれくらいですか。オペレーティング システムのより大きなメモリ要件に応えるために、追加の RAM または EEPROM が必要かどうかを検討してください。一部のオペレーティング システムには、ターゲット固有のメモリ要件があります。 tornado/vxworks など、開発者はオペレーティング システムにリソースを割り当てるのではなく、アプリケーションのニーズに応じて必要なリソースを割り当てることができます。開発者は、数キロバイトのメモリを必要とする組み込み設計から、より多くのオペレーティング システム機能を必要とする複雑なハイエンド リアルタイム アプリケーションに至るまで、最大 80 の異なる構成から選択できます。
オペレーティング システムのアドオン パッケージ。ネットワーク プロトコル スタック、ファイル システム、一般的に使用されるさまざまな周辺機器のドライバーなど、必要なソフトウェア コンポーネントが含まれているかどうか。オペレーティング システムのリアルタイム性はどの程度ですか?リアルタイムはソフトリアルタイムとハードリアルタイムに分けられます。一部の組み込みオペレーティング システムは、ソフト リアルタイム パフォーマンスしか提供できません。たとえば、Microsoft Windows CE 2.0 は、ほとんどの組み込みおよび非組み込みのニーズを満たすことができる、32 ビットの Windows 互換のマイクロカーネルのスケーラブルなリアルタイム オペレーティング システムです。アプリケーション。ただし、リアルタイム性能は十分ではなく、ソフトリアルタイム組み込み操作です。
オペレーティング·システム。オペレーティング システムはどの程度柔軟ですか?オペレーティング システムを調整できるかどうか、つまり、システムの機能を実際のニーズに合わせて調整できるかどうか。組み込み Linux、Tornado/vxworks など、一部のオペレーティング システムには強力なカスタマイズ性があります。
(2) プログラミング言語の選択。プログラミング言語を選択するときは、次のような多くの側面も考慮する必要があります。
多用途性。マイクロプロセッサ技術の継続的な発展に伴い、その機能はますます専門化されており、その種類はますます増えています。ただし、さまざまな種類のマイクロプロセッサが独自の専用アセンブリ言語を持っています。これはシステム開発者にとって大きな障害となり、システムプログラミングがより困難になり、高級言語は一般的に特定のマシンのハードウェア構造との接触が少なくなります。ほとんどのマイクロプロセッサで利用可能で、優れたサポートと優れた汎用性を備えています。
携帯性。アセンブリ言語は特定のマイクロプロセッサと密接な関係にあるため、あるマイクロプロセッサ向けに設計されたプログラムを他の種類のマイクロプロセッサにそのまま移植することはできず、移植性が低い。高級言語はすべてのマイクロプロセッサに共通であるため、プログラムはさまざまなマイクロプロセッサ上で実行でき、移植性が高くなります。これがソフトウェア再利用の基本です。効果。一般に、言語が高レベルになればなるほど、コンパイラとオーバーヘッドが大きくなり、アプリケーションが大きくなり遅くなります。ただし、アセンブリ言語などの低レベル言語のみに依存してアプリケーションを開発すると、プログラミングが複雑になったり、開発サイクルが長くなるなどの問題が生じます。したがって、開発時間と実行時のパフォーマンスの間にはトレードオフの関係があります。
保守性。アセンブリ言語などの低レベル言語は保守できません。高級言語プログラムは多くの場合モジュール設計であり、各モジュール間のインターフェイスは固定されています。したがって、システムに問題が発生した場合、問題を特定のモジュールで迅速に特定し、できるだけ早く解決することができます。さらに、モジュール設計により、システム機能の拡張やアップグレードも容易になります。
基本性能。組み込みシステムの開発プロセスでは、さまざまな種類の言語が使用されます。より広く使用されている高級言語には、Ada、C/C++、Modula-2、Java などがあります。 Ada 言語は厳密に定義されており、読みやすく理解しやすく、ライブラリ プログラムのサポートが充実しています。現在、国防、航空、航空宇宙、その他の関連分野で広く使用されており、今後もこれらの分野で重要な位置を占めます。未来。 C 言語は、広範なライブラリ プログラムをサポートしており、組み込みシステムで最も広く使用されているプログラミング言語であり、今後も長い間、組み込みシステム アプリケーションの分野で重要な位置を占めるでしょう。 C++ は、GNU C++ などの組み込みシステム設計でも広く使用されているオブジェクト指向プログラミング言語です。 Visual C++ は、ビジュアル プログラミングをサポートする統合開発環境であり、GUI プログラム開発で広く使用されています。ただし、C++ と比較すると、C++ のターゲット コードは大きく、より複雑になることが多く、組み込みシステム アプリケーションではこの要素を十分に考慮する必要があります。
(3) ソフトウェア開発プロセス。組み込みソフトウェアの開発プロセスは、一般的な一般ソフトウェアの開発プロセスとは異なり、主に次の手順で行われます。
(4) ソフトウェア開発ドキュメント。組み込み製品の開発および設計プロセスでは、開発段階でシステム製品の実装が完了します。この段階では、製品の設計と保守を完了するために非常に重要なドキュメントが作成されます。 、技術タスクなどの文書、技術計画報告書、製品仕様書、技術条件、設計指示書、試験報告書、概要報告書など。
通常、組み込みシステムのテストは主に、ソフトウェア テスト、ハードウェア テスト、単体テストの 3 つの部分で構成されます。 一般的なシステム ハードウェア テストには、信頼性テストと電磁両立性テストが含まれます。現在、電磁両立性に関する国内および国際規格が義務付けられています。
組み込みシステム ソフトウェアのテスト方法と原則は、一般的なソフトウェアのテストと基本的に同じです。ソフトウェアをテストする場合、通常、テスト インスタンスまたはテスト シーケンスの 2 つのソースが必要になります。1 つはユーザーによって設計され、もう 1 つはシーケンスです。は標準的なテストシーケンスです。どのようなテスト インスタンスであっても、インスタンスには高い確率でより多くのエラーを検出できることが求められますが、テストの内容にはいくつかの違いがあります。
(1) 組込みソフトウェアは長時間安定して動作しなければなりません。
(2) 組み込みソフトウェアは一般的に頻繁にバージョンアップされません。
(3) 組み込みソフトウェアは通常、重要なアプリケーションで使用されます。
(4) 組み込みソフトウェアは、組み込みハードウェアとともに製品の故障と信頼性に対して責任を負わなければなりません。
(5) 現実世界の状況は非同期で予測不可能であるため、シミュレーション テストが非常に困難になります。
これらの違いにより、組み込みシステム ソフトウェアのテストでは主に次の 4 つの異なる側面に焦点を当てます。
(1) リアルタイム性と同時性を同時に満たすことは難しいため、ほとんどのテストはリアルタイム テストに重点を置いています。
(2) ほとんどのリアルタイム システムにはリソースの制約があるため、より多くのパフォーマンスとユーザビリティのテストが必要です。
(3) コードカバレッジは、専用のリアルタイム追跡ツールを使用してテストできます。
(4) 信頼性のテストレベルは一般的なソフトウェアよりもはるかに高くなります。
さらに、パフォーマンス テストは、組み込みシステムの設計において完了する必要がある最も重要なテスト作業の 1 つであり、組み込みシステムに決定的な影響を与えます。
組み込みシステムの特殊な特性により、システムにはさまざまなハードウェア プラットフォームとソフトウェア プラットフォームがあり、それぞれが異なるアプリケーション向けに特別に設計されているため、アプリケーション ソフトウェアがさまざまなプラットフォーム間で共通であることはほとんどなく、組み込みシステムの更新速度は比較的高速です。既存の投資を保護し、既存のソフトウェア リソースを最大限に活用し、製品開発をスピードアップするために、組み込み分野ではソフトウェアの移植が非常に頻繁になっています。