Introdução à Computação Móvel
Bluetooth
Simone Melo
Bysmarck
Bluetooth
•
•
•
•
•
•
•
O que é?
Como surgiu?
Por que o nome Bluetooth?
Objetivo
Desafios
Aplicações Bluetooth
Arquitetura
O que é?
• Bluetooth é uma tecnologia para conexão
sem fio (wireless) a curta distância de
dispositivos como celulares, palm tops,
fones de ouvido, microfones,
computadores, teclados, etc..
• Por meio de conexões de rádio ad hoc.
Surgimento
• A idéia original surgiu em 1994, com a Ericsson,
que visava substituir os cabos que ligavam seus
aparelhos celulares aos diversos acessórios
existentes por meio de uma tecnologia sem fio;
• Quatro anos depois em 1998, Ericsson, IBM,
Intel, Nokia e Toshiba se uniram e formaram o
Bluetooth SIG (Special Interest Group), com o
objetivo de expandir e promover o conceito
Bluetooth e estabelecer um novo padrão
industrial.
• Atualmente o Bluetooth SIG já conta com
milhares de empresas de todo o mundo.
Por que o nome Bluetooth?
• A escolha do nome foi uma homenagem
ao unificador da Dinamarca, o rei Harold
Blatand, mais conhecido como Harold
Bluetooth ou Harold Dente Azul, que
unificou a Noruega e Dinamarca e
controlou ambas até a morte.
Objetivo
• Prover comunicação sem fio entre
pequenos dispositivos móveis através de
enlaces de rádio;
• Mercado alvo: laptop, PDAs, pagers,
telefones, computadores e outros
dispositivos.
• Substituir cabos na comunicação entre
periféricos.
• Mobilidade, substituição de cabos.
Objetivo
Bluetooth
• Dispositivos Bluetooth operam na faixa de
frequência de ISM (Industrial, Scientific,
Medical) centrada em 2.4 Ghz.
• Faixa aberta e livre de tributação.
• A transmissão de dados ocorre a uma taxa
de 1Mbps.
• Cobertura pequena, tipicamente 10 metros.
Desafios
• Suporte para voz e dados;
• Capacidade para estabelecer conexões ad
hoc;
• Provimento de segurança comparável a da
rede cabeada;
• Consumo de energia compatível;
• Encorajar o desenvolvimento de aplicações
Redes no Bluetooth
• Os dispositivos Bluetooth se comunicam entre si
e formam uma rede denominada piconet.
• Uma piconet é formada por até 8 dispositivos,
sendo 1 mestre e os demais escravos. Todos os
dispositivos estão sincronizados ao relógio e
sequência de salto de frequência (frequency
hopping) do mestre.
• Cada piconet utiliza um canal de comunicação
• Conexão ponto-a-ponto e ponto-a-multiponto
• Scatternet
Redes no Bluetooth
a) Conexão Ponto-a-ponto
b) Conexão ponto a Multiponto
c) Scatternet
Piconet
Scatternet
Aplicações com Bluetooth
Bluetooth no escritório
 Você chega no escritório
e coloca sua pasta na
mesa, perto do seu
computador pessoal(PC)
 Enquanto isso, seu PDA
“sincroniza” automaticamente
as atividades
executadas no assistente
com seu PC e transfere
arquivos, e-mails e
outras informações
Aplicações com Bluetooth
Bluetooth em casa
 Ao chegar em casa, a
porta é automaticamente
aberta, as luzes são
acesas, o aquecimento ou
o ar condicionado ligado,
a música começa a tocar
– tudo de acordo com as
preferências previamente
definidas
Aplicações com Bluetooth
Bluetooth na viagem
 Você chega ao aeroporto
e existe uma longa fila
para fazer o “check-in”
 Usando o seu PDA, você
apresenta um “bilhete
eletrônico” e
automaticamente
seleciona o assento
Aplicações com Bluetooth
Bluetooth na viagem
 A sala de embarque possui
interfaces Internet via bluetooth
 Você e outros passageiros
usam dispositivos
portáteis, como laptops,
PDAs, celulares com
Bluetooth, para acessar o
escritório, etc, através do
servidor da empresa ou
para fazer chamadas telefônicas
(VoIPoBluetooth)
Aplicações com Bluetooth
Bluetooth na viagem
 Você entra num ônibus da
empresa de aluguel de
carros que o deixa perto
do carro com interface
Bluetooth que vai dirigir
 Já no carro, o seu PDA
contacta o hotel para
saber sobre a reserva e
um sistema de navegação
passa a informar a rota a
ser seguida para o hotel
Aplicações com Bluetooth
Bluetooth na viagem
 Ao chegar no hotel, o
