Périphériques de microcontrôleur

Qu’elle est la différence entre un microprocesseur et un microcontrôleur ? Lorsqu’on débute en électronique nous pourrions penser qu’il n’y en a pas. Cependant cette différence existe; elle réside dans les “périphériques”. Un microprocesseur ne gère que des instructions (code à exécuter) – c’est le bon vieux CPU de notre ordinateur portable ou de bureau. Un microcontrôleur est un microprocesseur + des périphériques, le tout dans le même composant. Pour un portable ou un ordinateur de bureau, les périphériques – tels que la RAM, le disque dur, le processeur graphique – sont séparés du microprocesseur (CPU). Le compromis entre flexibilité, taille, coût, et simplicité; le fait d’avoir des périphériques externes procure une grande flexibilité car, par exemple, vous pouvez facilement choisir différentes tailles et types de RAM, de disque dur ou de GPU; alors que tout regrouper dans un seul composant rend les choses plus compactes, rentables et simples – particulièrement lorsqu’on travaille sur des systèmes embarqués compacts.

Les fabricants de microcontrôleurs offrent habituellement une large gamme de microcontrôleurs avec une choix de taille mémoire et diverses options de périphériques, associé à un outil de recherche qui permet de déterminer le composant qui correspond aux fonctionnalités dont vous avez besoin. De quel périphériques parlons-nous? 

La mémoire

L’élément le plus important car le microprocesseur doit lire quelque part les instructions à exécuter, et l’emplacement habituel pour ceci est la mémoire non volatile (ROM – Read-Only Memory). Non volatile signifie que la mémoire ne perd pas son contenu lorsque l’alimentation s’arrête. C’est typiquement de la mémoire FLASH qui est utilisée, sachant que précédement on utilisait de la mémoire qui devait être effacée avec une lampe UV avant d’être reprogrammée! Un autre type important de mémoire est la RAM (Random Access Memory), plus rapide que la ROM mais volatile (elle perd son contenu lorsqu’elle n’est pas alimentée) – elle est utilisée par le microprocesseur pour sauvegarder les “variables” (les valeurs avec lesquelles le programme travaille pour effectuer des calculs).
Contenu de simulation PIC en cours d’exécution.

Communications

Un des premiers protocoles de communication a été l’UART (Universal Asynchronous Receiver and Transmitter). Nous ne nous plongerons pas dans le détail des nombreux protocoles de communication dans cet article, sachant que l’UART a été un des protocoles utilisés dans les ordinateurs de bureaux avant l’invention de l’USB (Universal Serial Bus). Dans Windows, les ports UART sont appelés ‘COM Ports’, et bien qu’ils n’existent plus dans les ordinateurs modernes, ils restent largement utilisés sous la forme de composants convertisseurs USB-UART (tel que l’omniprésent FT232R). Les deux protocoles de communications standards développés ensuite ont été le SPI (Standard Peripheral Interface) et l’I2C (Inter-IC Communication) , qui ont permis de connecter de nombreux composants externes sur le même bus de communication.
Analyseur de protocole SPI entre  un AVR et un CAN série TLC549 serial 
Depuis, plusieurs protocoles de communication ont été développés; y compris USB, CAN et Ethernet.

A ce stade il est bon de préciser que les périphériques sont des composants séparés du microprocesseur qui le déchargent de certaines tâches – le microprocesseur se contente de demander “merci de m’envoyer la donnée” et le périphérique de communication se charge des choses sérieuses. Cette manière de procéder permet au microprocesseur de s’occuper d’autres choses. Plusieurs périphériques peuvent opérer au même moment en parallèle, ce qui ne serait pas possible si le microprocesseur devait les gérer lui-même.

Timer et compteur

Les timers sont utilisés pour tracer le temps (par exemple, un timer peut être configuré pour délivrer un ‘tick’ toutes les 1ms) et les compteurs peuvent être utilisés pour compter les impulsions sur une broche externe, par exemple. Les timers et compteurs peuvent également servir à d’autre choses tel qu’un PWM (Pulse-Width Modulation – modulation par largeur d’impulsion).

Convertisseur analogique-numérique

Un CAN (ADC en anglais) est utilisé pour lire une tension analogique et la convertir en un nombre numérique que le microprocesseur peut traiter.

 

Technique de suréchantillonnage pour MCU Stellaris

 

GPIO

Signifie ‘General-Purpose Input/Output’ (entrée sortie à usage général). Ces broches sont utilisées pour des communication “on”/”off” simples, tel qu’une lecture d’un bouton ou pour allumer une LED. Cependant les GPIOs peuvent être plus complexes qu’un simple “on” et “off”, avec des possibilités de pull-up et de pull-down, et de contrôle de slew rate (voir l’article sur la conception des circuits haute vitesse).

Watchdog Timer

Le travail du ‘watchdog’ (chien de garde) est de s’assurer que le CPU ne reste pas ‘bloqué’ dans un scénario de code erroné. Si le ‘watchdog’ n’est pas activé périodiquement alors il validera le bouton reset, ce qui provoquera un redémarrage de l’exécution du programme depuis le début. Ceci ne serait pas nécessaire si le programme était parfaitement codé ! C’est donc une sécurité pour se récupérer en cas de ‘bug’.

DMA

Le contrôleur de mémoire dynamique (DMA – Dynamic Memory Controller), pour les microcontrôleurs qui en possèdent un, peut transférer les données entre les périphériques et la mémoire (ou de mémoire à mémoire) sans que le microprocesseur ait besoin de s’en occuper. Alors qu’un périphérique de communication peut uniquement recevoir et sauvegarder une octet à un instant donné avant que le microprocesseur le prenne en compte (afin que des données supplémentaires puissent être reçues sans être perdues), un DMA peut être configuré pour conserver les communications reçues dans un large bloc memoire afin d’être traitées lorsque le microprocesseur est prêt.

RTCC

L’horloge calendrier temps réel (real-time calendar and clock) conserve la trace de la date et de l’heure.
Real Time Clock Maxim DS1307 en action avec un AVR Arduino

Et beaucoup, beaucoup plus...

La liste des périphériques disponibles sur un microcontrôleur augmente sans cesse. Citons les DAC (Digital to Analog Converters), les VIC (Vectored Interrupt Controllers), CLC (Configurable Logic Cell) et les timers angulaires.

Périphériques externes

Bien que de nombreux périphériques sont actuellement intégrés aux microcontrôleurs, il existe de nombreux périphériques qui restent externes – tel que GPS, accélèromètres, etc. Ces périphériques externes communiquent grâce aux protocoles déjà cités, à savoir SPI ou I2C.
Analyseur de protocole I2C. Traffic entre une EEPROM série externe et un microcontrôleur PIC 

Simulation

Proteus gère un grand nombre de microcontrôleurs et de périphériques externes en simulation; depuis les anciens 8086 pratiquement sans périphériques intégrés, jusqu’aux ARM remplis de périphériques. Proteus possède également des outils d’analyse et de débogage des protocoles de communication tels que UART / SPI et I2C. Si vous êtes intéressé par cette thématique, vous pouvez vous reporter à Proteus VSM.
Scroll to Top