32 ビット マイクロコントローラ (MCU) デバイスが組み込みコミュニティで人気を集めていますが、驚くには値しないことでしょう。 これらの機能豊富なデバイスは、さまざまなアプリケーションに適しており、多くの組み込み開発者が次の設計にそれらを選択する理由がわかります。 設計者は、このような複雑なデバイスが、生の計算能力、豊富な周辺機器セット、幅広い開発ツールやライブラリへの容易なアクセスという点で、必要なすべてを提供してくれることを認識しています。 したがって、開発者は、セカンド・ソース・デバイスや、市場で入手可能な開発、テスト、および検証ツールの包括的なセットにアクセスすることに安心感を覚えます。
However, taking closer look at recent MCU market trends that have an strong growth only 32-bit devices not found (Table 1).(表1の通り、32ビットデバイスだけが強い成長を遂げているのではありません)。 急成長している8ビットMCU市場は、32ビット(6.9%)に近い複合成長率(6.4%)を誇っています。 他の業界アナリストは、8 ビットと 32 ビットのマイクロコントローラの成長率は同じだと予測している。
8 ビット・デバイスの躍進は、32 ビット MCU の代わりに 8 ビット・デバイスを使用する説得力のある理由が必要であることを明確に浮き彫りにしている。
本質的な違い
8 ビット MCU と 32 ビット MCU の主な違いは、コストと価格構造、CPU パフォーマンス、使いやすさ、ハードウェアに近い機能の効率、および静的な電力消費量などです。 新しい設計に着手する際、開発者は、必要な処理能力の量、必要なインターフェイスの程度、およびバッテリー駆動設計の場合は重要な電力消費プロファイルに基づいて、MCU に対する要件を慎重に検討する必要があります。 32ビットMCUが8ビットデバイスより高性能であることは間違いありませんが、エンジニアは、市場で入手可能な最高のデバイスと実際のアプリケーションのニーズの間で選択するという従来の決断に直面することになります。
もちろん、これらの決定は、考えられる部品表 (BOM) コストに大きく影響しています。 ゲート数が少なければ、それほど複雑ではない 8 ビット デバイスは、32 ビット デバイスよりも確実に安くなります。 主要ベンダーの8ビットと32ビットのMCUを、それぞれ同量のフラッシュ・メモリとピン配置などで比較すると、8ビット・デバイスは通常、約20%安くなる。 しかし、これは多くの検討事項のうちの最初の1つに過ぎません。
Ease of Development
MCU サプライヤーは、8 ビット製品とは対照的に、32 ビット デバイスに多くの特徴と機能を追加する傾向があります。 その結果、より複雑なデバイスでは、はるかに多くのセットアップの考慮事項が発生します。
Download this article in .PDF 形式 このファイル形式には、該当する場合、高解像度のグラフィックスと回路図が含まれます。 |
たとえば、典型的な 32 ビット ARM デバイスは、コア自体、AHB バス、APBA バス、および APBB バスに対して独立したクロック設定を持っています。 これらはすべて異なる周波数に設定することができます。 一般的に、8ビット部品のようにハードウェアで設定するのではなく、ソフトウェアで設定するため、使いたいクロックに切り替える必要もある。 さらに、クロックを変更すると、フラッシュ用の待機状態を設定する必要があり、おそらく測定された VCC 電圧を前提にする必要があります。 たとえば、Atmel の tinyAVR および megaAVR 製品は、アプリケーションをコーディングする前に、通常 4 行のコードを要するスタック ポインタの初期化のみを必要とします。 クロックの選択、電圧低下検出器、リセットピンの機能などはすべてデバイスにあらかじめプログラムされています。
アーキテクチャも、内部レジスタ、周辺機器、SRAM がすべて同じデータバスにマッピングされた 32 ビットデバイスよりはるかに単純です。 周辺機器と CPU は通常、同じ周波数で動作するため、周辺バスのコンフィギュレーションは必要ありません。 さらに、設計者は異なるクロック ドメイン間の同期におけるレイテンシーを気にする必要がありません。
パフォーマンス
望ましい CPU パフォーマンスに関しては、エンジニアはすべての使用ケースを考慮する必要があります。 現実には、多くの組み込み設計では、高い計算能力が要求されません。 多くの場合、データの操作はほとんど必要ないため、これらのニーズと消費電力および周辺機器とのインターフェイス要件のバランスをとることが非常に重要になります。 頻繁に起動し、温度を測定して、リレーのオン/オフを決定したり、ホスト コントローラーに命令を送信したりします。 その後、再びスリープ状態に戻ります。 このアプリケーションの計算およびインターフェイス要件は小さいですが、火災探知機、電動工具、流量計、家電制御など、他の多くのアプリケーションも同様の使用プロファイルを持っています。
Efficiency of Hardware Near Functions
最近のマイクロコントローラーの多くには、CPU ができるだけ効率よく動作できるように役立つハードウェア関数が組み込まれています。 Atmel の場合、8 ビット AVR と 32 ビット ARM ベースの MCU ファミリーの両方が、ペリフェラルイベントシステムを備えています。 イベントシステムとは、CPUの介入なしに周辺機器が相互作用できるようにするハードウェアベースの機能のセットです。
イベントシステムの機能を完全に使用する場合、チップは、CPU からほとんど介入することなく複雑な動作を行うように構成でき、貴重なプログラムメモリと実行時間の両方を節約できます。 ハードウェア イベントを検出する場合、まずイベントを検出し、次に制御を目的の割り込みサービス ルーチン (ISR) に切り替えることが重要です。
これらの状況では、CPU 速度は唯一の決定要因ではありません。 これは、割り込みに応答し、ISR を実行し、戻るまでに、サイクルとしてどのくらいの時間がかかるかという問題なのです。 次の例で示すように、8ビットデバイスはハードウェアに近い動作でより効率的に処理することができます。
SPI で 1 バイトを受け取り、それを検出する割り込みを使用し、SPI 周辺機器からバイトを読み取り SRAM に格納する簡単な ISR ルーチンを実行すると考えてみましょう。 このシナリオを使用して、表2はAtmel 8ビットAVRデバイスとAtmel ARM Cortex M0+ベースの32ビットMCUを比較したものです。 入手可能な情報で計算した結果は、最小限の実装に基づいています。 しかし、割り込み検出と割り込みからの復帰に表より多くのサイクルがかかる可能性があるため、エンジニアは自身のアプリケーションで確認する必要があります。 12 サイクルと 33 サイクルは、8 ビット CPU の理論的な最大 SPI バンド幅 1.67 MB/秒、32 ビット CPU の 20 MHz 動作時のバンド幅 606 kB/秒と等しくなります。 フィボナッチ アルゴリズムを適用することは、メモリ要件をテストするための特に優れた方法の 1 つです。 8 ビット AVR と ARM 32 ビット CM0+ ベースのデバイスを比較し、15 段階のフィボナッチ アルゴリズムを再帰的に使用すると、AVR はリターン スタックの 30 バイトを含む合計 70 バイトのスタックを使用します (15 コール深い)。 ARMベースのデバイスは192バイトを使用します(60はリターンスタックであるべきです)。 これは、CSTACKが8ビットソリューションの3倍以上のサイズであることを意味します。 一般的なC言語のコードでは、スタック上の変数の多くはパックされた形式で来ることが多いので、これは極端なコーナーである。 しかし、同じ 8 ビット中心のアプリケーションを 32 ビット (ネイティブの 8 ビット) デバイスで実行する場合、1.5 倍から 3 倍の SRAM が必要になるというのは、妥当な見積もりと言えるでしょう。 特にバッテリ駆動のアプリケーションでは、これだけでも 8 ビットまたは 32 ビット・デバイスのどちらを選択するかの重要な要因となります。 表 3 は、アクティブおよびスタティック モードでの 8 ビットおよび 32 ビット デバイスの消費電力の違いを示しています。
積極的な製造技術により、トランジスタのリーク電流は、プロセス世代ごとにおよそ 2 倍になり、ゲート数に比例します。 リーク電流は、温度が高くなると指数関数的に増加しますが、これはコンシューマ デザインを設計する際に見落とされがちです。 携帯電話やパーソナル メディア プレーヤーはどこにでも持ち運びができ、周知のように、夏の車内の温度は簡単に 40°C を超えます。
マイクロコントローラーがアクティブ モードとスタティック モードで過ごす時間は、アプリケーション全体の電力予算に大きく寄与しています。 前の SPI 割り込みの例 (再び表 2) を見て、SPI データ帯域幅を 80 kb/s と仮定すると、8 ビット CPU はアクティブ モードに 1.2% 時間を費やすのに対し、32 ビットは 3.3% 時間を費やします (表 4)。
結論
将来の設計で 8 ビットまたは 32 ビット マイクロコントローラーを使用するかどうかについて検討することは、IoT (Internet of things) アプリケーションが含まれる可能性があります。 IoTが実際にどのように実現されるかはさまざまな議論があるが、MCUの要件を詳細に評価することが技術者に求められることは間違いない。
Download this article in .PDF 形式 このファイル形式には、該当する場合、高解像度のグラフィックスと回路図が含まれます。 |
多くの利用可能な 8 ビット マイクロコントローラ製品は、低いレベルの処理と無線接続の必要性を満たします。 そのような例の 1 つが Atmel ATmegaRFR2 シリーズで、バッテリー駆動の低コスト IoT 設計に適した、IEEE 802.15.4 準拠のシングルチップ 2.4 GHz ワイヤレス マイクロコントローラ ソリューションを提供します。
Atmel の EMEA 地域向け MCU マーケティング ディレクターの Ingar Fredriksen は、ノルウェー、トロンハイムを拠点に活動しています。
Paal Kastnes MCU アプリケーションチームのスタッフエンジニアで、Atmel のマイクロコントローラとツールの使用に関する Atmel スタッフと顧客のトレーニングを専門としており、Trondheim に拠点を置いています。 彼は、トロンハイム大学カレッジで電気工学の理学士号を取得しました。