La Duck Conf - DevOps et Dataviz, un amour impossible ?
Systeme embarque
1. Conception de Systèmes Embarqués
B. HAJJI
ENSA, Université Mohammed Premier,
Oujda, Maroc
107/05/2012
2. 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
3. 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
4. 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
5. 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
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 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
8. 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
9. 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
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 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
12. 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
14. 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
15. 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
16. 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
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 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
19. 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
20. 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
21. 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
22. 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 ?
23. 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. 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
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 à 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. 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. 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. 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. 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
32. 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. 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. 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
39. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
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