Partie 1

publicité
2016-2017
Systèmes embarqués
communicants pour
l'Internet des objets
Getting Started with the Internet of Things, C.Pfister, O'Reilly
Laurence PIERRE, Bernard TOURANCHEAU
Master 2 Génie Informatique
http://users-tima.imag.fr/amfors/lpierre/M2GI/SEIOT.html
Principaux objectifs "
de ce cours
!  Comprendre
•  les caractéristiques et la conception des systèmes
embarqués communicants,
•  leurs interactions dans l'IoT (Internet of Things)
!  Appréhender
•  les méthodes de spécification et de conception
•  les architectures et systèmes d'exploitation
•  les protocoles pour l'IoT
M2 Génie Informatique
Laurence Pierre
2
Préambule
!  You can think about IoT applications as consisting
of sensor and actuator endpoints, user device
endpoints, and application software that connects
the endpoints (http://iot-datamodels.blogspot.fr/
2013_02_01_archive.html)
!  Par exemple :
M2 Génie Informatique
Laurence Pierre
3
Laurence Pierre
4
Préambule
!  You can think about IoT applications as consisting
of sensor and actuator endpoints, user device
endpoints, and application software that connects
the endpoints (http://iot-datamodels.blogspot.fr/
2013_02_01_archive.html)
!  Par exemple :
Objet de
ce cours
M2 Génie Informatique
Préambule
!  Complémentarité avec "e-Services pour le M2M et
l'Internet des Objets"
Services'
M2M'et'IOT'
SE#IOT'+'Linux'embarqué'
M2 Génie Informatique
Laurence Pierre
5
Plan du cours
!  Systèmes embarqués et systèmes sur puce : introduction et
rappels sur la conception matérielle
!  Processeurs embarqués
•  Quelques caractéristiques matérielles : pipelines, mémoires
•  Architecture, microcontrôleurs MSP430, processeurs ARM9
•  Systèmes d'exploitation typiques
!  Méthodes de conception des systèmes sur puce
•  Spécification et description haut niveau (SystemC TLM) - TP
•  Mise au point et validation - TP
!  Communications dans les systèmes sur puce et pour l'IoT
•  Bus, réseaux sur puce (network on chip, NoC)
•  Transmissions et protocoles pour les réseaux sans fil - TP
•  Acquisition signal RF et traitement sur microcontrôleur - TP
M2 Génie Informatique
Laurence Pierre
6
Parmi les sujets abordés
"Designing Embedded Hardware", J.Catsoulis, O'Reilly
M2 Génie Informatique
Laurence Pierre
7
Parmi les sujets abordés
Quelques processeurs dédiés,
quelques caractéristiques
Acquisition par
interface SPI
Protocoles
Modélisation,
validation
Infrastructures
de communication
"Designing Embedded Hardware", J.Catsoulis, O'Reilly
M2 Génie Informatique
Laurence Pierre
8
1. Introduction et rappels
sur la conception matérielle
M2 Génie Informatique
9
Laurence Pierre
Définition
!  Embedded system
http://www.yourdictionary.com/computer/embedded-system
Any electronic system that uses a computer chip, but that is
not a general-purpose workstation, desktop or laptop
computer. Such systems use microcontrollers (MCUs) or
microprocessors (MPUs), or they may use custom-designed
chips.
M2 Génie Informatique
Laurence Pierre
10
!
!
Quelques domaines d'application
!  Grand public, maison intelligente,...
http://www.edgefxkits.com/blog/embedded-systems-with-applications/
M2 Génie Informatique
Laurence Pierre
13
Quelques domaines d'application
!  Médical, santé
M2 Génie Informatique
Laurence Pierre
14
Définition - Chip
!  Chip
http://www.yourdictionary.com/computer/chip
A set of microminiaturized,
electronic circuits fabricated
on a single piece of
semiconducting material.
M2 Génie Informatique
Laurence Pierre
15
Définition - Die
!  Die
http://www.yourdictionary.com/computer/die
An unpackaged, bare chip. A die is the formal term for the
square of silicon containing an integrated circuit. Die is
singular, and dice is plural.
The terms die and chip
are often used
synonymously.
M2 Génie Informatique
Laurence Pierre
16
Définition - SoC
!  System on Chip
http://www.answers.com/topic/system-on-a-chip
System on chip (SoC) refers to
integrating all components of a
computer or other electronic
system into a single integrated
circuit (chip). It may contain
digital, analog, mixed-signal, and
often radio-frequency functions –
all on one chip.
A typical application is in the area
of embedded systems.
M2 Génie Informatique
Laurence Pierre
17
Définition - SoC
!  System on Chip
http://www.yourdictionary.com/computer/so-c
The electronics for a complete, working product contained
on a single chip. While a microcontroller includes all the
hardware components required to process instructions, an
SoC includes the computer and all required ancillary
electronics.
For example, an SoC for a telecom application might
contain a microprocessor, digital signal processor (DSP),
RAM and ROM. It might also include a graphics processor.
M2 Génie Informatique
Laurence Pierre
18
Rappel - Dans un ordinateur
!  Processeur, mémoire, exécution du code
http://blog.shamess.info/2008/12/03/computer-tech-lecture-three/
M2 Génie Informatique
Laurence Pierre
19
Rappel - Dans un ordinateur
http://www.alf.sd83.bc.ca/courses/it10b/fundamentals/information_flow.htm
M2 Génie Informatique
Laurence Pierre
20
Mais dans un système embarqué...
!  Une plus grande variété de composants
Unlike the past, when SoC were dominated by digital logic and memory cores, today's devices contain
a more balanced set of functional blocks.
http://chipdesignmag.com/lpd/blog/2010/04/18/socs-move-beyond-digital-and-memory-blocks/, 2010
M2 Génie Informatique
Laurence Pierre
21
Laurence Pierre
22
Exemple
!  Carte STM32F4
M2 Génie Informatique
Principaux composants
!  Processeur ou microcontrôleur
• 
• 
• 
• 
ARM (par ex. dans STM32F4, Raspberry PI)
x86 (ex. netbooks)
MIPS (ex. routeurs et jeux vidéo)
PowerPC (ex. consoles de jeu)
!  Mémoires
http://linuxgizmos.com/amd-reveals-arm-and-x86-soc-and-apu-plans/
M2 Génie Informatique
Laurence Pierre
23
Principaux composants
!  DMA (Direct Memory Access)
DMA permits the peripheral to transfer data directly to or from memory without having each byte (or
word) handled by the processor.
http://www.embedded.com/electronics-blogs/beginner-s-corner/4024879/Introductionto-direct-memory-access
M2 Génie Informatique
Laurence Pierre
24
Principaux composants
!  DMA (Direct Memory Access) - suite
http://www.mathcs.emory.edu/~cheung/Courses/355/Syllabus/6-io/DMA.html
M2 Génie Informatique
Laurence Pierre
25
Principaux composants
!  DMA (Direct Memory Access) - suite
http://www.mathcs.emory.edu/~cheung/Courses/355/Syllabus/6-io/DMA.html
M2 Génie Informatique
Laurence Pierre
26
Principaux composants
!  Coprocesseur matériel
•  Notamment pour le traitement du signal : Fast
Fourier Transform (représentation spectrale du
signal), Viterbi decoder (correction message
bruité),...
•  Lui aussi est "programmé" par le logiciel
!  Composant de communication (bus)
•  Diverses architectures
•  Bus simples ou hiérarchiques, ex. bus AMBA
associé aux processeurs ARM
•  ... voir section 5 du cours
M2 Génie Informatique
Laurence Pierre
27
Principaux composants
!  Entrées/sorties, acquisition de données
•  GPIO (General Purpose Input/Output) :
ports généralistes de
communication, par ex.
pour communication avec
les leds
•  Composants pour émission/réception RF
•  Bus spéciaux (SPI, I2S), UART (liaison série),...
M2 Génie Informatique
Laurence Pierre
28
Principaux composants
!  Liaison avec des capteurs et actionneurs
https://community.freescale.com/community/the-embedded-beat/blog/2010/06/22/
dynamics-in-the-market-for-safety-systems
M2 Génie Informatique
Laurence Pierre
29
Acquisition de données de capteurs
!  Deux principales solutions : polling versus
utilisation d'interruptions (voir dernier TP)
http://www.pyroelectro.com/tutorials/pic_interrupts_vs_polling/theory.html
M2 Génie Informatique
Laurence Pierre
30
Acquisition de données de capteurs
!  Solution 1 : polling sur les registres
•  Exemple : acquisition de données de l'accéléromètre
(LIS302) sur carte STM32F4
while (1) {
// Attente que "receive buffer
// not empty" soit vrai :
while( !( SPI_I2S_FLAG_RXNE ));
// Lecture des valeurs :
LIS302DL_ReadACC(pBuffer);
... traitement ...
}
M2 Génie Informatique
Laurence Pierre
31
Acquisition de données de capteurs
!  Solution 2 : utilisation d'interruption
•  Exemple : acquisition de données de l'accéléromètre
(LIS302) sur carte STM32F4
void EXTI0_IRQHandler(void){
if (EXTI_GetITStatus(EXTI_Line0) != RESET) {
// Lecture des valeurs :
LIS302DL_ReadACC(pBuffer);
... traitement ...
}
// Reset interruption:
EXTI_ClearITPendingBit(EXTI_Line0);
}
M2 Génie Informatique
Laurence Pierre
32
Exemple d'application
!  Traitement radio (Thales) :
http://www.ics.ele.tue.nl/~dsd/dsd2005/files/
DSD05ThalesSept1rstPorto.pdf
Note. In digital signal processing, a digital down-converter (DDC) converts a digitized real signal centered at an intermediate
frequency (IF) to a basebanded complex signal centered at zero frequency (http://en.wikipedia.org/wiki/Digital_down_converter)
M2 Génie Informatique
Laurence Pierre
33
Exemple d'application
!  Traitement radio (Thales) :
Le processeur
programme le
DMA
M2 Génie Informatique
Laurence Pierre
34
Exemple d'application
!  Traitement radio (Thales) :
Le DDC prévient
le DMA de la
réception de
données
M2 Génie Informatique
Laurence Pierre
35
Exemple d'application
!  Traitement radio (Thales) :
Le DMA
transfère les
données du DDC
vers la mémoire
et envoie une
interruption au
processeur
M2 Génie Informatique
Laurence Pierre
36
Exemple d'application
!  Traitement radio (Thales) :
Le processeur
traite le bloc de
données en
utilisant le
décodeur Viterbi
M2 Génie Informatique
Laurence Pierre
37
Exemple d'application
!  Traitement radio (Thales) :
... et reconfigure
le DMA pour le
prochain
transfert
M2 Génie Informatique
Laurence Pierre
38
Définition - MPSoC
!  Multiprocessor SoC
http://en.wikipedia.org/wiki/MPSoC
The multiprocessor System-on-Chip (MPSoC) is a SoC
which uses multiple processors usually targeted for
embedded applications. It is used by platforms that contain
multiple, usually heterogeneous, processing elements with
specific functionalities reflecting the need of the expected
application domain, a memory hierarchy and I/O
components.
All these components are linked to each other by an on-chip
interconnect.
M2 Génie Informatique
Laurence Pierre
39
Architecture manycore - Exemple
!  Processeur MPPA-256 de Kalray: Processeur
basse consommation à 256 coeurs
Credit : Kalray (L.Julliard)
M2 Génie Informatique
Laurence Pierre
40
Architecture manycore - Exemple
!  Processeur MPPA-256 de Kalray:
VLIW Core
Compute Cluster
Instruction Level
Parallelism
Thread Level
Parallelism
Manycore Processor
Process Level
Parallelism
Credit : Kalray (L.Julliard)
M2 Génie Informatique
Laurence Pierre
41
Spécificités des SE
!  Caractéristiques des systèmes embarqués :
•  Souvent dédiés à des tâches spécifiques
•  Généralement soumis à
" Des contraintes temps réel (le système d'exploitation peut
aussi être temps réel)
" Des contraintes liées à la consommation d'énergie,
dissipation de chaleur…
•  Les ressources peuvent être plus restreintes que
dans un système fixe (Ex : mémoire)
M2 Génie Informatique
Laurence Pierre
42
Spécificités des SE
!  Caractéristiques des systèmes embarqués
(suite) :
•  Peuvent être amenés à fonctionner dans des
conditions extrêmes (température, humidité,…)
•  Les aspects sécurité, fiabilité, tolérance aux fautes,
… sont souvent cruciaux
•  Des méthodes de conception et de validation
spécifiques doivent leur être associées
M2 Génie Informatique
Laurence Pierre
43
Flot de conception HW/SW
Spécification
Partitionnement matériel/logiciel, choix des composants
Développement matériel
Développement logiciel
Intégration
Validation, Test
Maintenance et mises à jour
M2 Génie Informatique
Laurence Pierre
44
Des acteurs différents
Spécification
Partitionnement matériel/logiciel, choix des composants
Développement matériel
Développement logiciel
Intégration
Validation, Test
Maintenance et mises à jour
M2 Génie Informatique
Laurence Pierre
45
Niveaux d'abstraction et langages
!  Du composant au système complexe, divers
niveaux d'abstraction
http://www.synopsysoc.org/viewfromtop/?p=3
M2 Génie Informatique
Laurence Pierre
46
Niveaux d'abstraction et langages
Niveau système
RTL
Niveau portes
Niveau transistors
http://www.ict.kth.se/courses/2B1446/0809/Lectures/IL2206_L1_Intro.pdf
M2 Génie Informatique
Laurence Pierre
47
Langages de description de
matériel
!  Verilog (standard IEEE 1364, http://www.verilog.com)
•  Niveaux : algorithmique, RTL, portes logiques, et
transistors (Verilog-AMS)
!  VHDL (standard IEEE 1076)
•  Niveaux : algorithmique, RTL, portes logiques, et
transistors (VHDL-AMS)
!  SystemC (standard IEEE 1666, http://accellera.org/
downloads/standards/systemc)
•  Modélisation haut niveau, voir section 3 du cours...
M2 Génie Informatique
Laurence Pierre
48
Simulation
!  Un modèle HDL servira à tester en simulation si
le comportement attendu est respecté
•  Exemple : sur une description RTL
horloge
valeurs
de
signaux
!
échelle de temps
•  Modèles haut niveau : voir section 3...
M2 Génie Informatique
Laurence Pierre
49
Synthèse
!  Il servira aussi pour réaliser une synthèse ASIC
ou FPGA
M2 Génie Informatique
Laurence Pierre
50
Synthèse sur ASIC/FPGA
!  Les ASIC (Application Specific Integrated
Circuits) sont des circuits intégrés
spécifiquement conçus pour une application
•  Standard cells, Full custom,…
•  Performance
•  Pas de flexibilité
!  Synthèse sur FPGA (Field Programmable Gate
Array) : alternative sur composant
programmable
M2 Génie Informatique
Laurence Pierre
51
Synthèse ASIC - Exemple: FSM
!  Synthèse
FSM
netlist
Réalisé avec Alliance (http://www-asim.lip6.fr/recherche/alliance/)
M2 Génie Informatique
Laurence Pierre
52
Rappels sur la synthèse de FSM
!  Rappel : une machine de Mealy est un tuple
(Q, I, O, t, f, q0)
Q : ensemble des états
I : ensemble des entrées
O : ensemble des sorties
t : fonction de transition
t:QxI→ Q
•  f : fonction de sortie
f:QxI→ O
•  q0 : état initial
0/1
• 
• 
• 
• 
STATE0
/1
STATE1
1/1
0/1
/1
STATE4
STATE2
0/1
/1
1/1
STATE5
STATE3
0/1
M2 Génie Informatique
1/0
Laurence Pierre
53
Rappels sur la synthèse de FSM
!  Construction de la table associée à la FSM
•  Exemple
STATE0
/1
STATE1
0/1
/1
STATE4
STATE2
0/1
1/1
/1
1/1
STATE5
STATE3
0/1
0/1
M2 Génie Informatique
1/0
x
q
q'
z
0
state0
state1
1
1
state0
state1
1
0
state1
state2
1
1
state1
state4
1
0
state2
state3
1
1
state2
state5
1
0
state3
state0
1
1
state3
state0
1
0
state4
state5
1
1
state4
state5
1
0
state5
state0
1
1
state5
state0
0
Laurence Pierre
54
Rappels sur la synthèse de FSM
!  Choix d'un codage pour l'état
•  Codage binaire classique
" Nombre de flips-flops = log2 (nbétats)
" Mais plusieurs bits d'état changent
•  Codage de Gray
" Seul un bit d'état change
0
000
1
2
3
001
011
010
4
5
6
7
110
111
101
100
•  Codage one-hot : un bit par état
M2 Génie Informatique
Laurence Pierre
55
Rappels sur la synthèse de FSM
!  Choix d'un codage pour l'état
•  Exemple
state0 = 000
state1 = 001
state2 = 010
state3 = 011
state4 = 100
state5 = 101
M2 Génie Informatique
x
q
q'
z
0
state0
000
state1
001
1
1
state0
000
state1
001
1
0
state1
001
state2
010
1
1
state1
001
state4
100
1
0
state2
010
state3
011
1
1
state2
010
state5
101
1
0
state3
011
state0
000
1
1
state3
011
state0
000
1
0
state4
100
state5
101
1
1
state4
100
state5
101
1
0
state5
101
state0
000
1
1
state5
101
state0
000
0
Laurence Pierre
56
Rappels sur la synthèse de FSM
!  Construction et simplification des équations
•  Exemple
q0' = (not q0).(not q1).(not q2) +
(not q0).q1.(not q2) +
(not q0).(not q1).q2
= (not q0). ((not q1).(not q2) + q1.(not q2) +
(not q1).q2)
= (not q0) car q1.q2 impossible
M2 Génie Informatique
Laurence Pierre
57
Rappels sur la synthèse de FSM
!  Construction et simplification des équations
•  Exemple
q0' = (not q0).(not q1).(not q2) +
(not q0).q1.(not q2) +
(not q0).(not q1).q2
= (not q0). ((not q1).(not q2) + q1.(not q2) +
(not q1).q2)
sur bibliothèque
= (not q0) car Mapping
q1.q2 impossible
de composants
M2 Génie Informatique
Laurence Pierre
58
Exemple pratique
!  Exemple avec LeonardoSpectrum :
http://www.mentor.com/products/fpga/synthesis/leonardo_spectrum/
M2 Génie Informatique
Laurence Pierre
59
Exemple pratique
!  Exemple avec LeonardoSpectrum :
http://www.mentor.com/products/fpga/synthesis/leonardo_spectrum/
M2 Génie Informatique
Laurence Pierre
60
Exemple pratique
!  Exemple avec LeonardoSpectrum :
Cell
Library
AOI2111
CLKIN1
DFC1
DFP1
NAND21
NAND41
NOR21
NOR40
OAI211
OAI311
Number
Number
Number
Number
References
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
c35_CORELIB
of
of
of
of
1
5
5
1
2
1
3
1
2
2
x
x
x
x
x
x
x
x
x
x
Total Area
91
36
309
309
55
91
55
73
73
91
ports :
nets :
instances :
references to this view :
Total accumulated area :
Number of um2 :
Number of accumulated instances :
91
182
1547
309
109
91
164
73
146
182
um2
um2
um2
um2
um2
um2
um2
um2
um2
um2
15
37
23
0
2894
23
http://www.mentor.com/products/fpga/synthesis/leonardo_spectrum/
M2 Génie Informatique
Laurence Pierre
61
Synthèse sur FPGA
!  FPGA (Field Programmable Gate Array)
•  Circuit qui peut être (re)programmé après sa
fabrication (génération d'un bitstream)
M2 Génie Informatique
Laurence Pierre
62
Synthèse sur FPGA
!  FPGA (Field Programmable Gate Array)
•  Ses blocs logiques configurables (CLBs) peuvent
avoir la forme suivante
La LUT (Look-Up Table), combinatoire, peut réaliser
n'importe quelle fonction booléenne.
Le flip-flop peut permettre de mémoriser 1 bit.
http://www-inst.eecs.berkeley.edu/~cs150/sp00/
M2 Génie Informatique
Laurence Pierre
63
Exemple pratique
!  Exemple avec Precision Synthesis :
http://www.mentor.com/products/fpga/synthesis/
M2 Génie Informatique
Laurence Pierre
64
Exemple pratique
!  Exemple avec Precision Synthesis :
***********************************************
Device Utilization for 2V40cs144
***********************************************
Resource
Used
Avail
Utilization
----------------------------------------------IOs
14
88
15.91%
Global Buffers
1
16
6.25%
Function Generators
12
512
2.34%
CLB Slices
6
256
2.34%
Dffs or Latches
6
776
0.77%
Block RAMs
0
4
0.00%
Block Multipliers
0
4
0.00%
Block Multiplier Dffs
0
144
0.00%
-----------------------------------------------
http://www.mentor.com/products/fpga/synthesis/
M2 Génie Informatique
Laurence Pierre
65
La synthèse est-elle correcte ?
!  On peut comparer les résultats de simulation
avant et après
synthèse (ou
comparer la
simulation avant
synthèse et
l'exécution sur
FPGA)
M2 Génie Informatique
Laurence Pierre
66
Téléchargement