マイクロプロセッサ (MPU) または マイクロコントローラ (MCU)?次の設計に適した処理装置を選択する際に考慮すべき要素は何でしょうか?
MPUとMCUとは何ですか?
新しいデザインのベースとなる適切なデバイスを選択するのは難しい場合があります。価格、性能、電力消費の適切なバランスをとる必要性には多くの意味合いがあります。まず、あなたが着手できる設計には、当面の技術的考慮点があるでしょうが、デバイスが マイクロコントローラ (MCU) またはマイクロプロセッサ (MPU) がさまざまな新製品のプラットフォーム アプローチの基礎となる場合、その決定は長期的な影響を及ぼす可能性があります。
まず、MCUとMPUの主な違いをいくつか考えてみましょう。通常、MCUは、プログラムを保存および実行するためにオンチップの組み込みフラッシュ メモリを使用します。このようにプログラムを保存すると、MCUの起動時間が非常に短くなり、コードを非常に速く実行できるようになります。組み込みメモリを使用する際の唯一の実際的な制限は、使用可能なメモリ空間の合計が有限であることです。市販されているほとんどのフラッシュMCUデバイスは最大2 MBのプログラム メモリを備えており、アプリケーションによってはこれが制限要因となる場合があります。MPUには同様のメモリ制約はありません。プログラムとデータの保存には外部メモリを使用します。プログラムは通常、NANDやシリアルフラッシュなどの不揮発性メモリに保存され、起動時に外部にロードされます。 メモリ そして実行を開始します。つまり、MPUはMCUほど速く起動して実行されませんが、プロセッサに接続できるDRAMとNVMの量は数百MB、NANDの場合はGBの範囲になります。もう一つの違いはパワーです。独自の電源を組み込むことで、MCUに必要なのは単一の電圧電源レールのみになります。比較すると、MPUでは、コア、DDRなどに複数の異なる電圧レールが必要です。開発者は、オンボードの追加電源IC / コンバーターでこれに対応する必要があります。
アプリケーションの観点から見ると、設計仕様のいくつかの側面が特定の方法でデバイスの選択を決定する可能性があります。たとえば、必要な周辺インターフェース チャネルの数は、MCUで対応できる数を超えているでしょうか?あるいは、マーケティング仕様では、オンチップメモリが十分でなかったり、必要なパフォーマンスがないため、MCUでは実現できないユーザー インターフェイス機能が規定されているのでしょうか?最初の設計に着手する際に、そのことを知っておくと、製品のバリエーションが多数存在する可能性が高くなります。その場合、プラットフォームベースの設計アプローチが好まれる可能性が非常に高くなります。これにより、将来の機能アップグレードに対応するために、処理能力とインターフェース機能に関してより多くの「余裕」が確保されます。
決定するのが難しい属性は、特定の設計に必要な処理パフォーマンスです。Dhrystone MIPS (DMIPS) で測定される処理能力は、これらの基準を定量化するのに役立ちます。たとえば、AtmelのSAM4 MCUなどのARM Cortex-M4ベースのマイクロコントローラの定格は150 DMIPSですが、AtmelのSAMA5D3などのARM Cortex-A5アプリケーション プロセッサ (MPU) は最大850 DMIPSを実現できます。必要なDMIPSを見積もる方法の1つは、パフォーマンスが大量に消費される可能性のあるアプリケーションの部分を調べることです。アプリケーションでLinux、Android、Windows CEなどの完全なオペレーティング システム (OS) を実行するには、少なくとも300 ~ 400 DMIPSが必要です。多くのアプリケーションでは、単純なRTOSで十分であり、50 DMIPSの許容値があれば十分すぎるでしょう。RTOSを使用すると、必要なメモリ領域が少なくなるという利点もあります。カーネルは通常、わずか数KBです。残念ながら、完全なOSを実行するにはメモリ管理ユニット (MMU) が必要です。これにより、使用するプロセッサ コアの種類が指定され、より多くのプロセッサ機能が必要になります。
より大量の数値計算を必要とするアプリケーションを実行するには、OSやその他の通信および制御タスクに加えて、DMIPSの許容量を確保する必要があります。アプリケーションが数値ベースであればあるほど、MPUが必要になる可能性が高くなります。
マイクロコントローラとマイクロプロセッサのアプリケーション
対象とするアプリケーションが民生用電子機器向けであるか、 産業オートメーション向けであるかにかかわらず、ユーザー インターフェイス (UI) は重要な考慮事項となります。消費者として、私たちはカラフルで直感的なグラフィカルUIに慣れ親しんでおり、快適に使用しています。産業用アプリケーションでは、このオペレータ対話方式の使用が増えていますが、動作環境によってこれがどの程度保証されるかが制限される可能性があります。UIに関してはいくつかの要素があります。まず、処理のオーバーヘッドは必要ですか。Linux上で広く使用されているQtなどのUIライブラリの場合、80 ~ 100 DMIPSのオーバーヘッドで十分でしょう。2番目の要因は、UIの複雑さに関係しています。アニメーション、エフェクト、マルチメディア コンテンツが増えると、表示される画像に適用される変更も多くなり、必要な処理能力とメモリも増えます。この要件は解像度に応じて拡大するため、UI中心に設計されたアプリケーションにはMPUが適している可能性が高くなります。一方、低解像度の画面上の疑似静止画像を使用したよりシンプルなUIは、MCUで対応できます。MPUを支持するもう1つの論拠は、通常、組み込みTFT LCDコントローラが装備されていることです。この機能を備えたMCUはごくわずかです。TFT LCDコントローラとその他の外部ドライバ コンポーネントを外部から追加する必要があります。したがって、MCUで実現することは可能ですが、開発者は全体的なBOMを確認する必要があります。現在、一部のフラッシュMCUはTFT LCDコントローラを組み込んで市場に投入されていますが、それでもディスプレイを駆動するには十分な組み込み SRAM メモリが必要です。たとえば、QVGA 320 x 240 16色形式では、ディスプレイにデータを供給して更新するために150 kBのSRAMが必要です。これは専用にするにはかなり大きな量のSRAMであるため、BOMをさらに追加し、MPUソリューションとのギャップを埋めるために追加のメモリが必要になる可能性があります。特に4.3インチを超える画面を使用する、より複雑で高度なグラフィカルUIには、MPUが必要になります。カラーTFT画面でUIを実行する場合、MPUが主流であると考えられていますが、セグメントまたはドット マトリックスLCD制御やシリアル インターフェイスを備えたその他の画面では、MCUが主流です。
デバイスの接続
接続性の観点から見ると、一般的な周辺機器インターフェイスをすべて備えたほとんどのMCUおよびMPUデバイスが利用可能です。しかし、HS USB 2.0、複数の10/100イーサネット ポート、ギガビット イーサネット ポートなどの高速通信周辺機器は、大量のデータの処理能力に優れているため、通常はMPUにのみ搭載されています。データ トラフィックを処理するのに十分な適切なチャネルと帯域幅があるかどうかが重要な問題です。使用する通信プロトコルに応じて、サードパーティのスタックを使用したコード領域への影響をチェックする必要があります。特にOSベースのスタックと組み合わせて高速接続を要求するアプリケーションでは、MPUベースの設計が必要になります。
MCUとMPUの選択を決定するもう1つの重要な側面は、アプリケーションのリアルタイム/確定的な動作の必要性です。MCUで使用されるプロセッサ コア、組み込みフラッシュ、および使用されるソフトウェア (RTOSまたはベアメタルC) を考慮すると、MCUは間違いなくこの点でリードし、最も時間重視で確定的なアプリケーションに完璧に対応します。
MPUとMCUの電力モードとパフォーマンス
最後に考慮すべき点は電力消費です。MPUには低電力モードがありますが、一般的なMCUにあるものほど多くはなく、低電力モードもありません。MPUをサポートする外部ハードウェアには追加の要素があるため、MPUを低電力モードにすることも少し複雑になる可能性があります。また、MCUの実際の消費電力はMPUよりも桁違いに低く、たとえばSRAMとレジスタ保持機能を備えた低電力モードでは、10 ~ 100倍と考えられます。これは明らかに、オペレーティング システムに必要なRAMの量に直接関係しており、そのため、瞬時に操作を再開するために電力を供給する必要があります。MCUベースまたはMPUベースのいずれかのアプローチを選択する際には、パフォーマンス、機能、BOM予算など、さまざまな決定事項が関係します。大まかに言えば、MCUは、BOMの厳密な管理と省電力が不可欠な、コストが最適化されたソリューションで使用される傾向があります。 MPUは、機能が豊富で高性能なアプリケーションに使用される傾向があります。MCUは、リモコン、民生用電気製品、スマート メーターなどの超低電力アプリケーションで使用される傾向があり、これらのアプリケーションでは、設計上、バッテリー寿命の長さとUI操作がほとんどまたはまったくないことに重点が置かれています。高度に決定論的な動作が必要な場合にも使用されます。MPUは、計算負荷が高く、複数の高速接続や豊富なUIを必要とするOSベースの産業用および消費者向けアプリケーションに最適です。
簡単に移行でき、ソフトウェアの再利用を最大限にできる、互換性の高いMCUおよびMPU製品を提供するベンダーを選択すると、長期的に見て最高の投資収益率が得られます。