マイコン工作実験日記

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

muxモード

2012-11-25 11:33:00 | WT32/BM20
WT32の大きな特徴は、SPPだけでなくA2DPやHFPのようなオーディオ関連プロファイルをサポートするとともに、これらを同時に接続できることにあります。BlueHANDでは通話にはHFPを使っていますが、以前の記事にも書いたようにLPC1114FN28ではデバック用に使えるポートが無いので、SPPを使ってHFPを始めとする他のプロファイルの動作状況を外部からモニタできるようにしてみます。接続イメージはこのようになります。



スマホ/携帯とはHFP/A2DP/AVRCPで接続する一方で、PCとはSPPでBluetooth接続します。HFPの動作によって生じたイベントメッセージをマイコンでひろって、それをSPPで送信してやればPCから他のプロファイルの動作をモニタリングできることになります。しかしながら、WT32にもシリアルポートはひとつしかありません。送信するデータをどちらのリンクに送るか、あるいは受信したデータがどちらのリンクから来たものかを区別できないと、複数の接続を使い分けることができません。このような要求に対応するために用意されているのがmuxモードです。

muxモードではWT32とやりとりする通信のフォーマットが、無手順ではなく、独自のフレーム形式に変わります。各フレームには送信先/送信元のリンク番号が入っていますので、これで複数の通信路を区別して送受信をおこなうことができるようになります。この例では、異なるプロファイルを使っていますが、別々のデバイスと複数のSPP接続を張るような使い方も可能です。フレーム形式とはいっても、HDLCのようにビットインサートが必要なわけでもなく、PPPの非同期HDLCのようなエスケープ処理の必要もないフラグ・バイトとLength prefixがついただけのとても簡単な形式なので、簡単にエンコード/デコードすることができます。

このLPC1114FN28を使ったユニットはBlueHAND-Miniという名前にしましたので、Mac OS Xからペアリングをおこなうと、その名前のついた TTYデバイスが作成され、これを使って接続することができます。screenコマンドを使うのであれば、....



接続後、スマホとBlueHAND-Miniをつなげてみると、screenコマンドの画面ではつぎのようにWT32の出力するイベントをモニタすることができるようになりました。もちろん、LPC1114からのデバック・メッセージを出力させることも可能です。



ワイヤレスで動きがモニタできるので、とっても便利になりました。