BUILDING MULTIPROTOCOL IOT NODES - Linux...

27
FEBRUARY 23, 2017 PORTLAND, OR ALIN LAZAR BUILDING MULTIPROTOCOL IOT NODES WITH THREAD, BLE, AND ZIGBEE

Transcript of BUILDING MULTIPROTOCOL IOT NODES - Linux...

Page 1: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

FEBRUARY 23, 2017

PORTLAND, OR

ALIN LAZAR

BUILDING MULTIPROTOCOL IOT NODESWITH THREAD, BLE, AND ZIGBEE

Page 2: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

2

Summary

• Benefits of Multiprotocol Systems

• Protocol Standards

• Use Cases

• Platforms and Stacks

• Application Considerations

• Examples

Page 3: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

3

Speaker: Alin Lazar

Software Engineering Manager at NXP Semiconductors

10+ years experience with low power wireless protocols

Shipped ZigBee, Thread, BLE network stacks and tools for microcontrollers

Focus on standardization and certification

Vice Chair of Thread Group Technical Committee

Page 4: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

4

Benefits of Multiprotocol Systems

Page 5: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

5

Benefits of Multiprotocol Systems

Connect++

Opens Path to IoT Convergence

Reduce Design Costs

Expanded, flexible connectivity from the same Device

One SKU, single firmware build

Applications can leverage best aspects of multiple standards, reduce lock-in

Page 6: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

6

Protocol Standards

Page 7: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

7

Wireless Protocol Standards of Focus

Bluetooth LE (4.0+)

Connect to smartphones, PCs

Accessories, Wearables, Beacons

Low power mesh protocol

Connect to smart home hubs

100s of smart home & lighting certified products

IPv6 network layer scalable to low power IoT

Mesh network without Single Point of Failure

Border Routers: IP network gateways for mobile and cloud

Page 8: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

8

Use Cases

Page 9: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

9

Use Cases for Multiprotocol Edge Nodes

Direct

Communication

(BLE)

Mesh

Network

with 10s-100s

of nodes

Smart

Door Lock Border Routers /

Hubs Gateways

to Cloud and LAN

(Wi-Fi)

Smartphone to Device

Device to Cloud

Device to Device

Page 10: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

10

Multiprotocol Platforms and Stacks

Page 11: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

11

Integrated Microcontrollers with Multimode Radios

• Available from several MCU vendors

• Commonly based on ARM® Cortex®-Mx

• Most common multimode Transceiver

configuration: BLE and IEEE 802.15.4

• Various on-chip memory sizes

• Optimized for deep sleep low power

• Integrated security/TRNG acceleration

Memories TransceiverSystemCore

Analog

Clocks

CommunicationsTimers

SPI

I2C

Internal and External

Watchdogs

DMA

Internal Reference

Clocks

Low / High

Frequency Osc.

Low Leakage

Wake-Up Unit

FlexTimers

Programmable

Delay Block

Independent Real

Time Clock

Periodic Interrupt

Timers

Low Power Timer

ARM Cortex®-M®

Debug Interfaces

Interrupt

Controller

512 kB Flash

128 kB SRAM

16-bit ADC

12-bit DAC

DC-DC Converter

LPUART

GPIO w/ IRQ

Capabilities

Frequency Locked

Loop

BLE 4.2, &

802.15.4 radio

6-bit ACMP

TSI

CMT

Balun

Security

AES-128

True Random

Number Generator

Page 12: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

12

Multi-Protocol Stacks for IoT Edge Nodes

Multimode Transceiver

BLE Controller IEEE 802.15.4 MACPHY

BLE Host ZigBee PROThread 1.1 IPv6 Routing

6LoWPAN

UDP Sockets

IPv6 App Layer IoT

Frameworks (e.g.: based on

CoAP)

ZigBee Clusters Library

Framework

(e.g.: ZigBee 3.0)GAP | GATT Profiles

Device Application

Page 13: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

13

Application Considerations

Page 14: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

14

Multiprotocol MCU Application Considerations

Firmware System and RTOS

Manage Radio Concurrent Operation and Co-Existence

Sleep modes and wake-up patterns

OTA Updates

Application layer protocol and ecosystem

Security

Page 15: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

15

Concurrent Radio Protocol Operation API

typedef enum{

gMWS_BLE_c,gMWS_802_15_4_c,gMWS_ANT_c,gMWS_GENFSK_c,gMWS_None_c

} mwsProtocols_t;

mwsStatus_t MWS_Register (mwsProtocols_t protocol, pfMwsCallback cb);mwsStatus_t MWS_Acquire (mwsProtocols_t protocol, uint8_t force);mwsStatus_t MWS_Release (mwsProtocols_t protocol);mwsStatus_t MWS_SignalIdle (mwsProtocols_t protocol);mwsStatus_t MWS_Abort (void);

uint32_t MWS_GetInactivityDuration (mwsProtocols_t currentProtocol);mwsProtocols_t MWS_GetActiveProtocol (void);

Page 16: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

16

Radio Co-Existence with MWS API

void MWS_CoexistenceEnable (void);void MWS_CoexistenceDisable (void);

