ロード トップ 参照元 逆検索 検索 ヘルプ

[logo] 電子工作/bluetooth


SuzTiki:電子工作

bluetooth 関係のメモ

5/26

プラネックス の GW-BH01U という USB Bluetooth アダプタが 8800 円で 売っていたので、買ってしまう。

ケースを割って中をみてみる。...

中に入っていたのは、 WML-C06NU という ミツミ製 モジュール。

あれ? 製品の説明には、ベースチップは、CSR 製と書いてある。 CSR 製チップを使った ミツミ製モジュール?

それはともかく、ミツミ製モジュールには、インターフェイス 3 種類 x アンテナ あり/なし で 6 タイプの製品があるようだ。

インターフェイスには、UART BCSP/ UART H4 / USB --- ふうむ。 このモジュールは、USB にしか つながらないのか?

モジュールは、28 ピンで、

          Top View
 
              アンテナ

     (1) PIO[0]/RX_EN       (28) ANT
     (2) PIO[1]/TX_EN       (27) GND
     (3) GND                (26) --
     (4) GND                (25) PIO[2]
     (5) PIO[4]/IRQ1        (24) PIO[3]
     (6) PIO[5]/IRQ2        (23) UART_TX
     (7) PIO[6]             (22) UART_RX
     (8) PIO[7]             (21) UART_RTS/USB_D+
     (9) PCM_OUT            (20) UART_CTS/USB_D-
     (10) PCM_CLK           (19) SPI_MISO
     (11) PCM_IN            (18) SPI_CLK
     (12) PCM_SYNC          (17) SPI_MOSI
     (13) GND               (16) SPI_CSB
     (14) Vdd               (15)  GND

となっている。

インターフェイスがちがっても pin 配置は同じということは、ファームウェアが ちがうだけなのかも知れない。


CSR 製チップということは、 BlueCore というやつ?
このチップは、マイクロコントローラと RAM , I/O が内蔵されていて、 外付チップとして flushROM と クリスタル 、アンテナを付けるものらしい。 チップ自体は、81pin bga で、とても手がだせるものではなさそう。

で、このチップは、USB and UART version と UART only version の2つがある。


とにかく、bluetooth モジュールって 一般に かなり多様なインターフェイスを もっているようだ。

SPI とか、UART(シリアル) とか、WML-C06NU では利用できないのかも知れないが 利用できるモジュールは存在するわけだ。

シリアルでつなげられる と幸せな もの は沢山ありそうだ。


重量9g で 9800円 小さいですね。これは。--ksr

そうですね。WML-C06NU で出ている写真そのものモジュールが入って いました。

アンテナ付きのモジュールに USB のコネクタがくっついている感じ。 USB のコネクタ( 取り付け部を含む) が Bluetooth モジュールと同じぐらいの長さ。

部品をよおくみてみると、5V->3.3V の レギュレータ と 数個のチップ抵抗が あるだけ。ほとんど Bluetooth モジュールに USB コネクタ付けた だけのもののようです。

ちなみに、Linux には、bluetooth ドライバがある模様。

この linux(2.4.18) に入っているのは、bluez-1.1 だそうだ。 bluez-1.2 が既に出たあと いまは 2.1 かなりちがっているということか。


実際に なにかをしようとするときは、 Bluetooth_1.1_Specification_Book を理解しなくてはならなさそう。


あ、ミツミの WML-C06 に関する話題が Linux bluetooth-dev ML でみつかった。

VDD,GND,Tx,Rx だけつないで 115200 bps BCSP で BlueTest? という プログラムで接続できたらしい。

なるほど、OpenBTという プロジェクトがあるのか。それで動かないという話題らしい。

リプライを見ると bcsp-version of openbt が通信する セッテイングを チェックしろとある。

bluetooth のプロジェクトには、OpenBT 以外に BlueZ というのがあるらしい。 BlueZ の Hardware List には、

     Mitsumi USB Adapter CSR 1.1 hcp_usb  working

という情報が。

どうやってインストールするかというと Bluetooth_Installation_HOWO が。

これでホスト側の環境が作れるわけだ。で、どうするのだろう? PC 間をつなげることができたって、嬉しくもなんともないぞ。 NetBSD/hpcmips で という 可能性はないのだろうか?

NetBSD ではどうなっているんだろう?とか思ってしらべてみたら、

アイピースクエア なんて会社をみつけた。 なんでも NetBSD 関係の 依託開発?しているところみたい。

その FAQ には、

なんてあるぞ。自社でのportも辞さずということか。しかし、 Linux からの port だと GPL ? NetBSD で組込みやる以上 bluetooth ドライバ がないと困るだろうが... すごい意気ごみだ。

それはともかく、IrDA とちがって 誰もが欲しいものだろう。 いつか誰かが port してくれるにちがいない。


bluz の最新版をインストールしてみる。

をとにかく ./configure; make; make install しまくる。

で、bluetooth の UNIT を挿す。

とにかく 初期化されたっぽい。

さてコマンドは、

  hciattach   --- シリアル接続の BlueTooth モジュールはこれで組み込む。
                  (USB は必要ない)
  hciconfig   --- 組み込まれたドライバに対して 初期化する(up) 
  hcid        --- サービスをするデーモン?
  hcitool     --- scan するとか inquire するとか。

