Microcontrôleur
Un microcontrôleur est une puce électronique programmable. Il se programme généralement avec un langage de bas-niveau (C, C++). Il est constitué des composants suivants :
- un processeur, pour exécuter des instructions (calculs, tests logiques, etc.) ;
- de la mémoire morte (mémoire programme), non volatile, pour conserver des informations sur le long terme, notamment le code source du programme ;
- de la mémoire vive (mémoire donnée), volatile, pour les données manipulées par le programme durant son exécution ;
- un oscillateur, qui cadence le système ;
- des timers, pour gérer le temps ;
- un watchdog, pour redémarrer en cas de plantage ;
- des entrées-sorties.
Les composants sont reliés par 3 bus : bus de contrôle, d’adresse et de données.
Interfaces d’entrées-sorties
Certaines interfaces E/S sont des E/S binaires, d’autres sont connectées à des circuits spécifiques, intégrés au microcontrôleur :
- un CAN (conversion analogique numérique, ADC en anglais) numérise un signal analogique ;
- un CNA (DAC en anglais) produit un signal analogique à partir de données binaires ;
- un MLI (modulation de largeur d’impulsions, PWM en anglais) produit un train d’impulsions ;
- un contrôleur permet la communication sur un réseau (I²C, CAN, Ethernet, etc.).
Système embarqué
Un produit intelligent (robot, drone, TV, voiture, etc.) comporte une carte-mère, dont le composant central est un microcontrôleur. Associée à un réseau de capteurs, modules et actionneurs, intégrés à la carte-mère ou distribués dans le produit, la carte-mère constitue le système embarqué (embedded system) du produit.
Un système embarqué doit satisfaire aux exigences suivantes :
- consommation en énergie très faible ;
- dimensions limitées ;
- fiabilité et robustesse ;
- réaction en temps réel ;
- puissance de calcul et mémoire adaptée à son utilisation.
Une carte de développement est une carte-mère, optimisée pour le test et le prototypage, servant à concevoir des systèmes embarqués (ex : Arduino UNO, Nucleo STM32).