1 / 41

Bluetooth

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

lamont
Download Presentation

Bluetooth

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 => slot time= 625us • 3 classi di potenza: • Classe 1: 20dbm -> 100 m • Classe 2: 4dbm • Classe 3: 0 dbm -> 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 FEC:DM1,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 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

  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_Address=000 • 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 LinkManager 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. 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

  15. 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

  16. LMP_ Supported features LM initiating LM • Un dispositivo richiede all’ altro quali features opzionali supporta LMP_features _req LMP_features _res

  17. 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’)

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

  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 l’autenticazione e l’encription

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

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

  29. Pairing PIN First time connections PIN 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), 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

  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 l’hold 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 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)

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

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

  38. 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

  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. Master Slave LMP_slot_offset (offset,BD_Add) LMP_switch_req (switch instant) LMP_accepted

  40. 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

  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. Master Slave LMP_Supervision_timeout(TO)

More Related