41
STMicroelectron ics Bluetooth Seconda lezione: Baseband e LM

STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Embed Size (px)

Citation preview

Page 1: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

STMicroelectronics

Bluetooth

Seconda lezione: Baseband e LM

Page 2: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Corso Bluetooth

14-4-2003, 3 ore Bluetooth Phy e Baseband

5-5-2003, 3 ore Baseband LMP

3 ore HCI +L2CAP

3 ore RFCOM, SDP e profili (corso di Rossi)

Page 3: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Layer Fisico

Banda ISM (2.4Ghz)Modulazione GFSK ad 1MbpsFast frequency hopping– 79 canali da 1 Mhz da 2.402 a 2.480 GHz– 1600 hop/s => slot time= 625us

3 classi di potenza:– Classe 1: 20dbm -> 100 m– Classe 2: 4dbm– Classe 3: 0 dbm -> 10 m

Page 4: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Topologia

Master: unita’ che gestisce la rete e stabilisce la sequenza di hopping

Slave: fino a 7 unita’ connesse col master

Piconet: rete formata da un master e uno o piu’ slaves

Comunicazioni possibili solo tra master e slave

Page 5: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Pacchetti

Hanno tutti un access code che identifica la piconet e attiva il ricevitore

FHS packet porta le informazioni di sincronizzazione

Pacchetti dati da 1/3/5 slot con o senza FEC:DM1,DH1,DM3,DH3,DM5,DH5

Pacchetti voce sincroni SCO

Page 6: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Connessione

Inquiry: restituisce informazioni sulle unita’ presenti nel range di trasmissionePage: stabilisce un link con un’unita’ specifica identificata dal BD_address.Entrambe le procedure richiedono che le unita’ target siano in scan modeTempi di risposta variabili a causa della probabilita’ statistica di incrociare le frequenzeTx eRX

Page 7: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Scatternet

slave 1

slave 2

slave 3

master B

slave 4

slave 5

master A

Page 8: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Broadcast

Pacchetti trasmessi dal master a tutti gli slaves attivi

I pacchetti broadcast si distinguono per avere AM_Address=000

Non prevedono acknowledge ne pacchetti di risposta

Per aumentare la robustezza si puo’ decidere di ripeterli sistematicamente N volte

Page 9: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Protocol stack

RadioBaseband

HW Analogico/RF

HW Digitale

Software layers

Link Controller

AudioLink Manager

L2CAP

TCP/IP HID RFCOMM

Applications

Data

Con

trol

HW Digitale/Analogico

BT device

Page 10: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Link controller

Macchina a stati (spesso HW) per gestire:– Il meccanismo ARQ– La procedura di inquiry– La procedura di page– La creazione/ decodifica del FHS packet– Scheduling realtime dei pacchetti– Tutte le procedure con requisiti di tempo stringenti

Page 11: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Link Manager

Strato software realtime,che gira sul Bluetooth device (host controller)

Alloca e assegna gli AM_address

Stabilisce I link ACL ed SCO

Configura I link

Gestisce gli stati low power

Comunica con il corrispettivo LM del dispositivo remoto

Page 12: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP

Protocollo che consente al Link manager di comunicare col suo pari

Page 13: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP channel

2 bit nel Payload header vengono riservati per il codice L_CH

I pacchetti LMP sono inviati esclusivamente usando pacchetti DM1 (I piu’ robusti)

Page 14: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Formato pacchetti LMP

access code packet header payload

Payload header (1 byte) Payload Body (1:17 bytes) CRC (2 bytes)

DM1

L_CH=11 Flow(NU) Length2 1 5

T_id OP Code

Par 2

1 7 8Par 1

Par 3

Par 14 Par 15

Par 16

T_id (transaction identifier): 1 se e’ iniziata dal master,0 se e’ iniziata dallo slave

Page 15: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Connessione LMP

ID

SlaveMaster

LMP_Host connection_req

ID

ID

FHS

Link controllerPaging

Link ManagerLMP connection setup LMP_Accepted

Altre transazioni opzionali

Page 16: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP_ Supported features

Un dispositivo richiede all’ altro quali features opzionali supporta

LMP_features _req

LMLM initiating

LMP_features _res

Page 17: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP_Name request

Ogni unita’ Bluetooth puo’ avere un nickname assegnato dall’ utente, per aiutarne l’identificazione (max 248 caratteri)

LMLM iniziatore

