ページへ戻る

− Links

 印刷 

ZEALコマンド :: Besttechnology

knowledge:ZEALコマンド

只今編集中です。

ページ内コンテンツ
    • 概要
    • モード
      • 起動モード
      • 動作モード
    • コマンド等一覧
      • コマンド
      • リザルトコード
      • 内部保持パラメータ
    • 用語解説
    • コマンドモードからの簡単な利用法
      • クライアント(マスター)として利用
      • サーバー(スレーブ)として利用
    • BTコマンド詳細
      • Aコマンド
      • Bコマンド
      • BMコマンド

概要 anchor.png[1]

ZEALに内蔵されたマイコンには予めBluetoothに関する様々な制御とユーザに開放されたパラメータを設定するコマンドモードのファームウェアが収められています。更に、コードレスアダプタについては設定されたパラメータに基づいて、電源ON時から自動的に待ち受け・接続を行うモードが追加されています。

本ページではエンターキー(キャリッジリターン:0x0D)をCRと表します。またLF はラインフィード(0x0A)です。

Page Top

モード anchor.png[2]

Page Top

起動モード anchor.png[3]

電源を入れた際の初期状態を、アダプタに装備されたディップスイッチで変更できます。ディップスイッチの状態変更後、リセットする事で設定した起動モードに遷移します。

起動モードDIP1-1(MODE0)DIP1-2(MODE1)機能
通常モードOFF(1)OFF(1)起動時、端末通信速度を9600bpsにしてコマンドモードとなる
設定モードON(0)OFF(1)起動時の端末通信速度はBTBコマンドに従う以外は、通常モードと同様にコマンドモードとなる
自動モードOFF(1)ON(0)コマンドモードで設定されたパラメータを元に自動待ち受け・自動接続を実行する
書込モードON(0)ON(0)ファームウェアのアップデートに使用
Page Top

動作モード anchor.png[4]

コードレスアダプタのディップスイッチが通常モードもしくは設定モードで、各種コマンドにて遷移する内部の状態です。

動作モード機能
コマンドモード電源投入直後、リセット直後の状態。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)です。

動作モード遷移図

[添付]
  • [CONN]や[DISK],[TERM]はリザルトを表します。
  • [???]はユーザ定義の文字列を表します。
  • [インターバル]は省電力モードのインターバルが16進数で表示されます。
  • 相手から切断された場合や相手からパーク解除された場合には、前のモードに戻ります。
  • 省電力モードから抜けると前の状態に関わらず、オンラインモードに遷移します。
Page Top

コマンド等一覧 anchor.png[5]

Page Top

コマンド anchor.png[6]

コマンド機能パラメータ
A自動着信に設定なし、あるいはInquiryアクセスコード
BZEALとの間のビットレートの変更要求するビットレート(100bps単位)
BMZEALとの通信モード(パリティなど)の変更モードフラグの値
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機器名の設定機器名
Page Top

リザルトコード anchor.png[7]

リザルトコード意味
ACKNコマンド受付
CONNBluetooth接続確立
DISC切断
TERMコマンドの実行終了(結果数が可変なものなど)
NG00コマンドの実行失敗
NG01未定義のコマンド
NG04Baseband接続失敗(PageTimeout)
NG05認証失敗
NG06PINコードまたはキーの消失によるペアリング失敗
NG08Baseband接続失敗(ConnectionTimeout)
NG0C無許可のコマンド(実行不能なモードにある場合など)
NG10Baseband接続失敗(ConnectionAcceptTimeout)
NG12パラメータの値が不正
NG30SDPのL2CAP接続失敗
NG31SDPのL2CAP設定失敗
NG32サーバーチャネル取得失敗
NG33SDPのL2CAP切断失敗
NG40RFCOMMのL2CAP接続失敗
NG41RFCOMMのL2CAP設定失敗
NG42RFCOMMの信号チャネル確立失敗
NG43RFCOMMのデータチャネル確立失敗
NG44RFCOMMに空いているDLCIが無い
NG45RFCOMMのPNコマンド失敗
NG46RFCOMMのMSCコマンド失敗

