只今編集中です。
ZEALに内蔵されたマイコンには予めBluetoothに関する様々な制御とユーザに開放されたパラメータを設定するコマンドモードのファームウェアが収められています。更に、コードレスアダプタについては設定されたパラメータに基づいて、電源ON時から自動的に待ち受け・接続を行うモードが追加されています。
本ページではエンターキー(キャリッジリターン:0x0D)をCRと表します。またLF はラインフィード(0x0A)です。
電源を入れた際の初期状態を、アダプタに装備されたディップスイッチで変更できます。ディップスイッチの状態変更後、リセットする事で設定した起動モードに遷移します。
起動モード | DIP1-1(MODE0) | DIP1-2(MODE1) | 機能 |
通常モード | OFF(1) | OFF(1) | 起動時、端末通信速度を9600bpsにしてコマンドモードとなる |
設定モード | ON(0) | OFF(1) | 起動時の端末通信速度はBTBコマンドに従う以外は、通常モードと同様にコマンドモードとなる |
自動モード | OFF(1) | ON(0) | コマンドモードで設定されたパラメータを元に自動待ち受け・自動接続を実行する |
書込モード | ON(0) | ON(0) | ファームウェアのアップデートに使用 |
コードレスアダプタのディップスイッチが通常モードもしくは設定モードで、各種コマンドにて遷移する内部の状態です。
動作モード | 機能 |
コマンドモード | 電源投入直後、リセット直後の状態。BTコマンドを投入することができる。 |
オンラインモード | Bluetoothで接続された相手とデータ通信可能な接続状態。BTコマンドを投入することはできず、端末から入力されたシリアルデータはそのまま接続相手へ届けられ、相手から送信されたデータは端末に送出される。 |
ホールドモード | 一定時間データ転送が途切れるモード。 相手からの要求でホールドモードに移行した場合、HOLDと表示される。 自分からホールドモード突入を要求して成功した場合、実際のホールドスロット数が16進数で表示される (1スロットは0.625msec)。 設定された時間が経過してホールドモードが解除されると”TERM”リザルトを出力して、オンラインモードに移行する。 |
パークモード | 接続は維持したままでデータ通信はできない低消費電力状態。このモードではコマンドの実行が可能だが、パラメータなしの“BTQ”コマンド以外は実行しないこと。 自分から(相手から)パークモードを解除した(された)場合は“TERM”リザルトを出力して、オンラインモードに移行する。ただしBTQMコマンドで文字列を表示しない設定になっている場合は、“TERM”リザルトは表示されない。 |
エスケープモード | 相手機器との接続を維持したままコマンド入力可能にするモード。主にBluetoothの切断を行う際のBTコマンドを入力に使用される。 オンラインモードからエスケープモードへ移行するためには、ガードタイム(コマンドを一切入力しない時間)の後“@@@”を入力する。 |
スキャンエスケープモード | スキャン状態を維持したままコマンド入力可能にするモード。主にスキャンを終了する際に使用する。 スキャンモードからスキャンエスケープモードへ移行するためには、ガードタイム(コマンドを一切入力しない時間)の後”@@@”を入力する。 |
スキャンモード | 相手からのデバイス検出や接続要求に応答する。 BTコマンドは受け付けず、相手から接続されるとオンラインモードに移行する。 コマンドモードに戻るには、エスケープモードへ移行した後に“BTD”コマンドを実行してスキャン状態を解除することで行う。 スキャンモードの時に相手から接続された場合は、相手から切断された後、再びスキャンモードに戻る。ただし、自分からBTDコマンドで切断した場合は、切断後、コマンドモードに移行する。 |
スタンバイモード | 最も消費電力が少ないモードで、Bluetooth機能は停止する。 コマンドモードで“BTH”コマンドを実行すると本モードに移行する。このモードの最中に何か1バイト送信すると復帰して、“TERM”リザルトを出力しコマンドモードに戻る。なお復帰されるのに用いた1バイトは送信せず破棄される。 |
BTコマンドは、コマンドモードまたはエスケープモードの状態にあるときに入力が可能です。頭文字2文字は必ず“BT”で、続けてコマンド文字とパラメータを入力し、終端はCRを入力します。CRはキャリッジリターン(0x0D)です。その際、コマンド及びほとんどのパラメータでアルファベットを使用する際は半角大文字、数値は半角数字を使用します。
BTコマンドの入力に対してコードレスアダプタからはリザルトコードが返ります。リザルトコードはコマンドの結果を通知する文字列で、文字列の後CRLFが出力されます。LFはラインフィード(0x0A)です。
動作モード遷移図
コマンド | 機能 | パラメータ |
A | 自動着信に設定 | なし、あるいはInquiryアクセスコード |
B | ZEALとの間のビットレートの変更 | 要求するビットレート(100bps単位) |
BM | ZEALとの通信モード(パリティなど)の変更 | モードフラグの値 |
C | 接続開始 | なし、あるいはクロックオフセット |
CN | 接続先機器のユーザフレンドリ名取得 | なし、あるいはクロックオフセット |
CU | 指定したUUIDのサービスへ接続開始 | UUIDのみ、あるいはUUIDとクロックオフセット |
D | 接続切断、または自動着信の解除 | - |
DM | 切断メッセージの設定 | メッセージ文字列 |
E | 接続・非接続・Park状態の確認 | - |
F | セキュリティ等の接続条件フラグを設定 | 各種条件フラグの値 |
G | ガードタイムの変更 | ガードタイム(80ms単位10進数)10~255 |
H | スタンバイモードへ遷移 | - |
I | デバイス検出(Inquiry)を実行 | 検出する最大数(0で強制終了)0-255 またはアクセスコードと時間と最大数 |
K | 内部に保持しているリンク・キーをクリア | - |
L | 内部設定値を取得する | 取得する値を指定 |
M | 自分のBluetooth Device Addressを取得 | - |
OC | デバイスクラスを設定 | デバイスクラス |
OM | 自動モードの設定 | 自動待ち受けもしくは自動接続 |
P | 自分のBluetooth Passkey(PIN)を変更 | Bluetooth Passkey (PIN) |
Q | パークモードへの遷移/解除 | インターバル(パラメータなしで解除) |
QM | パークモード遷移メッセージの設定 | メッセージ文字列 |
QH | ホールドモードへの遷移 | インターバル |
R | エスケープモードからオンラインモードへ戻る | - |
T | 接続先情報の変更(電源を切っても有効) | Page Scan Mode, Bluetooth Device Address |
TT | 接続先情報の変更(電源を切ると無効) | Page Scan Mode, Bluetooth Device Address |
V | 各種パラメータ値の設定 | 各種パラメータ値 |
X | 機器名の設定 | 機器名 |
リザルトコード | 意味 |
ACKN | コマンド受付 |
CONN | Bluetooth接続確立 |
DISC | 切断 |
TERM | コマンドの実行終了(結果数が可変なものなど) |
NG00 | コマンドの実行失敗 |
NG01 | 未定義のコマンド |
NG04 | Baseband接続失敗(PageTimeout) |
NG05 | 認証失敗 |
NG06 | PINコードまたはキーの消失によるペアリング失敗 |
NG08 | Baseband接続失敗(ConnectionTimeout) |
NG0C | 無許可のコマンド(実行不能なモードにある場合など) |
NG10 | Baseband接続失敗(ConnectionAcceptTimeout) |
NG12 | パラメータの値が不正 |
NG30 | SDPのL2CAP接続失敗 |
NG31 | SDPのL2CAP設定失敗 |
NG32 | サーバーチャネル取得失敗 |
NG33 | SDPのL2CAP切断失敗 |
NG40 | RFCOMMのL2CAP接続失敗 |
NG41 | RFCOMMのL2CAP設定失敗 |
NG42 | RFCOMMの信号チャネル確立失敗 |
NG43 | RFCOMMのデータチャネル確立失敗 |
NG44 | RFCOMMに空いているDLCIが無い |
NG45 | RFCOMMのPNコマンド失敗 |
NG46 | RFCOMMのMSCコマンド失敗 |
デバイス検索(BTI)、内部設定値取得(BTL)、デバイスアドレスの取得(BTM)の結果はコマンド使用方法を参照してください。
パラメータ | 設定するためのコマンド |
接続先のBluetooth Device Address | T |
Bluetooth Passkey (PIN) | P |
ガードタイム | G |
認証の有無 | F |
暗号化の有無 | F |
デバイス検出(Inquiry)への応答 | F |
Master/Slaveロールスイッチ要求を許可するか? | F |
省電力機能(Park,Sniff,Hold)を利用するかどうか | F |
接続タイムアウト | V |
呼び出しタイムアウト | V |
リンクタイムアウト | V |
呼び出しスキャン時間 | V |
デバイス検出スキャン時間 | V |
フラッシュタイムアウト | V |
ボーレート | B |
シリアル通信モード | BM |
切断時メッセージ | DM |
機器名 | X |
デバイスクラス | OC |
自動モード | OM |
リンクキー | なし Kで消去 |
Park遷移メッセージ | QM |
ZEALには出荷時検査等に使用する非公開コマンドが存在します。仕様書に明記されていないコマンドを入力した際の動作は保証できません。 内部設定値はフラッシュROMに保存しています。内部設定値の変更を行うコマンドを発行した時や、リンクキーが変更されるたびに書き換えが発生します。書き換え可能回数は32万回ですが、既に設定されている値と同じ場合は書き換えを行いません。接続先を頻繁に変更するような場合は、リンクキーの書き換えが発生しないようにセキュリティーなしに設定した上で、BTTコマンドではなくBTTTコマンドを使用すると良いでしょう。 |
単体キー | 自身のリンク・キーを1つだけ保持し、全ての機器に対して同じリンク・キーを使用します。セキュリティレベルは低くなりますが、1つだけ保持すればよいのでメモリ使用量が少なくて済みます。 |
複合キー | 接続する機器ごとに別のリンク・キーを使用します。単体キーよりセキュリティレベルは高くなりますが、接続相手ごとにリンク・キーを管理する必要があり、メモリ使用量が多くなります。 |
【仮想条件】セキュリティ機能を利用せず、Bluetooth Device Address 00:09:7E:00:00:02に接続します。Page Scan ModeはR1とします。
BTF04CR
BTT100097E000002CR
BTCCR
(ガードタイムの間入力しない)
@@@
BTDCR
BTCCR
【仮想条件】セキュリティ機能を利用せず、デバイス検出には応答します。
BTF04CR
BTACR
コマンド+パラメータ | ボーレート[bps] | 内部保存値 |
BTB12CR | 1200 | 13 |
BTB24CR | 2400 | 0 |
BTB48CR | 4800 | 1 |
BTB96CR | 9600 | 3 |
BTB192CR | 19200 | 4 |
BTB384CR | 38400 | 5 |
BTB560CR | 56000 | 11 |
BTB576CR | 57600 | 6 |
BTB1152CR | 115200 | 7 |
BTB1280CR | 128000 | 12 |
BTB2304CR | 230400 | 8 |
BTB2560CR | 256000 | 10 |
BTB4608CR | 460800 | 14 |
BTB9216CR | 921600 | 15 |