BluetoothモジュールZEALシリーズの基本的な使い方

コンプリートBluetoothモジュールなら仮想COMポートを使用することで既存のシリアル通信をBluetoothへ置き換えることができます。

コンプリートBluetoothモジュールの制御方法はカンタンです。
マイコンとBluetoothモジュールをUARTでつなぎ、マイコンからUART経由でBluetoothモジュールへシリアルデータを送るだけです。Bluetoothモジュールの制御はマイコンからATコマンドライクなテキストコマンドを送ります。Bluetooth通信が確立された後はシリアルケーブルと同じようにデータ通信が行えますので、大きなアプリケーション変更は必要ありません。

Bluetoothの基本的な接続手順

まずBluetoothの基本的な接続手順についてご説明します。
Bluetoothのシリアル通信は「電話」のかけ方によく似ています。「電話」を例に挙げ、Bluetoothと比較することでイメージがしやすくなります。

電話をかける側

電話を着信する側

電話をかける方を『マスター(Master)』、電話を着信する方を『スレーブ(Slave)』とします。

1. 電話をかける側・受ける側を決めます

Bluetoothの場合

まずマスター(接続する側の機器)スレーブ(接続される側の機器)という役割を決めます。

2. 電源を入れ、圏内であることを確認します。

Bluetoothの場合

スレーブ側を待ち受け状態にします。

ZEALの場合
スレーブ側で「BTA(接続待ち受け)」コマンドを実行

3. 電話番号を教えてもらいます。事前に番号を知っていれば教えてもらう必要はありません。

Bluetoothの場合

マスター機器から周囲にあるスレーブ機器を「検索」し、スレーブ機器のBDアドレスを取得します(「検索」は必ずしも行う必要はありません)

ZEALの場合
マスター側で「BTI(周辺機器検索)」コマンドを実行

4. 発信先の電話番号を入力(セット)します。

Bluetoothの場合

マスター機器に接続したいスレーブ機器のBDアドレスをセットします。

ZEALの場合
マスター側で「BTT(接続先機器指定)」コマンドを実行

5. 発信ボタンを押します。

Bluetoothの場合

マスター機器から「接続」を行います。
※接続方法は機器によって異なります。

ZEALの場合
マスター側で「BTC(接続処理実行)」コマンドを実行

6. 通話状態です。双方が会話できる状態です。(しゃべったことはそのまま相手に伝わります(データ垂れ流し)。)

Bluetoothの場合

接続完了です。双方向データ通信が可能となります。Bluetooth接続が確立された後はシリアルケーブルがつながっているのと同じ状態とみなせます。
※マスターが送信側、スレーブが受信側というわけではなく、どちら側からもデータ送信・受信が可能です。

ZEALの場合
接続されると「CONN」が出力されます。

7. どちらからでも通話を終わらせることができます。

Bluetoothの場合

マスタースレーブどちらからでも切断することが可能です。

ZEALの場合
切断したい機器の方から「BTD(切断)」コマンドを実行。切断されると「DISC」が出力されます。

着信拒否設定をする場合

基本的にスレーブ側は待ち受け状態にあるなら発信を拒むことはできませんが、Passskey(PIN)認証を行うことで不特定多数からの接続要求を回避することができます。

Bluetoothの場合

両方の機器に同一のPasskey(PIN)を入力します。(※Passkeyが固定、あるいは入力不要な機器もあります。)

ZEALの場合
「BTP」コマンドでPasskey(PIN)をセット「認証アリ」にするには「BTF(各種設定)」コマンド

このひとつの通話(ペア)がRS232Cに置き換わるとお考えください。
あくまで通話もBluetooth通信も1対1が基本です。

マスター側スレーブ側へ電話を発信することで通話が確立されます。

  • 電話がつながれば双方が会話ができるようになります(Bluetooth接続後は双方向通信)
  • しゃべった言葉はそのまま相手に伝わります(入力したデータはそのままの形で出力されます)
  • どちらからでも通話を終了することができます(どちらの機器からでもBluetooth切断可能)

Q. Bluetoothは1対多接続はできないの?

A.最大1対7通信が可能。ただし、それぞれの通信は独立しているため扱いには注意が必要です。
(ブロードキャストではありません)。

例えるなら一人のマスターが電話機を7台持って、7人のスレーブと同時通話している状態です。それぞれの通話は独立しており、1対1通信が7本あるイメージです。 スレーブ台数分のCOMポートを操作します。
※マスター側は時分割の処理となるため、接続本数が増えると通信が遅くなることがあります。

ZEALとマイコンとの接続方法

ZEALとマイコンは、UART(Universal Asynchronous Receiver Transmitter)で接続をします。UART機能搭載のマイコンであれば容易に接続し通信を行うことができます。
BluetoothのSPP通信はハードウェアフロー制御が必須仕様です。

コネクタ信号表

