Systèmes Embarquée_lpi.pdf

  • Uploaded by: Abdelkarim Meskaoui
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Systèmes Embarquée_lpi.pdf as PDF for free.

More details

  • Words: 5,876
  • Pages: 158
Systèmes Embarqués

Fatima.lakrami

[email protected] 1

Plan de travail 1 Partie théorique

Introduction Systèmes embarqués (Cours/TD)

2 Partie pratique Le langage VHDL TD/TP

2

2

Chapitre 1

3

Systèmes embarqués  Histoire Des Systèmes Embarqués  Architecture Des Systèmes Embarqués  Systèmes Électroniques Embarqués  Systèmes Informatiques Embarqués  Développement Des Systèmes Embarqués  Logiciels Embarqués (Java Embarqué, Linux Embarqué, Androïde) 4

Partie Pratique Langage VHDL : syntaxe, objets et instructions, structure d’un

programme) Modélisation à l’aide du langage VHDL

Simulation fonctionnelle et temporelle du code VHDL Implémentation du code VHDL. 5

Rappels Eléments de réponse

6

Processeur ? • Le processeur est l'élément central d'un système informatique : il interprète les instructions et traite les données d'un programme. Il a besoin de certains éléments externes pour fonctionner :



une horloge pour le cadencer (en général à quartz ou Boucle à verrouillage de phase (PLL : PhaseLocked Loop)) ;



de la mémoire pour stocker les variables durant l’exécution du programme (mémoire vive RAM) et le programme d’une mise sous tension à l’autre (mémoire morte ROM). Si l'on conçoit un système assigné à une tâche bien particulière (ce qui est généralement le cas des systèmes embarqués), le programme n'est pas amené à changer. Il peut donc être stocké dans une mémoire morte (ROM) ;



des périphériques (pour interagir avec le monde extérieur).

7

Processeur • C’'est le "cerveau" du microcontrôleur • Le processeur exécute les actions du programme en suivant l'algorithme • Le processeur va chercher et traiter les données des différents registres

• Opérations, écriture, transferts d'information • Le processeur modifie, traite les variables selon un algorithme • Le processeur est le corps central du microcontrôleur

•REMARQUE: le processeur à besoins d'une horloge pour ordonner ses actions

8

Mémoires du Processeur

9

Quelques réponses? • quelle est la différence entre un microprocesseur et un micro-

contrôleur ? • Un microprocesseur est un processeur dont tous les composants ont

été suffisamment miniaturisés pour être regroupés dans un unique boitier.

10

µc?

Architecture du microcontrôleur PIC 18F4455

• Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation) d'un système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul circuit intégré. Un microcontrôleur est donc un composant autonome, capable d'exécuter le programme contenu dans sa mémoire morte dès qu'il est mis sous tension. Selon les modèles et les conditions de fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques composants externes (quartz, quelques condensateurs, parfois une ROM), 11 mais ceci reste très limité.

Quelques réponses? • quelle est la différence entre le "risc" et le "cisc" ? • il existe deux familles de microprocesseurs / microcontrôleurs (micros). les micros CISC (complete instruction set computers) possèdent un grand nombre d'instructions (plusieurs dizaines, voir centaines) permettant de réaliser des opérations très variées. chaque instruction est exécutée en un certain nombre de cycles d'horloge, dépendant de l'instruction elle même, mais aussi (et surtout) du mode d'adressage utilisé. l'autre famille de micros, RISC (reduced instruction set computers) possède un nombre d'instructions bien plus faible (quelques dizaines au maximum) qui permettent de réaliser des opérations simples (opérations logiques, sommes, etc...). mais chaque instruction est exécutée en un seul cycle d'horloge. il en résulte une vitesse de calcul très supérieure à celle de la famille cisc. • les circuits tels que les x86, 68hc11 sont des circuits cisc, les microprocesseurs de mac, les pic, les processeurs alpha sont du type risc. 12

Architecture de Von Neumann Quelle est la différence entre une architecture de "Von Neumann" et de "Harvard" ?

Mémoire globale

La caractéristique de cette architecture est qu'elle ne possède qu'un système de bus. Un microprocesseur basé sur une structure Von Neumann stocke les programmes et les données dans la même zone mémoire. 13

Architecture de Harvard Quelle est la différence entre une architecture de "Von Neumann" et de "Harvard" ?

mémoire séparée •permet une exécution plus rapide des instructions. •Il n'y a aucun risque que le processeur écrire des données dans la mémoire programme et corrompe le programme. 14

Quelques réponses? • Quelle est la différence entre une architecture de "Von

Neumann" et de "Harvard" ? • Les x86, 68HC11, ont une architecture Von Neumann. Les Pic ont une architecture Harvard.

15

Les mémoires?

16

