Sie sind auf Seite 1von 60

Conception de Systèmes Embarqués

B. HAJJI
ENSA, Université Mohammed Premier,
Oujda, Maroc

07/05/2012 1
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
07/05/2012 2
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

07/05/2012 3
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
07/05/2012 4
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

07/05/2012 5
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

07/05/2012 6
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

07/05/2012 7
Qu’est ce qu’un SE

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

07/05/2012 8
L’embarqué en quelques
chiffres
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

07/05/2012 9
L’embarqué en quelques
chiffres
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.

07/05/2012 10
Domaines d’application
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

07/05/2012 11
Domaines d’application

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

07/05/2012 12
Systèmes embarqués
typique

07/05/2012 13
Caractéristiques des
systèmes embarqués
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
07/05/2012 14
Problématique de conception

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

07/04/2012 15
Contraintes des systèmes
embarqués
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

07/05/2012 16
Contraintes des systèmes
embarqués
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)

07/05/2012 17
Contraintes des systèmes
embarqués

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

07/05/2012 18
Etat de l’art

Solutions classiques :

q Microcontrôleur: Pour
q très bon marché
qApprentissage rapide
qDéveloppement rapide

Contre
q Structure fixe
qExtensibilité difficile
qCode peu réutilisable

07/05/2012 19
Etat de l’art

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)

07/05/2012 20
Etat de l’art

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

07/05/2012 21
Processeur Softcore

Définition

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.
Pour quoi les softcores ?

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

07/05/2012 22
Quelques exemples
de processeur Soft

open
propriétaires
sources

qNIOS (ALREA) qMico8 (Lattice)

qMicro blaze (XILINX) qMico32 (Lattice)

qPico blaze (XILINX) qLEON (Gaisler Research)


07/05/2012 23
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 24
Soft & Hard core

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

07/05/2012 25
Règles de conception
des systèmes embarqués

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

07/05/2012 26
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 27
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

Plates formes

SOPC
SOC PSOC
(Système sur une
(Systèmes sur (Système sur puce
puce
puce) programmable)
Programmable)
ASIC
FPGA

07/05/2012 28
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


début
début
HW SW SW
HW

Réalisé par des ingénieurs Réalisé par des mêmes


indépendants ingénieurs

07/05/2012 29
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 30
Co-design

07/05/2012 31
Besoin en OS

contraintes
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é
Solutions offerts par l’OS
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 32
Linux en embarqué

Pour quoi Linux 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 33
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 34
Cahier de charges

07/05/2012 35
Outils d’Altera

07/05/2012 36
Outils Matériels

ØCarte de développement DE2_70

07/05/2012 37
Outils Logiciels

07/05/2012 38
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 39
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 40
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 41
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 42
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 43
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 44
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 45
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 46
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 47
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 48
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 49
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 50
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 51
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 52
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 53
Système final obtenu dans SOPC BUILDER

07/05/2012 54
Système final obtenu dans SOPC BUILDER

07/05/2012 55
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 56
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 57
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 58
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 59
Merci de votre attention…

17/04/2012 60