430 likes | 542 Views
Marco Bianchessi Laurea in Ingegneria Elettronica Politecnico di Milano Lavoro In STMicroelectronics dal 1994 Mi occupo di Bluetooth dal 1998 Membro del Bluetooth Hi-Rate working group Membro di: Radio improvement WG Automotive expert Group Industrial automation Study Group
E N D
Marco Bianchessi Laurea in Ingegneria Elettronica Politecnico di Milano Lavoro In STMicroelectronics dal 1994 Mi occupo di Bluetooth dal 1998 Membro del Bluetooth Hi-Rate working group Membro di: Radio improvement WG Automotive expert Group Industrial automation Study Group Email marco.bianchessi@st.com Presentazione
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) Corso Bluetooth
Non e’ una wireless LAN E’ un sistema wireless di “cable replacement” E’ estremamente versatile Specifica non solo la comunicazione ma anche l’applicazione Si propone come l’interfaccia universale di collegamento per terminali mobili Cosa e’ Bluetooth?
Soprannome di Harald, re vichingo vissuto nel decimo secolo. “Blatand” in danese significa “dalla pelle scura” in inglese e’ diventato “Bluetooth” Nome provvisorio del progetto, e’ rimasto come nome definitivo. Cosa significa “Bluetooth”
Il SIG (Special Interest Group) viene fondato nel 1998 da Nokia Intel Ericsson IBM e Toshiba Dopo 6 mesi le prime specifiche vengono pubblicate Il SIG accetta nuovi membri, finora oltre 2000 aziende si sono associate I nuovi membri partecipano alla definizionee revisione delle specifiche Inizio 2001 vengono pubblicate le specifiche 1.1, la versione definitiva su cui si basano I prodotti attuali Come e’ nato Bluetooth
Applications TCP/IP HID RFCOMM Control Data Audio L2CAP LinkManager Baseband RF Bluetooth stack
Opera nella banda ISM (Industrial Scientific and Medical), allocata tra 2.4 e 2.5 Ghz Nella stessa banda operano anche: Wireless LAN 802.11 Forni a Microonde Sistemi proprietari (Video, audio, dati, controllo) Limitazioni sull’ emissione di potenza Specifiche radio
Spettro RF (usi civili) AM Radio Radio OC TV VHF FM Radio TV VHF 100Khz 1 Mhz 10Mhz 100Mhz GSM 1800 DECT ISM Telepass TV UHF GSM GPS UMTS 1GHz 2GHz 3GHz
Tecnica di spread spectrum robusta e a basso costo ma relativamente poco efficiente Permette a Bluetooth di operare correttamente anche in ambienti molto disturbati Si basa su una radio a banda 1Mhz che viene commutata velocemente (1600 hops al secondo) secondo una sequenza pseudo-casuale 79 canali a disposizione,da 2.402GHz a 2.480GHz. La banda totale occupata e’ 79 Mhz, la potenza media emessa in ogni singola banda e’ statisticamente 1/79 della potenza nominale Fast frequency hopping
GFSK (Gaussian Frequency shift keying), 2 levels (1 bit) FM modulation 1 M symbol/s 1 MHz Bandwidth Modulazione Ideal zero crossing 1 Ft+fd • BT=0.5 • Indice di Modulazione 0.28,0.35 • Minima deviazione115KHz • Symbol rate 1us +/- 20PPm Ft 0 Ft-fd t 1us
Classi di potenza • 0dBm=1mW, 10dBm=10mW, 20dBm=100mW
Parametro che identifica la bonta’ del ricevitore Si definisce come il livello di potenza ricevuta (in dBm) al quale il ricevitore garantisce un BER pari a 10-3 Le specifiche richiedono almeno –70dBm, alcuni design attuali arrivano fino a –85dBm Sensitivity
Pr=Pt-Alt+Ag-PL-Alr PL (propagation loss) dipende dalla distanza In campo aperto PL d2, in ambienti indoor PL d4 Limite di funzionamento: Pr=sensitivity Con I dati di specifica: 10 metri con Pt= 0dBm 100 metri con Pt=20dBm Link budget • Pr=Potenza ricevuta (in dBm) • Pt=Potenza emessa (in dBm) • Alt=perdite di adattamento (in dB) • Ag=guadagno di antenna (in dB) • Pl= Attenuazione di propagazione (in dB) • Alr= adattamento al ricevitore (in dB)
freq 2.402 2.480 Frequency hopping 79 canali da 1MHz master slave time
Dopo ogni pacchetto da A a B segue un pacchetto di risposta da B ad A Ogni pacchetto viene trasmesso su un differente canale RF Uno slot temporale vale 625 us (1/1600Hz) Tra un pacchetto e il successivo viene riservato un intervallo di 200 us per commutare frequenza, l’ efficienza scende al 70% f(2k) f(2k+1) f(2k+2) A t >=260ms B t 625ms TDD Time division duplexing
master active slave parked slave standby Topologia Piconet
Master Stabilisce la sequenza pseudocasuale di hopping Diventa master il primo dispositivo che chiede la connessione, è possibile un Master/Slave switch Ogni dispositivo, anche il più semplice, puo diventare master Slave Fino a 7 slaves contemporaneamente attivi in una piconet Ogni slave puo comunicare solo con il master Può trasmettere solo in risposta ad un pacchetto del master Ogni slave attivo riceve un indirizzo di 3 bits (AM_address) Ruoli
Ogni dispositivo Bluetooth possiede un BD_address univoco, di 48 bit Derivato dal MAC address IEEE 802 Si compone di 3 sottoparti: LAP (Lower address part) 24 bits UAP (Upper address part) 8 bits NAP (Non-significant address part) 16 bits BD_address
Bluetooth Clock • Contatore a 28 bits, incrementato a 3.2kHz • Si riazzera ogni 23 ore, 18 minuti e 6 secondi • Ogni dispositivo ha un proprio clock indipendente, resettato solamente all’accensione • Due dispositivi per sincronizzarsi calcolano il proprio offset relativo come differenza dei rispettivi clock • L’ offset relativo rimane costante nel tempo
Selection kernel 1 : 79 27 bits HOP Channel phase sequence NATIVE CLK 27 bits 28 bits (LAP+4 bits UAP) Offset MASTER BD_ADDR Sequenza di Hopping
Iniziano con un access code, necessario alla radio per trovare il pacchetto 54bits di header, identifica il pacchetto Da 0 a 2745 bits di payload Pacchetti 0-2745b 72b 54b access code packet header payload
2 tipi di Forward-Error Correction (FEC) 1/3 rate: bit-repeat code Corregge fino a un errore ogni3 bits 2/3 rate: (15,10) shortened Hamming code Corregge un errore ogni 15 FEC
LSB 4 64 4 MSB Preambolo Sync word Trailer Access code • Preambolo: vale 1010 se syncword inizia con 1, vale 0101 se inizia con 0 • Syncword:derivata dal LAP del BD_Address: • DAC (device access code) relativo ad un device • CAC (channel access code) relativo alla piconet • GIAC (generic inqiuiry a.c.) usato nella fase di inquiry • Trailer, vale 1010 se syncword finisca con 0, vale 0101 se finisce con 1
Ricerca i 64 bit dell’access code all’interno dello stream ricevuto In media il valore di uscita vale 32 All’ arrivo dell’ access code corretto vale 64 Si pone una soglia di ricezione attorno a 58/60 per rilevare il pacchetto anche in presenza di errori Correlatore Sinc word Ac Ac Ac Ac Ac Ac Ac Ac Ac 1 2 3 4 5 6 62 63 64 X X X X X X X X X X X Bits ricevuti 1 0 0 0 1 1 0 0 1......0 1 0 0 X 1x1=1 Operatore somma 1x0=0 Operatore xor: 0x1=0 0x0=1
4 1 1 1 8 3 AM_ADDR TYPE FLOW ARQN SEQN HEC information parameter AM_ADDR slave active member address payload type TYPE FLOW LC flow control ARQN ACK/NAK SEQN retransmit ordering header error check HEC Packet header Il pachet header e’protetto con FEC 1/3 -> 18*3=54 bits
X SLAVE 1 Z Z ARQ A B B C MASTER G F H SLAVE 2 NAK ACK
Quando il ricevitore non può accettare nuovi dati per un certo tempo (es. Una stampante con buffer pieno), viene attivato il bit di flow del pacchetto di risposta (Flow=0) Il trasmettitore, alla ricezione di un Flow=0 smette di inviare dati. Periodicamente si riprova ad accedere al ricevitore per verificarne lo stato (es. con POLL) Quando poll torna ad 1, la reasmissione riprende. Flow control
ID, ha solamente l’access code Poll Non ha payload, richiede una risposta Usato dal master per interrogare gli salves Null Non ha payload, non richiede risposta Usato per terminare un trasferimento FHS Pacchetti speciali
Serve per identificare velocemente il tipo di dispositivo, le classi definite sono: Computer (desktop,notebook, PDA, organizers, .... ) Phone (cellular, cordless, payphone, modem, ...) LAN /Network Access point Audio/Video (headset,speaker,stereo, video display, vcr..... Peripheral (mouse, joystick, keyboards, ..... ) Imaging (printing, scanner, camera, display, ...) Class of device
f(k) f(k+1) f(k+2) f(k+3) f(k+4) f(k+5) f(k) f(k+3) f(k+4) f(k+5) f(k) f(k+5) Link asimmetrico
Asynchronous Connection_Less Vengono utilizzati per trasportare dati Possono utilizzare pacchetti multislot e FEC Implementano sempre il meccanismo ARQ Sono automaticamente attivati al momento della connessione ACL Links
Synchronous Connection Oriented Vengono utilizzati per trasportare la voce Si riservano periodicamente degli slot per la comunicazione sincrona Ogni link SCO garantisce un throughput di 64kbps bidirezionale Non e’implementato il meccanismo ARQ, quindi I pacchetti sono soggetti ad errori Vengono attivate a richiesta appoggiandosi a una connessione ACL SCO Links
Codifica della voce CVSDM 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 . . . . . . .
SCO link ACL link segment type type symmetric asymmetric 0000 NULL NULL 0001 POLL POLL 1 DM1 108.8 108.8 108.8 0010 FHS FHS 0011 DM1 DM1 DH1 172.8 172.8 172.8 0100 DH1 0101 HV1 DM3 258.1 387.2 54.4 0110 HV2 2 0111 HV3 DH3 390.4 585.6 86.4 1000 DV AUX1 1001 DM5 286.7 477.8 36.3 1010 DM3 1011 DH3 DH5 433.9 723.2 57.6 3 1100 1101 1110 DM5 4 1111 DH5 Tipi di pacchetto
Payload header: 1 byte per pacchetti singoli 2 per pachetti multipli (3/5 slot) L_CH: 11= pacchetti di controllo, 10= inizio dati, 01=continuazione dati Payload (solo nei link ACL) Payload header Payload Body (0:2700 bits) CRC (16 bits)
Si sovrappone al flusso dati un flusso pseudocasuale Il flusso così generato ha caratteristiche spettrali migliori In ricezione si ricostruisce lo stesso flusso e lo si elide Data whitening
79 32 TX 312.5 us RX Connessione iniziale • Ricevitore e trasmettitore non sono ancora sincronizzati, ne in tempo ne in frequenza • I canali utilizzati sono ridotti a soli 32 dei 79 possibili per diminuire il tempo di connessione • Il trasmettitore invia pacchetti ad un rate doppio del normale (3200/sec), • La sequenza di hopping e’ semplificata e indipendente dall’adddress • Il ricevitore ascolta su un canale per un tempo necessario a ricevere almeno 16 pacchetti • Statisticamente prima o poi capita che le frequenza coincidano • Il pacchetto ricevuto contiene le informazioni necessarie a ricevere i pacchetti successivi
Quando un disposivo vuole connettersi ad un altro conoscendone il BD_address. Il >Master è in stato di page: invia in continuazione pacchetti ID con l’access code dello >Slave e, dopo ogni paccchetto trasmesso, rimane in ascolto di una risposta dallo slave Lo >Slave e’ in ‘inquiry scan’:ricerca il proprio access code e quando lo trova, risponde con il proprio ID Un >master quando sente l’eco dello >slave invia un FHS packed con il proprio BD_address e clock Se lo >slave lo riceve correttamente, risponde con un ID e usando le informazioni contenute in FHS inizia ad ascoltare la piconet Page
Usato per raccogliere informazioni sugli eventuali dispositivi bluetooth nelle vicinanze Il dispositivo che fa l’inquiry invia una serie di ID packet usando un particolare access code GIAC, dopo ogniun ascolta la risposta Ogni dispositivo in inquiry scan, ascolta in canale ricercando il GIAC, se lo trova risponde col proprio FHS packet. Per evitare collisioni, la risposta e’ ritardata di un tempo random Inquiry
Active Active: Il dispositivo è sempre in attesa di un possibile pacchetto dal master Hold: Il dispositivo è in stand-by per un tempo hTO dopo di che torna active Sniff: Il dispositivo và in stand-by ogni Ts e vi rimane per in tempo Nsa Parked: Il dispositivo è sincronizzato ma disattivato (no AM_Address), ogni TB ascolta il master per controllare se deve riattivarsi Unconnected Page scan: Il dispositivo ascolta pacchetti di page per Tw p.s. ogni Tp.s. Inquiry scan: Il dispositivo ascolta pacchetti di inquiry per Tw I.s. ogni Ti.s. Stati low power (per gli slave)