LMP_Name_res (offset=0Length=xx fragment=‘aaaa’)

LMP_name_req (offset=0)

LMP_Name_res (offset=xxLength=yy fragment=‘bbbb’)

LMP_name_req (offset=xx)

Page 18: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Controllo di potenza

E’ possibile controllare il livello di potenza emessa:– Diminuire la potenza in eccesso per risparmiare

batterie e limitare il disturbo verso altri dispositivi– Aumentare la potenza per migliorare la qualita’ in

link disturbati

La potenza emessa e’ relativa ad ogli link (un master tiene una tabella di valori per ogni slave)

Page 19: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Controllo di potenza /2

Al ricevitore viene misurata la potenza ricevuta in antenna e resa disponibile al LM in un parametro RSSI (Received Signal Strength Index)

Ogni ricevitore conosce il proprio ‘Golden range’ di potenza, in cui le performances sono ottimali.

Il ricevitore controlla in remoto la potenza del trasmettitore per ricevere nel ‘golden range’

Page 20: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Controllo di potenza /3

Messaggi LMP:– LMP_incr_power_req richiede un aumento di potenza– LMP_decr_power_req richiede una diminuzione di potenza– LMP_max_power Comunica che e’ stato raggiunto il

massimo livello possibile di potenza– LMP_min_power Comunica che e’ stato raggiunto il minimo

livello possibile di potenza

LMP_incr_power _req

LMLM initiating

LMP_max_power

LMP_incr_power _req

LMP_decr_power _req

LMLM initiating

LMP_min_power

LMP_decr_power _req

Page 21: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

SicurezzaIl frequency hopping fornisce un primo (tenue) livello di sicurezzaBluetooth definisce procedure di autenticazione e di encription a livello LMSi basa su una chiave privata di 128 bitIl temine di paragone per il livello di sicurezza e’ “il cavo”Applicazioni ‘sensibili’ devono prevedere livelli superiori di sicurezzaDisabilitabile in applicazioni che richiedono accesso pubblico

Page 22: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Link keys

Tutte le chiavi sono a 128 bit

Combination key KAB, e’ valida esclusivamente per un link tra 2 unita’ specifiche

Unit key KA, e’ valida per tutti i link con una particolare unita’

Temporary key Kmaster, sostituisce temporaneamente le altre chiavi (uso sconsigliato)

Initialization key Kinit, chiave di inizializzazione a durata limitata

Page 23: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Scambio delle chiavi

Due unita’ che hanno in comune una link key si definiscono ‘paired’Il ‘pairing’ puo’ avvenire per via diretta (es. tramite cavo) o piu’ comunemente tramite radio.Il ‘pairing’ solitamente viene fatto solo al primo utilizzo del dispositivo.La link key serve per l’autenticazione e l’encription

Page 24: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Autenticazione

E1

= ?

BD_ADDR_B

Link KeyLink Key

BD_ADDR_B

SRES_M SRES_S

RAND

Verifier(A) Claimant (B)

LMP_au_rand

LMP_sres

E1

Page 25: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Encryption key Kc

Viene generata a partire dalla link key

L’ algoritmo utilizza anche i BD_address dei dispositivi ed un numero Rand

Ad ogni riconnessione si genera una nuova Kc

La lunghezza di Kc puo’ variare da 8 a 128 bit ed e’ negoziabile

Page 26: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Encryption

PIN

Kc

Addressclock

RAND

Payload key

generator

Plain DataPayload key

Z(t)Key stream generator

Encrypted Data

PIN

Kc

Addressclock

RAND

Payload key

generator

Plain Data

Payload key

Z(t)Key stream generator

Encrypted Data

Page 27: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Generazione delle chiavi

Modo 1, dipende dal BD_addr

Modo 2 dipende da un pin number inserito dall’ utente

Page 28: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Pairing A to B

Viene inserito dall’ utente un PIN number in un’ unita’ A

Viene generato da A un numero random R

A invia R a B

L’utente inserisce lo stesso pin in BA e B generano Kinit, usando R e PIN con E22

Da K viene derivata Kc per l’encriptionA genera KAB

A invia KAB a B su un link protetto da Kc

Kinit viene cancellata

Page 29: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Pairing

Encryption

E22

PIN

LINK KEY

ENCRYPTION KEY

E3

E22

PIN

LINK KEY

ENCRYPTION KEY

E3

Authentication

RAND

EN_RAND

First time connections

