C'est trop fastoche !

Les circuits intégrés numériques

Les circuits intégrés numériques sont des puces électroniques conçues pour traiter des informations sous la forme de valeurs discrètes. Alors qu'un circuit analogique travaille avec des tensions ou des courants pouvant prendre continuellement différentes valeurs, un circuit numérique utilise principalement des états logiques distincts.

Le système le plus courant repose sur deux états représentés par 0 et 1. Ces deux valeurs correspondent physiquement à des plages de tensions électriques. Un 0 logique n'est donc pas nécessairement une tension exactement égale à zéro volt, et un 1 logique n'est pas nécessairement une tension exactement égale à la tension d'alimentation. Le circuit définit des plages de tension dans lesquelles chaque état est reconnu sans ambiguïté.

Cette représentation permet de traiter des nombres, des caractères, des images, des sons, des instructions et de nombreuses autres informations en les transformant en suites de bits.

Des composants séparés aux circuits numériques intégrés

Les premiers systèmes numériques étaient constitués de nombreux composants électroniques reliés entre eux. Chaque fonction logique nécessitait plusieurs transistors, résistances et autres composants, eux-mêmes reliés par des fils ou des pistes.

L'intégration de ces composants sur une même plaque de silicium a profondément changé cette organisation. Des fonctions qui occupaient autrefois une grande quantité de composants peuvent désormais être réalisées sur une seule puce contenant des milliers, des millions ou des milliards de transistors.

La miniaturisation a également réduit les distances parcourues par les signaux électriques. Les informations circulent ainsi plus rapidement entre les différentes parties d'un même circuit, tandis que les connexions externes deviennent beaucoup moins nombreuses.

Les transistors comme éléments logiques

Le fonctionnement d'un circuit numérique repose principalement sur des transistors. Utilisés dans certaines configurations, ils permettent de contrôler le passage du courant et de représenter les différents états logiques.

Plusieurs transistors peuvent être associés pour réaliser une fonction logique. Des combinaisons de ces fonctions permettent ensuite d'effectuer des opérations beaucoup plus complexes.

Une porte logique peut par exemple produire un 1 uniquement lorsque deux entrées sont simultanément à 1. Une autre peut produire un 1 lorsqu'au moins une de ses entrées est à 1. En associant ces fonctions élémentaires, les concepteurs construisent progressivement des circuits capables d'effectuer des calculs, de prendre des décisions et de manipuler des données.

Des portes logiques aux fonctions complexes

Les portes logiques constituent les éléments de base à partir desquels sont construits les circuits numériques plus élaborés. Elles sont regroupées en ensembles réalisant des opérations particulières.

Certains ensembles effectuent des additions et des soustractions, d'autres réalisent des comparaisons, sélectionnent une information parmi plusieurs possibilités ou déplacent des données. D'autres encore contrôlent l'ordre dans lequel les différentes opérations sont effectuées.

La complexité augmente ainsi par niveaux successifs : quelques transistors forment une fonction élémentaire, plusieurs fonctions forment un bloc logique, puis de nombreux blocs sont réunis dans une même puce.

La logique combinatoire

Dans un circuit de logique combinatoire, l'état des sorties dépend directement de l'état présent des entrées.

Une modification des entrées provoque donc une modification correspondante des sorties après le très court temps nécessaire aux signaux pour traverser les différents transistors et portes logiques.

Un circuit qui additionne deux nombres binaires constitue un exemple de logique combinatoire. Il reçoit les bits des deux nombres et produit immédiatement les bits correspondant au résultat.

La logique séquentielle

D'autres circuits doivent conserver une information pendant un certain temps. Ils utilisent alors une logique séquentielle, capable de mémoriser un état précédent.

Des cellules élémentaires peuvent ainsi conserver un bit, tandis que l'association de nombreuses cellules permet de conserver des suites de bits beaucoup plus importantes.

Cette capacité à conserver un état est essentielle pour réaliser des systèmes qui doivent suivre une succession d'étapes, compter des événements, conserver temporairement des données ou exécuter une série d'opérations dans un ordre déterminé.

Le temps et l'horloge

Les circuits numériques complexes doivent synchroniser leurs opérations. Une horloge électronique fournit alors un signal périodique servant de référence temporelle.

À chaque transition de l'horloge, certaines parties du circuit peuvent enregistrer une nouvelle valeur, tandis que d'autres commencent l'opération suivante.

