
前回はI/Oラインパッシングのひとつであるデジタルラインパッシングについて解説しました。デジタルラインパッシングには2つのモードが存在しますが、前回はDIOラインのサンプリングモードに関して解説しました。今回はもうひとつのモードである変化検出モードについて解説します。
1.変化検出モード
XBee はデジタルラインパッシングの際に変化検出機能も設定が可能です。前回解説したサンプリングモードは、送信側XBeeが一定周期でDIOラインをサンプリングし、その内容を受信側XBeeに反映させていました。変化検出モードは、DIOラインに変化が発生するたびに DIO シフトを送信する機能を有しています。デフォルトではDIOラインの変化検出が無効になっているため、XBeeは DIO ラインが変化しても送信しません。変化検出モードを有効にするためにはIC(Digital IO Change Detection)を対応する DIO ラインのビットマスクに設定します。ここで、DIO0 が LSB、DIO7 が MSB です。例えばD1を有効にするには以下の図のように対応するビットを1に設定します。

2.設定例
デジタルラインパッシングを用いたDIOラインの変化検出モードの設定例について以下に示します。送信側XBeeのD1(19番ピン)とGND間にタクトスイッチを接続し、D1とGND(10番ピン)間にLEDを接続し、送信側のタクトスイッチの情報をデジタルラインパッシングで転送する場合の設定方法を以下に示します。CHやIDの基本的なパラメータは送信側XBeeと受信側XBeeで一致しているものとします。
受信側XBeeでは受信したデジタル信号を一定時間保持するタイムアウトタイマーを設定する必要があります。タイマーは受信側XBeeで設定する必要があります。タイマーはD1に対応するT1(D1 Output Timeout)で設定します。T1タイマーが経過してもモジュールが新しいデータを受信していない場合、D1はデフォルト状態に戻ります。
以下にT1(T1 Output Timeout)の設定範囲について表にまとめます。
T1 T1 Output Timeoutの設定範囲(100ms単位)
最小 | 最大 | |
802.15.4 | 0x1(100ms) | 0xFF(25500ms) |
DigiMesh | 0x1(100ms) | 0x1770(600000ms) |
タイムアウトの時間の最大値がファームウェアにより異なるため、用途に応じてファームウェアの選定が必要であることが分かります。
【送信側XBee】
・802.15.4ファームウェアの場合
MY | 1 |
D1 | Digital Input [3] |
IC | 0x2 |
・DigiMeshファームウェアの場合
D1 | Digital Input [3] |
IC | 0x2 |
【受信側XBee】
・802.15.4ファームウェアの場合
D1 | Digital Out, Low [4] |
IA | 1(送信側のMYの値) |
T1 | 0x32 (5000ms) |
・DigiMeshファームウェアの場合
D1 | Digital Out, Low [4] |
IA | 0013A20012345678 (送信側のシリアルナンバー) |
T1 | 0x32 (5000ms) |
これらの設定がなされた後に、送信側XBeeのDIO1のタクトスイッチを押すと受信側XBeeに接続されたLEDがT1で設定した時間だけ点灯します。