Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
保存版 いまさら聞けない ZigBee          @Fantom_JAC
自己紹介●    Java で EHCI ドライバとか TCP/IP スタック    とか 802.11 スタックとか書いてたような気が    します。●    Objective-C が大好きです。
ZigBee の主な特徴●    日本で流行ってない●    802.15.4 と混同される●    Bluetooth や WiFi に押され気味●    アライアンスの年会費が高い●    仕様書の誤字脱字が多い    ●        な...
ZigBee の歴史                    ZigBee の歩み               世界の主なできごと        この頃から既存のプロトコルが M2M Half-Life リリース1998 年頃 に不向きだというこ...
スタック図
ZigBee3 大要素●    PHY/MAC    ●        この二層までが IEEE 802.15.4●    NWK    ●        この層が ZigBee として最もよく知られた層●    APL    ●       ...
802.15.4 とは●    IEEE が策定した PAN 標準    ●        802.15 ワーキンググループ (WPAN)        –   Bluetooth 等●    別名 Low Rate WPAN    ●    ...
NWK Layer (1)●    メッシュを実現している●    ルーティングとか●    ネットワークの管理とか
NWK Layer (2)●    NLDE    ●        ふつうの Data Entity    ●        フレーム作ってセキュリティかけたり●    NLME    ●        ネットワーク            N...
ZigBee Network●    3 つのノードタイプ    ●        Coordinator    ●        Router    ●        EndDevice●    Coordinator/Router は全然電...
Coordinator●    ネットワークを作成する唯一の存在    ●        ネットワークに常に 1 台しかいない●    802.11 インフラにおける AP のような●    常に ON    ●        スリープできない...
Router●    ネットワークが作成できない Coordinator
EndDevice (1)●    ネットワークを作成できない●    子ノードを持つことが出来ない●    ルーティングできない●    通常はスリープ状態●    普通にメッセージを受信することができない
EndDevice (2)       メッセージは直接届くC/R                   C/R
EndDevice (3)       メッセージは直接届く       (ように見える)C/R                   ED
EndDevice (4)           C/R      メッセージは親を経由するED1                   ED2
EndDevice (4)                         実はここは                         直接届いていない              C/RC/R/ED                     ED
EndDevice (5)                  ED はスリープから復帰したと                  きに自分で取りに行く                  (メールチェックのような)ED2 宛のメッセージ      ...
EndDevice (5)                  ED はスリープから復帰したと                  きに自分で取りに行く                  (メールチェックのような)ED2 宛のメッセージ      ...
EndDevice (6)●    宛先の ED が取りに来なかったら?    ●        無慈悲に破棄されます●    タイムアウトは普通何秒なの?    ●        7680ms という値がデフォルト値です●    なんとかして...
EndDevice (7)●    Wake-Up ボタンを押すと・・・        C/R                  ED2              _人人人人人_              >  DoS 攻撃 <        ...
FAQ (1) 消費電力って?●    普通に無線通信すれば普通に電池は減ります    ●        Coordinator/Router は常に RX が ON●    極力スリープ状態を長く取ることしか解決方法    はあまりない
FAQ (2) PANID が2つ?●    16-bit PANID    ●        MAC 層で使われるネットワーク識別用 ID    ●        16-bit しかないので衝突する可能性が高い●    Extended PA...
FAQ (3) アドレスが2つ?●    IEEE Address (64-bit Address)    ●        いわゆる MAC アドレス(のようなもの)    ●        ユニークであり、チップ毎に割り当てられている●  ...
APL Layer●    ZigBee 最大の特徴    ●        APL 内で更に 2 つに分かれる        –   APS        –   Application Framework (ZDO/ZCL)●    アプリ...
APS Layer (1)●    上位のフレームワーク層と直接やりとりする層●    Binding●    Group Management●    APS ACK    Fragment                     Next ...
APS Layer (2)Endpoint 毎にユーザーのアプリケーションが格納される    Application   Application             Application      Object        Object...
Binding (1)●    ある Application Object と別の    Application Object をリンクする●    単一方向●    多重バインディングができる
Binding (2)
Binding (3)                   Light A               Light B                   Addr: 0x1234          Addr: 0x6464Switch AAd...
Group Addressing (1)●    複数の Application Object に対して一括送    信したい●    基本的にブロードキャスト●    受信側が責任持ってフィルタする●    Binding 先として Grou...
Group Addressing (2)                    Group:0x8888     Group:0x6413
Group Addressing (3)                   Light D                   Addr: 0x5678     Destination    Group 0x8888             ...
APS ACK●    APS 層で ACK を有効にできる●    信頼性を高める●    ACK タイムアウト時に再送●    Option だけど普通実装されてるでしょ
Fragmentation●    その名の通りデータのフラグメント化●    ウィンドウサイズがあったりと TCP に似てる●    これも Option だけど普通実装されてる
Security●    なにやら色々頑張ってくれます☆
Application Framework (1)●    Cluster    ●        「機能」の単位であり、外部に公開され        る” Public” な機能    ●        Application Object ...
Application Framework (2)●    Profle    ●        (狭義には) Cluster の集まりを定義している    ●        「クラス」に対する「パッケージ」に近い概念●    すべての APS...
ZigBee Device Object (1)●    Application Object の実装(仕様)●    Endpoint 0 は必ず ZDO が実装される    ●        USB の Endpoint 0 と似ている● ...
ZigBee Device Object (2)●    Profle は ZigBee Device Profle    ●        非常にわかりづらいが、 ZDO とは Application        Object としての名称...
ZigBee Device Object (3)                Network Manager      Device & Service                                        Disco...
ZigBee Device Object (4)●    ユーザーが作成する Application Object は    通常 APSDE 以外触れることが出来ない    ●        データ送受信のみが行える    ●        ...
ZigBee Cluster Library (1)●    ユーザーが作成する Application Object の    実質的な仕様、枠組み    ●        ZCL を利用することは必須ではないが、 ZCL を使       ...
ZigBee Cluster Library (2)     各 Cluster には Command と Attribute が複数存在する                                  Command -> メソッド  ...
ZigBee Cluster Library (3)       On/Of Cluster の例                    On/Off        +OnOff : Boolean        +Off()        +...
ZigBee Cluster Library (4)   必ず Server と Client が対になって通信しなければならない      Server Cluster   ZCL Message   Client ClusterClient...
ZigBee Cluster Library (5)●    とにかく豊富なライブラリ    ●        様々なビジネスシーンですぐ使える    ●        BACnet Tunnel とか怪しいものまで●    Profle 固有...
ZigBee IP    TCP/UDP    IPv6/ICMP    6LowPAN IEEE802.15.4 MAC IEEE802.15.4 PHY
ZigBee IP    TCP/UDP    IPv6/ICMP とてもつまらない  6LowPAN IEEE802.15.4 MAC IEEE802.15.4 PHY
今日から始める ZigBee
今日から始める ZigBee ( 松 )●    アライアンス入会    ●        3000USD~●    Ember EM35x 開発キット    ●        2500USD    ●        あるいは EM2xx●  ...
今日から始める ZigBee ( 松 )●    アライアンス入会    ●        3000USD~●    Ember EM35x 開発キット    ●        2500USD~    ●        あるいは EM2xx● ...
今日から始める ZigBee ( 竹 )●    TI CC2530 開発キット    ●        649USD    ●        簡易版は 100USD~●    XBee S2 + XBee USB アダプタ    ●     ...
今日から始める ZigBee ( 梅 )●    XBee S2    ●        EndDevice 用と Coordinator 用●    XBee USB アダプタ●    トータル 5000 円以下
今日から始める ZigBeeEnd Device                 PC  Ember    TI          XBee   XBee    等
Pure Java ZigBee Application Framework              bekko.org
アライアンス入会?●    アライアンス入会    ●        ZigBee を名乗るプロダクトを開発する権利    ●        HA や SE 等 PAP プロダクトを開発する権利    ●        上位メンバーは仕様に口出...
本日の差し入れ      とっても便利な      miniB ケーブル
質問あればどうぞ
13apr2013 kernelvm8-main
Upcoming SlideShare
Loading in …5
×