La fréquence de l'horloge indique le nombre de cycles effectués chaque seconde. Une fréquence de 1 GHz correspond ainsi à un milliard de cycles par seconde.

La fréquence seule ne détermine cependant pas la quantité de travail réellement effectuée. L'organisation interne du circuit, le nombre d'opérations réalisées par cycle, les temps d'accès aux données et les échanges entre les différents blocs interviennent également.

Les données binaires

Les circuits numériques manipulent les informations sous forme de bits. Un bit peut prendre deux états, 0 ou 1. En regroupant plusieurs bits, il devient possible de représenter des nombres beaucoup plus importants.

Huit bits forment un octet et permettent de représenter 256 valeurs différentes, de 0 à 255 lorsqu'ils sont utilisés pour coder des nombres entiers non signés.

Des groupes beaucoup plus importants de bits sont utilisés pour représenter des nombres, des caractères, des couleurs, des instructions ou des adresses. Une image numérique, par exemple, est finalement stockée sous la forme d'une immense quantité de valeurs binaires.

Le traitement des instructions

Certains circuits numériques sont capables d'interpréter une succession d'instructions. Une instruction est elle-même représentée sous forme binaire et indique l'opération à effectuer ainsi que les données concernées.

Le circuit récupère une instruction, l'interprète puis active les différents blocs nécessaires à son exécution. Il peut ensuite passer à l'instruction suivante.

Cette organisation permet de réaliser des programmes complexes sans modifier physiquement les connexions internes de la puce à chaque nouvelle tâche.

Les échanges entre les blocs

Dans une puce complexe, les différents blocs doivent continuellement échanger des données. Ces échanges utilisent des liaisons numériques constituées de nombreuses connexions parallèles ou de liaisons série à très grande vitesse.

Plusieurs bits peuvent être transportés simultanément sur des lignes différentes. Une liaison de 32 bits peut ainsi transporter 32 bits en parallèle lors d'une opération de transfert, tandis qu'une liaison série transmet les bits les uns après les autres à très haute fréquence.

Les circuits internes utilisent également des signaux de contrôle pour indiquer qu'une donnée est disponible, qu'une opération doit commencer ou qu'un transfert peut se poursuivre.

Les différents blocs d'une puce numérique

Une puce numérique complexe est généralement constituée de nombreux blocs spécialisés. Certains réalisent les opérations logiques et arithmétiques, d'autres conservent les informations, d'autres encore organisent les échanges de données ou contrôlent le fonctionnement général du circuit.

La quantité et l'organisation de ces blocs dépendent de la fonction recherchée. Une puce destinée principalement au calcul ne possède pas nécessairement la même architecture qu'une puce conçue pour conserver de grandes quantités de données ou traiter rapidement des opérations répétitives.

Certaines puces regroupent également plusieurs fonctions très différentes sur une même surface de silicium. Cette intégration permet de réduire le nombre de composants externes et les distances entre les différents traitements.

La mémoire dans les circuits numériques

La capacité à stocker des informations binaires constitue une fonction fondamentale de l'électronique numérique.

Une cellule élémentaire peut conserver un bit. En regroupant des milliers, des millions ou des milliards de cellules, une puce peut conserver des quantités considérables de données.

Les différentes technologies de stockage ne possèdent pas les mêmes caractéristiques. Certaines permettent des accès extrêmement rapides mais sont utilisées pour de petites quantités de données, tandis que d'autres peuvent conserver beaucoup plus d'informations avec une densité élevée.

La manière dont les données sont conservées, la vitesse d'accès, la consommation électrique et la conservation ou non des informations lorsque l'alimentation est coupée dépendent de la technologie utilisée.

La miniaturisation

L'un des principaux progrès des circuits intégrés numériques est l'augmentation constante du nombre de transistors pouvant être placés sur une même puce.

La réduction des dimensions permet d'intégrer davantage de fonctions sur une surface identique. Elle réduit également certaines capacités électriques parasites et permet de faire fonctionner les transistors à des fréquences très élevées.

Cette miniaturisation impose cependant des contraintes importantes. Lorsque les structures deviennent extrêmement petites, les variations de fabrication, les fuites électriques, la dissipation thermique et les effets physiques liés aux très faibles dimensions deviennent plus difficiles à maîtriser.

La consommation électrique

Un circuit numérique consomme de l'énergie lorsqu'il change d'état et lorsque ses différents transistors présentent des courants de fuite.

