2. Introduction
Vous êtes réveillé le matin par votre radio-réveil ; c'est un système embarqué...Vous
programmez votre machine à café pour avoir un bon petit serré ; c'est un système
embarqué...Vous allumez la télévision et utilisez votre télécommande ; ce sont des systèmes
embarqués...Vous prenez votre voiture et la voix du calculateur vous dit que vous n'avez pas
mis votre ceinture; c'est un système embarqué. Vous appelez votre patron avec votre
téléphone portable pour signaler que vous serez en retard; c'est un système embarqué !
On en croise des dizaines de systèmes embarqués par jour sans le savoir
Ils ne possèdent généralement pas des entrées/sorties standards et classiques comme un
clavier ou un écran d'ordinateur. Le système matériel et l’application sont intimement liés,
le logiciel embarqué étant enfoui, noyé dans le matériel. Le matériel et le logiciel ne sont
pas aussi facilement discernables comme dans un environnement de travail classique de
type ordinateur PC.
2
3. I. Systèmes embarqués
I.1 définition
1- Système électronique et informatique autonome dédié à une tâche précise
2- Interagit généralement avec son environnement
3- Peu ou pas d’interface utilisateur
4- Fortes contraintes :
Consommation, encombrement, poids, dissipation thermique, etc.
Robustesse (sureté et sécurité), fiabilité, etc.
Temps de réponse
Coût, maintenance (contraintes sociales)
5- S’oppose à l’informatique généraliste
Multi-usages et multi-utilisateurs
6- Informatique embarquée :
Dès les années 80
Possibilité d’embarquer de l’intelligence souplesse et évolution
Aujourd’hui : 5 % des CPU pour PC et 95 % pour embarqué 3
4. I.2 Évolution des processeurs
L'omniprésence des systèmes embarqués dans notre vie est liée à la révolution numérique
opérée dans les années 1970 avec l'avènement des processeurs. Les processeurs, de plus en
plus rapides, puissants et bon marché ont permis cette révolution de l'embarqué. Ceci se
confirme au travers de la loi empirique de Moore. La figure 1 montre cette évolution
inexorable.
Figure 1: Évolution des processeurs 4
5. En 1999: il a été vendu pour le marché de l'embarqué :
1,3 milliard de processeurs 4 bits - 1,4 milliard de 8 bits - 375 millions de 16 bits -
127 millions de 32 bits - 3,2 millions de 64 bits.
A côté de cela, à cette époque, il a été vendu seulement 108 millions de processeurs (famille
x86) pour le marché du PC grand public !
Pour 2004 : il a été vendu environ 260 millions de processeurs pour le marché du PC grand
public à comparer aux 14 milliards de processeurs tout type confondu (microprocesseur,
microcontrôleur, DSP) pour le marché de l'embarqué.
• Moins de 2 % des processeurs vendus sont pour le marché du PC contre 98 % pour
l'embarqué. On utilise massivement pour le PC grand public le système d'exploitation
commercial bien connu.
• Pour les 98 % autres processeurs vendus, on utilisera généralement un autre système
d’exploitation. On trouvera ici dans 60 % des cas un système d'exploitation commercial
spécialisé pour l'embarqué (VxWorks, QNX...). Pour le reste, on opte de plus en plus pour des
systèmes d'exploitation libres comme Linux pour l'embarqué.
5
6. • Moins de 10 % des processeurs vendus sont des processeurs 32 bits pour près de 31 % du
chiffre d'affaire sur les processeurs. Cette part du chiffre d'affaire est estimée a près de 48 %
pour 2008 : cela montre la migration rapide vers ces processeurs 32 bits dans l'embarqué,
condition nécessaire pour pouvoir mettre en oeuvre Linux.
Ces quelques chiffres permettent bien de prendre conscience de l'importance du marché de
l'embarqué.
I.3 Catégories de systèmes embarqués
Calcul généraliste : Similaire application bureau mais embarqué (assistant personnel,
téléphone portable, etc.), Consoles de jeux vidéo, set-top box
Contrôle de systèmes : Moteur, voiture, avion, processus chimique, nucléaire, navigation, etc.
Traitement de signaux : Compression vidéo, radar, flux de données, etc.
Réseaux et communications : Transmission données, commutation, routage, téléphone,
Internet, etc. 6
9. I.4 Schéma typique d’un système embarqué
La figure 3 présente les caractéristiques principales d'un système embarqué typique.
Figure 3 : Système embarqué typique 9
11. On retrouve en entrée des capteurs généralement analogiques couplés à des convertisseurs
A/N. On retrouve en sortie des actionneurs généralement analogiques couplés à des
convertisseurs N/A. Au milieu, on trouve le calculateur mettant en oeuvre un processeur
embarqué et ses périphériques d'E/S. Il est à noter qu'il est complété généralement d'un
circuit FPGA jouant le rôle de coprocesseur afin de proposer des accélérations matérielles
au processeur.
I.5 Caractéristique d’un systèmes embarqués
1. Fonctionnement en Temps Réel :
• Réactivité : des opérations de calcul doivent être faites en réponse à un événement
extérieur (interruption matérielle).
• La validité d ’un résultat (et sa pertinence) dépend du moment où il est délivré.
• Rater une échéance va causer une erreur de fonctionnement.
-Temps Réel dur : plantage.
-Temps Réel mou : dégradation non dramatique des performances du système.
• Beaucoup de systèmes sont « multirate » : traitement d ’informations à différents rythmes.
11
12. 2. Faible encombrement, faible poids :
• Electronique « pocket PC », applications portables où l ’on doit minimiser la
consommation électrique (bioinstrumentation...).
• Difficulté pour réaliser le packaging afin de faire cohabiter sur une faible surface
électronique analogique, électronique numérique, RF sans interférences.
3. Faible consommation :
• Batterie de 8 heures et plus (PC portable : 2 heures).
4 Environnement extérieur
Il doit faire face à un ensemble de paramètres agressifs :
• Température, vibrations, chocs, variations d ’alimentation, interférences RF, corrosion,
eau, feu, radiations.
• Le système n ’évolue pas dans un environnement contrôlé.
• Prise en compte des évolutions des caractéristiques des composants en fonction de la
température, des radiations...
12
13. 5. Fonctionnement critique pour la sécurité des personnes (Sûreté)
• 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.
• Choix entre un design tout électronique ou électromécanique.
6. Beaucoup de systèmes embarqués sont fabriqués en grande série et doivent avoir des prix
de revient extrêmement faibles, ce qui induit :
• Une faible capacité mémoire.
• Un petit processeur (4 bits). Petit mais en grand nombre !
7. La consommation est un point critique pour les systèmes avec autonomie.
• Une consommation excessive augmente le prix de revient du système embarqué car il
faut alors des batteries de forte capacité.
8. Faible coût : 13
• Optimisation du prix de revient.
14. 9. Communication
les systèmes embarqués sont aujourd'hui fortement communicants. Cela est possible grâce aux
puissances de calcul offertes par les processeurs pour l'embarqué (32 bits en particulier) et grâce
aussi à l'explosion de l'usage la connectivité Internet ou connectivité IP.
La connectivité IP permet fondamentalement de contrôler à distance un système embarqué
par
Internet. Ce n'est en fait que l'aboutissement du contrôle à distance d'un système électronique
par des liaisons de tout type : liaisons RS.232, RS.485...
Cela permet l'emploi des technologies modernes du web pour ce contrôle à distance par
l'utilisateur : il suffit d'embarquer un serveur web dans son équipement électronique pour
pouvoir le contrôler ensuite à distance, de n'importe où, à l'aide d'un simple navigateur. Il n'y
a plus d'IHM spécifique à concevoir pour cela, ce rôle étant rempli par le navigateur web.
Il faut aussi noter la montée en puissance des communications sans fil dans l'embarqué au
détriment des communications filaires pour limiter le câblage et faciliter la mise en place du
système embarqué. Le Wifi et toutes les normes de réseaux sans fil IEEE 802.15 sont de plus en
plus utilisés dans l'embarqué et surtout en domotique (réseaux de capteurs sans fil par exemple).
La sécurité des systèmes embarqués est donc cruciale aujourd'hui puisque connecté à Internet
14
15. Tous les systèmes embarqués ne possèdent pas toutes ces caractéristiques.
Définition: Un système de traitement de l‘information présentant la plupart de ces
caractéristiques est appelé système embarqué: embedded system
15
16. I.6 Systèmes embarqués et Temps réel
• Généralement, un système embarqué doit respecter :
– des contraintes temporelles fortes (Hard Real Time).
– on y trouve alors enfoui un système d'exploitation ou un noyau Temps Réel
(Real Time Operating System, RTOS).
• Le Temps Réel est un concept un peu vague. On pourrait le définir comme :
"Un système est dit Temps Réel lorsque l'information après acquisition et traitement reste
encore pertinente".
• Cela veut dire que dans le cas d'une information arrivant de façon périodique (sous forme
d’une interruption périodique du système), les temps d'acquisition et de traitement doivent
rester inférieurs à la période de rafraîchissement de cette information.
• Pour cela, il faut que le noyau ou le système Temps Réel soit déterministe et préemptif pour
16
toujours donner la main durant le prochain tick à la tâche de plus forte priorité prête
17. - déterministe : les mêmes causes produisent les mêmes effets avec les mêmes temps
d'exécution.
- préemptif : la tâche de plus forte priorité prête à être exécutée doit toujours avoir
accès au processeur.
• Une confusion classique est de mélanger Temps Réel et rapidité de calcul du système
donc puissance du processeur (microprocesseur, microcontrôleur, DSP).
• On entend souvent : “ Être temps Réel, c’est avoir beaucoup de puissance : des MIPS, des
MFLOPS… ”.
I.6.1 RTOS
.
Un système d'exploitation temps réel (RTOS) est un système d’exploitation multitâche
destiné aux applications temps réel. Ces applications comprennent les systèmes embarqués.
Un RTOS facilite la création d'un système temps réel, fournit des services et des primitives
qui, si elles sont utilisées correctement, peuvent garantir les délais souhaités. Un RTOS
utilise des ordonnanceurs spécialisées afin de fournir aux développeurs des systèmes temps
réel les outils et les primitives nécessaires pour produire un comportement temps réel
souhaité dans le système final. 17
18. II. Conception des système embarqués
II.1 Évolution de la conception des systèmes embarqués
• Les systèmes numériques deviennent aujourd'hui de plus en plus complexes au niveau
intégration et fonctionnalités et l'on est en mesure d'intégrer tout dans un même composant
• C'est le concept du single chip.
• Ceci est en fait lié à la loi empirique de Moore qui stipule que pour une surface de silicium
donnée, on double le nombre de transistors intégrés tous les 18 mois !
18
19. • On travaille maintenant au niveau système (ou fonctionnalité) et non au niveau porte logique
• Les fonctionnalités peuvent être implantées dans des composants spécifiques de type ASIC
(Application Specific intregrated Circuit). On parle alors de Système sur Silicium SoC
(System on Chip).
• Les fonctionnalités peuvent être implantées dans des composants logiques programmables de
type FPGA (Field Programmable Gate Array). On parle alors de système SoPC (System on
Programmable Chip).
19
20. • L'approche « schématique » au niveau porte logique ou fonctionnalités de base RTL
(Register Transfer Logic) est délaissée pour la conception des systèmes complexes au profit
d'une approche « textuelle ».
• On utilise des langages de description de matériel comme VHDL (Very high speed
integrated
circuit Hardware Description Language) ou Verilog pour synthétiser une fonctionnalité
numérique.
• Ces langages de description de matériel sont en fait de véritables langages de programmation
informatiques, orientés objet. Ils sont utilisés conjointement avec un synthétiseur
(compilateur) ou un simulateur.
• Ces langages ont permis de travailler avec un niveau d'abstraction plus grand laissant les
basses besognes au synthétiseur.
• On a pu rapidement développer des bibliothèques de fonctionnalités comme une interface
USB, un contrôleur MAC Ethernet que l'on appelle blocs IP (Intellectual Property).
• On peut les acheter ou bien utiliser des blocs IP libres (comme du logiciel libre) dont le site
phare de référence est http://www.opencores.org.
20
21. • On peut ainsi voir la conception d'un système numérique complexe comme un assemblage
de blocs IP si bien que les langages de description de matériel sont un peu comme un
langage assembleur vis à vis d'un langage plus évolué comme le langage C.
• Il est à noter que l’idéal serait de pouvoir générer un circuit numérique à partir d'un
fichier source écrit en langage informatique comme le langage C : c'est ce que propose
SystemC mais bien des progrès restent encore à faire dans ce domaine...
• Les langages de description de matériel sont aussi intéressants pour la facilité de
modification et de réutilisation d'un design précédent pour un nouveau design : c'est le
design reuse.
• Cela permet de réduire aussi le Time To Market (TTM) !
21
22. • Lorsque l'on conçoit un système numérique complexe, on met en oeuvre généralement un
processeur embarqué.
• Ce processeur embarqué est :
– Soit un bloc IP : on parle de processeur softcore.
– Soit déjà implanté dans le circuit électronique en « dur » : on parle de processeur
hardcore. Le processeur de ce type est généralement plus performant que le
processeur du type précédent.
• Le processeur embarqué allie la souplesse du logiciel à l'accélération du temps d'exécution
du matériel.
• Une fonctionnalité particulière peut donc être composée d'une partie matérielle couplée à
une fonctionnalité logicielle dédiée : on a donc une conception conjointe matérielle-
logicielle ou codesign.
22
23. • Le codesign implique donc une conception en même temps du matériel et du logiciel, ce qui
est une nouvelle méthodologie par rapport à la méthodologie de conception classique
(conception matérielle puis conception logicielle)...
23
26. • Les processeurs embarqués comme leurs cousins du grand public sont de plus en plus
puissants.
• La puissance CPU en MIPS double les 2 ans (loi empirique de Joy) et sont de plus
communicants.
• On estime que l'on a besoin d'une bande passante réseau de 0,3 à 1 Mb/s par MIPS (loi
empirique de Ruge).
• La course à la performance gagne aussi le monde de l'embarqué et des systèmes numériques
complexes !
26
27. Les processeurs pour les SoPC
• Le choix d'un processeur pour le SoPC peut se faire sur différents critères :
– Processeur hardcore : pour ses performances au détriment de la flexibilité.
– Processeur softcore : pour sa flexibilité de mise à jour au détriment de performances
moindres que le précédent. La portabilité vers n'importe quel circuit FPGA est assurée
en étant donc circuit FPGA indépendant. Il est aussi possible de migrer vers un circuit
de type ASIC en cas d'une production en grande série.
• Généralement, on privilégie les processeurs softcore pour s'affranchir des problèmes
d'obsolescence et pour pouvoir bénéficier facilement des évolutions apportées en refaisant une
synthèse.
• Le processeur softcore peut être libre :
– Il est décrit en langage de description de matériel (VHDL, Verilog).
– Le code source peut être librement distribué et implanté dans n'importe quel
circuit programmable FPGA.
27
– On est alors indépendant du type de circuit FPGA.
28. • Le processeur softcore peut être propriétaire :
– Il est distribué par exemple sous forme d'une netlist pour être implantée dans un circuit FPGA.
– Il est généralement lié à un fondeur de circuit FPGA particulier (comme Altera ou Xilinx).
– On ne peut pas l'utiliser dans un circuit FPGA autre que celui pour lequel il est prévu. On a
donc ici une boîte noire.
• On trouvera principalement au niveau des processeurs softcores libres:
– Le processeur Leon (http://www.gaisler.com/index.html)
– Le processeur OpenRisc (http://www.opencores.org/projects.cgi/web/or1k/overview)
– Le processeur F-CPU (http://www.f-cpu.org)
– Autres processeurs : clones de 6800, 68HC11, 68K, PIC
(http://www.opencores.org/browse.cgi/filter/category_microprocessor)
28
29. • On trouvera principalement au niveau des processeurs softcores propriétaires :
– Le processeur NIOS et NIOS II d'Altera http://www.altera.com.
– Le processeur Microblaze de Xilinx http://www.xilinx.com.
29