“check-in” é feito automaticamente
 Você recebe no seu PDA
o número do quarto e a
chave eletrônica
 Ao chegar perto do
quarto, a porta é aberta
automaticamente
Aplicações com Bluetooth
Bluetooth em negócios
 Você vai a uma feira e
informa as suas
preferências sobre
informações de produtos
que deseja receber
 À medida que você
anda, o seu PDA detecta
expositores e outras
pessoas com interesses
semelhantes
Aplicações com Bluetooth
Bluetooth no carro
 Ao entrar no carro, você
é lembrado das
atividades na sua
agenda, e de outras
informações específicas
como resultados de
jogos, quotações, etc
Aplicações com Bluetooth
Bluetooth no carro
 Você está dirigindo e
recebe uma mensagem
que é transmitida
verbalmente para o
sistema de som do carro
 Imediatamente você
gera uma resposta para
essa mensagem
Aplicações com Bluetooth
Bluetooth em ambientes sociais
Você vai a um bar e
recebe um dispositivo
Bluetooth
 Usando esse dispositivo
você pode se comunicar
com outras pessoas,
pedir bebidas, tiragostos,
pratos, pagar a
conta, participar de
jogos, etc
Especificação Bluetooth
 A especificação está dividida em em dois grupos:
 Core especification – descrve os detalhes das várias
camadas da arquitetura de protocolos do Bluetooth;
 Profile especifications – preocupa-se com o uso da
tecnologia do Bluetooth para dar suporte a várias
aplicações. A porposta é definir padrões de
interoperabilidade.
Arquitetura
Figura 01 – Arquitetura Bluetooth
Arquitetura
• Rádio  lida com a transmissão de dados via RF e sua
modulação.
• Baseband  descreve a especificação do Controlador
de Enlace do Bluetooth (LC), sendo responsável pelo
protocolo de controle e por várias rotinas de enlace de
baixo nível.
• LMP corresponde ao Protocolo de Gerenciamento de
Enlace (Link Manager Protocol), utilizado na
configuração e controle dos mesmos.
• HCI  representa a Interface de Controle do Host (Host
controller Interface), provendo às camadas superiores
uma interface padrão de acesso ao Controlador e ao
Gerenciador de Enlace.
Arquitetura
• L2CAP Logical Link Control and Adaptation Protocol 
realiza a segmentação e montagem de pacotes, a
multiplexação e demultiplexação dos mesmos, e lida
ainda com os requisitos de qualidade de seviço.
• RFCOMM  emula uma porta serial convencional,
permitindo que dispositivos já existentes possam ser
facilmente incorporados ao sistema.
• SDP (Service Discovery Protocol)  permite que sejam
descobertos quais os serviços disponíveis nos
dispositivos Bluetooth, e quais as suas características.
• Os demais elementos representam os diversos tipos de
perfis definidos na especificação.
Rádio
Define três classes de transmissão baseadas em potência
de transmissão:
 Classe 1: 1 a 100mW
 Classe 2: 0,25 a 2,5 mW
 Classe 3: baixa potência. Transmissão nominal é
1mW
Banda Base
• Corresponde em termos de camadas do modelo OSI, às
camadas física e de enlace.
• Ela lida com o controle dos canais físicos e lógicos, do
acesso ao meio, e de serviços como detecção e correção
de erros, entre outros.
Banda Base
O Bluetooth usa a técnica de salta em frequência
(frequency hopping - FH) para:
• Evitar interferências externas;
• Fornecer uma forma de acesso múltiplo entre
dispositivos em diferentes piconets.
Banda Base
Como FH trabalha:
• A largura total da banda é dividida em 79 canais físicos
• Cada canal possui uma largura de banda de 1MHz
• FH ocorre pelo salto de um canal físico para o outro em uma
sequência semi-aleatória.
• A mesma sequência de saltos é compartilhada por todos os
dispositivos sobre uma única piconet;
• A taxa de saltos é de 1600 saltos por segundo (1600h/s), de modo
que cada canal físico é ocupado por uma duração de 0,625µs;
• O intervalo de duração de cada canal físico é chamado de slot, e
são numerados sequencialmente
Banda Base
A comunicação por rádio do Bluetooh usa a técnica Time
Division Duplex (TDD).
TDD:
A transmissão ou recepção de dados é feita em uma
única direção no tempo, com a alternância entre as duas
direções, usando a mesma freqüência.
Banda Base
A técnica de acesso é TDMA
A modularização da freqüência não é necessária,isto
é, o receptor pode ficar na mesma freqüência o tempo
todo.
O acesso a uma piconet é caracterizado por
 FH-TDD-TDMA
