Androidベースの組み込みシステムの開発

著者 Jon Gabay

Electronic Products の提供


オープンアーキテクチャのAndroidプラットフォームは、スマートフォン市場の最大のシェアを捕捉することで、途方もなく成功しています。 2005年にGoogleに支援され買収された、Androidオペレーティングシステムは、2007年の発表以来、10億以上の携帯電話やタブレットに組み込まれ、「モノのインターネット」組込みソリューションの出現で、その範囲を拡大していく態勢を整えています。

Androidの受け入れを駆動する1つの重要な促進剤は、ハードウェア、ソフトウェア、および通信をオープンスタンダードによって良く定義されたままに保つ、オープンハンドセットのアライアンスです。 また、Android OSの成功を確実にするのに役立つのは、ユーザーとのより高いレベルのリンクを提供するために、タッチやジェスチャーを活用する、比較的直感的なユーザーインターフェイスです。 その上、改善された音声認識、複数かつ柔軟な通信リンク、鮮やかな高精細ディスプレイ、および通常の解像度を超えるカメラモジュールは、Androidベースの製品を成功させるのに貢献する機能のほんの一部です。

これは、機器やユーザーインターフェースシステムの設計者にとって何を意味するのでしょうか? この記事では、Android設計の要素を閲覧し、お客様がAndroidの主要部分および/またはアドオンハードウェアを開発するのに役立つ、工学的アプローチ、リソース、ツール、およびリファレンスデザインについて説明します。 すべての部品、開発ツール、トレーニング、およびここで参照されるその他のリソースは、DigiKeyウェブサイトに掲載されています。

オープン対クローズドソース

オープンソースとクローズドソースの戦いは、設計の数世代にわたって吹き荒れています。 クローズドソースは、少数の革新者が作成にかかわることを意味し、開発リソースとライセンスは設計者に対するコミットメントを意味します。 オープンソースは、アンブレラフレームワークの下で、通常無料または非常に低コストで、誰もが製品を開発することができます。 クローズドソース製品は、多くの場合、(通常は)より多くの統制のとれたチームが製品の背後にあるので、細かい設定なしで良く動作するようです。

しかし、低コスト、人目を引く画面やユーザーインターフェイス、およびアプリケーションの多様性が、最も近いライバルである、AppleのiPhoneやiPadをはるかに超えて、Androidの販売をプッシュしていることを否定できません。 このような、Galaxyクラスの製品を持つSamsungなどのメーカーや、Barnes & NobleおよびAmazonを含む非伝統的なハードウェア企業の宝庫は、数多くの機能やアプリケーションをバンドルしたAndroidの様々なフレーバーを提供しています。

これは2つのことを意味します。 1つは、低コストのOEM Androidへのアドオンとしてカスタムハードウェアを設計し、ディスプレイ、通信リンク、およびユーザインタフェース用にAndroidのシステムを使用することができます。 代わりに、専用のハードウェアや独自システムと緊密に組み合わされた、組み込みAndroidシステムを設計し、オープンソースのリソースをより活用するだけでなく、ハードウェア不可知論者になることができ、次の世代のプロセッサ、モジュール、ボード、あるいはOEMタブレットを選択する際に、それらがAndroidの要件に準拠する限り、独立性を可能にします。

必要なこと

機能と特長が改善されるにつれ、最低限の要件も変更されます。 近代的なAndroidのデザインは、最低512MバイトのRAMを備えた、少なくとも32ビットARM7、MIPS、またはx86アーキテクチャの馬力を必要とします。 プロセッサはプロセスをオープンに維持し、メモリ管理スキームを実行できなければなりませんが、電力を節約するために一時停止することもできる必要があります。

ここには消化すべきことが多くあります。 1GHzで動作する単一のプロセッサであっても、グラフィックス処理、加速度計やその他のセンサ、ジェスチャを認識することができる投影容量タッチスクリーン、ビデオカメラ、USB、GPS、Wi-Fi、Bluetooth、およびオーディオI/Oなど、多くのリアルタイムに敏感で、たびたび重なる機能を管理し、指示することは簡単な作業ではありません。

