260 likes | 459 Views
PCを利用したHAVi対応家電の構築. 副島康太 松田正彦 飯野徹 林豪敏 (富士通LSIソリューション株式会社) 中島達夫 (早稲田大学理工学部情報学科). 発表内容. 背景 ミドルウェアの利用 Javaを利用したミドルウェア開発 Linuxの利用 Java、Linuxの利用は現実的か? PCを利用した開発 システムアーキテクチャ 開発した情報家電システムの概要 HAViについて 開発した情報家電システムの構成 開発した情報家電システムの実装 開発した情報家電システムの動作例 開発した情報家電システムの性能評価
E N D
PCを利用したHAVi対応家電の構築 副島康太 松田正彦 飯野徹 林豪敏 (富士通LSIソリューション株式会社) 中島達夫 (早稲田大学理工学部情報学科)
発表内容 背景 ミドルウェアの利用 Javaを利用したミドルウェア開発 Linuxの利用 Java、Linuxの利用は現実的か? PCを利用した開発 システムアーキテクチャ 開発した情報家電システムの概要 HAViについて 開発した情報家電システムの構成 開発した情報家電システムの実装 開発した情報家電システムの動作例 開発した情報家電システムの性能評価 開発にJava、Linuxを利用した経験 まとめ デモについて
背景(1) これからの情報家電とは? 様々なネットワーク インターネット、デジタル放送、iモード、Bluetooth、HAVi、 ECHONET、無線LAN、・・・ 複雑な機能 マルチメディア機能、著作権保護機能、セキュリティ機能、・・・ 高度なユーザーインターフェース GUI、音声合成/認識、文字認識、・・・ 高性能ハードウェア 32bit以上のCPU、大容量RAM/ROM
家電用ソフトウェアの開発の現状 実装に依存したシンプルなファームウェア上での開発 ソフトウェアの再利用性が低い 開発ツールの種類が少ない 既製のライブラリを利用するには本格的な移植が必要 情報家電用のソフトウェアには 新しいアプローチが必要! 背景(2)
ミドルウェアの利用(1) • ネットワークプロトコルやGUIフレームワーク等の基本的な機能をアプリケーションから分離。 • ミドルウェアとアプリケーションを別々に開発可能となり、開発期間を短縮できる。 • ミドルウェアが標準APIを提供することにより、アプリケーションの再利用が可能。 アプリケーション 標準API ミドルウェア 標準API OS ミドルウェア プラットフォームB OS プラットフォームA
ミドルウェアの利用(2) • 情報家電用のミドルウェアは大規模化、複雑化していく。 • 開発ターゲットへのミドルウェアの移植作業に多大な労力が必要だとメリットは少ない。 要求 • ミドルウェアの開発効率を高くしたい。 • ミドルウェアの移植性を高くしたい。
Javaを利用したミドルウェア開発 Javaの利用により、要求を解決できるのではないか? Javaの利点 オブジェクト指向言語であり、コードの再利用性が高い。 ライブラリが標準化されている。 バグが作りこまれにくい仕様になっている。 バーチャルマシン上で実行されるためハードウェアに依存しない。 ミドルウェアの開発にJavaを利用することにより、移植性と開発効率を向上させる。
Javaによるミドルウェアだけでは実現できない機能がある。Javaによるミドルウェアだけでは実現できない機能がある。 非常に高速な処理が要求される機能 リアルタイム性能の確保等のOSに依存した機能 Linuxを利用することにより、Javaだけでは実現できない機能に関しても開発効率、移植性の向上をはかることができるのではないか? Linuxの利用(1)
Linuxの利点 オープンソースであるため、各種CPUへの移植が進んでいる。 APIが標準化されているため、ハードウェアが異なるシステム間でもソフトウェアの移植は容易。 Linux用の多数のライブラリ、アプリケーションが公開されているため、それらを利用できれば開発期間の短縮につながる。 ミドルウェア、アプリケーションをLinuxに対応させることにより、 Linuxを搭載したプラットフォーム間での移植性を向上させる。 Linux用に公開されているライブラリ、ソフトウェアを利用することにより、アプリケーションの開発効率を向上させる。 Linuxの利用(2)
最近の話題 Linux搭載の家庭用ネット端末。 家電機器には既にJavaの採用例。 PDA、携帯電話等でもJavaVMの動作が可能に。 組込み向けの小フットプリントのLinux。 リアルタイム機能を付加したLinux。 Java、Linuxの利用は現実的か?
Java、Linuxを利用する場合の開発環境としてはPCが適している。Java、Linuxを利用する場合の開発環境としてはPCが適している。 開発ツールが豊富。 周辺ハードウェアが豊富。 開発システムの準備が短期間で可能。 コストパフォーマンスが高い。 PCを利用した開発
システムアーキテクチャ Linuxを搭載した ターゲット環境 Linuxを搭載しない ターゲット環境 PC環境 アプリケーション アプリケーション アプリケーション ミドルウェア ミドルウェア ミドルウェア OS依存 ライブラリ OS依存 ライブラリ OS依存 ライブラリ JavaVM JavaVM JavaVM Linux Linux OS PC 組込み機器 組込み機器
開発した情報家電システムの概要 HAVi規格に対応したミドルウェアをJavaで開発。 開発したミドルウェアを用いて、LinuxとWindows上に情報家電システムを構築。 オープンソースのソフトウェアや、市販のライブラリを利用して家電の機能を実現するプログラムを開発。
アプリケーション API HAViミドルウェア OS ハードウェア 1394ケーブル プロトコル HAViについて • HAVi(Home Audio/Video interoperability)はホームネットワークを実現するための機器アーキテクチャの規格であり、特にAV家電機器に適している。 • HAVi規格に準拠した機器は、IEEE1394ケーブルで接続するだけで、協調動作が可能になる。 • 協調動作実現のために、HAVi機器同士がやり取りを行なうためのプロトコルとアプリケーションに対するAPIを定義している。
開発した情報家電システムの構成 ≪HAVi対応デジタルTV≫ ≪HAVi対応デジタルチューナー≫ HAViアプリケーション HAViアプリケーション HAViミドルウェア HAViミドルウェア JavaVM 1394 IF プログラム デジタルTV プログラム (MPEG2) デジタルTV プログラム (DV) JavaVM 1394 IF プログラム チューナーIF プログラム デジタル チューナー プログラム Linux Windows98SE PC PC PC IEEE1394 ボード MPEG2デコーダ ボード IEEE1394 ボード MPEG2エンコーダ ボード シリアル ((( リモコン TVチューナー IEEE1394バス IEEE1394バス DVカメラ
開発した情報家電システムの実装(1) • ミドルウェア • HAVi規格で標準化されたAPIのうち、基本的な部分を実装した。 • ほとんどをJavaで実装し、1394にアクセスする部分のみをC言語で開発した。 • HAViアプリケーション • Javaで実装。 • HAViのAPIを利用し、1394へのアクセスを行なう。 • GUIを提供。
開発した情報家電システムの実装(2) • 家電機能 • Linux用のオープンソースのソフトウェアを利用して、DVの映像ストリームをIEEE1394で受信し、デコードと表示を行なう「デジタルTVプログラム(DV用)」を開発した。 • Linux用の市販MPEG2デコーダボードを利用して、MPEG2の映像ストリームをIEEE1394で受信し、デコードと表示を行なう「デジタルTVプログラム(MPEG2用)を開発した。 • Windows用の市販MPEG2エンコーダボードを利用して、映像をMPEG2圧縮し、IEEE1394上に送信する「デジタルチューナープログラム」を開発した。 • 市販のビデオデッキをシリアル及びプログラムリモコンを通して制御可能にし、TVチューナーとして利用できるようにした。
開発した情報家電システムの動作例 ← Windows版 Linux版 →
開発した情報家電システムの性能評価(1) 〈測定マシンスペック〉 *1 CPU:PentiumⅢ850MHz メモリ: SDRAM 512MBytes(PC100)、 マザーボード:ASUSTeK P3B-F チップセット:440BX IEEE1394ボード:テクノスコープ製 PFW-41 *2 CPU:PentiumⅢ800MHz メモリ: SDRAM 512MBytes(PC100)、 マザーボード:ASUSTeK P3B-F チップセット:440BX IEEE1394ボード:メルコ製IFC-ILP
開発した情報家電システムの性能評価(2) • (結果概要) • Cで記述したプログラムから1394へのアクセスは、30μ秒程度(Linux) • HAViアプリケーションから1394へのアクセスは200~260μ秒程度(Linux) • HAViモジュール間のローカルメッセ-ジング時間は250μ秒程度 • HAViアプリケーションの主な役割はユーザーインターフェースの提供と他機器の制御なので、性能的には問題無い。
開発にJava、Linuxを利用した経験(1)開発にJava、Linuxを利用した経験(1) • Javaに関して • LinuxとWindowsではほとんど同じコードが利用できた。移植の手間はわずかなもの。 • LinuxとWindows以外に、Javaチップ上にpersonalJavaが搭載されたシステムへも移植を行なったが、ほとんどのコードをそのまま動作させることができた。 • Javaのスレッド制御機能はもう少し充実して欲しい。
Javaチップ上で動作する開発システム 開発にJava、Linuxを利用した経験(2)
Linuxに関して オープンソースのソフトウェアは利用できるものがあればかなり有利 DV映像を表示するデジタルTVプログラムの開発では、複数のオープンソースのソフトウェアを改造して利用した。全て自前で作成すれば、何倍も開発期間がかかっただろう。 問題の原因究明が容易 問題が起きたとき、ライブラリやドライバのソースコードを見ることができるため、原因がどこにあるのかを特定しやすい。 モジュール毎のクオリティにばらつきがある。 実装の問題ならば手を入れることも可能だが、APIの問題の場合、修正は容易ではない。 開発にJava、Linuxを利用した経験(3)
まとめ 大規模化・複雑化していく情報家電機器用のソフトウェア開発においては、開発効率の向上は重要な要素である。 ミドルウェアをJavaで開発することにより、ミドルウェアの開発効率や移植性を高めることができる。 開発システムとターゲットの両方にLinuxを利用すれば、アプリケーションの開発効率をさらに高めることができる。 本開発では、実際にJava、Linuxを利用して情報家電システムの構築を行ない、この手法の実現性と効果を確認した。