Mémoire cache La capacité, la vitesse et le coût des différents niveaux de mémoire varient grandement. Par exemple, en voici une illustration utilisant des équipements de 2013 (pour le processeur, un Intel Haswell Mobile a été utilisé1) : Registres de processeur : capacité = quelques milliers ; vitesse = un cycle du processeur ; Mémoire cache des microprocesseurs Niveau 0 (L0) mémoire des microcodes : capacité = 6 Ko2 ; Niveau 1 (L1) mémoire cache des instructions : capacité = 128 Ko ; vitesse maximale = 700 Go/seconde3 ; Niveau 1 (L1) mémoire cache de données : capacité = 128 Ko ; vitesse maximale = 700 Go/seconde3 ; Niveau 2 (L2) cache partagée (instructions et données) : capacité = 1 Mo ; vitesse maximale = 200 Go/seconde3 ; Niveau 3 (L3) cache partagée (instructions et données) : capacité = 6 Mo ; vitesse maximale 100 Go/seconde3 ; Niveau 4 (L4) cache partagée (instructions et données) : capacité = 128 Mo ; vitesse maximale = 40 Go/seconde3 ; Mémoire RAM de type DRAM : capacité = quelques Go ; vitesse maximale = 10 Go/seconde3 ; Disque dur : capacité = quelques To ; vitesse maximale pour un solid state drive = 600 Mo/seconde 4

17

Partie 1

18

1. 2. 3. 4. 5. 6.

Définition Domaines d'applications Histoire des systèmes embarqués Architecture des systèmes embarqués Systèmes électroniques et informatiques embarqués Développement de systèmes embarqués en Télécommunication Logiciels embarqués

7. -

8.

Java Embarqué Linux Embarqué Androïd

Applicatifs temps réel 19

Systèmes embarqués

20

Définition

21

• dépend principalement du point de vue par lequel on l’aborde. • PdV Soft: Système électronique contrôlé par un Système d’Exploitation temps réel. • PdV Hard: Système électronique indépendant à base de processeur spécialisé.

• PdV socio-économique: Système électronique simple offrant des services utiles et permettant un gain en temps et en argent.

22

Qu’est ce qu’un système embarqué? Défi 1 C ’est un système électronique et informatique autonome qui est dédié à une tâche particulière et contenue système dans un englobant. Il n’est « généralement programmable. » pas • Pas d’E/S standards • Matériel et application intimement liés • Logiciel enfoui … noyé dans le matériel … pas facilement discernable comme dans un PC. NB: Système Embarqué = Embedded System (on parle parfois de système enfoui)

23

Défi 2 Aussi? les systèmes embarqués sont constitués de puces électroniques sur les quelles fonctionnent des logiciels dédiés à l’exécution de fonctions spécifiques ; le tout étant destiné à être intégré dans des sous-ensembles, équipements, appareils et produits divers.

24

Intérieur d'un modem/routeur ADSL. Un exemple de système embarqué. Les parties numérotées incluent : le microprocesseur (4), la RAM (6), et la mémoire flash (7). 25

Les systèmes embarqués répondent généralement à des besoins particuliers !!

26

27

Domaines d'applications

28

On discerne 4 grandes familles de systèmes embarqués: General computing : application similaire à PC mais empaquetée différemment : Console de jeux, imprimante multifonctions, photocopieur, etc

Control systems : Systèmes temps réels, contrôle de moteurs automobile, contrôles d’éléments de navigation aérienne , etc  Signal processing : commande de moteurs, radar, sonar, analyse video, etc Communication network : téléphone, transmissions de données, wifi, Bluetooth , etc. 29

• Ils sont partout !!! Les domaines dans lesquels on trouve des systèmes embarqués sont de plus en plus nombreux : • transport : Automobile, Aéronautique (avionique), etc. • astronautique : fusée, satellite artificiel, sonde spatiale, etc. • militaire : missile • télécommunication : téléphonie, routeur, pare-feu, téléphone portable, GPS, etc. • électroménager : télévision, four à micro-ondes • impression : imprimante multifonctions, photocopieur, etc. • informatique : disque dur, Lecteur de disquette, etc. • multimédia : console de jeux vidéo, assistant personnel • guichet automatique bancaire (GAB) • équipement médical • automate programmable industriel • métrologie 30

• Ils sont partout !!!

31

Ils sont partout !!!

32

Exemple: Vanets

33

• Ils sont partout !!!

34

Histoire des systèmes embarqués

35

Histoire des systèmes embarqués • Années 60 : systèmes de guidage de missiles (militaires) • Années 70 : routeurs, guidage de fusées (Apollo), fabrication automatisée, chimie • Années 80 et 90 : large extension (transports, énergie, télécommunications, satellites, carte à puce, terminaux de paiement, etc.) • Années 2000 : croissance explosive (téléphones, électroménager, puces radio (RFID), réseaux de capteurs, voitures, trains, avions, équipements médicaux, …) 36

Architecture des systèmes embarqués

37

Architecture des systèmes embarqués Structure interne typique

Memory

Software

Sensors Communicati on Network

Processor(s)

A/D

µc, ASIC,FPGA,DSP

D/A Actuators

Other Hardware

Human Interface

Auxiliary Systems (power, package,…)

38

Architecture des SE • Software: Firmwares (Logiciels spécifiques partie ou entièrement- programmés dans ou encore des OS embarqués (Linux embarqué par exemple).

en le matériel)

