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