信号名
ピン番号
信号名
GND
1
2
GND
GND
3
4
DSI(※2)
RESET
5
6
7
8
9
10
11
12
13
14
VDD
VDD
15
16
VDD
VDD
17
18
CTS
19
20
BOOT0(※1)
TX
21
22
BOOT1(※1)
RX
23
24
MODE0
RTS
25
26
MODE1
STO
27
28
GND
GND
29
30
GND

(※1)ZEAL-C01のみ (※2)ZEAL-C02のみ (※3)信号名の記載なきピンは未接続

信号説明

信号名 I/O 機能 論理 説明
VDD
電源
3.0V~3.6Vを接続します。
GND
電源
グラウンドに接続します。
RESET
I
リセット
LOWを入力するとモジュールがリセットされます。モジュール内部にリセットICを搭載しているため、明示的に外部よりリセットを行いたい場合に接続し使用します。C01とS01で内部の接続が異なっているため詳細は「リセット」の項を参照してください。
MODE[0:1]
I
モード
電源入力(リセット)時のピンの状態(HIGH/LOW)により起動モードが決まります。

MODE0 MODE1 起動モード
HIGH
HIGH
通常モード
LOW
HIGH
設定値起動モード
HIGH
LOW
自動モード
LOW
LOW
ファームウェア書換モード

C01は51KΩで内部プルアップされています。S01はI/O設定によりプルアップされています。このため通常モードで起動する場合には未接続で問題ありません。モードピンをLOWにしたい場合にGNDに接続してください。マイコンで制御する場合には、I/OピンによりLOW/HIGHを入力してください。
※モードの詳細はコマンド仕様書確認ください。

TX
O
送信データ
ZEALからのUART送信データです。
RX
I
送信データ
ZEALへのUART受信データです。
RTS
O
送信要求
ZEALからのUART送信要求信号です。
CTS
I
送信許可
ZEALへのUART送信許可信号です。
STO
O
ステータス
コマンド設定によりステータス接続を出力することができます。接続時LOW、未接続時HIGHとなります。工場出荷時はステータスを出さない設定になっており、常時HIGHを出力しています。
※使用方法はコマンド仕様書確認ください。
DSI(※注)
I
低電制御
低消費電力モード利用時、この制御ピンが有効となります。LOWを入力するとディープスリープ状態に入ります。ZEALのUART(RX)にデータ(コマンド)入力する際にはHIGHに戻します。
※ 詳細はコマンドリファレンス参照
BOOT[0:1]
I
ブート
C01のみに存在するピンです。GNDに接続してください。S01とC01を差し換えて使用する場合にもGNDに接続してください。

 

リセット

ZEAL-C02リセット回路
Bluetoothチップ内部のPower on Reset回路と接続されています。
チップ内部にてプルアップされています。
ZEAL-C01リセット回路
C01はオープンドレインアウトプットのリセットICを搭載しており、
外部コネクタのRESETピンとマイコンのリセットピンが接続されております。
このためマイコンのI/O等で制御を行う場合には、
オープンドレインバッファを使用してください。
ZEAL-S01リセット回路
S01のリセット信号は、内部リセットICのVDDに接続されており、
1KΩにてプルアップされております。

接続例

ZEAL-C02接続例
ZEAL-C01, ZEAL-S01接続例
  • RESETは明示的にリセットしたい場合に接続、この例では未接続としてあります。
  • MODEはディップスイッチで切り替えられる例、外付けでプルアップ等は不要です。
  • BOOTはC01を使用する場合にはGNDに接続してください。
    S01は未接続で問題ありません。C01を搭載する可能性がある場合にはGNDに接続します。
  • STOは、接続のステータスをマイコンで読み出したい場合等にI/Oピンと接続します。

UARTのマイコン接続例

ZEAL UART 信号説明
ピン番号 信号名 I/O 機能 論理 説明
21
TX
O
送信データ
ZEALが送信するデータ
(マイコンが受信するデータ)
23
RX
I
受信データ
ZEALが受信するデータ
(マイコンが送信するデータ)
25
RTS
O
送信要求
ZEALが受信可能な時にLOWを出力
(マイコンはLOWの時データ出力可)
19
CTS
I
送信可
ZEALはLOWの時データ出力可
(マイコンが受信可能な時にLOWを出力)
UARTのマイコン接続例

フロー制御なし(非推奨)で使用する場合にはZEALのRTSはオープン、CTSはGNDにしてください。

ただしBluetoothのSPP(シリアルポートプロファイル)はハードウェアフロー制御が前提の仕様になっているため、フロー制御なしでご利用の場合、電波環境の悪化等によりデータの取りこぼしが発生してしまう可能性があります。また、ZEAL自身もハードウェアフロー制御を前提とした仕様となっており、フロー制御なしでご利用の場合、一部機能が正常に機能しなかったり、予期せぬ動作を起こしてしまう場合がありますのでご注意ください。フロー制御なしでのご利用はその点予めご了承ください。