• A/D, D/A • Capteur • Actionneur

• Communication at network • Human interface • Mémoire: Définitions 39

A/D

40

D/A

41

Unité d’acquisition

Capteurs

Unité de communication

42

Actuators

43

Human interface  L’interface utilisateur est spécifique : Ecran LCD, voyants, touches, clavier custom, Synthèse vocale, vibrerur, interface de commande.

44

Technologies de communication Sans Fil

Filaires

45

Caractéristiques de la mémoire

46

Les processeurs  Les entrées sorties du système sont spécifiques à l’application Le traitement d’information dans un système embarqué est numérique; il utilise en général :

un microcontroleur (µc), ou un ASIC, il exécute une application qui est spécifique.(ASIC=Application Specific Integrated Circuit,)  ou un FPGA (Field Programmable GateArray)  ou encore un DSP (Digital signal Processing)

A voir plus loin!!!!

47

Distribuée

48

Centralisée

49

50

Exemple: application 1) décrire le schéma bloc d’une souris de l’ordinateur (avec ou sans fil) selon le modèle présenté en avant) 2) Décrire le fonctionnement d’une chaine automatisée de production de l’énergie éolienne.

51

Souris

52

L'énergie éolienne

53

Systèmes électroniques et informatiques embarqués

54

Introduction L'électronique moderne se tourne de plus en plus vers le numérique: • grande insensibilité aux parasites et aux dérives diverses, • modularité et (re)configurabilité, • facilité de stockage de l'information etc. 55

Par contre? Les circuits numériques par contre :

• Nécessitent une architecture plus lourde? • leur mode de traitement de l'information met en oeuvre plus de fonctions élémentaires que l'analogique d'où découle des temps de traitement plus long. 56

Circuits logiques programmables

58

LES PLD

59

Plan • Fonction logique? • Matrice PLA • Applications

60

Fonction logique? • N'importe quelle fonction peut être codée par une somme de produit, par un produit de somme ou un mélange des deux. On peut immédiatement en déduire une structure de circuits, appelé matrice PLA (Programmable Logic Array). La figure suivante représente une matrice PLA à 4 entrées et 4 sorties :

61

Matrice PLA Chacune des 4 entrées et son complémentaire arrive sur une des 16 portes ET à 2x4=8 entrées. Afin de simplifier la représentation, les 8 lignes ont été représentées par une seule, chaque croix représentant une connexion programmable (un fusible par exemple). La figure suivante propose un principe de réalisation des fonctions de la matrice ET ; a mise au niveau logique 0 (NL0) d'une des entrées IX impose un NL0 en sortie :

et de la matrice OU, sur laquelle une entrée au NL1 impose un NL1 en sortie :

62

Mémoires

Lorsqu'une adresse est présentée, par exemple I1, I 2 I 3 I 4 la porte ET concernée passe au NL1 (celle du bas dans l’exemple) et suivant les fusibles laissés intacts sur la matrice OU, on a un mot différent 00010203 (0000 si tous les fusibles sont grillés par exemple), Ce principe utilisé pour les mémoires, l’est aussi dans les CPLD (Complex Programmable Logic Device), mais surtout dans les FPGA (Field Programmable Gate Array) sous le nom de LUT (Lock 63Up Table).

PROM

64

MÉMOIRES MORTES PROGRAMMABLES : PROM décodeur 4:16

A3

A2 A1 A0

m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0

=

65

D7

D6

D5

D4

D3

D2

D1

D0

Exemple :Décodeur A2

A1

A0

• Un décodeur active une sortie unique qui correspond à la valeur du code binaire en entrée. Décodeur 3:8

F7

F6 F5 A2 F4 A1

F3 A0 F2

F1

# 0 1 2 3 4 5 6 7

A 2 A 1 A 0 F7 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1

F6 0 0 0 0 0 0 1 0

F5 0 0 0 0 0 1 0 0

F4 0 0 0 0 1 0 0 0

F3 0 0 0 1 0 0 0 0

F2 0 0 1 0 0 0 0 0

F0

F1 0 1 0 0 0 0 0 0

F1

F0 1 0 0 0 0 0 0 0

F2

F3

F4

F5

F0 F6

F0 = m0 = A2’A1’A0’ F1 = m1 = A2’A1’A0 F2 = m2 = A2’A1A0’

66 F7

Exemple • Donner les fonctions logiques réalisées par cette mémoire PROM. décodeur 4:16

A3

A2 A1 A0

m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0

D7

D6

D5

D4

D3

D2

D1

67

D0

• Donner les fonctions logiques réalisées par cette mémoire PROM. décodeur 4:16

D7 = m13 + m9 = A3A2A1’A0 + A3A2’A1’A0 D2 = m12 + m8 + m4 + m0 = A1’A0’ A3A2 A1A0 00

D2

01

01

11

10

1

1

1

1

0

4

0 1

11

0

0

0

0

9

0 15

0 6

A0 8

13

7

A1

0

0

0 2

12

5

3

10

A2

00

0

A3

m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0

11

0 14

10

D7

