Armadilloは万能?
2002年ようやく世に出た、Armadillo。ネットワークにつながるし、小さいし、大抵のことはできるしで良いこと尽くめ。しかも評価ボードではなく「そのまま組み込んで使える量産CPUボード」で、ユーザー向けWebサイトも用意した…これなら様々な場面で使ってもらえるだろうと、Armadilloの開発に携わった一同は期待に胸を膨らませての船出でした。
当初は「何でもできる小型コンピュータ」を作ったつもりでしたから、「5年前のPC置き換え・小型化に」と説明することが多くありました。74MHzのCPUに32MBのSDRAM、10BASE-Tのイーサネット、ISAバスベースの拡張バス…HDDがない代わりに4MBフラッシュメモリとコンパクトフラッシュソケットが付いていること、それからVGA出力がないことを除けば、性能・機能面はそれほど間違いではありません。汎用OSであるLinuxを搭載していますし、開発環境もオープンソースで揃っていたので、「自由にいじれる小型コンピュータ」を待ち望んでいた方には、概ね好意を持って受け入れられました。
しかし「面白い」「何かに使えそう」と言っていただく声ほどには、なかなか販売にはつながりません。そして、実際に使っていただいた方からは「PCには使い勝手が程遠い」「勉強すべきことが多すぎる」「ソフトウェアの変更手順が難しい」「USB・VGA出力・100BASE-TXイーサネットも使いたい」…こんな別の声があったのも事実です。ディスプレイやキーボードを接続できるPCほど簡単には使えない、Linuxの情報が(Windowsに比べて)少ない、アプリケーション追加の手順が複雑過ぎる、1つひとつの声は至極当然ともいえる内容です。
こうした声に当時は、ハードウェアが持つポテンシャルほどは評価されない"もどかしさ"を感じていました。もどかしさの原因の半分までは、ユーザーランド(アプリケーションなどのソフトウェア群)構築環境や開発のサポートとなる情報の提供が不十分なこと。そして残りの半分は「Armadilloは"PCそのもの"ではない」という事実に基づく部分、つまり製品コンセプトの説得力不足です。こう痛感したことは、次のArmadilloたちのプロダクトデザインに活かすための種となります。
もっとシンプルに、もっと簡単に
Armadilloの導入が早期に進んだのは比較的単純な用途、センサや制御機器の「ネットワーク化」でしたが、この目的においても「まだ大きすぎる」「高価すぎる」と採用に至らないことが多くありました。拡張バスを使って複数デバイスを接続するには適したサイズだったのですが、もっとシンプルに「シリアル接続機器」や「GPIO制御」が使えるだけで十分な超小型機器のニーズも高かったのです。これに応える形で2003年秋、私たちは弟分ともいえる「Armadillo-J(アルマジロ-ジェイ)」を開発しました。イーサネット以外はRS232Cと数本のGPIOを持つだけの超シンプル設計、名刺半分サイズで安価なこの製品は、組み込まれずに「そのまま使われる」ことを想定して本体ケース(筐体)も同時開発しました。
Armadillo-Jに採用したSoCは、NetSilicon(現Digi International)の「NS7520」という"メモリ管理ユニット(MMU)を持たない"ARM7TDMIコア搭載のもの。マルチタスクOSであるLinuxに本来MMUは必須の機能ですので、実は当初このようなプロセッサを採用することは一切考えていませんでした。世の中には「uClinux」という、制限付きながらも「MMUのないプロセッサで動作する」カーネルがあることを私が知ったのは、Armadillo-J開発が始まるほんの数週間前だったと思います。実際にNS7520でLinuxアプリケーションが動作するところを見るまでは信じてもいなかったような有様で、まさに「uClinux様々」でした。
もう1つ、uClinuxを知ったことによる大きな成果がありました。uClinuxプロジェクトはカーネル以外にも、組み込み用ディストリビューション「uClinux-dist」を提供していたのです。メニューからアプリケーションを選択するだけの簡単インタフェースでユーザーランドをデザインし、必要なソフトウェア機能だけを取り込むことができるものです。これによって、コンパクトなフラッシュROMイメージを簡単に作成できるようになりました。
進化する組み込み開発手法
2004年ともなると、世間の事情もかなり変わってきます。組み込みボードとしてはARM搭載やLinux対応は珍しくなくなりつつあり、またPC業界ではレガシーインタフェース(いわゆるシリアルポート・パラレルポート)が廃され、"猫も杓子もUSB"という状況。初代ArmadilloでSoCを採用したCirrus Logicは、この年の初めにARM9ベースのSoCを複数発表し、このEP93xxシリーズは最終的に5種類がラインナップされました。
初代Armadilloの正統な後継として開発が始められた「Armadillo-9(アルマジロ-ナイン)」には、このSoCシリーズ最上位のEP9315を採用しました。CPUクロックが200MHzに上昇し、USBホストに対応したことが一番の目玉。イーサネットも100BASE-TXに対応し、念願のVGA出力も搭載しました。I/Oにも対応したコンパクトフラッシュソケットを持ち、PC/104拡張バスにも変わらず対応した、まさに「全部入り」。基板単体モデルだけでなく、USBキーボードと組み合わせれば「超省電力サーバ」にもなると考え、金属ケースに組み込んだ「ケースモデル」もラインナップしました。
Armadillo(HT1070) | Armadillo-9 | |
---|---|---|
CPUコア | ARM720T 74MHz | ARM920T 200MHz |
RAM | 32MB SDRAM | 64MB SDRAM |
ROM | 4MB NOR型フラッシュメモリ | 8MB NOR型フラッシュメモリ |
Ethernet | 10BASE-T対応 | 100BASE-TX/10BASE-T対応 |
コンパクトフラッシュ | メモリカードのみ対応 | I/O、メモリカードに対応 |
VGA出力 | 非対応 | 対応 |
USBホスト | 非対応 | 対応 |
前モデルでの改善点は継続したいものです。Armadillo-9は(普通の)Linuxカーネルが動作しますが、ユーザーランドの構築には使いやすいuClinux-distを、Armadillo-Jに続けて採用しました。そしてユーザーに幅広く使ってもらうための新たな試みとして、Windows PC上ですべての開発を行えるcoLinuxをサポート、環境とドキュメントを提供しました。
Armadillo(HT1070) | Armadillo-9 | |
---|---|---|
Linuxカーネル | 2.4系 | 2.4系(後に2.6系に移行) |
ユーザーランド構築 | 手動 | uClinux-dist(後にAtmark Distに移行)で自動化 |
開発用PC | Linuxが必要 | Windows上のcoLinuxでの開発をサポート |
Armadillo-9はハードウェア機能もさることながら、Armadilloならではの「組み込みソフトウェア開発手法」の基礎を作りました。uClinux-distをベースにした「Atmark Dist」、coLinuxの発想を仮想OS環境に変えてより使いやすくした「Atmark Techno Development Environment(ATDE)」。2012年現在も引き継がれている、2本の柱の原点となったのです。
「組み込みプラットフォーム」の確立
「Armadilloを使った"組み込み開発"が格段に楽になってきた」そうした感覚は、私たちの側にも確実にありました。世間に溢れるUSB機器も繋げられるようになった、基本的なソフトウェアはブロックを組み合わせるように組み込める、開発用のPCは普段使っているWindowsのものでOK…しかしながらこの時点では、ソフトウェアや開発環境・ドキュメントどれを取っても、まだまだ不足・不備だらけでした。直接のユーザーの声やArmadilloメーリングリストへ投稿される要望に応えるべく、とにかくたくさんの改善を行った時期でもあります。私たちは「組み込み開発のしやすさ」が、Armadilloが追求すべき最重要課題の1つになったことを実感していました。
こうした作業を続けながら、翌2005年からはArmadillo-9と同じSoCシリーズのEP9307を搭載した小型モデルの開発を始めます。まずは超小型モデル「Armadillo-210」。インタフェース的にはArmadillo-Jを踏襲したモデルですが、中身はArmadillo-9のサブセットです。ソフトウェアや開発環境における使い勝手が変わらないことを重視し、ユーザーが開発しやすい製品にすることを目指しました。
Armadillo-210が「シリアル機器のネットワーク化」なら、次は「USB機器のネットワーク化」。そう発想して2006年に開発したモデルが、「Armadillo-220」でした。USBホスト×2ポートとシリアルポートを同時に搭載しながら、それでも手のひらに納まるサイズです。このモデルは、この後の数年間Armadilloブランドの屋台骨を支えてくれました。
Armadillo-220と「同じサイズで、別の機能を持つものを」と考え同時に開発を始めたのが、イーサネット×2ポートを持ち「ネットワーク監視」ができるモデル「Armadillo-230」でした。そして、Armadillo-220と同様USBホストに対応し、VGA出力で「シンクライアント端末」などが実現できるモデルが「Armadillo-240」。Armadillo-9から数え、同じソフトウェアで同じように使えるモデルが、計5種類になりました。
これだけのラインナップを揃えながらも、ユーザーから見た複雑さは増してはいません。ユーザーが開発しながら蓄積したノウハウは、そのまま次の開発に活かすことができます。ユーザーがどれか1つの開発を経験すれば、次に別のモデルを採用しても同じように開発できます。そして、どれもそのまま組み込んで量産できます。Armadilloだから、ユーザーは継続した組み込み開発が可能なのです-こうして私たちは確信するようになりました。ArmadilloはただのCPUボードではない、新しい組み込み機器開発の世界を作れる存在なんだ、と。
組み込み開発者に入り口で苦慮させてしまい、試してもらうことも適わなかった時代にはとても言えなかったセリフですが、今なら自信を持っていえます。
「Armadilloは、あなたの機器開発をサポートする"組み込みプラットフォーム"です。」
Armadillo-200シリーズとArmadillo-9の直接の後継となるモデル「Armadillo-400」シリーズは、高性能化だけでなくインタフェースの自由度が格段に増しています。次回、この「組み込みプラットフォーム」の面目躍如たるArmadillo-400に加え、無線LANプラットフォーム「Armadillo-WLAN」、最新モデルとなる「Armadillo-800 EVA」へと続くストーリーをご紹介します。
著者:花田政弘
アットマークテクノ
開発部マネージャー