接続相手

  • ZEAL同士(別モデル間通信可能)
  • 各種Bluetooth製品(ただしSPPプロファイル搭載製品に限る)
    • 例)Bluetooth内蔵PC(外付けUSBタイプのBluetoothアダプタ)、ハンディターミナル、ハンディプリンタ、PDA

起動モード

ZEALには用途に応じた4つの起動モードをご用意しております。
各起動モードはZEALのモードピンおよびDIPSWにて切り替えます。

MODE0 MODE1 DIPSW2 DIPSW1
通常モード
HIGH
HIGH
OFF
OFF
設定値起動モード
LOW
HIGH
OFF
ON
自動(接続 / 待受 / DUN)モード
HIGH
LOW
ON
OFF
ファームウェア書換モード
LOW
LOW
ON
ON

通常モード

電源投入後、デフォルトのシリアル設定で起動し、コマンド状態となります。
※デフォルトシリアル設定 9,600bps, データ8, ストップ1, パリティなし

設定値起動モード

電源投入後、あらかじめユーザによって設定されたシリアル設定値で起動し、コマンド状態となります。

自動モード

自動モードには「自動待受モード(スレーブ側)」「自動接続モード(マスター側)」「自動DUNモード」があります。電源投入後、あらかじめユーザによって設定されたシリアル設定値で起動し、自動接続モードの場合はマスター側として自動で相手機器への接続を行います(事前に相手機器のBDアドレス設定が必要です)。自動待受モードの場合は起動後、スレーブ側として自動でスキャン状態となり、マスター機器からの接続を待ちます。

ファームウェア書換モード

ファームウェアを書き換える際に利用します(通常利用時には使用しません)。
ファームウェア書換には当社専用ツールが必要です。

動作状態

動作状態遷移図
動作状態遷移図

ZEALは状況に応じて複数の「状態」に遷移します。各状態によって振る舞いが異なります。オンライン状態がいわゆる「シリアルケーブルがつながっているのと同じ状態」です。 上位アプリケーションからコマンドを実行し、ZEALの状態を制御してください。

コマンド状態

電源投入後、ZEALがコマンドを実行できる状態です。この状態ではまだBluetoothのシリアルデータ通信は行えません。 ZEALへ送られるデータは全てコマンドとして認識します(送られるデータがコマンドと一致しない場合は破棄されます)。

スキャン状態

ZEALがスレーブ側機器として、相手マスター機器からのデバイス検索や接続要求を待っている状態です。

オンライン状態

Bluetooth接続が確立され、シリアルデータ通信が可能となる状態です。オンライン状態時にはコマンド実行が不可能となり、 ZEALへ送られるデータは全てシリアルデータとして相手機器へ送られます。

(マスター・スレーブ)エスケープ状態

相手機器とのBluetooth接続を維持したままコマンド入力が可能となる状態です。主に切断する際に使用します。

スキャンエスケープ状態

スキャン状態を維持したままコマンド入力が可能となる状態です。主にスキャンを終了する際に使用します。

主要コマンド

ZEALはマスター・スレーブどちらでも使用可能です。上位アプリケーションからコマンド操作にてZEALを制御し、上述した各種「動作状態」へ移行させてください。
尚、下記に掲載されていないコマンドや各種コマンドの詳細、使用方法についてはZEALコマンドリファレンスをご参照ください。

マスターとして使用

BTLT ※必須

接続相手となるスレーブ機器のBDアドレスをセットするコマンドです。

BTC ※必須

BTTでセットされたスレーブ機器へ接続要求を行うコマンドです。

BTI

周囲に存在する(スキャン状態の)Bluetooth機器を検索するコマンドです。「検索」は特定の機器がスキャン状態にあるかの確認や、接続先相手機器のBDアドレスが不明なときにBDアドレス取得を目的として行います。毎度行う必要はありません。

スレーブとして使用

BTA ※必須

ZEALをスレーブ機器としてスキャン状態にするコマンドです。

共通

BTD

ZEALをオンライン状態、もしくはスキャン状態からコマンド状態へ解除するコマンドです。
「BTD」を実行するためには、一旦エスケープ状態(もしくはスキャンエスケープ状態)に移行させてください。

BTLO

自動モードの切替(自動接続モード or 自動待受モード)を設定するコマンドです。

BTLB

ボーレートを変更するコマンドです。

BTM

(コマンド実行された)ZEAL自身のBDアドレスを表示するコマンドです。

BTY

ZEALの各種設定を出荷時状態へ戻す初期化コマンドです。

わからないことはご遠慮なくお問い合わせください

auther詳しいご利用方法は各種マニュアルをご参照ください。
それでもわからないことがございましたら、ご遠慮なくカスタマーサポート担当 清水までお尋ねください。もちろん技術的なご質問はご購入前でも承っております。