Bluetooth
Download
1 / 41

Bluetooth - PowerPoint PPT Presentation


  • 138 Views
  • Uploaded on

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). Layer Fisico. Banda ISM (2.4Ghz) Modulazione GFSK ad 1Mbps Fast frequency hopping

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Bluetooth' - lamont


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Bluetooth

Bluetooth

Seconda lezione: Baseband e LM


Corso bluetooth
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)


Layer fisico
Layer Fisico

  • Banda ISM (2.4Ghz)

  • Modulazione GFSK ad 1Mbps

  • Fast 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


Topologia
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


Pacchetti
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


Connessione
Connessione

  • Inquiry: restituisce informazioni sulle unita’ presenti nel range di trasmissione

  • Page: stabilisce un link con un’unita’ specifica identificata dal BD_address.

  • Entrambe le procedure richiedono che le unita’ target siano in scan mode

  • Tempi di risposta variabili a causa della probabilita’ statistica di incrociare le frequenzeTx eRX


Scatternet
Scatternet

slave 3

slave 1

master B

master A

slave 4

slave 5

slave 2


Broadcast
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


Protocol stack
Protocol stack

Applications

TCP/IP

HID

RFCOMM

Control

Data

Audio

L2CAP

Software layers

LinkManager

HW Digitale

Link Controller

HW Digitale/Analogico

Baseband

HW Analogico/RF

Radio

BT device


Link controller
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


Link manager
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


LMP

  • Protocollo che consente al Link manager di comunicare col suo pari


Lmp channel
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)


Formato pacchetti lmp

L_CH=11

Flow(NU)

Length

Formato pacchetti LMP

payload

access code

packet header

DM1

Payload header (1 byte)

Payload Body (1:17 bytes)

CRC (2 bytes)

2

1

5

1

7

8

T_id

OP Code

Par 1

Par 2

Par 3

  • T_id (transaction identifier):

    • 1 se e’ iniziata dal master,

    • 0 se e’ iniziata dallo slave

Par 14

Par 15

Par 16


Connessione lmp
Connessione LMP

Master

Slave

ID

Link controller

Paging

ID

FHS

ID

LMP_Host connection_req

Link Manager

LMP connection setup

LMP_Accepted

Altre transazioni opzionali


Lmp supported features
LMP_ Supported features

LM initiating

LM

  • Un dispositivo richiede all’ altro quali features opzionali supporta

LMP_features _req

LMP_features _res


Lmp name request
LMP_Name request

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

LM iniziatore

LM

LMP_name_req (offset=0)

LMP_Name_res (offset=0

Length=xx fragment=‘aaaa’)

LMP_name_req (offset=xx)

LMP_Name_res (offset=xx

Length=yy fragment=‘bbbb’)


Controllo di potenza
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)


Controllo di potenza 2
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’


Controllo di potenza 3
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

LM initiating

LM

LM initiating

LM

LMP_incr_power _req

LMP_decr_power _req

LMP_incr_power _req

LMP_decr_power _req

LMP_max_power

LMP_min_power


Sicurezza
Sicurezza

  • Il frequency hopping fornisce un primo (tenue) livello di sicurezza

  • Bluetooth definisce procedure di autenticazione e di encription a livello LM

  • Si basa su una chiave privata di 128 bit

  • Il temine di paragone per il livello di sicurezza e’ “il cavo”

  • Applicazioni ‘sensibili’ devono prevedere livelli superiori di sicurezza

  • Disabilitabile in applicazioni che richiedono accesso pubblico


Link keys
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


Scambio delle chiavi
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


Autenticazione
Autenticazione

Verifier(A)

Claimant (B)

Link Key

Link Key

RAND

BD_ADDR_B

BD_ADDR_B

LMP_au_rand

E1

E1

SRES_S

SRES_M

LMP_sres

= ?


Encryption key kc
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


Encryption
Encryption

Kc

Payload key

Plain Data

Address

Payload key generator

Z(t)

Key stream generator

clock

PIN

RAND

Encrypted Data

Kc

Payload key

Encrypted Data

Address

Payload key generator

Z(t)

Key stream generator

clock

PIN

RAND

Plain Data


Generazione delle chiavi
Generazione delle chiavi

  • Modo 1, dipende dal BD_addr

  • Modo 2 dipende da un pin number inserito dall’ utente


Pairing a to b
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 B

  • A e B generano Kinit, usando R e PIN con E22

  • Da K viene derivata Kc per l’encription

  • A genera KAB

  • A invia KAB a B su un link protetto da Kc

  • Kinit viene cancellata


Pairing
Pairing

PIN

First time connections

PIN

E22

E22

RAND

LINK KEY

LINK KEY

Authentication

E3

E3

EN_RAND

ENCRYPTION KEY

ENCRYPTION KEY

Encryption


Stati low power per gli slave
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), periodicamenteascolta il master per controllare se deve riattivarsi

  • Unconnected

    • Page scan: Il dispositivo periodicamenteascolta pacchetti di page Inquiry scan: Il dispositivo periodicamenteascolta pacchetti di inquiry


Modo hold
Modo Hold

  • Uno slave puo’ astenersi per un certo periodo dall’ ascoltare il master

  • Spesso viene usato per risparmiare potenza quando non ci sono dati da inviare

  • Lo stato di hold puo’ essere imposto dal master o richiesto dallo slave

  • Durante l’hold lo slave puo’ anche fare altro, ad es. partecipare ad un’ altra piconet o inquiry/page scan


Lmp transaction
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


Modo sniff
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)


Lmp transaction1
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


Modo park
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


Lmp transaction simp
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,


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


Qos lmp
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

Master

Slave

LMP_quality_of_service_req

LMP_quality_of_service


Role switch
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.

Master

Slave

LMP_slot_offset (offset,BD_Add)

LMP_switch_req (switch instant)

LMP_accepted


Controllo pacchetti
Controllo pacchetti

  • Un dispositivo puo’ voler limitare l’uso di pacchetti multislot (DH3, DH5) da parte dell’ altro dispositivo

  • Ad es. un master con un SCO attivo non vuole che lo slave occupi gli slot riservati.

LM init

LM

LM init

LM

LMP_Max_slot (max slot)

LMP_Max_slot_req (max slot)

LMP_accepted


Link supervision
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.

Master

Slave

LMP_Supervision_timeout(TO)


ad