1 Introduction du cours
1.1 Introduction
Les microcontrôleurs sont des circuits intégrés regroupant dans un même boîtier un microprocesseur
(CPU), des périphériques (entrées/sorties TOR, port série, temporisateurs, entrées/sorties analogiques,
I²C, CAN), de la mémoire vive et le plus souvent de la mémoire morte de programme, en d’autres
termes, tous les composants habituellement nécessaires à un système programmable.
Ces circuits sont particulièrement bien adaptés à la réalisation de systèmes de commande lorsque
peu d’entrées/sorties sont en jeu et que l’élaboration de la commande ne nécessite pas une grande
puissance de calcul. Dans certains cas, l’utilisation d’un système à base de microcontrôleur offre une
alternative à l’utilisation d’un automate industriel. A titre d’exemple, une entreprise de la région
choletaise conçoit et vend un système complet de commande/supervision de serres à l’usage des
horticulteurs. Le système proposé est modulaire ; chaque module possède un microcontrôleur qui doit
gérer des entrées/sorties (température, hygrométrie, commande des ouvrants, chauffage) et communiquer
avec les autres modules en réseau ModBus.
Le marché du semi-conducteur offre un choix très large de produits. Chaque fabricant ne propose
pas un seul microcontrôleur, mais des familles de microcontrôleurs. On peut citer à titre d’exemple : la
famille MCS51 (8x31,8x51) étudiée dans ce cours, la famille 68HCxxx Motorola (68HC11, 68HC811), la
famille PIC 16Cxx (16C84, 16F84) Microchip. Au sein d’une même famille, les microcontrôleurs
possèdent le même processeur et donc le même langage, seuls les périphériques changent. Ainsi, la
connaissance de la structure matérielle et logicielle d’un produit d’une famille permet une adaptation
rapide à tout microcontrôleur de la même famille.
Les microcontrôleurs du marché se distinguent principalement par la structure de leurs processeurs
(4,8,16 ou 32 bits, CISC1 ou RISC), la taille des espaces mémoires, la nature et la quantité de
périphériques. Certains microcontrôleurs seront spécialisés dans la gestion d’entrées/sorties TOR,
d’autres auront la possibilité de gérer des grandeurs analogiques ou posséderont des ports I²C ou CAN.
Sur le plan logiciel, outre le fait que le jeu d’instructions des microcontrôleurs 8 bits est
généralement restreint (d’autant plus s’il est à structure RISC), on dispose pour certains processeurs
d’environnements de développement intégrés contenant un assembleur, un cross compilateur C et
même parfois un simulateur. Il existe également, notamment pour la famille MCS51, des noyaux temps
réel permettant de compenser le manque de puissance de calcul par une meilleure répartition des tâches.
En résumé, lorsqu’on décide de développer un nouveau produit à base de microcontrôleur, puisque
l’offre est très vaste, plusieurs paramètres vont orienter notre choix vers un produit plutôt qu’un autre :
- le prix : il y a de très grands écarts de prix entre les produits, liés par exemple à la taille et au
type de mémoire, ainsi qu’à la nature et la quantité de périphériques.
- les périphériques : on peut se demander si toutes les fonctions décrites dans le cahier des
charge seront réalisées par le microcontrôleur ou s’il faudra ajouter des périphériques
externes.
- taille des espaces mémoire : l’espace mémoire programme sera-t-il suffisant pour
l’application ?
- consommation : déterminant pour des produits destinés à fonctionner sur batterie
- outils de développement : peut-on développer en langage évolué ? Existe-t-il un
environnement de développement intégré (éditeur, assembleur, compilateur, simulateur
/debugger) ?
- expérience/savoir faire
1 Complex Instruction Set Computer (CISC) en opposition à Reduced Instruction Set Computer (RISC)
-4-