インテル® ® atom プロセッサー e6xx/z6xx での タ...

20
Copyright © TurboSystems Co., Ltd. All Right Reserved. 2011年7月15日 ターボシステムズ株式会社 谷口 剛 本書に記載の会社名、製品名、ロゴは各社の商標または登録商標です。 インテル Atom ® ® プロセッサー E6xx/Z6xx での タブレット、タッチデバイスの可能性を探る。 MeeGo/Androidシステム実装とアプリケーション開発 Intel Software Developer Day 2011 ® 講演資料

Upload: others

Post on 04-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright © TurboSystems Co., Ltd. All Right Reserved.

2011年7月15日

ターボシステムズ株式会社 谷口 剛

本書に記載の会社名、製品名、ロゴは各社の商標または登録商標です。

インテル Atom ® ® プロセッサー E6xx/Z6xx での

タブレット、タッチデバイスの可能性を探る。

MeeGo/Androidシステム実装とアプリケーション開発

Intel Software Developer Day 2011 ® 講演資料

Page 2: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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分配信

Page 3: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

Intelブースで出展されたAndroid端末とは

GLを高速に描画

Atomだからこその有り余るCPUパワーを最大限に発揮させるデモ

おっ、このバンドのギタリストは。。。  誰でもいいっか

出典 RBB TODAY 5月12日(木)20時15分配信

Video映像を滑らかに再生

Page 4: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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

Page 5: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

Valentineの実力

デモでもご覧ください

Page 6: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

Valentineのブロックダイアグラム

Page 7: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

Android構成図

デモをご確認ください。

Page 8: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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アプリケーションとの接続

Page 9: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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/ ベース

        『鬼のように作った、作った。ぶつぶつ。作り方は、えーっと。うーんと。。。』

Page 10: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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

Page 11: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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

Page 12: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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でも使用出来ることになる。

→ しかし、感度や座標など、多くの調整が必要になる。

Page 13: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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; } }

...

サンプルコード

Page 14: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

突然ですが、MeeGo IVI端末

ナビゲーション サンプルIVI HOME

Intel CPUだからこその、いくつものOSのサポート

マルチタッチや、HWボタンのキー入力は、Androidで作ったドライバがそのまま利用できる。

Page 15: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

MeeGo構成図

Page 16: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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

Page 17: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

Copyright TurboSystems Co., Ltd. All Right Reserved. ©

ValentineでMeeGOの実力

少しデモでもご覧ください

Page 18: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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!

Page 19: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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)

Page 20: インテル® ® Atom プロセッサー E6xx/Z6xx での タ …展示が数多く並んでいる。その中の1つとして、Atom E600を利用した次世代の多機能タッチ

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]