D6

D5

D4

D3

D2

D1

68

D0

Multiplexeur Le multiplexeur permet également de coder une fonction combinatoire: A chaque valeur des entrées E0 et E1 est associé un niveau logique défini dans la table de vérité pour la sortie S. Ce niveau logique est imposé sur l'entrée de programmation correspondante.

Ce principe est utilisé dans les FPGA. 69

Technologie d'interconnexions L'un des éléments clé des circuits étudié est la connexion programmable: • la densité d'intégration • la rapidité de fonctionnement une fois le composant programmé, fonction de la résistance à l'état passant et des capacités parasites • la facilité de mise en œuvre (programmation sur site, reprogrammation etc) • la possibilité de maintien de l'information.

70

Connexions programmable une seule fois (OTP : One Time Programming) Cellules à fusible • Ce sont les premières à avoir été utilisées et elles ont aujourd'hui disparu au profit de technologies plus performantes. Leur principe consistait à détruire un fusible conducteur par passage d'un courant fourni par une tension supérieure à l'alimentation (12 à 25 V) OTP : One Time Programming

71

Connexions programmable une seule fois (OTP : One Time Programming) Cellules à antifusible • En appliquant une tension importante (16 V pendant 1 ms) à un isolant entre deux zones de semi-conducteur fortement dopées, ce dernier diffuse dans l'isolant et le rend conducteur. Chaque cellule occupe environ 1,8 µm2 (700 µm2 pour un fusible) ; cette technologie très en vogue permet une haute densité d'intégration. • Hormis la non reprogrammabilité, c'est la meilleure technologie (vitesse et surtout densité d'intégration). 72

Cellules reprogrammables Cellule à transistor MOS à grille flottante et EPROM (Erasable Programmable Read Only Mémory)

73

Processeurs

Circuit programmables

75

Processeurs

LES CIRCUITS PROGRAMMABLES PAL: Programmable Array Logic

Réseau Logique Programmable

P.A.L. signifie Programmable Array Logic, c'est à dire réseau logique programmable. La programmation de ces circuits s'effectue par destruction de fusibles . -

77

LES CIRCUITS LOGIQUES PROGRAMMABLES

EPLD EPLD:

Erasable Programmable Logic Device

Circuit Logique reprogrammable de grande capacité

Les P.A.L. effaçables: E.P.L.D. Les E.P.L.D. Ce qui signifie Erasable Programmable Logic Device, c'est à dire circuit logique programmable et effasçable et qui sont aux P.A.L. ce que sont les U.V.P.R.OM. aux P.R.O.M. Les E.P.L.D. peuvent être effacés par U.V. Ils sont encore appelés P.A.L. CMOS.

78

PAL/GAL GAL/SPLD: Generic Array Logic

Réseau Logique Reprogrammable Un GAL est un PAL effaçable électriquement Les G.A.L. Les G.A.L. Ce qui signifie Generic Array Logic ou encore réseau logique générique ce qui veut dire pas grand chose mais qui sont aux P.A.L. ce que sont les E.E.P.R.O.M aux P.R.O.M. Le nom de G.A.L. a été déposé par LATTICE SEMICONDUCTOR. Leur fonctionnement est identique aux P.A.L. CMOS, ils sont programmables et effaçables électriquement.

79

PAL/GAL GAL: Generic Array Logic

Réseau Logique Reprogrammable Un GAL est un PAL effaçable électriquement Les G.A.L. Les G.A.L. Ce qui signifie Generic Array Logic ou encore réseau logique générique ce qui veut dire pas grand chose mais qui sont aux P.A.L. ce que sont les E.E.P.R.O.M aux P.R.O.M. Le nom de G.A.L. a été déposé par LATTICE SEMICONDUCTOR. Leur fonctionnement est identique aux P.A.L. CMOS, ils sont programmables et effaçables électriquement. 80

PAL/GAL CPLD: Complex Programmable Logic Device Les CPLD Ils sont constitués de plusieurs GALs et ces GALS sont reliés entre eux à l ’aide d ’une matrice d ’interconnexion. sont des PLDs (donc des GALs) complexes . On peut les effacer et les reprogrammer. Ils sont réalisés en technologie CMOS.

81

LES CIRCUITS LOGIQUES PROGRAMMABLES FPGA :Forecasting Programmable Gate Array

Réseau de portes programmables à la demande Les FPGAs à la différence des PLDs . La puissance de ces circuits est telle qu’ils peuvent être composés de plusieurs milliers voire millions de portes logiques et de bascules. Les dernières générations de FPGA intègrent même de la mémoire vive (RAM). Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA. Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes) qui peuvent être interconnectés.

82

LES CIRCUITS LOGIQUES PROGRAMMABLES

FPGA

L’utilisateur réalise les interconnexions 83

FPGA vs CPLD

L ’avantage des CPLD (vis à vis des FPGAs) réside dans la matrice d’interconnexion qui permet d ’avoir un temps de propagation fixe et connu à l’avance. On peut les effacer et les reprogrammer. Ils sont réalisés en technologie CMOS.

84

ASIC

ASIC (Application Integrated Circuit) est un circuit intégré personnalisé. Il est généralement utilisé par une personne ou une entreprise pour un usage très limité. Donc, quand elle est développée, seule la personne ou l'entreprise qui la commande peut l'utiliser. Il n'est pas utile pour d'autres utilisations, par exemple, un circuit intégré conçu pour une ligne spécifique de téléphones cellulaires d'une entreprise. - ASIC est juste construit pour un et un seul client. - ASIC est utilisé uniquement dans une ligne de produits - Seule la production en volume d'ASIC pour un produit, sinon le coût n'est pas efficace. - Peut exploiter le parallélisme pour atteindre de hautes performances - Basse consommation énergétique

85

ASSP L'ASSP (Application Standard Standard Processor) est un circuit intégré qui met en œuvre une fonction spécifique qui fait appel à un large marché, ce qui signifie que sa fonction est spécifiée, par exemple, une puce d'entraînement du moteur. Mais il est largement utilisé, pas limité à un seul client comme le fait ASIC. Ainsi, les ASSP sont disponibles en tant que composants prêts à l'emploi, ce qui signifie que vous pouvez vous rendre dans les magasins d'électronique et simplement les acheter directement sur l'étagère. Cela signifie que les ASSP ont été bien développés et que vous pouvez simplement l'acheter sans le concevoir à partir de zéro. - Il aborde l'espace produit entre ASIC et les produits génériques à base de processeurs - Extrêmement utile pour les applications de volume faible à moyen car elle permet de réduire les coûts et les coûts de conception.

86

ASIP

ASIP (processeur d'instructions spécifique à l'application) est généralement utilisé dans SoC (System on a Chip). ASIP est une architecture comprenant deux parties qui sont un minimum ISA (Instruction Set Archietecture) et une logique configurable que vous pouvez utiliser pour concevoir votre propre jeu d'instructions. Il offre donc une flexibilité relativement élevée par rapport à l'ASIC et de meilleures performances par rapport au FPGA (Field Programmable Gate Array). En outre, il est moins cher que FPGA, mais légèrement plus cher que ASIC. - ASIP peut vous aider à construire votre propre jeu d'instructions pour répondre à vos besoins spécifiques. - Il fournit un ISA minimum, ce qui peut rendre TTM plus court (Time to Market).

87

Comparatifs

88

FPGA vs ASIC FPGA / ASIC Le choix entre FPGA ou ASIC, se fait en fonction du cahier des charges de l’application : temps de mise sur le marché et durée de vie courte => FPGA très petit nombre de circuits => FPGA optimisation des performances => ASIC grande série => ASIC

89

Programmation des PLDs 1) Cahier des charges. 2) Mise en équation. 3) Résolution du problème sous forme d'équation logique de logigramme ou d'algorithme. 4) Choix du PLD en fonction du nombre d'entrée(s) et de sortie(s). 5) Saisie des équations logiques, de la table de vérité, du logigramme ou de l'algorithme avec le logiciel. 6) Simplification logique. 7) Génération d'un fichier au format JEDEC. 8) Simulation. 9) Programmation du PLD à l'aide du fichier JEDEC et du programmateur. 10) PLD programmé.

90

Résumé

91

Supports de communication dans l’embarqué

92

Systèmes électroniques et informatiques embarqués

93

Systèmes électroniques et informatiques embarqués

94

Systèmes électroniques et informatiques embarqués

95

Systèmes électroniques et informatiques embarqués

96

Développement des SE

97

Développement des SE

Le développement de systèmes embarqués nécessite des connaissances à la fois en électronique et en informatique. Parmi le matériel nécessaire pour réaliser un système embarqué on trouve : •La documentation (datasheet) sur les composants utilisés. C'est la première source d'informations pour le développement ! •L'outillage de base de l'électronicien (fer à souder, insoleuse…) •Les outils d'analyse temporelle : oscilloscope, analyseur logique… •Des composants de base (résistances, condensateurs…) •Un microprocesseur ou un microcontrôleur •Un compilateur croisé (dit aussi en anglais cross-compiler) •Un programmateur de microcontrôleur ou un programmateur in-situ •Un émulateur in-circuit ou ICE (In Circuit Emulator). Cet équipement permet le débogage matériel et logiciel (possibilité de déverminer au niveau du source du logiciel), cependant il reste coûteux. •Une sonde JTAG. Peu coûteuse et très répandue, la sonde JTAG permet non seulement le débogage du logiciel in situ (lecture/modification de registres, mémoires, périphériques...) mais aussi la programmation de la mémoire FLASH des microcontrôleurs, que celle-ci soit interne ou externe comme dans le cas de certaines puces du fabricant NXP 1 •Ingénierie des systèmes: approche multidisciplinaire pour définir, développer et déployer des systèmes embarquant des technologies numériques.

98

Questions diverses

