インテル® ® atom プロセッサー e6xx/z6xx での タ...
TRANSCRIPT
Copyright © TurboSystems Co., Ltd. All Right Reserved.
2011年7月15日
ターボシステムズ株式会社 谷口 剛
本書に記載の会社名、製品名、ロゴは各社の商標または登録商標です。
インテル Atom ® ® プロセッサー E6xx/Z6xx での
タブレット、タッチデバイスの可能性を探る。
MeeGo/Androidシステム実装とアプリケーション開発
Intel Software Developer Day 2011 ® 講演資料
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
ESEC 2011 第14回組込みシステム開発技術展IntelブースでAtom E600搭載のタッチデバイスを展示
第14回組込みシステム開発技術展のインテルのブースでは、Atom E600を利用した製品の展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチデバイス・コンセプトモデルが参考展示されている。
10.1インチタッチパネル液晶を搭載するタブレット型端末として提案されている同コンセプトモデルの特徴は、Atom E600とAndroid 2.2を組み合わせている点、そして豊富なインターフェイスだ。PCI Express×2を介してOKIセミコンダクタ製のメディアフォン向けのコンパニオンチップML7223Vを搭載しており、Gigabit Ethernet、SATA、USB2.0のほか、ネットワーク・セキュリティ(MD5、AES、SHA-1、SHA256等の暗号/復号化)などにも対応する。
またFeliCaモジュールも搭載しており、デモでは通販サイトでの電子マネーによる支払いも再現していた。
同コンセプトモデルの最大の見所は、やはりAtom E600とAndroidの組み合わせだろう。搭載OSはAndroid 2.2で、これを実装したのはターボシステムズ株式会社だ。同社はAndroidやMeeGoなどの組み込みソリューションに注力する企業である。
出典 RBB TODAY 5月12日(木)20時15分配信
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Intelブースで出展されたAndroid端末とは
GLを高速に描画
Atomだからこその有り余るCPUパワーを最大限に発揮させるデモ
おっ、このバンドのギタリストは。。。 誰でもいいっか
出典 RBB TODAY 5月12日(木)20時15分配信
Video映像を滑らかに再生
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
プロジェクト バレンタイン (命名 町田奈穂様)の特徴
GMA600 ネイティブ フレームバッファ 1366x768
OpenGL ES アクセラレーション
ハードウエアビデオデコード
マルチタッチ タッチパネル
3軸地磁気センサ、加速度センサー、電子コンパス
GPSでの位置情報
W iF i/W iMAX ワイヤレス通信
Fel ica/NFC 非接触 ICカード これこれ
多段GPIOによるボタン(input)サポート
音声通信用 エコー キャンセラー DSP
高解像度Webcam
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Valentineの実力
デモでもご覧ください
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Valentineのブロックダイアグラム
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Android構成図
デモをご確認ください。
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
AndroidをIntelハードに構築するということは
『それはValantineのハードウエアを、完成されたOSであるAndroidに接続するということ。』
すなわち、要求されているハードウエアを、Androidの要求仕様できっちりと接続
していく作業を行うということ。
OSの上位レイヤーは、Google社が仕様を決めている。すなわち API。
それに合うように、ドライバやJNIを提供するという作業。
そして、もっとも重要な事はできる限り API に合わせこむ。
Androidの開発スピードは、恐ろしく速い。その環境下でも追従するにはできるだけ汎用に
くむということ
主な作業は、以下に集約される。
ドライバ作成 : Input devices, Video, Network, Sensors....
JNI作成 : ハードウエアとJAVAレイヤとの接続
プラグイン作成 : Naitiveアプリケーションとの接続
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Kernel driverを作る
Valentine のためにkernel dr iverを作りまくります。なんのdriverを作ったのか、改造したのか
Video Frame Buffer / DRM (Direct Rendering Manager) driver for GMA600
(Intelさんベースドライバを大改造・リライト → GMA600対応へ)
Multi Touch Panel (HID/input) driver
V4L2準拠 Video(webcam) driver (OKIセミさんのドライバを改造 → Android準拠へ)
Wireless extension 19相当 WiFi driver (RHOMさんのドライバを改造 → Android準拠へ)
GPIO driver (I2C extension type)
GPIO to input exchange driver
HID Audio driver (Kernel Original CODEC driver をHW固有に改造 → Android準拠へ)
YAMAHA magnetic sensor driver
accelerometer sensor driver
(この2つは、組み合わせによる、計算アルゴリズムが必要なので、
最終的にはヤマハ様に手伝っていただきました。)
ML7223 メデイアフォン チップセット driver (HWに合わせ、ほんの少しだけ手直し)
http://sourceforge.net/projects/ml7223/ ベース
『鬼のように作った、作った。ぶつぶつ。作り方は、えーっと。うーんと。。。』
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Androidでの描画
Androdでまず起動に必要なもの → /dev/fb0
Androidの起動スプラッシュやDisplayは、Linux標準のフレームバッファを使用。
起動すると以下のライブラリ群によって画面を描画
■ Surface Manager
表示サブシステムへのアクセスを管理、2Dと3Dグラフィックレイヤーを合成
■ SGL
下位層にある2Dグラフィックエンジン
■ 3Dライブラリ
OpenGL ES のAPI準拠ライブラリ、ハードウェア3Dアクセラレーション、 または標準装備の最適化された3Dソフトウェアラスタライザーを使用
Surfacemanager
SGL
GLES
/dev/fb0
/dev/dri/card0
GMA600
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Androidで映像再生
Intel + Androdで使用するVideo decodeは?
現在標準的なLinux System、FedraやUbuntu、MeeGoでも実装される、VA APIを利用する。
http://www.freedesktop.org/wiki/Software/vaapi
VA APIはDRIの拡張として実装され、専用のHWドライバ経由で、VideoのHW Decodeを
利用するAPIである。
これをMedia Frameworkのメインライブラリであるmedia player core、OpenCoreあるいは
StageFrightへプラグインとして組み込む。
MediaFramework
OpenCore
StageFright
またはPlug In
H264MPEG4Parser
VA API(libva)
/dev/dri/card0xxx_drv_video
HW driver
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
マルチタッチ パネルをたてつける
Linuxの最新カーネルでは多くのマルチタッチデバイスをサポートしてきている。
しかし、まだまだ種類は少ない。2.6.39カーネルでは、MTプロトコル AとBが定義される。
AndroidでのサポートするMTプロトコルは → MTプロトコル A
MeeGO1.2でのサポートするMTプロトコルは → MTプロトコル A と B (Bがディフォルト)
コントローラとして、現状では以下を選ぶのが無難(kernel sourceに含まれる)
Cypress panel
GeneralTouch panel
IRTOUCH panels
PixCir-based panels
Resistive eGalax devices
Capacitive eGalax devices
これらを選べば、AndroidでもMeeGoでも使用出来ることになる。
→ しかし、感度や座標など、多くの調整が必要になる。
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
ハードウエアボタンのキー入力
Android2.xではハードウエアボタンによる
「戻る」、「ホーム」、「メニュー」、「検索」等が用意
される。MeeGO IVIでも、「ホーム」ボタンは
ハードウエアで実装するべきであろう。
今回紹介するシステムでは、GPIOに接続され
た押しボタンSWで、driver による key event
を発行させている。これにより、OS側のイベン
トハンドラーがイベントを受信し、所定の挙動を
行う
* ハードウエア構成
PCI I2C GPIO expander HW SW↔ ↔ ↔
* ソフトウエア構成
GPIO割込 → I2C割込 → GPIOポートチェック
→ key event発生
void pca953x_gpio_keys_irq_func(struct pca953x_gpio_irq_data *bdata){ unsigned int num = bdata->num; unsigned char stat = bdata->status; struct input_dev *input = pca953x_gpio_keys_dev->inputdev;
if(stat == LOW_TO_HIGH) { switch(num) { case PCA953X_GPIO_P12: //SW2 input_event(input, EV_KEY, KEY_ESC, 1); input_sync(input); break; case PCA953X_GPIO_P13: //SW3 input_event(input, EV_KEY, KEY_LEFTMETA, 1); input_sync(input); break; case PCA953X_GPIO_P16: //Volume Down input_event(input, EV_KEY, KEY_VOLUMEDOWN, 1); input_sync(input); break; case PCA953X_GPIO_P17: //Volume Up input_event(input, EV_KEY, KEY_VOLUMEUP, 1); input_sync(input); break; default: break; } }
...
サンプルコード
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
突然ですが、MeeGo IVI端末
ナビゲーション サンプルIVI HOME
Intel CPUだからこその、いくつものOSのサポート
マルチタッチや、HWボタンのキー入力は、Androidで作ったドライバがそのまま利用できる。
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
MeeGo構成図
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
MeeGoで映像再生
Intel + MeeGoで使用するVideo decodeは?
MeeGoでもAndroidと同様、VA APIを利用する。
http://www.freedesktop.org/wiki/Software/vaapi
MeeGoでは、アプリケーションからダイレクトにlibvaをコールする。あるいはIVIでは標準で
提供される、gstreamer pluginを利用し、gst エレメントとして利用する。
gstで実行する場合は、このような簡単なコマンドラインで、映像の再生が可能である。・# gst-launch-0.10 filesrc location=filehoge.mp4 ! qtdemux ! queue ! MixVideoDecoderH264 ! MixVideoSink
MediaFramework
Direct Call
Gstreamer
またはMix Video
Plug In
VA API(libva)
/dev/dri/card0xxx_drv_video
HW driver
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
ValentineでMeeGOの実力
少しデモでもご覧ください
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
MeeGo IVIってなんだろう。
GENIVI Allianceの標準プラットフォーム
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━GENIVI Alliance が、ソフトウェア プラットフォームにMeeGoを採用
2010 年 7 月 23 日 サンフランシスコ発
Linux の成長促進に取り組むグローバルな非営利団体である The Linux Foundation (略称: LF) は、GENIVI Alliance が、車載インフォテインメント (IVI:In-Vehicle Infotainment) の次期リファレンス リリースのソフトウェア基盤として MeeGo を選択したと発表しました。
MeeGo は、Intel 社と Nokia 社の従来のプロジェクトが統合されて生まれたオープン ソース プラットフォームで、The Linux Foundation が運営管理しており、スマートフォン、ネットブック、タブレット、メディアフォン、インターネット テレビ、車載インフォテインメントなどのデバイス タイプをターゲットとしています。
GENIVI Allianceは、BMW グループ、Delphi、GM、Intel、Magneti-Marelli、PSA、Visteon、Wind River によって設立された非営利の業界団体です。この自動車業界における重要な団体によるMeeGoの採用は、「クロスデバイス」かつ「クロスアーキテクチャ」であるというMeeGo プラットフォームの利点を証明するものです。
引用 http://www.linuxfoundation.jp/genivi-alliance
リナックスファンデーションwebサイトより
2011年6/29現在NokiaはMeeGoから脱退しています。
2011年6/29現在 GENIVI Allianceの日本企業のメンバとして登録しているのは(順不同)
株式会社デンソー様、三菱電機株式会社様、 本田技研工業株式会社様、日産自動車株式会社、
パイオニア株式会社様、ローム株式会社様、株式会社バイテック様
ここより調べさせていただきました http://www.genivi.org/ABOUT/GENIVIMembers/tabid/430/Default.aspx
もしもお名前漏れがありましたら、ごめんなさい. by GO!
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
AndroidとMeeGoを比較してみました
Android MeeGo
システム構造 単純Linux + JavaVM 一般的なLinux System
Main System Dalvik MeeGo UX
Application 言語 Native JAVA QML(Java Script like) C/C++
Applicationの作りやすさ 簡単 新しい言語の勉強が必要
OSのメンテナンス 大変すぎ、構造が超複雑 Linuxがわかれば簡単
メモリの使用量 意外に少ない。Min 256M 意外に多い。Min 512M
動作、軽快さ 軽め 重め
安定度 結構あがってきたが・・ 最終的には相当安定する(はず)
パッケージ構造 apk形式 rpm形式
アプリ追加、販売など Google Store AppUp
対応できるIntel CPU Tunnel Creek/OakTraileMenlow/MoorsTown
Tunnel Creek(IVI)Oak Trail(Tablet)各種Intel CPU(netbook)
Copyright TurboSystems Co., Ltd. All Right Reserved. ©
Android SDKのご紹介
もっともっと、実際のソースをお見せしご紹介を続けたいのですが、とてもとても、数時間では紹介しきれません。
ターボシステムズでは、皆様に
"Android + Intel CPU" の性能を存分に味わっていただくためにここまでに紹介をしたドライバを活かしたシステムを開発いただくためにビジネスシーンで理想的な製品開発を実現いただくために
Black Creek (E660搭載 IVI向け開発プラットフォーム)用 Android SDK をご用意しております。
●Black Creek(ソフィアシステムズ社) http://www.sophia-systems.co.jp/ice/intel/Atom/blackcreek/
SoC/コンパニオンチップ: Tunnel Creek + ML7213(OKIセミコンダクタ社製) LVDS対応、MulitiTouch パネル対応、HWビデオデコーダー対応、OpenGL ES EGL対応WiFi対応、加速度センサ(対応予定)、eコンパス(対応予定)
その他Tunnel Creek ボード、Oak Trail 等SDKも対応予定です。いずれのSDKも本日ご紹介したパートはすべて入っています。お気軽にご相談ください。
お問合わせ:ターボシステムズ株式会社[email protected]