Banda Base
k – número do slot
f(k) – canal físico
Figura 02 – FH/TDD
Banda Base
Obsevação:
Embora, diferentes piconets em uma mesma área tenham
diferentes Mestres, onde usarão diferentes sequencias de
saltos, eventualmente diferentes canais físicos,
ocasionalmente, duas piconets usarão o mesmo canal
físico durante o mesmo slot de tempo, causando uma
colisão e perda de dados.
Para resolver tal problema usa-se Code Division Multiple
Access (CDMA)
Banda Base
(Links Físicos)
A especificação Bluetooth define dois tipos de links entre
as unidades mestre e escrava:
• SCO (Synchronous Connection-Oriented)
• ACL (Asynchronous Connectionless)
Banda Base
(Links Físicos)
 SCO (Synchronous Connection-Oriented)
 conexão ponto-a-ponto;
 reserva de slots (um par consecutivo, um em cada direção de
transmissão);
 sem retransmissão de pacotes;
 o mestre suporta até três SCO simultâneos com um único
escravo ou com escravos distintos;
 Um escravo pode comportar 3 links SCO, com o mesmo
mestre, ou apenas 2, caso dois mestre estejam envolvidos;
 exemplo de uso: transmissão de voz
Banda Base
(Links Físicos)
 SCO (Synchronous Connection-Oriented):
Estabelecimento do enlace
 o mestre envia uma mensagem de setup por intermédio
do protocolo LMP, contendo os elementos que seguem,
os quais definem o slot inicial de transmissão:
a) o tamanho do intervalo de transmissão (TSCO);
b) um flag, indica o método de calculo para o slot inicial
de transmissão, de forma a evitar erros devido ao
problema da virada do relógio;
c) um offset, denomidado (DSCO)
Banda Base
(Links Físicos)
 ACL (Asynchronous Connectionless)




conexão ponto-a-multiponto;
sem reserva de slots;
Entre o mestre e o escravo existe apenas um único enlace ACL;
Aplica-se detecção de erros e retransmissão de pacotes;
 ACL troca de pacotes
 Um escravo pode enviar um pacote ACL apenas após ter sido
endereçado no pacote ACL anterior pelo mestre
 Caso o ACL não seja endereçado a nenhum escravo em particular,
ele é considerado pacote de broadcast
Banda Base
(Pacotes)
Figura 03 – Formato geral do pacote Bluetooth
Banda Base
(Pacotes)
• Access Code – usado para sincronização das unidades
da piconet, a compensação do componente DC, e a
identificação da piconet ou do dispositivo endereçado;
• Header – usado para identificar o tipo de pacote e a
informação de controle do protocolo de transmissão;
• Payload – O conteúdo do campo de payload depende
do tipo de pacote enviado; de forma geral, quando o
pacote em questão não é de controle, este campo pode
ser composto por um campo de voz, um campo de
dados, ou ambos.
Banda Base
(Pacotes)
 Access Code
Figura 04 – formato do código de acesso
 PREAMBULO - composto por uma seqüência fixa de 0's e 1's,
utilizada para a compensação DC.
 SYNC WORD - é composto por um código derivado da parte
baixa do endereço do dispositivo, denominada LAP, de Lower
Address Part.
 TARILER – quando o código de acesso é seguido por um
cabeçalho (header), o campo de trailer, formado por 0's e 1's
alternados, é enviado, visando melhorar ainda mais a
compensação DC.
Banda Base
(Pacotes)
 Access Code: tipos de código de acesso
• CAC (Channel Access Code) - Identifica a piconet de
forma única, sendo incluído em todo os pacotes
transmitidos através do canal.
• DAC (Device Access Code) - utilizado para o
procedimento de paging
• IAC (Inquiry Access Code) - tilizado quando o master
deseja descobrir quais dispositivos Bluetooth estão
presentes em seu raio de ação. Esta interrogação pode
ser geral (GIAC, de General Inquiry Access Code), ou
dedicada (DIAC, de Dedicated Inquiry Access Code).
Banda Base
(Pacotes)
 Header
Figura 05 – Formato do cabeçalho
Banda Base
(Pacotes)
 Header
• AM_ADDR (3 bits): Endereço do membro ativo. Constitui-se
de uma rótulo de 3 bits único para cada escravo ativo na
piconet. O rótulo 0 é utilizado para mensagens de broadcast.
Todo pacote trocado entre o mestre e um escravo contém o
AM_ADDR do escravo em questão.
• TYPE (4 bits): Tipo do pacote. São definidos ao todo 16 tipos
de pacote, sendo que a interpretação do seu significado
depende do tipo de link físico utilizado (SCO ou ACL).
• FLOW (1 bit): Utilizado para controle fluxo no caso de
pacotes ACL. O valor 0 (STOP) indica que a transmissão
deve ser interrompida temporariamente, enquanto que o valor
1 (GO) indica que a transmissão pode prosseguir.
Banda Base
(Pacotes)
 Header
