Présentation

1998: création du SIG Bluetooth (Ericsson, Nokia, Toshiba, ...)

USB sans fil

PAN: Personnal Area Network: Ordinateurs personnels, PDA, téléphones, imprimantes, claviers, souris, oreillettes ...

Portée ~ 10m, au délà, WiFi

Intégration dans les périphériques nomades

=> Batterie

=> Gestion d'énergie

Sécurité

=> Code PIN

=> Clé de liaison

Présentation

Bande ISM: libre, 2.4-2.4835GHz, encombrée

Problèmes de collisions (WiFi, HomeRF, ...)

=> Frequency Hopping

Réémission de paquets sur 79 canaux de 1MHz de largeur

Similarité USB: Profils

- Oreillette

- Accès Réseau

=> Drivers fournis pour le protocole, pas pour l'application

Définition d'un service de recherche de services offerts : SDP

Topologie réseau

Connexions

maître-esclaves

Un maître par piconet

Un maître d'un piconet peut être esclave d'un autre piconet

=> Scatternet

Scatternet

Piconet

Scénario d'utilisation

Recherche de périphériques

Recherche de services

Couplage (Code PIN, Clé)

Connexion

Utilisation du service

Déconnexion

Connexion

Utilisation du service

Déconnexion

Périphérique connus :

Périphériques étrangers :

Pile Protocolaire

Adresse physique sur 6 octets

=> 00:A0:96:1F:B6:93

Class de périphérique sur 3 octets

=> identification somainre du type de périphérque

=> information du type de service fourni

Communiquer avec la puce :

=> Pilote de périphérique

=> Interface de commande définie par la norme :

HCI (Host Controller Interface)

Pile Protocolaire

HCI

SDP

OBEX

Applications & Profils

RFCOMM

L2CAP

SCO

Pile Protocolaire : HCI : Recherche

< 01 : Envoi de commande

> 04 : Réception d'évènement

Notation conformes au protocole H:4 de la norme

Décodage : recherche

01 04 05 33 8B 9E 08 00

Nombre de réponses illimitées

IAC: Type de recherche global

Temps de recherche: 8 * 1.28s

Taille des données

Opcode : OGF (famille) sur 6 bits et OCF (commande) sur 10 bits

Pile Protocolaire : HCI : Recherche

Commande : recherche

Opcode 01 04 constitué d'OGF 1 et OCF 1 : 00000100 00000001

0F 04 00 01 01 04

Commande correpondant à cet évènement

Statut 00: OK

Nombre de trames pouvant être envoyées

Taille des données

Evènement : état de commande

Pile Protocolaire : HCI : Recherche

Evènement : commande en cours

02 0F 01 3D 86 14 D9 0A 00 01 00 00 0C 22 10 59 43

Décalage d'horloge

Nombre de réponses dans cet évènement

Adresse du périphérique

Taille des données

Evènement : périphérique trouvé

Pile Protocolaire : HCI : Recherche

Evènement : périphérique trouvé

3 paramètres utiles à la connexion

Classe de périphérique

01 01 00

Statut 00: OK

Taille des données

Evènement : fin de recherche

Pile Protocolaire : HCI : Recherche

Evènement : fin de la recherche

Pile Protocolaire : HCI : Connexions

Décodage : Connexion / Déconnexion

05 04 0D 3D 86 14 D9 0A 00 18 CC 01 00 59 43 01

Décalage d'horloge

Adresse du périphérique

Taille des données

Opcode : création de connexion OGF 1, OCF 5

Commande : demande de connexion

Types de paquets utilisés

Paramètres récupérés lors de la rech.

Pile Protocolaire : HCI : Connexions

Changement de rôle ?

Commande : demande de connexion

Pile Protocolaire : HCI : Connexions

Types de paquets :

OU binaire pour spécifier le type de paquet

à utiliser ...

18 CC = DM1 DH1 DM3 DH3 DM5 DH5

0F 04 00 01 05 04

Commande correpondant à cet évènement

Statut 00: OK

Nombre de trames pouvant être envoyées

Taille des données

Evènement : état de commande

Pile Protocolaire : HCI : Connexions

Evènement : commande en cours

03 0B 00 28 00 3D 86 14 D9 0A 00 01 00

Niveau de cryptage : aucun

Statut 00: OK, connexion établie

Handle de connexion

Taille des données

Evènement : résultat de connexion

Pile Protocolaire : HCI : Connexions

Evènement : résultat de connexion

Adresse du périphérique distant

Type de connexion: données

05 04 00 28 00 13

Statut 00: OK, déconnexion effectuée

Handle de connexion

Taille des données

Evènement : déconnexion

Pile Protocolaire : HCI : Connexions

Evènement : déconnexion

Motif de déconnexion : demandée par l'autre périphérique

Pile Protocolaire : L2CAP

Premier protocole de la pile BT permettant l'échange de données

Identifié par :

- Handle ACL

- PSM

- CID Source et CID Destination

Paramétrage :

- Time out

- MTU

- QoS

Cycle de vie :

- Connexion

- Configuration

- Echanges de données

- Déconnexion

Pile Protocolaire : L2CAP

Connexion, negotiation :

Connection request

Connection response

- du PSM

- des cid source et destination

Configuration, négotiation :

- des MTU

- des timeouts

- de la QoS

Déconnexion :

Configuration request

Configuration response

Configuration response

Configuration request

Disconnection request

Disconnection response

Echanges de données