Une partie de cette énergie est transformée en chaleur. Plus une puce contient de transistors et plus elle fonctionne rapidement, plus la gestion de cette chaleur devient importante.

Les concepteurs cherchent donc à réduire la tension d'alimentation, limiter les commutations inutiles et désactiver certaines parties du circuit lorsqu'elles ne sont pas utilisées.

La fiabilité des signaux numériques

Un circuit numérique ne doit pas seulement produire des 0 et des 1. Il doit les produire suffisamment rapidement et avec des niveaux électriques suffisamment éloignés des zones d'incertitude pour que les circuits suivants les interprètent correctement.

Les parasites électriques, les variations de tension, les retards de propagation et les interférences entre les connexions peuvent perturber les signaux.

Les circuits sont donc conçus avec des marges électriques et temporelles permettant de conserver un fonctionnement fiable malgré ces perturbations.

Des circuits simples aux systèmes très complexes

Les premiers circuits numériques intégrés ne contenaient qu'un nombre relativement faible de composants. Les progrès de la fabrication du silicium ont ensuite permis d'augmenter progressivement leur densité.

Cette évolution a conduit à des puces capables de réunir sur quelques millimètres carrés des unités de calcul, des systèmes de stockage, des blocs spécialisés et de nombreuses interfaces de communication.

La conception moderne consiste donc moins à relier quelques composants qu'à organiser des ensembles extrêmement complexes de blocs électroniques contenant chacun des millions de transistors.

Les circuits intégrés numériques constituent ainsi une famille très vaste. Certains sont principalement destinés au traitement des instructions, d'autres au calcul spécialisé, au stockage des données, à la réalisation de fonctions programmables ou encore à l'intégration de plusieurs fonctions dans une même puce.

Les microcontrôleurs

Un microcontrôleur, souvent appelé MCU (Microcontroller Unit), est un circuit intégré qui regroupe sur une seule puce un processeur, de la mémoire et de nombreux périphériques électroniques. Il est conçu pour piloter automatiquement un appareil ou une machine en exécutant un programme enregistré dans sa mémoire.

Contrairement à un microprocesseur, qui a besoin de nombreux composants externes pour fonctionner, le microcontrôleur est presque autonome. Il suffit généralement de lui fournir une alimentation, un oscillateur et quelques composants de base pour qu'il puisse contrôler un système électronique complet.

Les microcontrôleurs sont présents dans les appareils électroménagers, les automobiles, les robots, les montres connectées, les télécommandes, les drones, les imprimantes, les systèmes d'alarme, les objets connectés et des milliards d'autres équipements.

Le principe de fonctionnement

Le microcontrôleur exécute en permanence un programme enregistré dans sa mémoire.

Il lit les informations provenant de ses entrées, effectue les traitements nécessaires puis commande ses sorties en fonction des résultats obtenus.

Ce cycle est répété des milliers ou des millions de fois chaque seconde afin de réagir presque instantanément aux événements extérieurs.

Par exemple, dans un four électrique, le microcontrôleur mesure la température grâce à un capteur, la compare à la température demandée puis commande la résistance chauffante pour maintenir la bonne cuisson.

Les principaux éléments d'un microcontrôleur

Un microcontrôleur moderne réunit plusieurs blocs fonctionnels sur une même puce.

  • un processeur chargé d'exécuter les instructions ;
  • une mémoire Flash contenant le programme ;
  • une mémoire RAM destinée aux calculs temporaires ;
  • une mémoire EEPROM ou une mémoire Flash permettant de conserver certaines données ;
  • des ports d'entrée et de sortie ;
  • des temporisateurs ;
  • des interfaces de communication ;
  • des convertisseurs analogique-numérique et parfois numérique-analogique ;
  • des oscillateurs internes ou externes.

Cette forte intégration réduit le nombre de composants nécessaires et améliore la fiabilité du système.

Les mémoires

Le programme est généralement enregistré dans une mémoire Flash, qui conserve son contenu même lorsque l'alimentation est coupée.

La mémoire RAM sert à stocker les variables et les résultats des calculs pendant l'exécution du programme.

Certains microcontrôleurs possèdent également une mémoire EEPROM, utilisée pour conserver des paramètres comme des réglages, des compteurs ou des informations de configuration.

Les entrées et les sorties

Les broches d'entrée et de sortie, appelées GPIO (General Purpose Input/Output), permettent au microcontrôleur de communiquer avec le monde extérieur.

