Académique Documents
Professionnel Documents
Culture Documents
Sumrio
1. 2. 3. 4. 5. 6.
Contexto
Comeou em 1994 pela Ericsson A tecnologia Bluetooth mantida pelo Bluetooth Special Interest Group (SIG) com mais de 6 mil membros de diferentes setores:
Telecomunicaes, computao, indstria automobilstica, automao industrial, setor musical,... Agere, Ericsson, Intel, Lenovo, Microsoft, Motorola, Nokia e Toshiba
Origem do nome: Rei Harald Blatand conhecido como Harold Bluetooth. Viveu no sculo X e unificou faces suas, norueguesas e dinamarquesas.
Contexto
Principal objetivo interconectar dispositivos sem fio curta distncia com baixo custo Interconexo entre diferentes tipos de dispositivos
Celulares, telefones,PDAs, PCs, automveis, impressoras, mouse, teclado, cmera digital, fones de ouvido, hot spots, culos, jaquetas, consoles de videogame,MP3 players, tnis, monitor cardaco, jogos mveis, bluejacking e redes sociais.
Tecnologia
Pode dividir esta banda em 79 canais Pode sofrer influncia do microondas, porto eletrnico, bab eletrnica, redes 802.11 Classe 1: at 100m Classe 2: at 10m Classe 3: at 1m
Tecnologia
Arquitetura
Cada dispositivo possui um endereo fixo e nico (BD_ADDR) de 48 bits Comunicao entre um dispositivo mestre (master) e dispositivos escravos (slaves) Uma rede dispositivos BT chamada de piconet
Possui um dispositivo master que inicia um link de comunicao At 7 dispositivos escravos Um slaver pode trocar de papel com o master Compartilham o mesmo canal
http://www.tutorial-reports.com/system/files?file=bluetoothscatternetpiconet.gif
Arquitetura
Dispositivos slavers podem participar de diferentes piconets Dispositivo pode ser master em uma piconet e slaver em uma ou mais piconets
S4 S1
Piconet A
S5 S3 S6
Scatternet
S7
M1
M2
Piconet B
S2
Arquitetura
Utiliza um modelo de pilha de protocolos para facilitar o desenvolvimento de hardware e software Chamada de Bluetooth Stack Protocolos de mais baixo nvel (hardware) e de alto nvel (software)
Arquitetura
Arquitetura
Estrutura base de comunicao Permite abrir canais de udio diretamente entre devices Configurao do link entre dispositivos Responsvel pela segurana criptografia e autenticao Implementado em software responsvel pela interconexo das aplicaes com hardware Equivalem aos drivers de um sistema operacional
Arquitetura
Oferece suporte ao trfego de dados (ACL) No suporta udio Oferece servio orientado a conexo para protocolos de alto nvel. Troca de mensagens L2CAP Usado para descobrir dispositivos Bluetooth Protocolo que simula a porta serial conforme o padro RS-232
RFCOMM
Arquitetura
Definido pelo IrDA (Infrared Data Association) Serve para trocar objetos de forma sncrona e simplificada Objetos: vCard, vCalendar WAP PPP TCP/UDP/IP
Outros protocolos
Arquitetura
Profiles
Definies dos protocolos para um determinado modelo de uso da tecnologia Bluetooth GAP Generic Access Profile
Todos os dispositivos implementam.
General Profiles
SPP Serial Port Profile SDAP Service Discover Application Profile GOEP Generic Object Exchange Profile
JSR-82
Implementao do padro Bluetooth para plataforma J2ME (dispositivos com poucos recursos) Permite:
Registrar servios Descobrir dispositivos e servios Permite conexo RFCOMM, L2CAP e OBEX Criar conexes entre dispositivos enviar e receber dados No suporta comunicao via voz Gerencia e controla a comunicao das conexes Oferece servios de segurana
JSR-82
Programando Bluetooth
1. Configurar o dispositivo Bluetooth 2. Gerenciar o dispositivo 3. Procurar dispositivos 4. Registrar servios 5. Procurar servios 6. Efetuar conexo atravs do RFCOMM
Programando Bluetooth
1. Configurar o dispositivo Bluetooth
Inicializar a pilha Bluetooth Dispositivos oferecem uma aplicao externa para configurar a pilha Bluetooth Control Center (BCC) No BCC possvel definir:
Nome amigvel para o dispositivo (alias) Se visvel por outros dispositivos Ligar/desligar o Bluetooth Se requer autenticao
Programando Bluetooth
2. Gerenciar o dispositivo
As classes LocalDevice e RemoteDevice so responsveis em manter as informaes definidas pelo profile GAP Oferecem informaes sobre endereo e nome dos dispositivos Alm de informar o tipo de device (DeviceClass) e os tipos de servios que so oferecidos
Programando Bluetooth
3. Procurar dispositivos
necessrio obter um agente (DiscoveryAgent) para buscar os dispositivos remotos Pode efetuar as buscas da seguinte forma: Efetuar uma nova busca Buscar dispositivos pr-conhecidos Buscar dispositivos em uma consulta anterior
Programando Bluetooth
3. Procurar dispositivos
Programando Bluetooth
4. Registrar servio
//Servico RFCOMM String url = "btspp://localhost:6663366633111;name=TesteBT"; StreamConnectionNotifier servico = (StreamConnectionNotifier) Connector.open(url); ServiceRecord sr = local.getRecord(servico); //Bloqueia ateh criar a conexao StreamConnection conn = (StreamConnection) servico.acceptAndOpen(); //faz as operacoes necessarias //... //Encerra o servico servico.close();
Programando Bluetooth
6. Procurar servios
Localiza os servios que esto disponveis nos dispositivos remotos So descobertos atravs do uso do DeviceListener que deve ser implementada pela classe que deseja conhecer os servios
LocalDevice local = LocalDevice.getLocalDevice(); DiscoveryAgent agente = local.getDiscoveryAgent(); //define a priori os parametros da busca agente.searchServices(attrs,uuids,devices,listener);
Programando Bluetooth
6. Efetuar conexo atravs do RFCOMM
Dois dispositivos podem compartilhar apenas uma sesso por vez O esquema usada na URL: btspp Uma sesso pode ter mais de 60 conexes lgicas Um dispositivo pode ter at 30 servios ativos baseados em RFCOMM Dispositivo suporta um nico cliente por vez Aps a conexo criada basicamente utilizado o GFC/streams
Links teis
Bluetooth SIG http://www.bluetooth.com Sony Ericsson. Developing Applications with Java APIs for Bluetooth (JSR-82). Janeiro, 2004 Wireless Application Programing with J2ME and Bluetooth http://developers.sun.com/techtopics/mobility/ midp/articles/bluetooth1/ The Java APIs for Bluetooth Wireless Technology http://developers.sun.com/techtopics/mobility/ midp/articles/bluetooth2/ JSR-82 Bluetooth API e OBEX API http://java.sun.com/javame/reference/apis/js r082/index.html