メイン・コンテンツまでスキップ

予備考察

このセクションは、ハードウェアに関する決定を行う前に考慮すべき事項への指針を示すことを目的としています。 製品はそれぞれ異なっており基準や要件も異なります。したがってここでは、決定を下す前にどのようなことを考慮すべきか、いくつかヒントを示します。

ここで取り上げるトピックは、ディスプレイの表示、システムのメモリ要件、UIに必要な性能、製品の物理的設計をカバーしています。

ディスプレイ解像度

ディスプレイの解像度とアスペクト比は実にさまざまです。 一般的に、TouchGFXはこれらのパラメータには依存しません。 ディスプレイ解像度は適切なハードウェアを選択する際の大きな要因の1つであり、多くの場合、解像度が高いほどピクセル数が大きくなり、描画および転送するデータ量も増えます。

通常、STM32マイクロコントローラは、16/24bpp(bits per pixel)でXGA(1024x768)までの解像度をサポートしており、ワイド・ディスプレイやラウンド・ディスプレイなどの非標準の解像度もサポートしています。 XGAを超える解像度の場合、通常は色深度や1秒あたりのフレーム数などに制限が生じます。

次に、標準的な解像度の3つの例を示します。

ディスプレイ解像度の例

ピクセル密度も考慮する必要があります。ディスプレイ・サイズが大きいほど画像が鮮明になり高い解像度の利点が認識されますが、ピクセル密度の増大はコストの増大を招くことがよくあります。

アプリケーションに合った解像度を選択するときに、考慮すべきポイントには次のようなものがあります。

  • エンドユーザのターゲット・セグメントはどのあたりかユーザの多くは高いピクセル密度を求めるのですが、いくつかの産業用アプリケーションではコスト軽減や実装の容易さのために、高いピクセル密度を求めないこともあります。
  • アプリケーションでは小さいテキストをたくさん使用しているか小さいテキストの大きなブロックがあると、通常は高解像度ディスプレイの方がピクセル密度が高くなるので、はるかに読みやすくなります。
  • 通常、多くの異なる項目を一度に1つの画面に表示するのかディスプレイが大きいほど表示エリアが広くなるので、表示できる項目の数も増えますし、特定の項目をよりクリアに表示できます。

色深度

2つ目の大きな要因は色深度(ピクセルあたりのビット数)で、これは画像内で1つのピクセルが保持できる情報の量を示すものです。つまり、1つのピクセルに異なる色を何色割り当てられるのかを示します。

1bppおよび24bppのアプリケーション

ディスプレイはさまざまな色深度をサポートしており、16bpp GUIアプリケーションを24bppのディスプレイ上で実行することは可能ですが、逆に、16bitカラーの表示能力しかないディスプレイで24bppアプリケーションを実行すると、問題が生じることになります。

多くの微妙な色合いを持つ複雑な画像を表示する場合、元の画像にできるだけ近づけるためには、より高い色深度が求められます。 選択する色深度は必要なメモリ量に影響します。

より低い色深度で表現できることを過小評価しないでください。最新の多くのUI設計思想は、単調化された色集約度の低いアプリケーションを中心に展開されているからです(Googleのマテリアル・デザインなど)。 TouchGFXでは、一連のディザリング・アルゴリズムの一つを適用することで、低い色深度で複雑な画像を表現できるようにします。 次に、低い色深度でも実現可能なアプリケーションの例をいくつか示します。

低い色深度のアプリケーションの例

アプリケーションに対して色深度を選択するときに、考慮すべきポイントには次のようなものがあります。

  • リアルな画像を表示する必要があるのかリアルな画像またはマルチレイヤの画像を使用する場合は、アプリケーションとディスプレイの両方に24bppのピクセルを使用することをお勧めします。16bppでは、必要なすべての色が十分に表示されない場合があるからです。 ただし多くの場合は16bppで十分であり、これが今でも業界標準の1つになっています。
  • アプリケーションが必要とする内容を伝えるために本当に必要なのは、実はグレー・スケール・カラーまたは単純な6/8bppだけではないのかおそらく、このようなケースではアプリケーションの機能を適切に伝えるために色をスプロールさせる必要はないので、このような低い色深度を選択することは可能です。 そうすることで必要なフレームバッファ・サイズが減り、RAMのサイズも減ります。
  • RAMやフラッシュに制限はあるのか色深度を制限すると、ビットマップとフレームバッファ(RAM)の両方の必要サイズが減ります。