デバイス検索(BTI)、内部設定値取得(BTL)、デバイスアドレスの取得(BTM)の結果はコマンド使用方法を参照してください。

Page Top

内部保持パラメータ anchor.png[8]

パラメータ設定するためのコマンド
接続先のBluetooth Device AddressT
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
  :idea:ZEALには出荷時検査等に使用する非公開コマンドが存在します。仕様書に明記されていないコマンドを入力した際の動作は保証できません。
内部設定値はフラッシュROMに保存しています。内部設定値の変更を行うコマンドを発行した時や、リンクキーが変更されるたびに書き換えが発生します。書き換え可能回数は32万回ですが、既に設定されている値と同じ場合は書き換えを行いません。接続先を頻繁に変更するような場合は、リンクキーの書き換えが発生しないようにセキュリティーなしに設定した上で、BTTコマンドではなくBTTTコマンドを使用すると良いでしょう。
Page Top

用語解説 anchor.png[9]

  • Bluetooth Device Address (BD_ADDR)
    機器を識別するための48bitのアドレス。
  • デバイス検出 (Inquiry)
    通信可能圏内にあるBluetooth機器を検索します。接続する相手のBluetooth Device Addressがわからない場合には、最初にデバイス検出を行い、相手のBluetooth Device Addressを取得します(接続に使うPage Scan Modeも取得します)。

    デバイス検出の説明図
    [添付]
  • 呼び出し (Page)
    Bluetoothはベースバンド接続を行う際に、相手機器のデバイス・アクセス・コード(Bluetooth Device Addressの一部)を含むページ列と呼ばれる信号を送信します。待ち受け状態にある機器がこの信号を受信すると応答を返し、接続が始まります。

    呼び出しの説明図
    [添付]
  • 呼び出しスキャン (Page Scan)
    相手からの呼び出し(Page)を待ち受けること。自分のデバイス・アクセス・コードを含むページ列を検出すると応答を返します。スキャンを行う時間を呼び出しスキャン時間(Page Scan Window)で設定でき、この時間が長いほど接続しやすくなりますが、待ち受け時の消費電力は増加します。
  • 呼び出しスキャンモード (Page Scan Mode)
    呼び出しスキャンにはR0, R1, R2の3つのモードがあり、呼び出す側は相手に合わせて適切なモードを利用しなければ正しい呼び出しが行えません。利用すべきモードはデバイス検出(Inquiry)で得られます。ZEALを呼び出すときはR1を利用します。相手のモードがわからない場合には、R2を利用することで接続可能になりますが呼び出し時間が長くなります。
  • デバイス検出スキャン (Inquiry Scan)
    相手からのデバイス検出(Inquiry)を待ち受けること。スキャンを行う時間をデバイス検出スキャン時間(Inquiry Scan Window)で設定でき、この時間が長いほど検出されやすくなりますが、待ち受け時の消費電力は増加します。接続相手が決まっているような用途では、デバイス検出スキャンを行わない設定にすることで待ち受け時の消費電力を低減できます(デバイス検出スキャンを行うかどうかはBTFコマンドで設定)。
  • 限定検出モード(Limited Discoverable Mode)
    デバイス検出を待ち受ける際に、通常利用するアクセスコードであるGIAC(Generic Inquiry Access Code)の他にLIAC(Limited Inquiry Access Code)を利用してデバイス検出スキャンを行います。このモードでデバイス検出スキャンを行っている機器を発見するためには、GIACを利用するか、またはLIACを利用してデバイス検出を行います。LIACを用いてデバイス検出を行った場合、同じLIACを使ってデバイス検出スキャンを行っている機器以外は発見されません。多くのBluetooth機器が周りにある場合に、特定の機器だけを見つけたいという場合の利用が考えられます。
  • Bluetooth Passkey (PIN)
    機器の認証に用いる最大16バイトのパスワード。相手機器と同じBluetooth Passkeyを入力することで、認証をパスします。一度認証が行われるとリンク・キーが生成され、これをお互いが保持することで、次回からの接続ではBluetooth Passkeyの入力は行わずに認証が可能になります。セキュリティで保護されているため、他者に無線で盗み見られることはありません。
  • 認証 (Authentication)
    Bluetooth端末間のセキュリティはリンク・キーで管理されており、このリンク・キーは第三者に開示されてはならないことになっています。初めて接続する機器の場合は、Bluetooth Passkeyを入力することでリンク・キーを作成します。リンク・キーには2種類あり、以下の特長があります。
    単体キー自身のリンク・キーを1つだけ保持し、全ての機器に対して同じリンク・キーを使用します。セキュリティレベルは低くなりますが、1つだけ保持すればよいのでメモリ使用量が少なくて済みます。
    複合キー接続する機器ごとに別のリンク・キーを使用します。単体キーよりセキュリティレベルは高くなりますが、接続相手ごとにリンク・キーを管理する必要があり、メモリ使用量が多くなります。
    ZEALでは複合キーを用い、最近接続した機器1つ分のリンク・キーのみを保持します。1度他の機器と認証を行うと以前のリンク・キーを失うので、以前の機器と認証する際には再びBluetooth Passkeyの交換を行います。
  • 暗号化(Encryption)
    Bluetoothには通信データを暗号化する機能があり、ZEALはセキュリティ・モード3(リンクレベル強制セキュリティ)をサポートしています。暗号化の利用には認証を通過していることが必須条件です。暗号化を利用する場合はBTFコマンドで暗号化とともに認証もONにしてください(セキュリティ・モード2サービスレベル強制セキュリティは未サポート)。
  • デバイスクラス(Class of Device)
    デバイスが主にどのようなサービスを提供し、どのようなタイプの機器化を表す24bitの値です。主にPCやPDAなどのプロトコルスタックにて、検出した機器のアイコン表示に使用されます。
    Zealにおいては特に接続に必要な情報ではありません。
  • パークモード(Park Mode)
    Bluetoothの仕様で定められた低消費電力モードの1つで、接続が維持できる一定間隔でマスター側がビーコンをスレーブに送信する以外にデータ通信はしません。これにより接続を維持しつつ消費電力が抑えます。
    ビーコンを送信するインターバルを長くすると消費電力は減りますが、復帰にかかる時間が長くなり、あまり長くしすぎると接続を維持できない場合もあります。Zealでは2秒のインターバルが最長です。
  • ホールドモード(Hold Mode)
    データ通信を一定時間(ホールドインターバル)停止するモード。マスター側とスレーブ側でホールドインターバルを交渉して決定した時間だけACLリンクが途切れます。ZEALではホールドインターバルは2秒が最長です。
