IEEE 802.15.4を用いた「ZigBee」と「6LoWPAN」の基礎知識:製造業のIoTスペシャリストを目指そうSeason2(5)(1/2 ページ)
製造業でIoTを導入したプロジェクトを成功させるには、幅広い知識が必要です。今回は、IoTのセンサーネットワークとして用いられるIEEE 802.15.4準拠の通信プロトコル「ZigBee」と「6LoWPAN」について取り上げます。
IEEE 802.15.4
低消費電力のセンサーネットワークが、温度データを広範囲に取得する用途などに用いられます。電池交換なしで1年間使えるなど、使い勝手が良いからです。
このような用途に用いられる代表的なプロトコルに「ZigBee」があります。ZigBeeは、IEEE 802.15.4に準拠した通信プロトコルで、2.4GHzの電波を用いて、接続距離100m程度で最大6万5535ノードを接続します。転送速度は20〜250Kbpsです。
同じIEEE 802.15.4を用いた通信プロトコルに「6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)」があります。これはセンサーネットワーク内のノードでTCP/IPのIPv6アドレスに準拠したアドレスを用いるもので、インターネットとの親和性に優れているといわれています。なお、ZigBeeは独自のアドレスを用いてアクセスします。
IEEE 802.15.4は、物理層とメディアアクセス層(OSIのデータリンク層)の規格です。その最大パケット長は127octetsです。それに対し、IPv6の最短データ長(minimum MTU)は1280octersであり、ヘッダサイズだけでも40octetsあります。そのままでは効率良く伝送できないので、ヘッダを圧縮したり、パケットを分割したりするために6LoWPANが開発されました。
逆にパケットサイズを大きくすれば、IPv6を効率良く転送できます。それが、IEEE 802.15.4gです。最大パケット長が2048octetsのIEEE 802.15.4gは東京電力のスマートメーターで用いられる「Wi-SUN(Wireless Smart Utility Network)」に採用されました。データリンク層には、オプション機能を追加したIEEE 802.15.4eも用いられます。
ZigBeeとXBee
ZigBeeは、消費電力を削減するために「スリープモード」があります。スリープできるノードを「エンドデバイス」と呼びます。スリープできないノードには「コーディネーター」と「ルーター」があります。ルーターはその名の通りデータを中継します。コーディネーターはPANを開始し管理します。通常は外部と接続するゲートウェイになります。これらのノードは「スター型」や「ツリー型」だけでなく、「メッシュ型」のネットワークを構築することが可能です。
エンドデバイスやルーターは電源が投入されると周囲に接続要求を行います。コーディネーターはこの接続要求を受信すると、PAN IDなどを返して接続を許可します。PAN IDを取得したルーターは、他からの接続要求にPAN IDなどを返すことができます。各ノードは、同じ周波数とPAN IDを共有します。
このZigBeeを手軽に使える製品が「XBee」(ディジ インターナショナル製)です。製品としてのXBeeには、ZigBeeのプロトコルが使える「シリーズ2」とXBee独自の簡易プロトコルを用いた「シリーズ1」があり、互換性がないのでシリーズが異なると接続できません。1対1や1対nの通信ならシリーズ1が簡単に利用できますが、コーディネーターやルーターの機能を利用するためには、ZigBeeに準拠したZB(シリーズ2)を用います。
XBeeのアンテナには、PCB(Printed Circuit Board)アンテナ、チップアンテナ、ワイヤーアンテナ、RPSMAコネクター、U.FLコネクターなどの種類があります。PCBとチップは基板上の出っ張りがほとんどないので省スペースです。ワイヤーアンテナは基板からワイヤー状のアンテナが立っています。指向性がないので使いやすいアンテナです。RPSMAとU.FLはコネクターを基盤に設定し、外部のアンテナをケーブルで接続できます。つまり、XBeeのモジュールを格納した筐体の外にアンテナを設置したい場合などに適しています。開発ではワイヤーアンテナを用いたり、具体的な製品ではコネクタータイプを用いたりするなど使い分けます。
ArduinoとXBee
XBeeをコーディネーターやルーターとして設定するために「XCTU」というユーティリティーソフトウェアを用います。XBeeは、USB経由でPCに接続できます。USBアダプターを用いてXBeeをPCに接続すれば、XCTUでXBeeを設定したり、XBeeにコマンドを送って操作したりできます。XBee単体でもセンサーやLEDを駆動することが可能なので、例えばPCに接続したXBeeから操作して、受信側のXBeeに接続したLEDを点滅させることができます。
より複雑な処理を行いたい場合は、XBeeをArduinoなどのワンボードマイコンに接続することができます。XBeeとArduinoを接続するためにはシールドと呼ばれる基盤を用います。シールドの中にはUSBアダプターと兼用になるものもあります。
画像2の(左)がUSBアダプターです。まだXBeeが実装されていません。画像2の(中央)はArduinoの基板の上に赤いシールドを介して小さなXBeeモジュールを接続しています。シールドは、Arduinoの拡張機能を実現するためのもので、ここではXBeeモジュールとのロジックレベルやピンのピッチなどを変換しています。シールドとUSBアダプターがあれば、Arduinoで測定したデータなどをPCに無線通信することができます。
画像2の(右)はUSBアダプターと兼用になるシールド上にXBeeを実装しています。これを2セット持っていると、XBeeの設定と通信が効率良くできます。どちらにしてもXBeeは2台必要です。
今回の問題
それでは、IoT関連の知識・スキルアップに役立つ問題をお届けします! 今回はIoT検定スキルマップの「デバイス−制御装置」に該当する設問となります(※)。
問題:
「ZigBee」や「6LoWPAN」などのセンサーネットワークに関する説明として“正しいもの”を1つ選びなさい。
- XBeeは、ZigBeeプロトコル専用の無線モジュールである。
- ZigBeeは、IPv6のパケットを分割したり、ヘッダを圧縮したりしたものを用いている。
- ZigBeeは、IPv6に準拠したアドレスを用いるが、6LoWPANは独自のアドレスを用いる。
- ZigBeeと6LoWPANは、物理層に共通のIEEE 802.15.4を用いるが上位のプロトコルが異なる。
※本連載の設問が実際のIoT検定にそのまま出題されるわけではありません。
Copyright © ITmedia, Inc. All Rights Reserved.