Bluetooth Ana Cristina Benso da Silva Andrei Oliveira da Silva

Slides:



Advertisements
Apresentações semelhantes
Conectividade.
Advertisements

Tecnologias IrDa e Bluetooth
Interações cliente/servidor usando o UDP
AUTOMAÇÃO DE ESCRITÓRIOS
WiFi Daniel Filippi Gustavo Rodrigues Kassyus de Souza Rafael Fares
BLUETOOTH André Oquendo Silva Danilo Cunha Frederico Leite Beneti
Bruno Borba Demetrio Carrión
Comunicação entre processos distribuídos
Redes wireless Aula 08 – Bluetooth Prof. Espec. Diovani Milhorim
Bluetooth e suas aplicações
Redes de Computadores Arquitetura de Protocolos
Conceitos Relacionados a Internet
Conceitos de Sockets Universidade Federal do Rio Grande do Sul (UFRGS)
Tele-Processamento e Redes (Redes de Computadores) Prof. Fábio Moreira Costa Universidade Federal de Goiás Instituto de Informática Curso de Ciência da.
por Celso Soccol , Igor Poltosi , Régis Araújo , Ricardo Piccoli
Tamires Maciel Vitor Barbosa
por Lucas Plautz Prestes Erich Corrêa Lersch
Igor Kramer Pinotti Vinícius Santos da Silva
Igor Kramer Pinotti Vinícius Santos da Silva
Diego Martins e Felipe Lima
Paulo Roberto Freire Cunha
Prof. Alessandro Brawerman
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI Sockets Abril, 98Isidro Vila Verde 1 Formato das estruturas de dados Estrutura.
Obtenção de IP TCP UDP.
TCP/IP básico e outros protocolos
Introdução às Redes Privadas Virtuais - VPN
Bluetoot Padrão para comunicação sem fio, de curto alcance e baixo custo, por meio de conexões de rádio ad hoc. Através do Bluetooth, os usuários poderão.
INTRODUÇÃO À COMPUTAÇÃO
NETBIOS Disciplina: Redes de Computadores
Aula 5 - Redes de Computadores – Parte 2
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Modelo de referência OSI
Aula 9 - Camada de aplicação
Universidade Federal do Rio de Janeiro Departamento de Eletrônica Discliplina: RedesI Prof:Otto Bluetooth André Quadros.
Camada Física e Controle de Acesso ao Meio
Módulo de Transmissão e Ativos de Rede Curso Técnico de Informática
Infra-estrutura de TI Redes de Computadores
Módulo de Transmissão e Ativos de Rede Curso Técnico de Informática
Tecnologias WAN Guilherme Guimarães.
Redes de Computadores.
Bluetooth Willamys Araújo.
CCNA 1 – Modelos OSI e TCP/IP
Juliano Maia Letícia Conte.  Surgiu para unir tecnologias como celular, headsets,...  1994: a empresa Ericson busca por uma tecnologia de transmissão.
Introdução à Computação Móvel Bluetooth
Carlos Maurício S. Figueiredo
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
UNEMAT-FACIEX MODELOS DE REFERÊNCIA Dr. José Raúl Vento 2005.
AULA 3 – ELEMENTOS DE INTERCONEXÃO DE REDES
Curso de Formação de Praças – CFP/
Aula 5 Redes de Computadores – Parte 2
PROF PAULO MAXIMO, MSc Network.
Bluetooth.
Subcamada de Controle de Acesso ao Meio
Desenvolvimento de Aplicações TCP/IP com Sockets Márcio de Sousa Dias
Carlos Roberto da Silva Filho, M. Eng.
Modelo OSI Apresentação Sessão Transporte Rede Enlace Física Aplicação
Disciplina de: Comunicação de Dados Professor: Carlos Pereira Trabalho Realizado por: João Santos.
Introdução Tecnologia de comunicação “wireless” de curto alcance para dados ou voz Alcance 10 metros ( versão para 100 metros em desenvolvimento ) Largura.
Modelo OSI Disciplina: Comunicação de Dados Ricardo Bento 12ºL nº11.
MESTRADO EM ENGENHARIA ELECTROTECNICA E COMPUTADORES SISTEMAS DIGITAIS E INFORMÁTICA INDUSTRIAL.
Bruno Rezende Daniel Luiz Denis Leandro Thiago Paccelle Vânia Pereira.
Ivo Gonçalves <19433> Sónia Gonçalves <19617>
Características, protocolos e funcionamento
1 Programação Distribuída em Java Aula Na aula de hoje veremos: Introdução Conceito de Rede Protocolos Modelo ISO/OSI Modelo TCP/IP Modelo Cliente/Servidor.
Bruno Rezende Daniel Luiz Denis Leandro Thiago Paccelle Vânia Pereira.
Componentes: ☺Artur Freitas ☺Marcos Eich ☺Rafael Hocevar
Protocolos de Comunicação e Passagem de Mensagens
Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho.
Arquitetura em Camadas
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Bluetooth Ana Cristina Benso da Silva Andrei Oliveira da Silva Fabrício D’Avila Cabral CPSE – Centro de Pesquisa em Software Embarcado FACIN/PUCRS – Faculdade de Informática

