SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
保存版

 いまさら聞けない ZigBee
          @Fantom_JAC
自己紹介
●
    Java で EHCI ドライバとか TCP/IP スタック
    とか 802.11 スタックとか書いてたような気が
    します。
●
    Objective-C が大好きです。
ZigBee の主な特徴
●
    日本で流行ってない
●
    802.15.4 と混同される
●
    Bluetooth や WiFi に押され気味
●
    アライアンスの年会費が高い
●
    仕様書の誤字脱字が多い
    ●
        なのに仕様書以外にまともな資料がない
●
    有料なのか無料なのかはっきりしない
●
    ロゴがダサい
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 年
スタック図
ZigBee3 大要素
●
    PHY/MAC
    ●
        この二層までが IEEE 802.15.4
●
    NWK
    ●
        この層が ZigBee として最もよく知られた層
●
    APL
    ●
        この層が全然理解されていない
    ●
        APS
    ●
        ZDO
    ●
        ZCL
802.15.4 とは
●
    IEEE が策定した PAN 標準
    ●
        802.15 ワーキンググループ (WPAN)
        –   Bluetooth 等
●
    別名 Low Rate WPAN
    ●
        速度を犠牲にして消費電力を減らす
●
    普通は 2.4GHz - ISM
●
    仕様書はオープンだからみんな実装してみよう
NWK Layer (1)
●
    メッシュを実現している
●
    ルーティングとか
●
    ネットワークの管理とか
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
ZigBee Network
●
    3 つのノードタイプ
    ●
        Coordinator
    ●
        Router
    ●
        EndDevice
●
    Coordinator/Router は全然電池食います
●
    EndDevice こそが ZigBee の本質
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/R




C/R/ED                     ED
EndDevice (5)

                  ED はスリープから復帰したと
                  きに自分で取りに行く
                  (メールチェックのような)

ED2 宛のメッセージ

         C/R               ED2




メッセージはここに溜まる
(POP サーバーのような )
EndDevice (5)

                  ED はスリープから復帰したと
                  きに自分で取りに行く
                  (メールチェックのような)

ED2 宛のメッセージ

         C/R               ED2




メッセージはここに溜まる
(POP サーバーのような )
EndDevice (6)
●
    宛先の ED が取りに来なかったら?
    ●
        無慈悲に破棄されます
●
    タイムアウトは普通何秒なの?
    ●
        7680ms という値がデフォルト値です
●
    なんとかしてすぐに送りたいんだけど?
    ●
        たぶん Wake-Up ボタンみたいなのがあります
EndDevice (7)
●
    Wake-Up ボタンを押すと・・・



        C/R                  ED2




              _人人人人人_
              >  DoS 攻撃 <
               ̄ Y^Y^Y^Y  ̄ ̄
FAQ (1) 消費電力って?
●
    普通に無線通信すれば普通に電池は減ります
    ●
        Coordinator/Router は常に RX が ON
●
    極力スリープ状態を長く取ることしか解決方法
    はあまりない
FAQ (2) PANID が2つ?
●
    16-bit PANID
    ●
        MAC 層で使われるネットワーク識別用 ID
    ●
        16-bit しかないので衝突する可能性が高い
●
    Extended PANID (64-bit PANID)
    ●
        NWK 層で使われる PANID
    ●
        前述の衝突を回避するために拡張した
●
    2つとも一致しないと通信できない
FAQ (3) アドレスが2つ?
●
    IEEE Address (64-bit Address)
    ●
        いわゆる MAC アドレス(のようなもの)
    ●
        ユニークであり、チップ毎に割り当てられている
●
    Network Address (16-bit Address)
    ●
        IP スタックにおける IP アドレスのような存在
    ●
        動的に割り当てられる事が多い
●
    基本的には Network Address だけで通信で
    きる
APL Layer
●
    ZigBee 最大の特徴
    ●
        APL 内で更に 2 つに分かれる
        –   APS
        –   Application Framework (ZDO/ZCL)
●
    アプリケーションフレームワークがプロトコル
    レベルで決まっている
    ●
        ZigBee は単なる「通信方式の一つ」ではない
●
    ビジネスに直結する仕様が策定されている
●
    モダンな設計
    ●
        オブジェクト指向の概念がふんだんに取り入れられ
        ている
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
APS Layer (2)
Endpoint 毎にユーザーのアプリケーションが格納される




    Application   Application             Application
      Object        Object       ......     Object



       EPa           EPb                     EPn




                           APS
Binding (1)
●
    ある Application Object と別の
    Application Object をリンクする
●
    単一方向
●
    多重バインディングができる