13apr2013 kernelvm8-main

1,654 views

Published on

  • Be the first to comment

13apr2013 kernelvm8-main

  1. 1. 保存版 いまさら聞けない ZigBee @Fantom_JAC
  2. 2. 自己紹介● Java で EHCI ドライバとか TCP/IP スタック とか 802.11 スタックとか書いてたような気が します。● Objective-C が大好きです。
  3. 3. ZigBee の主な特徴● 日本で流行ってない● 802.15.4 と混同される● Bluetooth や WiFi に押され気味● アライアンスの年会費が高い● 仕様書の誤字脱字が多い ● なのに仕様書以外にまともな資料がない● 有料なのか無料なのかはっきりしない● ロゴがダサい
  4. 4. ZigBee の歴史 ZigBee の歩み 世界の主なできごと この頃から既存のプロトコルが M2M Half-Life リリース1998 年頃 に不向きだということに世界が気づき AMD64 が初めてアナウンスされる 始める。 IEEE 802.15.4-2003 が策定完了 Athlon FX-51 のリリース 2003 年 SGI Tezro のリリース ZigBee Specification 1.0 公開 Doom3 リリース2004 年 いわゆる” ZigBee 2004” FarCry リリース ZigBee 2006 公開 ATI が AMD に買収される2006 年 アプリケーション層の後方互換性が無 くなる ZigBee 2007 公開 Carcass 再結成2007 年 ZigBee 2006 と互換性を保つ X Japan 再結成 K10 のリリース ZigBee IP 公開 某国がミサイルを出し入れ2013 年
  5. 5. スタック図
  6. 6. ZigBee3 大要素● PHY/MAC ● この二層までが IEEE 802.15.4● NWK ● この層が ZigBee として最もよく知られた層● APL ● この層が全然理解されていない ● APS ● ZDO ● ZCL
  7. 7. 802.15.4 とは● IEEE が策定した PAN 標準 ● 802.15 ワーキンググループ (WPAN) – Bluetooth 等● 別名 Low Rate WPAN ● 速度を犠牲にして消費電力を減らす● 普通は 2.4GHz - ISM● 仕様書はオープンだからみんな実装してみよう
  8. 8. NWK Layer (1)● メッシュを実現している● ルーティングとか● ネットワークの管理とか
  9. 9. NWK Layer (2)● NLDE ● ふつうの Data Entity ● フレーム作ってセキュリティかけたり● NLME ● ネットワーク Next High Layer Entity – 開始、参加、離脱等 NLDE-SAP NLME-SAP ● PAN ID 管理 NLME ● ( NWK )アドレス管理 NLDE w/ NWK IB ● ルート探索 MCPS-SAP MLME-SAP ● ルーティング MAC Sub-Layer Entity
  10. 10. ZigBee Network● 3 つのノードタイプ ● Coordinator ● Router ● EndDevice● Coordinator/Router は全然電池食います● EndDevice こそが ZigBee の本質
  11. 11. Coordinator● ネットワークを作成する唯一の存在 ● ネットワークに常に 1 台しかいない● 802.11 インフラにおける AP のような● 常に ON ● スリープできない● 普通はゲートウェイ的な役割をする● ハンドルするために多くのリソースが必要
  12. 12. Router● ネットワークが作成できない Coordinator
  13. 13. EndDevice (1)● ネットワークを作成できない● 子ノードを持つことが出来ない● ルーティングできない● 通常はスリープ状態● 普通にメッセージを受信することができない
  14. 14. EndDevice (2) メッセージは直接届くC/R C/R
  15. 15. EndDevice (3) メッセージは直接届く (ように見える)C/R ED
  16. 16. EndDevice (4) C/R メッセージは親を経由するED1 ED2
  17. 17. EndDevice (4) 実はここは 直接届いていない C/RC/R/ED ED
  18. 18. EndDevice (5) ED はスリープから復帰したと きに自分で取りに行く (メールチェックのような)ED2 宛のメッセージ C/R ED2メッセージはここに溜まる(POP サーバーのような )
  19. 19. EndDevice (5) ED はスリープから復帰したと きに自分で取りに行く (メールチェックのような)ED2 宛のメッセージ C/R ED2メッセージはここに溜まる(POP サーバーのような )
  20. 20. EndDevice (6)● 宛先の ED が取りに来なかったら? ● 無慈悲に破棄されます● タイムアウトは普通何秒なの? ● 7680ms という値がデフォルト値です● なんとかしてすぐに送りたいんだけど? ● たぶん Wake-Up ボタンみたいなのがあります
  21. 21. EndDevice (7)● Wake-Up ボタンを押すと・・・ C/R ED2 _人人人人人_ >  DoS 攻撃 <  ̄ Y^Y^Y^Y  ̄ ̄
  22. 22. FAQ (1) 消費電力って?● 普通に無線通信すれば普通に電池は減ります ● Coordinator/Router は常に RX が ON● 極力スリープ状態を長く取ることしか解決方法 はあまりない
  23. 23. FAQ (2) PANID が2つ?● 16-bit PANID ● MAC 層で使われるネットワーク識別用 ID ● 16-bit しかないので衝突する可能性が高い● Extended PANID (64-bit PANID) ● NWK 層で使われる PANID ● 前述の衝突を回避するために拡張した● 2つとも一致しないと通信できない
  24. 24. FAQ (3) アドレスが2つ?● IEEE Address (64-bit Address) ● いわゆる MAC アドレス(のようなもの) ● ユニークであり、チップ毎に割り当てられている● Network Address (16-bit Address) ● IP スタックにおける IP アドレスのような存在 ● 動的に割り当てられる事が多い● 基本的には Network Address だけで通信で きる
  25. 25. APL Layer● ZigBee 最大の特徴 ● APL 内で更に 2 つに分かれる – APS – Application Framework (ZDO/ZCL)● アプリケーションフレームワークがプロトコル レベルで決まっている ● ZigBee は単なる「通信方式の一つ」ではない● ビジネスに直結する仕様が策定されている● モダンな設計 ● オブジェクト指向の概念がふんだんに取り入れられ ている
  26. 26. APS Layer (1)● 上位のフレームワーク層と直接やりとりする層● Binding● Group Management● APS ACK Fragment Next High Layer Entity● APSDE-SAP APSME-SAP APSME APSDE w/ APS IB NLDE-SAP NLME-SAP NWK Layer Entity
  27. 27. APS Layer (2)Endpoint 毎にユーザーのアプリケーションが格納される Application Application Application Object Object ...... Object EPa EPb EPn APS
  28. 28. Binding (1)● ある Application Object と別の Application Object をリンクする● 単一方向● 多重バインディングができる
  29. 29. Binding (2)
  30. 30. Binding (3) Light A Light B Addr: 0x1234 Addr: 0x6464Switch AAddr: 0x0666 EP1 EP5 EP12 EP7 Binding Table Source DestinationSwitch BAddr: 0x5555 0x0666:EP7 0x1234:EP1 Light C 0x0666:EP7 0x6464:EP5 0x3333 EP7 0x0666:EP7 0x6464:EP12 0x5555:EP7 0x3333:EP1 EP1
  31. 31. Group Addressing (1)● 複数の Application Object に対して一括送 信したい● 基本的にブロードキャスト● 受信側が責任持ってフィルタする● Binding 先として Group を指定することも可 能● 普通は Option ● HA 等では Mandatory
  32. 32. Group Addressing (2) Group:0x8888 Group:0x6413
  33. 33. Group Addressing (3) Light D Addr: 0x5678 Destination Group 0x8888 EP1 EP2フレームのアドレスモードで判断 Group Table Group Endpoint 0x8888 EP1 0x7777 EP2
  34. 34. APS ACK● APS 層で ACK を有効にできる● 信頼性を高める● ACK タイムアウト時に再送● Option だけど普通実装されてるでしょ
  35. 35. Fragmentation● その名の通りデータのフラグメント化● ウィンドウサイズがあったりと TCP に似てる● これも Option だけど普通実装されてる
  36. 36. Security● なにやら色々頑張ってくれます☆
  37. 37. Application Framework (1)● Cluster ● 「機能」の単位であり、外部に公開され る” Public” な機能 ● Application Object には必ず Cluster が(通常 複数)存在する ● 特に ZCL においては「クラス」に近い概念 Cluster (ID:XXXX) ・・・ Cluster (ID:XXXX) Application Object
  38. 38. Application Framework (2)● Profle ● (狭義には) Cluster の集まりを定義している ● 「クラス」に対する「パッケージ」に近い概念● すべての APS メッセージは Cluster ID と Profle ID を必ず指定しなければならない。 ● よって、これら2つは” Addressing” である、と 定義されている Profle B Profle A Cluster Cluster Cluster Cluster Cluster Cluster
  39. 39. ZigBee Device Object (1)● Application Object の実装(仕様)● Endpoint 0 は必ず ZDO が実装される ● USB の Endpoint 0 と似ている● Device/Service Discovery● APSME へのインターフェース● 各種デバイスの設定
  40. 40. ZigBee Device Object (2)● Profle は ZigBee Device Profle ● 非常にわかりづらいが、 ZDO とは Application Object としての名称で、外部との通信に使われる Cluster の仕様が ZDP● ZDO において Cluster とはそのままコマンド ID と捉えることができる ● 通常 Request/Response と対になっている
  41. 41. ZigBee Device Object (3) Network Manager Device & Service Discovery 実体は NWK 層Application Object Security Manager API 等を Binding Manager 通じてアクセス 実体は NWK 層 一部 APS 層 ZDP および APS 層 Cluster を指定して通信 Group Manager Node ManagerApplication 実体は APS 層 Object API 等を ZigBee Device Object (EP0) 通じてアクセス
  42. 42. ZigBee Device Object (4)● ユーザーが作成する Application Object は 通常 APSDE 以外触れることが出来ない ● データ送受信のみが行える ● サンドボックスような仕組み● 別途 ZDO を経由してのみ、 APSME や NWK との連携を行える ● 通常これらの API はベンダーより提供される● 同様に外部から ME を操作することはできない ため、 ZDO を経由して連携できる ● 例えば遠隔のデバイスの Binding を変更する等
  43. 43. ZigBee Cluster Library (1)● ユーザーが作成する Application Object の 実質的な仕様、枠組み ● ZCL を利用することは必須ではないが、 ZCL を使 わないとベンダー間の互換性が保てない● ZCL において Cluster とはそれぞれ独立した クラスあるいはインターフェースと捉えること ができる
  44. 44. ZigBee Cluster Library (2) 各 Cluster には Command と Attribute が複数存在する Command -> メソッド Cluster Attribute -> フィールド Command AttributeApplication Object
  45. 45. ZigBee Cluster Library (3) On/Of Cluster の例 On/Off +OnOff : Boolean +Off() +On() +Toggle()
  46. 46. ZigBee Cluster Library (4) 必ず Server と Client が対になって通信しなければならない Server Cluster ZCL Message Client ClusterClient Command/Attribute にアクセスできるのは対になる ServerServer Command/Attribute にアクセスできるのは対になる Client
  47. 47. ZigBee Cluster Library (5)● とにかく豊富なライブラリ ● 様々なビジネスシーンですぐ使える ● BACnet Tunnel とか怪しいものまで● Profle 固有のと共通の Cluster がある● 全 Cluster は Attribute 読み書き用の共通 Command を持つ
  48. 48. ZigBee IP TCP/UDP IPv6/ICMP 6LowPAN IEEE802.15.4 MAC IEEE802.15.4 PHY
  49. 49. ZigBee IP TCP/UDP IPv6/ICMP とてもつまらない 6LowPAN IEEE802.15.4 MAC IEEE802.15.4 PHY
  50. 50. 今日から始める ZigBee
  51. 51. 今日から始める ZigBee ( 松 )● アライアンス入会 ● 3000USD~● Ember EM35x 開発キット ● 2500USD ● あるいは EM2xx● XBee S2 ● 1200 円くらい?● XBee USB アダプタ ● 1500 円くらい?
  52. 52. 今日から始める ZigBee ( 松 )● アライアンス入会 ● 3000USD~● Ember EM35x 開発キット ● 2500USD~ ● あるいは EM2xx● XBee S2 ● 1200 円くらい?● XBee USB アダプタ ● 1500 円くらい?
  53. 53. 今日から始める ZigBee ( 竹 )● TI CC2530 開発キット ● 649USD ● 簡易版は 100USD~● XBee S2 + XBee USB アダプタ ● 合わせて 3000 円以下
  54. 54. 今日から始める ZigBee ( 梅 )● XBee S2 ● EndDevice 用と Coordinator 用● XBee USB アダプタ● トータル 5000 円以下
  55. 55. 今日から始める ZigBeeEnd Device PC Ember TI XBee XBee 等
  56. 56. Pure Java ZigBee Application Framework bekko.org
  57. 57. アライアンス入会?● アライアンス入会 ● ZigBee を名乗るプロダクトを開発する権利 ● HA や SE 等 PAP プロダクトを開発する権利 ● 上位メンバーは仕様に口出しする権利 ● 認定試験を受ける権利● ただし非営利目的であれば入会不要● 営利目的であっても既に認定を受けてるプロダ クトを利用するだけなら入会不要 ● EM250 や CC2530 は入会必要 ● XBee は入会不要 – ただし PAP プロダクトは入会必要
  58. 58. 本日の差し入れ とっても便利な miniB ケーブル
  59. 59. 質問あればどうぞ

×