Bluetooth詳説
Bluetoothプロトコルの解説とライブラリ開発
ホーム  :  検索  :  記事一覧  :  RSSフィード  :  リンク  :  ダウンロード  
 2010年09月 5日(日曜日) 20:33 JST

そろそろ再開

  印刷用画面 
開発またちょっとずつ進めていきます。
今月中にHCIの解説をアップするのが目標です。
USBドライバも少しずつ開発していきます。

とりあえず、USBドライバの方は、
1. インタラプトIN転送の受信(つまりHCIイベント受信)が出来るようにする
2. コントロール転送でHCIコマンドを送信できるようにする
ことが当面の目標です。

>> 続く
 
全文表示 コメント投稿
コメント (0件) トラックバック (0件)

キャラクタ型USBドライバの実装(openとcloseだけ)

  印刷用画面 
開発

1週間に10時間の予定はいったいどこへやら・・・。
別件で仕事が入った上に最近疲れが溜ってきたので、今月はお休みにします。

とりあえず2週間程前にキャラクタ型USBドライバの形だけ作ってみたので、それだけアップします。
openとcloseだけを実装したドライバです。writeとreadは中身空っぽ。
説明も9割がた出来てたんですけど、完成は今日になってしまいました。

>> 続く

 
全文表示 コメント投稿
コメント (0件) トラックバック (0件)

ドライバのユーザーI/F

  印刷用画面 
開発

ここ1週間体調を崩していたので、全く進んでいません。 体調回復してきたので再開します。

前回作成したドライバはハードウェアの装着・削除を検出するだけの物でした。
ハードウェア側との通信だけしかしていなかったわけです。
ドライバはハードウェアとユーザーソフトウェアとの橋渡しの役目を果たしますから、ユーザー側とのI/Fを考えないといけません。

>> 続く

 
全文表示 コメント投稿
コメント (0件) トラックバック (0件)

Linux Bluetooth USBドライバ作成の目的

  印刷用画面 
開発

「Linuxデバイスドライバ 第3版」の第2版が手元あったのですが、本日第3版を入手しました。
Kernel2.6でかなりドライバ仕様が変わったのと、第2版ではUSBドライバに関する記述がほとんどなかったためです。

LinuxにはBlueZの用意するhci_usbドライバが存在します。
なぜ車輪の再発明をしようとするのか?
これから開発するドライバの目的をはっきりさせておきます。

  1. HCI-USBの仕様を理解するため
  2. 上位レイヤー開発に利用するため

最大の目的は「HCI-USBの仕様を理解するため」です。
そのためLinuxドライバに関係する記述は最低限にして、HCI-USBの仕組みがわかりやすいコードにしたいのです。

作成したドライバは上位レイヤー開発に利用します。
I/Fはできるだけシンプルなものにします。
あくまで開発用ですから、自分の環境で利用できれば十分です。

それらの目的に合わせて、次の仮定で作成します。

  1. 接続するBluetoothデバイスは1つだけ
  2. Bluetoothデバイスを利用するプロセスは1つだけ

今後、もしこの仮定だと開発に不都合が生じるようなら、改良することにします。

 
コメント投稿
コメント (0件) トラックバック (0件)

Linux USBドライバ

  印刷用画面 
開発

購入したBluetooth USBアダプター "PLANEX BT-Mini2EDR" を制御するUSBドライバをこれから作成していきます。

まずはLinux USBドライバの仕組みを知る必要があるわけですが、作成にあたって下記を参考にします。

書籍

Linuxデバイスドライバ 第3版
この本の第2版を持っています。
Linuxデバイスドライバ全般に関して網羅的に恐ろしく詳細に説明されていますが、残念ながらUSBドライバに関する記述は少ししかありません。
(追記)第3版ではKernel2.6に対応しただけでなく、USBドライバに1つの章が割かれて、USBドライバ作成に関する記述が大幅に増えています。
値段が高いのが難点ですが、この書籍の情報が最も参考になるでしょう。
英語で読む労力を惜しまないならば、オンラインバージョンが用意されています。

Webページ

Writing a Simple USB Driver
簡単なUSBドライバのサンプルが英語で解説されています。
USB-CAMAC デバイスドライバ
Kernel2.4でのLinux USBドライバフレームワークの日本語解説があります。
画像が表示されなかったりしますので、メンテナンスされていないようです。

