Presentazione Marco Bianchessi Laurea in Ingegneria Elettronica Politecnico di Milano Lavoro In...

Post on 01-May-2015

219 views 0 download

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 marco.bianchessi@st.com

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.