1 / 53

Bluetooth

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 O mundo Wireless Bluetooth - Visão Teórica Histórico Funcionamento

mick
Télécharger la présentation

Bluetooth

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • 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) Internet TCP/IP UTMS Interconexão de Redes Serviços de Voz WLAN Semantic Aware Services WPAN Telefonia Celular GSM IEEE 802.11a CyberWorld Sistema Analógico CDMA IEEE 802.11b TDMA Bluetooth ??? 1980 1990 2000 2010

  7. Wireless LAN (WLAN) • Bluetooth • 2.4 GHz – ISM • Conexões de Curto Alcance • IEEE 802.11b • 2.4 GHz – ISM • 11 Mbps • IEEE 802.11a • 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. Topologias Piconet Scatternet Bluetooth - Funcionamento

  13. Estabelecendo Conexão • Inquiry • Procura por dispositivos • Estados: • Inquiry • Inquiry Scan • Inquiry Response • Page • Estabelece conexões • Estados: • Page • 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 • 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

  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. Access Code Header Payload 54 0-2745 LSB 72 MSB 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

  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 • 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 • 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/servidorL2CAP ? ! 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. Serial Port Profile: emula sinais de transmissão de uma porta serial General Object Exchange Profile: transferência de dados utiliza SPP 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

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

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

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

  35. Bluetooth -Hardware • Dispositivos:

  36. Bluetooth - Software • Software • 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

  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 • 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/

  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 • 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 10.0.0.1 netmask 255.255.255.0 connect "sleep 2; echo -n CLIENTSERVER"

  46. BlueZ - Aplicações • LAN • 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

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

More Related