Roteiro Introdução Redes Wireless Bluetooth - Visão Teórica O mundo Wireless Bluetooth - Visão Teórica Histórico Funcionamento Pilha de Protocolos Bluetooth –Visão Prática Instalando e Configurando Dispositivos Bluetooth BlueZ – Pilha Bluetooth para Linux Exemplos de Aplicações

Introdução CPSE – Centro de Pesquisa em Software Embarcados Iniciou atividades em 2002 Cooperação PUCRS/ HP Brasil Foco Redes sem fio Computação ubíqua Software embarcado Linguagens de representação e design de documentos digitais Tecnologias

Redes Wireless Internet 90´s Grande acontecimento Eliminou a barreira da distância geográfica Alteração de paradigmas de disponibilização e obtenção de informações

Redes Wireless Redes Wireless – Século XXI Nova quebra de paradigmas Desafios Tornar a tecnologia acessível a maioria dos usuários Migração de sistemas orientados a voz para sistemas orientados a dados IP Networks

Visão do Mundo Wireless 1G 2G 3G 4G IPv6 Serviços IP Dados Wireless Broadband (next generation) TCP/IP Internet UTMS Interconexão de Redes Serviços de Voz WLAN Semantic Aware Services WPAN Telefonia Celular GSM IEEE 802.11a Sistema Analógico CDMA CyberWorld IEEE 802.11b TDMA Bluetooth ??? 1980 1990 2000 2010

Wireless LAN (WLAN) Bluetooth IEEE 802.11b IEEE 802.11a 2.4 GHz – ISM Conexões de Curto Alcance IEEE 802.11b 11 Mbps IEEE 802.11a 5 GHz 50 Mbps

Bluetooth – Visão Teórica Histórico Harald Blåtand (Bluetooth) Rei Viking Dinamarquês Século X (940 a 981) Habilidade de fazer as pessoas se comunicarem Uniu e controlou a Dinamarca e Noruega Costume de comer blueberries (arando ou uva-do-monte)

Bluetooth - Histórico 1998 Bluetooth SIG (Special Interest Group) 3Com, Agere, Ericsson, IBM, Intel, Microsoft, Motorola, Nokia, Toshiba,... 1999 Primeira versão da especificação 2001 Primeiros produtos com Bluetooth Bluetooth Academy Ericsson +Teleca Comtec

Bluetooth - Aplicações Substituição de cabos Redes caseiras Redes em escritórios

Bluetooth – Aplicações Internet Bridge Transferência de Arquivos Acesso a Serviços

Bluetooth - Funcionamento Topologias Piconet Scatternet

Estabelecendo Conexão Inquiry Procura por dispositivos Estados: Inquiry Scan Inquiry Response Page Estabelece conexões Page Scan