Pile Protocolaire : L2CAP

Trames de données HCI :

Flags :

- BC: Broadcast flag sur 2bits

- PB: Packet boundary flag sur 2bits

Trames L2CAP :

Canal :

- canal 1: canal de contrôle

- supérieur à 64 pour les données

Pile Protocolaire : L2CAP : Connexion

Connexion (demande = 02)

- identifiant de commande 1

- 4 octets de données

- PSM cc ee

- canal source 40 00

Connexion (réponse = 03)

- identifiant de commande 1

- 8 octets de données

- canal destination 50 00

- rappel canal source 40 00

- connexion acceptée

Configuration (demande = 04)

- identifiant de commande 2

- 4 octets de données

- pour canal 50 00

- configuration par défaut sans fragmentation 00 00

Configuration (réponse = 05)

- identifiant de commande 2

- 6 octets de données

- pour canal 40 00

- pas de fragmentation

- configuration par défaut acceptée

Pile Protocolaire : L2CAP : Configuration

Configuration (demande = 04)

- identifiant de commande 3

- 8 octets de données

- pour canal 40 00

- pas de fragmentation

- configuration MTU = 78

Configuration (réponse = 05)

- identifiant de commande 3

- 6 octets de données

- pour canal 50 00

- pas de fragmentation

- configuration acceptée

Pile Protocolaire : L2CAP : Dialogue

Trame 1:

- 3 octets de données

- pour canal 50 00

- données “libres” 02 04 05

Trame 2:

- 3 octets de données

- pour canal 40 00

- données “libres” 02 05 04

Pile Protocolaire : L2CAP : Déconnexion

Déconnexion (demande = 06)

- identifiant de commande 4

- 4 octets de données

- canal distant 50 00

- canal local 40 00

Déconnexion (réponse = 07)

- identifiant de commande 4

- 4 octets de données

- canal local 50 00

- canal distant 40 00

Pile Protocolaire : SDP

SDP (Service Discovery Protocol)

- protocole d'échange de données sur les services mis à disposition

par un périphérique bluetooth

- utilise une connexion L2CAP, PSM 1

Une réponse SDP contient :

- infos sur le service (nom, identifiant)

- protocoles utilisés

Un serveur SDP stocke des “enregistrements” définissant les “services”

Un enregistrement est défini par un “handle” interne et des “attributs”

Le format utilisé pour les attributs est défini par le SDP :

Attribut = “Identifiant” + “Valeur”

Pile Protocolaire : SDP

Exemples d'identifiants:

ServiceClassIDList (id 1)

ServiceID (id 3)

ProtocolDescriptorList (id 4)

LanguageBaseAttributeIDList (id 6)

ServiceName (id variable selon la langue utilisée, id de base pour la langue)

ServiceDescription (id variable selon la langue utilisée, id de base pour la langue + 1)

Pile Protocolaire : SDP

Codage des identifiants et valeurs :

Types

Types de taille

Pile Protocolaire : SDP

Types de PDU SDP :

- 1 : SDP_ErrorResponse

- 2 : SDP_ServiceSearchRequest

- 3 : SDP_ServiceSearchResponse

- 4 : SDP_ServiceAttributeRequest

- 5 : SDP_ServiceAttributeResponse

- 6 : SDP_ServiceSearchAttributeRequest

- 7 : SDP_ServiceSearchAttributeResponse

Communication via des PDU (Protocol Data Unit) :

Pile Protocolaire : RFCOMM

Protocole d'émulation de ports séries

(norme ETSI TS 101 368 ou TS 07.10)

Transit des données et des signaux de contrôle

Multiplexage de 60 liaisons max par session

Liaison identifiée par un dlci ou canal RFCOMM

dlci 0 réservé pour signaux de contrôle et gestion de session

Credit based flow control :

affectation de “jetons” pour limiter le flux de données

Utilise une connexion L2CAP, PSM 3

Pile Protocolaire : RFCOMM : Principe

SABM

UA

Initiation de session - création du dlci 0

SABM

UA

PN CMD

PN RSP

Négotiation de paramètres (crédits)

PN CMD

PN RSP

SABM

UA

Création d'un canal de communication

SABM

UA

MSC CMD

MSC CMD

Initialisation du canal

MSC CMD (2)

MSC RSP (2)

MSC RSP

MSC RSP

Pile Protocolaire : RFCOMM : Principe

UIH

Transmission de données et/ou de crédits

UIH

DISC

UA

Fermeture de canaux et déconnexion

DISC

UA

Implémentation RFCOMM :

- possibilité d'ajouter des ports virtuels au système d'exploitation

- possibilité d'utiliser les protocoles fonctionnant sur liaison série

(terminaux, ppp/ip/udp/tcp/..., obex, ...)

Profils lors de la norme 1.1:

GENERIC ACCESS PROFILE

SERVICE DISCOVERY APPLICATION PROFILE

CORDLESS TELEPHONY PROFILE

INTERCOM PROFILE

SERIAL PORT PROFILE

HEADSET PROFILE

DIAL-UP NETWORKING PROFILE

FAX PROFILE

LAN ACCESS PROFILE

GENERIC OBJECT EXCHANGE PROFILE

OBJECT PUSH PROFILE

FILE TRANSFER PROFILE

SYNCHRONIZATION PROFILE

Aujourd'hui, 56 profils définis.

Pile Protocolaire : Profils

Xavier Garreau

2004-11-23T13:55:34