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
Applications
TCP/IP HID RFCOMM
Data
Audio
L2CAP
Link Manager
Baseband
RF
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)
AM Radio
100Khz
TV UHF
GSM
1 Mhz
GPS
1GHz
Radio OC
TV VHF
10Mhz
FM Radio TV VHF
100Mhz
GSM DECT
UMTS ISM
1800
2GHz
Telepass
3GHz
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
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
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)
Frequency hopping
freq
2.402
2.480
79 canali da 1MHz
master
slave
time
TDD Time division duplexing
f(2k)
f(2k+1)
A
>=260 ms
B
f(2k+2)
t
t
625 ms




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%
Topologia
Piconet
master
active slave
parked slave
standby
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
3200 Hz
CLK 27
12 11 10 9 8 7 6 5 4 3 2 1 0
312.5uS
1.28S





1.25mS
625uS
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
Sequenza di Hopping
27 bits
Selection kernel
HOP
Channel
phase
NATIVE CLK
1 : 79
sequence
27 bits
Offset
28 bits (LAP+4 bits UAP)
MASTER BD_ADDR
Pacchetti
72b
54b
access code packet header



0-2745b
payload
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
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
LSB
4
Preambolo


Sync word
4 MSB
Trailer
Preambolo: vale 1010 se syncword inizia con 1, vale 0101
se inizia con 0
Syncword:derivata dal LAP del BD_Address:
–
–
–

64
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
Correlatore
Sinc word
Ac1 Ac2 Ac3 Ac4 Ac5 Ac6
Ac62Ac63Ac64
XXXXXXX
XXXX
Bits ricevuti
1 0 0 0 1 1 0 0 1......0 1 0 0
X
1x1=1
1x0=0
Operatore xor:
0x1=0
0x0=1






Operatore somma
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
Packet header
3
AM_ADDR
4
TYPE
1
FLOW
parameter
AM_ADDR
1
ARQN
1
SEQN
8
HEC
information
slave active member address
TYPE
payload type
FLOW
LC flow control
ARQN
ACK/NAK
SEQN
retransmit ordering
HEC
header error check
Il pachet header e’protetto con FEC 1/3 -> 18*3=54 bits
ARQ
A
B
B
X
C
MASTER
SLAVE 1
SLAVE 2
G
F
H
Z
Z
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
–
–

Null
–
–

Non ha payload, richiede una risposta
Usato dal master per interrogare gli salves
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)
f(k)
f(k+3)
f(k+4)
f(k+5)
f(k+3)
f(k+4)
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
segment
1
2
3
4
type
0000
0001
0010
0011
SCO link ACL link
NULL
POLL
FHS
DM1
NULL
POLL
FHS
DM1
type
symmetric
DM1
108.8
108.8
108.8
DH1
172.8
172.8
172.8
DM3
258.1
387.2
54.4
AUX1
DH3
390.4
585.6
86.4
1010
1011
1100
1101
DM3
DH3
DM5
286.7
477.8
36.3
DH5
433.9
723.2
57.6
1110
1111
DM5
DH5
0100
0101
0110
0111
1000
1001
DH1
HV1
HV2
HV3
DV
asymmetric
Payload (solo nei link ACL)
Payload header


Payload Body (0:2700 bits)
CRC (16 bits)
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
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
312.5 us
RX
• 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
–
–
–

Parked:
–

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
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.
Scarica

Bluetooth: livelli fisico e MAC