v. Bus vi. Ports d`entrées/sortie b. Circuits numériques i. Circuits

10
v. Bus
Dans un système électronique et microinformatique, nous trouverons tout ou partie des sous-
ensembles :
- Le circuit microcontrôleur, cœur du système.
- Un clavier, un afficheur, des convertisseurs Analogique-numérique et D-A, des ports
d'entrées sorties, des mémoires, etc.
Ces composants étant parfois situés sur des cartes séparées, il est hors de question de relier
chacun par des nappes de dizaines de fils véhiculant des données en parallèle. C'est ici
qu'intervient la notion de bus, pour sérialiser les données et permettre les échanges.
Tous ces composants vont dialoguer avec 2 ou trois fils ce qui va beaucoup simplifier la
réalisation.
Définir un bus consiste donc à fixer les points clefs :
- Combien de signaux seront véhiculés (nombre de fils)
- Tensions des niveaux logiques et type des fils et connecteurs (séparés, torsadés,
coaxial...)
- Vitesse des échanges (horloge)
- Format de la trame et codage des informations
- Normalisation des adresses des périphériques
- Gestion des conflits de bus et dispositions anti-collisions
vi. Ports d’entrées/sortie
Dans un système à base d'un processeur, d'un microprocesseur, d'un microcontrôleur ou
d'un automate, on appelle Entrées-Sorties les échanges d'informations entre le processeur et
les périphériques qui lui sont associés. De la sorte, le système peut réagir à des modifications
de son environnement, voire le contrôler. Elles sont parfois désignées par l'acronyme I/O, issu
de l'anglais Input/Output ou encore E/S pour Entrées/Sorties.
Les périphériques sont reliés au reste du système par des circuits appelés ports d'entrées et
ports de sortie (certains ports peuvent combiner les deux fonctions).
b. Circuits numériques
i. Circuits logiques standards
L'ordinateur est un dispositif électronique sophistiqué qui traite l'information mise sous forme
d'impulsions électriques traduisant les chaînes binaires utilisées pour représenter les symboles
qu’on y introduit codés sous forme d’une suite bits. Rappelons qu’un ordinateur ne comprend
que les impulsions électriques.
Les traitements, pour leur part, sont essentiellement réalisés à l'aide d'opérations telles
l'addition, la soustraction, la multiplication, la division, la comparaison. Plus
fondamentalement, les opérations sont composées d'opérations logiques qui sont effectuées
par des circuits logiques de base appelés portes. Une porte est en fait un circuit combinatoire à
une ou plusieurs entrées et à au moins une sortie. Les conditions aux entrées d'une porte
déterminent l'état des sorties.
Il existe trois portes de base correspondant aux trois opérations logiques: OU, ET, NON.
11
Par ailleurs, les circuits logiques d’un ordinateur sont divisés en deux catégories suivant leur
structure fonctionnelles : les circuits combinatoires et les circuits séquentiels.
Circuits combinatoires : Un circuit est dit combinatoire si les sorties ne dépendent que des
valeurs assignées aux valeurs d’entrée au moment considéré. Autrement dit, dans un tel
circuit, le comportement des sorties peut toujours être exprimé par des fonctions logiques.
Circuits séquentiels : Un circuit est dit séquentiel si les sorties le comportement des sorties
dépend des valeurs assignées aux variables ‘entrée et selon son histoire. De tels circuits
contiennent une mémoire à côté d’une partie combinatoire. Cette mémoire a pour rôle de
conserver l’histoire du circuit, histoire qui peut influencer les sorties pour une nouvelles
combinaison de valeurs assignées aux entrées. L’information qui se trouve en mémoire à un
moment donné définit l’état du circuit séquentiel. L’état suivant et le comportement des
sorties sont déterminés par l’état actuel et la combinaison des valeurs données aux entrées. Par
conséquent, un circuit séquentiel se caractérise par une séquence de signaux aux entrées et
une séquence d’états pour chaque séquence de signaux appliquées aux entrées.
Exemples de circuits logiques :
- Le semi-additionneur
Il s'agit de réaliser un circuit permettant d'additionner 2 bits d'entrée, et d'obtenir comme
sortie le résultat de l'addition et la retenue:
12
- L’additionneur
Le semi-additionneur permet d'additionner deux bits, et de donner la somme et la retenue.
L'additionneur complet tient compte non seulement des deux entrées, mais aussi de la retenue
obtenue lors de l'addition des deux valeurs de la position précédente. On a alors, pour
l'addition des deux valeurs de position n, les entrées suivantes: xn, yn et Rn-1 (la retenue de
l'addition des deux valeurs de la position n-1).
13
Ceci nous donne le circuit logique suivant :
- Le décodeur
Un décodeur k bits possède k entrées et 2k sorties. La sortie dont le numéro est donné par les
entrées est active (valeur 1) alors que toutes les autres sorties sont inactives (valeur 0).
14
- Le multiplexeur
Un multiplexeur k bits permet de sélectionner une entrée parmi 2k disponibles. Un
multiplexeur k bits a k + 2k entrées et une seule sortie. Les k premières entrées A0,…,Ak-1 sont
appelées bits d'adresses car elles donnent le numéro de l'entrée à sélectionner parmi les
entrées B0,…,B2k-1. La sortie S est alors égale à cette entrée sélectionnée.
Par exemple, le multiplexeur 2 bit a donc 6 entrées A0, A1, B0, B1, B2 et B3 et une seule
sortie S. La formule donnant la sortie S en fonction des entrées est la suivante.
S = (A1 . A0 . B3) + (A1 . ¬A0 . B2) + (¬A1 . A0 . B1) + (¬A1 . ¬A0 . B0)
Caractéristiques en tension :
Les entrées et les sorties d’un circuit logique sont représentée sous forme de tension. Ci-
dessous quelques caractéristiques d’un circuit logique en tension :
- Vih (Voltage Input High) : Il s'agit de la tension (voltage) d'entrée (Input) à partir de
laquelle le circuit logique considère qu'un niveau logique "1" (High) lui est appliqué
- Vil (Voltage Input Low) : C'est la tension d'entrée limite jusque laquelle le circuit
considère qu'un niveau logique "0" (Low) lui est appliqué
- Voh (Voltage Output High) : C'est la tension de sortie (Output) du circuit logique, à
partir de laquelle on considère qu'un niveau logique "1" est délivré.
- Vol (Voltage Output Low) : c'est la tension de sortie limite en dessous de laquelle on
considère qu'un niveau logique "0" est délivré.
- Immunité au bruit ou marge de bruit : C'est une marge de protection qui évite
qu'une perturbation (un parasite par exemple) ne change le niveau de sortie de la porte
logique. Elle correspond à la différence entre Voh et Vil d'une part et entre Vih et Vil
15
d'autre part. Plus cette marge est importante, et plus le circuit peut être utilisé dans un
milieu parasité.
- Tension de déchet : C'est la différence de tension entre la tension théorique
correspondant respectivement au niveau logique "1" ou au niveau logique "0" et la
tension réelle.
Technologiquement, il existe actuellement deux familles prépondérantes de circuits de
logique qui correspondent à deux techniques différentes de réalisation sous forme intégrée.
Ces deux technologies sont la famille des circuits logiques TTL (Transistor-Transistor Logic)
et la famille des circuits logiques CMOS (Complementary Metal Oxide Semi-conductor).
Parmi les avantages de ces deux familles, nous retiendrons la faible consommation statique et
la grande impédance d'entrée (~109) des CMOS, ainsi que la rapidité de la famille TTL.
Transistor-Transistor Logic ou TTL est une famille de circuits logiques utilisée
en électronique inventée dans les années 1960. Cette famille est réalisée avec la technologie
du transistor bipolaire et tend à disparaître du fait de sa consommation énergétique élevée
(comparativement aux circuits CMOS).
La technologie TTL est normalisée pour une tension d'alimentation de 5 V. Un signal TTL est
défini comme niveau logique bas entre 0 et 0,5 V, et comme niveau logique haut
entre 2,4 V et 5 V (ces niveaux varient légèrement entre les différentes séries).
L'alimentation des circuits TTL doit être précise : +5 V +-5 %, en comparaison aux
circuits CMOS qui ont, eux, une plage de tension d'alimentation bien plus vaste (de +3 à
+18 V).
La technologie CMOS, ou Complementary Metal Oxide Semiconductor, est une
technologie de fabrication de composants électroniques et, par extension, l'ensemble des
composants fabriqués selon cette technologie. À l'instar de la famille Transistor-Transistor
logic (TTL), ces composants sont en majeure partie des portes logiques (NAND, NOR, etc.)
mais peuvent être aussi utilisés comme résistance variable.
ii. Circuits programmables
o Microcontrôleur
Un microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en Anglais) est
un circuit intégré qui rassemble les éléments essentiels d'un
ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive pour les
données), unités riphériques et interfaces d'entrées-sorties. Les microcontrôleurs se
caractérisent par un plus haut degré d'intégration, une plus faible consommation électrique,
une vitesse de fonctionnement plus faible (de quelques mégahertz jusqu'à plus d'un gigahertz)
16
et un coût réduit par rapport aux microprocesseurs polyvalents utilisés dans les ordinateurs
personnels.
Par rapport à des systèmes électroniques à base de microprocesseurs et autres composants
séparés, les microcontrôleurs permettent de diminuer la taille, la consommation électrique et
le coût des produits. Ils ont ainsi permis de démocratiser l'utilisation de l'informatique dans un
grand nombre de produits et de procédés.
Les microcontrôleurs sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau,
l'électroménager, les jouets, la téléphonie mobile, etc.
Le processeur est l'élément central d'un système informatique : il interprète les instructions et
traite les données d'un programme. Il a besoin de certains éléments externes pour
fonctionner :
- une horloge pour le cadencer
- de la mémoire pour stocker les variables durant l’exécution du programme (mémoire
vive RAM) et le programme d’une mise sous tension (mémoire morte ROM).
- des périphériques (pour interagir avec le monde extérieur).
Ces éléments sont reliés par 3 bus :
- le bus d'adresse qui permet au microprocesseur 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) ;
- le 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 ;
- le 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.
17
Traditionnellement, ces composants sont intégrés dans des circuits distincts. Le
développement d'un tel système à base de microprocesseur se trouve donc pénalisé par :
- la nécessité de prévoir l'interconnexion de ces composants (bus, câblage, nappes de
connexion) ;
- la place occupée physiquement par les composants et les moyens d'interconnexion ;
- la consommation énergétique ;
- la chaleur dégagée ;
- le coût financier.
Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation)
d'un système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul
circuit intégré. Un microcontrôleur est donc un composant autonome, capable d'exécuter le
programme contenu dans sa mémoire morte dès qu'il est mis sous tension. Selon les modèles
et les conditions de fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques
composants externes (quartz, quelques condensateurs, parfois une ROM), mais ceci reste très
limité.
Un microcontrôleur intègre sur un unique circuit intégré :
- un processeur (CPU), avec une largeur du chemin de données allant de 4 bits pour les
modèles les plus basiques à 32 ou 64 bits pour les modèles les plus évolués ;
- de la mémoire vive (RAM) pour stocker les données et variables ;
- de la mémoire morte (ROM) pour stocker le programme. Différentes technologies
peuvent être employées : EPROM, EEPROM, mémoire flash (la plus récente) ;
- souvent un oscillateur pour le cadencement. Il peut être alisé avec un quartz, ou
un circuit RC ;
- des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner
entre autres :
o les convertisseurs analogiques-numériques (CAN)
o les convertisseurs numériques-analogiques (CNA)
o les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou en
anglais, PWM pour Pulse Width Modulation),
o les timers/compteurs (compteurs d'impulsions d'horloge interne ou
d'événements externes),
o les chiens de garde (watchdog), (pour s'assurer qu'un automate ou
un ordinateur ne reste pas bloqué à une étape particulière du traitement qu'il
effectue. C'est une protection destinée généralement à redémarrer le système, si
une action définie n'est pas exécutée dans un délai imparti.)
o les comparateurs (comparent deux tensions électriques),
o les contrôleurs de bus de communication.
Le fonctionnement des périphériques peut être paramétré et commandé par le programme
et/ou les entrées-sorties. Les périphériques peuvent générer une interruption qui contraint le
processeur à quitter le programme en cours pour effectuer une routine de traitement de
l’interruption, lorsque l’événement qui la déclenche survient.
Les microcontrôleurs peuvent généralement se placer dans un état de sommeil, dans lequel ils
présentent une très faible consommation électrique. Un signal envoyé par l'un de leurs
périphériques (timer, broche d'entrée-sortie, watchdog, etc.) permet de les faire sortir de cet
état de sommeil.
18
Certains microcontrôleurs ont un nombre très restreint de broches, si bien qu'une broche
donnée peut correspondre à plusieurs périphériques internes. La fonction choisie doit alors
être sélectionnée par logiciel.
Le choix des périphériques à intégrer dans un microcontrôleur est délicat. Les fabricants
doivent réaliser un compromis entre des besoins contradictoires : utiliser des fréquences
élevées, réduire la taille du circuit, apporter des fonctionnalités nombreuses, élaborer une
architecture flexible, assurer des coûts modérés, etc.
Un microcontrôleur peut effectuer la plupart des instructions machine habituelles, avec
certaines restrictions liées à son caractère embarqué (taille restreinte des mots machine, petite
taille disponible, etc.). On note cependant quelques particularités.
Les capacités mathématiques sont en général particulièrement limitées, réduites à des
additions, soustractions et décalages sur des octets pour les plus simples d'entre eux. Les
calculs mathématiques évolués doivent donc être ramenés à une succession d'opérations
simples portant seulement sur des octets. Des routines mathématiques (petits programmes
permettant de réaliser les calculs complexes) ont été développées pour la plupart des
microcontrôleurs populaires.
Les instructions d'entrée-sortie sont bien développées, de façon à pouvoir :
- lire l'état d'un port d'entrée ;
- écrire une information dans le registre d'un port de sortie, qui maintient l'information à
la disposition des circuits extérieurs.
Les microcontrôleurs disposent généralement de nombreuses instructions destinées aux
opérations sur les bits, de façon à rendre les programmes plus compacts, notamment lorsqu'ils
agissent sur une entrée-sortie donnée. Ainsi, un processeur généraliste peut avoir besoin
de plusieurs instructions pour tester la valeur d'un bit d'un registre et effectuer un saut si le bit
vaut vrai. Cette fonction courante est assurée par une seule instruction dans certains
microcontrôleurs.
Les modes d'adressage utilisables sont en général semblables à ceux des autres processeurs.
De façon générale, les instructions et modes d'adressage disponibles varient fort selon les
familles de microcontrôleurs.
Les microcontrôleurs représentent la plus grosse partie des ventes dans le marché
des microprocesseurs. En effet, un foyer moyen d'un pays développé est susceptible d'être
équipé de seulement un ou deux microprocesseurs généralistes (ordinateurs), mais d'une ou
deux douzaines de microcontrôleurs (appareils électroménagers). Une automobile de milieu
de gamme est équipée d'au moins 50 microcontrôleurs
Le programme d'un microcontrôleur est généralement
appelé micrologiciel ou microprogramme.
À l'origine, les microcontrôleurs se programmaient en assembleur. Fortement bas niveau (et
donc, intrinsèquement optimisé), l'assembleur posa et pose toujours d'énormes problèmes
pour la maintenance et l'évolution des logiciels embarqués. Désormais, on utilise de plus en
plus des langages de haut niveau, notamment le langage C
Des simulateurs sont disponibles pour certains microcontrôleurs, comme
l'environnement MPLAB de Microchip. Les veloppeurs peuvent ainsi analyser le
comportement du microcontrôleur et du programme, comme s'il s'agissait du composant réel.
Une fois le programme compilé, le fichier binaire doit être envoyé au microcontrôleur. On
utilise soit :
19
- un programmateur, pour microcontrôleurs et souvent également d’EEPROM. On parle
alors de programmateur universel.
- un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le
microcontrôleur du système électronique complet. Ce type de programmation pourra
se faire via le bus de communication standard JTAG ou un autre bus, souvent
propriétaire (Microchip par ex. avec sa série PIC16F) et, malheureusement, inadapté
au test des cartes lors de la phase de production.
o DSP
Un DSP (de l'anglais « Digital Signal Processor », qu'on pourrait traduire par « processeur de
signal numérique » ou « traitement numérique de signal ») est
un microprocesseur optimisé pour exécuter des applications de traitement numérique du
signal (filtrage, extraction de signaux, etc.) le plus rapidement possible .
Les DSP sont utilisés dans la plupart des applications du traitement numérique du signal en
temps réel. On les trouve dans les modems (modem RTC, modem ADSL), les téléphones
mobiles, les appareils multimédia (lecteur MP3), les récepteurs GPS... Ils sont également
utilisés dans des systèmes vidéo, les chaînes de traitement de son, partout où l'on reçoit
un signal complexe que l'on doit modifier à l'aide du filtrage.
Un DSP fournit des instructions usuelles comme la multiplication, l'addition, la soustraction,
etc. Mais le jeu d'instruction d'un DSP est aussi optimisé de façon à exécuter des opérations
très courantes dans les algorithmes de traitement de signal les plus usuels.
Les DSP sont aussi fortement optimisés pour exécuter des boucles le plus rapidement
possible. En effet, il n'est pas rare que les programmes de traitement du signal utilisent des
boucles, notamment pour parcourir des tableaux. Accélérer ces boucles est donc un enjeu
majeur de la conception des DSP.
Les DSP sont capables de gérer des boucles FOR en un seul cycle d'horloge.
Les DSP supportent souvent des modes d'adressages assez particuliers, qu'on ne retrouve pas
sur les autres jeux d'instructions.
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !