Bluetooth - PowerPoint PPT Presentation

About This Presentation
Title:

Bluetooth

Description:

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 ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 42
Provided by: STM56
Category:

less

Transcript and Presenter's Notes

Title: Bluetooth


1
Bluetooth
  • Seconda lezione Baseband e LM

2
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)

3
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 gt slot time 625us
  • 3 classi di potenza
  • Classe 1 20dbm -gt 100 m
  • Classe 2 4dbm
  • Classe 3 0 dbm -gt 10 m

4
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

5
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
    FECDM1,DH1,DM3,DH3,DM5,DH5
  • Pacchetti voce sincroni SCO

6
Connessione
  • Inquiry restituisce informazioni sulle unita
    presenti nel range di trasmissione
  • Page stabilisce un link con ununita 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

7
Scatternet
slave 3
slave 1
master B
master A
slave 4
slave 5
slave 2
8
Broadcast
  • Pacchetti trasmessi dal master a tutti gli slaves
    attivi
  • I pacchetti broadcast si distinguono per avere
    AM_Address000
  • Non prevedono acknowledge ne pacchetti di
    risposta
  • Per aumentare la robustezza si puo decidere di
    ripeterli sistematicamente N volte

9
Protocol stack
Applications
TCP/IP
HID
RFCOMM
Control
Data
Audio
L2CAP
Software layers
Link Manager
HW Digitale
Link Controller
HW Digitale/Analogico
Baseband
HW Analogico/RF
Radio
BT device
10
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

11
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

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

13
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)

14
Formato pacchetti LMP
payload
access code
packet header
DM1
Payload header (1 byte)
Payload Body (117 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
15
Connessione LMP
Slave
Master
ID
Link controller Paging
ID
FHS
ID
LMP_Host connection_req
Link Manager LMP connection setup
LMP_Accepted
Altre transazioni opzionali
16
LMP_ Supported features
LM
LM initiating
LMP_features _req
LMP_features _res
  • Un dispositivo richiede all altro quali features
    opzionali supporta

17
LMP_Name request
  • Ogni unita Bluetooth puo avere un nickname
    assegnato dall utente, per aiutarne
    lidentificazione (max 248 caratteri)

LM
LM iniziatore
LMP_name_req (offset0)
LMP_Name_res (offset0 Lengthxx fragmentaaaa)
LMP_name_req (offsetxx)
LMP_Name_res (offsetxx Lengthyy fragmentbbbb)
18
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)

19
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

20
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
LM initiating
LM
LM initiating
LMP_incr_power _req
LMP_decr_power _req
LMP_incr_power _req
LMP_decr_power _req
LMP_max_power
LMP_min_power
21
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

22
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

23
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 lautenticazione e
    lencription

24
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
?
25
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

26
Encryption
Kc
Plain Data
Payload key
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

27
Generazione delle chiavi
  • Modo 1, dipende dal BD_addr
  • Modo 2 dipende da un pin number inserito dall
    utente

28
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
  • Lutente inserisce lo stesso pin in B
  • A e B generano Kinit, usando R e PIN con E22
  • Da K viene derivata Kc per lencription
  • A genera KAB
  • A invia KAB a B su un link protetto da Kc
  • Kinit viene cancellata

29
Pairing
PIN
PIN
First time connections
E22
E22
RAND
LINK KEY
LINK KEY
Authentication
E3
E3
EN_RAND
ENCRYPTION KEY
ENCRYPTION KEY
Encryption
30
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

31
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 lhold lo slave puo anche fare altro, ad
    es. partecipare ad un altra piconet o
    inquiry/page scan

32
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

33
Modo Sniff
  • Come per lhold, 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)

34
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

35
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 lAM_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

36
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,

37
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-gt master

38
QoS LMP
  • LMP_quality_of_service m-gts
  • Poll interval, NBC (numero di ripetizioni
    broadcast)
  • LMP_quality_of_service_req s-gtm
  • Poll interval, NBC

Slave
Master
LMP_quality_of_service_req
LMP_quality_of_service
39
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.

Slave
Master
LMP_slot_offset (offset,BD_Add)
LMP_switch_req (switch instant)
LMP_accepted
40
Controllo pacchetti
  • Un dispositivo puo voler limitare luso 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
LM init
LM
LM init
LMP_Max_slot (max slot)
LMP_Max_slot_req (max slot)
LMP_accepted
41
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.

Slave
Master
LMP_Supervision_timeout(TO)
Write a Comment
User Comments (0)
About PowerShow.com