Binding (2)
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
Group Addressing (1)
●
    複数の Application Object に対して一括送
    信したい
●
    基本的にブロードキャスト
●
    受信側が責任持ってフィルタする
●
    Binding 先として Group を指定することも可
    能
●
    普通は Option
    ●
        HA 等では Mandatory
Group Addressing (2)




                    Group:0x8888




     Group:0x6413
Group Addressing (3)


                   Light D
                   Addr: 0x5678
     Destination
    Group 0x8888
                        EP1           EP2




フレームのアドレスモードで判断             Group Table

                   Group          Endpoint
                   0x8888         EP1
                   0x7777         EP2
APS ACK
●
    APS 層で ACK を有効にできる
●
    信頼性を高める
●
    ACK タイムアウト時に再送
●
    Option だけど普通実装されてるでしょ
Fragmentation
●
    その名の通りデータのフラグメント化
●
    ウィンドウサイズがあったりと TCP に似てる
●
    これも Option だけど普通実装されてる
Security
●
    なにやら色々頑張ってくれます☆
Application Framework (1)
●
    Cluster
    ●
        「機能」の単位であり、外部に公開され
        る” Public” な機能
    ●
        Application Object には必ず Cluster が(通常
        複数)存在する
    ●
        特に ZCL においては「クラス」に近い概念

                   Cluster (ID:XXXX)
                           ・・・




                   Cluster (ID:XXXX)


                  Application Object
Application Framework (2)
●
    Profle
    ●
        (狭義には) Cluster の集まりを定義している
    ●
        「クラス」に対する「パッケージ」に近い概念
●
    すべての APS メッセージは Cluster ID と
    Profle ID を必ず指定しなければならない。
    ●
        よって、これら2つは” Addressing” である、と
        定義されている
                                        Profle B
                         Profle A
           Cluster
             Cluster                Cluster
               Cluster                Cluster
                                        Cluster
ZigBee Device Object (1)
●
    Application Object の実装(仕様)
●
    Endpoint 0 は必ず ZDO が実装される
    ●
        USB の Endpoint 0 と似ている
●
    Device/Service Discovery
●
    APSME へのインターフェース
●
    各種デバイスの設定
ZigBee Device Object (2)
●
    Profle は ZigBee Device Profle
    ●
        非常にわかりづらいが、 ZDO とは Application
        Object としての名称で、外部との通信に使われる
        Cluster の仕様が ZDP
●
    ZDO において Cluster とはそのままコマンド
    ID と捉えることができる
    ●
        通常 Request/Response と対になっている
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)
      通じてアクセス
ZigBee Device Object (4)
●
    ユーザーが作成する Application Object は
    通常 APSDE 以外触れることが出来ない
    ●
        データ送受信のみが行える
    ●
        サンドボックスような仕組み
●
    別途 ZDO を経由してのみ、 APSME や NWK
    との連携を行える
    ●
        通常これらの API はベンダーより提供される
●
    同様に外部から ME を操作することはできない
    ため、 ZDO を経由して連携できる
    ●
        例えば遠隔のデバイスの Binding を変更する等
ZigBee Cluster Library (1)
●
    ユーザーが作成する Application Object の
    実質的な仕様、枠組み
    ●
        ZCL を利用することは必須ではないが、 ZCL を使
        わないとベンダー間の互換性が保てない
●
    ZCL において Cluster とはそれぞれ独立した
    クラスあるいはインターフェースと捉えること
    ができる
ZigBee Cluster Library (2)
     各 Cluster には Command と Attribute が複数存在する


                                  Command -> メソッド
            Cluster               Attribute -> フィールド


                      Command




                      Attribute



Application Object
ZigBee Cluster Library (3)


       On/Of Cluster の例

                    On/Off
        +OnOff : Boolean

        +Off()
        +On()
        +Toggle()
ZigBee Cluster Library (4)

   必ず Server と Client が対になって通信しなければならない




      Server Cluster   ZCL Message   Client Cluster




Client Command/Attribute にアクセスできるのは対になる Server
Server Command/Attribute にアクセスできるのは対になる Client
ZigBee Cluster Library (5)
●
    とにかく豊富なライブラリ
    ●
        様々なビジネスシーンですぐ使える
    ●
        BACnet Tunnel とか怪しいものまで
●
    Profle 固有のと共通の Cluster がある
●
    全 Cluster は Attribute 読み書き用の共通
    Command を持つ
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
●
    XBee S2
    ●
        1200 円くらい?
●
    XBee USB アダプタ
    ●
        1500 円くらい?