• ARQN (1 bit): Indica sucesso (ARQN = 1, ACK) ou falha (ARQN
= 0, NAK) no envio de um pacote ACL de informação com CRC.
O não recebimento de um ACK faz com que seja assumida falha
no envio do pacote.
• SEQN (1 bit): Determina a seqüência de um pacote de
informação com CRC, de forma que o receptor possa identificar
retransmissões de pacote devido à perda do ACK (método do bit
alternante).
• HEC (8 bits): Este campo, acrônimo de Head Error Check, ou
Verificador de Erro de Cabeçalho, permite a verificação da
integridade do cabeçalho enviado.
Banda Base
(Tipos de Pacotes)
 Existem três grupos distintos:
 Os pacotes comuns a ambos os tipos de enlace;
 Os pacotes específicos de enlace SCO;
 Os pacotes específicos de enlace ACL
Banda Base
(Tipos de Pacotes)
Os pacotes comuns a ambos os tipos de enlace:
•
•
•
•
ID - Pacote de identidade, utilizado nas rotinas de interrogação, resposta, e
paging. Contém apenas o código de acesso, que pode ser do tipo DAC ou
IAC.
NULL - Pacote nulo. Utilizado para reportar o sucesso de uma transmissão
prévia (ARQN), ou o estado do buffer de recepção (FLOW). É utilizado
quando não há dados a serem transmitidos, sendo constituído apenas pelo
CAC e pelo cabeçalho do pacote.
POLL - Pacote de polling. Utilizado para verificar se existe algo a ser
transmitido. Ao receber um pacote deste tipo, o escravo deve
obrigatoriamente responder a ele, mesmo que não haja nada a ser
transmitido. Este pacote é constituído pelo CAC e pelo cabeçalho,
somente.
FHS - Pacote de controle especial, utilizado, entre outras coisas, para
responder a pacotes de interrogação e de paging, informar o endereço do
mestre, e fornecer o AM_ADDR dos escravos. No caso, o payload do
pacote é subdividido em diversos campos menores. Este tipo de pacote
ocupa apenas um slot de tempo.
Banda Base
(Tipos de Pacotes)
Os pacotes específicos de enlace SCO
• HV1 - Carrega 10 bytes de informação enviados com FEC
1/3, ocupando 240 bits. Estes pacotes devem ser enviados a
cada 2 slots tempo (TSCO = 2).
• HV2 - Carrega 20 bytes de informação enviados com FEC
2/3, ocupando 240 bits. Pacotes deste tipo devem ser
enviados a cada 4 slots de tempo (TSCO = 4).
• HV3 - Carrega 30 bytes de informação, sem FEC. Pacotes
deste tipo devem ser enviados a cada 6 slots de tempo
(TSCO = 6).
• DV - Este tipo de pacote permite o envio conjunto de voz e
data. O payload é dividido em 10 bytes de voz (sem FEC) e
150 bits de dados (com CRC) codificado com FEC 2/3.
Banda Base
(Tipos de Pacotes)
Os pacotes específicos de enlace ACL
• DM1 - Pacote contendo apenas dados. Pode conter até 18 bytes de
informação (incluindo o cabeçalho do payload) e 16 bits de CRC,
codificados com FEC 2/3. Este tipo de pacote pode ocupar, no
máximo, 1 slot de tempo.
• DH1 - Similar ao DM1, só que sem o FEC. Pode conter até 28 bytes
de informação. Também só pode ocupar 1 único slot de tempo.
• DM3 - Similar ao pacote DM1, só que maior. Pode conter até 123
bytes de informação (incluindo-se 2 bytes de cabeçalho), mais 16
bits de CRC, sendo codificado com FEC 2/3. Este tipo de pacote
pode ocupar até 3 slots de tempo.
• DH3 - Similar ao DM3, só que sem o FEC. Pode conter até 185
bytes de informação, ocupando, no máximo, 3 slots de tempo.
Banda Base
(Tipos de Pacotes)
Os pacotes específicos de enlace ACL (cont.)
• DM5 - Similar aos pacotes DM1 e DM3, só que maior. Pode conter
até 226 bytes de informação (incluindo-se 2 bytes de cabeçalho),
mais 16 bits de CRC, sendo codificado com FEC 2/3. Pode ocupar
até 5 slots de tempo.
• DH5 - Similar ao DM5, só que sem o FEC. Pode conter até 341
bytes de informação, ocupando, no máximo, 5 slots de tempo.
• AUX1 - Similar ao DH1, só que sem o CRC. Pode conter até 30
bytes de informação, devendo ocupar apenas 1 slot de tempo.
Banda Base
(Correção de Erros)
No nível banda base, Bluetooth faz uso de 3 esquemas de
detecção de erros:
 1/3 rate FEC (forward error correction) – envolve o envio de 3
