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