Académique Documents
Professionnel Documents
Culture Documents
BM70/71 BM78
RN41 / 41N RN42 / RN42N RN4020
RN4870/71 RN4678
Bluetooth 4.2
Type Class 1 Bluetooth 2.1 Class 2 Bluetooth 2.1 Bluetooth LE 4.1 Bluetooth LE 4.2 Dual Mode
(Classic & LE)
Ceramic chip Antenna PCB Antenna or Ceramic chip Antenna Ceramic chip Antenna
Antenna PCB
Or no Antenna no Antenna Or RF pad for external Or RF pad for external
Bluetooth Module
$$$ $$$
Remote console
Command
Mode
or
UART
Popular Beacon
• Definir parámetros clave con un solo comando
• advertisement & scan response payload
• Se configura fácilmente a otros formatos beacon
• iBeacon™, Eddystone™, y otros
• Compatibles con BeaconThing® de Microchip
Herramientas Disponibles
• Herramienta de
Evaluación contiene
• RN4870/71 PICtail
• RN4870 Sensor board
EVB
• RN4870 Apps
• Bluetooth Smart Potentiometer
Switch
Discover App: iOS &
LED
Android*
DIP-
• BLE Sensor App: iOS Switch Light
Sensor
Sensor Board
Conexión mínima
UART Data Frame Communications
• MCU manda paquetes
especialmente
formateados de
“Command”
• Modulo responde con
paquetes
especialmente
formateados de “Event”
LAB 1:
INTRODUCCIÓN AL MODULO
RN4870
Objetivos del Lab 1
• Aprender a programar firmware usando la
herramienta “ISupdate.exe”
• Usar CoolTerm para comunicarnos con el modulo en
Command Mode
– Cambiar algunos ajustes básicos
• Entender en donde se encuentra toda la
documentación
Programación
Definición
3.3V
Module P0_2/LED0
Status
Command
& Data I/F
UART_RX UART_TX
GND UART_TX UART_RX GND
Resumen del Lab 1
• Alta Seguridad
Principios Básicos
• Funcionan con pilas de botón
– Baja Energía en total
• Paquetes de tamaño pequeño
• Minimizar el ciclo de trabajo y la latencia
• Asimetría
– El dispositivo con la fuente de energía mas baja, se le da
menos que hacer
• IoT-Ready
– Modelo de Datos Client-Server
• Things o Cosas tienen los datos
• Servicios Web quieren esos datos
Diseñado para transferencias simples
PHYSICAL LAYER
Canales
Capa Controlador: Capa Física
• Banda ISM 2.4 GHz
• 1Mbps GFSK
– Optimizada para mandar pequeños fragmentos de datos
rápidamente
• 40 Canales con espacios de 2MHz
– Empiezan: 2402 MHz
Ch: 37 0 1 2 3 4 5 6 7 8 9 10 38 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39
Ch: 37 0 1 2 3 4 5 6 7 8 9 10 38 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39
LINK LAYER
Roles
• Conexión Unicast (peer-peer)
– Antes/Durante la Conexión
• Advertiser
• Scanner, Initiator
– Después de la Conexión
• Slave
• Master
• Conexión Broadcast
– Broadcaster
– Observer
Roles (Unicast)
Unassigned/
Host A Host B Standby
Scanner Advertiser
ADV_IND: Ch37
ADV_IND: Ch38
Discovery
ADV_IND: Ch39
.
.
Initiator . Advertiser
ADV_IND: Ch38
.
.
GAP “Central” Role Master
.
Slave GAP “Peripheral” Role
GATT “Client” Role GATT “Server” Role
DATA_TX: Ch11
.
.
time
.
Roles (Broadcast)
Unassigned/
Host xxx Host A Host B
Standby
ADV_IND**: Ch38
**
One of 3 Advertising
channel packet types
available for Broadcasting
data
ADV_IND**: Ch39
time .
.
.
BLE LL States
• Link Layer States
– Standby
– Advertising Scanning
– Initiating
– Scanning
Advertising Standby Initiating
– Connected
Connected
Slave Master
Dirección del Dispositivo
Tipos:
Advertising Channel PDU Data Channel PDU
Header Payload Header Payload MIC
2 Bytes 0-37 Bytes 2 Bytes up to 255 Bytes (incl. MIC) 4 Bytes
Message Integrity Check:
opcionál para seguridad
Advertising Channel PDUs
Header Payload
2 Bytes 0-37 Bytes
Advertising
Packet Types
Tipos de Advertising Channel PDU Types
Advertising Channel PDU
Header Payload
2 Bytes 0-37 Bytes
Advertising
Packet Types
Scanner
0 ms 25 ms 50 ms 75 ms 100 ms 125 ms
Advertiser
Header Payload
2 Bytes 6-37 Bytes
ADV AD 0 … AD N
Address Structure Structure
Length
NOTE:
A single 128bit Service UUID takes up 16/31 bytes available in the
ADV_IND Payload!
Header Payload
2 Bytes 12 Bytes
• Piconet
– Un solo Master Piconet #1 Piconet #2
Piconet #3
Seguridad
Primera conexión
“General-discoverable” Mode
- A Peripheral Mode -
• Este estado indica que el periférico quiere
ser descubierto por sus compañeros para
establecer una conexión
– El periférico manda paquetes ADV_IND
• Estado inicial predeterminado “de fábrica”
para un periférico
– Vuelve al modo "no detectable o non-
discoverable" después de un procedimiento de
unión (bonding) con un dispositivo central
Modo Detectable General
Configuración Requerida del Periférico
• Tipo e intervalo de Advertising (ADV_IND
packet)
• Advertising payload
– Nombre Local
– UUID del Servicio
• (Opcional) Scan Response payload
– Poder TX
– Nivel de Batería
– Datos Personalizados
Descubrimiento General
El Procedimiento del dispositivo Central
• Central empieza el escaneo sin filtro de lista
blanca
• Analiza las flags de tipo de paquete de
advertising recibidas
– Si son flags de Limited Discoverable o General
Discoverable, el dispositivo se reporta a la
aplicación para un analizis mas profundo
Modos de “Conexión” & Procedimientos
Adecuados
• Un procedimiento de 2 pasos
– Aceptar todos los paquetes ADV_IND
– Analizar los datos en el paquete ADV:
• Nombre, UUID, Datos, etc
– Conectarse usando el Procedimiento de Direct
Connection Establishment
Direct Connection Establishment
Procedure
• Un solo paso
• Usando la dirección MAC obtenida de un
paquete ADV_IND o ADV_DIRECT_IND,
• Se inicia una conexión a un solo
dispositivo usando su dirección MAC
– Link Layer no sabe si el dispositivo está
disponible o si se puede conectar a el
Parámetros de Conexión
• Establecidos por el Master durante el
establecimiento de la conexión
– Intervalo de Conexión
• Tiempo entre eventos de conexión
– Slave latency
• Número de eventos de conexión que el Slave puede
optar por omitir
– Supervision timeout
• Tiempo máximo entre dos paquetes validos recibidos
antes de que se le considere perdida a una conexión
Agenda
• Fundamentales
• Arquitectura
– Capa Controller
– Capa Host
• Generic Access Profile (GAP)
– Lab1/2 – Averiguar y Establecer la Conexión
• Generic Attribute Profile (GATT)
– Lab 3 – Intercambio de Datos
• Resumen
Host Layer
• Servidor
– Contiene los recursos (datos) que son
monitoreados
• Organizados como una Base de Datos de Atributos
– Recibe solicitudes del cliente y envia las
respuestas
– Típicamente asociado con el papel de periférico
GAP
GATT Roles
• Cliente
– Averigua la presencia y naturaleza de los atributos
en el servidor
• Descubre los Servicios
– Envía peticiones a un servidor y recibe respuestas
– Típicamente asociado con el papel de Central GAP
Atributo
Service
jerarquía para organizar Characteristic
Value
Value
– Servicios Descriptor
…
• Características …
– Atributo de Declaración
– Atributo de Valor Service
Characteristic
– Atributo de Descripción Declaration
Value
Descriptor
…
…
…
Servicio
• Recopilación de datos y comportamientos para lograr
una función particular.
– Definidos por una Definición de Servicios
• (i.e. a collection of characteristic attributes)
• Los servicios primarios se descubren usando el
procedimiento de “GATT Primary Service Discovery”
• Servicios
– “Públicos”
• Definidos por BT SIG (16-bit UUID)
– “Privados”
• Definidos por el vendedor (128-bit UUID)
Características
• https://www.bluetooth.com/specifications/as
signed-numbers
– Std GATT Services, Attribute Types, Characteristic
Descriptors, Characteristic Types
– SIG-Defined GATT Services
– SIG-Defined GATT Characteristics
– SIG-DefinedGATT Descriptors
Ejemplo de un Perfil GATT
Servicio de Ritmo Cardiaco
GATT Heart Rate Service
Service
Declaration 0x8000 SERVICE (0x2800) 0x180D READ
Characteristic
Declaration 0x8001 CHAR (0x2803) NOT|0x8002|HRM READ
“Heart Rate
Measurement” Value 0x8002 HRM (0x2A37) bpm NONE
Descriptor
0x8003 CCCD (0x2902) 0x0001 READ/WRITE
Characteristic
Declaration 0x8004 CHAR (0x2803) RD|0x8005|BSL READ
“Body Sensor
Location”
Value 0x8005 BSL (0x2A38) 0x02 (Wrist) READ
Characteristic
Declaration 0x8006 CHAR (0x2803) WR|0x8007|HRC READ
“Heart Rate
Control Point”
Value 0x8007 HRC (0x2A39) 0xXX WRITE
LAB 2
INTERCAMBIO DE DATOS
Objetivos del Lab 2
Notwithstanding the above, certain components of software offered by Microchip and 3 rd parties may be covered by “open source” software licenses – which include licenses that require
that the distributor make the software available in source code format. To the extent required by such open source software licenses, the terms of such license will govern.
MICROCHIP DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND
FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY DIRECT OR INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE,
COST, OR EXPENSE OF ANY KIND RELATED TO THESE MATERIALS OR ACCOMPANYING INFORMATION PROVIDED TO YOU BY MICROCHIP OR OTHER THIRD PARTIES, EVEN IF MICROCHIP
HAS BEEN ADVISED OF THE POSSIBLITY OF SUCH DAMAGES OR THE DAMAGES ARE FORESEEABLE. PLEASE BE AWARE THAT IMPLEMENTATION OF INTELLECTUAL PROPERTY PRESENTED
HERE MAY REQUIRE A LICENSE FROM THIRD PARTIES.
TRADEMARKS:
The Microchip name and logo, the Microchip logo, AnyRate, dsPIC, FlashFlex, flexPWR, Heldo, JukeBlox, KEELOQ, KEELOQ logo, Kleer, LANCheck, LINK MD, MediaLB, MOST, MOST logo,
MPLAB, OptoLyzer, PIC, PICSTART, PIC32 logo, RightTouch, SpyNIC, SST, SST Logo, SuperFlash and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A.
and other countries.
ClockWorks, The Embedded Control Solutions Company, ETHERSYNCH, Hyper Speed Control, HyperLight Load, IntelliMOS, mTouch, Precision Edge, and QUIET-WIRE are registered
trademarks of Microchip Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BodyCom, chipKIT, chipKIT logo, CodeGuard, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, EtherGREEN,
In-Circuit Serial Programming, ICSP, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, MiWi, motorBench, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK,
NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PureSilicon, RightTouch logo, REAL ICE, Ripple Blocker, Serial Quad I/O, SQI, SuperSwitcher, SuperSwitcher
II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other
countries.
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.
Silicon Storage Technology is a registered trademark of Microchip Technology Inc. in other countries.
GestIC is a registered trademarks of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries.
All other trademarks mentioned herein are property of their respective companies.