Une broche peut être configurée comme entrée afin de lire l'état d'un bouton, d'un interrupteur ou d'un capteur.

Elle peut également être configurée comme sortie pour commander une LED, un relais, un moteur ou tout autre circuit électronique.

Les entrées analogiques

De nombreux microcontrôleurs possèdent un ou plusieurs convertisseurs analogique-numérique intégrés.

Ils permettent de mesurer directement la tension fournie par un capteur de température, une photorésistance, un potentiomètre ou tout autre dispositif analogique.

Le programme peut ensuite utiliser ces mesures pour prendre des décisions ou effectuer des calculs.

Les sorties analogiques

Certains microcontrôleurs intègrent également un convertisseur numérique-analogique.

Lorsqu'ils n'en possèdent pas, ils utilisent souvent une technique appelée modulation de largeur d'impulsion (PWM) pour produire une tension moyenne variable.

Cette méthode permet par exemple de régler la luminosité d'une LED, la vitesse d'un moteur ou la puissance d'un système de chauffage.

Les temporisateurs

Les temporisateurs intégrés permettent de mesurer des durées, de compter des impulsions ou de produire des signaux périodiques.

Ils sont utilisés pour créer des horloges, générer des signaux PWM, mesurer la vitesse de rotation d'un moteur ou contrôler précisément des séquences de fonctionnement.

Les interruptions

Un microcontrôleur ne se contente pas d'exécuter son programme dans l'ordre.

Lorsqu'un événement important survient, comme l'appui sur un bouton ou la réception d'une donnée, une interruption peut interrompre momentanément le programme principal.

Le microcontrôleur traite immédiatement cet événement puis reprend l'exécution du programme exactement là où il s'était arrêté.

Les interruptions permettent d'obtenir une très grande réactivité sans gaspiller inutilement les ressources du processeur.

Les interfaces de communication

Les microcontrôleurs disposent généralement de plusieurs interfaces leur permettant de communiquer avec d'autres circuits.

Les interfaces UART servent aux communications série simples.

Les bus I²C permettent de relier plusieurs capteurs avec seulement deux fils.

Le bus SPI est utilisé pour communiquer rapidement avec des mémoires, des écrans ou des convertisseurs.

Selon les modèles, d'autres interfaces peuvent être disponibles, comme USB, CAN, Ethernet, LIN, I²S ou encore des contrôleurs radio intégrés.

Les modes de faible consommation

De nombreux appareils fonctionnent sur batterie et doivent économiser leur énergie.

Les microcontrôleurs disposent donc de plusieurs modes de veille qui réduisent fortement leur consommation électrique.

Ils peuvent arrêter certaines parties du circuit, ralentir leur horloge ou se mettre presque complètement en sommeil jusqu'à ce qu'un événement extérieur les réveille.

Cette fonctionnalité est indispensable dans les montres connectées, les capteurs sans fil ou les objets connectés fonctionnant plusieurs années avec une seule pile.

La programmation

Les microcontrôleurs sont programmés à l'aide de langages comme le C, le C++, l'assembleur ou parfois le MicroPython.

Le programme est transféré dans la mémoire Flash grâce à un programmateur ou directement par une interface USB, selon les modèles.

Une fois programmé, le microcontrôleur exécute automatiquement son logiciel à chaque mise sous tension.

Les applications

Les microcontrôleurs pilotent les machines à laver, les fours, les thermostats, les alarmes, les imprimantes, les robots, les drones, les véhicules, les systèmes de navigation, les objets connectés, les équipements médicaux, les instruments de mesure et de très nombreux systèmes industriels.

Ils permettent également de réaliser des cartes de développement destinées à l'apprentissage de l'électronique, au prototypage rapide et à la création de projets personnels.

Quelques microcontrôleurs célèbres

Les familles PIC de Microchip et AVR d'Atmel ont longtemps été les plus utilisées dans les projets éducatifs et industriels.

Les cartes Arduino ont largement contribué à populariser les microcontrôleurs auprès des étudiants, des enseignants et des passionnés d'électronique, principalement grâce aux microcontrôleurs AVR puis ARM.

Les familles STM32, basées sur l'architecture ARM Cortex-M, sont aujourd'hui très répandues dans l'industrie.

Les ESP8266 et ESP32 ajoutent des fonctions Wi-Fi et Bluetooth directement sur la même puce, ce qui les rend particulièrement adaptés aux objets connectés.

↑ Retour en haut

Jeux