まずは、

hciconfig up

とすると

hci0:   Type: USB 
        BD Address: 00:A0:96:1F:AD:44 ACL MTU: 128:8  SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN 
        RX bytes:1511 acl:6 sco:0 events:53 errors:0
        TX bytes:474 acl:0 sco:0 commands:31 errors:0

といったメッセージが出る。

hcitool scan

で、

Scanning ...
        00:A0:96:1F:AD:35       NINJA

相手がみつかる。

そして

hcitool info  00:A0:96:1F:AD:35

とすると
 
Requesting information ...
        BD Address:  00:A0:96:1F:AD:35
        Device Name: NINJA
        LMP Version: 1.1 (0x1) LMP Subversion: 0x72
        Manufacturer: Cambridge Silicon Radio (10)
        Features: 0xff 0xff 0x05 0x00
                <3-slot packets> <5-slot packets> <encryption> <slot offset> 
                <timing accuracy> <role switch> <hold mode> <sniff mode> 
                <park mode> <RSSI> <channel quality> <SCO link> 
                <HV2 packets> <HV3 packets> <u-law log> <A-law log> 
                <CVSD> <power control> 

それはともかく、hcid は? ... /etc/bluetooth/hcid.conf でサービスを
定義するものらしい。


hcid をうごかせば.. hcicofing up せずとも 自動的に up するようだ。
で、相手側は、

  名称 : Bluz(0)
  タイプ: デスクトップ PC

と認識してくれた。

なんかこれだけじゃダメらしい。

てのも make してみる。

make するのはよいのだがよくわからんという状態に ...

まあ、このページは、電子工作のページだから。BlueZ というのが どういうものか、だいたいわかればいいか。

主題は、シリアルに どうやって BlueTooth モジュールをつなげるか。

まずは、

ダメなら、別のものを考える。

こんなデータをみつけた。

これによると、

BCSP ,H4 とは何なのか

の中をみてようやく理解した。H2(USB),H3(RS232C),H4(UART) という3つの 物理レイヤのプロトコルの定義は、Bluetooth_1.1_Specification_Book で 説明があった。

H3 は、9600 bps で ネゴシエーションして、通信モードを その後で設定する。ボードに載っていてエラーを気にしなくてよいケース のために H4 がある。ある固定の通信モードでネゴシエーションせずに、 通信できるものらしく、通信モードの設定について記載されていない。

そして、BCPS は、BlueCore Serial Protocol の略で CSR 社の プロトコルらしい。

H4 とおなじく、ある固定の通信モードでネゴシエーションせずに、 通信できるが、CRC や チェックサムをつけて、データの信頼性 / エラー検出 の面で、改良したもの。また、TxD/RxD のみでも通信できる。

で、H4 (or H3) と 共存はできないから、UART のモデルは、2 種類ある ということになるようだ。

ひょっとしたら、USB モデルは、CTS/RTS が使えないから、シリアルが使えると すれば BCSP に決まっているのかも知れない。

bcsp.zip には、2種類の コードが 含まれている。Windows 系用のコードと 組み込み系のコードのようだ。

さて、BlueZ で、BCSP が使えるかというと まだ無理のようだ。 ハードウェアのリストは、

    COM1 Platinum Card CSR  1.1 bcsp_cs  in progress

となっていて、開発中らしい。これ以外の BCSP モジュールは、 not working になっている。

また、メーリングリストで

上でも でてきたが OpenBT の方も Mitsumi のシリアル接続はあやしい らしい。ただし、他の CSR で BCSP での接続は 実績があるらしい。

参考:

そういったことはともかく、なんとなく、USB version では、シリアル接続 なんてできないような気がしてきた。

おとなしく、USB で使えばいい。無理矢理シリアル に USB をつなげると すれば、

     USB Bluetooth -- SL811HST (Usb HOST) -- H8 

なんてつなぎかたをすればよいのか。ただ、それができたとしても消費電力が...


ネットワーク周りだし、おもしろいところですね。何かできないかな。

なんか面白みがないですね。無線ということは 電源系さえなんとかすれば、 完全防水できるとか ...


メモ

iPAQ の Bluetooth 版は BlueZ で使えているらしい。

    Compaq iPAQ 3870           CSR       1.1   hci_uart   working
    Compaq iPAQ Bluetooth      CSR       1.1   hci_uart   working

いいなぁ。

それ関係で、http://www.cs.umd.edu/~gvijay/bluez.html というのをみつける。 なんか pskey というので設定を変更できるっぽい。

iPAQ の デフォルトは、BCSP モードなのを pskey でファームウェアを 書き変えて H4 mode にするとある。

... よくわからんが、hciattach とかに、CSR の UART speed がどうのという コードがあるなぁ。OpenBT の方にも bt_vendor.c とかあって、なんか操作 できるようだ。

pskey そのものはわからなかったが、bt_vendor.c に 設定のコードが入っている。

あとは、USB version でもシリアルで接続できると嬉しいなぁ。


(最終更新 Thu Mar 30 19:01:54 2006)