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