保存版 いまさら聞けない 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,539 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,539
On SlideShare
0
From Embeds
0
Number of Embeds
98
Actions
Shares
0
Downloads
15
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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. 質問あればどうぞ

×