Androidの互換ハードウェアプラットフォームの設計を開発する際には、まず、Androidパーソナリティを基礎とするLinuxに包まれたOSをサポートできる、ARM、MIPS、またはx86プロセッサを提供する半導体メーカーを最初に見てみるのがよいでしょう。 しかし、この場合、ハイエンドのギガヘルツ級プロセッサーに加えて、より小さな、統合された専用プロセッサとコプロセッサも存在し、これらは注目と資源を求めて競合するプロセスの多くをオフロードすることができることを心に留めておくことも賢明です。

例えばFTDI FT311D-32L1C-R専用USB Android列挙子および通信リンクコントローラを見てみましょう。 これはUSB AndroidホストICと呼ばれ、特にUSB経由でAndroidシステム内の周辺ハードウェアへのアクセスを許可するように設計されています。

Androidのオープンアクセサリモード(OS3.1以降のOAM)は、USBハードウェアを備えた外部デバイスが、特殊なアクセサリモードで対話することを可能にします。 外部機器からの電力が使用され、タブレットやスマートフォンは、ホスト側コントローラとしてのUSBを満足させるために必要な500mAを提供する必要がありません。 このモードでは、ドライバ、ソフトウェア、またはオーバーヘッドはAndroidのマシン上に必要ありません。

比較的小さな32ピンFT311Dは、USB全体の列挙シーケンスを処理し、独立したコプロセッサとしてAndroidのオープンアクセサリモードをサポートします(図1)。

Androidオープンアクセサリモード

図1: オープンアクセサリモードの責任をオフロードすることにより、コプロセッサは、Androidプロセッサからのドライバやオーバーヘッドを必要とせずに、すべての列挙と再列挙を処理します。

USB 2.0 12MHzの速度をサポートし、USBに周辺機器を接続する場合は特に、すべてのUSB中心の責任を緩和することにより、メインプロセッサを開放することができます。 FTDIは、DigiKeyのウェブサイト上でAndroidインターフェースソリューションプロダクトトレーニングモジュールを提供します。

PICプロセッサのメーカーであるMicrochipはまた、人気のArduinoプラットフォームをサポートしています。 Androidの開発を念頭に、Microchipは、PIC24Fプロセッサに基づく、DM240415アクセサリ開発スタータキットを提供します。 これはまた、マイクロコントローラまたはOAMを備えたUSB経由でAndroidとの間のデータ転送のような重要なリンクや機能をオフロードするための、専用のコプロセッサアプローチを提供します。

ロイヤリティフリー、ライセンス費不要のDM240415アクセサリ開発スタータキットは、組み込みデバッガ、電源、およびグラフィックスライブラリをサポートするソフトウェア、IrDAスタック、USBスタック、フラッシュディスクドライブファイルシステム、静電容量式タッチソフトウェア、TCP/IPスタック、およびMiWiパーソナルWi-Fiサポートを提供します。 Androidシステムにカスタムハードウェアをインタフェースするために、ボードはまた、アプリケーションの開発およびテストボードとして役立つように、8つのステータスLED、ポテンショメータ、およびユーザインタフェースのボタンを備えています。 タブレットリファレンス設計として、リファレンス回路図[1]が提供されています。 Androidのクライアントドライバは、PIC USBホストスタックの上の層(図2)として実装されます。

Androidクライアントドライバ

図2: Microchipが提供するAndroidのOAMモード用の無料ソフトウェアは、Androidのクライアントドライバを追加することで、そのUSBスタック上に構築されています。

FTDIおよびMicrochipの両社は、自己デバイスのための開発サポートを提供していますが、開発サポートは第三者から行われることもあります。 埋め込みArtistsは、EA-APP-001 Androidオープンアクセサリアプリケーションキットで、オープンソースのデモと開発ボードを提供します。 同一のスプリットプロセッサタスク管理配布方式に続いて、これは2つのコプロセッサを使用します。NXP SemiconductorsLPC1769、NXPのLPC11C24と組み合わせたハイエンド32ビット120MHzのARM® Cortex™-M3デバイスと、小型の50MHzの32ビットのARM Cortex-M0は、上位と下位レベルの処理タスクを並列演算部ストリームに分配します。