Bluetooth – Pilha de Protocolos OBEX WAP AT- Commands SDP TCS BIN UDP/TCP IP PPP RFCOMM L2CAP Audio Host Controller Interface LMP Baseband Bluetooth Radio

Bluetooth - Radio Nível Físico Rádio Freqüência 2.4 GHZ Espectro 2400 MHz – 2483 MHz 2465 MHz – 2483 MHz Hopping Sequences 5 canais com 32 hops (79 Mhz) 5 canais com 16 hops (23 Mhz)

Bluetooth - Radio Potência do Sinal Canais suportados simultaneamente 100 m – 100mW 10 m – 2.5 mW 10 cm – 1 mW Canais suportados simultaneamente 1 canal de dados assíncrono 3 canais de voz síncronos 1 canal de dados assíncrono + 1 canal de voz síncrono Canal de Voz Síncrono – 64 Kbps Canal Assíncronos Simétricos – 433.9 Kbps Canal Assíncrono Assimétrico – 732.2 Kbps

Bluetooth - Baseband Conexões físicas como canais lógicos Funções Gerenciar o estabelecimento de conexões Controlar Fluxo Controlar Erros de Transmissão Endereçar os dispositivos com Bluetooth Address Controlar a Segurança

Baseband - Enlaces Enlaces entre Mestre e Escravo ACL (Asynchronous Connectionless Link) Ponto-a-Multiponto Tem Retransmissão SCO (Synchronous Connection Oriented Link) Ponto-a-Ponto Voz Não tem retransmissão

Baseband – Canais Lógicos LM – Link Manager Transporte de informações de controle entre os dispositivos mestre e escravo LC – Link Control Transporte de informações de controle de fluxo e correção de erros UA – User Aynchronous Transporte de dados do usuário sobre L2CAP UI – User Isochronous Transporte de serviços isócronos sobre L2CAP US – User Synchronous Transporte de serviços síncronos em enlaces do tipo SCO.

Baseband – Formato do Pacote Access Code Channel Access Code (CAC) – Piconet ID Device Code Access (DCA) – Paging Inquiry Access Code (IAC) – Inquiry Header AM_ADDR Type ARQN SEQN HEC Access Code Header Payload LSB MSB 72 54 0-2745

Baseband – Formato do Pacote FEC Forward Error Correction Enlaces SCO e ACL ID, NULL, POLL, FHS, DM1 Enlaces SCO somente HV1, HV2, HV3, DV Enlaces ACL somente DH1, AUX1, DM3, DM5, DH5

Baseband - Endereços BD_ADDR AM_ADDR PM_ADDR e AR_ADDR Bluetooth Address 6 bytes AM_ADDR Endereço do dispositivo escravo 3 Bits PM_ADDR e AR_ADDR Endereço especial para estações em parked mode PM_ADDR: mestre endereça o escravo AR_ADDR: escravo utiliza para determinar janela de acesso

Baseband – Modos de Operação Active mode Dispositivo está ativo e sincronizado como canal Sniff mode Estado de economia de energia Escutando no canal com taxa menor Park Mode Dispositivo conectado a piconet, que participa ocasionalmente Hold Mode Dispositivo reduz a participação, de acordo com a solicitação do mestre ou de sua vontade

Bluetooth - LMP Link Manager Componente de Software LMP - Protocolo Controle de comunicação, autenticação e configuração LMP - Protocolo 55 PDU’s LMP_encryption_mode_req LMP_version_res ... Link Controller - hardware

Bluetooth - HCI Host Controller Interface Interface para os comandos LMP e Baseband HCI Driver - software HCI Firmware - hardware HCI Controller Transport Layer - comunicação USB UART RS232

Bluetooth - L2CAP Logical Link Control and Adaptation Protocol Identifica e roteia mensagens para os níveis mais altos Codifica e decodifica os pacotes de dados Segmenta pacotes para o formato Baseband Demultiplexar e redirecionar RFCOMM SDP Aplicações sobre L2CAP