mwsStatus_t MWS_CoexistenceInit(void *rfDenyPin, void *rfActivePin, void *rfStatusPin);mwsStatus_t MWS_CoexistenceRegister (mwsProtocols_t protocol, pfMwsCallback cb);void MWS_CoexistenceSetPriority(mwsRfSeqPriority_t rxPrio, mwsRfSeqPriority_t txPrio);

mwsStatus_t MWS_CoexistenceRequestAccess(mwsRfState_t newState);mwsStatus_t MWS_CoexistenceChangeAccess(mwsRfState_t newState);uint8_t MWS_CoexistenceDenyState(void);void MWS_CoexistenceReleaseAccess(void);

typedef uint32_t(*pfMwsCallback) (mwsEvents_t event);typedef enum{

gMWS_Init_c,gMWS_Idle_c,gMWS_Active_c,gMWS_Release_c,gMWS_Abort_c,gMWS_GetInactivityDuration_c

}mwsEvents_t;

Page 17: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

17

Multiprotocol IoT Gateways

Page 18: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

18

Gateways, Hubs, Border Routers

NFC Tap & Connect Commissioning

Ethernet

Gradual Transition from Application Layer Gateway to Network Layer Gateway

Page 19: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

19

Debug Header

I2C

SP

I

I2C

VO

UT

CP2102

USB-UART

Header

1

UA

RT

Debug

Port

RTC Security

Controller

NFC Wi-FI + BT

Module

Ethernet

PHY

Thread

Module

ZigBee

Module

DDR

NAND

SDIO

1 GB FLASH

256 MB RAM

SD CARD

USB2.0

USB2.0

Host/Device

(Type A)

Host/Device

(Type A)

GPIO

GPIO

NFC Commissioning

Enable Switch

LED

Reset Switch

RESET

JTAG

NXP Modular IoT Gateway System Block Diagrami.MX6UL

Wi-Fi® ConfigUser Space

NFC

Commissioning

Cloud

Registration

Thread

Host SDKMQTT Lib

Kernal Space

Device Control

LED Control

Thread

ManagementZigBee Control

Linux® Yocto BSP

PN7120

Driver

I2C

DriverBCM43362

Wi-Fi Driver

Ethernet

Driver

TAP/TUN

Driver

LibNFC-NCI

i.MX Connected Application

UART / SPI

DriverUART

Driver

Linux TCP/IP Stack

Header

2

SR

IO

UA

RT

LBEE

5KL1DX

SP

I

UA

RT

UA

RT

JN5169

RM

II

VO

UT

(3.3

V)

10-Channel

PMC

Buck

Converter

I2C

I2C

I2C

KW41ZKSZ8081 TPS62086PN7120PCF85263

ATL/AX

A7001

CMHN1

Connected Application Linux BSP Thread Connectivity ZigBee Connectivity NFC Connectivity Cloud Connectivity Devices

JN

Header

PF3001

I2C

Page 20: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

20

What’s Next for Multiprotocol IoT

Page 21: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

21

What’s Coming Next for Multiprotocol IoT Systems

Even more standards / protocols integrations at the edge:

Wi-Fi

LPWAN

Commercial / Professional use cases

Even more flexible radios

Mesh networks everywhere!

IPv6 (and end-to-end) everywhere!

Page 22: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

22

IP as Network Convergence Layer (Projection)

Multimode Transceiver

BLE Interface 802.15.4/Thread Interface

IPv6 Sockets with UDP, DTLS

Libraries for Application and Ecosystem Protocols for IP Networks

Device Application

Wi-Fi Interface

OCF dotdot WeaveLWM2M …

Page 23: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

23

Your Next Steps

Get some Multiprotocol IoT platforms:NXP KW41Z

FRDM-KW41Z

USB-KW41Z

Modular Gateway Reference Design

Get platform drivers, firmware SDKs, Linux Host SDKs:NXP MCUXpresso Config Tools

KW41Z SDK Software and Design Tools

Join and contribute to the standard groups:Influence standard spec definitions

Achieve quicker, certified interoperability

www.bluetooth.com www.threadgroup.org www.zigbee.org

Public events: ZigBee Winter Summit – Monday March 6, Austin, TX

Thread Technology Workshop – Monday March 27, Mountain View, CA

Contribute to OSS (most OSS support is WIP and needs your help):Zephyr, Mynewt, NimBLE, IoTivity, OpenThread

Page 24: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

24

Hands-on Examples

Page 26: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

26

Example 2: Host SDK

Using Python Bindings (multimode.py) for Linux Host scenarioAvailable as part of KW41Z Connectivity Software Package

tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py

Page 27: BUILDING MULTIPROTOCOL IOT NODES - Linux …events17.linuxfoundation.org/sites/events/files/slides/Building...BUILDING MULTIPROTOCOL IOT NODES ... tools\wireless\host_sdk\hsdk-python\src\com\nxp\wireless_connectivity\test\multimode.py.

27

Looking forward to your

Questionsalin.lazar at nxp.com

https://community.nxp.com/community/wireless-connectivity