LPC1769側は10/100 Ethernet、CAN、ZigBee(NXPのJennic)、およびシリアルタスクをサポートすることができます。 LPC11C24側はCANの相互接続を共有するだけでなく、ハードウェアの開発と、RGB LED、プッシュボタン、および温度と光センサとのセンサインターフェースを管理します。 また、低消費電力のI/O(PIO1_4)のいずれか1つを使用して、低消費電力ウェイクアップ開発をテストすることができます。

便利な機能は、充電器のフィードスルーモードです。 代替の5V電源に加えて、USB形式の充電器インタフェースは、被試験ユニットから電力を抽出します(図3)。 プロトタイピング領域は、充電器を介してUSBのデータ信号およびOAMモードにアクセスできるように利用可能です。 充電中に充電器は、Wi-Fi経由で自動的に画像や音楽を同期することができます。 NXPのLPC1700シリーズプロダクトトレーニングモジュールは、NXPのLPC11xxコード密度プロダクトトレーニングモジュールとともに入手可能です。

デュアルコプロセッサ

図3: デュアルコプロセッサは、Android関連の周辺機器やタスクを分配するだけでなく、Androidのハードウェアのアドオン開発のためのプラットフォームとして実行することができます。

実行のために作成

周辺の開発およびOAMのサポートに加えて、ボードレベルのシステムおよびリファレンス設計だけでなく、開発キットは、メインのAndroidアプリケーションのためにハイエンドのギガヘルツプロセッサを実行するために利用可能です。 LinuxベースのAndroid開発のためのARM Cortex-A8ベースの1GHzのOLIMEXのA13-OLINUXINO-MICROボードを見てみましょう。 Allwinner SOCに基づくこのボードはハイエンド制御のために使用することもでき、様々なプロセッサ(A8、A13、MX233、およびそれ以上)に基づくOLinuXinoギガヘルツクラスのプロセッサボードの1つです(図4)。

OlimexのLinux Android開発プラットフォーム

図4: Allwinner A13に基づく、高度に統合されOLIMEXのLinux Android開発プラットフォームは、高性能、低消費電力、およびAndroidフレンドリーな互換性を提供するために、SoC技術を使用します。

これらの速度では、シングルおよびマルチコアプロセッサは、さまざまな周辺機能のすべてのオーバーヘッドを吸収することができ、NANDフラッシュ、DDR RAM、SDカード、3次元グラフィックス、USBのようなデータおよび/またはプロセスを多用するタスクを実行することができます。

OLIMEXはまた、オープンソースのシングルボードAndroid/Linuxのミニコンピュータである、1GHzのARM Cortex-A8ベースのA10S-OLINUXINO-MICRO Linuxボードを持っています。 このボードには、USB 2.0サポートおよびHDMIグラフィックスが含まれ、VGA TFT解像度をサポートします。 これはまた、お客様自身のネイティブハードウェアおよびインタフェースの開発を支援するための、50のI/Oラインを提供します。

全体的に、Androidのプロセッサブロックは、周辺機器、機能、特長、およびオープンソースコードの標準化されたセットを持つ、次世代の組込みプロセッサとして見なすことができます。 このハイレベルな性能と設計オプションは、Androidシステムが装置メーカーのための新しい、広く採用されるユーザーインターフェースとなり、OEM Androidのシステムが組み込み設計者のための貴重なコンポーネントになる可能性を開くことになります。

この記事で説明した部品の詳細については、DigiKeyウェブサイトの製品ページにアクセスするために提供されているリンクを使用してください。

リファレンス
  1. MicrochipのAndroidアクセサリ開発ボード回路図

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

Jon Gabay

出版者について

Electronic Products

雑誌『Electronic Products』とElectronicProducts.comは、電子機器およびシステム設計の責任を持つ技術者や技術管理者に関連情報を提供しています。