Vous êtes sur la page 1sur 33

SUPPORT DE COURS SYSTEMES EMBARQUES

Séquence : Architecture matériel et logiciel


Dr Madiop DIOUF
Partie1 : Introduction aux systèmes embarqués

Objectifs spécifiques:
Au terme de cette séquence, les apprenants doivent être en
mesure de :
✓ Décrire l’architecture matérielle
✓ Décrire l’architecture logicielle
✓ Citer des exemples de systèmes d’exploitation embarqués
Chapitre1 : PLAN

• Architecture matérielle
• Architecture logiciel
• Introduction à l'Arduino
appel

Un système embarqué: c’est une combinaison de matériels et logiciels permettant de

remplir une ou plusieurs fonctions spécifiques avec des contraintes plus ou moins

sévères tel que la consommation, la température, la taille, les performances…[Patrice

Kadionik, 2004]

• Un système embarqué est susceptible d’être utilisé dans un environnement matériel

de faibles performances (si l’on compare au PC de bureau d’aujourd’hui). Si l’ajout de

quelques Mo de mémoire sur un PC de bureau n’a pas une grosse influence sur le

budget d’un utilisateur, le gain de quelques Mo sur un produit de grande

consommation (téléphone, équipement auto mobile, organiseur personnel) a une

Énorme influence sur le coût final.[PierreFicheux,2003]


Architecture matériel

• L'architecture d'un système intégré est centrée sur son


microcontrôleur
• Matériel conçu pour des systèmes autonomes peu coûteux,
nécessitant peu de ressources et d'énergie, sur un circuit
intégré unique.
• Ils sont souvent appelés Systèmes on Chip (SoC) Système sur
puce.

.
Microcontrôleur

Microcontrôleur : un circuit intégré unique contenant


▪ le processeur,
▪ La mémoire: ROM et RAM,
▪ Des périphériques
▪ D’autres composants centraux.
• Ces éléments sont reliés par 3 bus :
▪ bus d'adresse qui permet au processeur de sélectionner la case mémoire ou le périphérique auquel il veut accéder
pour lire ou écrire une information (instruction ou donnée);
▪ bus de données qui permet le transfert des informations entre les différents éléments; ces informations seront soit des
instructions, soit des données en provenance ou à destination de la mémoire ou des périphériques;
▪ Bus de contrôle qui indique si l'opération en cours est une lecture ou une écriture, si un périphérique demande une
interruption pour faire remonter une information au processeur, etc
.

.
Système on Chip

▪ Le SoC intègre un microcontrôleur ou un microprocesseur avec


des périphériques avancés comme une unite de traitement
graphique(GPU), un moduleWi-Fi etc.
▪ SoC construits autour d’un microcontrôleur (µC),
▪ SoC construits autour d'un microprocesseur (µP), souvent trouvé
dans les téléphones mobiles;
▪ SoC spécialisés conçus pour des applications spécifiques ne
rentrant pas dans les deux catégories ci-dessus,
▪ Systèmes sur puce programmables (PSoC), où la plupart des
fonctionnalités sont fixes mais certaines fonctionnalités sont
reprogrammables d'une manière analogue à un reseau de portes
programmable par l'utilisateur.
Microcontrôleur

▪Micro = petite taille


▪Processeur = processor = calculateur (électronique)
▪Exemple: Intel Core2 Duo → 144 𝑚𝑚 2
Architecture type

▪ En raison de la diversité des processeurs, des mémoires et des


interfaces pouvant être intégrés, il n'existe pas d'architecture de
référence réelle pour les microcontrôleurs.
▪Néanmoins, certains éléments architecturaux sont communs à une
large gamme de modèles et de marques, et même à différentes
architectures de processeurs.
Composants

▪ Schéma synoptique simplifié des composants d'un microcontrôleur générique


