LES OBJETS COMMUNICANTS
DÉMARCHE DE CONCEPTION D’UNE APPLICATION
UTILISANT DES OBJETS CONNECTÉS
Jean-Paul Jamont, Lionel Médini, Michaël Mrissa
INTRODUCTION
• Objectif général de ce cours
– Se placer dans une démarche de conception au
niveau applicatif
• From scratch
• Pour des objets existants
– Comprendre les différences avec une démarche
de conception logicielle
• Lien avec l’environnement physique
• Aspects matériels
• Communications réseau
PLAN DU COURS
1. Anatomie d’un objet communicant
2. Quelle démarche de conception ?
3. Analyse des besoins
4. Processus de développement
5. Validation
1. COMMENT FONCTIONNENT LES OBJETS
COMMUNICANTS?
1. COMMENT FONCTIONNENT LES OBJETS
COMMUNICANTS?
1. COMMENT FONCTIONNENT LES OBJETS
COMMUNICANTS?
COM
E/S CPU DATA
ω
1. COMMENT FONCTIONNENT LES OBJETS
COMMUNICANTS?
COM
E/S CPU DATA
ω
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
1. PDA / Mini-PC / PC Industriels
2. Une carte de développement existante
3. From scratch
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• PDA / Mini-PC / PC Industriels
Modèle: Samsung Galaxy S4GT-I9505
OS: Android 4.2.2 Jelly Bean
CPU,GPU: 4 cœurs Qualcomm Snapdragon 600
(ARMv7) à 1,9 GHz, Qualcomm Adreno 320
Mémoire vive: 2 Go de RAM LPDDR3
Stockage: 32 Go de mémoire flash intégrée
Connectique: HDMI, prise casque jack 3,5 mm, port
micro USB 2.0 compatible MHL 2.0, WiFi 802.11
a/b/g/n/ac (HT80), NFC, Bluetooth 4.0 (LE), LED IR3
Capteurs: de proximité, de lumière, IR, thermomètre,
hygromètre, baromètre, accéléromètre et gyroscope
à 3 axes, magnétomètre
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• PDA / Mini-PC / PC Industriels
Modèle: Android Mini PC MK802
OS: Android 4.2.2 Jelly Bean ou Ubuntu ou
PicUntu
CPU,GPU: Cortex-A9 à 1.6 GHz, 400 MHz Mali
GPU
Mémoire vive: 2 Go de RAM LPDDR3
Stockage: 8 Go de mémoire flash intégrée
Connectique: HDMI, micro-USB 2.0, USB 2.0,
microSD slot, alim. via micro-USB OTG, Wi-Fi
802.11 b/g/n, Bluetooth,
Capteurs:
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• PDA / Mini-PC / PC Industriels
Modèle: PC industriel fanless NISE2200
OS: Linux, Windows …
CPU,GPU: Intel® Atom™ Dual Core D2550 1.86GHz
Mémoire vive: 8Go DDR3 SODIMM
Stockage: Disque dur 2.5" SATA
Connectique: 6 ports USB2.0; 1 emplacement
CFast; 1 emplacement carte SIM, 2 ports RS-
232/422/485 isolés, 2 ports Ethernet Intel® 82574IT
Gb, 1 port DB15 E/S , WiFi 802.11 a/b/g/n/ac or
3.5G (auto detected modules), Support 9-36V DV
input, Audio Jack
Capteurs:
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• Une carte de développement existante
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• From scratch
• Architecture centrée microcontrôleur
• Architecture centrée FPGA/EPLD/ASIC?
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• Architecture d’objet communicant basée sur un
microprocesseur ou un microcontrôleur
C RAM ROM
Capteurs
Capteurs Capteurs
Capteurs
Capteurs CAN CPU CNA Actionneurs
Contrôleurs
Ports E/S de bus de Ports de
comm. diagnostic
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
Processeur
Mémoire
Périphériques
Bus de communication
Entrées/Sorties
D’après Julien DeAntoni
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• Nombreux choix de capteurs et
d’actionneurs
• Utiliser les « Product Selector Guide »
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
• Utiliser les « Product Selector Guide »
QUELS CHOIX POUR LA PARTIE
MATÉRIELLE?
COMMENT MON OBJET ACCÈDE À
INTERNET?
• Deux grands types d’objets physiques
– Objets communicants et/ou intelligents
• A base de micro-contrôleur(s) /FPGA équipés d’interface(s) de
communication
• Modèle de comportement embarqué sur l’objet
– Objets « chipless » tagués
• Objets sur lesquels on a apposé une étiquette RFID (ou autre)
• Modèle de COMPORTEMENT DÉPORTÉ sur un serveur distant
OBJETS CHIPLESS
E. Perret
OBJETS CHIPLESS
O. Rance
24
OBJETS CHIPLESS
O. Rance
25
OBJETS CHIPLESS
O. Rance
26
OBJETS CHIPLESS
O. Rance
27
OBJETS CHIPLESS
O. Rance
28
OBJETS CHIPLESS
O. Rance
29
MODÈLES DE COMMUNICATION
Comportement embarqué Comportement déporté
COMMENT VONT COMMUNIQUER LES
OBJETS ENTRE EUX?
Les réseaux sans fil sont des briques de base de l’IoT et du
WoT
Il faut savoir identifier les critères pertinents qui vont conditionner le choix de ces briques
Il faut comprendre la caractérisation de ces briques
Il est indispensable de comprendre les couches basses d’un
système communicant pour assurer une réelle maîtrise
d’ouvrage
Les couches basses impactent profondément la qualité de
service d’un système communicant! En effet, il existe un fort
couplage entre les technologies utilisées pour les couches
basses et :
- La consommation d’énergie,
- Le déterminisme (ou non) temporel,
- Le débit (couplé avec l’environnement du système)
- La précision d’une radiolocalisation
- Le taux de perte
- Le déséquencement
- La latence
- La gigue
-…
COMMENT VONT COMMUNIQUER LES
OBJETS ENTRE EUX?
Zigbee Bluetooth Wi-Fi
Besoins en
mémoire 4-32 Kb 250 Kb 1 Mb
Autonomie avec
pile Années Jours Heures
Nombre de
nœuds 65 000+ 7 32
Vitesse de 11-54-108-...
transfert 250 Kb/s 1 Mb/s Mb/s
Portée 10-100m 10-100 m 300 m
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
71.5% of traditionnal embedded system designs were not
within 30% of pre-design performance expectations. [1]
Europe (N=240) North America (N=160)
Changes in specifications
Complexity of the application
Inadequate specifications
Too few developers
Too few testing personnel
Poor testing tools
Poor developpement tools
Inefficient
production/manufacturing
Others 39
2. QUELLE DÉMARCHE?
2. QUELLE DÉMARCHE?
3. QUELS SONT MES BESOINS?
Pour quel type d’application l’objet que je
dois construire va me servir?
1. Calcul généraliste
2. Contrôle de systèmes
3. Traitement du signal
4. Réseaux et communications
3. QUELS SONT MES BESOINS?
Quels sont mes besoins / mes contraintes?
• Puissance de calcul
• Capacité de communication
• Capacité de stockage
• Consommation d’énergie
• Temps de réponse
• Tolérances aux pannes
• Durée de vie
• Testabilité/débogage
• Nombre d’unités produites
3. VAIS-JE UTILISER UN OS?
COM
E/S CPU DATA
ω
3. VAIS-JE UTILISER UN OS?
[Turley]
3. VAIS-JE UTILISER UN OS?
Quel type d’OS?
- GPOS (Normal General Purpose Operating System)
=> Interruptible
- RTOS (Real Time Operating System)
=> Prédictible
D’après [Link] , Systèmes d'exploitation embarqués
3. VAIS-JE UTILISER UN OS?
[Turley]
3. VAIS-JE UTILISER UN OS?
[Turley]
3. VAIS-JE UTILISER UN OS?
Créer, initaliser et activer une tâche avec VxWorks
int taskSpawn(
{Task Name},
{Task Priority 0-255, related to scheduling},
{Task Options – VX_FP_TASK, execute with floating point
coprocessor
VX_PRIVATE_ENV, execute task with private environment
VX_UNBREAKABLE, disable breakpoints for task
VX_NO_STACK_FILL, do not fill task stack with 0xEE}
{Stack Size}
{Task address of entry point of program in memory–initial PC
value}
{Up to 10 arguments for task program entry routine})
=> Après appel du taskSpawn, une image de la tâche est créée
(Process Control Block , pile, programme)
3. VAIS-JE UTILISER UN OS?
// Tâche du parent qui active le l’horloge logicielle
void parentTask(void) {
…
if sampleSoftware Clock NOT running {
newSWClkId = taskSpawn (“sampleSoftwareClock”, 255,
VX_NO_STACK_FILL, 3000, (FUNCPTR) minuteClock, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0);
….
}
// Tâche executée par le programme fils
void minuteClock (void) {
integer seconds;
while (softwareClock is RUNNING) {
seconds = 0;
while (seconds < 60)
seconds = seconds+1;
}
……
}
3. VAIS-JE UTILISER UN FRAMEWORK ?
• Un framework au-dessus de l’OS?
Services fournis:
• journalisation ,
• gestion des configurations ,
• le service HTTP (exec. servlets),
• l’analyse syntaxique XML, l’accès aux dispositifs (Device
Access),
• l’administration de paquetage (Package Admin),
• l’administration des permissions (Permission Admin),
• le niveau de démarrage (Start Level),
• la gestion des utilisateurs (User Admin),
• le connecteur d'ES (IO Connector; IO = Input Output =
Entrées Sorties),
• la gestion des connexions (Wire Admin),
• Jini, l’exportateur UPnP (UPnP Exporter),
• le pistage applicatif (Application Tracking),
• les paquets signés (Signed Bundles),
• les services déclaratifs (Declarative Services),
Bundle = applications et/ou
• la gestion de l’énergie (Power Management),
composants déployés • la gestion des dispositifs (Device Management),
• les politiques de sécurité (Security Policies),
• diagnostic/contrôle et organisation en couches du
cadriciel (Diagnostic/Monitoring and Framework Layering).
4. JE DÉVELOPPE MON APPLICATION
• Choisir la chaine de développement
4. JE DÉVELOPPE MON APPLICATION
• Choisir la chaine de développement
4. JE DÉVELOPPE MON APPLICATION
• Choisir la chaine de développement
4. JE DÉVELOPPE MON APPLICATION
• Etudier les datasheets du micro-contrôleur
5. JE VALIDE MON SYSTÈME
---Validation---
Risques acceptables / Satisfaction des utilisateurs
Sûreté de fonctionnement Satisfaction des utilisateurs
Fiabilité QoS
Disponibilité Performances
Maintenabilité
Sécurité confidentialité
Sécurité innocuité
…
5. JE VALIDE MON SYSTÈME
---Des outils spécifiques--
PERFORMANCE
REQUIREMENTS
TRADITIONNAL MAS
MODELS INVOLVED IN THE SYSTEM SIMULATION VIRTUAL SIMULATION APPROACH
SYSTEM DESIGN
Environnement description models
SW SIMULATION
Environment Energy Wave propagation ADJUST THE
physical model consumption model model MEET REQUIREMENTS?
DESIGN
eMAS
Entities involved models IMPLEMENT SIMULATION APPROACH
SYSTEM
HW&SW SIMULATION
Entity behavior Interaction model Organization model
ADJUST THE
MEET REQUIREMENTS?
IMPLEMENTATION
FINISH!
MASH [Jamont13]
5. JE VALIDE MON SYSTÈME
---Performances énergétiques---
[Fourty12]
MERCI POUR VOTRE ÉCOUTE
BIBLIOGRAPHIE
• Culture mobile – Le Blog [Link]
• Jalil Boukhobza, Systèmes d’exploitation pour l’embarqué (cours)
• Julien DeAntoneti, Introduction à la programmation micro-contrôleur (cours)
• Nicolas Fourty, Adrien van den Bossche, Thierry Val: An advanced study of energy
consumption in an IEEE 802.15.4 based network: Everything but the truth on 802.15.4 node
lifetime. Computer Communications 35(14): 1759-1767 (2012)
• Jean-Paul Jamont, Michel Occello, Eduardo Mendes, Decentralized intelligent real world
embedded systems : a tool to tune design and deployment, Advances in Intelligent and Soft-
Computing, Springer, ISSN: 1867-5662, 2013.
• Jean-Paul Jamont, Les réseaux sans fils (cours)
• Emmanuel Jez, Développement d’une colonie de robots mobiles « Kurasu ».
• Stéphane Lavirotte , Objets Communicants et Terminaux Mobiles (cours)
• Etienne Perret, RFID sans puce, de l'identification au capteur .
• Olivier Rance, Construction de la signature électromagnétique d'un tag RFID sans puce à
partir d’un assemblage de résonateurs.
• Jim Turley , Source: [Link]
systems-on-the-rise