Page 1

Chapitre 1 : Architecture Matérielle des SEM 1. Définition et caractéristiques d’un SEM 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 et aussi le boom du marché de l'embarqué. Ceci se confirme au travers de la loi empirique de Gordon Moore, cofondateur d'Intel, qui stipule que pour une surface de silicium donnée, on double le nombre de transistors intégrés tous les 18 mois. Un système embarqué peut être défini comme un système électronique et informatique autonome, qui est dédié à une tâche bien précise. On distingue essentiellement 4 types :  General Computing Application similaire à une application de bureau mais empaquetée dans un système Embarqué  jeu vidéo ,PS,…  Control Systems Contrôle de systèmes en Temps RéelMoteur d’automobile, process chimique, process nucléaire, système de navigation aérien.  Signal Processing Calcul sur de grosses quantités de données., Radar, Sonar, compression vidéo.  Communication & Networking Transmission d’information et commutation Téléphone, Internet. Les principales caractéristiques d'un système embarqué sont les suivantes : • C'est un système principalement numérique. • Il met en œuvre généralement un processeur. • Il exécute une application logicielle dédiée pour réaliser une fonctionnalité précise et n'exécute donc pas une application scientifique ou grand public traditionnelle. • Il n'a pas réellement de clavier standard (Bouton Poussoir, clavier matriciel...). L’affichage est limité (écran LCD…) ou n’existe pas du tout. • Que l’interface IHM peut être aussi simple qu’une led qui clignote ou aussi complexe qu’un Cockpit d'avion de ligne. • Que des circuits numériques ou des circuits analogiques sont utilisés en plus pour augmenter les performances du système embarqué ou sa fiabilité.


2. Schéma synoptique

Figure 1. Système embarqué typique Dans la figure.1 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 œuvre 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. On retrouve en fait un beau système d'asservissement entre les entrées et les sorties ! Il est à noter que l'expression la plus simple de cette figure est de considérer comme capteurs, des interrupteurs et comme actionneurs, des leds (application typique des TP). Sur ce schéma théorique se greffe un paramètre important : le rôle de l'environnement extérieur. Contrairement au PC ronronnant bien au chaud dans un bureau, un système embarqué doit faire face à des environnements plus hostiles. Il doit faire face à un ensemble de paramètres agressifs : • Variations de la température. • Vibrations, chocs. • Variations des alimentations. • Interférences RF. • Corrosion. • Eau, feu, radiations. • ... L'environnement dans lequel opère le système embarqué n'est pas contrôlé ou contrôlable. Cela suppose donc de prendre en compte ce paramètre lors de sa conception. On doit par exemple prendre en compte les évolutions des caractéristiques électriques des composants en fonction de la température, des radiations...Pense-t-on à tout cela lorsque l'on conçoit une carte mère de PC ?


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.

3. STRUCTURE INTERNE D'UN SYSTEME SOC Un Soc se présente sous la forme d’un circuit intégré réunissant tous les éléments d’une structure à base de microprocesseur (ou microcontrôleur) . Voici généralement ce que l’on trouve à l’intérieur d’un tel composant :       

Un microprocesseur (ou microcontrôleur (C.P.U.), De la mémoire de donnée (RAM et EEPROM), De la mémoire programme (ROM, OTPROM, UVPROM ou EEPROM), Des interfaces parallèles pour la connexion des entrées / sorties, Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec d’autres unités, Des timers pour générer ou mesurer des signaux avec une grande précision temporelle, Des convertisseurs analogique / numérique pour le traitement de signaux analogiques.

Figure.2 STRUCTURE INTERNE D'UN SYSTEME SOC Le schéma fonctionnel précédent représente une architecture de “Von Neumann” (Commune à la plupart des microprocesseurs) où la mémoire programme partage le même bus que la mémoire de donnée. L’architecture de “Harvard”, qui dispose de bus distincts pour les données et pour le programme, est plus rarement utilisée


a) Le C.P.U. (µP ou µC) Un CPU exécute séquentiellement les instructions stockées dans la mémoire programme. Il est capable d’opérer sur des mots binaires dont la taille, en bits, est celle du bus des données (parfois le double pour certains microcontrôleurs). Il est généralement constitué des éléments suivants :  Un ou plusieurs registres accumulateurs (W) contenant temporairement les opérandes ainsi que les résultats des opérations,  Des registres auxiliaires permettant de relayer les accumulateurs,  Des registres d’index pour le mode d’adressage indirect,  Un compteur programme (PC) pointant l’adresse de la prochaine instruction à exécuter, sa taille est celle du bus des adresses,  Une unité arithmétique et logique (ALU) permettant d’effectuer des opérations entre l’accumulateur et une opérande,  Un registre code condition (status) indiquant certaines particularités en ce qui concerne le résultat de la dernière opération (retenu, zéro, interruption...).