1) Que signifie flasher? 3) La réalisation des circuits électriques intégré? 4) Le rôle de la mémoire flash? 5) Différence entre ASIC /ASIP 6) Exemple d’utilisation de la DSP ? 7) Que signifie watchdog? 8) Conservation de l’énergie dans l’embarqué? 9) Comment mesurer l’efficacité d’un SE? 10) Les étapes d’exécution d’un programme (exemple C/C++) 11) Pourquoi JAVA est indépendante du HARD?

99

Programmation des circuit électroniques 1. 2. 3. 4. 5. 6.

Étapes de conception et fabrication Profile du client Identification des besoins du client Contraintes de fabrication ou d’utilisation Démarche systémique Sécurité en électronique

100

Flash ?? La mémoire flash est un type d'EEPROM qui permet la modification de plusieurs espaces mémoires en une seule opération. La mémoire flash est donc plus rapide lorsque le système doit écrire à plusieurs endroits en même temps. •La mémoire FLASH : Peu coûteuse cette mémoire sert à stocker les programmes à exécuter, c’est une mémoire qui perdure après arrêt de l’alimentation. Rapide, elle est donnée pour une capacité de 1 000 000 de cycles. L’atmega 328 en est doté de 32 kilos (d’où la référence 32..8)

101

Les processeurs

Différence entre ASIC et ASIP Les processeurs généralistes

Les processeurs spécialisés

FPG A

DSP

Motorol a

Intel

•ASIP = Application Specific Instruction set Processor •ASIC = Application Specific Integrated Circuit



microcontrôleurs : pas assez performants



ASIC : beaucoup trop coûteux, mise en oeuvre complexe et longue



ASIP : beaucoup trop coûteux, définition complexe



processeurs généralistes : pas temps réel, trop coûteux, consomment trop d’énergie, difficilement embarquables

Solution : Faire des processeurs spécifiques pour le traitement numérique du signal

DSP

102

DSP La mise en œuvre d’un DSP se fait en lui associant la mémoire (RAM,ROM) et les périphériques. Un DSP est le cœur d’un système de traitement numérique audio

103

Domaines d’applications TELECOMMUNICATIONS Modulation and Transmission, Démodulation and Réception, Compression, commutation, routage, DTMF, Encryptage, amélioration des signaux, annulation d'écho, multiplexage INSTRUMENTATION ET MESURE Transformée de Fourier rapide (FFT), Filtrage, synthèse de forme d'onde, filtrage adaptatif, calculs rapides ELECTRONIQUE MEDICALE Filtrage, annulation d'écho, FFT 2D et 3D, générateurs de signaux TRAITEMENT D'IMAGE Filtrage "spatial", FFT 2D et 3D, reconnaissance de forme, lissage, filtrage INDUSTRIE - CONTROLE DE MOTEURS Filtrage, FFT, PID, calculs rapides, réduction de bruit. TRAITEMENT DE LA PAROLE synthèse et reconnaissance vocale, Compression, lecture de texte, emails, sms, transposition d fréquence, Filtrage, enregistrement et playback

104

Conservation d’énergie • 1)Diminuer la tension d’alimentation 5->3,3->1,1 • 2) l’activation séparée • 3)Basculement des bits • 4)Choix du matériel /mémoires

• 5)Circuit reconfigurable=> éviter le problème de redimensionnement  FPGA • 6) Optimiser le code 105

Étapes d’exécution programme

106

JAVA? • C'est un des éléments les plus importants de la plate-forme Java. Elle assure l'indépendance du matériel et du système d'exploitation lors de l'exécution des applications Java.

• Une application Java ne s'exécute pas directement dans le système d'exploitation mais dans une machine virtuelle qui s'exécute dans le système d'exploitation et propose une couche d'abstraction entre l'application Java et ce système.

107

Exemples données dans ce cours 1) 2) 3) 4) 5) 6) 7) 8)

Carte mini ITX EPIA M-series Layout  Carte réseau IP2022  Carte Réseau µc MSP 430  Microcontroleur ARM7  Processeur DSP TMS 320C4X FPGA RaspberryPi Arduino

108

Réseau? • Les processeurs IP2012 ™ et IP2022 ™ d'Ubicom combinent un support pour la communication physique Couche, pile de protocole Internet, application spécifique au périphérique, Et des modules logiciels périphériques spécifiques au périphérique dans un Une seule puce, et sont reconfigurables sur Internet.

109

embarqués

Plateforme embarquée base IP2022 • Intègre une machine virtuelle JAVA • Un port Ethernet permettant une connexion avec Internet mais aussi un interfaçage possible avec d’autres équipements, elle inclut une interface RS 232 • Intègre TCP/IP, SMTP, HTTP, SNMP, Telnet • Encryption, sécurité, authentification

110

Systèmes électroniques et informatiques embarqués

µC MSP 430 un exemple de management de la consommation.

111

Systèmes électroniques et informatiques embarqués

112

Systèmes électroniques et informatiques embarqués DSP TMS320C4X

113

Systèmes électroniques et informatiques embarqués FPGA : Principaux fabriquants •XILINX • ACTEL

• ALTERA • LATTICE VANTIS • CYPRESS • AMD

114

Systèmes électroniques et informatiques embarqués

