- Février 1998 : Création du Blutooth SIG, les principaux constructeurs présents dans ce groupe sont : Ericsson, IBM, Intel, Nokia, Toshiba
- Mai 1998 : Annonce publique du Bluetooth SIG
- Juillet 1999 : Le groupe Bluetooth SIG publie la spécification 1.0A
- Décembre 1999 : Sortie de la version 1.0B
- Décembre 1999 : Le groupe Bluetooth SIG compte maintenant 9 sociétés après que 3COM, Lucent, Microsoft, Motorola les aient rejoints.
- En 2004 : Le groupe Bluetooth SIG compte maintenant plus de 2000 sociétés
1.2 - Présentation de bluetooth
Fig. 1 - Présentation du domaine d'application de Bluetooth en informatique
Bluetooth voit aussi son application pour la télévision, et également dans d'autres domaines où les câbles sont très utilisés.
La suite de ce document sera surtout axé sur l'utilisation de Bluetooth dans l'informatique.
Buts et caractéristiques de cette technologie :
- il s'agit d'une technologie destinée à remplacer les câbles.
- Dans sa version 1 le débit ne depasse pas 1Mb/s*
- La portée est de l'ordre de 10m dans sa version 1*
La version 2 fonctionnera à 10Mb/s La version 2 prévoie des distances de 100m
Pourquoi ne pas utiliser Wi-Fi étant donné les performances de Bluetooth : Bluetoth offre l'avantage de la consommation, en effet la connexion sans fil est surtout utilisée pour les appareils mobiles, et donc n'étant pas reliés directement au secteur.
Bluetooth est à plus faible consommation que wi-fi. Le second avantage de cette technologie est le prix.
La création de Bluetooth SIG() en 1998 regroupait les plus grands constructeurs Ericsson, IBM, Intel, Nokia, Toshiba.
En 2004 on peut compter 2000 sociétés qui participent au Bluetooth SIG. Au lancement, le pari de cette technologie était de réussir à produire des puces Bluetooth à moins de 5$.
II - Présentation de Bluetooth du point de vue technique
Fig. 2 - Représentation des couches Bluetooth
Dans cette partie, je vais expliquer les différentes couches qui composent Bluetooth.
2.1 - Bluetooth Radio et Baseband / Link Controler
La couche Bluetooth radio est une couche totalement matérielle.
L'avantage de Bluetooth en terme radio par rapport aux autres technologies est l'adaptation qu'il peut réaliser en effectuant des sauts de fréquence 1600 fois par seconde.
La bande passante Bluetooth s'étend de 2.402 GHz à 2.480 GHz. Cela représente 79 canaux d'une largeur de 1 MHz. En France il est possible d'utiliser 23 canaux.
Ces sauts de fréquence permettent de limiter les collisions.
Un réseau Bluetooth est composé d'un Maître et de plusieurs esclaves. Un maître peut avoir jusqu'à 7 esclaves. Pour permettre la création de grands réseaux, un maître peut être esclave d'un autre réseau.
Dans la norme Bluetooth un maître et ses esclaves est appellé piconet. Figure : 3
Fig. 3 - Représentation des piconets
Les élements Bluetooth d'un même piconet utilisent le même canal. Pour permettre la discussion de tout les élements du piconet, il y a une répartition en time slots de 625 micro secondes. Figure 4
Fig. 4 - Chronogramme d'une discussion entre élements Bluetooth
2.1.1 - Liaison à connexion synchrone orientée (SCO)
Ce type de liaison est utilisé pour la transmission de voix, puisqu'il y a besoin de "temps réel" pour ce type d'application. Bluetooth utilise dans ce cas des créneaux reservés afin de reduire au maximum le délai. Si l'on est en fonctionnement mode "Point To Point", la transmission sera Bidirectionnelle. Ce type de connexion fonctionnant en mode "Temps réel" il n'y a pas de retransmission possible.
Il est possible d'atteindre 64Kb/s afin de respecter la norme de codage, sachant qu'un maître peut gérer jusqu'à 3 liens de ce type
2.1.2 - Liaison à connexion asynchrone (ACL)
Ce type de connexion a été conçu pour échanger des données. Avec ce type de connexion il est possible d'effectuer un broadcast. Les débits de ce type de connexion sont de 723.2Kb/s en sortie avec un entrant à 57.6Kb/s. En mode symétrique on peut aller jusqu'à 433.9Kb/s.
2.2 - L2CAP
La couche L2CAP a pour rôle de transformer les données en paquets pour la couche Baseband. Son rôle est également la gestion des connexions logiques entre plusieurs élements Bluetooth.
Fig. 5 - Encapsulation à partir de L2CAP
2.3 - SDP (Service discovery protocole)
SDP est la couche chargée de la découverte d'élements Bluetooth. Son rôle est la détection et l'intégration de nouveaux élements Bluetooth dans le réseau.
2.3.1 - Mode de detection
Schéma de l'architecture
Fig. 6 - Détection des élements Bluetooth
Pour faciliter la découverte d'élements Bluetooth, les opérations de découvertes sont faites entre serveurs et clients. Un élement Bluetooth peut être à la fois client et serveur. Un client va donc contacter un serveur Bluetooth et ce serveur Bluetooth va lui envoyer la liste des élements Bluetooth qu'il connaît avec les services découverts.
2.3.2 - Stockage des informations
Fig. 7 - Stockage des informations
2.3.3 - Contrôle des erreurs
Au niveau du contrôle d'erreurs il en existe de deux types sur Bluetooth.
III - GAP profile
Tout périphérique Bluetooth est obligatoirement placé dans un profile. Les profiles ont été mis en place pour faciliter les connexions et l'interopérabilité entre les matériels.
Un profile va définir les couches qui vont être utilisées (RFCOMM, BNEP, TCS,...)
Il éxiste 13 profiles, GAP (Generic Access Profile) qui permet de détecter des produits Bluetooth, et le SDAP (Service Discovery Access Profile) qui a pour but de connaître les services disponibles dans les produits qui ont été détectés par le GAP. Citons les autres rapidement :
- Cordless Telephony Profile
- Intercomm Profile
- Serial Port Profile
- Headset Profile
- Dial-up Networking Profile
- Fax Profile
- LAN Access Profile
- Generic Object Exchange Profile (GOEP)
- Object Push Profile
- File Transfer Profile
- Synchronisation Profile
Structure des services découverts par le GAP :
- son adresse BD_ADDR
- son nom
- sa clef (Bluetooth PIN)
- sa classe et son périphérique
IV - Bluetooth IP
IP peut fonctionner au dessus de deux couches : soit au dessus de PPP, cela sous-entend que nous utilisions RFCOMM en dessous, soit avec BNEP, dans ce cas là BNEP repose directement sur L2CAP.
4.1 - RFCOMM
Il s'agit d'une couche de transport. Cette couche réalise le rôle d'émulation et de multiplexage d'un port série (RS232) sur la couche L2CAP. Cette couche émule tous signaux du port RS232 (TD,RD,RTS,CTS,DSR,DTR,DCD,RI). Cette couche va assigner à chaque application un numéro logique qui correspondra à l'émulation d'un port série. L'utilisation des couches supérieures va dépendre des applications que l'on souhaite faire fonctionner au-dessus de Bluetooth.
Présentation du spectre où se situe bluetooth. La bande de fréquence réservée à Bluetooth en France est de 2.4465 à 2.4835.
Fig. 8 - Schéma des packets
4.2 - Utilisation de BNEP
BNEP simplifie les choses car il n'y a plus PPP. BNEP ne fournit pas une émulation RS-232. On arrive donc à un schéma (fig:9)
Fig. 9 - Schéma avec BNEP
4.3 - Poste mobile esclave
Dans le cas où les mobiles sont esclaves, on est donc limité à 7 mobiles par station de base.
Fig. 10 - Station de base maître
4.4 - Poste mobile maître
Dans ce cas précis, la station de base est esclave d'autant de Mobile.
Fig. 11 - Station de base esclave
4.5 - Adaptation de la couche IP pour périphériques mobiles
La couche IP a trois états possibles :
- Discovery : Le périphérique est dans cet état au démarrage. C'est dans cette étape qu'il va chercher les stations de base les plus proches dont il a généralement aucune information. Il y a une procédure permettant d'obtenir uniquement les stations de base. Cette procédure va être répétée tant qu'une station de base n'a pas été trouvée. Une procédure de connexion est déclenchée pour passer dans l'état "Configuration".
- Configuration : La station de base va donner un état de maître ou esclave au mobile. Le mobile va ensuite établir une connexion bi-directionnelle L2CAP sur la connexion éxistante. C'est à cette étape que la MTU des datagrammes de la couche L2CAP est négociée. La station de base va envoyer un datagramme contenant la MTU maximum qu'il peut accepter. Le mobile va ensuite confirmer la valeur en la renvoyant. A ce moment là si il n'y a pas eu d'erreur, on passe en phase "Connected".
- Connected : Une fois arrivé dans cette étape pour la première fois il faut affecter une IP au mobile. Pour celà DHCP peut être utilisé, ou alors si Mobile IP est activé il n'y aura pas de configuration à modifier sur le mobile.
Fig. 12 - Etats de Bluetooth IP pour l'élement mobile
Il faut aussi gérer la perte de lien. Pour détecter cela, la spécification Bluetooth propose "Link supervision timer". Ce compteur est fixé à une certaine valeur et est remis à sa valeur initiale à chaque réception de paquet. Si aucun paquet n'est arrivé avant l'arrivée à 0 de ce timer, une alerte est déclanchée.
Cette valeur est fixée par défaut à 20 minutes, il faut choisir une bonne valeur pour ce timer car une trop faible valeur peut provoquer beaucoup d'erreurs, et donc une perte de temps en reconnexion. Une valeur trop grande va laisser trop de Mobiles connectés alors qu'ils ne sont plus dans la zone, ou autre.
4.6 - Adaptation de la couche IP pour la station de base
La couche pour la station de base est plus simple que pour le Mobile(Fig.13). De ce côté on retrouve uniquement deux états. Son but principal est de maintenir la connexion. Cette couche a aussi pour but de découvrir de nouveaux élements Bluetooth.
- Configuration : Cet état a pour but de configurer et d'établir la connexion. Durant cette phase, la station de base est maître et le nouvel élement est esclave. A la fin de cet état, suivant la configuration décidée, la station de base peut passer esclave. Durant cette phase de configuration, le canal L2CAP est créé et configuré. La configuration du canal est initiée par la station de base. Comme expliqué précédemment, la station de base va donner sa MTU. La station de base passera ensuite dant l'état connecté après configuration de cette MTU.
- Connected : On retrouve une base correspondance entre le numéro de canal au niveau de L2CAP avec l'IP associé.
Fig. 13 - Etats de Bluetooth IP pour la station de base
V - Références
[1] STMicroelectronics, Technical Note Bluetooth Tutorial[en ligne],2001.
Disponible sur : http://www.st.com/stonline/prodpres/dedicate/bluetoot/document/tutorial.pdf
(consulté le 24.04.2004).
[2] Simon Baatz, Matthias Frank, Rolf Göpffart et al, Handoff Support for Mobility with IP Bluetooth[en ligne],2000
Disponible sur : http://web.informatik.uni-bonn.de/IV/Mitarbeiter/baatz/LCN2000_rp.pdf
(consulté le 24.04.2004).
[3] ATMEL Corporation, The Bluetooth Wireless Technology White Paper, 2000.
Disponible sur : http://www.atmel.com/dyn/resources/prod_documents/DOC1991.PDF
(consulté le 24.04.2004).
[4] David Kammer, Gordon McNutt, Brian Senese, Bluetooth Application Developper's Guide. Syngress Media, Janvier 2002. 520 pages. ISBN 1928994423.
[5] Michael Miller, Discovering Bluetooth Sybex, juillet 2001. 304 Pages. ISBN 0-7821-2972-2.