A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bluetooth Ana Cristina Benso da Silva Andrei Oliveira da Silva

Apresentações semelhantes


Apresentação em tema: "Bluetooth Ana Cristina Benso da Silva Andrei Oliveira da Silva"— Transcrição da apresentação:

1 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

2 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

3 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

4 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

5 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

6 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 a Sistema Analógico CDMA CyberWorld IEEE b TDMA Bluetooth ??? 1980 1990 2000 2010

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

8 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)

9 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

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

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

12 Bluetooth - Funcionamento
Topologias Piconet Scatternet

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

14 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

15 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)

16 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 – Kbps Canal Assíncrono Assimétrico – Kbps

17 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

18 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

19 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.

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

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

29 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

30 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

31 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

32 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

33 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

34 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,...

35 Bluetooth -Hardware Dispositivos:

36 Bluetooth - Software Software Desenvolvimento
Proprietários (3com, Toshiba,...) Drivers Desenvolvimento BlueZ ( Stack Linux Affix ( Stack Linux Atinav ( SDK C e Java Impronto ( SDK Java

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

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

39 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 i386.rpm BlueZ-utils i386.rpm BlueZ-sdp i386.rpm BlueZ-hcidump i386.rpm BlueZ-pan i386.rpm BlueZ-bluefw-1.0.i386.rpm

40 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

41 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

42 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

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

44 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

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

46 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: : IP LOCAL IP REMOTO

47 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

48 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

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

50 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);

51 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));

52 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);

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


Carregar ppt "Bluetooth Ana Cristina Benso da Silva Andrei Oliveira da Silva"

Apresentações semelhantes


Anúncios Google