Carte Raspberry Pi Modèle B+ plus Carte SD 8 Go (classe 6) contenant le NOOBS (les principaux systèmes d'exploitation compatibles Raspberry Pi)

Le plus petit ordinateur du monde! 115

Systèmes électroniques et informatiques embarqués Arduino, c'est quoi ?

ARDUINO = 1 carte à microcontrôleur + 1 outil de développement + 1 communauté active Le logiciel et le matériel sont open-source. http://www.arduino.cc/

116

Systèmes électroniques et informatiques embarqués

Arduino en quelques chiffres :  Prix d'une carte Arduino uno = 300DH  Logiciel = 0 DH  Support et assistance = 0 DH (forums)

La « philosophie » L'idée est d'utiliser la carte Arduino comme un macro-composant dans des applications de prototypage électronique. Le concepteur n'a plus qu'à développer des interfaces et programmer le macro-composant pour réaliser son application ! 117

Développement de systèmes embarqués en Télécommunication

118

Développement de systèmes embarqués en Télécommunication

 Généralement, tout dispositif électronique et informatique autonome est qualifié de "système embarqué". Dans le domaine des Télécoms, on trouve à titre d’exemple, des "systèmes embarqués" dans les téléphones portables, les satellites et leurs équipements qui doivent être autonomes durant plusieurs années dans des conditions physiques particulières (température, expositiondirecte au rayonnement solaire...) et capables d'effectuer des mesures et de communiquer avec les stations terrestres.

Etude de cas: Lister (et/ou dessiner) les éléments d’un téléphone 119 portable et d’un satellite. Identifier leurs systèmes embarqués.

Développement de systèmes embarqués en Télécommunication

120

Logiciels embarqués

121

Logiciels embarqués Java Card • What is a Java Card? – SimpleAnswer: • Java + Card = Java Card !!

• Adoption of Java Platform for usage on Smart Cards A

smart card is a plastic card that contains an embedded integrated circuit (IC)

On retrouve les cartes à puce dans plusieurs domaines: • carte bancaire : Carte Bleue (France), MasterCard (USA) ; • carte d'assurance maladie : Vitale (France) ; • porte-monnaie électronique : Moneo (France) ; • carte étudiant ; • carte SIM. 122

Rappel :Architecture d'une Smart Card avec contact

• La carte est composée de 8 connecteurs selon la norme ISO 7816 représentée comme suit :  VCC : tension d'alimentation de la carte fournie par le lecteur ;  RST (Reset) ;  CLK : horloge ;

 GND (Ground) : masse ;  VPP : tension de programmation fournie par le lecteur (inutilisé aujourd'hui) ;  I/O : entrée/sortie des données ;  RFU (Reserved for Future Use) : connecter d'autres composants 123

LOGICIELS EMBARQUÉS Java Card communication via physical contact

communication via radio frequency signal

124

Logiciels embarqués Java Card

125

Java/JavaCard Pourquoi le JavaCard dans les cartes à puces ?  Langage de haut niveau orienté objet  Write Once, Run Anywhere  Plate-forme multi applicatives  Partage de données entre applications  Sécurité des données

126

JCVM

Card Exécutive

Java Card Virtual Machine JAVACARD

Architecture d’une JCVM ?

Off-Card

On-Card

Compilateur

Interpréteur

.class

Applet 1

Applet 2

Standard class libraries (API)

Virtual machine (Interpréteur) Native méthode

JCVM

CAP La virtual machine est totalement dépendante de la plateforme puisqu’elle permet 127 l’interprétation par le processeur des bytecodes.

Logiciels embarqués Java Card

128

Logiciels embarqués Java Card Echange de commandes avec le lecteur de carte à puce tel que défini dans l’ ISO 7816-4 La communication entre l’hôte et la carte est half-duplex. Elle se fait à l’aide de paquets appelés APDU (Application Protocol Data Units) en respectant le protocole de l’ISO 7816-4. Un APDU contient une commande ou une réponse. Le mode Maître/Esclave est utilisé. Ainsi la carte joue un rôle passif et attend une commande APDU à partir de l’hôte. Elle exécute l’instruction spécifiée dans la commande et retourne une réponse APDU.

129

Logiciels embarqués Java Card

130

Logiciels embarqués Java Card Développement d’une application Java Card sous Windows

JSR-000268 Java Smart Card I/O AP 131

Logiciels embarqués Java Card

132

LINUX EMBARQUE : LINUX POUR L ’EMBARQUE

133

LES SYSTEMES EMBARQUES ET LINUX

Pourquoi retrouve-t-on Linux dans l’embarqué ? Tout d’abord pour ses qualités qu’on lui reconnaît maintenant dans l’environnement plus standard du PC grand public : – Libre, disponible gratuitement au niveau source : pas de royalties à reverser. – Ouvert. – Différentes distributions proposées pour coller au mieux à un type d’application. – Stable et efficace. – Aide rapide en cas de problèmes par la communauté Internet des développeurs Linux. – Nombre de plus en plus important de logiciels disponibles. – Connectivité IP en standard. 134

LINUX EMBARQUE

Une version de Linux embarqué peut être spécialement configurée pour coller à une plateforme ou application précise : – Linux embarqué pour routeur IP. – Linux embarqué sur PDA. – Linux embarqué pour microcontrôleur sans MMU (Une unité de gestion mémoire (MMU pour memory management unit), parfois appelée unité de gestion de mémoire paginée (PMMU pour paged memory management unit), est un composant permettant de contrôler les accès qu'un processeur fait à la mémoire de l'ordinateur dans lequel il est placé.). – Linux embarqué sur processeur 80286 et inférieur. – ...

135

OUTILS POUR LINUX EMBARQUE

On utilise pour le développement sous Linux embarqué les outils traditionnels GNU : – (cross) compilateurs C/C++. C est préférable pour limiter la taille des exécutables. – IDE. – Debugger (GDB). – Simulateur.

136

LE CHOIX D ’UN PROCESSEUR POUR L ’EMBARQUE Besoin

Miniature

Taille RAM

<0,1 Mo

Taille ROM/FLASH Processeurs

Caractéristiques matérielles Exemples d’applications

Petit

Moyen

0,14 Mo 0,1-0,5 Mo 0,52 Mo DragonBall 68K Mcore ColdFire ARM MMU optionnelle

2-8 Mo

Caméra numérique PDA Téléphone

Haut de gamme 8-32 Mo

2-4 Mo 4-16 Mo FLASH FLASH MIPS Hitachi SH x86 PowerPC Ardoise Internet Carte unité centrale System on Chip (SoC) Routeur Décodeur Stockage en réseau Imprimante en réseau

PC embarqué 16-64 Mo

Embarqué haute disponibilité > x Mo

xx Mo

Go-To Pentium PowerPC

CompactPCI

Commutateur téléphonique Routeur haute performance Serveur central

Choix suivant puissance de calcul, taille mémoire... 137

Logiciels embarqués Linux Embarqué

Pourquoi retrouve-t-on Linux dans l’embarqué ?

138

Logiciels embarqués Linux Embarqué

139

Logiciels embarqués

Linux Embarqué

140

Logiciels embarqués Linux Embarqué

141

Logiciels embarqués Linux Embarqué

142

Logiciels embarqués Linux Embarqué

143

Logiciels embarqués Android •PDA et terminaux mobiles conçu par une startup rachetée par Google, et officiellement le 5 novembre 2007. types d'appareils possédant ce système

Android est un système d'exploitation open source utilisant le noyau Linux, pour smartphones, tablettes tactiles, Android, D'autres systemes d'exploitation existent, par exemple des téléviseurs, des radio-réveils ou des autoradios et même des voitures.

144

Logiciels embarqués Android

146

Logiciels embarqués Android

147

Logiciels embarqués

Android

148

Applicatifs temps réel En informatique, on parle d'un système temps réel lorsque ce système est capable de contrôler (ou piloter) un procédé physique à une vitesse adaptée à l'évolution du procédé contrôlé. Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat, autrement dit le système ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés. 149

Applicatifs temps réel

Les systèmes informatiques temps réel sont aujourd'hui présents dans de nombreux secteurs d'activités : • dans l'industrie de production par exemple, au travers des systèmes de contrôle de procédé (usines, centrales nucléaires), dans l'aéronautique au travers des systèmes de pilotage embarqués (avions, satellites), •

dans le secteur de la nouvelle économie au travers du besoin, toujours croissant, du traitement et de l'acheminement de l'information (vidéo, données, pilotage à distance, réalité virtuelle, etc.).

Le développement de systèmes temps réel nécessite donc que chacun des éléments du système soit lui-même temps réel, c’est-à- dire permettre de prendre en compte des contraintes temporelles. Un système d'exploitation conçu pour prendre en compte ces contraintes est appelé système d'exploitation temps réel. 150

APPLICATIFS TEMPS RÉEL

151

APPLICATIFS TEMPS RÉEL

152

APPLICATIFS TEMPS RÉEL

153

APPLICATIFS TEMPS RÉEL

154

APPLICATIFS TEMPS RÉEL

155

APPLICATIFS TEMPS RÉEL

156

APPLICATIFS TEMPS RÉEL

157

APPLICATIFS TEMPS RÉEL

158

Références 1. 2. 3. 4. 5. 6.

Serge Mazen. « Introduction aux systèmes embarqués » ENSIL 3ème ANNEE MECATRONIQUE Jérémie Guiochet «Vers une conception orientée objet des systèmes embarqués » Support de Cours ENSEEIHT– 3ème année AII Université Toulouse 3, LAAS-CNRS Jean-Francois Lalande « Développement sous Android » - ENSI BOURGES November 2012 - Version 2 Samuel Tardieu « Systèmes temps-réel embarqués » École Nationale Supérieure des Télécommunications Java embarqué : Yves Bossu, C. Nicolas, J.-B. Blanchet et A. Proust Editeur : Eyrolles Linux embarquéAuteur(s) : Pierre Ficheux Editeur : Eyrolles

159

More Documents from "Abdelkarim Meskaoui"

June 2020 12
June 2020 5