「Armadillo」は、株式会社アットマークテクノが開発、販売しているArm CPUを搭載した組み込み用途向けの小型汎用ボードコンピューターのシリーズ名称です。
動物のアルマジロ(Armadillo)はスペイン語の「armado (英:armed)」に縮小辞[]「illo」を付けた「武装した小さなもの」が語源とされていますが、ボードコンピューターのArmadilloは「ARM CPU搭載の小さなもの」との意味になっており、開発コードネームがそのまま製品シリーズの名称として使われています。
| Armadillo のロゴ |
---|
図4.1「Armadillo ロゴ」がArmadilloシリーズのキャラクタです。アルマジロの上にペンギン(Tux)が乗っています。
TuxはLinuxの公式マスコット[]ですので、Armadilloというハードウェアの上にLinuxというソフトウェアが載っていることを表します。
|
| ARMとSoC |
---|
Armプロセッサは、英Arm社が開発する32bit/64bit RISCアーキテクチャです。
同クラスの処理能力を持つ他のプロセッサと比較して、低消費電力で動作するという特長を持ちます。 歴代のiPhone/iPad、Android等のほぼすべてのスマートフォンがArmを採用しているほか、Nintendo Switch、PlayStation Vitaなどの携帯ゲーム機等、モバイル機器を中心に様々なところで採用されています。 Armは、Armプロセッサのアーキテクチャを各社にライセンス販売し、自社ではCPUを生産しないというビジネスモデルを取っています。
Armからライセンスを供与された半導体メーカーは、Armコアにコンピューターとして必要な周辺機能を追加し、SoC(System on Chip)等としてパッケージ化して製造、販売します。 自社製品向けにSoCを使用するApple、Samsung、任天堂などのほか、代表的なスマートフォン向けSoCのSnapdragonを設計するQualcomm、FPGAと組み合わせた製品にしているIntelやXilinx、Raspberry Pi等に採用されているBCMシリーズのBroadcom、その他、様々なSoC・汎用プロセッサを製造するNXP Semiconductors、Texas Instruments、Silicon Labs、Microchip、STMicroelectronics、Nordic、ルネサス、東芝など多数の半導体メーカーがArmからライセンスを受け、設計・製造しています。
この中には独自CPUを設計していたメーカーも多いですが、高性能製品を中心にArmへ移行しています。 |
初代Armadillo(HT1070)が2002年3月に発売されてから、毎年のように新製品を発表してきました。
表4.1「Armadilloシリーズの発表時期とCPU」にArmadilloシリーズの一覧表を示します。
表4.1 Armadilloシリーズの発表時期とCPU
製品名 | 発表時期 | LSIメーカー/型番 | CPUコア/動作クロック
|
---|
Armadillo (HT1070) | 2001年 11月 | Cirrus Logic/EP7312 | ARM720T/74MHz |
Armadillo-J | 2003年 10月 | Digi International[]/NS7520 | ARM7TDMI/55MHz |
Armadillo-9 | 2004年 7月 | Cirrus Logic/EP9315 | ARM920T/200MHz |
Armadillo-210 | 2005年 11月 | Cirrus Logic/EP9307 | ARM920T/200MHz |
Armadillo-220/230/240 | 2006年 4月 | Cirrus Logic/EP9307 | ARM920T/200MHz |
Armadillo-300 | 2006年 11月 | Digi International/NS9750 | ARM926EJ-S/200MHz |
Armadillo-500 | 2007年 5月 | NXP[]/i.MX31[] | ARM1136JF-S/533MHz[] |
Armadillo-500 FX | 2008年 9月 | NXP[]/i.MX31 | ARM1136JF-S/533MHz[] |
Armadillo-440 | 2010年 2月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-420 | 2010年 5月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-460 | 2011年 5月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-800 EVA | 2011年 11月 | ルネサス/R-Mobile A1 | Cortex-A9/800MHz |
Armadillo-810 | 2012年 11月 | ルネサス/R-Mobile A1 | Cortex-A9/800MHz |
Armadillo-840 | 2012年 11月 | ルネサス/R-Mobile A1 | Cortex-A9/800MHz |
Armadillo-410 | 2013年 10月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-EVA 1500 | 2014年 7月 | ルネサス/RZG1M | Cortex-A15/1.5GHz |
Armadillo-IoT | 2014年 12月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-IoT G2 | 2015年 6月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-Box WS1 | 2015年 7月 | NXP[]/i.MX257 | ARM926EJ-S/400MHz |
Armadillo-IoT G3 | 2016年 2月 | NXP/i.MX7Dual | Cortex-A7/1GHz |
Armadillo-X1 | 2016年 5月 | NXP/i.MX7Dual | Cortex-A7/1GHz |
Armadillo-IoT G3L | 2016年 11月 | NXP/i.MX7Dual | Cortex-A7/1GHz |
Armadillo-840m | 2017年 4月 | ルネサス/R-Mobile A1 | Cortex-A9/800MHz |
Armadillo-640 | 2017年 11月 | NXP/i.MX6ULL | Cortex-A7/528MHz |
現在のArmadilloシリーズは、大きく2つの流れに分類できます。
従来からある組込み用途向けの汎用製品群と、IoT向けにセンサやクラウドとつなぐことを意識した製品群です。
本書では前者の製品群を中心に記載します。
前者をさらに分類すると、
-
外部拡張バスを持つ汎用製品群
-
搭載するインターフェースを絞って小型、低価格な機能特化型の製品群
-
無線LANやWi-SUNのような無線機能を有した製品群
-
カメラやタッチパネルLCD、HDMIへの画面出力に対応した製品群
となります。
汎用製品群の最初の製品は、Armadilloシリーズ最初の製品でもある初代Armadillo (HT1070[]) です。
初代Armadilloは、外部拡張バスとしてPC/104拡張バスを持った、汎用ボードとして設計されました。
初代Armadilloの流れを組むのがArmadillo-9です。
USBホスト、VGA出力、CompactFlash、100Mbps対応LAN、ATAなど多くのインターフェースが追加され、より多くの用途に対応できるようになりました。
それをさらに発展させたのが、Armadillo-500シリーズです。Armadillo-500シリーズは、CPUやメモリというコア機能はArmadillo-500 CPUモジュールに集約し、拡張基板で機能を拡張するというコンセプトで設計されています。
Armadillo-500開発セット付属の拡張基板(ベースボード)では、Armadillo-9と比べ USBホストがHigh-Speedになった他、ストレージとしてIDEの代わりにNANDフラッシュメモリとSDカードスロットが搭載されました。
開発セット購入者にはベースボードの回路図が公開されており、自由にカスタマイズ可能です。
周辺機能が自由に拡張可能という意味で、Armadillo-500は究極の汎用ボードといえるでしょう。
Armadillo-460は、Armadillo-9の後継モデルです。
後述するArmadillo-440の基本機能に加え、PC/104バスを搭載した拡張性の高い製品です。
汎用性を追求した初代Armadilloの流れとは異なり、Armadillo-Jは、インターフェースをシリアルとLAN、GPIOのみに絞った機能特化型の製品です。
組み込み機器では、インターフェースはこれで必要十分というケースも多々あります。
また、機能を絞ることで、サイズと値段を抑えることができるため量産に適したモデルとなっています。
この流れは、Armadillo-200シリーズに受け継がれています。
Armadillo-210は、Armadillo-Jと同様に、シリアル、LAN、GPIOしか持っていません。
Armadillo-220は、それに加えて USBホスト機能を有しています。
Armadillo-230は、USBの代わりにLANが二つあります。
Armadillo-240は、シリアルを一つ少なくする代わりに、VGA出力を備えています。
Armadillo-200シリーズとArmadillo-9はソフトウェア互換なので、機能が豊富な Armadillo-9で試作をおこない、量産は必要十分な機能を持ったArmadillo-200シリーズで、といった選択が可能になりました。
機能特化型の製品であるArmadillo-420は、Armadillo-220とピン互換で処理能力が約2倍になった製品です。
また、Armadillo-200シリーズではNANDストレージはオプション品でしたが、Armadillo-420ではmicroSDスロットを標準搭載しており、使い勝手も向上しています。
無線LAN機能を有した製品としては、Armadillo-300があります。
それまで、産業用の組み込み用途としてボード製品を提供する場合、長期供給保証の面から無線LAN機能を提供するのは、困難でした。
Armadillo-300では、サイレックステクノロジー社から無線LAN モジュールの供給を受け、長期供給保証できる製品として提供可能になりました。
無線LAN機能は、Armadillo-WLANモジュール、Armadillo-WLANモジュール(AWL13)に受け継がれています。
Armadillo-WLANモジュールは、SDIOまたはSPIホスト機能を持ったボードであれば接続可能なので、様々なボードに無線LAN機能を付加することができます。
Armadillo-500開発セット、Armadillo-500 FX液晶モデル、Armadillo-400シリーズが対応しています。
Armadillo-WLANモジュール(AWL13)は、SDIOまたはUSBホスト機能を持ったボードであれば接続可能で、Armadillo-400シリーズ、Armadillo-600シリーズが対応しています。
液晶付きのパネルコンピューターやカメラ向けの最初の製品は、Armadillo-500 FX液晶モデルです。
Armadillo-500 FX液晶モデルは、5.7インチTFTタッチパネル液晶とオーディオ、SSDを搭載しており、パネルコンピューター開発のプラットフォームとして活用できます。いち早く、Google社が発表した携帯電話用OSであるAndroidに対応したこともあり、大きな反響を呼びました。
Armadillo-440は、Armadillo-500 FX液晶モデルより小型にし、値段も抑え、より量産に適したパネルコンピュータープラットフォーム向けの製品で、
Armadillo-420をベースに、メモリサイズの拡張、LCD接続を可能にしたモデルです。
パネルコンピューターのみならず、Armadillo-440をベースにWi-SUNモジュールを搭載したArmadillo-Box WS1もラインナップしています。
Armadillo-410は、Armadillo-440と同じ機能を持ちながら、拡張基板を使って各インターフェースを自由に配置できるモジュールモデルです。
画像処理はArmadillo-800シリーズで進化しました。
Armadillo-840では画面出力と表示機能に特化し、液晶パネルの他にHDMIによる画面出力を可能にしました。
また、リアルタイム制御用のサブCPUやアクセラレータを持ち、H.264/AVC、AACのエンコード・デコードに対応する動画再生や画像処理をメインCPUに負荷をかけずに実現できるモデルです。
Armadillo-840mはArmadillo-840と同じ機能を持ちながら、拡張基板を使って各インターフェースを自由に配置できるモジュールモデルです。
Armadillo-810は、Armadillo-840と同じCPUを持ち、小型カメラ用途に特化した50mm×50mmの製品です。
Armadillo-X1は、i.MX7デュアルコアを搭載し、ギガビットイーサネットにも対応したハイエンドモデルです。
4GBの大容量eMMCを搭載し、Armadillo-IoTシリーズでラインナップされているアドオンモジュールを実装することによる機能拡張も可能となっています。
Armadillo-640はArmadillo-440の思想を引き継ぎ、液晶パネルや無線LAN機能にも容易に対応可能なプラットフォーム製品となっています。
Armadillo-600シリーズについては次章で詳しく紹介します。
Armadilloシリーズの詳しい仕様は、Armadilloサイトの製品を探す[]により各製品の仕様をご確認ください。
Armadillo-640はArmadillo-600シリーズという製品群に属します。
本書の内容の多くはArmadilloを使った開発全般に応用できるものですが、具体例はArmadillo-600シリーズを対象としています。
本章では、Armadillo-600シリーズについて詳しく解説します。
4.2.1. Armadillo-600 シリーズの基本仕様
Armadillo-600シリーズは、NXP Semiconductors製ARM Cortex-A7プロセッサi.MX6ULL、DDR3 SDRAM、eMMCメモリを中心に、LAN、HighSpeed対応USB 2.0ホスト、microSDスロット、GPIOといった組み込み機器に求められる機能を小さな基板面積に凝縮した、汎用CPU ボードです。
Armadillo-640は、Armadillo-440の後継モデルです。
Armadillo-440と形状互換を保ちながら、CPU処理能力、RAM容量が強化されています。
また、Armadillo-400シリーズと同様に、液晶、タッチパネル、オーディオといったマルチメディア機能を拡張基板によって追加可能な製品です。
Armadillo-600シリーズの基本仕様とブロック図を表4.2「Armadillo-600 シリーズ基本仕様」、図4.3「Armadillo-640 ブロック図」に示します。
表4.2 Armadillo-600 シリーズ基本仕様
| Armadillo-640 | プロセッサ | NXP i.MX6ULL |
---|
CPUコアクロック | 528MHz | RAM | DDL3 SDRAM: 512MByte |
eMMC | SLC NAND 4GB | 本体基板サイズ | 75.0mm × 50.0mm |
電源電圧 | DC4.75V~5.25V | 消費電力 | 約1.2W |
Armadillo-640シリーズは、拡張インターフェースに拡張基板を接続することで、機能を追加することができます。
各製品の拡張インターフェースで追加可能な機能を表4.3「Armadillo-640シリーズ拡張インターフェース」に示します[]。
表4.3 Armadillo-640シリーズ拡張インターフェース
| Armadillo-640 | 拡張インターフェース (CON9) | GPIO、1-Wire、UART、SPI、PWM、SDHC |
---|
拡張インターフェース (CON14) | GPIO、1-Wire、I2C | LCD拡張インターフェース (CON11) | GPIO、1-Wire、UART、I2C、SPI、PWM、SDHC、Audio、LCD |
Armadillo-640のインターフェースレイアウトを以下に示します。
Armadillo-600シリーズの詳細な仕様については、Armadillo-640製品マニュアル[]を参照してください。
4.2.2. Armadillo-600シリーズでできること
Armadillo-600 シリーズの特長として、ハードウェア、ソフトウェア両面での
カスタマイズの自由度が高い点が挙げられます。
Armadillo-600シリーズでは、以下のことが実現できます。
-
様々なハードウェア機能を追加することができます
-
オリジナルのアプリケーションを作成することができます
-
豊富なオープンソースソフトウェア資産を活用することができます
-
Armadillo-600シリーズに標準対応した有償ソフトウェアを活用することができます
Armadillo-600シリーズは、USBやLAN、シリアル(RS-232C)といった標準インターフェースを持っていますので、豊富な外部機器を接続することができます。
また、前章でも述べたように、拡張インターフェースに拡張基板を接続することで、ハードウェア機能を追加することもできます。
CON8, CON9, CON11, CON14には、複数の機能(マルチプレクス)をもった i.MX6ULL の信号線、パワーマネジメント IC の ON/OFF 信号、i.MX6ULL の PWRON 信号等が接続されています。拡張できる機能の詳細につきましては、Armadillo-640 マルチプレクス表[]をご参照ください。
| |
---|
複数箇所に割り当て可能な信号(USDHC2、UART1、ESPI1、I2C2 等)がありますが、同じ信号は複数ピンで同時利用できません。 |
| CTS/RTS 信号線を利用する際の注意点 |
---|
i.MX6ULL の CTS、RTS 信号は一般的な UART の信号と名前が逆になっています。誤接続に注意してください。 |
| CON9 のブートモード設定ピンについて |
---|
CON9 の 17 ピン(GPIO3_IO27)は、i.MX6ULL の内蔵 ROM によるブートモード設定ピンを兼用しています。
電源投入時、ブードモード設定のために、基板上のプルダウン抵抗で Low レベルの状態を保持しています。
High レベルの状態で電源投入した場合、SPI EEPROM ブートを有効/無効にするためのピン(BOOT_CFG4[6])に割り当てられているため、EEPROM recovery モードが有効になり、意図しない動作を引き起こす原因となります。
電源投入時から U-Boot が動作するまでは、Low レベルを保持した状態でご使用ください。
ブートモード設定の詳細につきましては、NXP Semiconductors のホームページからダウンロード可能な『i.MX6ULL Applications Processor Reference Manual』をご参照ください。 |
USBインターフェースに接続できる機器のリストの一部を、以下に示します。
Armadillo-600シリーズで動作可能な機器はこれがすべてではありません。
動作確認が取れているデバイスは、Armadilloサイトの動作デバイスのページ[]に随時追加していますので、そちらもご参照ください。
-
USB to Ethernet変換ケーブル
-
USB to シリアル変換ケーブル
-
USBメモリ
-
USBマウス
-
USBキーボード
4.2.2.2. オリジナルアプリケーションプログラムの追加
Armadillo-600シリーズは汎用ボードとして設計されているため、オリジナルのアプリケーションプログラムを作成し、それをArmadilloに組み込むことができます。
ArmadilloはLinuxシステムですので、他のLinuxシステム用に作成したプログラムの多くは、ほとんど修正せずにArmadilloでも動作することでしょう。
アプリケーションプログラムは、C/C++言語や各種スクリプト言語(シェルスクリプト、PHP、Perlなど)で作成することができます。Armadillo用に新しい言語を習得する必要はありません。
4.2.2.3. オープンソースソフトウェア資産の活用
近年の複雑、大規模化したシステムを構築するにあたり、すべての機能を自前で開発することは現実的ではありません。
ネットワークプロトコルスタックや、ファイルシステムなど汎用的なソフトウェアコンポーネントにオープンソースソフトウェアを活用することで、オリジナルのアプリケーション開発にリソースを集中することができます。
Armadillo-600シリーズでは、標準の開発ディストリビューションとしてDebian 9(stretch)を採用しています。
Debian GNU/Linuxには、オープンソースのアプリケーションやライブラリなどのパッケージが51,000個以上用意されており、これらの多くを簡単な手順でArmadillo-600シリーズで動作させることができます。
オープンソースソフトウェアを活用することにより、Armadillo-600シリーズで実現可能なソフトウェア機能の一覧を表4.4「Armadillo-600 シリーズで実現可能なソフトウェア機能一覧」に示します。
このリストは実現可能な機能のほんの一部にすぎません。
表4.4 Armadillo-600 シリーズで実現可能なソフトウェア機能一覧
分類 | 機能 | アプリケーション/ライブラリ名 |
---|
ネットワーク | Web(HTTP)サーバー | lighttpd |
Apache2 |
FTPサーバー/クライアント | ftpd/ftp |
Telnetサーバー/クライアント | telnetd/telnet |
SSHサーバー/クライアント | OpenSSH |
DHCPサーバー/クライアント | dhcpd/udhcpc |
NTPサーバー/クライアント | ntpd/ntpclient |
PPP | pppd |
カメラサーバー | mjpg-streamer |
HTTP/FTPクライアント | wget/ftpget/ftpput |
Zeroconf | avahi |
メール送信(SMTP) | mail |
sendmail |
ファイヤーウォール | iptables |
SNMP | net-snmp |
マルチメディア | オーディオ再生/録音 | alsa-utils |
MP3再生 | mpg321 |
画像処理ライブラリ | libjpeg62/libpng16 |
データベース | データベース | sqlite3 |
ファイルシステム | VFAT(FAT32) | mkdosfs |
EXT2 | mke2fs |
EXT3 | mke2fs |
jffs2 | mtd-utils |
NFS | - |
samba | samba |
GUI | ウィンドウシステム | The KDrive Tiny X Server |
X.org X Window System |
GUI ツールキット | Gtk+ 2/Gtk+ 3 |
wxWidgets/wxPython | 言語 |
Perl | Perl 5 |
PHP | PHP 7.0 |
Python | Python 2/Python 3 |
Ruby | Ruby 2.3 | その他 |
シェル | ash |
4.4. Armadilloを採用した場合の製品開発サイクル
Armadilloは、開発セットによる試作開発から多品種少量生産の量産品にまで対応できるよう、様々なサービスを提供しています。
Armadilloをプラットフォームとして採用した場合の開発の流れを、Armadillo-640を例に示します。
検討段階においては、まず、Armadillo-640製品マニュアル[]を参照し、必要な機能がハードウェア的に実現可能か検討します。
ハードウェア的に実現可能であれば、次はソフトウェアプラットフォームの選択をおこないます。
Armadillo-600シリーズの場合は、OSとしてLinuxシステム(Debian GNU/Linux)にのみ対応しています。
OSとしてLinuxシステムを採用した場合のGUI環境としては、これまでのX Window Systemやその上で動作するGTK+のみならず、
wxWidgetsのようなツールキットも候補に挙げることができます。
その他、株式会社エイチアイの「exbeans® UI Conductor SDK」などの外部ツールにも対応可能です(外部ツールの情報はArmadilloサイトなどで随時公開しています)。
また、表4.4「Armadillo-600 シリーズで実現可能なソフトウェア機能一覧」に示したようなオープンソースソフトウェアを活用できないかも検討の価値があります。
様々なネットワークプロトコルに対応したサーバー/クライアントソフトウェアや、データベース等多くのソフトウェアが使用可能です。
ハードウェア、ソフトウェア的に実現可能であると判断できれば、試作に取りかかります。Armadilloは、1台から購入可能な開発セットと無償の開発環境があるので、すぐに試作開発を開始することが可能です。
設計、開発段階においては、様々なサポートサービスを受けることができます。
無償で誰でもアクセス可能な情報源として、Armadilloサイト[]を運営しています。
Armadilloサイトには、マニュアル類、最新ソフトウェアのソースコードとすぐに動かすことができるイメージファイル、豊富な Howto、FAQや動作確認デバイス一覧などの情報が満載です。
Armadilloサイトで探してみても疑問が解決しない場合は、Armadilloフォーラム[]に質問することもできます。
フォーラムでは、数百人規模の読者がいるので、同じような問題に遭遇したことのある人から、ヒントが得られるかもしれません。
マニュアル、Howto、FAQ及びメーリングリスト[]のアーカイブ(過去ログ)とフォーラムへの投稿は、Armadilloサイトのサイト内検索機能で串刺し検索できます。
Armadilloサイトの右上にある検索ボックスにキーワードを入力して検索を実行すると、関連する情報が表示されます。ぜひ、ご活用下さい。
Armadilloのような汎用ボードコンピューターを使用して組み込みシステムを量産製造する場合、ケースへの組み込みやフラッシュメモリ(eMMC)の書き込みなどが課題となることがあります。
アットマークテクノでは、フラッシュメモリへのユーザー指定のイメージ書き込みなど、量産製造の効率化に役立つプランをご用意しています。
サービスの詳細については、アットマークテクノ営業部までお問い合わせください。
組み込みシステムを製造、販売する場合には、どのような保守サービスが受けられるかも重要なポイントです。
製品購入後にユーザー登録をして頂いたユーザーに対しては、製品のサポート情報(不具合情報、アップデート情報など)をE-mail等にて通知しています。
ユーザー登録はユーザーズサイト[]で行えます。
ぜひ、ご登録をお願い致します。
また、アットマークテクノ製品は製品ポリシーとして、製品発売から5年間は製品を供給できるよう設計開発を行っています[]。
もし製造中止となる場合は、事前にアナウンスを行います。
「ユーザーズサイト」では、製品ライフや部品変更などをお知らせする「変更通知」情報を公開しています。
ユーザーズサイトでアカウント登録したユーザーを対象に、変更通知の内容を随時メールでお知らせするサービスも実施しています。
このように、量産後の保守に必要な様々な情報を提供しているため、Armadilloは安心して量産にお使いいただけます。