cópias de cada bit;
 2/3 rate FEC – usado em pacotes DM e no campo de dados de
pacotes DV, FHS e HV2
 ARQ (automatic repeat request) – é usado com pacotes DM e
DH e no campo de dados de pacotes DV
Banda Base
(Controle do Canal)
A operação de uma piconet pode ser entendida em termos
de estados de operação durante o estabelecimento e
manutenção do enlace. Existe dois principais estados:
 standby – é o estado padrão de baixo consumo,
onde apenas o relógio nativo do dispositivo
permanece ativo;
 Conexão – o dispositivo está conectado a uma
piconet como um mestre ou um escravo. E pode
interagir com os demais dispositivos presentes.
•
•
•
•
•
•
•
Inquiry
inquiry scan
page
page scan
master response
slave response
inquiry response.
Banda Base
(Controle do Canal)
Figura 06 - Diagrama de estados
durante o estabelecimento e
manutenção do enlace
Banda Base
(Controle do Canal)
Dentro do estado de conexão, uma unidade pode se
encontrar nos modos de operação:
– Active: modo no qual uma unidade participa ativamente no canal.
– Sniff: neste modo, a unidade escrava escuta o canal a uma taxa
reduzida, poupando energia. O intervalo de sniff é programável, sendo
dependente da aplicação. Dentre os modos de economia de energia
existentes, é o que possui maior consumo.
– Hold: modo intermediário de economia de energia.
– Park: apesar de permanecer sincronizado com a piconet, neste modo
de operação uma unidade escrava não participa do tráfego do canal; o
único procedimento realizado é a manutenção do sincronismo com o
mestre, obtido através da escuta ocasional de mensagens. Os escravos
que atuam neste modo de operação perdem os seus rótulos
(AM_ADDR), devendo reobtê-los para poderem participar novamente
no canal. Este modo de operação oferece o menor consumo de energia
dentre os demais.
Protocolo de Gerenciamento de
Enlace – LMP (Link Manager Protocol)
LMP controla vários aspetos do enlace de rádio entre o mestre e o
escravo.
 O protocolo envolve a troca de mensagens na forma de LMP PDUs
(protocol data units) entre as entidades LMP no mestre e escravo;
 os procedimentos definidos pelo LMP são agrupados em 24 áreas
funcionais, as quais envolvem a troca de uma ou mais mensagens,
dividas em:
 Serviços de sergurança;
 Tempo/sincronização;
 Habilidades da estação
 Controle de modo
Protocolo de Gerenciamento de
Enlace – LMP (Link Manager Protocol)
Exemplo de PDUs:
Controle de Enlace Lógico e
Protocolo de Adaptação – L2CAP
 É o protocolo que atua na camada de enlace de dados
 Faz uso de enlaces ACL
 Não fornece suporte a enlaces SCO
 Suporte serviços de dados:
• orientados a conexão – serviço confiável de datagramas
• não orientados a conexão – uma conexão lógica é setada
entre os dois usuários trocando dados, e fluxo e controle
de erros é fornecido
Controle de Enlace Lógico e
Protocolo de Adaptação – L2CAP
L2CAP fornece três tipos de canais lógicos:
 Sem conexão – cada canal é unidirecional.
Tipicamente usado para broadcast de um mestre
para multiplos escravos;
 Orientado a conexão – cada canal é bidirecional;
 Sinalização – fornece troca de mensagens de
sinalização entre entidades L2CAP
Controle de Enlace Lógico e
Protocolo de Adaptação – L2CAP
• Associado com cada canal existe um identificador de
canal (CID):
• Entre o mestre e qualquer escravo existe somente um
canal sem conexão e um canal de sinalização, mas
pode existir múltiplos canais orientados a conexão.
Controle de Enlace Lógico e
Protocolo de Adaptação – L2CAP
Pacotes L2CAP:
Bibliografia
• http://www.dcc.ufmg.br/~loureiro/cm/docs/
cm_arquitetura.pdf
• http://www.gta.ufrj.br/seminarios/semin200
3_1/stein/index.html
Download

Bluetooth - DEINF/UFMA