b) MÉMOIRES PROGRAMMES. Ce dispositif contient les instructions du programme que doit exécuter le CPU. Ce type de mémoire (appelée mémoire morte), est uniquement accessible en lecture. Sa programmation nécessite une procédure particulière et un matériel adéquat. Il en existe différents types selon leur mode de programmation :  De la ROM dont le contenu est programmé lors de sa fabrication.  De la PROM programmable électriquement une seule fois par le développeur (appelée aussi OTPROM),  De la EPROM programmable électriquement et effaçable aux U-V (appelée aussi UVPROM),  De la EEPROM programmable et effaçable électriquement. c) MÉMOIRES DE DONNÉES. Ce dispositif permet de mémoriser temporairement les données générées par le CPU pendant les différentes phases du traitement numérique (résultats d’opérations, états des capteurs...). Ces mémoires sont accessibles en écriture et en lecture. On en trouve 2 types :  De la mémoire vive (RAM) volatile (données perdues en cas de coupure de l’alimentation) ayant un temps de lecture et écriture assez court (quelques ns),  De la mémoire morte (EEPROM) non-volatile (données conservées en cas de coupure de l’alimentation) ayant un temps d’écriture assez élevé (quelques ms) par rapport au temps de lecture qui est assez faible (quelques ns). d) L’INTERFACE PARALLÈLE. Ce type compte des binaires en configurées

d’interface, répartie sur plusieurs ports (maximum 8 bits), permet de prendre en états logiques appliqués en entrée (état de capteurs) ou de générer des signaux sortie (commande d’actionneurs). Les broches de ces ports peuvent donc être en entrée ou en sortie, avec différentes options (résistances de rappel, sorties


collecteurs ouverts, interruption...). La configuration ainsi que l’état logique de ces broches est obtenue par des opérations d’écriture ou de lecture dans différents registres associés à chaque port. On trouve généralement :  Un registre de direction pour une configuration en entrée ou en sortie,  Un registre de donnée recopiant les états logiques de chaque broche de port,  Un registre d’option permettant plusieurs configurations en entrée ou en sortie. e) L’INTERFACE SÉRIE. Ce type d’interface permet au CPU de communiquer avec d’autres systèmes à base de microprocesseur. Les données envoyées ou reçues se présentes sous la forme d’une succession temporelle (sur un seul bit) de valeurs binaires images d’un mots. Il y a 2 types de liaison série : synchrone et asynchrone.  Liaison série synchrone Dans ce dispositif la transmission est synchronisée par un signal d’horloge émis par l’unité maître.

Figure.3 Liaison série synchrone  Liaison série asynchrone Ce dispositif ne possède pas de signal d’horloge de synchronisation. Les unités en liaison possèdent chacune une horloge interne cadencée à la même fréquence. Lorsqu’une unité veut émettre un mot binaire, elle génère un front descendant sur sa ligne émettrice. A la fin de l’émission de ce mot, la ligne repasse au niveau haut. La donnée à transmettre peut contenir un bit supplémentaire appelé “parité” et servant à la correction d’erreurs.

Figure.4 Liaison série asynchrone

f) LE CAN Le CAN intégré dans les microcontrôleurs est généralement du type “Approximations successives”. Il possède plusieurs entrées multiplexées accessibles via les broches des ports de l’interface parallèle. Le CAN possède normalement 2 registres :


 Un registre de données contenant le résultat de la conversion,  Un registre de contrôle permettant de lancer et de surveiller la conversion. g) LE TIMER Le Timer permettent de réaliser les fonctions suivantes :  Génération d’un signal périodique modulé ou non en largeur d’impulsion,  Génération d’une impulsion calibrée,  Temporisation,  Comptage d'événements. Plusieurs registres associés au Timer permettent de configurer les différents modes décrits précédemment. h) LE CHIEN DE GARDE Ce dispositif est un système anti-plantage du microcontrôleur. Il s’assure qu’il n’y ait pas d'exécution prolongé d’une même suite d’instruction. Un compteur pré chargeable se décrémente régulière au rythme de la fréquence d’horloge. Si aucun pré-chargement n’est effectué avant qu’il n’atteigne la valeur “0” un Reset est généré relançant ainsi le CPU. Il faut donc penser à pré-charger régulièrement ce chien de garde par programme lorsqu’il est activé. i) LES SIGNAUX D’HORLOGE. Le signal d’horloge permet de cadencer le fonctionnement du CPU. Ce dernier intègre généralement une porte Trigger de Schmitt afin de réaliser un oscillateur. Pour l’obtenir on place un quartz entre les deux broches “OscIn” et “OscOut” comme l’indique le schéma suivant :

