マイコン工作実験日記

Microcontroller を用いての工作、実験記録

わからぬ仕様

2011-06-23 22:29:11 | Weblog
最近の当ブログへのアクセス履歴を見ると、「AVRCP 1.3」というキーワードの検索で来る方が結構いらっしゃるようです。「MW600」というキーワードでの検索もあるので、やはりみなさんMW600で曲名表示できるプレーヤを探しているということなんでしょうか?

SONY ソニーエリクソン Bluetoothワイヤレスヘッドセットマイク付き ブラック MW600/B
ソニー
ソニー


わたしも携帯を機種変更するならば、AVRCP 1.3対応の機種を選択したいのですが、それではどの機種が対応しているのか調べようと思っても、これがなかなかわかりません。
  • DoCoMoでは機種ごとのBluetoothの対応状況をまとめたページが用意されています。しかし、ここではプロファイル名はわかっても、そのバージョンまではわかりません。
  • 各機種のマニュアルをダウンロードしてみても、Bluetoothに関する記述は限定的。やはりプロファイルの名前が並んでいる程度の説明。
  • 書店で何冊かのスマホ本をめくってみましたが、そもそもBluetoothに割いているページ数が少ないようで、やはり詳細まではわかりません。
  • 各メーカの携帯関連サイトも参考にはなりますが、機種ごとに記述の有無が異なっているので、やはり詳細不明となること多し。

先日、近所のDoCoMoショップを訪れた際に、この疑問を店員さんに投げかけてみました。すると、「ドコモの相談窓口に問い合わせるか、kakaku.comのようなサイトの口コミを参照するのが良い」という返答。うーむ、店員も口コミ頼りということかぁ?! その店員氏は、いまはSH-12Cを盛んにお勧め中。「SH-12CがAVRCP 1.3対応しているかどうか確認してきます!」と言い残してバックヤードへ。どうやら相談窓口へでも問い合わせ/確認してくれるようです。

待つことしばし。くだんの店員さん戻ってきましたが。。「検索したら対応しているらしいという口コミやtweetがあったんで、たぶん対応しています。」という回答。やはり、社内では情報見つけられなかったようです。高機能になるのはいいのですが、もはや細かい技術仕様どころか使い方の説明すらどこにも書いてないので、仕方ないのでしょうかね。もっとも、そんなとこまで読む人は限られているのかもしれませんが。

Bluetoothの技術仕様に関しては、AVRCPのバージョン以外にもプロファイル名だけではわかりかねる点がいくつもあります。例えば、
  • どのような操作をおこなった時に、どのプロファイルが使われるのか? PBAPの時もそうでしたが、どこをどう操作すればどのプロファイルが使用できるのかが、明記されていないので手探りで使い方を習得せねばならない。
  • サポートされるプロファイルのロールは? Bluetoothのプロファイルの役割はデバイス間で、異なります。片方がクライアント的にふるまう役割を担当し、もう片方がサーバ的に振る舞う役割を担当して通信をおこないます。例えば、A2DPでは音源側がSourceと呼ばれ、受け側はSinkと呼ばれます。AVRCPではリモコン機能を提供する側がControllerと呼ばれ、それにより制御される機器側はTargetと呼ばれます。
  • サポートされるオプションは? 標準化された通信プロトコルの世界では、必ずサポートしなければならない必須機能と、ベンダやデバイスの都合でサポートするかどうかを決められるオプション機能が定められています。ヘッドセット側が対応しているオプションでも、携帯側が対応していなければその機能は使えないことになります。普通、どんな製品でもこんな細かいところまでは説明されていませんね。

プロファイルをサポートする上でのロール(役割)は、とっても基本的な情報なのですが、意外と明記されていないようです。常識的に判断しろということなんでしょうか。OPPで電話帳や写真データを送受するには、送信の際にはクライアントとしての役割が求められ、受信の際にはサーバとしての役割が求められます。したがって、通常は両方のロールがサポートされているはずです。

スマホ端末にはHIDがサポートされる機種もあるようですが、どうやら外部キーボードのようなデバイスを接続するために用いられるようです。この場合、スマホ側はホストのロールを担当することになります。しかし、せっかくのスマホなんですから、タッチスクリーンや内蔵のセンサを利用したデバイス側の機能を提供できてもいいような気がします。そうすれば、スマホを使ってPCを操作したり、ゲーム機のコントローラ代わりに利用したりできると思うのですけど。自分でアプリ書けば、こういう使い方もできようになっているのでしょうか?

AVRCPでは携帯/スマホが音楽再生機能を提供するので、Target側となります。しかし、ヘッドセット(普通はController側)で音量調節機能を持っている機種では、プレーヤ側からのBluetooth経由での音量調節を可能とするために、Target側の機能をもっているものもあります。MW600はそのような例で、マニュアルにはAVRCPのController側とTarget側の双方に対応していることが明記されています。

最後に、WT32がサポートしているロールについてまとめておくことにします。マニュアルやアプリケーションノートを読めばわかることなのですが、情報が散逸している感じです。また満足な技術説明が無いプロファイルもあるので、実際に使ってみないとよくわからないこともあります。そのため、Bluetoothのプロファイル仕様を読みながら実験していたりします。

HFPA2DPAVRCPPBAPOPPHIDSPP
HFSinkControllerPCEClientDeviceDevice A
AGWSourceTarget---Server---Device B


このように多くのプロファイルで双方のロールに対応しています。しかし、A2DPとAVRCPでは両方のロールを同時に機能させることはできません。