フレームバッファ・サイズの計算

フレームバッファは1フレームのピクセル・データを保存し、描画し、ディスプレイに転送するためのメモリです。 ピクセル量と色深度が大きくなるほど、RAMとディスプレイ間のインタフェースで高スループットが求められるため、フレームバッファのサイズは重要です。

フレームバッファのサイズ(バイト数)は次のように計算されます。

ディスプレイ幅 x ディスプレイ高さ x (bpp / 8)

たとえば、800x480のアプリケーションで色深度が16bppの場合、1つのフレームバッファには以下のサイズを割り当てる必要があります。

800 x 480 x (16 / 8) = 768,000バイト(768,000/1024 = 750KB)

したがって、解像度と色深度を決定する際には、それをサポートする十分な量のRAMが確保されていることを確認します。 アプリケーションによっては2つのフレームバッファが必要になることがあり、上の例で考えると、750KB x 2 = 1500KBのRAMが必要になります。

フレームバッファの計算

Further reading
フレームバッファをサポートするために必要なメモリの量も、選択したフレームバッファの設計(シングル、ダブル、パーシャル(部分))に大きく依存することに注意してください。詳細については、フレームバッファ戦略の記事をご覧ください。 一部のSTM32マイクロコントローラは、非常に費用対効果が高いソリューションとして、内部RAMのみの使用でHVGAまでの解像度をサポートしています。

ディスプレイ

インタフェース

ディスプレイ・インタフェースが異なるディスプレイ(SPI、LTDC、MIPI-DSIなど)を選択できます。これらは、必要なピンの数、帯域幅、サポートされる解像度、必要な外部RAMの量に対してさまざまな影響を及ぼします。 こうした影響や各ディスプレイの選択のメリットとデメリットの詳細については、「ディスプレイセクション」をご覧ください。

サイズ

ディスプレイの物理的なサイズも重要な考慮事項です。 一般的に、ディスプレイのサイズが大きければ操作が容易になり、タッチ・コマンドを正確に指示できるようになりますが、目に優しい表示にするには解像度を高くする必要もあり、必要なメモリやスループットに影響します。 ディスプレイ上の情報を1~2メートル離れた場所から見るような場合には、テキストやアイコンなどを十分に大きくする必要があります。

タッチ

タッチ・ディスプレイには主に次の2つのタイプがあります。

静電容量式

静電容量式タッチ・ディスプレイはタッチ感度が非常に高く、アプリケーションがより高度なタッチ操作(ドラッグやスワイプなど)を必要とする場合、これが必要です。そのため最新機器ではこのタイプが最も多く使用されています。

ただし、このタイプはより高価で、手袋をはめていると操作できないこともよくあります。もしこのことが重要な場合は、おそらく抵抗膜式の方が適していると言えます。

抵抗膜式

この安価な代替方式は感度がかなり低く、太陽光の下では見えにくくなりますが、意図しないインタラクションに対する感度が低いので手袋のままでも操作可能で、一般的に耐久性も高くなります。

したがって、タッチ操作のすべてが単純なボタン押下のみで成り立つ場合、抵抗膜式ディスプレイで十分だと考えられます。 STM32F429-DISCOボードは、抵抗膜式タッチ・ディスプレイを使用しています。

アニメーション

複雑なアニメーションの実行(全画面遷移、回転、スケーリングなど)は、ハードウェアのスループットおよび計算能力が十分でない場合、パフォーマンスに重大な影響を及ぼす可能性があります。