Contole dinterruption
C'est le niveau de priorité de l'interruption.
Ceci est très important lorsqu'il y a des requêtes simultanées,
car on peut traiter qu'une interruption à la fois.
ILVL est un champ de 4 bits
L’oscillateur:
L'horloge système peut être réalisée soit avec un quartz ,
soit avec une horloge extérieure, soit avec un circuit RC.
Dans ce dernier cas, la stabilité du montage est limitée.
Le TIMER : Un timer est un registre interne au micro
contrôleur,
celui-ci s’incrémente au grès d'une horloge,
ce registre peut servir par exemple pour réaliser des
temporisations, ou bien encore pour faire du comptag
Architecture d’un microprocesseur

▪ Un microprocesseur est construit autour de deux éléments principaux :


Ces éléments sont une unité de commande :
✓appelé aussi Unité de commande et de contrôle (UCC)
✓Une unité de traitement
✓associés à des registres chargées de stocker les différentes informations à traiter.
▪ Liés entre eux par des bus interne permettant les échanges d’informations.
Unité de commande
▪ Permet de séquencer le déroulement des instructions. Elle effectue :
✓la recherche en mémoire de l'instruction.
✓le décodage (l’instruction est codée sous forme binaire, elle en assure )
✓l’exécution
✓la préparation de l'instruction suivante.
▪ Composée du:
✓Compteur de programme : constitué par un registre dont le contenu représente l’adresse de
la prochaine instruction à exécuter.
✓Registre d'instruction: Contient l’instruction en cours de traitement.
✓Décodeur d'instruction
✓Séquenceur
Unité de traitement
▪ L’unité de traitement est le cœur du microprocesseur.
▪ Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions.
▪ Composé de trois principaux unités d’exécution,
✓l’unité arithmétique et logique (UAL): effectuer les calculs et les opérations logiques des différents
instructions à exécuter, les données à traiter se présentent aux entrées de l’UAL, sont traités, puis le
résultat est fourni en sortie et généralement stocké dans un registre dit accumulateur
✓l’unité de calcul en virgule flottante : capable de réaliser les opérations de calcul pour les réels ainsi
que les calculs mathématiques et scientifiques complexes. A l’origine la tâche de cette unité était réalisée
par tout un processeur à part, en 1989 elle a été intégré dans les microprocesseurs afin d’optimiser les
calculs.
✓l’unité multimédia: chargée d’accélérer l’exécution des programmes multimédia comportant des vidéos,
du son, graphisme en 3D etc.
Architecture microprocesseur
Schéma fonctionnel
RAM
• Pour RAM (Random Access Memory). Par opposition à la mémoire fixe (ROM), on parle de
mémoire vive, qui peut être modifiée à l'infini dès qu'elle est alimentée en électricité.
• En informatique, la mémoire vive sert à stocker temporairement les fichiers que
l'ordinateur exécute.
• Il existe de nombreux types de RAM. On peut citer la SDRAM (Synchronous Dynamic RAM)
qui a remplacé la RAM EDO au cœur de nos ordinateurs et la mémoire DDR, basée sur la
technologie SDRAM, mais qui double ses taux de transferts. Cette dernière est donc plus
performante à des fréquences pouvant atteindre 150 MHz.
Mémoire ROM
• Originellement, l'expression mémoire morte (en anglais, Read-Only Memory : ROM) désignait
une mémoire informatique non volatile (c’est-à-dire une mémoire qui ne s’efface pas lorsque l’appareil qui
la contient n’est plus alimenté en électricité) et dont le contenu est fixé lors de sa programmation.
• Les ROM (Read Only Memory) dont le contenu est défini lors de la fabrication.
• Les PROM (Programmable Read Only Memory) sont programmables par l’utilisateur, mais une seule fois
en raison du moyen de stockage, les données sont stockées par des fusibles.

• Les EPROM (Erasable Programmable Read Only Memory) sont effaçables et programmables par
l’utilisateur.