Page Top

コマンドモードからの簡単な利用法 anchor.png[10]

ここで行う作業をした場合、出荷時の設定が変更されます。ご注意ください。

Page Top

クライアント(マスター)として利用 anchor.png[11]

【仮想条件】セキュリティ機能を利用せず、Bluetooth Device Address 00:09:7E:00:00:02に接続します。Page Scan ModeはR1とします。

  1. 接続時にセキュリティ機能を利用しない設定にします。

    BTF04CR

  2. 接続相手を設定します。

    BTT100097E000002CR

  3. 接続を開始します。

    BTCCR

  4. 切断します。

    (ガードタイムの間入力しない)
    @@@
    BTDCR

  5. 再接続します。 セキュリティや接続相手の設定は電源を切っても保持されているので、次回の接続からは再設定は必要ありません。

    BTCCR

Page Top

サーバー(スレーブ)として利用 anchor.png[12]

【仮想条件】セキュリティ機能を利用せず、デバイス検出には応答します。

  1. 接続時にセキュリティを利用せず、デバイス検出には応答する設定にします。

    BTF04CR

  2. 待ち受け状態にします。

    BTACR

  3. 他のBluetooth機器から接続されると“CONN”が表示され、接続が確立します。
Page Top

BTコマンド詳細 anchor.png[13]