アプリケーション内のアニメーションのレベルを決定するときに、考慮すべきポイントには次のようなものがあります。

  • 高速の全画面遷移が必要か全画面遷移ではフレームバッファ全体を描画する必要があるため、マイクロコントローラの十分なサイクル数や、ピクセル・データのアクセスや転送を行うのに十分な速度が必要になります。 必要なシステム性能は解像度や色深度によっても異なります。 高解像度の全画面遷移の用途には、STM32のハイパフォーマンス製品を使用することを推奨します。 一部の全画面遷移では追加のストレージが必要になるので、さらに大量のメモリが必要になる可能性があります。
  • 回転やスケーリングのような複雑なテクスチャ・マッピング・アニメーションが必要かテクスチャ・マッピングのアニメーションは、計算やビットマップ転送の点で非常に高いシステムの処理能力が必要になる可能性があるので、通常は高い動作周波数と高いメモリ・スループットを必要とします。

アニメーション

機械設計の要件

製品の物理的な筐体の要件は多種多様で、ハードウェアの選択に影響する可能性があります。 生活家電には有害産業用途とは別の要件が発生するので、物理的な制限を明らかにするときに考慮すべきポイントには次のようなものがあります。

  • <非常に小型の製品である必要があるか例として、スマート・ウォッチが挙げられます。これは筐体のサイズに制限があり、PCBのサイズが制限されるので、適切なコンポーネントの選択が重要です。 STM32は、WLCSPパッケージなど、幅広いマイクロコントローラ・パッケージが用意されています。
  • 極端な温度条件にさらされる製品か静電容量式ディスプレイは、極度な高温または極度な低温の環境下で性能が落ちる可能性があります。 したがって、冷蔵貯蔵庫などに製品を設置する場合には、抵抗膜式ディスプレイの方が優れた機能を実現します。 STM32の製品ポートフォリオでは、最高周囲温度が85℃、105℃、125℃で動作するマイクロコントローラを提供しています。
  • 水やほこりなどの屋外環境要因に非常に高い耐性を持つ製品である必要があるか多様なテクノロジーがそれぞれ異なる品質や機能を提供しています。保護目的でレンズカバーを追加することも1つの選択肢になります。
  • 強い太陽光の下での見えやすさは重要か。ディスプレイのカンデラやルーメンはさまざまで、ディスプレイのカンデラやルーメンが高いほど、ディスプレイの読みやすさは向上します。 特殊なレンズカバーを追加することで、これも改善できます。 あるいは、反射機能も提供するような別のディスプレイ技術も使用できます。

1秒当たりのフレーム数(FPS)

多くの場合は、1秒当たりのフレーム数(FPS)が大きくて安定しているほど、アプリケーションがよりスムーズに見えるので望ましいと言えます。

ただし、FPSがあまり重要でないこともあります。 たとえば、表示するアニメーションの更新が最小限の静的なGUIなどです。 こうした場合には、低コストのハードウェアの方が適しているかもしれません。

しかし、ターゲットとするユーザ・セグメントによっては、多くの派手なアニメーションを含むきれいでスムーズなアプリケーションを持つことが、とても大きなセールス・ポイントになる可能性もあります。つまり、ハードウェア選択に関してはどのような場合でも、エンドユーザの期待に沿って、優れたユーザ体験を提供することがすべてなのです。

グラフィカル・ユーザ・インタフェース全体の性能はシステム・レベルの性能に行き着きます。つまり、マイクロコントローラ、RAM、Flash、ディスプレイなどのコンポーネント、インタフェースのスループット、さらにはSTM32 Chrom-ARTのようなハードウェアの機能により決まるものです。

次の図は、いくつかの異なるパラメータの影響を一般化したものです。 適切なハードウェアを選定するには、これらのパラメータを考慮する必要があります。 また、STM32 Chrom-ARTはマイクロコントローラの負担を軽減するので、場合によってはマイクロコントローラが高周波数で動作することが重要でなくなることも考慮に入れてください。

さまざまなパラメータのフレームレート(FPS)への影響