View
4
Download
0
Category
Preview:
Citation preview
Mise en œuvre d’une unité sans fil à faible
consommation pour la surveillance continue
en santé
Mémoire
Soodeh Arab Salmanabadi
Maitrise en génie électrique
Maître ès sciences (M. Sc.)
Québec, Canada
© Soodeh Arab Salmanabadi, 2017
Mise en œuvre d’une unité sans fil à faible
consommation pour la surveillance continue
en santé
Mémoire
Soodeh Arab salmanabadi
Sous la direction de :
Benoit Gosselin, directeur de recherche
Younes Messaddaq, codirecteur de recherche
iii
Résumé
L’un des sujets les plus importants concernant les signes vitaux pour
personnaliser les soins de santé est la transmission ininterrompue. De ce fait, cela
pourrait aider à réduire les coûts médicaux et à augmenter le confort d’un patient.
Un système de surveillance de la santé à long terme et ininterrompu nécessite la
technologie de communication sans fil. Les éléments les plus importants pour les
capteurs sans fil sont une faible consommation énergétique, un faible coût de
production, des protocoles simples et de courts retards de synchronisation entre
les différents modes des émetteurs-récepteurs sans fil. Il existe différentes
technologies courte portée pour les réseaux sans fil dans la bande de fréquence
Wireless Body Area Networks (WBANs). Dans ce travail, nous utiliserons et
comparerons deux configurations différentes pour les réseaux corporels sans fil.
Dans la première configuration, le BLE (Bluetooth Low Energy) sera proposé et
son taux d'erreur, ainsi que sa consommation d'énergie seront mesurés pour un
système de surveillance en continu dans le domaine de la santé. Récemment BLE
a annoncé des fonctionnalités plus convaincantes dans plusieurs aspects et
seulement quelques études ont été publiées soutenant ces allégations sur le BLE.
Les nœuds de détection (tels que le nœud de détection de la respiration, le nœud
de capteur ECG (Electrocardiogram) et le nœud de capteur d'oxymétrie de pouls)
peuvent être utilisés pour surveiller certains signaux biomédicaux du corps
humain. Après l'acquisition du signal, il est prétraité et l'information est transmise
par BLE à la station de base ou à un téléphone intelligent comme un nœud central.
Le téléphone intelligent peut fournir une rétroaction médicale en temps réel aux
utilisateurs par le biais de dispositifs mobiles afin d'éviter des situations
dangereuses. Le système est connu pour sa très-faible consommation d'énergie.
Cette nouvelle conception permet de réduire la consommation d'énergie de façon
significative, ce qui est un problème essentiel qui doit être pris en compte dans les
questions de WBANs. La performance de transmission pendant une expérience a
été évaluée et les résultats ont montré que cette solution satisfait aux exigences
des applications de soins de santé en termes de consommation d'énergie, de
iv
latence et de taux d'erreur de paquets. Les caractéristiques d'intervalle de latence
et de connexion par rapport à la perte de paquets et à la vitesse de transmission
montrent qu'avec l'augmentation de l'intervalle de connexion, le taux de perte de
paquets et le taux de transmission diminuent. La consommation maximale de
courant pour l'architecture BLE, avec une alimentation de 3.0V, est seulement de
5mA peu importe le type d'activité radio. À titre d'exemple, la consommation du
système BLE représente 50% de moins que celle d'autres solutions sans fil qui ont
une portée petite ou moyenne et une faible puissance. Ainsi, on peut s'attendre à
une vie prolongée pour ce système.
Dans la deuxième configuration qui est proposée, à savoir une nouvelle
conception de détection textile avec capacité de communication RF, le système de
communication du capteur est composé d'un tissu textile avec un système intégré
qui communique à travers la bande 2,4 GHz ISM avec une bonne qualité du
signal. La performance de transmission de ce nouveau textile de détection avec la
communication de RF a été analysé. La caractéristique de perte de paquets par
rapport à la longueur de paquets montre que pour les paquets de moins de 12
octets de long et à une distance d'un mètre, le taux de perte de paquets est
inférieur à 5%.
Le BLE ouvre une nouvelle génération d'occasions pour les systèmes de
communication et les applications médicales et annonce des fonctionnalités plus
convaincantes dans plusieurs domaines. La faible consommation de puissance de
ce protocole et le faible taux de pertes des paquets nous offre un système robuste
en application médicale. Considérant que le dispositif BLE transmet seulement
pendant un petit pourcentage du temps total, la pile du dispositif devrait avoir une
durée de vie allant de plusieurs mois à plusieurs années.
v
Table des matières
Chapitre 1 : Introduction .................................................................................................................. 1
1. Contexte .......................................................................................................................................... 1
1.1. Objectif de cette thèse ............................................................................................................. 2 1.2. Contribution ............................................................................................................................ 3 1.3. Structure de cette thèse .......................................................................................................... 4
Chapitre 2 : Revue de la littérature .................................................................................................. 6
2. Introduction .................................................................................................................................... 6
2.1. Problème de recherche ........................................................................................................... 9 2.1.1. Sécurité .............................................................................................................................. 9 2.1.2. Puissance ......................................................................................................................... 10 2.1.3. Portabilité ........................................................................................................................ 10 2.1.4. Interférence du réseau ..................................................................................................... 11 2.1.5. Temps réel et surveillance continu .................................................................................. 12
2.2. Communication sans fil ........................................................................................................ 12 2.2.1. WI-FI (802.1 1a/b/g) ....................................................................................................... 13 2.2.2. ZigBee /6LoWPAN ......................................................................................................... 13 2.2.3. Bluetooth classique ......................................................................................................... 14 2.2.4. ANT................................................................................................................................. 15 2.2.5. Bluetooth Low Energy .................................................................................................... 16
2.3. Comparaison de la technologie sans fil ............................................................................... 17 2.1. Avantages et désavantages des technologies de communication sans fil ......................... 19
Chapitre 3 : Description générale du BLE et de la pile ................................................................ 21
3.Introduction ................................................................................................................................... 21 3.1. Notions de base du réseau utilisant le BLE ........................................................................ 21
3.1.1. Radiodiffusion et observation ......................................................................................... 22 3.1.2. Connexions ...................................................................................................................... 22
3.2. Aperçu du protocole BLE en empilage ............................................................................... 23 Contrôleur ....................................................................................................................... 24 3.2.1.
Physical layer .................................................................................................................. 24 3.2.2.
Link layer ........................................................................................................................ 25 3.2.3.
Host Controller Interface (HCI) – Controller side .......................................................... 27 3.2.4.
Host ................................................................................................................................. 27 3.2.5.
Logical Link Control et protocole d’adaptation (L2CAP) .............................................. 28 3.2.6.
ATT (Attribute Protocol) ................................................................................................ 28 3.2.7.
GATT (Generic Attribute Profile) ................................................................................... 28 3.2.8.
Sécurité ............................................................................................................................ 29 3.2.9.
Generic Access Profile (GAP) et ses applications ........................................................ 30 3.2.10.
Application .................................................................................................................... 30 3.2.11.
3.3. Avantages du BLE ................................................................................................................ 31
Chapitre 4 : Conception et mise en œuvre d'un système sans fil de faible puissance ................ 33
4. Introduction .................................................................................................................................. 33 4.1.1.Unité de Microcontrôleur (MCU) .................................................................................... 35 4.1.2.Émetteur-récepteur sans fil BLE ...................................................................................... 37 4.1.3.Unité de surveillance ........................................................................................................ 38 4.2.1.La vue d’ensemble de la mise en œuvre du système ........................................................ 41
vi
4.2.2.Antenne textile ................................................................................................................. 42 4.2.3.Interface RF ...................................................................................................................... 43 4.2.4.L’unité de commande et de contrôle avec la mise en œuvre du logiciel .......................... 44
Chapitre 5 : Résultats expérimentaux ............................................................................................ 45
5. Introduction .................................................................................................................................. 45 Première configuration : résultats expérimentaux ............................................................ 45 5.1.
Temps de latence dans le système .................................................................................... 46 5.1.1.
Estimation du taux d’erreur de paquet ............................................................................. 48 5.1.2.
Mesure de la consommation énergétique en différents modes ......................................... 49 5.1.3.5.1.3.1. Configuration de test .............................................................................................................. 50
5.1.3.2. Mode de balayage ................................................................................................................................ 52 5.1.3.3. Mode connecté ....................................................................................................................... 52 5.1.3.4. Mode actif .............................................................................................................................. 53 5.1.3.5. Mode veille (sleep) ................................................................................................................ 54
Deuxième configuration : résultats expérimentaux ........................................................... 56 5.2.
Discussion .............................................................................................................................. 57 5.3.
Chapitre 6 : Discussion et perspectives futures ............................................................................. 59
Discussion .............................................................................................................................. 59 6.1.
Travaux futurs ...................................................................................................................... 61 6.2.
Chapitre 7 : Conclusion ................................................................................................................... 63
7. Conclusion .................................................................................................................................... 63
Bibliographie ........................................................................................ Error! Bookmark not defined.
Appendix A: Code du firmware pour la partie de surveillance de la station de base ............... 70
Appendix B: Station de base (MSP430F5529) ............................................................................... 79
Appendix C: Acquisition de données et l'unité de microcontrôleur (MCU) .............................. 80
Appendix D: Code du firmware pour la transmission (nRF24L01) ............................................ 81
Appendix E: Code du firmware pour la station de base ............................................................... 83
Appendix F: Code du firmware pour le récepteur (nRF24L01) .................................................. 84
7
Liste des tableaux
Tableau 1. Comparaison du BLE avec d’autres technologies...................................................... 18
Tableau 2. Avantages et inconvénients des technologies .............................................................. 20
Tableau 3. Les caractéristiques générales de Da14580. ................................................................ 37
Tableau 4. Effet taux de transmission et de PER par les paramètres d’intervalle. ................... 48
Tableau 5. Consommation de courant dans les modes de travail différents. ............................. 55
8
Liste des figures
Figure 1. L’architecture du réseau de capteurs corporels à transmission sans fil ....................... 2
Figure 2. Pile de protocole BLE ...................................................................................................... 23
Figure 3. Deux types de canaux pour les appareils BLE .............................................................. 24
Figure 4. Quatre états actifs d’une création d’une connexion ..................................................... 27
Figure 5. BLE architecture système base. ...................................................................................... 35
Figure 6. Schéma en bloc du microprogramme implanté sur le MSP430F5529. ....................... 36
Figure 7. Affichage des signaux reçus sans fil. .............................................................................. 38
Figure 8. Écran principal de l’application DSPS. ......................................................................... 39
Figure 9. Une vue d’ensemble du système mis en œuvre. ............................................................. 41
Figure 10. Antenne à base de fibres intégrées dans un textile tissé densément. ......................... 42
Figure 11. Schéma en blocs de la configuration mise en œuvre. .................................................. 43
Figure 12. Montage pour l’analyse des caractéristiques de perte de paquets. ........................... 44
Figure 13. Interface graphique data rate. ...................................................................................... 46
Figure 14. PER vs intervalle de connexion. ................................................................................... 47
Figure 15. Taux de transmission vs intervalle de connexion. ....................................................... 47
Figure 16. PER vs distance. ............................................................................................................. 49
Figure 17. Configuration de test du circuit de mesure de courant sur la
carte DA14580. ................................................................................................................................. 51
Figure 18. Le dispositif expérimental pour la mesure de la consommation
énergétique. ...................................................................................................................................... 51
Figure 19. Courbe consommation énergétique en mode balayage .............................................. 52
Figure 20. Consommation courbe en mode connecté sans l’envoi de données. .......................... 53
Figure 21. Courbe consommation en mode actif avec dispositif périphérique. .......................... 54
Figure 22. Courbe de consommation en mode veille. ................................................................... 55
Figure 23. L’effet de la longueur du paquet et la vitesse de transmission d’octets sur
le taux de pertes de paquets. ........................................................................................................... 56
Figure 24. Pertes de paquets vs distance de transmission. ........................................................... 57
ix
Liste des acronymes
AC Alternating Current
A/D Analog-to-Digital Converter
ADC Analog-to-Digital Converter
ACK Acknowledgement request
AES Advanced Encryption Standard
ATT Attribute Protocol
API Application Programming Interface
BLE Bluetooth Low Energy
CSMA/CA Carrier Sense Multiple Access/Collision Avoidance
DSSS Direct Sequence Spread Spectrum
ECG Electrocardiogram
EMF Electric and magnetic field
FHSS Frequency hopping
GAP Generic Access Profile
GFSK Gaussian Frequency Shift Keying
GATT Generic Attribute Profile
HCI Host Controller Interface
IFS Inter Frame Space
IoT Internet of Thing
ISM Industrial Science and Medical
MD More Data
MIC Message Integrity Check
PDA Personal Digital Assistant
PSB Parked Slave Broadcast
PUD Packet Data Unit
QOS Quality of Service
RSSI Received Signal Strength Indication
SAR Specific Absorption Rate
SoC System-on-Chip
SPI Serial Peripheral Interface
TDMA Time Division Multiple Access
TI Texas Instruments
UART Universal Asynchronous Receiver/Transmitter
WBAN Wireless Body Area Network
x
Préface
Je voudrais exprimer ma sincère gratitude à mon superviseur, Professeur Benoit
Gosselin de l'Université Laval pour son soutien et ses commentaires précieux au
cours des deux dernières années. Je voudrais également exprimer ma gratitude
aux membres du jury, le professeur Younes Messaddeq et le Professeur Paul
Fortier avoir généreusement accepté d’évaluer ma thèse.
Mes remerciements vont également au professeur Michel Duguay pour son aide et
son soutien. Chaque fois que je l'ai rencontré, il a pris du temps pour avoirs des
discussions scientifiques agréables avec moi. J'ai beaucoup appris de lui et je
voudrais le remercier pour tout son soutien.
Mes remerciements vont également à mes amis et collègues du laboratoire, y
compris sans s'y limiter Alireza Avakh Kisomi et Cheikh Latyre, tant pour leur
aide, leur collaboration, leur amitié que pour faire paraître mes journées plus
courtes, plus joyeuses et plus riches de nouvelles connaissances acquises lors de
ce travail de maîtrise. Pour tout cela, je vous remercie. Je tiens également à
remercier Tamer Elfaramawy et Charles-Gabriel Deslauriers pour leur support
dans la révision de ce mémoire.
Je tiens à remercier notre technicien, Martin Gagnon pour son support continu au
niveau administratif.
Je ne pourrai jamais être assez reconnaissant à mes chers parents et à mes sœurs
pour leur amour sans fin et leur soutien le long du chemin. Je n’aurais jamais pu
être la personne que je suis maintenant sans vous. Vous tous m’avez appuyé sans
réserve pendant toutes les phases de ma vie. Je vous aime tous…
Soodeh Arab
Mai 2016
1
Chapitre 1 : Introduction
Contexte 1.Les circuits qui s’exécutent librement sont très demandés. Ainsi, le suivi des
différents paramètres de santé en temps réel nécessite la création d'un réseau de
capteurs et l’utilisation de nouvelles technologies sans fil, tels que les réseaux de
corps sans fil (WBANs) [1]. Les WBANs offrent des nouvelles possibilités pour
la surveillance et la détection de plusieurs paramètres de santé comme la
température, la pression, la respiration et d'autres signes de maladies [2]. Les
WBANs utilisent un certain nombre de capteurs miniaturisés qui sont capables de
détecter le processus et de transmettre divers signaux physiologiques du patient
pour la surveillance ininterrompue [3] [4]. La figure 1 montre une opération
typique d'un WBAN. Dans la première étape, des nœuds de capteurs (détection de
la respiration, capteur ECG et capteurs d'oxymétrie de pouls [5]) sont utilisés pour
acquérir certains signaux biomédicaux à partir du corps humain. Après
l'acquisition du signal, les informations sont prétraitées et transmises par une
technologie sans fil tel que BLE à la station de base. L'un des blocs les plus
critiques dans le réseau de capteurs en ce qui concerne la consommation
énergétique est la communication sans fil [6]. En plus de la consommation
énergétique, la taille, le débit de la communication et l'efficacité des réseaux sans
fil sont aussi très importants. Au cours de la dernière décennie, plusieurs
protocoles de communications sans fil à courte portée et à faible puissance, telles
que ZigBee / 6LoWPAN sur IEEE 802.15.4, NFC, ANT, Bluetooth classique et
Bluetooth BLE, qui ont été utilisés, entre autres, pour une application médicale,
sont maintenant bien établis. Ces technologies sont basées sur l’internet des objets
(Internet of Things, ou IoT) qui nous permet de fournir les capacités de recueillir
une grande quantité de données avec une plus grande précision et une sensibilité
au contexte [7] [8]. IoT implique non seulement les interactions entre les choses,
mais aussi l'interaction entre les personnes et leurs appareils personnels comme
les téléphones intelligents, Joysticks, ordinateurs et etc. [9] [10] [11].
2
ECG Sensor Node
RespirationSensor Node
Bluetooth Low Energy
Internet
Medical Server
Emergency Services or Medical Researcher
Physician
Pulse OximetrySensor Node
GPS RF
WIFI
portable
WiMAX
Base Station
Wireless Body Area Network
Wireless LAN
Hospital Information system
L’architecture du réseau de capteurs corporels à transmission sans fil (WBAN) Figure 1.
Ces données apportent de nombreuses possibilités pour un large éventail de
domaines d'application [12]. En particulier, ce travail se concentre sur les soins de
santé personnalisés. Ainsi, les patients peuvent contrôleur leur propre santé en
temps réel et transférer les données collectées aux systèmes d'information.
1.1. Objectif de cette thèse
Dans cette thèse, nous essayons de développer un suivi à long terme des soins de
santé sans fil qui est capable de surveiller la santé en temps réel et de transférer
les données collectées en continu aux systèmes d'information. La surveillance
sans fil à long terme doit être confortable, discrète, à faible coût et de petite taille.
Fondamentalement, nous cherchons à évaluer l'acceptation de la norme sans fil
récente pour la surveillance de la santé dans un environnement réel. Cela
permettra aux médecins de suivre à distance la progression de la maladie, à
prédire et à prévenir les événements graves. Ce système peut aider les gens à
mieux gérer leur santé et améliorer la qualité de leur vie.
3
1.2. Contribution
La contribution de ce travail est un outil de recherche de communication sans fil
qui est adapté pour la surveillance de la santé à long terme. Au début, une
comparaison des différentes technologies de courte portée qui sont adaptées pour
les WBANs a été faite. Le système peut avoir la capacité de transmettre le signal
acquis via la liaison Bluetooth à un téléphone intelligent qui prend en charge la
technologie BLE. Les principales contributions de cette thèse sont dans les quatre
domaines suivants :
1. Enquête sur toutes les normes de fréquence ISM. Choisir celle avec la plus
faible consommation énergétique et celle avec le débit de données le plus
élevé. Assurer que les normes sont adaptées pour une application
médicale.
Les technologies sans fil, telles que IEEE 802.15.4 / ZigBee, Bluetooth, Bluetooth
Low Energy et WI-FI, sont examinées pour trouver le meilleur modèle sans fil
pour la surveillance de la santé. En outre, la comparaison entre ces différentes
technologies est faite.
2. Proposer et évaluer la plateforme basée sur la technologie BLE pour la
surveillance des données de santé dans les WBANs.
Comme il est mentionné, il existe différentes technologies de courte portée pour
les corps de réseaux sans fil dans la surveillance de la santé. Le BLE fournit des
fonctionnalités plus convaincantes dans plusieurs aspects, tels que la faible
consommation énergétique et le haut débit de données qui sont essentielles à
l'application médicale.
3. L'évaluation de la consommation énergétique du système selon le mode de
fonctionnement.
Le BLE est une norme qui promet des capteurs sans fil peu coûteux à pile avec
une faible consommation énergétique capables de fonctionner pendant des mois
sur de petites piles. Afin d'obtenir une mesure de courant plus précise pour le
4
BLE, nous devrions tenir compte de différents aspects. Le dispositif BLE
transmet seulement pour un petit pourcentage du temps total. Au cours du temps,
le dispositif s'évalue par son “courant de crête“. Ce courant de crête joue un rôle
dans la consommation énergétique totale. Divers modes, comme le mode de
balayage sans connexion, le mode de connexion sans transmission, le mode de
transmission où le dispositif fonctionne normalement et le mode veille, seront
discutés plus en détail et les mesures de leurs performances seront présentées.
4. Une interface RF robuste et à faible puissance en utilisant une base de
fibres multi matériaux à puce textile pour le corps communications de
capteurs
Une nouvelle conception de détection textile avec capacité de communication RF
est proposée en utilisant uniquement des équipements à faible coût et à faibles
puissances. Le système de communication avec capteur proposé, est composé
d'un tissu textile avec une fibre discrète intégrée. Elle se nomme multi matériaux
et communique à travers la bande 2,4 GHz ISM avec une bonne qualité du signal.
En utilisant un microprocesseur MSP430 et un module de plateforme nRF24L01
de communication RF pour la transmission de données à partir de la chemise au
tissu à un poste de surveillance, l'accent est mis sur le système de communication.
La caractérisation de la perte de paquets nous conduit à un système robuste pour
un capteur de communication sur le corps.
1.3. Structure de cette thèse
Ce travail présente un système de surveillance de la santé à long terme qui est
capable de surveiller la santé en temps réel et de transférer les données collectées
aux systèmes d'information. Le chapitre 1 introduit le contexte et les objectifs de
ce travail. Les sections suivantes de cette thèse sont organisées comme suit :
Le chapitre 2 comporte deux parties principales. La première partie est consacrée
à l'examen de la littérature, à la compréhension des réseaux de corps sans fil. Par
la suite, l'importance des enjeux et des défis est résumée. De plus, les réseaux de
5
capteurs sans fil dans les technologies de courte portée, qui sont adaptés à la
surveillance de la santé, sont présentés et comparés. Puis, dans la deuxième et
dernière partie de ce chapitre, les avantages et les inconvénients de ces protocoles
de communication sont discutés. Le chapitre 3 donne un bref aperçu du protocole
BLE ainsi que quelques détails pour chaque couche de celui-ci.
Dans le chapitre 4, les deux technologies sans fil utilisées sont décrites. Le
chapitre 5 présente les résultats de mesure de ce projet de recherche et les
performances du système sont examinées. De plus, les systèmes utilisés seront
détaillés. Finalement, le résumé, la conclusion et les travaux futurs liés à cette
thèse sont présentés, suivis des annexes.
6
Chapitre 2 : Revue de la littérature
Introduction 2.
Les WBANs ont reçu une attention considérable provenant de la recherche au
cours de la dernière décennie. Le BLE offre de nouvelles opportunités pour les
systèmes de communication et les applications médicales. De nombreux efforts de
recherche et de développement ont fait l'objet de publications. Dans ce qui suit,
seulement quelques-uns des travaux les plus récents sont résumés.
Un système basé sur la technologie BLE a été conçu et a été testé en [13]. Ce
système permet d'économiser près de 75% de la consommation énergétique en
comparaison avec la conception précédente qui utilise le MSP430 MCU et le
Bluetooth 2.1. Ce système est capable de mesurer l'ECG, la respiration et la
température corporelle de l'être humain. La principale amélioration de ce système
est le BLE, basée sur la puce BLE de TI (Texas Instruments) CC2540, qui joue un
double rôle, à savoir le MCU et le module de transmission sans fil qui rend donc
la consommation de puissance très-faible. Deux convertisseurs analogiques
numériques ADS1292R sont adoptés pour acquérir des signaux potentiels du
corps en vue de la surveillance de l’ECG, de la fréquence cardiaque qui est
dérivée à partir des signaux ECG en déterminant les intervalles R-R, de la
température du corps et de la respiration. La « Bluegiga » BLE112 est un module
de Bluetooth à basse consommation basée sur la puce de Bluetooth 4.0, à un seul
mode. Le CC2540 de TI est choisi comme microcontrôleur, ainsi que module de
communication sans fil dans ce travail.
Un système mobile en temps réel pour surveiller les patients âgés dans un
environnement intérieur ou extérieur est présenté en [14]. Le système utilise un
capteur de signal biologique porté par le patient et un téléphone intelligent comme
nœud central. Les données des capteurs sont collectées et transmises au serveur
intelligent via GPRS/UMTS pour les analyser. Le système fournit l'architecture
pour la collecte et l'analyse des données à partir d'un certain nombre de
7
biocapteurs et il est capable de surveiller à distance les signes vitaux, la mobilité
et l'emplacement de la personne.
Une technologie BLE pour la localisation intérieure dans le cadre d'une maison
intelligente où une personne âgée peut être localisée à l'aide d'un système hybride
(qui combine la radio, la lumière et l'information sonore) est présentée en [15].
Dans cet article, un modèle, qui calcule le signal Received Signal Strength
Indication (RSSI) à n’importe quelle distance et qui offre une précision jusqu'à
0,4 mètre en fonction de la configuration de déploiement, est proposé. La
technologie BLE offre des possibilités pour une immense amélioration dans le
positionnement intérieur. Dans ce travail, un système de localisation hybride est
développé. Cela combine l'acoustique, la radio et la lumière afin de suivre la
position d'une personne âgée dans une maison intelligente à tout moment.
Les rayonnements de type électromagnétique (EMF) générés lors de la
transmission de paquets ont une influence négative sur la santé humaine. Le
Specific Absorption Rate (SAR) est défini comme étant une mesure de la quantité
d'énergie à radiofréquence absorbée par les tissus humains en unités de masse.
L'algorithme d'optimisation est utilisé en [16] pour découvrir la position optimale
du nœud de relais de sorte que les nœuds de capteurs peuvent envoyer des paquets
au noyau par l'intermédiaire du nœud de relais à travers un chemin ayant la plus
faible SAR et ainsi le taux de succès de transmission peut être amélioré.
Les résultats d'analyse de la performance d'un système de capteur BLE qui est
basé sur l'émetteur-récepteur CC2540F de TI ont été présentés en [17]. Les
résultats peuvent être utilisés pour des recherches importantes comme les calculs
de durée de vie ou des modèles de simulation BLE. Les résultats montrent que
BLE est très intéressant en particulier pour le système de capteurs sans fil
alimentés par un collecteur d'énergie.
La consommation énergétique de BLE, ZigBee et des protocoles ANT (pour un
scénario de sommeil cyclique) a été analysé en [18]. Pour tous les intervalles de
sommeil mesurés, BLE atteint la plus faible consommation énergétique (10,1 µA,
3,3 V offre à intervalle de 120 s), par rapport à ZigBee (15,7 µA) et ANT (28,2
µA). La plupart des différences de consommation énergétique peuvent être
8
attribuées au temps que prend un nœud pour se connecter au centre après le réveil
et l'utilisation de sommeil entre les paquets RF individuels.
Le BLE est présenté en [19] pour la surveillance à distance pour l'ECG et pour
l’évaluation de sa performance axée sur le débit, le retard de bout en bout et le
taux d'erreur de paquet. Les données ECG nécessitent des transmissions continues
et en temps réel, ce qui les rend particulièrement difficiles pour les dispositifs
ayant des ressources limitées. Dans ce système, un module de BLE112 de
Bluegiga et un dongle BLE USB sont utilisés pour WBAN. Le nœud de capteur
BLE112 (agissant comme un esclave) de Bluegiga est utilisé pour mesurer les
données ECG d'un patient et les transmettre à un dongle BLE (agissant en tant
que maître) relié à Cu-box (plateforme embarquée agissant comme une
passerelle), qui prévoit une connectivité à un PC à distance via une connexion Wi-
Fi et 3G/4G. La performance du système est évaluée expérimentalement et les
résultats ont montré un bon potentiel de cette plateforme BLE proposée pour
répondre aux principales exigences de qualité de service des applications
médicales.
Une vue d'ensemble des technologies du système portable avec un accent sur la
technologie Bluetooth à faible énergie est présentée en [20]. Les différents
appareils médicaux portables commerciaux offerts avec BLE sont résumés dans le
présent document et donnent un aperçu des méthodes de développement, y
compris le matériel et la conception de logiciels. Bien que le taux de transmission
de données ne soit pas aussi élevé pour le Bluetooth normal, la technologie BLE
dans les systèmes portables de soins de santé est cruciale pour comprimer le
volume de l'appareil et prolonger la durée de vie de la pile.
Une nouvelle structure pour un système implantable de surveillance du glucose
alimenté à distance est présentée en [21]. L'unité implantable est alimentée à
distance par une unité externe par couplage inductif. L’émetteur sans fil
implantable utilise le protocole de communication à faible puissance et faible
consommation énergétique Bluetooth. Après que la mesure du glucose est
obtenue, elle sera ensuite transmise au téléphone mobile ou au PDA du patient à
proximité.
9
Une équipe sous la supervision des professeurs Younès Messaddeq et Benoit
Gosselin à l’Université Laval a créé un nouveau textile intégrant des fibres
multimatériaux discrètes qui communiquent à travers les réseaux sans fil de 2,4
GHz avec une excellente qualité de signal [22]. La fibre agit à la fois comme
capteur et comme antenne et peut être tissée avec de la laine ou du coton. La
qualité du signal de ces fibres textiles est comparable à celui des antennes
commerciales. Ces fibres multimatériaux représentent une approche rentable et
peu invasive au capteur de tissus et textiles pour la bio détection connectée en
temps réel aux infrastructures de communications mobiles, adaptées à une variété
d'applications de santé et de sciences de la vie.
2.1. Problème de recherche
Dans le développement d’un réseau de capteurs sans fil pour un système de
surveillance de la santé de la vie réelle, un nombre d’aspects, tels que la fiabilité,
la puissance, la portabilité, la sécurité, le réseau, les interférences, le temps réel et
la surveillance continu doivent être envisagés. Dans ce qui suit, l’importance de
ces aspects sera mentionnée.
2.1.1. Sécurité
Un des problèmes les plus graves dans un système de surveillance de la santé sans
fil est la sécurité et la fiabilité. Les systèmes sans fil doivent mesurer avec
précision et transmettre à temps les données d’un examen médical et les soins de
santé pour le suivi et l’analyse des données des patients. Les problèmes de
fiabilité sont automatiquement présents lorsque des données sont créées et
mesurées (les communications de données et l’analyse des données) [23]. Le
principal problème de la mesure des données et de l’analyse des données est sur le
matériel et le logiciel pour détecter et analyser les données sans aucune erreur. La
communication de données a besoin de plus d’attention que l’autre parce qu’il est
question de communication entre un nœud de capteur et le coordinateur ou le
serveur central de surveillance. Les auteurs ont proposé différentes techniques
10
pour une communication sécurisée, par exemple [24] ils ont fait une transmission
de données sécurisée en utilisant un protocole de retransmission. Un dispositif
capteur envoie les données avec la demande Acknowledgement (ACK). Si le nœud
de capteur ne reçoit pas de l’ACK à partir d’un appareil mobile ou d’un
coordinateur dans les limites de la durée d’attente d’ACK, il transmet à nouveau
la même trame de données jusqu’à ce qu’il reçoive l’ACK de l’appareil mobile.
Pour les fonctions de sécurité du système en [25], ils ont proposé l’algorithme
Elliptic Curve Cryptographic, l’authentification mutuelle et le groupe de
protocoles d’accord clé.
2.1.2. Puissance
La question de la puissance est un autre problème pour toutes sortes
d’applications WSN. Puisque la plupart des appareils WSN sont basés sur pile,
l’un des principaux défis consiste à optimiser leur consommation énergétique.
Certaines applications WSN ne nécessitent pas la pile au contraire, ils utilisent la
puissance de leur lecteur, c.-à-d., la rétrodiffusion. Cependant, ils ont limité la
portée de communication et ne peuvent transporter que des données de très petite
taille. D’autres applications utilisent les systèmes de récolte d’énergie pour WSN
tels qu'une cellule solaire [26], en utilisant des dispositifs piézo-électriques [27].
Mais ces systèmes de récolte d’énergie présentent des problèmes tels que leur
pouvoir dépend de leur environnement et ils ont tendance à être surdimensionnés.
L’énergie des protocoles efficaces, pour WSN en concevant des protocoles MAC
économes en énergie, est présentée à la référence [28]. Pour réduire, la
consommation énergétique [29] ils ont proposé de contrôler les périodes en mode
vieilles ou de sommeil de nœuds de capteurs.
2.1.3. Portabilité
Un réseau de capteurs sans fil doit être fonctionnel, robuste, de petite taille et à
faible coût. Pour cette raison, la plupart des PANS (Personale Area Networks)
utilisent un petit système à puce qui comprend un microcontrôleur et un émetteur-
11
récepteur RF ou un simple MCU, comme le MSP430F5529 et l’Atmel avec un
émetteur-récepteur externe comme le nRF24L01 et le BLE.
De nos jours, il existe des systèmes de biocapteurs portables tels que les textiles
intelligents ou une chemise à puce qui ont été conçus et qui sont faciles et
agréables à porter pour la surveillance de la santé. Ils peuvent transmettre des
données mesurées d'une situation médicale pour le suivi et l’analyse des données
provenant de patients [30] [31] [32].
2.1.4. Interférence du réseau
La qualité de service (Qualité of service, QOS) dans le système médical est
critique et le chevauchement de fréquences entre les réseaux sans fil peuvent
provoquer des interférences et réduire la fiabilité de communication. Dans les
environnements de WSN, différentes techniques de communication, tels que les
réseaux étendus et les réseaux locaux sans fil sont utilisés ensemble dans un
même réseau (industriel, Science et médicale [ISM]). Par conséquent, ils peuvent
conduire à une interférence de réseau et à une congestion des données ou à une
collision qui peut se produire lors de la transmission des données en continu en
temps réel. La connectivité réseau intermittente et la perte de paquets entraîneront
un abaissement du débit du réseau et une augmentation de la consommation
énergétique. Tel est le problème de l’interface réseau. L’IEEE 802.11 (Wi-Fi),
IEEE 802.15.1 (Bluetooth), IEEE 802.15.4 (ZigBee) et BLE partagent tous le
même 2,4 GHz de bande ISM. La question de l’interférence et la coexistence
entre Bluetooth et WLAN a été présentée en [33─35]. Les problèmes
d’interférence entre IEEE 802.15.4/ZigBee et WLAN sont décrits en [36], [37].
Pour le débit du réseau et la protection contre les interférences, BER (Bit Error
Rate), PER (taux d’erreur de paquet), RSSI, ou SINR (Signal Ratio interférence
du bruit) sont mesurés et analysés sur différents papiers. Une variété de sources
d’interférence et de leurs effets sur les communications ZigBee est explorée en
[38]. Ce travail présente un algorithme de prédiction d’interférences pour explorer
les impacts du Wi-Fi et des fours micro-ondes sur les communications ZigBee sur
la base des observations du taux d’erreur de paquet.
12
2.1.5. Temps réel et surveillance continu
Certains signes vitaux, tels que le son du battement cardiaque et l’ECG, doivent
être surveillés en continu et en temps réel. Étant donné que la fréquence cardiaque
est rapportée périodiquement, un dispositif de détection du rythme cardiaque doit
toujours être allumé et doit aussi transmettre en continu avec de faible retard de
transmission et de faible latence pour la surveillance en temps réel. Si un
dispositif de détection peut transmettre des données périodiques de façon
discontinue ou de transmettre des données en continu avec beaucoup de temps de
retard, il est difficile pour les médecins de surveiller en cas d’attaque pendant
l'ECG d’un patient.
Par conséquent, un suivi continu et en temps réel sont deux choses essentielles
dans le traitement d’un patient. En [39] on présente une chemise à puce, conçue
pour permettre de mesurer les signaux ECG pour la surveillance de la santé en
temps continu et réel d’un patient.
2.2. Communication sans fil
De nombreuses applications sans fil de faible puissance sont offertes sur le
marché. En ce qui concerne le choix d’une technologie sans fil appropriée dans
cette section, un aperçu et une comparaison des technologies émergentes orientées
vers le soutien des dispositifs à faible puissance et à faible consommation
d’énergie pour des applications médicales ont été fournis. La portée de
communication de la technologie NFC est limitée à la fois par l’émetteur et par le
récepteur qui ont besoin d’être dans la ligne de visibilité avec moins de 1 m de
distance afin d’obtenir la communication souhaitée [38]. ANT a des faibles
caractéristiques de coexistences et a des problèmes d’interférence. Un choix
typique reste ZigBee /6LoWPAN sur IEEE 802.15.4 des solutions basées dans
WBANs, et les technologies BLE proposés récemment en raison de leur faible
consommation énergétique.
Dans cette section, quatre technologies normales sans fil, ex., IEEE 802.11 a/b/g
(Wi-Fi), IEEE 802.15.1 (Bluetooth classique), IEEE 802.15.4 (ZigBee) et BLE
13
sont brièvement passées en revue pour leurs applications dans les systèmes sans
fil spécialisés dans la surveillance de la santé.
2.2.1. WI-FI (802.1 1a/b/g)
Le Wi-Fi est le terme général pour tout type de réseau IEEE 802.11 et est un
moyen populaire pour fournir un accès Internet sans connexion filaire. Des
exemples de réseaux 802.11 sont le 802.11a (jusqu’à 54 Mb/s), le 802.11 b
(jusqu’à 11 Mb/s) et le 802.11 g (jusqu’à 54 Mb/s). Trois normes 802.11 diffèrent
dans leur bande passante, leur couverture et dans le soutien de la sécurité qu'elles
offrent. Le WI-FI utilise la technologie Direct Sequence Spread Spectrum (DSSS)
pour diminuer la diaphonie avec d’autres communications dans la même
fréquence [39].
Le 802.11a est adapté pour les applications vocales multimédias, vidéo et images
en grande partie dans les environnements densément peuplés d'utilisateurs.
Cependant, il offre une gamme relativement plus courte que le 802.11b, ce qui
nécessite de ce dernier moins de points d’accès pour la couverture des grandes
surfaces. La norme 802.11g est remplacée par le 802.11 b en raison de sa bande
passante plus élevée et une meilleure sécurité.
2.2.2. ZigBee /6LoWPAN
IEEE 802.15.4 définit les caractéristiques des deux types de couches physiques et
de MAC. Cependant, ZigBee est construit sur la norme IEEE 802.15.4, qui définit
les spécifications de la couche réseau et fournit un cadre pour la programmation
de l’application dans la couche d’application. Ce sont des protocoles basés sur des
standards et peuvent être utilisés pour développer de faible taux de données, une
faible complexité, une faible consommation énergétique, et des WSN’s à faible
prix. ZigBee utilise un signal radio de type DSSS et la couche physique (PHY)
prend en charge trois bandes radio, une bande ISM 2,4 GHz avec 16 canaux (à
250Kbps), une bande 915 MHz ISM (Amérique) avec 10 canaux (à 40kbps), et la
bande 868 MHz (Europe) avec un seul canal (à 20kbps).
14
Zigbee spécifie un algorithme pour éviter les collisions en utilisant la technologie
accès multiple avec écoute de porteuse (CSMA /CA). La couche MAC contrôle
l’accès au canal radio. L’IEEE 802.15.4 PHY utilise une séquence directe de
codage à étalement de spectre pour réduire les pertes de paquets en raison du bruit
et des interférences. En outre, il prend en charge des options de deux modulations
de la couche PHY. Le PHY 868/915 MHz adopte un Binary Phase-Shift Keying
(ou BPSK, soit « modulation par changement de phase »), alors que le PHY
2,4 GHz utilise un décalage en Quadrature Phase-Shift Keying (QPSK). Un
ZigBee définit trois types de dispositifs : coordinateur (MAC pleine fonction
Devise-FFD), routeur (MAC FFD) et dispositif d’extrémité (MAC Fonction
réduite Devise — RFD). Un FFD peut servir de coordinateur du réseau ou d’un
dispositif régulier. Il peut communiquer avec d’autres appareils. Un RFD est
destiné aux applications qui sont simples, comme un interrupteur ou un dispositif
de capteur simple. Il ne peut communiquer qu’avec FFD. Un coordinateur de
ZigBee est un nœud de station de base qui déclenche automatiquement la
composition du réseau et contrôle le processus global du réseau. Il a besoin d’une
grande mémoire et de puissance de traitement élevée. Un routeur ZigBee est
également un FFD qui relie les groupes ensemble et supporte le multi sauts pour
la transmission de paquets. Il peut se connecter avec d’autres routeurs et
terminaux périphériques. Les terminaux ZigBee ne peuvent communiquer avec un
FFD. Il possède des fonctionnalités limitées.
Théoriquement, ZigBee peut supporter jusqu’à 65.536 nœuds. Pour plus de
sécurité, il utilise 128-bit Advanced Encryptions Standard (AES) et
l’authentification. La gamme de transmission est de 10 m à 75 m, en fonction de
la puissance de sortie d’une application et les caractéristiques environnementales.
La pile des appareils ZigBee est censée avoir une durée de vie allant de plusieurs
mois à plusieurs années [40].
2.2.3. Bluetooth classique
Bluetooth (IEEE 802.15.1) est caractérisé par un faible coût, une communication
sans fil à faible niveau de fréquence radio de la puissance pour les
15
communications à courte distance. La pile de protocoles Bluetooth définit de
nombreux composants au-dessus des couches PHY et MAC et est compliquée en
comparaison avec d’autres piles réseau IEEE. Bluetooth fonctionne sans licence
2,4 GHz dans la bande ISM, occupant 79 canaux. La couche PHY utilise des sauts
de fréquence de codage à étalement de spectre pour réduire les interférences et la
décoloration. Le débit maximum est jusqu’à 3 Mb/s en mode de débit de données
amélioré. La technologie de connectivité de base Bluetooth est le piconet basé sur
une topologie de réseau en étoile. Il se compose d’un dispositif maître qui
communique directement avec jusqu’à sept réseaux périphériques esclaves actifs.
Dans un piconet réseau donné, tous les appareils sont synchronisés en utilisant le
modèle d’horloge et de saut de fréquence du maître, et les dispositifs esclaves
communiquent uniquement avec leur maître dans la façon unique [41].
2.2.4. ANT
ANT définit une pile de protocoles de communication sans fil qui permet au
matériel fonctionnant dans la bande ISM 2,4 GHz de communiquer en établissant
des règles pour la coexistence, la représentation des données, la signalisation,
l'authentification et la détection d'erreurs. Il est conceptuellement similaire à BLE.
Cependant, BLE et ZigBee / 6LoWPAN fournissent une meilleure coexistence
avec d'autres normes sans fil (telles que le Wi-Fi) dans leur voisinage que l'ANT.
Parce que BLE utilise le saut de fréquence (FHSS) et ZigBee utilise le spectre de
propagation de séquence directe (DSSS), les deux sont capables d'atténuer les
interférences, avec les émetteurs RF voisins. ANT a des caractéristiques de
coexistence faible et des problèmes d'interférence en raison de sa méthode d'accès
de canal basé sur TDMA qui est caractérisée par de très petits intervalles de
temps. Il surveille l'interférence de canaux en utilisant une technique appelée
réseaux isochrones adaptatifs.
16
2.2.5. Bluetooth Low Energy
Le BLE est une nouvelle norme sans fil qui est utilisée pour l’IOTs. Le BLE
permet de transmettre des données sans qu’il soit nécessaire d’établir une
connexion. Par conséquent, le retard de l’appariement et l’établissement de la
communication sont supprimés. Les capteurs sont capables de rester endormis et
de se réveiller seulement quelques millisecondes pour transmettre périodiquement
des données ou pour un événement particulier. Cette fonction BLE est adaptée
pour les applications qui nécessitent une longue durée de vie, telle que
l’application médicale [19]. Bien que le IEEE802.15.4 a été adopté par les
différents chercheurs et développeurs dans une variété de dispositifs matériels,
cette technologie n'a cependant jamais été intégrée dans les téléphones portables.
Il est prévu que BLE sera inclus dans des milliards d’appareils dans le monde
entier dans les prochaines années.
Une pile BLE typique se compose de deux grandes parties, l’une est appelée la
partie du contrôleur tandis que l’autre est appelée la partie hôte. Une partie de
contrôleur se compose généralement de la couche physique et de la couche de
liaison (mis en œuvre sous la forme d’un SoC [System-on-Chip] avec une radio
intégrée), tandis que la partie hôte fonctionne sur un processeur d’application et
inclut des fonctionnalités de couche supérieure constituée par Logical Link
Control and Adaptation Protocol (L2CAP), Attribut contrôle (ATT), Generic
Attribut Profile (GATT), le protocole de gestion de la sécurité et de Generic
Access Profile (GAP). La communication entre l’hôte et le contrôleur est
normalisée comme Host Controller Interface (HCI) [41].
La couche de liaison en BLE définit les dispositifs soit comme un maître soit
comme un esclave, qui agissent en tant qu’initiateur et annonceur respectivement,
lors de l’établissement de la connexion. Un maître peut se connecter à autant
d’esclaves que possible, formant ainsi un réseau en étoile. Dans les opérations de
routine de base, les esclaves se mettent en mode veille et s’activent,
périodiquement, à l’écoute de tous les paquets du maître. C’est le maître, le plus
souvent, qui détermine les périodes de sommeil/réveil des esclaves.
17
En comparaison avec Bluetooth classique et d’autres technologies à faible
puissance, telles que 6LoWPAN, BLE a été spécialement conçu pour atteindre
une faible consommation énergétique. Les optimisations du BLE, pour parvenir à
une faible consommation énergétique, sont concentrées sur un protocole simplifié
qui annonce l’analyse et le temps requis avant de transmettre des données. Cette
simplification a été atteinte en réduisant les 16 canaux disponibles à seulement 3
canaux lors de l'annonce. Lorsque les dispositifs BLE sont connectés, ils peuvent
faire un transfert de données sur un canal de données spécifique. Cette action est
appelée « événements de connexion ». Le temps entre deux événements de
connexion est défini comme l’intervalle de connexion qui est le paramètre est le
plus important pour la latence de la communication et de la consommation
énergétique. BLE offre une connexion plus rapide avec la possibilité de se
connecter automatiquement à d'autres appareils qui s'affichent comme étant
disponibles lors du balayage [42]. Tout dispositif qui transmet des paquets
d'annonces est appelé advertiser (annonceur). La transmission de paquets à
travers les canaux d'annonces a lieu à des intervalles de temps et l'annonceur
utilise séquentiellement chaque canal d'annonces pour la transmission de paquets.
Les appareils qui ne visent qu’à recevoir des données qu'à travers ces canaux sont
appelés Scanners.
2.3. Comparaison de la technologie sans fil
Une comparaison entre les caractéristiques de BLE et d’autres technologies sans
fil, telles que le WI-FI (802.11 a/b/g), Bluetooth classique (IEEE 802.15.1),
ZigBee /6LoWPAN (IEEE 802.15.4), ANT et BLE est indiquée dans le tableau 1.
Le Bluetooth classique peut fonctionner sur une pile bouton, sa consommation de
puissance est relativement élevée et la durée de vie de sa pile est limitée et le rend
impropre à l’application de surveillance médicale ininterrompue et de capteurs
implantables, impose les contraintes sur le nombre d’appareils appariés par nœud
maître (avec un maximum de huit nœuds). En outre, BLE a des retards de réveil
faible (latence) qui est généralement autour de trois secondes, ce qui est la plus
18
Comparaison du BLE avec d’autres technologies. Tableau 1.
Caractéristiques
techniques
Wi-Fi
(802.1 1a/b/g)
Bluetooth
Classique
ZigBee/6LoWPAN
(IEEE 802.15.4) ANT+ BLE
Fréquence de la
radio
2,4 GHz,
5 GHz 2,4 GHz
868/915 MHz,
2,4 GHz 2,4 GHz 2,4 GHz
Portée 100 m ~ 10-100 m 10 -100 m 30 m ~ 150 m
Symbole du taux
54 Mb/s
(802.1 1a/g)
11 Mb/s
(802.1 1b)
1 – 3 Mb/s 250 kb/s
1 Mbps 1 Mb/s
Débit
d’application 11 Mb/s 0,7 – 2,1 Mb/s < 0,1 Mb/s
0,5 Hz to
200 Hz 0,27 Mb/s
Nœuds connectés 2007 7 65,000 65533 > 2 milliard
Modulation
BPSK, QPSK
COFDM,
CCK,
M-QAM
GFSK/DQPSK BPSK (+ ASK),
O-QPSK GFSK
GFSK
Robustesse
Dynamique
Freq.
Sélection,
transmission
contrôle de
puissance
(802.1 1b)
FHSS Dynamique Freq.
Sélection -
Étalement de
spectre par
saut de
fréquence,
24 bit CRC
Courant de
pointe maximum 400 mA 30 mA 30-40 mA 17 mA 12-15 mA
Topologie BSS Éclatement Étoile ou maillage
Étoile, point à
point
maillage,
arbre,
Étoile, point à
point
Bande passante 22 MHz
79 canaux, sur
une largeur de 1
MHz
0.3/0.6 MHz, 2 MHz 1 MHz
40 canaux,
sur une
largeur de 2
MHz
Latence - > 100ms 20-30ms Zero < 2,5 ms
Sécurité
RC4 cryptage de flux 9WEP),
AES cryptage de blocs
56 To 128 bits 128 bits AES
AES-128 and
64-bit key 128bits AES
CCM
Application
principale
- Réseaux de
bureau
- Accueil
Réseau
- WLAN
- Remplacer
les câbles
Ethernet
-Applications de
voix
-Remplacement
de câble à
courte distance
-Contrôle des
capteurs
-Télécommande
-Automatisation à
grande échelle
-Santé,
domotique et
applications
industrielles.
-Électronique
de masse
-Santé et
remise en
forme
-Téléphones
portables
19
grande différence entre Bluetooth classique et BLE. Donc, BLE fournit une
plateforme de communication qui se caractérise par une consommation
énergétique beaucoup plus faible. Cette caractéristique permet à l’appareil de
fonctionner plus longtemps sans être rechargé, et en outre, le format de l’appareil
est beaucoup plus petit en raison de la diminution de la taille de la pile [43] [44].
ANT possède des caractéristiques de coexistence faible et des problèmes
d'interférence. Les technologies les plus appropriées restent ZigBee /6LoWPAN
sur IEEE 802.15.4 et les technologies BLE proposées récemment qui offrent une
meilleure coexistence avec d’autres normes sans fil. Puisque le BLE utilise la
fréquence d’adaptation (FHSS) et ZigBee utilise le spectre de seéquence direct
DSSS, les deux sont capables d’atténuer les interférences [45]. Cependant, le BLE
est une nouvelle génération de technologies et prétend offrir de nombreuses
nouvelles fonctionnalités intéressantes, tels qu’un faible coût, une faible
puissance, en plus d’une mise en œuvre facile, fiable et sécuritaire. En outre, il
doit être largement adopté par de nombreux fabricants de téléphones mobiles dans
le monde entier et ainsi être inclus dans les appareils mobiles de la vie
quotidienne.
2.1. Avantages et désavantages des technologies de
communication sans fil
Dans le tableau 2 les avantages et les désavantages des technologies de
communication sans fil (WI-FI [802.1 1a/b/g], Bluetooth classique
[IEEE 802.15.1], IEEE 802.15.4 [ZigBee /6LoWPAN] et BLE) sont résumées. Le
BLE est une nouvelle norme conçue pour une nouvelle décennie de produits
connectés. ZigBee consomme une puissance faible ; BLE utilise une puissance
encore plus faible et il possède une technologie améliorée en plus d'avoir une
présence imposante sur plusieurs marchés existants : les téléphones mobiles, les
automobiles, l’électronique grand public, et l’industrie de l’ordinateur. Le
prochain chapitre de ce document porte sur la norme sans fil BLE, car elle est plus
avantageuse pour l'application proposée.
20
Avantages et inconvénients des technologies Tableau 2.
Avantages
/Désavantages
WI-FI
(802.1 1a/b/g)
Bluetooth
classique
(IEEE 802.15.1)
ZigBee
/6LoWPAN
(IEEE 802.15.4) ANT BLE
Avantages - Dominant Tech.
WLAN.
- Simplicité de
synchronisation
- Fréquence
d’adaptation
- Tolérant à
l'environnement
sévère
- Technique PAN
dominante
-Réseau statique
- Faible
consommation
énergétique
- Extension de
taille réseau
- Commande /
Capteur
- Modes faible
consommation
énergétique et
sommeil
profond
- - Protocole
simple
- - Technique de
TDMT
- Faible consommation
énergétique
- Haut débit de données
- Simplicité de
synchronisation
- Fréquence
d’adaptation
- Tolérant à un
environnement hostile
- Simple modèle
d'interface (GATT)
- Connexions rapides
Désavantages - Consommation
énergétique
importante
- Interface avec
Wi-Fi
- Consommation
énergétique
moyenne
- Faible bande
passante
-Faible bande
passante
-Faible vitesse de
transmission des
données
-Courte portée
- -Faiblesse de la
coexistence et
problèmes
d'interférence
- Faible bande passante
- Compatibilité
21
Chapitre 3 : Description générale du BLE et de la
pile
Introduction 3.
Le BLE est une nouvelle norme sans fil qui devrait répondre aux exigences
fondamentales des capteurs sans fil tels qu'une faible consommation d'énergie, un
protocole simplifié et de courts délais entre différents états d'émetteurs-récepteurs
sans fil. Comme discuté dans le dernier chapitre, le BLE offre de nombreux
avantages par rapport aux autres technologies sans fil, c'est pourquoi il sera évalué
à titre de solution de transmission sans fil potentiel pour ces travaux. La topologie
en étoile simple réduit considérablement la complexité d'implémentation. De plus,
la couche PHY utilise des sauts de fréquence de codage à étalement de spectre
pour réduire les interférences et la décoloration. La robustesse de cette
technologie en ce qui a trait aux sauts de fréquences, comparativement à d'autres
technologies sans fil ayant également une très faible consommation d'énergie, est
un avantage indéniable.
L'objectif de ce travail est d'introduire la technologie sans fil BLE et de rendre
compte de ses performances lors d'une expérience dans laquelle des flux de
données médicales ont été transmis en utilisant le BLE. Dans ce chapitre, les
différentes couches du BLE sont présentées afin de connaître la manière d'accéder
aux données via le Generic Attribut Profile (GATT) et celle pour transmettre
différents paquets à la couche de liaison à travers l'interface HCI.
3.1. Notions de base du réseau utilisant le BLE
Un périphérique BLE communique de deux méthodes (radiodiffusion et
connexion). Bien que chaque méthode ait ses propres avantages et limites, elles
ont toutes les deux des procédures établies par le GAP.
22
3.1.1. Radiodiffusion et observation
Lorsque vous utilisez la radiodiffusion sans connexion, un dispositif BLE envoie
des données vers tout appareil de balayage ou récepteur qui est à portée d’écoute
acceptable. Essentiellement, ce mécanisme permet à un périphérique BLE
d’envoyer des données sur un chemin à quelqu’un ou à quelque chose qui est
capable de capter ces données transmises. Radiodiffusion définit deux rôles
distincts :
Diffuseur : Envoie des paquets pour la connexion périodiquement à quiconque est
prêt à les recevoir.
Observateur : Numérise à plusieurs reprises les fréquences préréglées pour
recevoir tous les paquets pour la connexion qui ont été diffusés.
La radiodiffusion est le seul moyen que possède un dispositif pour transmettre des
données à plus d’un poste en même temps. Les données diffusées sont envoyées
en utilisant les caractéristiques employées lors de l'anonce par le système BLE.
3.1.2. Connexions
Pour transmettre des données dans les deux directions en BLE, une connexion
doit être utilisée. Une connexion en BLE n’est rien de plus qu’un échange
périodique de données sur certains points précis dans le temps (les événements de
connexion) entre les deux paires BLE impliquées. En règle générale, les données
ne sont envoyées et reçues que par les deux paires BLE impliquées dans la
connexion sans qu'aucun autre dispositif n'intervienne. Les connexions jouent
deux rôles distincts :
Central (maître) : Analyse de façon répétitive les fréquences BLE préétablies
pour les paquets d’annonçant la connexion et, lorsqu’approprié, initie une
connexion. Une fois la connexion établie, le centre gère la synchronisation et
commence l'échange de données périodiques.
Périphérique (esclave) : Un dispositif qui envoie des paquets annonçant la
connexion périodiquement et accepte les connexions entrantes. Une fois dans une
23
Pile de protocole BLE [45]. Figure 2.
connexion active, le périphérique suit la synchronisation et les échanges de
données en communiquant régulièrement avec elle.
3.2. Aperçu du protocole BLE en empilage
La figure 2 montre le schéma de principe de la couche de protocole BLE. La
couche de protocole BLE contient deux parties principales : la partie Controller
(contrôleur) et la partie Host (hôte). La partie contrôleur comprend une couche
physique et une couche de liaison et est généralement mise en œuvre comme un
petit SOC avec une radio intégrée, et une autre partie principale est l’hôte qui
fonctionne sur un processeur d’application. L'hôte inclut des fonctionnalités de la
couche supérieure, par Logical Link Control and Adaptation Protocol (L2CAP),
Attribute Protocol (ATT), Generic Attribute Profile (GATT), Security Manager
(SM) et Generic Access Profile (GAP). L'Host Controller Interface (HCI) permet
d'établir une communication entre l’hôte et le contrôleur. La couche d’application
qui n'est pas définie par la spécification Bluetooth peut être utilisée au-dessus de
l’hôte. Un aperçu des caractéristiques de chaque couche est présenté ci-dessous :
24
Contrôleur 3.2.1.
Le contrôleur inclut toutes les fonctionnalités de bas niveau nécessaires pour que
le dispositif BLE communique ; il est composé de la Physical Layer (PHY), la
couche de liaison et le Host Controller Interface (HCI).
Physical layer 3.2.2.
Comme mentionné précédemment, le BLE fonctionne en bande de 2,4 GHz ISM
et définit 40 canaux de fréquence radio (3 canaux d'annonces et de 37 canaux de
données) avec 2 MHz qui représentent la largeur du canal. Les canaux d'annonces
sont utilisés pour la détection des périphériques, l’établissement de la connexion
et la transmission de radiodiffusion tandis que les canaux de données sont utilisés
pour une communication bidirectionnelle entre les périphériques connectés. Pour
les interférences et les problèmes de propagation sans fil (telles que la
décoloration et la propagation multichemin), une fréquence d’adaptation au
mécanisme de saut est utilisé. Ce mécanisme sélectionne l’un des 37 canaux de
données disponibles pour la communication pendant un intervalle de temps
donné. Tous les canaux physiques utilisent une modulation nommée Gaussian
Frequency Shift Keying (GFSK) qui est simple à mettre en œuvre. L’indice de
modulation se situe dans la plage comprise entre 0,45 et 0,55, ce qui permet une
réduction de la consommation de puissance.
Deux types de canaux pour les appareils BLE [45] Figure 3.
25
Link layer 3.2.3.
La couche de liaison commande l’état RF de l’appareil et dispose des interfaces
directes avec PHY. Il y a six états possibles de la couche liaison (Standby,
Advertiser, Scanner, Initiate, Master et Slave) pour un dispositif BLE.
Les périphériques peuvent annoncer pour une variété de raisons. Quand un
appareil a uniquement besoin de diffuser des données, il transmet les données en
paquets d'annonces à travers les canaux prévus à cet effet. Tout dispositif qui
transmet des paquets d'annonces est appelé advertiser. La transmission de paquets
à travers les canaux d'annonces a lieu à des intervalles de temps appelé
advertising Events. Dans un Advertising Events, l'advertiser utilise
séquentiellement chaque canal d'annonces pour la transmission de paquets. Les
appareils qui ne visent qu’à recevoir des données qu'à travers ces canaux sont
appelés Scanners. Pour la communication bidirectionnelle de données, les
appareils doivent se connecter les uns aux autres. Cette connexion est une
procédure asymétrique. Un advertiser annonce à travers les canaux qu’il est un
dispositif connectable, tandis que l’initiator (l’autre dispositif) est à l’écoute de
ces annonces. Lorsqu’un initiator trouve un advertiser, il peut transmettre un
message de demande de connexion à l’initiator, ce qui crée une connexion point à
point entre les deux appareils. Les deux appareils peuvent alors communiquer en
utilisant les canaux de données physiques.
Pour la connexion créée, le BLE définis deux rôles de l’appareil (maître et
esclave) dans la couche de liaison qui agissent en tant qu’initiateur et annonceur
lors de la création de la connexion. Le réseau composé par un maître et ses
esclaves (un maître peut gérer plusieurs connexions simultanées avec différents
esclaves, alors que chaque esclave ne peut être connecté qu’à un seul maître) qui
est appelé un piconet suit une topologie en étoile. Actuellement, un dispositif BLE
ne peut appartenir qu’à un seul piconet.
Les esclaves sont en mode veille par défaut et se réveillent de temps en temps
pour écouter les réceptions de paquets possibles du maître. Le maître détermine
les cas où les esclaves sont nécessaires pour écouter et coordonne ainsi l’accès au
support en utilisant un régime nommé accès multiple par répartition dans le temps
26
(TDMA). Le maître fournit également l’esclave avec les informations nécessaires
pour l’algorithme de saut de fréquence (contenant la carte des canaux de données
à utiliser) et pour la gestion des connexions. Les paramètres liés à la gestion d’une
connexion sont transmis dans le message de demande de connexion et peuvent
être mis à jour lors de la connexion pour diverses raisons (par exemple, en
utilisant une nouvelle carte du canal de données en raison d’un changement du
motif d’interférence).
Une fois que la connexion établie, la couche physique se compose d'événements
de connexion qui sont non simultanées. Tous les paquets sont transmis en utilisant
la même fréquence de canal de données au cours de cet événement de connexion.
Lorsque l’esclave reçoit un paquet, il envoie un paquet au maître en réponse.
Cependant, le maître n’est pas obligé d’envoyer un paquet à la réception d’un
paquet en provenance de l’esclave. Au minimum, un espace d’Inter Frame Space
(IFS) de 150 ms doit passer entre la fin de la transmission d’un paquet et le début
de la suivante. Alors que maître et esclave continuent d’alterner dans l’envoi de
paquets, l’événement de connexion est considéré comme ouvert. Les canaux de
paquets de données comprennent un bit nommé More Data (MD) qui signale si
l’expéditeur a plus d’informations à transmettre. L’événement de connexion sera
fermé si aucun des appareils n’a de données à transmettre et que l’esclave n’est
pas obligé d’écouter jusqu’au début de l’événement de connexion suivante. Pour
un nouvel événement de connexion, le maître et l’esclave utilisent une nouvelle
donnée de fréquence de canal, qui est calculée en utilisant l’algorithme de saut de
fréquence.
27
Quatre états actifs d’une création d’une connexion [45]. Figure 4.
Host Controller Interface (HCI) – Controller side 3.2.4.
Le HCI est une interface du côté du contrôleur qui fournit un moyen de
communication à l’hôte via une interface standardisée ; la spécification Bluetooth
définit HCI comme un ensemble de commandes et d'événements pour que l’hôte
et le contrôleur interagissent les uns avec les autres, avec un format de données en
paquet et un ensemble de règles de contrôle de flux et d’autres procédures. En
outre, la spécification définit plusieurs transports, dont chacun augmente le
protocole du HCI pour un transport physique spécifique (UART, USB, SDIO,
etc.). Ceci peut être réalisé soit par l’intermédiaire d’un logiciel d'API, ou par une
interface matérielle, y compris des logiciels comme UART, SPI, etc.
Host 3.2.5.
Le bloc hôte comprend les couches suivantes, du côté du HCI, Logical Link
Control et Adaptation Protocol (L2CAP), Attribute Protocol (ATT) et Security
Manager (SM) et enfin le Generic Attribute Profile (GATT) et Generic Access
Profile (GAP).
28
Logical Link Control et protocole d’adaptation (L2CAP) 3.2.6.
Un protocole optimisé et simplifié sur la base du Bluetooth L2CAP classique est
utilisé dans le BLE. L’objectif principal du L2CAP dans BLE, est de multiplexer
les données des trois protocoles supérieurs (ATT, SMP et couche de liaison
Control Signaling) sur une connexion d’une couche de liaison. Les données de ces
services sont traitées par L2CAP dans une approche appelée « Best-Effort » et
sans l’utilisation des mécanismes de contrôle de la retransmission et de débit, qui
sont disponibles dans d’autres versions Bluetooth. Les capacités de segmentation
et de réassemblage ne sont pas utilisées, puisque les protocoles de la couche
supérieure fournissent des unités de données qui correspondent à la taille
maximale de charge utile de L2CAP, qui est égale à 23 octets dans BLE.
ATT (Attribute Protocol) 3.2.7.
L’ATT définit la communication entre les deux dispositifs jouant les rôles de
serveur et de client, respectivement, au-dessus d’un canal L2CAP dédié. Le
serveur gère un ensemble d’attributs. Un attribut est une structure de données qui
stocke les informations gérées par le GATT, le protocole qui fonctionne au-dessus
de l’ATT. Le rôle de client ou de serveur est déterminé par le GATT, et est
indépendant du rôle de l’esclave ou du maître. Le client peut accéder aux attributs
du serveur par l’envoi des demandes qui déclenchent les messages de réponse du
serveur. Pour une plus grande efficacité, un serveur peut également envoyer à un
client deux types de messages non sollicités qui contiennent des attributs : (i) les
notifications, qui sont non confirmées ; et (ii) des indications qui force le client à
envoyer une confirmation. Un client peut également envoyer des commandes au
serveur afin d’écrire des valeurs d’attribut.
GATT (Generic Attribute Profile) 3.2.8.
Le GATT définit un cadre qui utilise le ATT pour la découverte de services et
l’échange de caractéristiques d’un appareil à l’autre. Une caractéristique est un
29
ensemble de données qui comprend une valeur et des propriétés. Les données
relatives aux services et aux caractéristiques sont stockées dans des attributs. Par
exemple, un serveur qui exécute un service de détection de température peut
représenter une caractéristique de température qui utilise un attribut de description
du capteur, un autre attribut pour stocker des valeurs de mesure de température et
en plus un attribut pour spécifier les unités de mesure.
Sécurité 3.2.9.
Pour la protection de l’échange d’informations entre deux appareils connectés,
BLE offre divers services de sécurité. Deux modes de sécurité mutuellement
exclusifs appeler le mode de sécurité LE 1 et le mode de sécurité LE 2 peuvent
être exprimés pour les services de sécurité. Le mode de sécurité LE1 fournit des
fonctionnalités de sécurité à la couche de liaison et le mode de sécurité LE 2à la
couche ATT.
La couche de liaison BLE prend en charge le cryptage et l’authentification en
utilisant l’algorithme Cipher Block Chaining-Message Authentication Code
(CCM) et un bloc de cryptage AES de 128 bits. Lorsque le cryptage et
l’authentification sont utilisés dans une connexion, un Message Integrity Check
(MIC) de quatre octets est ajouté à la charge utile du PDU du canal de données, et
ensuite appliqué à la charge utile du PDU et aux champs MIC.
Il est également possible de transmettre des données authentifiées par une
connexion de couche de liaison non cryptée. Dans ce cas, une signature de 12
octets est placée après la charge utile de données sur la couche ATT. La signature
est calculée en appliquant un algorithme qui utilise 128-bit AES comme le bloc de
cryptage [43]. Une entrée à l’algorithme est considérée comme un compteur, qui
est utilisé dans le but de fournir une protection contre les attaques répétées. Si le
récepteur vérifie la signature, il suppose que les données ont été envoyées par une
source fiable. Outre les services décrits, BLE supporte un mécanisme appelé
fonction de confidentialité, ce qui permet à un périphérique d’utiliser des adresses
privées et souvent changées. La caractéristique de la vie privée atténue la menace
30
par laquelle un adversaire peut suivre un dispositif BLE. Les adresses privées sont
générées en cryptant l’adresse publique du dispositif, ce qui peut être résolu par
un dispositif fiable qui a été fourni avec la clé de cryptage correspondante.
Chaque mode de comptes de sécurité comprend des niveaux différents, qui
expriment des exigences quant au type d’appariement qui doit être utilisé. Le
jumelage est une procédure par laquelle les appareils génèrent et distribuent du
matériel clé.
Generic Access Profile (GAP) et ses applications 3.2.10.
Le GAP au plus haut niveau du noyau pile BLE, précise les rôles, les modes et les
procédures de l’appareil pour la découverte de dispositifs et de services, la gestion
de l’établissement et de la sécurité de la connexion. Le GAP du BLE remplit
quatre rôles avec des exigences spécifiques tels que diffuseur, observateur,
périphérique et centrale sur le contrôleur sous-jacent. Un dispositif qui a le rôle de
diffuseur, via les canaux d'annonces, diffuse seulement des données et ne prend
pas en charge les connexions avec d’autres appareils.
Le rôle d’observateur est de recevoir les données transmises par le diffuseur et lui
est complémentaire. Le rôle central est d’initier et de gérer plusieurs connexions
d’un dispositif, alors que le rôle périphérique est pour les dispositifs simples qui
utilisent une seule connexion avec un dispositif dans le rôle central. Un dispositif
peut prendre en charge plusieurs rôles, mais un seul rôle peut être accepté à un
moment donné. Un profil de plus haut niveau, qui spécifie comment les
applications peuvent inter opérer, est appelé un profil d’application. Les profils
d’application, qui sont également spécifiés par le Bluetooth SIG, favorisent
l’interopérabilité entre les appareils de différents fabricants.
Application 3.2.11.
L’application, comme dans tous les autres types de systèmes, existe dans la
couche la plus élevée et est celle qui contient la logique, l’interface utilisateur et
la manipulation de données pour tout ce qui concerne le cas d’utilisation que
31
l’application implante. L’architecture d’une application est fortement tributaire de
l’implantation choisie et dans BLE il utilise généralement les capacités fournies
par les profils BLE.
3.3. Avantages du BLE
Dans ce chapitre, la pile de protocoles BLE est présentée et les principaux
mécanismes et les caractéristiques de chaque couche sont décrits. Comme
mentionné, une pile BLE typique se compose de deux parties principales, l'une est
appelée la partie contrôleur et l'autre est appelée la partie hôte. La partie
contrôleur se compose de la couche physique et de liaison. La couche physique
fonctionne à la fréquence de 2,4 GHz et fait usage d'environ 40 canaux qui sont
séparés de 2 MHz chacun. Il existe deux types de canaux pour les périphériques
BLE, les canaux publicitaires et les canaux de données. Comme mentionné, tous
les canaux physiques utilisent une modulation GFSK, qui est simple à mettre en
œuvre. Le nœud annonceur BLE transmet des paquets publicitaires à travers des
canaux publicitaires à des intervalles de temps précis appelés événements
publicitaires et un nœud scanneur qui reçoit des données en utilisant les canaux
publicitaires. Les périphériques BLE doivent d'abord se connecter l'un à l'autre
avant qu'ils ne commencent une communication de données bidirectionnelle
fiable. La couche de liaison BLE définit les dispositifs comme un maître ou un
esclave, qui pendant les étapes de connexion agissent respectivement comme
initiateur et annonceur. Un maître peut se connecter à autant d'esclaves que
possible, formant ainsi un réseau en étoile. Les esclaves peuvent entrer en mode
veille et s'allumer périodiquement pour écouter tous les paquets du maître. C'est le
maître qui détermine les périodes de sommeil ou de réveil des esclaves. La partie
hôte s'exécute sur un processeur d'application et comprend une fonctionnalité de
couche supérieure consistant en L2CAP, ATT, GATT, GAP. La communication
entre l'hôte et le contrôleur est par HCI. BLE utilise une version plus légère du
L2CAP qui a été définie pour le Bluetooth classique. Les principales tâches du
L2CAP sont de prendre en charge les données de multiplexage des trois
32
protocoles de couche supérieure, ATT, SMP et la signalisation de contrôle de
couche de liaison, sur une connexion de couche de liaison.
La technologie BLE satisfait la plupart des exigences et des défis liés à la
surveillance médicale. De nombreux avantages, tels que la faible consommation
d'énergie, la petite taille, la connectivité pour les téléphones mobiles, le faible
coût, la robustesse, l'efficacité et la disponibilité mondiale, sont les raisons
pourquoi cette technologie est adaptée pour la surveillance de la santé à long
terme. La topologie en étoile simple réduit considérablement la complexité de la
mise en œuvre et l'empreinte de silicium très petite permet donc un très faible
coût. Le système BLE est également très robuste par saut de fréquence par rapport
à d'autres technologies sans fil et il possède une très faible consommation de
puissance, ce qui est le point culminant de cette technologie. Les couches de la
pile BLE sont similaires à Bluetooth BR/EDR, par exemple les deux protocoles
utilisent L2CAP, mais ils ont été adaptés de différentes façons pour réduire au
minimum les surcharges et pour permettre une faible consommation d'énergie. En
raison de la complexité réduite du protocole, la consommation de courant est très
faible pendant la transmission et la réception et, comme ce système a été conçu
pour être en mode veille la majorité du temps, il consomme des courants aussi
faibles que quelques nanoampères.
33
Chapitre 4 : Conception et mise en œuvre d'un
système sans fil de faible puissance
Introduction 4.
Il existe différentes technologies de courte portée pour réseaux sans fil WBANs
pour effectuer un contrôle continu et en temps réel de la santé des patients. Deux
différentes mises en place pour les réseaux sans fil de contrôle de la santé sont
proposées dans cette thèse.
Dans la première configuration, la technologie sans fil BLE est choisie, car elle a
été conçue de façon optimale, comme indiqué précédemment, pour fournir
plusieurs avantages dont un faible coût, une faible consommation énergétique, en
plus d’une mise en œuvre simplifiée, fiable et de haute sécurité. Les WBANs
disposent d’un certain nombre de capteurs miniaturisés qui sont capables de
détecter, traiter et transmettre divers signaux physiologiques du patient pour la
surveillance ininterrompue. Certains des nœuds de capteurs (nœud de détection de
la respiration, nœud de capteur ECG et des nœuds de capteurs d’oxymétrie de
pouls) peuvent être utilisés pour contrôler certains signaux biomédicaux du corps
humain. Après l’acquisition du signal, il est prétraité et l’information est
transmise par une technologie sans fil, telle que BLE à la station de base ou le
téléphone intelligent comme un nœud central. Le téléphone intelligent peut
fournir une rétroaction médicale en temps réel aux utilisateurs par le biais de
dispositifs mobiles afin de prévenir les maladies. Après que les données via le Wi-
Fi et le réseau 3G soient transmises au système central de gestion des hôpitaux
pour un diagnostic où les médecins peuvent en temps réel surveiller le sujet à
distance. Pour ce projet, le DA14580, un module BLE activé sans fil de Dialog
Semiconductor est utilisé pour programmer les nœuds des capteurs.
Dans la deuxième configuration, une nouvelle conception de détection textile
avec capacité de communication RF est proposée, en utilisant uniquement de
faibles puissances et de l’équipement à faible coût. Le système de communication
34
de capteur proposé est composé d’un tissu textile avec une fibre discrète intégrée,
de multimatériaux qui communiquent à travers la bande 2,4 GHz ISM avec une
bonne qualité du signal. L’accent est mis sur le système de communication, en
utilisant le microprocesseur MSP430 et le module de communication
RF nRF24L01 pour la transmission de données à partir de la peau du patient au
tissu intelligent jusqu’à un poste de surveillance centralisé. La technologie nRF
sans fil [46] est une version simplifiée de BLE mise en œuvre qui peut être
utilisée pour avoir une comparaison entre deux technologies sans fil différentes.
La caractérisation de la perte de paquets d’information et les mesures entreprises
pour remédier à ce point nous conduisent à un système robuste pour l’acquisition
de signaux physiologiques sur le corps.
La nFR est un exemple de ces nombreux systèmes radio simple qui sont bons,
mais pas très répandus dans les systèmes de consommation comme le téléphone
intelligent. La technologie BLE satisfait la plupart des exigences et des défis de la
surveillance médicale. En raison de la complexité du protocole réduit, les radios
consomment des courants très -faibles pendant les modes d'émission et de
réception et consomment des courants aussi faibles que quelques nanoampères en
mode veille.
4.1. Première configuration : faible consommation énergétique
Bluetooth
Dans cette section, un bref aperçu de la conception sera présenté et ensuite chaque
composante du système sera décrite en détail. Tout d'abord, l’émetteur-
récepteur DA14580 BLE de faibles consommations d’énergie et le MSP430
microcontrôleur ont été utilisés pour mettre en œuvre les systèmes de
communication et d’acquisition de données. Un firmware en temps réel pour
l’acquisition, le stockage et la transmission des données a été implanté dans le
MSP430, ce qui est proposé dans l'annexes, puis un système de contrôle qui
imprime l’acquisition des signaux en temps réel a été conçu. Aussi, un téléphone
intelligent ayant la connectivité Bluetooth pourrait fournir une rétroaction
35
Respiration
Sensor Node
ECG Sensor
Node
Pulse Oximetry
Sensor Node
Input
signal
MCU &Data Acquisition BLE Wireless Module
Sensing Platform
BLE Wireless Module
converter (TTL serial
transmissions to USB
signals)PC Host
Base Station
BLE architecture système base. Figure 5.
médicale en temps réel pour les utilisateurs. En outre, il surveillerait les signaux
vitaux pour les anomalies et détecterait les situations d’urgence. Keil uVision IDE
et MATLAB ont été utilisés comme environnements de développement et le
firmware a été codé en langage C. Un microprogramme pour régler le BLE sur
différents modes, tels que le mode actif ou le mode sommeil, a été codé dans le
DA14580 et le code du firmware modifié pour la partie Monitor (DA14580) qui
est présenté dans l'annexe A. Vous trouverez la configuration BLE comme
architecture du système pour la surveillance de la santé à la figure 5.
Les principaux blocs du système sont les suivants (sous-systèmes) :
1) Unité de microcontrôleur (MCU) pour l’acquisition de données
2) Transmetteur/récepteur BLE
3) Unité de surveillance centralisée
À la section suivante, les détails de chaque composante du système sont donnés.
4.1.1. Unité de Microcontrôleur (MCU)
Dans ce système de communication sans fil, un microcontrôleur de faible
puissance, MSP430F5529 de Texas Instruments [47], commande le
fonctionnement du système. Les tâches de ce microcontrôleur comprennent le
36
Input
Signal
MCU
(RTOS)
MSP430F552
SPI
A/D
Converter
Timer
Hardware Firmware
BLE
Task:
Sleep
Task:
Packet
Reception
Task:
Packet
Transmission
GPIO
Push Button
I/O
Intrupt
Packet
Transmission
CommandRx Mode
Schéma en bloc du microprogramme implanté sur le MSP430F5529. Figure 6.
contrôle des communications RF et la numérisation du signal d’entrée. Ce
microcontrôleur a tous les périphériques nécessaires pour le système, y compris le
nombre requis de canaux de conversion analogique/numérique et des
périphériques de communication série SPI. La figure 6 montre l'organigramme du
fonctionnement du microprogramme. Le code source complet du firmware est
disponible dans les annexes B et C. La tension de fonctionnement de ce
microcontrôleur et celle de ses I/O (entrée/sortie) sont de 3,3 Volts. Afin de
maximiser l’efficacité de la puissance de ce microcontrôleur, un système
d’exploitation temps-réel RTOS (Real Time Operating System) a été utilisé pour
contrôler les périphériques. Les tâches en temps réel sont périodiques et le
firmware en cours d’exécution dans le MSP430 a les tâches suivantes :
Une tâche pour recevoir des commandes et la configuration de la station de base.
Une tâche pour transmettre les données acquises à la station de base.
Une tâche pour mettre le microcontrôleur en mode sommeil lorsqu’il n’y a pas
d’autres tâches a exécuté.
37
4.1.2. Émetteur-récepteur sans fil BLE
Afin de transmettre les données reçues à la station de base et de recevoir les
paramètres de stimulation, un émetteur-récepteur sans fil de faible puissance
Bluetooth (DA14580 de Dialog Semiconductor [44] [48]) a été utilisé. Comme
mentionné dans le chapitre 3, tous les canaux physiques utilisent une modulation
GFSK, qui est simple à mettre en œuvre. Cet émetteur-récepteur est un module
radio GFSK à faible puissance opérant dans la bande ISM 2,4 GHz (bande
industrielle, scientifique et médicale). La puce dispose d’une interface série SPI
qui peut fonctionner en mode 8, 16 ou 32 bits en mode/maître-esclave et en mode
maître de 9 bits.
L’interface SPI améliore les performances du système avec des canaux
bidirectionnels FIFO de 2x16 bits. Ce module radio nécessite une antenne
synchronisée sur la bande 2,4 GHz et un réseau d’adaptation d’antennes constitué
de condensateurs et d'inductances. L’interface de l'émetteur-récepteur est liée
directement avec l’antenne et est entièrement compatible avec la norme
Bluetooth 4.1. Enfin, afin de contrôler le module radio et pour la programmation
des nœuds BLE, le logiciel Keil de µVision a été utilisé. La caractéristique
générale de ce système est résumée dans le tableau 3.
Les caractéristiques générales de Da14580. Tableau 3.
Nom du produit Caractéristiques
Taille mémoire
ROM 84kBytes
OTP 32kBytes
RAM 50kBytes
Objectifs Généraux
I/O`s 32
Paquet 6 x 6 x 0,9 mm pitche 0,4 mm
Principales
caractéristiques
Bluetooth 4,1
Processeur de l'application Cortex M0
Source de courant 0,9 – 3,3V
Fiche unique RF I/O
Riche ensemble de périphériques
analogiques et numériques
Applications Beacon & Proximity Santé et forme
physique HID domotique
38
Affichage des signaux reçus sans fil. Figure 7.
La consommation électrique est un facteur principal pour les réseaux de capteurs
sans fil. Afin d'obtenir une mesure de courant plus précise pour le BLE, nous
devons tenir compte de différents aspects. Le dispositif BLE transmet seulement
pour un petit pourcentage du temps total de fonctionnement, qui joue un rôle
dominant dans la consommation totale. Le dispositif BLE passera par plusieurs
autres couches de liaison, tels que la réception, l’état de veille, l’état wake-up, etc.
Tout cela doit être pris en compte afin d’obtenir une mesure précise du courant
total consommé. Dans ce travail, DA14580 a été codé pour forcer BLE à passer
par plusieurs autres couches de liaison, tel que le mode actif ou le mode sommeil.
4.1.3. Unité de surveillance
Dans ce travail, un système de surveillance en temps réel est conçu pour permettre
la visualisation de signaux acquis et, en utilisant le
microcontrôleur MSP430F5529, pour permettre la transmission sans fil de ces
signaux à la station de base. L’hôte, connecté à la station de base, reçoit les
données transmises par la puce RF et imprime les échantillons, comme
représentés sur la figure 7. L’interface de l'utilisateur graphique de la boîte à
outils Matlab est utilisée pour la conception du système d’affichage des signaux et
39
pour permettre à l’utilisateur d’interagir avec les appareils électroniques par le
biais d’icônes graphiques.
Une connectivité Bluetooth d’un téléphone intelligent pourrait aussi fournir une
rétroaction médicale en temps réel pour les utilisateurs. En outre, le téléphone
intelligent peut surveiller les signaux vitaux pour les anomalies et détecter les
situations d’urgence. Considérant que la plupart des téléphones intelligents
modernes ont la connectivité Bluetooth, il serait intéressant de l’utiliser pour
transmettre des données. En utilisant cette technologie, on peut fournir un retour
d’information médicale en temps réel aux utilisateurs.
Comme il est montré dans la figure 8, la série Dialog Service Port (DSPS) [49]
est utilisée pour envoyer et recevoir des données via une connexion BLE. La
figure 8 montre aussi l’écran principal de l’application DSPS, qui a la capacité de
détecter les périphériques disposant d’une connectivité BLE, pour initier des
données d’appariement et d’échange (réception de données ASCII ou HEX) à
partir d’un dispositif pair avec le contrôle de flux. La transmission de données à
des dispositifs pairs est également possible, soit une ou plusieurs fois grâce au
BLE DA14580.
Écran principal de l’application DSPS. Figure 8.
40
4.2. Deuxième configuration : l’interface RF en utilisant un
textile intelligent
Comme le besoin pour les capteurs de paramètres physiologiques est en
croissance considérable de nos jours, des plateformes de communication plus
efficaces et fiables sont nécessaires. Ces plateformes comprennent généralement
un module de télécommunication intrusif, ce qui entrave les progrès vers une
utilisation quotidienne. À cette fin, une liaison RF discrète et efficace entre les
capteurs sur le corps et les stations de surveillance sera nécessaire. Ce travail
montre comment, avec un faible coût, des composants de faible puissance peuvent
être utilisés pour concevoir une liaison sans fil à base de textile [22].
L’antenne utilisée est constituée d’un capillaire de silice flexible avec une mince
couche d’argent déposée sur le revêtement intérieur. Cette construction permet,
grâce à un film hautement conducteur, d’être protégée contre les produits
chimiques agressifs, ce qui la rend résistante et robuste en cas de lavage,
caractéristique souhaitable pour les textiles intelligents. L’utilisation d’un tissage
automatisé permet de noyer la fibre dans le tissu, ce qui donne une matière
fonctionnalisée, discrète et sans soudure. Ensuite, un fil métallique est soudé à
l’intérieur de la fibre avec un connecteur SMA standard, donnant une bonne
connexion électrique [22].
Le réseau sans fil est une partie essentielle des télécommunications modernes et
certains facteurs, tels que le faible coût, la vitesse élevée de transmission de
données et le fonctionnement fiable, sont importants. Dans ce travail, nous
utilisons le nRF24L01 [50] qui est un émetteur-récepteur radio mono puce
fonctionnant dans la bande de fréquence ISM entre 2,400 et 2,4835 GHz, avec
une gamme d’alimentation de 1,9 à 3,6 V. L’émetteur-récepteur est constitué d’un
synthétiseur de fréquences entièrement intégré, un amplificateur de puissance, un
oscillateur à cristal et un modulateur. Le nRF2401 dispose de trois modes actifs :
Direct Mode, ShockBurstTM ou ShockBurstTM amélioré.
Un microprocesseur MSP430 [47] est utilisé pour communiquer via SPI (Serial
Peripherial Interface) avec le module radio sans fil et la synchronisation entre les
deux a été établie par une horloge commune de 12 MHz de fréquence. Afin de
41
déterminer la robustesse d’une liaison RF, le comportement de perte de paquets
en fonction de la fréquence de transmission d’octets, la longueur des paquets et de
la distance inter antennes sont les principaux aspects à caractériser. Dans le
système mis en place, le microprocesseur intégré est utilisé comme unités de
commande et de surveillance.
4.2.1. La vue d’ensemble de la mise en œuvre du système
La vue d’ensemble du système mis en place est présentée à la figure 9. Il se
compose de l’antenne textile, de l’unité d’interface sans fil et de l'unité de
commande et de contrôle qui utilise un ordinateur portable avec une interface
utilisateur graphique du programme Matlab.
Le système mis en place utilise une antenne en boucle textile pour recevoir les
signaux 2,4 GHz ; l’unité d’interface sans fil reçoit les signaux et les transmet par
l’intermédiaire d’un module sans fil à l’ordinateur, où les signaux acquis peuvent
être affichés en temps réel et enregistré pour une analyse ultérieure.
Une vue d’ensemble du système mis en œuvre. Figure 9.
42
4.2.2. Antenne textile
Un nouveau tissu intégrant des fibres discrètes de multimatériaux est présenté en
[22]. Dans ces fibres textiles de multimatériaux, un biodétecteur est connecté en
temps réel aux infrastructures de communications mobiles et est adapté à une
variété d'applications de santé et des sciences de la vie. Le procédé de fabrication
pour les fibres de l’antenne consiste en un procédé de dépôt chimique en utilisant
un complexe appelé « réactif de Tollens », formé en mélangeant du nitrate
d’argent, l’hydroxyde de sodium et l’ammoniac. Une solution 0,5 M de glucose a
été utilisée comme agent réducteur, à partir du procédé de dépôt, ce qui prend
environ 5 minutes à remplir.
La solution a été distribuée à l’intérieur du capillaire de silice, jusqu’à la fin de la
réaction. L’eau a ensuite été utilisée pour nettoyer les résidus chimiques à
l’intérieur de la fibre et les fils métalliques ont été insérés dans les extrémités et
soudés à la couche d’argent intérieure pour une étanchéité efficace à l’intérieur de
l’antenne et pour fournir une bonne connexion électrique. L'antenne boucle est
représentée sur la figure 10, où l'antenne textile est reliée par l'intermédiaire d'un
connecteur SMA au module de transmission RF.
Antenne à base de fibres intégrées dans un textile tissé densément. Figure 10.
43
Sensing and Transmission
Base Station
Wireless Interface
GPIO
User Bottom
SPI
MCU
MCLK12MHZ
Wireless Transmitter (NRF24L01)
SPI
MCU
MCLK12MHZ
Wireless Receiver
(NRF24L01)
UART
MSP430F552 MSP430F552
Baseband Station and Monitor Unit
Real-Time Display
User Interface
Timer
Schéma en blocs de la configuration mise en œuvre. Figure 11.
4.2.3. Interface RF
La configuration mise en œuvre de l’interface RF est illustrée à la figure 11. La
carte de développement MSP430F5529 Launchpad [47] a été utilisée comme un
relais de microcontrôleur entre l’ordinateur et le module nRF24L01 de
transmission RF. Un protocole de communication SPI a été utilisé pour la
transmission de données entre le nRF24L01 et le MSP430F5529 et une interface
utilisateur Matlab a été utilisée pour visualiser et analyser les données en temps
réel.
La carte de développement a été choisie pour sa faible consommation énergétique,
sa facilité d’utilisation et à cause de la grande communauté d’utilisateurs. Le
nRF24L01 est une puce unique de 2,4 GHz avec un moteur de protocole de base
intégrée, conçue pour les applications très-faible puissance sans fil. Des piles de
mémoires FIFO internes assurent un flux régulier de données entre l’extrémité
avant du module radio et du MCU du système. Le débit de données dans l’air non
obstrué supporté par le nRF24L01 est configurable pour des fréquences allant
jusqu’à 2 Mb/s. Dans ce projet, Code Composer Studio (CCS) est
l’environnement de développement utilisé pour la programmation et la
compilation du code implanté sur le MCU.
44
4.2.4. L’unité de commande et de contrôle avec la mise en œuvre
du logiciel
Comme le montre la figure 12, les antennes ont été maintenues à une courte
distance pour évaluer le taux de perte de paquet contre la fréquence de
transmission et la longueur des paquets de données. La station de surveillance
peut afficher des informations sur le nombre de bits erronés, octets et paquets. Le
matériel présenté à la figure 12 correspond à l’antenne textile reliée par
l’intermédiaire d’un connecteur SMA (connecteur subminiature version A) au
module de transmission RF et le module de réception RF connectés à l’ordinateur.
L’ordinateur connecté au module de réception analyse ensuite les données et
affiche les résultats en termes de ratios de bits, octets et paquets reçus vs le
nombre de bits, octets et paquets envoyés, en temps réel.
Montage pour l’analyse des caractéristiques de perte de paquets. Figure 12.
45
Chapitre 5 : Résultats expérimentaux
Introduction 5.
Dans ce chapitre, les résultats de ces deux différents systèmes, qui ont été
mentionnés dans le chapitre précédent, sont présentés, plus précisément, les
performances mesurées et les résultats expérimentaux et les configurations de ces
deux systèmes.
Première configuration : résultats expérimentaux 5.1.
Dans cette section, une partie de la performance mesurée de la mise en place du
BLE tel que le temps de latence, le taux d’erreur des paquets de données (PER) et
la consommation énergétique du système avec une puissance de sortie maximum
(0 dBm) sont présentées. Le framework SmartSnippets [51] est fourni avec
l'ensemble du chipset DA14580 Bluetooth Smart développer de Dialog
Semiconductor. L’outil fournira une visibilité complète sur l’activité de la puce,
ce qui est crucial dans le développement d’applications sans fil à très-faible
consommation énergétique.
Pour utiliser l’outil de surveillance Data Rate, l’utilisateur a besoin de deux
Development Kits (DKs) DA14580 connectés via deux USB et deux
SmartSnippets. Le premier kit va jouer le rôle central et le deuxième jouera le rôle
périphérique. Le dispositif central peut lancer une numérisation et envoyer la
demande de connexion au périphérique, tandis que le périphérique peut
commencer à émettre des appels de connexion et accepter les demandes de
connexion entrantes. L’image suivante montre cette application :
46
Interface graphique data rate. Figure 13.
Temps de latence dans le système 5.1.1.
Comme mentionné dans le chapitre 3, un BLE a deux méthodes pour
communiquer et dans ce travail, pour transmettre des données dans les deux
directions, une connexion doit être utilisée. Lorsque les dispositifs BLE sont
connectés, ils peuvent faire un transfert de données sur un canal de données
spécifique. Cette action est appelée « événements de connexion ». Le temps entre
deux événements de connexion est défini comme l’intervalle de connexion qui est
le paramètre est le plus important pour la latence de la communication et de la
consommation énergétique. L'intervalle de connexion doit être un multiple de
1,25 ms dans la gamme d'un minimum de 7,5 ms à un maximum de 4 s [44].
Différentes applications peuvent nécessiter des intervalles de connexion
différents. L'avantage d'avoir un intervalle de connexion très long est que la
puissance enregistrée est significative, puisque le dispositif peut dormir la plupart
du temps entre les événements de connexion. L'inconvénient est que si un
dispositif a des données prêtes à être envoyées, il faut attendre l'événement de
connexion suivant. L'avantage d'avoir un intervalle de connexion très court est
qu'il y a plus de possibilités que les données soient envoyées ou reçues et que les
deux appareils se connectent ainsi plus fréquemment. L'inconvénient est que plus
de puissance sera consommée, puisque le dispositif est fréquemment réveillé pour
les événements de connexion.
47
PER vs intervalle de connexion. Figure 14.
Taux de transmission vs intervalle de connexion. Figure 15.
Dans les figures 14 et 15, l'effet de PER vs débit de données sur le système
selon les paramètres d'intervalle est résumé. Le PER et le taux de transmission
du système par rapport à l’intervalle de connexion (pour les plages : 7,5, 25,
50,100, 500 et 1000 ms) sont également tracés. Comme on peut le voir sur les
figures, le PER diminue en augmentant l'intervalle de connexion et étant
donné que le dispositif peut dormir la plupart du temps entre les événements
de connexion, la puissance enregistrée est significative. Mais d'un autre côté,
48
il y a moins de possibilités que les données soient envoyées ou reçues et, si un
dispositif a des données prêtes à être envoyées, il faut attendre l'événement de
connexion suivant. Dans le tableau 4 l’effet du PER vs le débit de données sur
le système selon les paramètres d'intervalle est résumé.
Effet taux de transmission et de PER par les paramètres d’intervalle. Tableau 4.
Connexion
intervalle
TX rate
(Kbits/Sec)
Taux d'erreur total
des paquets
7,5 ms 149 0,031 %
25 ms 115,2 0,0159 %
50 ms 57,6 0,016 %
100 ms 28,8 0,01 %
500 ms 5,76 0 %
1000 ms 2,88 0 %
Estimation du taux d’erreur de paquet 5.1.2.
Le taux de perte de paquets PER est l’un des paramètres de qualité de service le
plus fondamental pour l’évaluation du degré de satisfaction du service. Le taux
d’erreur de paquet PER est le nombre de paquets incorrectement reçus de données
divisées par le nombre total de paquets reçus.
Afin de mesurer ce PER, deux DA14580 DKs ont été utilisés. Data Rate Monitor
(Figure 13), est utilisé pour surveiller l’ensemble de réception et transmettre le
taux via Bluetooth. Une fois connecté, le tableau de statistiques sera
continuellement mis à jour avec les données. L'emplacement des émetteurs et des
récepteurs varie de 1 à 10 mètres et, en raison de l'effet de la propagation par
trajets multiples, le nombre de pertes de paquets augmente. Le Data Rate monitor,
peut afficher des informations sur le nombre du taux d'erreur de paquet total. Le
taux d’erreur de paquet est tracé par rapport à la distance comme indiqué sur la
figure 16. Dans un premier temps, avec 0 dBm puissance de sortie d'émission, à
49
faible distance, une faible erreur de paquet indique une perte de paquets minimale.
Puis en augmentant la distance la puissance du signal d’émission diminue et le
PER augmente.
PER vs distance. Figure 16.
Mesure de la consommation énergétique en différents 5.1.3.
modes
La norme BLE est largement connue et a été développée en raison de la nécessité
d’avoir des piles de longue durée qui peut fonctionner pendant plusieurs mois à
plusieurs années. Afin d’obtenir une mesure de courant plus précise pour le BLE,
nous devons tenir compte de différents aspects. Le dispositif BLE transmet
seulement pour un petit pourcentage du temps total de fonctionnement, au cours
de cet intervalle de temps on évalue le courant de crête qui joue un rôle dominant
dans la consommation énergétique totale. En plus de transmettre, comme
mentionné dans le chapitre 3, un dispositif BLE passera par plusieurs autres
couches de liaison, tels que la réception, l’état de sleep, l’état de Wake-up, etc.
Même si la consommation de courant d’un appareil dans chaque état différent est
connue, cela n’est toujours pas assez d’informations pour déterminer la puissance
totale consommée par le dispositif. Les différentes couches de BLE toutes
nécessitent une certaine quantité de traitement afin de rester connectées et de se
50
conformer aux spécifications du protocole. Le MCU prend du temps pour
effectuer ce traitement, et pendant ce temps, un courant est consommé par le
dispositif. En outre, l’appareil peut prendre un certain temps lors de la
commutation entre les états. Tout cela doit être pris en compte afin d’obtenir une
mesure précise du courant total consommé et par la suite évaluer précisément la
consommation énergétique du protocole BLE.
5.1.3.1. Configuration de test
La consommation électrique est un facteur principal qui devrait être considéré
dans de nombreuses conceptions, en particulier dans les projets de réseaux de
capteurs sans fil. Cette section définit la configuration globale requise pour la
mesure de la consommation énergétique. Le DA1450 utilisé ne demande pas une
source de courant importante.
La plupart du temps, le dispositif est en mode de veille (état sleep) consommant
relativement peu d’énergie.
Étapes requises :
1. Branchez le micro-ampèremètre et initialement fixez le compteur à la plage
mA, pour faire face à la source de courant plus élevé lorsque la carte est
connectée.
2. Ces mesures peuvent être effectuées avec une pile bouton de 3 V. Pour cela, le
jumper J15 doit être placé dans des positions # 2 et # 3.
3. Chargez le code dans Keil μVision.
4. Appuyez sur démarrer la session de débogage, attendez jusqu’à ce que ce soit
terminé, appuyez sur arrêter session de débogage, et appuyez sur démarrer
session de débogage à nouveau.
5. Appuyez sur la touche lancer (F5), attendez jusqu’à la fin.
6. Arrêtez la session de débogage (CTRL + F5).
7. Retirez le câble JTAG du connecteur de la carte.
51
Oscilloscope/
Multimeter
BLE Peripheral
DeviceBLE Central
Device
BLE
100
+
_ Current Supply
Configuration de test du circuit de mesure de courant sur la carte DA14580. Figure 17.
La configuration du test du circuit de mesure de courant sur la carte DA14580 est
montrée à la figure 17 et le montage expérimental est représenté sur la figure 18.
Afin d’analyser la consommation énergétique plus en détails, nous avons capturé
les formes d’onde du courant à l’aide d’un oscilloscope et avons mis une
résistance de 100 ohms en série entre la pile et le dispositif. En mesurant la
tension sur la résistance série, on peut calculer la consommation de courant du
dispositif. La valeur de la résistance série ne peut pas être trop grande ou trop
petite, la tension de l’appareil sera trop faible si la résistance est trop grande, donc
plus d’erreurs se produiront ; cependant, la valeur de la résistance ne doit pas être
trop petite, sinon le bruit parasite influera nos résultats de mesures, ce qui rend la
forme d’onde du courant difficile à reconnaître. La figure 18 montre la
configuration de test de la consommation de courant mesurée. Pour mesurer le
courant direct, un dispositif de mesure de micro-ampères ou un oscilloscope peut
être utilisé. Dans cette section, les mesures de consommation courantes sont
présentées. Dans ce qui suit, ces différents modes sont discutés plus en détails.
Le dispositif expérimental pour la mesure de la consommation énergétique. Figure 18.
52
5.1.3.2. Mode de balayage
Comme mentionné dans le chapitre 3, les canaux utilisés pour annoncer ont pour
fonction la détection des périphériques ou les balayages. En mode balayage, le
BLE balaie à plusieurs reprises pour recevoir des paquets d’appels de connexion,
et quand cela est approprié, il initie une connexion. Une fois la connexion établie,
le centre gère la synchronisation et initie les échanges de données périodiques. La
figure 19 montre l’onde de courant de l’appareil en mode de balayage. En
mesurant la tension sur la résistance série (100 ohms), on peut calculer la
consommation de courant du dispositif. Comme le montre cette figure, la
consommation moyenne de courant durant ce mode balayage lorsque le dispositif
non connecté est de 3,46 mA. Aussi, la consommation de courant maximale est
approximativement 5,5 mA.
Courbe consommation énergétique en mode balayage sans périphérique connecté. Figure 19.
5.1.3.3. Mode connecté
Comme mentionné dans le chapitre 3, les canaux de données sont utilisés pour
une communication bidirectionnelle connectée. La figure 20 montre la courbe de
consommation énergétique en mode connecté sans l’envoi de données. La
consommation de courant moyenne et maximale lorsque l’appareil est connecté
sans l’envoi de données est 0,98 mA et 3 mA respectivement. Pour qu’une
53
connexion soit établie, le dispositif central ramasse les paquets d’appels à partir
d’un périphérique, puis envoie une requête au périphérique pour établir une
connexion exclusive entre les deux appareils. Une fois la connexion établie,
l'annonce des périphériques arrête et les deux appareils peuvent commencer à
échanger des données dans les deux directions. Bien que le central est le dispositif
qui gère l’établissement de la connexion, les données peuvent être envoyées
indépendamment dans les deux sens lors de chaque événement de connexion,
ainsi les rôles n’imposent pas de restrictions dans le débit ou la priorité des
données. Il est donc possible pour un dispositif d'agir en tant que central et
périphérique en même temps, et pour un dispositif central d’être connecté à
plusieurs périphériques ainsi que pour un dispositif périphérique d’être connecté à
plusieurs dispositifs centraux.
Consommation courbe en mode connecté sans l’envoi de données. Figure 20.
5.1.3.4. Mode actif
En mode actif, le domaine du système (processeur ARM, Sys RAM, ROM, etc.),
la radio (y compris la radio et Bluetooth Low Energy-core BLE) et les domaines
périphériques (UART 1.2, I2C, SPI, etc.) sont actifs. Comme le montre la figure
54
ci-dessous, les consommations de courant moyenne et maximale lorsque
l’appareil fonctionne normalement sont 3,22 mA et 5,2 mA respectivement.
Courbe consommation en mode actif avec dispositif périphérique. Figure 21.
5.1.3.5. Mode veille (sleep)
En plus du courant actif (mentionné dans le chapitre 3), l'autre état possible est le
mode veille. Le courant de veille est une mesure très importante pour calculer le
courant. Ceci est important pour la vie de la pile, parce que dans la plupart des cas
d’utilisation, elle passe la plupart du temps dans ce mode en étant connectée, en
attendant l’événement de connexion suivant. En mode veille, à l’exception du
SysRAM, la radio et le dispositif périphériques sont mis en mode tension de veille
et l’horloge de XTAL16M est arrêtée. Le SysRAM est toujours sous tension pour
conserver les données, mais celles-ci ne sont pas accessibles. La figure 22 montre
la courbe de consommation énergétique en mode veille. Le courant moyen en
mode veille est de 0,27 mA et le courant maximal est d’environ 1,5 mA.
55
Courbe de consommation en mode veille. Figure 22.
La consommation de courant et la consommation énergétique du BLE dans
différents modes de travail sont résumées dans le tableau 5. Comme on peut le
voir, la consommation de courant maximale de l’activité radio (annonce,
connexion, transmission) est sous les 5 mA. Ainsi, on peut atteindre une durée de
vie prolongée pour notre système en raison de sa faible consommation
énergétique grâce à la technologie BLE.
Consommation de courant dans les modes de travail différents. Tableau 5.
Mode de
fonctionnement
Consommation de
courant
(en moyenne)
Consommation
énergétique
Identification 3,46 mA 11,41 mW
Connection 0,98 mA 3,23 mW
Transmission 3,22 mA 10,62 mW
Veille 0,27 mA 0,891 mW
56
Deuxième configuration : résultats expérimentaux 5.2.
Un schéma de l’installation mise en œuvre est représenté à la figure 11, où les
paquets ont une charge utile connue. Par conséquent, ces charges utiles au niveau
du récepteur sont comparées aux données connues, alors la perte de paquets peut
être calculée. Un paquet se compose d’un préambule (1 octet), une adresse (3
octets), un code de détection d’erreur (1 octet CRC) et une charge utile (8 à 32
octets). Pour caractériser la quantité d’informations que le lien RF peut
transmettre, des paquets dont la longueur est de 12-36 sont envoyés. Un autre
facteur qui montre l’efficacité d’une liaison RF est la vitesse à laquelle les octets
peuvent être envoyés à l’intérieur d’un paquet. Pour obtenir cela, la fréquence
d’émission d’octets dans un paquet a été variée entre 10 et 200 Hz avec un pas de
50 Hz. Comme on l’a vu à la figure 23, le taux de perte de paquets augmente à
mesure que nous augmentons la longueur des paquets, parce qu’il y a une plus
grande probabilité qu’un paquet contienne un bit erroné. Afin de comparer les
pertes de paquets par rapport à la distance, la position de l’antenne d’émission est
modifiée de 1 à 10 mètres avec un pas de 1 mètre. À chaque étape, plusieurs
acquisitions sont faites et la valeur moyenne est calculée.
L’effet de la longueur du paquet et la vitesse de transmission d’octets sur le taux de pertes de paquets. Figure 23.
57
La figure 24 montre une augmentation du taux de perte de paquets, qui peut être
déduite comme une diminution du niveau de puissance du signal qui est la raison
pour laquelle nous voyons une baisse du rapport signal à bruit (SNR). Une autre
cause d’erreur de paquets peut être l’apparition de l’interférence par trajet
multiple de réflexion, qui se comporte de façon non linéaire.
Pertes de paquets vs distance de transmission. Figure 24.
Discussion 5.3.
Les deux systèmes de communication sans fil présentés fonctionnent à la même
fréquence (2,4 GHz). Le nRF24L01 a une norme de protocole qui est la plus
simple sur le marché et facile à mettre en œuvre. Il a de nombreuses
fonctionnalités telles qu’un faible coût, une faible puissance, et une mise en œuvre
facile. Le BLE est une technologie sans fil émergent à faible puissance
développée pour les applications de surveillance et de contrôle à courte portée. En
comparaison avec le nRF24L01, il a de bonnes performances et répond à la
majorité des besoins et solutionne la majorité des difficultés de la surveillance
médicale. La complexité réduite du protocole permet aux radios de consommer
des courants très-faibles durant la transmission et la réception, et des courants
58
aussi bas que quelques nanoampères en mode veille. La principale amélioration
de ce système est le technologie BLE, basée sur la puce DA14580 de Dialog
Semiconductor, qui peut passer par les états de couche de veille ou de couche de
sommeil. La plupart du temps, le dispositif est en mode veille consommant peu
d'énergie, rend donc la consommation de puissance très-faible possible. Comme
indiqué dans la fiche technique, le courant de crête sous n'importe quel type
d'activité radio est de moins de 5 mA. Le courant moyen dépend de l'intervalle de
connexion. Lorsque le périphérique est actif, mais la radio n'est pas en mode de
transmission ou en mode de réception, il n’utilise approximativement quelques
centaines µA. L'objectif de ce travail est d'introduire la technologie sans fil BLE
et de rendre compte de ses performances de transmission. BLE présente de
nombreux avantages par rapport aux autres technologies sans fil, c'est pourquoi
nous la choisissons comme solution de transmission sans fil. La topologie en
étoile simple réduit considérablement la complexité d'implémentation. Pour
l'instant, ce système est très robuste par saut de fréquence par rapport à d'autres
technologies sans fil avec une très faible puissance, qui est son point culminant.
Afin d'obtenir une mesure plus précise actuelle pour le BLE, différents aspects ont
été pris en compte. Pour faire une comparaison avec la théorie, le courant de
pointe mesuré dans l'architecture BLE dont l'alimentation 3 V, tire 5mA sous
n'importe quel type d'activité radio tant lors de l'annonce que de la connexion
(identiques à ceux mentionnés dans la fiche technique DA14580). C'est 50% de
moins que celle d'autres solutions sans fil qui ont une portée petite ou moyenne et
une faible puissance. Le courant moyen dépend de l'application, de l'annonce ou
des intervalles de connexion, de la durée du mode veille et de la fréquence à
laquelle il se réveille pour annoncer, se connecter et déplacer des données.
59
Chapitre 6 : Discussion et perspectives futures
Discussion 6.1.
Ce travail a porté sur la surveillance à long terme des soins de santé et sur les
soins de santé personnalisés. Ils permettent aux patients de surveiller leur état de
santé en temps réel et de transférer les données recueillies aux systèmes
d’information ou à un personnel médical qualifié. Le système devrait être en
mesure d’enregistrer et de recueillir des données provenant des capteurs reliés aux
patients et de les transmettre en continu à une passerelle. Il doit être confortable,
discret, à faible coût et de petite taille. Le système peut aider les gens à mieux
gérer leur état de santé et à améliorer leur qualité de vie. Au premier abord, un
examen de la littérature et la compréhension des WBAN sont présentés. Les
différentes technologies de communication sans fil ont été étudiées ainsi que les
questions et les défis mis en jeu discutés.
Deux différentes mises en place pour les réseaux sans fil de corps sont proposées
dans ce rapport. Dans la première configuration, BLE est proposé et sa
compatibilité pour la surveillance continue des soins de santé est étudiée. Le BLE
ouvre une nouvelle génération d'occasions pour les systèmes de communication et
les applications médicales et annonce des fonctionnalités plus convaincantes dans
plusieurs domaines. La faible consommation de puissance de ce protocole et le
faible taux de pertes des paquets nous offre un système robuste en application
médicale. La consommation de courant maximale en mode activité radio est sous
5 mA. Par conséquent, on peut atteindre une durée de vie prolongée pour notre
système. La latence et l’intervalle de connexion ont été étudiés contre la perte de
paquets et le taux de transmission et on a observé que plus on augmente
l’intervalle de temps de connexion, plus les pertes de paquets et le taux de rapport
de transmission ont été diminués. Différentes applications peuvent nécessiter des
intervalles de connexion différents et comme discuté, il existe un compromis entre
la consommation énergétique, le débit et la latence du système. La caractéristique
60
de pertes de paquets dans le système étudié avec une distance croissante augmente
en raison de l'accroissement du brouillage par trajets multiples réfléchis et la
diminution du SNR. La consommation énergétique dans les différents modes a été
analysée et mesurée. Considérant que le dispositif BLE transmet seulement
pendant un petit pourcentage du temps total, la pile du dispositif devrait avoir une
durée de vie allant de plusieurs mois à plusieurs années.
La deuxième configuration est liée à la mise en œuvre et à la conception d’une
interface de faible puissance RF, robuste et fiable, en utilisant une base de fibres
multimatériaux textiles pour la communication des capteurs sur le corps. Une
nouvelle conception de détection textile avec capacité de communication RF est
proposée, en utilisant uniquement de faibles puissances et de l’équipement à
faible coût. Le système de communication de capteur proposé est composé d’un
tissu textile avec une fibre discrète intégrée, multimatériaux qui transmet dans la
bande 2,4 GHz ISM avec une bonne qualité de signal. Pour le système de
communication, en utilisant un microprocesseur et MSP430 et un module de
communication nRF24L01 comme plateforme pour la transmission de données à
partir du tissu sur le patient au poste de surveillance. La caractérisation de la perte
de paquets nous conduit à un système robuste pour une communication à partir du
capteur sur le corps. Les performances de transmission d’un nouveau tissu de
détection avec une communication RF ont été analysées. Les caractéristiques de
perte de paquets et la longueur du paquet ont été étudiées, il a été observé que
pour les paquets de moins de 12 octets de long et à distance de 1 mètre, le taux de
perte de paquets était inférieur à 5 %. Une augmentation attendue des pertes de
paquets avec l’augmentation de la distance a été expliquée par l’augmentation de
l'interférence des trajets multiples et diminuée dans SNR.
En conclusion, pour le système de communication sans fil des systèmes présentés,
il peut être remarqué que le nRF24L01 a une norme de protocole qui est la plus
simple sur le marché et facile à mettre en œuvre. Les deux systèmes présentés
fonctionnent à la même fréquence (2,4 GHz). Le nRF24L01 est un exemple de
ces nombreux systèmes radio simples mais bons, et qui ne sont néanmoins pas
très répandus dans les systèmes disponibles sur le marché, comme les téléphones
61
intelligents. En revanche, BLE est largement utilisé dans ces systèmes et connaît
de bonnes performances, comparables à celles du nRF24L01, de sorte que le BLE
est beaucoup plus attrayant. Le nRF24L01 possède de nombreuses
fonctionnalités, tels qu’un faible coût, une faible puissance, et une mise en œuvre
facile. La technologie BLE répond à la majorité des besoins et des difficultés de
surveillance médicale. La complexité réduite du protocole permet aux radios de
consommer de très-faibles courants durant la transmission et la réception, et des
courants aussi bas que quelques nanoampères en mode veille. Au niveau de la
sécurité, la technologie BLE supporte les communications encryptées avec le
protocole AES. De plus, BLE est une norme ouverte, ce qui signifie que des
appareils produits par différentes compagnies pourront assurément communiquer
entre eux. Puisque BLE s’appuie sur la technologie sans fil Bluetooth, il sera
facile de construire un PAN incluant plusieurs appareils. Il s'agit d'une
technologie sans fil émergente à faible puissance développée pour les applications
de surveillance et de contrôle à courte portée. En comparaison avec nRF24L01, il
comporte beaucoup de nouvelles fonctionnalités intéressantes telles que la très-
faible consommation d'énergie qui est un facteur clé pour la surveillance de la
santé en temps réel. Considérant que la plupart des téléphones intelligents
modernes possèdent la connectivité Bluetooth, ces fonctionnalités peuvent donc
être incluses dans les appareils mobiles de la vie quotidienne. En utilisant les
téléphones intelligents, nous pouvons fournir une rétroaction médicale en temps
réel pour les utilisateurs.
Travaux futurs 6.2.
La gestion de l’alimentation est un enjeu crucial pour la plupart des applications
des réseaux de capteurs sans fil pour la santé à long terme. Surtout que cette
gestion est vraiment nécessaire dans les cas où la surveillance continue en temps
réel est nécessaire. Il existe différentes technologies de courte portée pour
WBANs dans une surveillance de la santé à long terme. Dans ce travail, deux
technologies différentes pour la surveillance de la santé sont proposées et
62
étudiées. De nombreux aspects, tels que la fiabilité, la puissance, la portabilité, le
réseau et les interférences en temps réel et la surveillance continu devraient être
considérés dans les WBANs. Il y a plusieurs façons dont ce travail de thèse peut
être utilisé à l’avenir. Certaines directions importantes et prometteuses sont
décrites comme suit :
1. Dans ce travail, la mobilité des nœuds de capteurs et les interférences
provenant d’autres sources ne sont pas considérées. Ces capteurs sont utilisés
à l’hôpital, ils pourraient être perturbés par d’autres équipements médicaux,
aussi la position du patient peut affecter la transmission fiable de données.
Pour une transmission fiable de données pour un système de surveillance de la
santé, la collision et les interférences et leurs effets sur le débit du système
devraient être étudiés.
2. Considérant que la consommation énergétique dans l’application médicale
est critique, certaines stratégies d’économie d’énergie, comme mettre le
système en mode veille, peuvent fournir des solutions possibles. Cependant,
un tel mode de veille ne convient pas pour la transmission de données en
continu. Comme objectifs de recherche future, on propose la conception et la
mise en œuvre d’un algorithme qui fournisse une architecture avancée pour
une source d’énergie fiable et à long terme applicable aux systèmes sans fil de
surveillance de la santé.
3. Une certaine amélioration de la performance, comme celle des taux de
pertes de données et des taux de collision des paquets et l’amélioration du
taux de succès de transmission, ce qui augmenterait la durée de vie du réseau,
etc., peut être considérée comme perspective de recherches futures et une
continuation pour ce projet.
63
Chapitre 7 : Conclusion
Conclusion 7.
Dans ce travail, nous proposons une nouvelle approche pour la conception et la
mise en œuvre de réseaux sans fil. Le BLE est une nouvelle norme sans fil qui
devrait répondre aux exigences fondamentales des capteurs sans fil tels qu'une
faible consommation d'énergie, un protocole simplifié et de courts délais entre
différents états d'émetteurs-récepteurs sans fil. Les résultats ont montré que cette
solution satisfait aux exigences dans le domaine de la santé en ce qui a trait à la
consommation d'énergie, à la latence et au taux d'erreur de paquets. Le point
culminant de cette conception est sa consommation d'énergie ultra-faible qui a été
analysée en détail selon différents modes. La consommation de courant maximale
en mode radio est inférieure à 5mA, donc on peut s'attendre à une durée de vie
prolongée pour ce système. Dans l'autre configuration, un nouveau design de
textile de détection avec la capacité de communication RF est proposé, en
utilisant un équipement à faible coût. La performance de transmission de ce
système avec la communication RF a été analysée. De plus, la perte de paquets a
été étudiée dans des conditions réelles, à l'intérieur et avec un multipath élevé, en
fonction de la longueur des paquets et on a observé que le taux de perte de
paquets était inférieur à 5%.
L'objectif de ce travail était d'introduire la technologie sans fil BLE et d'évaluer
les performances de transmission de ce système. Comme discuté, le BLE offre de
nombreux avantages par rapport aux autres technologies sans fil, c'est pourquoi il
sera évalué à titre de solution de transmission sans fil potentiel pour ces travaux.
La topologie en étoile simple réduit considérablement la complexité
d'implémentation. De plus, La couche PHY utilise des sauts de fréquence de
codage à étalement de spectre pour réduire les interférences et la décoloration. La
robustesse de cette technologie en ce qui a trait aux sauts de fréquences,
64
comparativement à d'autres technologies sans fil ayant également une très faible
consommation d'énergie, est un avantage indéniable.
65
Bibliographie
[1] B. Latré, B. Braem, I. Moerman, C. Blondia, and P. Demeester, “A survey
on wireless body area networks,” Wirel. Networks, vol. 17, no. 1, pp. 1–18,
2011.
[2] G. V. Crosby, “Wireless Body Area Networks for Healthcare: A Survey,”
Int. J. Ad hoc, Sens. Ubiquitous Comput., vol. 3, no. 3, pp. 1–26, 2012.
[3] A. Pantelopoulos and N. G. Bourbakis, “A survey on wearable sensor-
based systems for health monitoring and prognosis,” IEEE Trans. Syst.
Man Cybern. Part C Appl. Rev., vol. 40, no. 1, pp. 1–12, 2010.
[4] G. Gagnon-Turcotte, Y. LeChasseur, C. Bories, Y. Messaddeq, Y. De
Koninck, and B. Gosselin, “A Wireless Headstage for Combined
Optogenetics and Multichannel Electrophysiological Recording,” IEEE
Transactions on Biomedical Circuits and Systems, vol. 11, no. 1, pp. 1–14,
Feb. 2017.
[5] A. AvakhKisomi, A. Miled, M. Boukadoum, M. Morissette, F. Lellouche,
and B. Gosselin, “A novel wireless ring-shaped multi-site pulse oximeter,”
in 2016 IEEE International Symposium on Circuits and Systems (ISCAS),
2016, pp. 2451–2454.
[6] A. Moradi, “Low power high data rate wireless transmitter for medical
implantable devices,” Thèse de doctorat, École Polytechnique de Montréal,
2014.
[7] A. J. Jara, D. Fernandez, P. Lopez, M. a. Zamora, A. F. Skarmeta, and L.
Marin, “Evaluation of bluetooth low energy capabilities for tele-mobile
monitoring in home-care,” J. Univers. Comput. Sci., vol. 19, no. 9, pp.
1219–1241, 2013.
[8] U. Patients, “SMART—An Integrated Wireless System for Monitoring
Unattended Patients,” J. Am. Med. Informatics Assoc., vol. 10, no. 1, pp.
44–53, 2008.
[9] L. Atzori, A. Iera, and G. Morabito, “The Internet of Things: A survey,”
Comput. Networks, vol. 54, no. 15, pp. 2787–2805, 2010.
[10] Cheikh Latyr Fall, Gabriel Gagnon-Turcotte, JF Dube, Jean Simon Gagne,
Yanick Delisle, Alexandre Campeau-Lecours, Clement Gosselin, Benoit
Gosselin, “A Wireless sEMG-Based Body-Machine Interface for Assistive
Technology Devices,” IEEE Journal of Biomedical and Health Informatics,
2016 (To be published).
66
[11] Hangue Park, Mehdi Kiani, Hyung-Min Lee, Jeonghee Kim, Jacob Block,
Benoit Gosselin, Maysam Ghovanloo, “A Wireless Magnetoresistive
Sensing System for an Intraoral Tongue-Computer Interface,” IEEE
Transactions on Biomedical Circuits and Systems, vol. 6, no. 6, pp. 571–
585, Dec. 2012.
[12] E. Sarra, S. Benayoune, and A. Mehaoua, “Coexistence Improvement of
Wearable Body Area Network ( WBAN ) In Medical Environment,” IEEE
ICC 2014 - Wirel. Commun. Symp. Coexistence, pp. 5705–5710, 2014.
[13] B. Zhou, X. Chen, X. Hu, R. Ren, X. Tan, Z. Fang, and S. Xia, “A
Bluetooth low energy approach for monitoring electrocardiography and
respiration,” 2013 IEEE 15th Int. Conf. e-Health Networking, Appl. Serv.
Heal. 2013, no. Healthcom, pp. 130–134, 2013.
[14] A. Bourouis and M. Feham, “ubiquitous mobile health monitoring system
for elederly (UMHMSE),” Int. J. Comput. Sci. Inf. Technol., vol. 3, no. 3,
pp. 74–82, 2011.
[15] A. Thaljaoui, T. Val, and D. Brulin, “BLE Localization using RSSI
Measurements and iRingLA,” IEEE International Conference in Industrial
Technology (ICIT), 2015, pp. 2178–2183.
[16] T. Wu and C. Lin, “Low-SAR Path Discovery by Particle Swarm
Optimization Algorithm in Wireless Body Area Networks,” IEEE Sens. J.,
vol. 15, no. 2, pp. 928–936, 2015.
[17] E. Mackensen, M. Lai, and T. M. Wendt, “Performance analysis of an
Bluetooth Low Energy sensor system,” 2012 IEEE 1st Int. Symp. Wirel.
Syst. - Within Conf. Intell. Data Acquis. Adv. Comput. Syst. IDAACS-
SWS 2012, no. September, pp. 62–66, 2012.
[18] A. Dementyev, S. Hodges, S. Taylor, and J. Smith, “Power consumption
analysis of Bluetooth Low Energy, ZigBee and ANT sensor nodes in a
cyclic sleep scenario,” 2013 IEEE Int. Wirel. Symp. IWS 2013, pp. 2–5,
2013.
[19] Y. J. Park and H. S. Cho, “Transmission of ECG data with the patch-type
ECG sensor system using Bluetooth Low Energy,” Int. Conf. ICT
Converg., pp. 289–294, 2013.
[20] J. Lu, T. Zhang, and F. Hu, “Bluetooth Low Energy for Wearable Sensor-
Based Healthcare Systems,” 2014 Heal. Innov. Point-of-Care Technol.
Conf. Seattle, Washingt. USA, Oct. 8-10, 2014, pp. 251–254, 2014.
67
[21] M. Ali, L. Albasha, and H. Al-Nashash, “A Bluetooth low energy
implantable glucose monitoring system,” 2011 8th Eur. Radar Conf., no.
October, pp. 377–380, 2011.
[22] S. Gorgutsa, V. Bélanger-Garnier, B. Ung, J. Viens, B. Gosselin, S.
LaRochelle, and Y. Messaddeq, “Novel Wireless-Communicating Textiles
Made from Multi-Material and Minimally-Invasive Fibers,” Sensors, vol.
14, no. 10, pp. 19260–19274, 2014.
[23] H. Lee, K. Park, B. Lee, J. Choi, and R. Elmasri, “Issues in data fusion for
healthcare monitoring,” Proc. 1st ACM Int. Conf. PErvasive Technol.
Relat. to Assist. Environ. - PETRA ’08, no. November, p. 1, 2008.
[24] J. Y. Jung and J. W. Lee, “ZigBee device access control and reliable data
transmission in ZigBee based health monitoring system,” Int. Conf. Adv.
Commun. Technol. ICACT, vol. 1, pp. 795–797, 2008.
[25] S. L. S. Lim, T. H. O. T. H. Oh, Y. B. Choi, and T. Lakshman, “Security
Issues on Wireless Body Area Network for Remote Healthcare
Monitoring,” 2010 IEEE Int. Conf., Sens. Networks, Ubiquitous, Trust.
Comput. (SUTC), pp. 327–332, 2010.
[26] Y. Li and R. Shi, “An intelligent solar energy-harvesting system for
wireless sensor networks,” EURASIP J. Wirel. Commun. Netw., vol. 2015,
no. 1, p. 179, 2015.
[27] H. Vihvelin, J. R. Leadbetter, M. Bance, J. A. Brown, and R. B. A.
Adamson, “Compensating for Tissue Changes in an Ultrasonic Power Link
for Implanted Medical Devices,” IEEE Trans. Biomed. Circuits Syst., pp.
1–8, 2015.
[28] M. Sefuba, T. Walingo, and F. Takawira, “Energy Efficient Medium
Access Control Protocol for Clustered Wireless Sensor Networks with
Adaptive Cross-Layer Scheduling,” Sensors 2015, 15, pp. 24026–24053,
2015.
[29] P. D. C. M. Ajit R. Pagar, “A Survey on Energy Efficient Sleep Scheduling
in Wireless Sensor Network,”, Int. J. Adv. Res. Comput. Sci. Softw. Eng.,
vol. 5, no. 1, pp. 4–8, 2015.
[30] M. M. Alam and E. Ben Hamida, “Surveying wearable human assistive
technology for life and safety critical applications: Standards, challenges
and opportunities,” Sensors (Switzerland), vol. 14, no. 5, pp. 9153–9209,
2014.
68
[31] S. Yan, P. J. Soh, and G. A. E. Vandenbosch, “Wearable Dual-Band
Magneto-Electric Dipole Antenna for WBAN / WLAN Applications,” vol.
63, no. 9, pp. 4165–4169, 2015.
[32] S. a Malik, M. A. Shah, S. a Khan, M. Jahanzeb, and U. Farooq,
“Performance Evaluation of IEEE 802. 11p MAC Protocol for VANETs,”
Perform. Eval., vol. 4, no. 8, pp. 4089–4098, 2010.
[33] S. Seidman, “Wireless Coexistence and EMC of Bluetooth and 802.11b
Devices in Controlled Laboratory Settings,” Open Biomed. Eng. J., vol. 5,
no. 1, pp. 74–82, 2011.
[34] M. Song, S. Shetty, and D. Gopalpet, “Coexistence of IEEE 802.11b and
Bluetooth: An Integrated Performance Analysis,” Mob. Networks Appl.,
vol. 12, no. 5–6, pp. 450–459, 2007.
[35] C. Y. Jung, H. Y. Hwang, D. K. Sung, and G. U. Hwang, “Enhanced
Markov Chain Model and Throughput Analysis of the Slotted CSMA/CA
for IEEE 802.15.4 Under Unsaturated Traffic Conditions,” IEEE Trans.
Veh. Technol., vol. 58, no. 1, pp. 473–478, 2009.
[36] K. Alsharqi, A. Abdelbari, A. Abou-elnour, and M. Tarique, “Zigbee Based
Wearable Remote Healthcare Monitoring System For Elderly Patients,” Int.
J. Wirel. Mob. Networks, vol. 6, no. 3, pp. 53–67, 2014.
[37] W. Guo, W. M. Healy, and M. Zhou, “An experimental study of
interference impacts on ZigBee-based wireless communication inside
buildings,” 2010 IEEE Int. Conf. Mechatronics Autom. ICMA 2010, pp.
1982–1987, 2010.
[38] A. J. Jara, P. Lopez, D. Fernandez, M. a. Zamora, B. Ubeda, and A. F.
Skarmeta, “Communication protocol for enabling continuous monitoring of
elderly people through near field communications,” Interact. Comput., vol.
26, no. 2, pp. 145–168, 2014.
[39] P. Note, “wireless sensor network for health monitoring,” Public Health, p.
125, 2012.
[40] C. Gomez, J. Oller, and J. Paradells, “Overview and evaluation of
bluetooth low energy: An emerging low-power wireless technology,”
Sensors (Switzerland), vol. 12, no. 9, pp. 11734–11753, 2012.
[41] R. Tabish, A. Ben Mnaouer, F. Touati, and A. M. Ghaleb, “A comparative
analysis of BLE and 6LoWPAN for U-HealthCare applications,” 2013 7th
IEEE GCC Conf. Exhib., vol. 4, no. August 2015, pp. 286–291, 2013.
69
[42] D. Sejal and Z. Aalam, “AFH Techniques – Survey Based on Probabilistic
Channel Usage,” Int. J. Res. Comput. Eng. Electron., vol. 2, pp. 1–6, 2014.
[43] D. Sejal, Z. Aalam, and B. K. Mishra, “Modeling, Simulation &
Performance Analysis of Bluetooth,” Int. J. Appl. or Innov. Eng. Manag.,
vol. 4, no. 2, pp. 189–192, 2015.
[44] UM-B-051, “User manual DA1458x Software platform reference,” in
dialoge semiconductor, 2015, 2015.
[45] P. Wang, “Bluetooth Low Energy - privacy enhancement for
advertisement,“ 2014.
[46] S. Nordic, “Single Chip 2. 4GHz Transceiver Product Specification,”
http://www. Nordic—semi, 2008.
[47] T. Instruments, “MSP-EXP430F5529LP LaunchPadTM
Development Kit,”
[Online]. Available: http://www.ti.com/product/msp, 2014.
[48] D. Semiconductor, “User manual DA1458x Getting started with
Development Kit – Basic,” user Man., vol. UM-B-048, 2015.
[49] D. Semiconductor, “DA14580 Serial Port Service reference application,”
2015.
[50] P. Christ, B. Neuwinger, F. Werner, and U. Rückert, “Performance analysis
of the nRF24L01 ultra-low-power transceiver in a multi-transmitter and
multi-receiver scenario,” Proc. IEEE Sensors, pp. 1205–1208, 2011.
[51] D. Semiconductor, « SmartSnippets User Guide Documentation, »
[Online]. Available:http://support.dialog-
semiconductor.com/connectivity/product/da14580, 2015.
70
Code du firmware pour la partie de surveillance de la Appendix A:
station de base (DA14580)
keil µvision5 - Main code (arch_main.c)
/** ************************************************************************* * @file arch_main.c * @brief Main loop of the application. * Copyright (C) 2012. Dialog Semiconductor Ltd, unpublished work. This computer * program includes Confidential, Proprietary Information and is a Trade Secret of * Dialog Semiconductor Ltd. All use, disclosure, and/or reproduction is prohibited * unless authorized in writing. All Rights Reserved. * <bluetooth.support@diasemi.com> and contributors. ************************************************************************* /* INCLUDES ************************************************************************* */ #include "da1458x_scatter_config.h" #include "arch.h" #include "arch_api.h" #include <stdlib.h> #include <stddef.h> // standard definitions #include <stdint.h> // standard integer definition #include <stdbool.h> // boolean definition #include "boot.h" // boot definition #include "rwip.h" // BLE initialization #include "syscntl.h" // System control initialization #include "emi.h" // EMI initialization #include "intc.h" // Interrupt initialization #include "em_map_ble.h" #include "ke_mem.h" #include "ke_event.h" #include "user_periph_setup.h" #include "uart.h" // UART initialization #include "nvds.h" // NVDS initialization #include "rf.h" // RF initialization #include "app.h" // application functions #include "dbg.h" // For dbg_warning function #include "global_io.h" #include "datasheet.h" #include "em_map_ble_user.h" #include "em_map_ble.h" #include "lld_sleep.h" #include "rwble.h" #include "rf_580.h" #include "gpio.h" #include "lld_evt.h" #include "arch_console.h" #include "arch_system.h" #include "arch_patch.h" // external function declarations void patch_llm_task(void); void patch_gtl_task(void); #if (BLE_MEM_LEAK_PATCH) void patch_llc_task(void); #endif
71
#include "arch_wdg.h" //#include "app_stream_queue.h" #include "user_callback_config.h" /** * @addtogroup DRIVERS * @{ * DEFINES *************************************************************************** * STRUCTURE DEFINITIONS *************************************************************************** * GLOBAL VARIABLE DEFINITIONS *************************************************************************** */ #ifdef __DA14581__ uint32_t error; /// Variable storing the reason of platform reset #endif extern uint32_t error; /// Variable storing the reason of platform reset /// Reserve space for Exchange Memory, this section is linked first in the section "exchange_mem_case" extern uint8_t func_check_mem_flag; extern struct arch_sleep_env_tag sleep_env; volatile uint8 descript[EM_SYSMEM_SIZE] __attribute__((section("BLE_exchange_memory"), zero_init, used)); //CASE_15_OFFSET #if ((EM_SYSMEM_START != EXCHANGE_MEMORY_BASE) || (EM_SYSMEM_SIZE > EXCHANGE_MEMORY_SIZE)) #error("Error in Exhange Memory Definition in the scatter file. Please correct da14580_scatter_config.h settings."); #endif bool sys_startup_flag __attribute__((section("retention_mem_area0"), zero_init)); /* * LOCAL FUNCTION DECLARATIONS ************************************************************************************* */ static inline void otp_prepare(uint32 code_size); static inline bool ble_is_powered ( void ); static inline void ble_turn_radio_off ( void ) ; static inline void schedule_while_ble_on ( void ) ; static inline sleep_mode_t ble_validate_sleep_mode (sleep_mode_t current_sleep_mode) ; static inline void arch_turn_peripherals_off (sleep_mode_t current_sleep_mode) ; static inline void arch_goto_sleep (sleep_mode_t current_sleep_mode) ; static inline void arch_switch_clock_goto_sleep (sleep_mode_t current_sleep_mode) ; static inline void arch_resume_from_sleep ( void ) ; static inline sleep_mode_t rwip_power_down ( void ) ; static inline bool app_asynch_trm(void); static inline bool app_asynch_proc(void); static inline void app_asynch_sleep_proc(void); static inline void app_sleep_prepare_proc (sleep_mode_t *sleep_mode) ; static inline void app_sleep_exit_proc ( void ) ; static inline void app_sleep_entry_proc (sleep_mode_t sleep_mode) ; /* * EXPORTED FUNCTION DEFINITIONS ************************************************************************** * MAIN FUNCTION ************************************************************************** */ #if USE_POWER_OPTIMIZATIONS extern bool fine_hit; #endif
72
/** ************************************************************************* * @brief BLE main function. * This function is called right after the booting process has completed. * It contains the main function loop. ************************************************************************* */ int main_func(void) __attribute__((noreturn)); int main_func (void) { sleep_mode_t sleep_mode ; //global initialise system_init(); /* ************************************************************************ * Platform initialization ************************************************************************ */ while(1) { do { // schedule all pending events schedule_while_ble_on(); } while ((app_asynch_proc())); //grant control to the application, try to go to power down //if the application returns GOTO_SLEEP //((STREAMDATA_QUEUE)&& stream_queue_more_data())); //grant control to the streamer, try to go to power down //if the application returns GOTO_SLEEP //wait for interrupt and go to sleep if this is allowed if (((!BLE_APP_PRESENT) && (check_gtl_state())) || (BLE_APP_PRESENT)) { //Disable the interrupts GLOBAL_INT_STOP(); app_asynch_sleep_proc(); // get the allowed sleep mode // time from rwip_power_down() to WFI() must be kept as short as possible!! sleep_mode = rwip_power_down(); if ((sleep_mode == mode_ext_sleep) || (sleep_mode == mode_deep_sleep)) { //power down the radio and whatever is allowed arch_goto_sleep(sleep_mode); //wait for an interrupt to resume operation WFI(); //resume operation arch_resume_from_sleep(); } else if (sleep_mode == mode_idle) { if (((!BLE_APP_PRESENT) && check_gtl_state()) || (BLE_APP_PRESENT)) //wait for an interrupt to resume operation WFI(); } // restore interrupts GLOBAL_INT_START(); } if (USE_WDOG) wdg_reload(WATCHDOG_DEFAULT_PERIOD); } }
73
/** ************************************************************************ * @brief Power down the BLE Radio and whatever is allowed according to the sleep mode and * the state of the system and application * @param[in] current_sleep_mode The current sleep mode proposed by the application. * @return void ************************************************************************ */static inline void arch_goto_sleep (sleep_mode_t current_sleep_mode) { sleep_mode_t sleep_mode = current_sleep_mode; ble_turn_radio_off ( ); //turn the radio off and check if we can go into deep sleep sleep_mode = ble_validate_sleep_mode(sleep_mode); // grant access to the application to check if we can go to sleep app_sleep_prepare_proc(&sleep_mode); //SDK Improvements for uniformity this one should be changed? //turn the peripherals off according to the current sleep mode arch_turn_peripherals_off(sleep_mode); #if (USE_POWER_OPTIMIZATIONS) fine_hit = false; #endif // hook for app specific tasks just before sleeping app_sleep_entry_proc(sleep_mode); #if ((EXTERNAL_WAKEUP) && (!BLE_APP_PRESENT)) // external wake up, only in external processor designs ext_wakeup_enable(EXTERNAL_WAKEUP_GPIO_PORT, EXTERNAL_WAKEUP_GPIO_PIN, EXTERNAL_WAKEUP_GPIO_POLARITY); #endif // do the last house keeping of the clocks and go to sleep arch_switch_clock_goto_sleep (sleep_mode); } /** ************************************************************************ * @brief Manage the clocks and go to sleep * @param[in] current_sleep_mode The current sleep mode proposed by the system so far. * @return void
************************************************************************ */ static inline void arch_switch_clock_goto_sleep (sleep_mode_t current_sleep_mode) { if ( (current_sleep_mode == mode_ext_sleep) || (current_sleep_mode == mode_deep_sleep) ) { SetBits16(CLK_16M_REG, XTAL16_BIAS_SH_ENABLE, 0); // Set BIAS to '0' if sleep has been decided if (USE_POWER_OPTIMIZATIONS) { clk_freq_trim_reg_value = GetWord16(CLK_FREQ_TRIM_REG); // store used trim value SetBits16(CLK_16M_REG, RC16M_ENABLE, 1); // Enable RC16 for (volatile int i = 0; i < 20; i++); SetBits16(CLK_CTRL_REG, SYS_CLK_SEL, 1); // Switch to RC16 while( (GetWord16(CLK_CTRL_REG) & RUNNING_AT_RC16M) == 0 ); // Do not disable XTAL16M! It will be disabled when we sleep... SetWord16(CLK_FREQ_TRIM_REG, 0x0000); // Set zero value to CLK_FREQ_TRIM_REG } } } /**
74
************************************************************************ * @brief An interrupt came, resume from sleep * @return void ************************************************************************ */ static inline void arch_resume_from_sleep ( void ) { // hook for app specific tasks just after waking up app_sleep_exit_proc( ); #if ((EXTERNAL_WAKEUP) && (!BLE_APP_PRESENT)) //external wake up, only in external processor designs
// Disable external wakeup interrupt ext_wakeup_disable(); #endif // restore ARM Sleep mode // reset SCR[2]=SLEEPDEEP bit else the mode=idle WFI will cause a deep sleep // instead of a processor halt SCB->SCR &= ~(1<<2); } static inline bool ble_is_powered () { return ( (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 1) && \ (GetBits32(BLE_DEEPSLCNTL_REG, DEEP_SLEEP_STAT) == 0) && \ !(rwip_prevent_sleep_get() & RW_WAKE_UP_ONGOING)); } /** *********************************************************************** * @brief Call the scheduler if the ble module is powered * @return void *********************************************************************** */ static inline void schedule_while_ble_on(void) { // BLE clock is enabled while (ble_is_powered()) { // BLE event end is set. conditional RF calibration can run. uint8_t ble_evt_end_set = ke_event_get(KE_EVENT_BLE_EVT_END) ; //execute messages and events rwip_schedule(); if (ble_evt_end_set) { uint32_t sleep_duration = 0; rcx20_read_freq (); //if you have enough time run a temperature calibration of the radio if (lld_sleep_check(&sleep_duration, 4)) //6 slots -> 3.750 ms // check time and temperature to run radio calibrations. conditionally_run_radio_cals(); } //grant control to the application, try to go to sleep //if the applciation returns GOTO_SLEEP if (!app_asynch_trm()) break; //SDKIMPROVEMENTS Needs testing!! We can add the following condition and move // it out of the loop // we may consider putting it in before the app_asynch_trm //if (GetBits16(CLK_CTRL_REG, RUNNING_AT_XTAL16M)) // execute the printf process arch_printf_process(); } }
75
/** *********************************************************************** * @brief Power down the ble ip if possible. * @return sleep_mode_t return the current sleep mode *********************************************************************** */ static inline sleep_mode_t rwip_power_down ( void ) { sleep_mode_t sleep_mode; // if app has turned sleep off, rwip_sleep() will act accordingly // time from rwip_sleep() to WFI() must be kept as short as possible! sleep_mode = rwip_sleep(); // BLE is sleeping ==> app defines the mode if (sleep_mode == mode_sleeping) { if (sleep_env.slp_state == ARCH_EXT_SLEEP_ON) { sleep_mode = mode_ext_sleep; } else { sleep_mode = mode_deep_sleep; } } return (sleep_mode); } /* *********************************************************************** * @brief Turn the radio off according to the current sleep_mode and check if we can go into deep sleep * @param[in] current_sleep_mode The current sleep mode proposed by the system so far. * @return sleep_mode_t return the allowable sleep mode ***********************************************************************/ static inline void ble_turn_radio_off( void ) { SetBits16(PMU_CTRL_REG, RADIO_SLEEP, 1); // turn off radio } /** *********************************************************************** * @brief Validate that we can use the proposed sleep mode. * @param[in] current_sleep_mode The current sleep mode proposed by the system so far. * @return sleep_mode_t return the allowable sleep mode
*********************************************************************** */ static inline sleep_mode_t ble_validate_sleep_mode(sleep_mode_t current_sleep_mode) { sleep_mode_t sleep_mode=current_sleep_mode; if (jump_table_struct[nb_links_user] > 1) { if ((sleep_mode == mode_deep_sleep) && func_check_mem() && test_rxdone() && ke_mem_is_empty(KE_MEM_NON_RETENTION) ) { func_check_mem_flag = 2;//true; } else sleep_mode = mode_ext_sleep;} else { if( (sleep_mode == mode_deep_sleep) && ke_mem_is_empty(KE_MEM_NON_RETENTION) ) { func_check_mem_flag = 1;//true; } else sleep_mode = mode_ext_sleep; } return (sleep_mode); }
76
/** ********************************************************************* * @brief Turn the peripherals off according to the current sleep mode * @param[in] current_sleep_mode The current sleep mode proposed by the system so far. * @return void
********************************************************************* */ static inline void arch_turn_peripherals_off (sleep_mode_t current_sleep_mode) { if (current_sleep_mode == mode_ext_sleep || current_sleep_mode == mode_deep_sleep) { SCB->SCR |= 1<<2; // enable deep sleep mode bit in System Control Register (SCR[2]=SLEEPDEEP) SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 0); // activate PAD latches SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 1); // turn off peripheral power domain if (current_sleep_mode == mode_ext_sleep) { SetBits16(SYS_CTRL_REG, RET_SYSRAM, 1); // retain System RAM SetBits16(SYS_CTRL_REG, OTP_COPY, 0); // disable OTP copy } else { // mode_deep_sleep #if DEVELOPMENT_DEBUG SetBits16(SYS_CTRL_REG, RET_SYSRAM, 1); // retain System RAM #else SetBits16(SYS_CTRL_REG, RET_SYSRAM, 0); // turn System RAM off => all data will be lost! #endif otp_prepare(0x1FC0); // this is 0x1FC0 32 bits words, so 0x7F00 bytes } } } /********************************************************************* * @brief otp_prepare() * About: Prepare OTP Controller in order to be able to reload SysRAM at the next power-up ******************************************************************** */ static inline void otp_prepare(uint32 code_size) { // Enable OPTC clock in order to have access SetBits16 (CLK_AMBA_REG, OTP_ENABLE, 1); // Wait a little bit to start the OTP clock... for(uint8 i=0;i<10;i++); //change this later to a defined time SetBits16(SYS_CTRL_REG, OTP_COPY, 1);
// Copy the size of software from the first word of the retention mem. SetWord32 (OTPC_NWORDS_REG, code_size - 1); // And close the OPTC clock to save power SetBits16 (CLK_AMBA_REG, OTP_ENABLE, 0);
} /** **************************************************************************** * @brief Used for sending messages to kernel tasks generated from * asynchronous events that have been processed in app_asynch_proc. * @return true to force calling of schedule(), else false **************************************************************************** */ static inline bool app_asynch_trm(void) { if (user_app_main_loop_callbacks.app_on_ble_powered !=NULL) return (user_app_main_loop_callbacks.app_on_ble_powered()); else return false; }
77
/*************************************************************************** * @brief Used for processing of asynchronous events at “user” level. The * corresponding ISRs should be kept as short as possible and the * remaining processing should be done at this point. * @return true to force calling of schedule(), else false
***************************************************************************/ static inline bool app_asynch_proc(void) { if (user_app_main_loop_callbacks.app_on_sytem_powered !=NULL) return (user_app_main_loop_callbacks.app_on_sytem_powered()); else return false; } /**************************************************************************** * @brief Used for updating the state of the application just before sleep checking starts. * @return void
***************************************************************************/ static inline void app_asynch_sleep_proc(void) { if (user_app_main_loop_callbacks.app_before_sleep !=NULL) user_app_main_loop_callbacks.app_before_sleep(); return ; } /*************************************************************************** * @brief Used to disallow extended or deep sleep based on the current application state. BLE and Radio are still powered off. * @param[in] sleep_mode Sleep Mode * @return void
***************************************************************************/ static inline void app_sleep_prepare_proc(sleep_mode_t *sleep_mode) { if (user_app_main_loop_callbacks.app_validate_sleep !=NULL) (*sleep_mode)=user_app_main_loop_callbacks.app_validate_sleep(*sleep_mode); return ; }/** ******************************************************************** * @brief Used for application specific tasks just before entering the low power mode. * @param[in] sleep_mode Sleep Mode * @return void *********************************************************************/ static inline void app_sleep_entry_proc(sleep_mode_t sleep_mode) { if (user_app_main_loop_callbacks.app_going_to_sleep !=NULL) user_app_main_loop_callbacks.app_going_to_sleep(sleep_mode); return ; } /******************************************************************* * @brief Used for application specific tasks immediately after exiting the low power mode. * @param[in] sleep_mode Sleep Mode * @return void
*********************************************************************/ static inline void app_sleep_exit_proc( void ) { if (user_app_main_loop_callbacks.app_resume_from_sleep !=NULL) user_app_main_loop_callbacks.app_resume_from_sleep( ); return ; } /// @} DRIVERS
78
// Timer0 A0 interrupt service routine #pragma vector=TIMER0_A0_VECTOR __interrupt void TIMER0_A0_ISR (void) { P1OUT &= ~BIT6 ; for (i_d=0; i_d<32;i_d++) { P4OUT ^= BIT7; P6OUT &= ~BIT6; while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready? UCA0TXBUF = TX_Pckt[i_d]; while (!(UCA0IFG&UCRXIFG)); UCA1TXBUF =UCA0RXBUF; //UCA0TXBUF =UCA0RXBUF; P6OUT |= BIT6; } P1OUT |= BIT6; } // Echo back RXed character, confirm TX #pragma vector=USCI_A0_VECTOR __interrupt void USCI_A0_ISR (void) { switch (__even_in_range (UCA0IV, 4)) { case 0: break; case 2: P1OUT |= BIT6; for (i=100; i>0; i--) //delay P1OUT &= ~ BIT6; while (!(UCA0IFG&UCRXIFG)); UCA1TXBUF =UCA0RXBUF; P1OUT |= BIT6; for (i=100; i>0; i--) //delay P1OUT &= ~ BIT6; P6OUT &= ~ BIT6; for (i=100; i>0; i--) //delay P6OUT |= BIT6; break ; case 4: break; default: break; } }
79
Station de base (MSP430F5529) Appendix B:
#include <msp430.h> unsigned char i_d, i; unsigned char len=8; char TX_Pckt[8]; /************* main.c **************/ int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P1DIR |= BIT0; P4DIR |= BIT7; /****** Uart configuration******/ // USCI_A0 P3SEL |= BIT3+BIT4; // P3.3,4 = USCI_A0 TXD/RXD UCA0CTL1 |= UCSWRST; // **Put state machine in reset** UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 9; // 1MHz 115200 (see User's Guide) UCA0BR1 = 0; // 1MHz 115200 UCA0MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0 UCA0CTL1 &= ~UCSWRST; UCA0IE |= UCRXIE; //__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled __no_operation(); // USCI_A1 P4SEL |= BIT4+BIT5; // P4.4,5 = USCI_A1 TXD/RXD UCA1CTL1 |= UCSWRST; // **Put state machine in reset** UCA1CTL1 |= UCSSEL_2; // SMCLK UCA1BR0 = 9; // 1MHz 115200 (see User's Guide) UCA1BR1 = 0; // 1MHz 115200 UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0 UCA1CTL1 &= ~UCSWRST; UCA1IE |= UCRXIE; // __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled __no_operation(); /****** Timer configuration******/ TA0CCTL0 = CCIE; // CCR0 interrupt enabled TA0CCR0 = 50000; // Capture Compare Register TA0CTL = TASSEL_2 + MC_1 + TACLR; // SMCLK, upmode, clear TAR /****** RTS/CTS configuration******/ P1DIR &= ~BIT6; // P1.6 RTS as input P1REN |= BIT6; // Enable P1.6 internal resistance
P1OUT |= BIT6; // Set P1.6 as pull-up resistance P1IES |= BIT6; // P1.6 Hi/Lo edge P1IFG &= ~BIT6; // P1.6 IFG cleared P1IE |= BIT6; // P1.6 intrrupt enabled P6DIR |= BIT6; // P6.6 CTS as output
__bis_SR_register(GIE); // Enter enable interrupts
__no_operation(); // For debugger
char i_d; for (i_d=0; i_d<8; i_d++) TX_Pckt[i_d] = i_d + 97; // 97 in Dec is equal 'a' in char }
80
Acquisition de données et l'unité de microcontrôleur Appendix C:
(MCU) (MSP430F5529)
#include <msp430.h> int j, i; unsigned char i_d; char buffer; /************* main. c **************/ int main (void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P4DIR |= BIT7; /****** Uart configuration******/ // USCI_A0 P3SEL |= BIT3+BIT4; // P3.3,4 = USCI_A0 TXD/RXD UCA0CTL1 |= UCSWRST; // **Put state machine in reset** UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 9 ; // 1 MHz 115200 (see User's Guide) UCA0BR1 = 0 ; // 1 MHz 115200 UCA0MCTL |= UCBRS_1 + UCBRF_0 ; // Modulation UCBRSx=1, UCBRFx=0 UCA0CTL1 &= ~UCSWRST ; UCA0IE |= UCRXIE ;
//__bis_SR_register (LPM0_bits + GIE) ; // Enter LPM0, interrupts enabled __no_operation() ; // USCI_A1 P4SEL |= BIT4+BIT5 ; // P4.4, 5 = USCI_A1 TXD/RXD UCA1CTL1 |= UCSWRST; // **Put state machine in reset** UCA1CTL1 |= UCSSEL_2; // SMCLK UCA1BR0 = 9 ; // 1 MHz 115200 (see User's Guide) UCA1BR1 = 0 ; // 1 MHz 115200 UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0 UCA1CTL1 &= ~UCSWRST ; UCA1IE |= UCRXIE;
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled __no_operation() ; P1DIR |= BIT0; // set P1.0 to output direction,
P4DIR |= BIT7; // set P4.7 to output direction, /****** Timer configuration******/ TA0CCTL0 = CCIE ; // CCR0 interrupt enabled TA0CCR0 = 50000 ; // Capture Compare Register TA0CTL = TASSEL_2 + MC_1 + TACLR; // SMCLK, upmode, clear TAR /****** RTS/CTS configuration******/ P1DIR &= ~BIT6; // P1.6 RTS as input P1REN |= BIT6; // Enable P1.6 internal resistance P1OUT |= BIT6; // Set P1.6 as pull-up resistance P1IES |= BIT6; // P1.6 Hi/Lo edge P1IFG &= ~BIT6; // P1.6 IFG cleared P1IE |= BIT6; // P1.6 intrrupt enabled
81
Code du firmware pour la transmission (nRF24L01) Appendix D:
Main Program File (main.c)
#include <msp430.h> #include <nRF.h> #include "driverlib.h" #define TRUE 1 #define FALSE 0 #define ModeTX 0 #define ModeRX 1 char nRF_IRQ_flag; char TX_data_buffer[64];//Buffer 2 times the size of a packet to do double buffering char *TX_data_ptr; // Pointer to the beginning of the current buffer char data_ready = FALSE; unsigned char i; char Transmit_Pckt [20]; char Receive_Pckt [20]; int SPEED = 0; char Mode=ModeTX; int main(void) { WDTCTL = WDTPW + WDTHOLD; // stop WDT
/* Set frequency configuration*/ // Set processor clock frequency to 8MHz UCSCTL3 = SELREF_2; //Set DCO FLL reference = REFO UCSCTL4 |= SELA_2; // Set ACLK = REFO UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx // Loop until XT1,XT2 & DCO stabilizes – In this case only DCO has to stabilize do { UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2, XT1, DCO fault flags SFRIFG1 &= ~OFIFG ; // Clear fault flags } while (SFRIFG1&OFIFG); // Test oscillator fault flag __bis_SR_register(SCG0) ; // Disable the FLL control loop UCSCTL1 = DCORSEL_5; // Select DCO range 16MHz operation UCSCTL2 |= 249; // Set DCO Multiplier for 8MHz // (N + 1) * FLLRef = Fdco // (249 + 1) * 32768 = 8MHz __bic_SR_register(SCG0); // Enable the FLL control loop // Worst-case settling time for the DCO when the DCO range bits have been // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx // UG for optimization. // 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for DCO to settle __delay_cycles(250000); /* End Set frequency configuration*/
GPIO_setAsInputPinWithPullUpresistor(GPIO_PORT_P1, GPIO_PIN1); GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1); //P1DIR &= ~BIT1; //P1IE = BIT1; P4DIR |= BIT7 ; /* nRF24L01+ configuration */ // CE, CSN and IRQ pins
P2DIR |= BIT2 ; // Set nRF_CE (Chip Enable) pin to output P2DIR |= BIT5; // Set nRF_CSN (Chip Select) pin to output P2DIR &= ~BIT3; // Set nRF_IRQ pin to input P2IE = BIT3; // Enable nRF_IRQ interrupt P2IES = BIT3; // hi-to-low interrupt P2IFG &= ~BIT3; // clear nRF_IRQ interrupt
82
// UCA0 SPI settings for nRF24L01+ // Clock freq = SMCLK // Idle clock polarity = low // Data is captured on the rising (first) clock edge // CLK = P2.7, MISO = P3.4, MOSI = P3.3, Nordic Slave-Select = P2.5 P2DIR |= BIT7; // Set CLK pin to output P3DIR |= BIT3; // Set MOSI pin to output P3DIR &= ~BIT4; // Set MISO pin to input P3SEL |= BIT3 + BIT4; // MISO and MOSI pin functionality select P2SEL |= BIT7; // CLK pin functionality select UCA0CTL0 = UCCKPH + UCMSB + UCMST + UCMODE0 + UCSYNC ; UCA0CTL1 = UCSSEL1 + UCSSEL0 + UCSWRST ; UCA0BR0 = 1; // clock prescaler = 1 --> CLK = SMCLK UCA0BR1 = 0; UCA0CTL1 &= ~UCSWRST; // bring the state machine output of reset // nRF24L01+ setup in TX mode nRF_ENTER_TRANSMIT_MODE ;
/* End nRF24L01+ configuration */ Transmit_Pckt[0]= 30 ; Transmit_Pckt[19]= 31; for (i=1; i<17; i++) Transmit_Pckt[i] = i ; /*TIMER INIT*/ //TA0CTL = TASSEL_2 + MC_2 ; // SMCLK, continuous mode /*END TIMER INIT*/ /*ADC INIT*/ /*END ADC INIT*/ /*ENABLE INTERRUPTS*/ __bis_SR_register(GIE);
while(1) { if(data_ready) // When true, one of the buffer if full and ready to be sent { data_ready = FALSE; TA0R = 0; for (i=0; i<51; i++) { nRF_upload_TX_payload(Transmit_Pckt); nRF_CE_high;
__delay_cycles(85); nRF_CE_low;
while(!nRF_IRQ_flag); nRF_IRQ_flag = 0; nRF_clear_IRQ(); }
83
Code du firmware pour la station de base Appendix E:
RF_ENTER_RECEIVE_MODE; Mode=ModeRX; /*SPEED = TA0R/160; Transmit_Pckt[18] = (char) SPEED;*/ } } //------------------------------------------------------------------------
} // nRF24L01+ IRQ #pragma vector=PORT2_VECTOR __interrupt void Port_2(void) { int i_tx; P4OUT ^= BIT7; // Toggle P4.7 P2IFG &= ~BIT3; // IFG cleared nRF_IRQ_flag = TRUE; if (Mode==ModeRX) { nRF_clear_IRQ(); nRF_download_RX_payload(Receive_Pckt); nRF_IRQ_flag = 0; //send_data_UART(Receive_Pckt, controle_packet_len); for (i_tx=0; i_tx < nRF_packet_len; i_tx++) { while(!(UCA1IFG&UCTXIFG)); UCA1TXBUF = Receive_Pckt[i_tx]; } nRF_ENTER_TRANSMIT_MODE; Mode=ModeTX; } } // nRF24L01+ IRQ #pragma vector=PORT1_VECTOR __interrupt void Port_1 (void) { P1IFG &= ~BIT1; // IFG cleared data_ready = TRUE; } // Timer0 A0 interrupt service routine #pragma vector=TIMER0_A0_VECTOR __interrupt void TIMER0_A0_ISR (void) { }
84
Code du firmware pour le récepteur (nRF24L01) Appendix F:
#include <msp430.h> #include <nRF.h> //#include "Config.h" //#include "CommUART.h" #define ModeTX 0 #define ModeRX 1 int controle_packet_len=20; char nRF_IRQ_flag; char RX_data_buffer[20]; unsigned char i_buffer; char Mode=ModeRX ; int main (void) { WDTCTL = WDTPW + WDTHOLD; //stop WDT
/* Set frequency configuration*/ //Set processor clock frequency to 8MHz UCSCTL3 = SELREF_2; //Set DCO FLL reference=REFO UCSCTL4 |= SELA_2; // Set ACLK = REFO UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx //Loop until XT1,XT2 & DCO stabilizes – In this case only DCO has to stabilize do { UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2, XT1, DCO fault flags SFRIFG1 &= ~OFIFG ; // Clear fault flags } while (SFRIFG1&OFIFG); // Test oscillator fault flag __bis_SR_register(SCG0) ; // Disable the FLL control loop UCSCTL1 = DCORSEL_5; // Select DCO range 16MHz operation UCSCTL2 |= 249; // Set DCO Multiplier for 8MHz
// (N + 1) * FLLRef = Fdco // (249 + 1) * 32768 = 8MHz __bic_SR_register(SCG0); // Enable the FLL control loop // Worst-case settling time for the DCO when the DCO range bits have been //changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx // UG for optimization. // 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for nDCOtonsettle __delay_cycles(250000);
P4DIR |= BIT7 ; /* End Set frequency configuration*/ //nRF24L01+ setup // CE, CSN and IRQ pins P2DIR |= BIT2; // Set nRF_CE (Chip Enable) pin to output P2DIR |= BIT5; // Set nRF_CSN (Chip Select) pin to output P2DIR &= ~BIT3; // Set nRF_IRQ pin to input P2IE = BIT3; // Enable nRF_IRQ interrupt
P2IES = BIT3; // hi-to-low interrupt P2IFG &= ~BIT3; // clear nRF_IRQ interrupt // UCA0 SPI settings for nRF24L01+ // Clock freq = SMCLK // Idle clock polarity = low // Data is captured on the rising (first) clock edge // CLK = P2.7, MISO = P3.4, MOSI = P3.3, Nordic Slave-Select = P2.5
85
P2DIR |= BIT7; // Set CLK pin to output P3DIR |= BIT3; // Set MOSI pin to output P3DIR &= ~BIT4; // Set MISO pin to input P3SEL |= BIT3 + BIT4; // MISO and MOSI pin functionality select P2SEL |= BIT7; // CLK pin functionality select UCA0CTL0 = UCCKPH + UCMSB + UCMST + UCMODE0 + UCSYNC ; UCA0CTL1 = UCSSEL1 + UCSSEL0 + UCSWRST ; nRF_ENTER_RECEIVE_MODE ; __bis_SR_register(GIE) ; while(1); //----------------------------------------------------------------------------- } // nRF24L01+ IRQ #pragma vector=PORT2_VECTOR __interrupt void Port_2(void) { P4OUT ^= BIT7; // Toggle P4.7 nRF_IRQ_flag = 1; P2IFG &= ~BIT3; // IFG cleared if(Mode==ModeTX) { Mode=ModeRX; } /***************************** if(Mode==ModeRX) { nRF_clear_IRQ(); nRF_download_RX_payload(RX_data_buffer); nRF_IRQ_flag = 0; nRF_ENTER_TRANSMIT_MODE; Mode=ModeTX; nRF_upload_TX_payload(RX_data_buffer); nRF_CE_high; __delay_cycles(85); nRF_CE_low; while(!nRF_IRQ_flag); nRF_IRQ_flag = 0; nRF_clear_IRQ(); nRF_ENTER_RECEIVE_MODE; } }
Recommended