今日から始める ZigBee ( 松 )
●
    アライアンス入会
    ●
        3000USD~
●
    Ember EM35x 開発キット
    ●
        2500USD~
    ●
        あるいは EM2xx
●
    XBee S2
    ●
        1200 円くらい?
●
    XBee USB アダプタ
    ●
        1500 円くらい?
今日から始める ZigBee ( 竹 )
●
    TI CC2530 開発キット
    ●
        649USD
    ●
        簡易版は 100USD~
●
    XBee S2 + XBee USB アダプタ
    ●
        合わせて 3000 円以下
今日から始める ZigBee ( 梅 )
●
    XBee S2
    ●
        EndDevice 用と Coordinator 用
●
    XBee USB アダプタ
●
    トータル 5000 円以下
今日から始める ZigBee



End Device
                 PC
  Ember
    TI          XBee
   XBee
    等
Pure Java ZigBee Application Framework




              bekko.org
アライアンス入会?
●
    アライアンス入会
    ●
        ZigBee を名乗るプロダクトを開発する権利
    ●
        HA や SE 等 PAP プロダクトを開発する権利
    ●
        上位メンバーは仕様に口出しする権利
    ●
        認定試験を受ける権利
●
    ただし非営利目的であれば入会不要
●
    営利目的であっても既に認定を受けてるプロダ
    クトを利用するだけなら入会不要
    ●
        EM250 や CC2530 は入会必要
    ●
        XBee は入会不要
        –   ただし PAP プロダクトは入会必要
本日の差し入れ




      とっても便利な
      miniB ケーブル
質問あればどうぞ

Mais conteúdo relacionado

Mais procurados

ワンコインでIot入門 第二章
ワンコインでIot入門 第二章ワンコインでIot入門 第二章
ワンコインでIot入門 第二章Makoto Takahashi
 
インフライトニングトーク_Cisco語講座
インフライトニングトーク_Cisco語講座インフライトニングトーク_Cisco語講座
インフライトニングトーク_Cisco語講座Hishi Shinichiroh
 
自作x86エミュレータの終焉
自作x86エミュレータの終焉自作x86エミュレータの終焉
自作x86エミュレータの終焉Daisuke Kamikawa
 
ラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみようラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみようTakashi Kanamaru
 
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験Kaz Ueno
 
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6Kentaro Ebisawa
 
OSC福岡プレゼン資料 LoRaWAN実証実験
OSC福岡プレゼン資料 LoRaWAN実証実験OSC福岡プレゼン資料 LoRaWAN実証実験
OSC福岡プレゼン資料 LoRaWAN実証実験Kaz Ueno
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1edy555
 
ワンコインでIot入門
ワンコインでIot入門 ワンコインでIot入門
ワンコインでIot入門 Makoto Takahashi
 
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015CODE BLUE
 
Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編Tetsuya Morizumi
 
LEDやモーターをArduinoで制御しよう
LEDやモーターをArduinoで制御しようLEDやモーターをArduinoで制御しよう
LEDやモーターをArduinoで制御しようTakashi Kanamaru
 
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性kozossakai
 
FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi愛美 林
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3mao999
 
4章 Linuxカーネル - 割り込み・例外 4
 4章 Linuxカーネル - 割り込み・例外 4 4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4mao999
 

Mais procurados (20)

Android usbの基本
Android usbの基本Android usbの基本
Android usbの基本
 
ワンコインでIot入門 第二章
ワンコインでIot入門 第二章ワンコインでIot入門 第二章
ワンコインでIot入門 第二章
 
インフライトニングトーク_Cisco語講座
インフライトニングトーク_Cisco語講座インフライトニングトーク_Cisco語講座
インフライトニングトーク_Cisco語講座
 
自作x86エミュレータの終焉
自作x86エミュレータの終焉自作x86エミュレータの終焉
自作x86エミュレータの終焉
 
ラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみようラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみよう
 
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
 
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
 
OSC福岡プレゼン資料 LoRaWAN実証実験
OSC福岡プレゼン資料 LoRaWAN実証実験OSC福岡プレゼン資料 LoRaWAN実証実験
OSC福岡プレゼン資料 LoRaWAN実証実験
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1
 
ワンコインでIot入門
ワンコインでIot入門 ワンコインでIot入門
ワンコインでIot入門
 
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
 
Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編
 
LEDやモーターをArduinoで制御しよう
LEDやモーターをArduinoで制御しようLEDやモーターをArduinoで制御しよう
LEDやモーターをArduinoで制御しよう
 
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
 
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
 
FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
 
Esp8266 webserver1
Esp8266 webserver1Esp8266 webserver1
Esp8266 webserver1
 