Bluetooth - RFCOMM Emula conexões por portas seriais Canais com até 60 portas simuladas Controle de fluxo de dados para retransmitir dados para os níveis mais altos

? ! Bluetooth - SDP Service Discovery Protocol Divulgação de serviços em uma rede Bluetooth Cliente/servidor L2CAP ? ! Device SDP

Bluetooth - Perfis Definidos pelo SIG Aplicações que utilizam os níveis superiores da pilha de protocolos Perfis de uso geral: perfis básicos que dão suporte a outros perfis Perfis de uso específico: implementam protocolos para modelos de uso

Bluetooth - Perfis Modelos de uso Cordless Desktop Internet Bridge, LAN access File Transfer, Automatic Synchronizer, Instant Postcard Briefcase Trick, Forbidden Message Interactive Conference 3-in-1 Phone Ultimate Headset, PC Speaker Phone Hands-Free Car Kit

Bluetooth – Perfis Básicos Generic Access Profile: informações básicas do dispositivo Service Discovery Application Profile: Aplicações que utilizam SDP - como usar e comportamento Serial Port Profile: emula sinais de transmissão de uma porta serial General Object Exchange Profile: transferência de dados utiliza SPP

Bluetooth – Perfis Uso Específico LAN Access Profile: ponto de acesso LAN TCP/IP SPP Dial-up Networking Profile: Modem - TCP/IP Internet sem fio Synchronization Profile: Informações Troca Atualização Object Push Profile : Troca de: Dados Objetos

Bluetooth – Perfis Uso Específico Cordless Telephony Profile: “Gateway” de telefonia Intercom Profile: “walkie-talkie” Headset Profile: Input/output remoto Áudio Fax Profile: Fax modem sem fio Manda/recebe msg

Bluetooth – Perfis Adicionais Extended Service Discovery Profile: SDP+UPnP Advanced Audio Distribution Profile: Audio alta qualidade ACL Video Remote Distribution Profile : Vídeo alta qualidade ACL Basic Printing Profile: GOEP vCards,...

Bluetooth -Hardware Dispositivos:

Bluetooth - Software Software Desenvolvimento Proprietários (3com, Toshiba,...) Drivers Desenvolvimento BlueZ (http://bluez.sourceforge.net/) Stack Linux Affix (http://affix.sourceforge.net/) Stack Linux Atinav (http://www.atinav.com/download.htm) SDK C e Java Impronto (http://www.rococosoft.com/) SDK Java

Bluetooth – Visão Prática Instalação Configuração Programação Aplicações

Aspectos Práticos BlueZ – Pilha Oficial Linux GPL Documentação API Programação Perfis

BlueZ - Instalação Arquivos Distribuições Kernel Implementação das bibliotecas básicas Implementação de perfis Aplicações de apoio Instalação rpm –ivh *.rpm Distribuições Red Hat 9.0 Mandrake 9.1 Kernel 2.4.20 2.4.21 BlueZ-libs-2.4-1.i386.rpm BlueZ-utils-2.3-1.i386.rpm BlueZ-sdp-1.2-1.i386.rpm BlueZ-hcidump-1.5-1.i386.rpm BlueZ-pan-1.1-1.i386.rpm BlueZ-bluefw-1.0.i386.rpm http://bluez.sourceforge.net/download/redhat/

BlueZ - Módulos Carregar no kernel Editar /etc/modules.conf : alias net-pf-31 blueZ - inicia a pilha BlueZ alias bt-proto-0 l2cap - inicia o protocolo L2CAP alias bt-proto-2 sco - inicia o protocolo SCO alias bt-proto-3 rfcomm - inicia o protocolo RFCOMM

BlueZ - Módulos Ativar módulos Editar /etc/rc.local: modprobe bluez - pilha BlueZ modprobe hci_usb - interface USB modprobe ppp_async modprobe ppp_deflate modprobe bnep - Ativa protocolo BNEP hcid - HCI hciconfig hci0 up - Inicia o dispositivo bluetooth

BlueZ - Módulos Exemplo de Script para iniciar os módulos: #!/bin/sh if [ "$1" == "restart" ] then echo "Killing dund process..." killall dund echo "Killing sdpd process..." killall sdpd echo "Killing hcid process..." killall hcid fi echo "Starting the BLUEZ modules and services..." modprobe bluez modprobe hci_usb modprobe ppp_async modprobe ppp_deflate modprobe bnep hcid -f /etc/bluetooth/hcid.conf hciconfig hci0 up sdpd echo "Starting dund..." sleep 2 dund --listen --channel 1 noauth echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT

BlueZ - Aplicações Ferramentas de auxílio: hciconfig hcitool sdptool Configuração (nome, classe,...) hcitool scan Inquiry sdptool browse l2ping Teste de conexão

BlueZ - Aplicações LAN Disponibiliza um serviço de LAN Access Point Configurando o DUND: Criando os dispositivos /dev/rfcommX Máximo 7 dispositivos: mknod –m 666 /dev/rfcomm0 c 216 0 mknod –m 666 /dev/rfcomm1 c 216 1 mknod –m 666 /dev/rfcomm2 c 216 2 mknod –m 666 /dev/rfcomm3 c 216 3 mknod –m 666 /dev/rfcomm4 c 216 4 mknod –m 666 /dev/rfcomm5 c 216 5 mknod –m 666 /dev/rfcomm6 c 216 6

BlueZ - Aplicações LAN Configurando o DUND (cont.): Configurando o PPP /etc/ppp/options noauth local noipdefault proxyarp ms-dns 10.0.0.1 netmask 255.255.255.0 connect "sleep 2; echo -n CLIENTSERVER"

BlueZ - Aplicações LAN 10.0.0.1:10.0.0.2 Configurando o DUND (cont.): Criar um arquivo para cada dispositivo rfcomm contendo IP local e o IP a ser atribuido pro dispositivo que se conectou: /etc/ppp/options.rfcommX: 10.0.0.1:10.0.0.2 IP LOCAL IP REMOTO

BlueZ - Aplicações LAN Configurando o DUND (cont.): Servidor: Exemplo tirado do script mostrado anteriormente: #!/bin/sh echo "Starting dund..." sleep 2 dund --listen --channel 1 noauth echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT

dund –-connect xx:xx:xx:xx:xx:xx --channel 1 --msdun BlueZ - Aplicações LAN Configurando o DUND (cont.): Cliente: Endereço Bluetooth da máquina servidora dund –-connect xx:xx:xx:xx:xx:xx --channel 1 --msdun

BlueZ - Programação Sockets Bibliotecas #include <bluetooth/bluetooth.h> #include <bluetooth/l2cap.h> #include <bluetooth/rfcomm.h>

BlueZ - Programação Estruturas Exemplos: sockaddr_in s_addr L2CAP sockaddr_l2 RFCOMM sockaddr_rc s_addr.l2_family = AF_BLUETOOTH; s_addr.l2_psm = htobs(100); baswap(&s_endereco.l2_bdaddr, addr); s_ addr.rc_family = AF_BLUETOOTH; bacpy(&s_ addr.rc_bdaddr, BDADDR_ANY); s_ addr.rc_channel = 1; str2ba(addr, &s_addr.rc_bdaddr);

BlueZ - Programação Criação do sockets RFCOMM: L2CAP: Bind: int nsocket = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); L2CAP: int nsocket = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); Bind: bind(nsocket, (struct sockaddr *) &s_addr, sizeof(s_addr));

BlueZ - Programação Cliente Servidor connect( nsocket, (struct sockaddr*)&s_endereco, sizeof(struct sockaddr) ); Servidor listen(nsocket, 10); int news = accept (nsocket, (struct sockaddr *) &c_addr, &tam);

Bluetooth benso@inf.pucrs.br andrei@cpts.pucrs.br fabricio@cpts.pucrs.br