参考ソースコード

(例) KERNEL_SRC = /usr/src/linux

$(KERNEL_SRC) /drivers/usb/usb-skeleton.c
Linuxカーネルソースが提供するUSBドライバのスケルトンコードです。
$(KERNEL_SRC) /drivers/bluetooth/hci_usb.c, hci_usb.h
$(KERNEL_SRC) /include/net/bluetooth/bluetooth.h, hci_core.h
$(KERNEL_SRC) /net/bluetooth/hci_core.c
BlueZのBluetooth USBドライバと関連コードです。

それでは、とりあえず何もしない独自スケルトンコードを書いてみます。

>> 続く

 
全文表示 コメント投稿
コメント (0件) トラックバック (0件)

Bluetooth USBアダプター(Ver2.0+EDR対応)を購入

  印刷用画面 
開発

開発用にVer2.0+EDR対応のBluetooth USBアダプターを買ってしまいました。
というわけで、このプロジェクトのターゲットはVer2.0+EDR対応に!

購入したのは「PLANEX BT-Mini2EDR」という製品です。
姉妹品で「PLANEX BT-MiniEDR」というClass 1対応の物もあるのですが、開発に利用するのに電波が100mも飛ぶ必要はないのでClass 2の物にしました。

下の画像の左がClass 2、右がClass 1対応です。Class 1の方がちょっと長いです。

 
コメント投稿
コメント (0件) トラックバック (0件)

SIGからの回答

  印刷用画面 
開発

ダウンロードできない仕様書がある件で、SIGから回答がありました。
Bluetooth.com | Specification Documents
でダウンロードできるとのことです。

つまり、SIGに加入していなくても仕様書はダウンロードできるってことですね。
そして、個人でAdopterにはなれるかどうかについては、一切コメント無しです。
個人でAdopterになれないとすると、個人でBluetooth認証を取ることはできないことになります。
まぁ、個人でSIGに100万円払って認証登録する人はいないという想定は、そうなのかもしれませんが・・・。
個人でSIGに加入するメリットは、SIGからの連絡メールが受け取れるだけってことですか。

 
コメント投稿
コメント (0件) トラックバック (0件)

個人ではAdopterグループに入れない?

  印刷用画面 
開発以前はAdopterメンバーの会社に所属する形でしたが、会社を辞めたので個人でSIGメンバーに登録しました。
ところが!!そしたらほとんどの仕様書がダウンロードできなくなっていることに気付きました。

>> 続く
 
全文表示 コメント投稿
コメント (0件) トラックバック (0件)

開発準備ほぼ完了

  印刷用画面 
開発一応バージョン管理システムとしてローカルにSubversionを用意しました。

でも、ソースコードを書く段階になったら、SourceForge.jpに登録して、そちらを利用しようと考えています。
バージョン管理はCVSになってしまいますけど。

バグトラッキングシステムとしてはMantisを候補に考えていたのですが、SourceForgeを使うならサービスに含まれているので、用意するのをやめました。

それで、SourceForgeに登録するのにも必要ですし、プロジェクト名を決めようかと思っています。
今のところ候補は"Blacktooth Project"です。
純日本製のオープンソースBluetoothプロトコルスタックということで、何か日本的なものを・・・「青歯王」に対して"歯"つながりで「お歯黒」ってのはどうだろうか?
という発想です。
何か「黒」というのが悪いイメージな気もしますが・・・他に思い付かなければこれで。
 
コメント投稿
コメント (0件) トラックバック (0件)

開発工数と期間の見積り

  印刷用画面 
開発新年あけましておめでとうございます。
1年の計は元旦にあり、というわけで、もう2日ですが開発スケジュールを考えてみました。

Bluetoothに割く時間は、週10時間くらいと考えています。
2ヶ月に1回は各プロトコルやプロファイルの技術解説記事を1つ書くつもりです。
各モジュールごとに単体テストを書くものとします。

その条件で工数見積りしてみると、GAP, SPPのみのサポートで6人月くらい・・・
え、、開発期間は2年ですか。

>> 続く
 
全文表示 コメント投稿
コメント (0件) トラックバック (0件)
 Copyright © 2010 Bluetooth詳説
 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。
Powered By Geeklog & Geeklog Japanese
ページ作成時間: 0.29 秒