Page Top

Aコマンド anchor.png[14]

  • 動作
    待ち受け状態に設定します。スキャンが開始され、相手からのデバイス検出(Inquiry)や呼び出し(Page)に応答します。接続が途中でうまくいかなかったり切断されたりした場合、再びスキャン状態になります。待ち受け状態でデバイス検出に応答するかどうかは”BTF”コマンドで設定が可能です。
    スキャン中に送信したデータは、ガードタイム後の”@@@”以外は無視されます。
    パラメータを指定することで、限定検出モードでデバイス検出スキャンを行うことができます。ただしBTFコマンドでデバイス検出に応答する設定になっている場合にのみ有効です。
    Bluetooth仕様書の記述によると、限定検出モードではGIACでの通常Inquiryにも応答すべきとされています。パラメータを指定する場合は、2つのアクセスコードの一方にGIACを含めるようにしてください。
  • パラメータ
    なし、またはデバイス検出で利用するアクセスコード(0x9E8B00-0x9E8B3F)の下位1バイトを1つか2つ。 パラメータを省略した場合、以前に設定したアクセスコードを利用します。起動後はGIACのみを利用する設定になっています。

  • BTACR : (以前に使ったアクセスコードでスキャン、起動時はGIACのみ)
    BTA3300CR : (GIACとLIAC=0x9E8B00でスキャン)
    BTA33CR : (GIACのみでスキャン)
  • 結果
    ACKNCRLF : 設定完了
    CONNCRLF : 相手からの接続を通知
    NGG00CRLF : 待ち受け状態への移行に失敗
Page Top

Bコマンド anchor.png[15]

  • 動作
    ZEALとの間のボーレートを設定します。設定値は電源を切っても保持されますが、起動モードが通常モードのときは内部設定値に関わらず必ず9600bpsで起動します。従って9600bps以外の値で通信する時は、このコマンドで毎回ボーレートを設定してください。
    リザルトコードを変更前のボーレートで送信した後、指定したボーレートに変更されます。
    ボーレートの上限は921600bps(BTB9216)です。下限は1200bps(BTB12)です。PCとエバボードなどを介して接続する場合はCOMポートやUSB-RS232C変換器のドライバなどがZealに設定しようとしているボーレートに対応していることを確認してください。
  • パラメータ
    10進数100bps単位で指定します。コマンドの引数として設定ボーレートの十の位と一の位の0を省いた数字を2-4文字付加します。
  • 制約
    電源投入後、BTC、およびBTAを一度でも実行すると、その後は、ボーレート変更ができなくなります(NG0Cがかえる)。ボーレート変更は電源投入後、BTC、BTAする前に行ってください。
    自動モードでは一部のボーレートのみ利用可能です。

    自動モードで利用可能なボーレート一覧
    コマンド+パラメータボーレート[bps]内部保存値
    BTB12CR120013
    BTB24CR24000
    BTB48CR48001
    BTB96CR96003
    BTB192CR192004
    BTB384CR384005
    BTB560CR5600011
    BTB576CR576006
    BTB1152CR1152007
    BTB1280CR12800012
    BTB2304CR2304008
    BTB2560CR25600010
    BTB4608CR46080014
    BTB9216CR92160015

  • BTB96CR : ボーレートを9600bpsに設定
  • 結果
    ACKNCRLF : 設定完了 NG12CRLF : パラメータが不正 NG0CCRLF : BTA、BTCを実行したあとで、BTBした場合
Page Top

BMコマンド anchor.png[16]


Last-modified: 2010-05-07 (金) 18:19:38 (JST) (5110d) by sho