Figure.5 Circuit Oscillateur


Chapitre 2 : Les circuits à microcontrôleurs 1. Introduction Les microcontrôleurs utilisent en général soit un jeu d'instructions réduit (DSP), d'où leur nom d’architecture : RISC (Reduced Instructions Set Computer). Les instructions sont codées sur un nombre réduit de bits, ce qui accélère l'exécution du programme (1 cycle machine par instruction sauf pour les sauts qui requirent 2 cycles). En revanche, le nombre limité d’instructions oblige à se restreindre à des instructions basiques, contrairement aux systèmes d'architecture CISC (Complete Instructions Set Computer) qui proposent plus d'instructions, donc codées sur plus de bits, mais réalisant des traitements plus complexes. En effet, ils ont été conçus sur une architecture dite HARVARD (RISC) et non sur un modèle VON NEUMANN (CISC). L’architecture VON NEUMANN employée par la plupart des microcontrôleurs actuels (INTEL80XX, motorola HC05, HC08 et HC12, ou ZILOG Z80) est basée sur un bus de données unique. Celui-ci véhicule les instructions (du programme) et les données. Les principaux fondeurs de microcontrôleurs sont essentiellement : - ATMEL (AVR) - INTEL - MICROCHIP (PIC) - MOTOROLA (68HCxx) - NEC - STMicroelectronics (STx) La figure suivante (Fig.1) présente un exemple d’architecture interne relatif à un pic (16f628)

Figure.1 Architecture interne du PIC 16F628


2. Structure interne a) L’unité de traitement C’est le cœur du microcontrôleur. Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions : L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Décalage , etc…) ou arithmétique (Addition, soustraction). Le registre d'état (status) est généralement composé de 8 bits à considérer individuellement. Chacun de ces bits est un indicateur dont l'état dépend du résultat de la dernière opération effectuée par l’UAL. On les appelle indicateur d’état ou flag ou drapeaux. Dans un programme le résultat du test de leur état conditionne souvent le déroulement de la suite du programme. On peut citer par exemple les indicateurs de :  retenue (carry : C)  retenue intermédiaire (Auxiliary-Carry : AC)  signe (Sign : S)  débordement (overflow : OV ou V)  zéro (Z)  parité (Parity : P) Les accumulateurs (work) sont des registres de travail qui servent à stocker une opérande au début d'une opération arithmétique et le résultat à la fin de l'opération. Ce type d’architecture, plus complexe à fabriquer permet une exécution du programme en PIPELINE (recherche d’instruction (fetch), décodage (decode) , lecture opérande, exécution en un cycle d’horloge (execute) )

Figure.2 Le pipeline b) Mémoire code programme Il s'agit d'une mémoire de type FLASH ( EEPROM à accès rapide), Le PIC 16F84par exemple, possède une mémoire FLASH de 1 Kmots (= 1024 mots !) de 14 bits et l'espace maximum adressable pour la famille midrange est de 8 Kmots (cas du 16F877). Le compteur programme PC (Program Counter) est donc un registre de 13 bits dont seuls les 10 bits de poids faibles sont utiles sur le 16F84. Le registre PC contient à tout instant l'adresse de l'instruction qui sera exécutée au prochain cycle d'horloge. La pile ("Stack") est une zone mémoire qui sert à stocker des adresses utiles au déroulement du programme. Par exemple lorsqu'on effectue un appel de sous-programme (appel de fonction en langage C) l'adresse de l'instruction courante est stockée automatiquement dans la pile permettant ainsi de reprendre le déroulement du programme après cette instruction une fois le sous-programme exécuté. 2 adresses sont particulières pour tous les PICs :


0000h : adresse de l'instruction qui sera exécutée à la mise sous tension ou après un RESET 0004h : adresse de l'instruction qui sera exécutée si une interruption survient

Figure.3 Mémoire programme c) Mémoire données Elle contient les registres à fonction dédiée (SFR). Ces registres sont divisés en 2 banques (voire 4 sur certains PICs) sélectionnables par le bit RP0 (+RP1) du registre STATUS) ou directement par un registre dédié (BANK REGISTER sur les PICs de la famille High performance). A la suite de ces registres se trouve de la RAM utilisable pour stocker des variables "GPR" (General Purpose Registers).

Figure.4 Mémoire données


cours  

Mr ben Hssine

Read more
Read more
Similar to
Popular now
Just for you