Conception de Systèmes Embarqués
B. HAJJI
ENSA, Université Mohammed Premier,
Oujda, Maroc
107/05/2012
Plan de l exposé
o Problématiques
o Qu est ce qu un système embarqué
o Domaines d application
o Contraintes des systèmes embarqués
o Méthodologie de conception
o Besoin en OS pour les systèmes embarqués
o Fondation d un système embarqué à base de
FPGA
o Conclusion & perspective
207/05/2012
Problématiques
o Complexité des systèmes embarqués
n Les systèmes numériques deviennent aujourd hui
de plus en plus complexes au niveau intégration
et fonctionnalités
n On est en mesure d intégrer tout dans un même
puce
n Ceci est en fait lié à la loi empirique de Moore:
pour une surface de silicium donnée, on double
le nombre de transistors intégrés tous les 2 ans
307/05/2012
Problématiques
o Les processeurs standards deviennent
incapables de répondre aux exigences de
ces systèmes
o Le choix d une architecture pour les
systèmes embarqués doit être un compromis
entre:
n Flexibilité
n Consommation réduite
n Performance
n Cout faible
n Rapidité de la consommation
407/05/2012
Problématiques
o Les fonctionnalités peuvent être implantées dans
des circuits spécifiques de types ASIC ou bien dans
les circuits logiques programmables de type FPGA
507/05/2012
Problématiques
q FPGA : Filed Programmable Gate Array
o Matrice de blocs logiques (ressources logiques)
programmables reliés par un réseau d interconnexions
aussi programmable
607/05/2012
Problématiques
q Les circuits logiques programmables FPGA
q Alternatives aux ASIC
q Niveaux d intégration et performances correctes
q Cout et temps de développement intéressant
707/05/2012
o Un système embarqué (Embedded system) peut être défini comme
un système électronique et informatique autonome, qui est dédié
à une tâche bien précise.
Ø Pas des entrées/sorties comme un clavier standard ou un écran d ordinateur
Ø Le système matériel et l application sont intimement liés et noyés dans le
matériel et ne sont pas facilement discernables comme dans le cas d un PC
q Un système embarqué n est pas un PC
q Un système embarqué est un système qui contient :
Ø Au mois un microprocesseur (ou un microcontrôleur)
Ø Un logiciel dédié à sa gestion
8
Qu est ce qu un SE
807/05/2012
q L utilisation des systèmes embarqués progresse au même rythme que les
microprocesseurs:
ü Processeurs de plus en plus rapides
ü Puissants
ü Bon marché
q Marché de l embarqué en 1999
9
L embarqué en quelques
chiffres
907/05/2012
q En 2004:
Ø 14 Milliards de processeurs pour l embarqué(microprocesseur,
microcontrôleur, DSP, etc)
Ø 260 millions de processeurs PC
q Moins de 2 % des processeurs vendus sont pour le marché du PC contre
98% pour l embarqué
q Pour les 98% autres processeurs vendu, on utilisera généralement un
autre système d exploitation.
10
L embarqué en quelques
chiffres
1007/05/2012
o Contrôle de processus industriels (chaine de
production, automates, )
o Transport
Ø Avionique (Atterrissage, décollage,.. )
Ø Trains, automobiles (ABS, Vitres,
consommation, voiture hybride)
Ø Contrôle de navigation
o Télécommunication
Ø Satellites
Ø GPS
Ø Téléphone mobile
Domaines d application
1107/05/2012
q Un distributeur de billets:
Ø reçoit des informations des touches et de l écran tactile, ainsi que de
la banque par liaison informatique
Ø décide de donner ou non des billets en fonction de l état du compte
Ø maintient un compteur du nombre de billets restant et donne
éventuellement des billets au porteur de la carte
q Une carte à puce:
Ø reçoit des informations du lecteur de cartes à puce
Ø décide de valider ou non le code secret envoyé par le lecteur
Ø maintient un compteur du nombre de tentatives infructueuses et peut
se bloquer
Domaines d application
1207/05/2012
Systèmes embarqués
typique
1307/05/2012
q Un système embarqué:
ü Réagit à des stimuli extérieurs
ü Prend des décisions en fonction de ces stimuli et de son état interne
ü Altère son état interne et agit de manière perceptible par l extérieur
en fonction des décisions prises
q Généralement soumis à :
ü Des contraintes temps réel
ü Des contraintes liées à la consommation d énergie, dissipation de
chaleur
q Peuvent être amenés à fonctionner dans des conditions extrêmes
(température, humidité, )
q Les aspects sécurité, fiabilité, tolérance aux fautes sont souvent cruciaux
14
Caractéristiques des
systèmes embarqués
1407/05/2012
o Comment concevoir un système embarqué
complexe efficacement?
o Réponse proposée:
Ø Ne pas réinventer la roue
o Implication
Ø Faire du développement modulaire
Problématique de conception
1507/04/2012
o Le concepteur d un système embarqué doit être pluridisciplinaire:
électronique, informatique, réseaux,
o Concevoir un système embarqué revient finalement à un exercice
d optimisation:
Ø Minimiser les coûts de production pour des fonctionnalités optimales
Un système embarqué doit être:
q Fiable et sécurisé
ü Le système doit toujours fonctionner correctement
§ sûreté à faible coût avec une redondance minimale
ü Sûreté de fonctionnement du logiciel
§ Système opérationnel même quand un composant
électronique lâche
Contraintes des systèmes
embarqués
1607/05/2012
o Faible consommation
Ø La consommation est un point critique pour les systèmes avec autonomie
(alimenté par des batteries)
Ø Une consommation excessives augmente le prix de revient du système
embarqué car il faut alors des batteries de forte capacité
o Coût très bas:
Ø Beaucoup de systèmes embarqués sont fabriqués en grande série et
doivent avoir des prix de revient extrêmement faibles
Ø Optimisation du prix de revient
o Robustesse aux chocs, à la température, à l humidité,
Ø Les systèmes n évolue pas dans un environnement contrôlé (évolutions
des caractéristiques des composants en fonction de l environnement)
Contraintes des systèmes
embarqués
1707/05/2012
o Temps de développement court:
Ø Dans un marché concurrentiel et de niches, il convient d avoir un système
opérationnel le plus rapidement possible pour être le premier sur le
marché.
o Packaging :
Ø Cohabiter dans un faible volume, électronique analogique, électronique
numérique et RF sans interface
Contraintes des systèmes
embarqués
1807/05/2012
Solutions classiques :
q Microcontrôleur:
Etat de l art
1907/05/2012
Pour
q très bon marché
qApprentissage rapide
qDéveloppement rapide
Contre
q Structure fixe
qExtensibilité difficile
qCode peu réutilisable
q FPGA:
q Les systèmes embarqués mettent naturellement en uvre des
processeurs et des systèmes numériques spécifiques
q Le développement des FPGAs actuelles accélère encore cette alliance
entre le logiciel et le matériel
q Ces circuits autorisent la conception de tout un système sur une puce
programmable (SoPC)
Etat de l art
2007/05/2012
Avantages des FPGA:
q Ils permettent l implantation d architectures numériques conséquentes
(plusieurs millions de portes logiques)
q IL peut y configurer une IP de processeur (softcore): Nios II, Microblaze,
etc
q Certains intègrent un c ur hard de processeur (ARM, PowerPC)
q Ils disposent de la plupart des contrôleurs de périphériques courants
(VGA, UART, CNA/CAN, )
q Ce sont des circuits versatiles, puissants, dont le contenu peut évoluer
Etat de l art
2107/05/2012
o Un processeur softcore est un processeur implémenté en
langage de description haut niveau(VHDL, Verilog, etc.) sur un
réseau logique reprogrammable comme un FPGA.
q Architecture flexible : Mise à jour
q Le code source peut être librement distribué et implanté dans n importe
quel circuit programmable FPGA
q Portabilité vers n importe quel circuit FPGA : indépendance vis-à-vis du
choix technologie
q Il est privilégie pour bénéficier des évolutions apportées en refaisant une
synthèse
Processeur Softcore
2207/05/2012
Définition
Pour quoi les softcores ?
Quelques exemples
de processeur Soft
2307/05/2012
open
sources
propriétaires
qNIOS (ALREA)
qPico blaze (XILINX)
qMicro blaze (XILINX)
qMico8 (Lattice)
qMico32 (Lattice)
qLEON (Gaisler Research)
24
Processeur Hardcore
o Description ciblée technologiquement
o Processeur performant
o Une puce
Par contre:
o Cher
o Solution propriétaire
o Non portable: impossible de changer de cible
07/05/2012
q les deux?.
ü Le matériel n offre pas la souplesse du logiciel
ü Le logiciel n offre pas la puissance du matériel
q Les systèmes embarqués concilient les deux:
ü Le processeur est très souvent le c ur du système
ü Les fonctions critiques sont confiées à des circuits spécialisés
ü Processeurs spécialisés (DSP, ASIP)
ü Architecture matérielles (décodeurs MP3, MPG2, etc)
q On assiste à une véritable fusion des deux paradigmes grâce aux FPGAs
modernes
Soft & Hard core
2507/05/2012
Face à des contraintes, le concepteur adopte les règles
suivants:
q Règles de bon sens:
ü Faire simple
ü Utiliser ce que l on a déjà au fait par d autre: Desing reuse
ü Utiliser de nouvelles méthodes de conception : Codesing
Ø Couplage fort entre le matériel et logiciel
ü Utiliser des technologies éprouvées qui ont fait leur preuve
Règles de conception
des systèmes embarqués
2607/05/2012
27
Co-design
q Les systèmes embarqués sont de plus en plus complexes Þ une méthodologie
rigoureuse de conception doit être maintenant mise ne uvre : Codesing
q Le codesign permet de concevoir en même temps à la fois le matériel et le
logiciel pour une fonctionnalité à implémenter.
ü L apparition des modules IP, circuits électroniques sous forme logicielle a
accentué l importance du co-design et du design reuse
07/05/2012
28
Co-design & FPGA
Cohabitation de deux ressources logicielle et matérielle sur une même
puce
q Le logiciel est utilisé pour sa flexibilité.
q Le matériel (FPGA et ASIC .) est utilisé pour ses performances
07/05/2012
Plates formes
SOC
(Systèmes sur
puce)
ASIC
PSOC
(Système sur puce
programmable)
SOPC
(Système sur une
puce
Programmable)
FPGA
29
Co-design
q Le codesign permet de repousser le plus loin possible dans la
conception du système les choix matériels à faire contrairement à
l approche classique où les choix matériels sont faits en premier lieu
q Conception Traditionnelle: Codesign
07/05/2012
HW SW SWHW
Réalisé par des ingénieurs
indépendants
Réalisé par des mêmes
ingénieurs
début
début
30
Codesign
q L utilisation des deux technologies nécessite un changement dans le
flot de conception:
ü Développement du CoDesing
q Traditionnellement , le choix de l architecture est fait, puis le logiciel
est développé pour coller à l architecture
q Le CoDesign consiste à dérouler l étape de conception sans
préalablement partitionner le problème en deux flots distincts
q Processus de conception du système: garder un niveau d abstraction
important le plus longtemps possible
q Système décomposé en sous-systèmes suivant une hiérarchie logique
Þ approche objet
q Si le design change, réutiliser une bonne partie Þ design reuse
q Ne pas jeter à la poubelle un précédent design et repartir « from
scratch »
q On doit pouvoir utiliser des outils de vérifications automatique
07/05/2012
31
Co-design
07/05/2012
32
Besoin en OS
q La logique programmée incluse dans les systèmes embarqués est de
plus en plus complexe
q Une approche logicielle de type super boucle (boucle infinie
+interruptions) devient trop sommaire pour gérer et maîtriser la
complexité
q Multitâches
q Abstraction du matériel
q Service haut niveau
q Maîtrise des contraintes temporelles (système Temps Réel).
q Développement de pilotes de périphérique (driver) simplifié pour
pouvoir avoir accès aux accélérateurs matériels
q Possibilité de communications réseau : pour un contrôle du système à
distance par exemple.
07/05/2012
contraintes
Solutions offerts par l OS
33
Linux en embarqué
q Logiciel Libre, disponible gratuitement au niveau source
q Fiabilité reconnu du système
q Portabilité sur différentes plateformes matérielles
q système d exploitation multitâche
q système de fichiers disponible
q connectivité TCP/IP en standard
q Possibilité du Temps Réel
07/05/2012
Pour quoi Linux embarqué
34
Quelques Systèmes embarqués
Basées sur Linux
q MontaVista Linux
q BlueCat Linux(LynuxWorks)
q Clinux (open source)
q RTLinux (open source)
q ELDK(Embedded Linux Development Toolkit) maintenue par la société
Allemande
o Denx Software
o Etc...
07/05/2012
35
Cahier de charges
07/05/2012
36
Outils d Altera
07/05/2012
37
Outils Matériels
07/05/2012
ØCarte de développement DE2_70
38
Outils Logiciels
07/05/2012
39
Phase de conception d un système embarqué
à base de Nios II
q Partie1: Hardward (matérielle)
q Partie II: Software (logicielle)
q Partie I: Dans cette partie, nous allons essayer de décrire étape par
étape l implémentation d un SoPC à base du processeur NIOS II:
07/05/2012
40
Phase de conception d un système embarqué
à base de Nios II
q Partie I: Dans cette partie, nous allons essayer de décrire étape par
étape l implémentation d un SoPC à base du processeur NIOS II:
ü Processeur Softcore Nios II
ü Mémoires : 32 Mo SDRAM; 8Mo de mémoire FLASH
ü JTAG UART:
Protocole récent très utilisé dans le monde des systèmes
embarqués. Il est surtout utilisé pour le débogage et le test
d une carte numérique.
ü PIO: Leds, boutons poussoirs, afficheur s 7 segments, afficheurs
LCD de la carte cibles
ü Bus Avalon
ü Tiemers:
Sont des compteurs qui permettent de mesurer le temps et de
compter des événements qui arrivent (sur un pin par
exemple, etc.)
07/05/2012
41
Caractéristique du Nios II
q C est un microprocesseur 32 bits de type RISC (Remarque : Le NIOS I
étant 16 bits)
q Ces instructions machines sont de 32 bits
q Pouvant avoir de 1 à 6 étages de pipelining
q Pouvant travailler jusqu à une fréquence de 200 MHz
q Possède 32 registres d usage général et 6 registres d usage particulier,
tous les registres sont 32 bits
q Possibilité d intégré un multiplieur&diviseur hardware
q L ensemble consomme dans le FPGA en fonction des options choisi de
26.000 à 72.000 portes (notons que le FPGA sur la carte DE2-70
contient 68416
07/05/2012
42
Les 3 versions du processeurs Nios II
q Lors de la configuration du processeur Nios II avec l outil SoPC
Builder, il est possible de choisir entre 3 versions du processeur II:
ü Une première version Economy qui utilise moins de surface de
silicium du composant FPGA
ü Une deuxième version Standard qui permet un compromis entre
surface et rapidité
ü Enfin une dernière version Fast est la plus rapide des deux autres
versions
07/05/2012
43
PLL
q La SDRAM travaille avec un front descendant d horloge alors que le
NIOS II travaille en front montant. Pour les synchroniser de façon stable
on utilise une PLL numérique.
07/05/2012
44
Etapes de conception d un système embarqué
à base de Nios II
q Etape 1 : créer le projet en utilisant le logiciel Quartus. Dans cette
partie on choisi la référence de l FPGA utilisé, le répertoire où on
mettra notre projet et bien sûr lui donner un nom
q Etape 2: Puisque nous allons travailler en mode schématique, nous
allons commencer par créer ce fichier en cliquant sur le menu « file »
puis « news » et dans la fenêtre qui s ouvre nous choisissons
«Block Diagramm/Schematic File »
07/05/2012
45
Etapes de conception d un système embarqué
à base de Nios II
q Etape 3: ouverture de SOPC Builder
o Après avoir créé le fichier schematic, nous ouvrons SOCP Builder dans
le menu « tools » puis « sopc builder ». Dans la fenêtre qui s ouvre,
nous donnons un nom à notre système SOPC puis nous choisissons un
langage entre Verilog ou VHDL, dans notre cas nous allons choisir
VHDL. Et enfin on valide par « OK »
07/05/2012
46
Etapes de conception d un système embarqué
à base de Nios II
q Etape 4: Ajout du microprocesseur NIOS II
o Il est logique de commencer par ajouter le microprocesseur NIOS II
puisqu il est la base de tout le système. Pour cela on clique sur le
signe « + » où c est écrit « processors » puis on clique deux fois sur
« NIOS II Processor ».
07/05/2012
47
Etapes de conception d un système embarqué
à base de Nios II
q Etape 5: Ajout de SDRAM de 32 Mo
q Dans « Component Library » la partie gauche de SOPC Builder, on
clique sur « Memories and Memory controllers » puis « SDRAM»
en enfin deux fois sur « SDRAM Controller ».
o
07/05/2012
48
Etapes de conception d un système embarqué
à base de Nios II
q Etape 6: Ajout de Timer
§ Sont des compteurs
q Dans « Peripherals » puis « Microcontroller Peripherals » et on
clique deux fois sur « Interval Timer ».
07/05/2012
49
Etapes de conception d un système embarqué
à base de Nios II
q Etape 7: Ajout JTAG UART
§ Protocole utilisé pour le débogage et le test d une carte numérique
q Dans « Interface Protocols» puis « Serial » on clique deux fois sur
« JTAG UART »
07/05/2012
50
Etapes de conception d un système embarqué
à base de Nios II
q Etape 8: Ajout BUS Avalon
§ Bus de communication entre le Nios II et ses périphériques
q Dans « Bridge and Adapters » puis « Memory Mapped » ensuite
on clique deux fois sur « Avalon MM Tristate Bridge ».
07/05/2012
51
Etapes de conception d un système embarqué
à base de Nios II
q Etape 9: Ajout de mémoire Flash
q Dans « Memories and Memory Controller », « Flash » puis deux fois
sur « Flash Memory Interface (CFI) ».
07/05/2012
52
Etapes de conception d un système embarqué
à base de Nios II
q Etape 10: Ajout de PIO
§ Les PIO sont les interfaces d entrée/sortie parallèle, ex : Led,
Switch, etc
q Dans « Peripherals » puis « Microcontroller Peripherals » et on
clique deux fois sur « PIO Parallel IO ».
07/05/2012
53
Etapes de conception d un système embarqué
à base de Nios II
q Etape 11: Finalisation du microprocesseur NIOS II
q A ce stage le microprocesseur NIOS n est pas encore complètement
terminé et n est donc pas encore opérationnel. En effet nous devons
encore choisir dans la quelle des mémoires installées seront placé le
programme
q On clique deux fois sur le NIOS Installé dans SOPC Builder, puis dans
« Reset Vector » et « exception Vector » on choisi la mémoire.
Dans notre cas nous avons pris la SDRAM, généralement on choisi
entre ce dernier ou le SRAM.
07/05/2012
54
Système final obtenu dans SOPC BUILDER
07/05/2012
55
Système final obtenu dans SOPC BUILDER
07/05/2012
56
Partie II : Logiciel
q Outil de développement des logiciels pour le NIOS est le NIOS IDE,
q Le NIOS IDE permet de programmer avec trois langages qui sont le C,
le C++ et l assembleur NIOS II.
q Etape 1 : création d un projet
q Menu « File » ensuite « News » et puis « Project ». Et la fenêtre
suivante apparaît et on choisit « NIOS II C/C++ Application » puis
« Next ».
07/05/2012
57
Partie II : Logiciel
q Fichier : Typr .ptf
q Après avoir créé le projet nous avons normalement un répertoire
nommé « altera.component » et deux autres répertoires dans la
partie gauche de NIOS IDE, nous allons nous intéressé plus sur ces
deux derniers.
07/05/2012
58
Partie II : Logiciel
q Ecriture et compilation du premier programme
q Pour créer notre premier programme, on clique droite sur le répertoire
qui a le même nom que notre projet puis « new » ensuite « C source
file » :
q Extension du fichier:
q « .c » si on veut programmer en langage C
q « .cpp » si on veut programmer en C++
07/05/2012
59
Partie II : Logiciel
q Après l écriture on passe à la compilation:
q Menu « Project » ensuite « Build All » et la compilation commence
mais ça prend beaucoup de temps parce qu au début le logiciel doit
aussi compiler les libraries.
q Chargement du programme dans le NIOS II
Ø Avant d envoyer le programme soft, il faut tout d abord envoyer le matériel dans le
FPGA avec Quartus. Une fois cela fait et si la compilation du chapitre précédent s est
déroulée sans erreur on peut envoyer le programme dans le NIOS.
Ø On clique droite sur le répertoire qui a le même nom que le projet ( ce qu on a parlé dans
le chapitre précédent), puis on clique sur « Run As » et enfin sur « NIOS II
Hardware ».
Ø Maintenant le programme tourne dans le NIOS de l FPGA
07/05/2012
Merci de votre attention
606017/04/2012

Systeme embarque

  • 1.
    Conception de SystèmesEmbarqués B. HAJJI ENSA, Université Mohammed Premier, Oujda, Maroc 107/05/2012
  • 2.
    Plan de lexposé o Problématiques o Qu est ce qu un système embarqué o Domaines d application o Contraintes des systèmes embarqués o Méthodologie de conception o Besoin en OS pour les systèmes embarqués o Fondation d un système embarqué à base de FPGA o Conclusion & perspective 207/05/2012
  • 3.
    Problématiques o Complexité dessystèmes embarqués n Les systèmes numériques deviennent aujourd hui de plus en plus complexes au niveau intégration et fonctionnalités n On est en mesure d intégrer tout dans un même puce n Ceci est en fait lié à la loi empirique de Moore: pour une surface de silicium donnée, on double le nombre de transistors intégrés tous les 2 ans 307/05/2012
  • 4.
    Problématiques o Les processeursstandards deviennent incapables de répondre aux exigences de ces systèmes o Le choix d une architecture pour les systèmes embarqués doit être un compromis entre: n Flexibilité n Consommation réduite n Performance n Cout faible n Rapidité de la consommation 407/05/2012
  • 5.
    Problématiques o Les fonctionnalitéspeuvent être implantées dans des circuits spécifiques de types ASIC ou bien dans les circuits logiques programmables de type FPGA 507/05/2012
  • 6.
    Problématiques q FPGA :Filed Programmable Gate Array o Matrice de blocs logiques (ressources logiques) programmables reliés par un réseau d interconnexions aussi programmable 607/05/2012
  • 7.
    Problématiques q Les circuitslogiques programmables FPGA q Alternatives aux ASIC q Niveaux d intégration et performances correctes q Cout et temps de développement intéressant 707/05/2012
  • 8.
    o Un systèmeembarqué (Embedded system) peut être défini comme un système électronique et informatique autonome, qui est dédié à une tâche bien précise. Ø Pas des entrées/sorties comme un clavier standard ou un écran d ordinateur Ø Le système matériel et l application sont intimement liés et noyés dans le matériel et ne sont pas facilement discernables comme dans le cas d un PC q Un système embarqué n est pas un PC q Un système embarqué est un système qui contient : Ø Au mois un microprocesseur (ou un microcontrôleur) Ø Un logiciel dédié à sa gestion 8 Qu est ce qu un SE 807/05/2012
  • 9.
    q L utilisationdes systèmes embarqués progresse au même rythme que les microprocesseurs: ü Processeurs de plus en plus rapides ü Puissants ü Bon marché q Marché de l embarqué en 1999 9 L embarqué en quelques chiffres 907/05/2012
  • 10.
    q En 2004: Ø14 Milliards de processeurs pour l embarqué(microprocesseur, microcontrôleur, DSP, etc) Ø 260 millions de processeurs PC q Moins de 2 % des processeurs vendus sont pour le marché du PC contre 98% pour l embarqué q Pour les 98% autres processeurs vendu, on utilisera généralement un autre système d exploitation. 10 L embarqué en quelques chiffres 1007/05/2012
  • 11.
    o Contrôle deprocessus industriels (chaine de production, automates, ) o Transport Ø Avionique (Atterrissage, décollage,.. ) Ø Trains, automobiles (ABS, Vitres, consommation, voiture hybride) Ø Contrôle de navigation o Télécommunication Ø Satellites Ø GPS Ø Téléphone mobile Domaines d application 1107/05/2012
  • 12.
    q Un distributeurde billets: Ø reçoit des informations des touches et de l écran tactile, ainsi que de la banque par liaison informatique Ø décide de donner ou non des billets en fonction de l état du compte Ø maintient un compteur du nombre de billets restant et donne éventuellement des billets au porteur de la carte q Une carte à puce: Ø reçoit des informations du lecteur de cartes à puce Ø décide de valider ou non le code secret envoyé par le lecteur Ø maintient un compteur du nombre de tentatives infructueuses et peut se bloquer Domaines d application 1207/05/2012
  • 13.
  • 14.
    q Un systèmeembarqué: ü Réagit à des stimuli extérieurs ü Prend des décisions en fonction de ces stimuli et de son état interne ü Altère son état interne et agit de manière perceptible par l extérieur en fonction des décisions prises q Généralement soumis à : ü Des contraintes temps réel ü Des contraintes liées à la consommation d énergie, dissipation de chaleur q Peuvent être amenés à fonctionner dans des conditions extrêmes (température, humidité, ) q Les aspects sécurité, fiabilité, tolérance aux fautes sont souvent cruciaux 14 Caractéristiques des systèmes embarqués 1407/05/2012
  • 15.
    o Comment concevoirun système embarqué complexe efficacement? o Réponse proposée: Ø Ne pas réinventer la roue o Implication Ø Faire du développement modulaire Problématique de conception 1507/04/2012
  • 16.
    o Le concepteurd un système embarqué doit être pluridisciplinaire: électronique, informatique, réseaux, o Concevoir un système embarqué revient finalement à un exercice d optimisation: Ø Minimiser les coûts de production pour des fonctionnalités optimales Un système embarqué doit être: q Fiable et sécurisé ü Le système doit toujours fonctionner correctement § sûreté à faible coût avec une redondance minimale ü Sûreté de fonctionnement du logiciel § Système opérationnel même quand un composant électronique lâche Contraintes des systèmes embarqués 1607/05/2012
  • 17.
    o Faible consommation ØLa consommation est un point critique pour les systèmes avec autonomie (alimenté par des batteries) Ø Une consommation excessives augmente le prix de revient du système embarqué car il faut alors des batteries de forte capacité o Coût très bas: Ø Beaucoup de systèmes embarqués sont fabriqués en grande série et doivent avoir des prix de revient extrêmement faibles Ø Optimisation du prix de revient o Robustesse aux chocs, à la température, à l humidité, Ø Les systèmes n évolue pas dans un environnement contrôlé (évolutions des caractéristiques des composants en fonction de l environnement) Contraintes des systèmes embarqués 1707/05/2012
  • 18.
    o Temps dedéveloppement court: Ø Dans un marché concurrentiel et de niches, il convient d avoir un système opérationnel le plus rapidement possible pour être le premier sur le marché. o Packaging : Ø Cohabiter dans un faible volume, électronique analogique, électronique numérique et RF sans interface Contraintes des systèmes embarqués 1807/05/2012
  • 19.
    Solutions classiques : qMicrocontrôleur: Etat de l art 1907/05/2012 Pour q très bon marché qApprentissage rapide qDéveloppement rapide Contre q Structure fixe qExtensibilité difficile qCode peu réutilisable
  • 20.
    q FPGA: q Lessystèmes embarqués mettent naturellement en uvre des processeurs et des systèmes numériques spécifiques q Le développement des FPGAs actuelles accélère encore cette alliance entre le logiciel et le matériel q Ces circuits autorisent la conception de tout un système sur une puce programmable (SoPC) Etat de l art 2007/05/2012
  • 21.
    Avantages des FPGA: qIls permettent l implantation d architectures numériques conséquentes (plusieurs millions de portes logiques) q IL peut y configurer une IP de processeur (softcore): Nios II, Microblaze, etc q Certains intègrent un c ur hard de processeur (ARM, PowerPC) q Ils disposent de la plupart des contrôleurs de périphériques courants (VGA, UART, CNA/CAN, ) q Ce sont des circuits versatiles, puissants, dont le contenu peut évoluer Etat de l art 2107/05/2012
  • 22.
    o Un processeursoftcore est un processeur implémenté en langage de description haut niveau(VHDL, Verilog, etc.) sur un réseau logique reprogrammable comme un FPGA. q Architecture flexible : Mise à jour q Le code source peut être librement distribué et implanté dans n importe quel circuit programmable FPGA q Portabilité vers n importe quel circuit FPGA : indépendance vis-à-vis du choix technologie q Il est privilégie pour bénéficier des évolutions apportées en refaisant une synthèse Processeur Softcore 2207/05/2012 Définition Pour quoi les softcores ?
  • 23.
    Quelques exemples de processeurSoft 2307/05/2012 open sources propriétaires qNIOS (ALREA) qPico blaze (XILINX) qMicro blaze (XILINX) qMico8 (Lattice) qMico32 (Lattice) qLEON (Gaisler Research)
  • 24.
    24 Processeur Hardcore o Descriptionciblée technologiquement o Processeur performant o Une puce Par contre: o Cher o Solution propriétaire o Non portable: impossible de changer de cible 07/05/2012
  • 25.
    q les deux?. üLe matériel n offre pas la souplesse du logiciel ü Le logiciel n offre pas la puissance du matériel q Les systèmes embarqués concilient les deux: ü Le processeur est très souvent le c ur du système ü Les fonctions critiques sont confiées à des circuits spécialisés ü Processeurs spécialisés (DSP, ASIP) ü Architecture matérielles (décodeurs MP3, MPG2, etc) q On assiste à une véritable fusion des deux paradigmes grâce aux FPGAs modernes Soft & Hard core 2507/05/2012
  • 26.
    Face à descontraintes, le concepteur adopte les règles suivants: q Règles de bon sens: ü Faire simple ü Utiliser ce que l on a déjà au fait par d autre: Desing reuse ü Utiliser de nouvelles méthodes de conception : Codesing Ø Couplage fort entre le matériel et logiciel ü Utiliser des technologies éprouvées qui ont fait leur preuve Règles de conception des systèmes embarqués 2607/05/2012
  • 27.
    27 Co-design q Les systèmesembarqués sont de plus en plus complexes Þ une méthodologie rigoureuse de conception doit être maintenant mise ne uvre : Codesing q Le codesign permet de concevoir en même temps à la fois le matériel et le logiciel pour une fonctionnalité à implémenter. ü L apparition des modules IP, circuits électroniques sous forme logicielle a accentué l importance du co-design et du design reuse 07/05/2012
  • 28.
    28 Co-design & FPGA Cohabitationde deux ressources logicielle et matérielle sur une même puce q Le logiciel est utilisé pour sa flexibilité. q Le matériel (FPGA et ASIC .) est utilisé pour ses performances 07/05/2012 Plates formes SOC (Systèmes sur puce) ASIC PSOC (Système sur puce programmable) SOPC (Système sur une puce Programmable) FPGA
  • 29.
    29 Co-design q Le codesignpermet de repousser le plus loin possible dans la conception du système les choix matériels à faire contrairement à l approche classique où les choix matériels sont faits en premier lieu q Conception Traditionnelle: Codesign 07/05/2012 HW SW SWHW Réalisé par des ingénieurs indépendants Réalisé par des mêmes ingénieurs début début
  • 30.
    30 Codesign q L utilisationdes deux technologies nécessite un changement dans le flot de conception: ü Développement du CoDesing q Traditionnellement , le choix de l architecture est fait, puis le logiciel est développé pour coller à l architecture q Le CoDesign consiste à dérouler l étape de conception sans préalablement partitionner le problème en deux flots distincts q Processus de conception du système: garder un niveau d abstraction important le plus longtemps possible q Système décomposé en sous-systèmes suivant une hiérarchie logique Þ approche objet q Si le design change, réutiliser une bonne partie Þ design reuse q Ne pas jeter à la poubelle un précédent design et repartir « from scratch » q On doit pouvoir utiliser des outils de vérifications automatique 07/05/2012
  • 31.
  • 32.
    32 Besoin en OS qLa logique programmée incluse dans les systèmes embarqués est de plus en plus complexe q Une approche logicielle de type super boucle (boucle infinie +interruptions) devient trop sommaire pour gérer et maîtriser la complexité q Multitâches q Abstraction du matériel q Service haut niveau q Maîtrise des contraintes temporelles (système Temps Réel). q Développement de pilotes de périphérique (driver) simplifié pour pouvoir avoir accès aux accélérateurs matériels q Possibilité de communications réseau : pour un contrôle du système à distance par exemple. 07/05/2012 contraintes Solutions offerts par l OS
  • 33.
    33 Linux en embarqué qLogiciel Libre, disponible gratuitement au niveau source q Fiabilité reconnu du système q Portabilité sur différentes plateformes matérielles q système d exploitation multitâche q système de fichiers disponible q connectivité TCP/IP en standard q Possibilité du Temps Réel 07/05/2012 Pour quoi Linux embarqué
  • 34.
    34 Quelques Systèmes embarqués Baséessur Linux q MontaVista Linux q BlueCat Linux(LynuxWorks) q Clinux (open source) q RTLinux (open source) q ELDK(Embedded Linux Development Toolkit) maintenue par la société Allemande o Denx Software o Etc... 07/05/2012
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
    39 Phase de conceptiond un système embarqué à base de Nios II q Partie1: Hardward (matérielle) q Partie II: Software (logicielle) q Partie I: Dans cette partie, nous allons essayer de décrire étape par étape l implémentation d un SoPC à base du processeur NIOS II: 07/05/2012
  • 40.
    40 Phase de conceptiond un système embarqué à base de Nios II q Partie I: Dans cette partie, nous allons essayer de décrire étape par étape l implémentation d un SoPC à base du processeur NIOS II: ü Processeur Softcore Nios II ü Mémoires : 32 Mo SDRAM; 8Mo de mémoire FLASH ü JTAG UART: Protocole récent très utilisé dans le monde des systèmes embarqués. Il est surtout utilisé pour le débogage et le test d une carte numérique. ü PIO: Leds, boutons poussoirs, afficheur s 7 segments, afficheurs LCD de la carte cibles ü Bus Avalon ü Tiemers: Sont des compteurs qui permettent de mesurer le temps et de compter des événements qui arrivent (sur un pin par exemple, etc.) 07/05/2012
  • 41.
    41 Caractéristique du NiosII q C est un microprocesseur 32 bits de type RISC (Remarque : Le NIOS I étant 16 bits) q Ces instructions machines sont de 32 bits q Pouvant avoir de 1 à 6 étages de pipelining q Pouvant travailler jusqu à une fréquence de 200 MHz q Possède 32 registres d usage général et 6 registres d usage particulier, tous les registres sont 32 bits q Possibilité d intégré un multiplieur&diviseur hardware q L ensemble consomme dans le FPGA en fonction des options choisi de 26.000 à 72.000 portes (notons que le FPGA sur la carte DE2-70 contient 68416 07/05/2012
  • 42.
    42 Les 3 versionsdu processeurs Nios II q Lors de la configuration du processeur Nios II avec l outil SoPC Builder, il est possible de choisir entre 3 versions du processeur II: ü Une première version Economy qui utilise moins de surface de silicium du composant FPGA ü Une deuxième version Standard qui permet un compromis entre surface et rapidité ü Enfin une dernière version Fast est la plus rapide des deux autres versions 07/05/2012
  • 43.
    43 PLL q La SDRAMtravaille avec un front descendant d horloge alors que le NIOS II travaille en front montant. Pour les synchroniser de façon stable on utilise une PLL numérique. 07/05/2012
  • 44.
    44 Etapes de conceptiond un système embarqué à base de Nios II q Etape 1 : créer le projet en utilisant le logiciel Quartus. Dans cette partie on choisi la référence de l FPGA utilisé, le répertoire où on mettra notre projet et bien sûr lui donner un nom q Etape 2: Puisque nous allons travailler en mode schématique, nous allons commencer par créer ce fichier en cliquant sur le menu « file » puis « news » et dans la fenêtre qui s ouvre nous choisissons «Block Diagramm/Schematic File » 07/05/2012
  • 45.
    45 Etapes de conceptiond un système embarqué à base de Nios II q Etape 3: ouverture de SOPC Builder o Après avoir créé le fichier schematic, nous ouvrons SOCP Builder dans le menu « tools » puis « sopc builder ». Dans la fenêtre qui s ouvre, nous donnons un nom à notre système SOPC puis nous choisissons un langage entre Verilog ou VHDL, dans notre cas nous allons choisir VHDL. Et enfin on valide par « OK » 07/05/2012
  • 46.
    46 Etapes de conceptiond un système embarqué à base de Nios II q Etape 4: Ajout du microprocesseur NIOS II o Il est logique de commencer par ajouter le microprocesseur NIOS II puisqu il est la base de tout le système. Pour cela on clique sur le signe « + » où c est écrit « processors » puis on clique deux fois sur « NIOS II Processor ». 07/05/2012
  • 47.
    47 Etapes de conceptiond un système embarqué à base de Nios II q Etape 5: Ajout de SDRAM de 32 Mo q Dans « Component Library » la partie gauche de SOPC Builder, on clique sur « Memories and Memory controllers » puis « SDRAM» en enfin deux fois sur « SDRAM Controller ». o 07/05/2012
  • 48.
    48 Etapes de conceptiond un système embarqué à base de Nios II q Etape 6: Ajout de Timer § Sont des compteurs q Dans « Peripherals » puis « Microcontroller Peripherals » et on clique deux fois sur « Interval Timer ». 07/05/2012
  • 49.
    49 Etapes de conceptiond un système embarqué à base de Nios II q Etape 7: Ajout JTAG UART § Protocole utilisé pour le débogage et le test d une carte numérique q Dans « Interface Protocols» puis « Serial » on clique deux fois sur « JTAG UART » 07/05/2012
  • 50.
    50 Etapes de conceptiond un système embarqué à base de Nios II q Etape 8: Ajout BUS Avalon § Bus de communication entre le Nios II et ses périphériques q Dans « Bridge and Adapters » puis « Memory Mapped » ensuite on clique deux fois sur « Avalon MM Tristate Bridge ». 07/05/2012
  • 51.
    51 Etapes de conceptiond un système embarqué à base de Nios II q Etape 9: Ajout de mémoire Flash q Dans « Memories and Memory Controller », « Flash » puis deux fois sur « Flash Memory Interface (CFI) ». 07/05/2012
  • 52.
    52 Etapes de conceptiond un système embarqué à base de Nios II q Etape 10: Ajout de PIO § Les PIO sont les interfaces d entrée/sortie parallèle, ex : Led, Switch, etc q Dans « Peripherals » puis « Microcontroller Peripherals » et on clique deux fois sur « PIO Parallel IO ». 07/05/2012
  • 53.
    53 Etapes de conceptiond un système embarqué à base de Nios II q Etape 11: Finalisation du microprocesseur NIOS II q A ce stage le microprocesseur NIOS n est pas encore complètement terminé et n est donc pas encore opérationnel. En effet nous devons encore choisir dans la quelle des mémoires installées seront placé le programme q On clique deux fois sur le NIOS Installé dans SOPC Builder, puis dans « Reset Vector » et « exception Vector » on choisi la mémoire. Dans notre cas nous avons pris la SDRAM, généralement on choisi entre ce dernier ou le SRAM. 07/05/2012
  • 54.
    54 Système final obtenudans SOPC BUILDER 07/05/2012
  • 55.
    55 Système final obtenudans SOPC BUILDER 07/05/2012
  • 56.
    56 Partie II :Logiciel q Outil de développement des logiciels pour le NIOS est le NIOS IDE, q Le NIOS IDE permet de programmer avec trois langages qui sont le C, le C++ et l assembleur NIOS II. q Etape 1 : création d un projet q Menu « File » ensuite « News » et puis « Project ». Et la fenêtre suivante apparaît et on choisit « NIOS II C/C++ Application » puis « Next ». 07/05/2012
  • 57.
    57 Partie II :Logiciel q Fichier : Typr .ptf q Après avoir créé le projet nous avons normalement un répertoire nommé « altera.component » et deux autres répertoires dans la partie gauche de NIOS IDE, nous allons nous intéressé plus sur ces deux derniers. 07/05/2012
  • 58.
    58 Partie II :Logiciel q Ecriture et compilation du premier programme q Pour créer notre premier programme, on clique droite sur le répertoire qui a le même nom que notre projet puis « new » ensuite « C source file » : q Extension du fichier: q « .c » si on veut programmer en langage C q « .cpp » si on veut programmer en C++ 07/05/2012
  • 59.
    59 Partie II :Logiciel q Après l écriture on passe à la compilation: q Menu « Project » ensuite « Build All » et la compilation commence mais ça prend beaucoup de temps parce qu au début le logiciel doit aussi compiler les libraries. q Chargement du programme dans le NIOS II Ø Avant d envoyer le programme soft, il faut tout d abord envoyer le matériel dans le FPGA avec Quartus. Une fois cela fait et si la compilation du chapitre précédent s est déroulée sans erreur on peut envoyer le programme dans le NIOS. Ø On clique droite sur le répertoire qui a le même nom que le projet ( ce qu on a parlé dans le chapitre précédent), puis on clique sur « Run As » et enfin sur « NIOS II Hardware ». Ø Maintenant le programme tourne dans le NIOS de l FPGA 07/05/2012
  • 60.
    Merci de votreattention 606017/04/2012