Page 30: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Stati low power (per gli slave)

Active– Active: Il dispositivo è sempre in attesa di un possibile pacchetto dal master

– Hold: Il dispositivo è in stand-by per un tempo definito, dopo di che torna active

– Sniff: Il dispositivo và periodicamente in stand-by e vi rimane per un tempo definito

Parked: – Il dispositivo è sincronizzato ma disattivato (no AM_Address), periodicamente

ascolta il master per controllare se deve riattivarsi

Unconnected– Page scan: Il dispositivo periodicamente ascolta pacchetti di page

Inquiry scan: Il dispositivo periodicamente ascolta pacchetti di inquiry

Page 31: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Modo Hold

Uno slave puo’ astenersi per un certo periodo dall’ ascoltare il masterSpesso viene usato per risparmiare potenza quando non ci sono dati da inviareLo stato di hold puo’ essere imposto dal master o richiesto dallo slaveDurante l’hold lo slave puo’ anche fare altro, ad es. partecipare ad un’ altra piconet o inquiry/page scan

Page 32: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP transaction

LMP_hold_req negozia i parametri di hold

LMP_hold forza lo stato di hold

Parametri: – Hold instant: il valore del Btclock(del master) in cui

lo slave inizia lo stato di hold– Hold time: il tempo misurato in slot time di durata

dell’ hold

Page 33: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Modo Sniff

Come per l’hold, lo slave si astiene dalla piconet per un certo periodo

A differenza dell’ hold, lo sniff viene ripetuto periodicamente senza ulteriore negoziazione

Viene utilizzato in dispositivi a bassa potenza e basso bit-rate (es. Mouse tastiera)

Page 34: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP transaction

LMP_sniff_req negozia i parametri di sniff

LMP_unsniff_req termina lo stato di sniff

Parametri: – Tsniff :Periodo di ripetizione– Dsniff :Istante di inizio del primo sniff– Sniff attempt: Numero di slot di ascolto– Sniff timeout: Massimo numero di slot attivi

Page 35: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Modo Park

Uno slave che per molto tempo tempo non deve comunicare col master puo’ essere messo in park mode.

In modo park lo slave cede l’AM_address e riceve un PM_address di 8 bit.

Lo slave in park mantiene il sincronismo con il master (non e’ richiesto un page per riattivarsi)

Gli slaves in park si risvegliano periodicamente negli slot di ‘Beacon’ per risincronizzarsi e comunicare col master

Page 36: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

LMP transaction (simp.)

LMP_Park req– PM_address, parametri di Beacon

LMP_modify_beacon (Broadcast)– Parametri di beacon

LMP_unpark_PM_ADD_req (Broadcast)– PM_address, nuovo AM_address,

Page 37: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

QoS

Bluetooth 1.1 ha un supporto minimo di QoS, solo con le specifiche 2.0 ci sara’ un supporto completo.

E’ possibile per uno slave richiedere al master la frequenza con cui viene interpellato.(polling)

E’ possibile in questo modo influenzare la banda e la latenza nella direzione slave-> master

Page 38: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

QoS LMP

LMP_quality_of_service m->s– Poll interval, NBC (numero di ripetizioni broadcast)

LMP_quality_of_service_req s->m– Poll interval, NBC

LMP_quality_of_service_req

SlaveMaster

LMP_quality_of_service

Page 39: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Role switch

E’ possibile che il master e uno slave si invertano i ruoli dopo che la piconet e’ stata creata

Es. PC che si connette ad un accesso di rete.

LMP_slot_offset (offset,BD_Add)

SlaveMaster

LMP_switch_req (switch instant)

LMP_accepted

Page 40: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Controllo pacchetti

Un dispositivo puo’ voler limitare l’uso di pacchetti multislot (DH3, DH5) da parte dell’ altro dispositivoAd es. un master con un SCO attivo non vuole che lo slave occupi gli slot riservati.

LMP_Max_slot (max slot)

LMLM init

LMP_Max_slot_req (max slot)

LMLM init

LMP_accepted

Page 41: STMicroelectronics Bluetooth Seconda lezione: Baseband e LM

Link supervision

Se un dispositivo esce dal range Bluetooth e’ indispensabile chiudere il link per evitare di occupare risorse.

E’ definito un Supervision time out, trascorso il quale se non vi e’ stata alcuna comunicazione corretta il link viene automaticamente chiuso.

LMP_Supervision_timeout(TO)

SlaveMaster