• Les UVPROM or Flash EPROM (Ultra Violet Programmable Read Only Memory) sont des mémoires
programmables par l'utilisateur. Elles sont effaçables en les mettant dans une chambre à ultraviolet. Les
UV Prom ont été remplacées par les EEPROM qui ne nécessitent pas d’être extraites de l'appareil pour
être reprogrammées.
• Les EEPROM (de l'anglais Electrically Erasable Programmable Read Only Memory) sont effaçables et
programmables par l’utilisateur. Elles sont plus faciles à effacer que les EPROM car elles sont effaçables
électriquement donc sans manipulations physiques. Elles constituent désormais le principal type de
mémoire morte avec les mémoires SD, USB, CompactFlash et enfin les disques SSD.
Les entrées/sorties

• Communication avec les dispositif externes identifiés par port


✓Port d’entrée: capteur, bouton, circuit Trans conducteur
✓Port de sortie: LED, écran LCD …
• Port: dispositif physique pour transiter les données
✓Recevoir données de périphérique, processeur, contrôleur
✓Envoyé vers l’extérieur
✓Connecté cers le processeur grâce à un bus
Interfaces et périphériques

• Permettent au système de communiquer avec le monde extérieur.


• Transmission des informations en série ou parallèle
✓Parallèle: plus rapide car plusieurs bits à la fois
✓Série: plus légers niveau hard ( câble émetteur/récepteur)
• Rythme
✓Synchrone : suit une horloge, à partager entre les bouts
✓Asynchrone: transmet des balises, surcharge de communication
• Plusieurs types de bus: RS-232, I2C, SPI, CAN, USB, PCI …
Bus d’entrée / sortie
Interfaces et périphériques

•General Purpose Input/output


(GPIO)
✓Connexion directe du processeur
avec le mode extérieur
✓2 valeurs de tension pour chaque
pin GPIO (binaire)
✓Utilisé comme entrée (bouton) ou
comme sortie (LED)
✓Fonctionnement du port GPIO
Autres composants

• De plus en plus les systèmes communiquent dans des réseaux


avec d’autres appareils ou des gateways.
• Interfaces de communication
✓Ethernet ou WIFI
✓Interfaces Radio ou bus CAN (Controller Area Network)
• Tous les composants doivent partager une ligne de bus avec le
processeur, qui est responsable de la coordination de la logique
Exemple d’architecture matérielle
Partie 2: Architecture logicielle (Soft)
• Le système d’exploitation fait l’interface entre le matériel et le logiciel
• Il présente aux programmes une machine virtuelle, relativement indépendante du matériel sous-jacent
• L’un des rôles primordiaux des systèmes d’exploitation est d’assurer l’exécution de plusieurs programme
sen parallèle.
Architecture logiciel
• Le développement de logiciels embarqués est un défi permanent qui consiste à se concentrer
sur le moyen le plus efficace d’exécuter un ensemble de tâches spécifiques, tout en
tenant compte des ressources limitées disponibles. Il existe un certain nombre de
compromis à traiter, qui sont rares dans d'autres environnements.
✓Il n’y a peut-être pas assez d’espace dans le flash pour implémenter une nouvelle fonctionnalité.
✓Il n’y a peut-être pas assez de RAM pour stocker des structures complexes ou faire des copies de
mémoires tampons volumineuses.
✓Le processeur n’est peut-être pas assez rapide pour effectuer tous les calculs et le traitement des
données nécessaires en temps voulu
✓ L’énergie du système est supporté par une batterie avec une énergie limitée.
Le Multitâche
• Les systèmes multitâches ont la possibilité d'exécuter des tâches distinctes à la fois en
partageant les ressources dans le temps.
• les microcontrôleurs modernes offrent des fonctionnalités et des caractéristiques logiques de
base que les développeurs de systèmes peuvent utiliser pour créer un environnement
multitâche
• Ces fonctionnalités sont particulièrement utiles pour aborder des systèmes plus complexes
en temps réel et intéressantes à comprendre
ARM
• ARM est le fournisseur de conception de référence le plus omniprésent sur le marché des solutions
embarquées, avec plus de10milliards de microcontrôleurs basés sur ARM produits pour des applications
embarquées. La famille ARM Cortex-M est l’une des conceptions centrales les plus intéressantes de
l’industrie embarquée. Elle comprend une gamme de modèles allant des cœurs économiques et
éconergétiques aux cœurs hautes performances spécifiquement conçus pour les microcontrôleurs
multimédias. Malgré la présence de trois jeux d'instructions différents (ARMv6, ARMv7 et ARMv8), tous
les processeurs Cortex-M partagent la même interface de programmation, ce qui améliore la portabilité
entre microcontrôleurs appartenant aux mêmes familles. La plupart des exemples sont basés sur cette
famille de processeurs. Bien que la plupart des concepts exprimés soient également applicables à
d'autres conceptions de base, le choix d'une plate-forme de référence ouvre désormais la porte à une
analyse plus complète des interactions avec le matériel sous-jacent. Certains exemples de ce livre
utilisent notamment des instructions d'assemblage spécifiques du jeu d'instructions ARMv7,
implémentées dans certains cœurs de processeurs Cortex-M
OS embarqués
RTEMS (par OAR)
• logiciel libre, disponible pour de nombreuses architectures ;
• exécutif léger, se combinant lors de la compilation et de l’édition de liens avec l’application de
l’utilisateur ;
• système temps-réel multi-tâche préemptif ; support de la programmation concurrente en Ada ;
• implémente tous les services POSIX d’un système mono-processus ;
• très utilisé dans le milieu des expérimentations physiques, notamment en milieu spatial ;utilisé
dans le projet Mars Reconnaissance Orbiter
Free RTOS
• logiciel libre ;
• supporte un grand nombre de microcontrôleurs ;
• système temps-réel multi-tâches préemptif, coroutines sans pile ou les deux àlafois;
• se combine avec l’application finale lors de la compilation et de l’édition de liens ;
• très petit, très rapide et très bien documenté ;
• possède deux versions supplémentaires :
✓OpenRTOS : licence ne nécessitant pas d’indiquer qu’on utilise FreeRTOS ni de distribuer
les sources de FreeRTOS;
✓SafeRTOS :version certifiée selon plusieurs normes.
ChibiOS/RT
• logiciel libre ;
• supporte un grand nombre de microcontrôleurs ;
• système temps-réel multi-tâches préemptif ; se combine avec l’application finale lors de la
compilation et de l’édition de liens ;
• Très petit et très rapide ;
• initialisations statique possible de toutes les structures de données ;
• possède un HAL (hardware abstraction layer) permettant de s’abstraire des opérations de bas
niveau ;
• secharge des opérations d’initialisation du système;
• s’intègre avec d’autres logiciels libres (gestion de fichiers, du réseau, etc.)..
Etc…
• Il existe beaucoup d’autres systèmes d’exploitation pour systèmes embarqués non décrits ici,
entre autres:
✓systèmes lourds : téléphones, tablettes, livres électroniques, télévision connectée: Android,
iOS, WindowsPhone8,BlackBerry 10
✓micro-satellites: eCos
✓ransport,avionique,robotique,équipementsréseau,imprimantes:VxWorks.
Introduction à l’arduino
• Le système Arduino est composé de deux choses
principales : le matériel et le logiciel.
✓Le matériel: carte électronique basée autour d'un
microcontrôleur Atmega du fabricant Atmel, dont le
prix est relativement bas pour l’étendue possible des
applications.
✓Le logiciel libre permettant de programmer la carte
Arduino. Il offre une multitude de fonctionnalités
✓https://www.arduino.cc/
Types de carte Arduino
• Il ya trois types de cartes :
✓Les «officielles » qui sont fabriquées en Italie par le fabricant officiel :Smart Projects
✓Les « compatibles » qui ne sont pas fabriques par Smart Projects, mais qui sont totalement
compatibles aveclesArduino officielles.
✓Les « autres » fabriquées par diverse entreprise et commercialisées sous un nom différent
(Freeduino, Seeduino, Femtoduino, ...).