本製品は2.4GHz帯の周波数を利用した無線モジュールです。接続時の相手の識別にはモジュールに予め備わっているユニークなアドレスを使用し、接続するモードは3種(Peer-to-Peer・Waiting・Broadcast)類持っていますので装置の目的に応じて選択ができます。
ZIG-100Bは次図のように既存のTTLレベルの有線シリアル通信を無線化することが可能です。
本モジュールに関しては高速で遅滞のない通信を実現できる事を前提としているため、省電力を前提とした動作は行っていません。よってバッテリ駆動で数ヶ月といったアプリケーションには向きませんのでご注意下さい。
商品番号 | BTX025 |
最大スループット | 250kbps(理論値) |
印加電圧範囲 | DC3.3V±10% (リプル及びノイズ無きこと) |
最大消費電流 | 32mA |
ホスト間I/F | TTLレベルUART (8bit data, Non Parity, 1 stop bit) |
ホスト間ボーレート | 3600~921600bps |
周波数 | 2.4GHz帯 (2405-2480MHz 5MHz間隔16波) |
空中線利得 | 2.2dBi |
空中線電力 | 0.05mW/MHz |
変調方式 | O-QPSK(Offset-Quadrature Phase Shift Keying) |
拡散方式 | DSSS(Direct Sequence Spread Spectrum) |
占有周波数帯域幅 | 2.906MHz |
拡散帯域幅 | 1.703MHz |
スペクトラム拡散率 | 27.254 |
外形寸法 | L26.5×W19×H6(ピンヘッダ部を除く)mm |
本体重量 | 約3g |
付属品 | ZIG-100B本体 x1 4ピン1列メスヘッダ(CB39042V100) x2 |
環境配慮 | 鉛フリー半田 |
端子 | 名称 | 備考 | I/O |
1 | GND | 電源及びシグナルGND | - |
2 | VCC | DC3.3Vを接続 | - |
3 | STATUS | 接続状態 | O |
4 | RESET# | ZIG-100Bをリブートまたは設定モードに移行する際に使用 | I |
5 | CHANNEL_SEL1 | Broadcastingモードで使用 | I |
6 | CHANNEL_SEL2 | Broadcastingモードで使用 | I |
7 | TxD | 送信データ | O |
8 | RxD | 受信データ | I |
※端子間ピッチは2.5mm
※4,5,6番端子は20~50kΩ程度でプルアップ済
※3,7番端子はプッシュプル出力
現在の所3つの接続方法が用意されています。
最低限ZIG-100Bの電源及びTXD・RXD端子をホストの回路へ接続します。なお3~8ピンは全て3.3Vレベルのロジックとなりますので、動作電圧が異なるホストへの接続時はレベル変換措置等が必要となります。
また、ZIG-100Bは動作中の消費電流の変動が大きいため、状況に応じて適切なデカップリングコンデンサを電源端子近傍に装備する事を推奨します。電源電圧が安定していないと接続性に影響します。
以下の設定モードで変更された情報は以後の動作モードに即時反映されます。また変更と同時にZIG-100B内の不揮発メモリに保持され、パワーサイクル時には毎回保持された情報で起動します。
先程の回路を介してZIG-100BをPCの任意のCOMポートに接続します。シリアルターミナルプログラム(WindowsのハイパーターミナルやTera Term、GCC Developer Liteに付属のSIMPLE TERM等)において使用するCOMポートのプロパティを57600bps・パリティなし・1ストップビット・フロー制御なしに設定し、COMポートを開きます。
ZIG-100Bのリセット後60ms以内に「!」の文字をZIG-100Bへ送信すると(シリアルターミナル上で「!」を押しながらリセットボタンを操作すると切り替わりやすいです)次のように設定値が表示されZIG-100Bが設定モードに入ります。
[Robotis Zigbee Monitor] Baudrate :0F -> 57600 My ID. :1234 Dest.Addr:FFFF Command- (I)nfo, (D)est, Addr/(B)aud, (W)ait mode, (E)xit
設定モードで「i」を入力すると現在のZIG-100Bの設定を確認することができます。
なお設定値の入力には値は半角英数字のみを扱い、全て16進数で入力します。
※以後の説明文中のイタリック文字は16進数を意味します。
ZIG-100Bとホスト間の通信速度を設定するには設定モードで「b」を入力します。Baudrateの計算式は
Baudrate = 921600 / ( value + 1 )
value: Divider factor
となりますが、ZIG-100Bにおいてはvalue(分周値)を設定しますのでBaudrateからvalueを逆算してください。
value = ( 921600 / Baudrate ) – 1
で求まります。valueは必ず2桁の16進数で入力してください。参考までに主要Baudrateに対するvalueを次表に示します。
Baudrate[bps] | value |
9600 | 5F |
14400 | 3F |
19200 | 2F |
28800 | 1F |
38400 | 17 |
57600 | 0F |
115200 | 07 |
230400 | 03 |
これ以外のBaudrateにおいては誤差が生じます。またBaudrateはZIG-100Bと接続されるホスト間との通信速度のみを設定するものであり、無線化される機器同士の通信速度を一致させなくても通信が可能になります。
[Robotis Zigbee Monitor] Baudrate :0F -> 57600 My ID. :1234 Dest.Addr:FFFF Command- (I)nfo, (D)est, Addr/(B)aud, (W)ait mode, (E)xit !b Change Baud Rate.(921600/x)-1 (x:target baud) Ex) 9600-0x5F, 57600-0x0F, 115200-0x07:07 !i [Robotis Zigbee Monitor] Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:FFFF
ZIG-100Bの最も基本となる動作モードで、他のZIG-100Bと1対1で通信を行います。予め決められたZIG-100B同士でのみ接続が行われるため、意図しない相手に接続するといったことはありません。
ターミナルプログラムでZIG-100Bを設定モードにした状態で「d」を押すと接続先アドレス(Dest.Addr)を変更することができます。ここにPeer-to-Peerで通信する相手のアドレスを、必ず4桁の16進数で入力します。またもう一方のZIG-100Bの接続先アドレスにも他方のZIG-100Bのアドレスを入力します。なおいずれのZIG-100Bも後述のWaitingモードがNOに設定されていなくてはなりません。
例えばアドレス000Aとアドレス000FのZIG-100BをPeer-to-Peerモードで通信させる場合は、アドレス000Aの接続先アドレスに000Fを入力し、アドレス000Fの接続先アドレスに000Aを入力します。
設定が終わったら両ZIG-100Bをリセットし、接続が行われるか確認します。接続試行中はLEDが素早く点滅し、接続が完了すると点灯に変化します。
[Robotis Zigbee Monitor] Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:FFFF Command- (I)nfo, (D)est, Addr/(B)aud, (W)ait mode, (E)xit !d Change Destination Address to:5678 !i [Robotis Zigbee Monitor] Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:5678 Wait Mode:NO
Waitingモードは待ち受け専用モードで、接続を要求してくるZIG-100B(Peer-to-Peerモード)の接続先アドレスを特定しません。一つの装置が排他的に複数の装置から接続される場合に有用です。
ターミナルプログラムでZIG-100Bを設定モードにした状態で「w」を押すことで、Waitingモード(設定画面上ではWait Mode)の可(YES)否(NO)がトグルで切り替わります。Waitingモードに設定するには接続先アドレスがFFFF以外(FFFF以外であれば何でも構いません)に設定されている必要があります。接続先アドレスがFFFFになっている(後述のBoradcastingモード)とWaitingモードの設定ができず、設定画面上にも「Wait Mode」の表示が消えます。
接続を要求するZIG-100Bは1:1モード(WaitingモードをNO)にし、Waitingモードに設定されたZIG-100Bのアドレスを接続先アドレスに設定します。Waitingモードに設定されたZIG-100BのLEDはゆっくり点滅し、接続が完了すると点灯に変化します。
なお接続を要求するZIG-100Bが複数台存在していても構いませんが、既に接続が完了している状態では割り込んで接続する事はできません。
[Robotis Zigbee Monitor] Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:5678 Wait Mode:NO Command- (I)nfo, (D)est, Addr/(B)aud, (W)ait mode, (E)xit !w Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:5678 Wait Mode:YES
Broadcastingモードは多数のZIG-100Bを同時に接続(N:N)して通信するモードです。接続時のネゴシエーションがないため起動から実際に通信できるまでの時間が短く、一度に複数の相手に同じ情報を送ることができます。
ターミナルプログラムでZIG-100Bを設定モードにした状態で「d」を押し、接続先アドレスをFFFFに設定することでBroadcastingモードに設定されます。Broadcastingモードに設定されたZIG-100Bは他のZIG-100Bが送信する全てのパケットを受信します。
Broadcastingモードでは通信の干渉を避けるため5pin(CHANNEL_SEL1)・6pin(CHANNEL_SEL2)の論理の組み合わせでにハードウェア的に4つのチャネル設定が可能です。これらの端子がオープンの場合は内部プルアップ抵抗にてHIGHに固定されます。
Broadcastingモード中はステータスLEDが点灯するため、接続の完了は実際に通信を行って判断する他ありません。また送信元やリソースの他的利用はホスト側のアプリケーションにて実現してください。
[Robotis Zigbee Monitor] Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:5678 Wait Mode:YES Command- (I)nfo, (D)est, Addr/(B)aud, (W)ait mode, (E)xit !d Change Destination Address to:FFFF !i [Robotis Zigbee Monitor] Baudrate :07 -> 115200 My ID. :1234 Dest.Addr:FFFF
ZIG-100Bは16のチャネル(ch11(2405MHz)~ch26(2480MHz))を使用します。各チャネルは以下の機能に予め割り当てられています。
Peer-to-Peerモードでは無線の干渉を軽減するために、まずチャネルスキャンを行い空いている又は最も混雑度が低いチャネルで接続を行います。次図にPeer-to-Peerモードの手順を示します。
Peer-to-Peerモードでは混信防止のためにチャネルマスクを設定することができます。チャネルマスクは先のチャネルスキャン時に指定以外のチャネルをスキャンしません。チャネルマスクレジスタとチャネルのアサインは次表の通りです。
Bit | 15~12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
チャネル | - | 22 | 21 | 20 | 19 | 19 | 17 | 16 | 15 | 14 | 13 | 12 | 11 |
ターミナルプログラムでZIG-100Bを設定モードにした状態で「r」を押すことで、現在のチャネルマスクレジスタが確認できます。初期値はFFFF(全チャネルスキャン対象)に設定されています。更に「c」を押すことで値を変更できます。例えばch15/ch20(2425/2450MHz)のみで接続を行いたい場合は0210 (Bit4/Bit9のみ1)に設定します。この場合ch15→ch20の順にスキャンされます。 チャネルマスクレジスタを0000に設定すると、ch11(2405MHz)でのみ接続を行います。なおBroadcastingモードにはチャネルマスクは適用されません。