Presentazione Marco Bianchessi Laurea in Ingegneria Elettronica Politecnico di Milano Lavoro In...
-
Upload
adriana-marini -
Category
Documents
-
view
219 -
download
0
Transcript of Presentazione Marco Bianchessi Laurea in Ingegneria Elettronica Politecnico di Milano Lavoro In...
Presentazione
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 [email protected]
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)
Cosa e’ 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 significa “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.
Come e’ nato 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
Bluetooth stack
RFBaseband
AudioLink Manager
L2CAP
TCP/IP HID RFCOMM
Applications
Data
Con
trol
Specifiche radio
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
Spettro RF (usi civili)
100Khz 1 Mhz
1GHz
10Mhz 100Mhz
2GHz
AM Radio
GSM 1800
FM Radio
GSM
Radio OC TV VHF TV VHF
TV UHF GPS UMTS
3GHz
TelepassISMDECT
Fast frequency hopping
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
Modulazione GFSK (Gaussian Frequency shift keying),
– 2 levels (1 bit) FM modulation– 1 M symbol/s– 1 MHz Bandwidth
Ft
Ft-fd
Ft+fd
Ideal zero crossing
t
•BT=0.5•Indice di Modulazione 0.28,0.35•Minima deviazione115KHz•Symbol rate 1us +/- 20PPm
1
01us
Classi di potenza
Power
Class
Maximum Output
Power (Pmax)
Nominal
Output Power
Minimum
Output Power1)
Power Control
1 100 mW (20 dBm)
N/A 1 mW (0 dBm) Pmin<+4 dBm to Pmax
2 2.5 mW (4 dBm) 1 mW (0 dBm)
0.25 mW (-6 dBm)
Optional:
3 1 mW (0 dBm) N/A N/A Optional:
• 0dBm=1mW, 10dBm=10mW, 20dBm=100mW
Sensitivity
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
Link budget 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
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)
2.402 2.480freq
timeslave
master
Frequency hopping
79 canali da 1MHz
TDD Time division duplexing
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%
A
B
625 s
t
t
f(2k) f(2k+1) f(2k+2)
>=260 s
Topologia
active slave
master
parked slave
standby
Piconet
Ruoli
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)
BD_address
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
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
1227CLK
1.25mS625uS
312.5uS
3200 Hz
1.28S
711 610 5 29 4 18 3 0
Sequenza di Hopping
NATIVE CLK HOP Channel
MASTER BD_ADDR
sequence
phase
Offset
27 bits
28 bits (LAP+4 bits UAP)
1 : 79Selection kernel
27 bits
Pacchetti
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
access code packet header payload
72b 54b 0-2745b
FEC
• 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
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
Preambolo Sync word Trailer
4LSB MSB464
Correlatore
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
0x0=1
1 0 0 0 1 1 0 0 1......0 1 0 0X X X X X X X X X X X
X
Ac1 Ac2 Ac3 Ac4 Ac62Ac5 Ac63Ac6 Ac64
Sinc word
Bits ricevuti
Operatore xor:
Operatore somma
1x1=11x0=00x1=0
Packet header
AM_ADDR HEC3 1 8
AM_ADDR
TYPE
FLOW
ARQN
slave active member address
payload type
LC flow control
ACK/NAK
parameter information
FLOW
1
ARQN
1
SEQN TYPE
4
SEQN retransmit ordering
HEC header error check
Il pachet header e’protetto con FEC 1/3 -> 18*3=54 bits
ARQ
MASTER
SLAVE 2
A B B CX
Z Z
G FSLAVE 1
H
NAK ACK
Flow control
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.
Pacchetti speciali
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
Class of device
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, ...)
Link asimmetrico
f(k) f(k+1) f(k+2) f(k+3) f(k+4)
f(k+3) f(k+4)f(k)
f(k)
f(k+5)
f(k+5)
f(k+5)
ACL Links
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
SCO 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
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 . . . . . . .
Tipi di pacchetto
0000000100100011
NULLPOLLFHSDM1
NULLPOLLFHSDM1
1
0100010101100111
HV1HV2HV3
DH1
2
DV10001001
101010111100
DM3DH3
3
1101
11101111
DM5DH5
4
type segment ACL linkSCO link
AUX1
DM1
DH1
DM3
DH3
DM5
DH5
108.8
172.8
258.1
390.4
286.7
433.9
108.8
172.8
387.2
585.6
477.8
723.2
108.8
172.8
54.4
86.4
36.3
57.6
type symmetric asymmetric
Payload (solo nei link ACL)
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 header Payload Body (0:2700 bits) CRC (16 bits)
Data whitening
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
Payload processing
Connessione iniziale
79 32
TX
RX
312.5 us
• 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
Page
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
Inquiry
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
Stati
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 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.