デジタル信号処理アプリケーション用のマイクロコントローラーの選び方
この記事では、MCUがシステムコントローラーとデジタルシグナルプロセッサーの両方として機能する必要がある場合に探す必要のある機能について説明します。
>この記事では、MCUがシステムコントローラとデジタルシグナルプロセッサの両方として機能する必要がある場合に探す必要のある機能について説明します。
デジタル信号処理は、さまざまな製品やアプリケーションに価値のある機能を追加できます。コスト、フォームファクタ、またはスケジュールによって制約される設計でも、DSPの利点を簡単に組み込むことができます。これは、現在、エンジニアが豊富なライブラリコード、サンプルプロジェクト、および安価で比較的ユーザーフレンドリーな高性能プロセッサにアクセスできるためです。 。
Texas InstrumentsのC5000ファミリの一部やAnalogDevicesのSHARCファミリなど、真のデジタルシグナルプロセッサは、威圧的なデバイスになる可能性があります。私は主にTexasInstrumentsのDSPを使用してきましたが、全体的な経験は生産的で満足のいくものでした。ただし、その場合、回路基板を設計する必要はなく、奇妙なシステムクラッシュをデバッグして、オペレーティングシステムの詳細を理解しようとするプロセスを楽しむことができませんでした。
特定の計算集約型DSPタスクには、真のデジタルシグナルプロセッサまたはFPGAが必要になることは間違いありません。ただし、多くのアプリケーションでは、適切に選択されたマイクロコントローラで十分であることも事実です。この記事では、MCUに十分なDSPパワーを確保する場合に焦点を当てる必要のある特性と機能について説明します。
8ビット、16ビット、または32ビット?
この問題は、あなたが思っているほど簡単ではありません。一般に、16ビットおよび32ビットデバイスはDSPアプリケーションにより適しています。デジタル信号処理には、多くの場合大きな数につながる数学的手順が含まれ、これらの大きな数を直接操作できるプロセッサが必要です。
ただし、8ビット処理は本質的に悪いわけではなく、限られた範囲のデジタル値を処理することがわかっている場合は、8ビットマイクロコントローラーが適している可能性があります。
さらに、エンジニアはプロセッサの低レベルの詳細を調査する時間や傾向がないことが多く、その結果、指定されたビット幅と実際の計算効率との間に明確な関係を確立することが難しい場合があります。たとえば、「32ビットマイクロコントローラ」には32ビットレジスタがありますか? 32ビットALU? 32ビットアドレスバス? 32ビット通信インターフェース? 「32ビット」とは正確にはどういう意味ですか?これらの詳細は、特にこれらの余分なビットをすべて必要としない少数を主に扱うことを期待している場合は、決定に影響を与える可能性があります。
この最新の8ビットアーキテクチャは、Silicon Labsによって開発されました(このドキュメントから抜粋した図)。彼らは、16ビットまたは32ビットのデバイスが一貫して8ビットのデバイスよりも優れているという仮定に対して警告しています。
クロック速度
マイクロコントローラの最大クロック周波数は、デジタルシグナルプロセッサとしてのメリットを示す良い指標です。ただし、1秒あたりのクロックサイクルと1秒あたりの命令数の違いを理解することが重要です。プロセッサは命令を実行することでDSPタスクを実行するため、そのパフォーマンスは、クロック周波数と命令の実行に必要なクロックサイクル数の両方の影響を受けます。
残念ながら、この問題はすぐにかなり複雑になります。命令に必要なクロックサイクル数は、命令ごとに異なり、平均 パイプラインアーキテクチャを使用することにより、命令あたりのクロックサイクル数を減らすことができます。次に、「命令ごとの機能」の量を考慮する必要があります。つまり、マイクロコントローラーAは、マイクロコントローラーBで複数の命令を必要とする何かを実行するために、1つの命令のみを必要とします。
この図は、パイプラインプロセッサの概念を示しています。詳細については、この記事を参照してください。コリンM.L.バーネット[CC-BY-SA-3.0]。
簡略化した推奨事項は次のとおりです。同じファミリのデバイスを比較する場合は、より高いクロック周波数を選択してください。アーキテクチャに大きな違いがあるデバイスを比較する場合は、命令の実行速度(MIPS、1秒あたり数百万の命令として表される)または命令あたりの平均クロックサイクル数のいずれかを示す信頼できる仕様を見つけてください。
固定小数点と浮動小数点
「浮動小数点」という用語は、数値が整数部分(仮数)と指数で構成されているため、基数点が「浮動」できる数値表現を指します。代替案(「固定小数点」)は、通常のマイクロコントローラーでデータを処理および認識する方法に対応しています。浮動小数点演算と固定小数点演算を注意深く比較することは決して簡単な作業ではありませんが、浮動小数点処理は数学的に集中的なアプリケーションで優れている可能性があるというコンセンサスがあるようです。
私の意見では、それが本当に浮動小数点プロセッサである場合、それはもはやマイクロコントローラではないので、すべてのマイクロコントローラは固定小数点デバイスであると言っても差し支えないと思います。ただし、マイクロコントローラードメイン内にとどまりながら数学的なパフォーマンスを最大化することを本当に決心している場合は、浮動小数点 co </ em>を含むデバイスを検討する必要があります。 プロセッサ。
16/32ビットのArmベースのマイクロコントローラであるNXPのLPC3180FEL320は、浮動小数点コプロセッサを備えており、最大220MIPSを達成できます。 STMicroelectronicsには、浮動小数点ユニット(FPU)を組み込んだSTM32マイクロコントローラーもあります。
サーキュラータッチセンサープロジェクトで浮動小数点演算を使用しました。ほとんどの場合、個別のFPUは不要です。コンパイラは、一般的なマイクロコントローラに浮動小数点変数を実装するのに優れています。
要約
この記事では、マイクロコントローラーをDSPアプリケーションに多かれ少なかれ適したものにするCPUの特性について説明しました。ほとんどの場合、ビット幅とMIPSに焦点を当てることは理にかなっていると思います。MCUで深刻な数値計算を行う予定がない限り、浮動小数点と固定小数点についてあまり心配する必要はありません。このトピックは、DSP関連の周辺機能について説明する次の記事で継続します。
マイクロコントローラーシリーズの紹介
この記事は、より大きなシリーズの一部です。残りの記事は以下にあります:
- マイクロコントローラーとは何ですか?数え切れないほどの電子機器の中心的なコンポーネントの紹介
- アプリケーションに適したマイクロコントローラーを選択する方法
- マイクロコントローラーデータセットの読み方:はじめにと最初のステップ
- マイクロコントローラーデータセットの読み方:ハードウェアの調査
産業技術