4章 Linuxカーネル - 割り込み・例外 4
 4章 Linuxカーネル - 割り込み・例外 4 4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4
 
Interrupts on xv6
Interrupts on xv6Interrupts on xv6
Interrupts on xv6
 

Semelhante a 13apr2013 kernelvm8-main

PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGPF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGdaye001
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例tecopark
 
2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)Takahiro Shinagawa
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力Kota Mizushima
 
kibayos ieice 090915
kibayos ieice 090915kibayos ieice 090915
kibayos ieice 090915Mikio Yoshida
 
ARPトラブルあるある JANOG38 LT
ARPトラブルあるある JANOG38 LTARPトラブルあるある JANOG38 LT
ARPトラブルあるある JANOG38 LT一清 井上
 
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間hiroi10
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例fumoto kazuhiro
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?Makoto SAKAI
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)Atsushi ENTA
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣三七男 山本
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPRyoga Saito
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点Kuniyasu Suzaki
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419エイシュン コンドウ
 
ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-
ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-
ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-ZenSekibe
 
『どうする?どうやる? データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29
『どうする?どうやる?  データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29『どうする?どうやる?  データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29
『どうする?どうやる? データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29Yukihiro Kikuchi
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 

Semelhante a 13apr2013 kernelvm8-main (20)

PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGPF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
 
2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力
 
kibayos ieice 090915
kibayos ieice 090915kibayos ieice 090915
kibayos ieice 090915
 
ARPトラブルあるある JANOG38 LT
ARPトラブルあるある JANOG38 LTARPトラブルあるある JANOG38 LT
ARPトラブルあるある JANOG38 LT
 
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
 
ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-
ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-
ネットワークプロトコル探索隊 LLDP-Link Layer Discovery Protocol-
 
『どうする?どうやる? データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29
『どうする?どうやる?  データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29『どうする?どうやる?  データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29
『どうする?どうやる? データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 

13apr2013 kernelvm8-main

  • 2. 自己紹介 ● Java で EHCI ドライバとか TCP/IP スタック とか 802.11 スタックとか書いてたような気が します。 ● Objective-C が大好きです。
  • 3. ZigBee の主な特徴 ● 日本で流行ってない ● 802.15.4 と混同される ● Bluetooth や WiFi に押され気味 ● アライアンスの年会費が高い ● 仕様書の誤字脱字が多い ● なのに仕様書以外にまともな資料がない ● 有料なのか無料なのかはっきりしない ● ロゴがダサい
  • 4.
  • 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 ● 仕様書はオープンだからみんな実装してみよう
  • 9. NWK Layer (1) ● メッシュを実現している ● ルーティングとか ● ネットワークの管理とか
  • 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 ● スリープできない ● 普通はゲートウェイ的な役割をする ● ハンドルするために多くのリソースが必要
  • 13. Router ● ネットワークが作成できない Coordinator
  • 14. EndDevice (1) ● ネットワークを作成できない ● 子ノードを持つことが出来ない ● ルーティングできない ● 通常はスリープ状態 ● 普通にメッセージを受信することができない
  • 15. EndDevice (2) メッセージは直接届く C/R C/R
  • 16. EndDevice (3) メッセージは直接届く (ように見える) C/R ED
  • 17. EndDevice (4) C/R メッセージは親を経由する ED1 ED2
  • 18. EndDevice (4) 実はここは 直接届いていない C/R C/R/ED ED
  • 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
  • 33. Group Addressing (2) Group:0x8888 Group:0x6413
  • 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 だけど普通実装されてる
  • 37. Security ● なにやら色々頑張ってくれます☆
  • 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
  • 46. ZigBee Cluster Library (3) On/Of Cluster の例 On/Off +OnOff : Boolean +Off() +On() +Toggle()
  • 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 円以下
  • 56. 今日から始める ZigBee End Device PC Ember TI XBee XBee 等
  • 57. Pure Java ZigBee Application Framework bekko.org
  • 58. アライアンス入会? ● アライアンス入会 ● ZigBee を名乗るプロダクトを開発する権利 ● HA や SE 等 PAP プロダクトを開発する権利 ● 上位メンバーは仕様に口出しする権利 ● 認定試験を受ける権利 ● ただし非営利目的であれば入会不要 ● 営利目的であっても既に認定を受けてるプロダ クトを利用するだけなら入会不要 ● EM250 や CC2530 は入会必要 ● XBee は入会不要 – ただし PAP プロダクトは入会必要
  • 59. 本日の差し入れ とっても便利な miniB ケーブル