Microcontrôleur :

le Microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en anglais) est un Circuit programmable capable d’exécuter un programme et qui possède des circuits d’interface intégrés avec le monde extérieur.

Les microcontrôleurs sont apparus  :
⇒ Quand on a sut les fabriquer, c'est à dire quand les technologies d’intégrations ont suffisamment progressées.
⇒ Quand dans les applications domestiques ou industrielles ont avait besoin de systèmes 

« intelligents » ou tout au moins programmables. 
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.

  •    Utilisation :
 Toutes les solutions à base de composants programmables ont pour but de réduire 
le nombre de composants sur le circuit électronique et donc fiabiliser le circuit.
Le microcontrôleur est en concurrence avec d’autres technologies Suivants les applications:       3 types de technologies :
 

=>Logique câblée :
  • très rapide, fonctions réalisées par une voie matérielle.
  • non programmable, peu économique quand l’application est complexe peu de souplesse : durée d’étude prohibitif et circuit difficilement modifiable.
=>Réseaux de logique programmables (PAL, LCA,..):
  •  rapide, adapté au traitement de signaux complexes.
  •  prix élevé et langage de programmation non standard.
=>Les μprocesseurs:
  •  grande souplesse : fonctions sont réalisées par voie logicielle puissance de calcul, langage évolué.
  • nombre important de composant à réunir, solution onéreuse.
 https://sites.google.com/site/f1apy0/geek-vfo/teensy++2.jpg
_si la fonction à réaliser est simple ⇒ une logique câblée.
_si le nombre d'unités à réaliser est très important ⇒ circuits intégrés dédié en logique câblée pour les fonctions simples.

  • Avantages et inconvénients :
Une réalisation logicielle est toujours plus lente qu'une réalisation en logique câblée : le microprocesseur exécute une instruction à la fois.
Les μcontrôleurs = avantage des μprocesseurs mais limités aux applications ne nécessitant pas trop de puissance de calcul, nombre de composant très réduit, mais souvent surdimensionnement devant les besoins de l’application.

 
      =>Les avantages des microcontrôleurs:


- Diminution de l’encombrement du matériel et du circuit imprimé.
- Simplification du tracé du circuit imprimé (plus besoin de tracer de bus !).
- Augmentation de la fiabilité du système
          >nombre de composants .
          >connexions composants/supports et composant circuit imprimé .
- Intégration en technologie MOS, CMOS, ou HCMOS.
          >diminution de la consommation.
- Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux:
          >moins cher que les composants qu’il remplace.
          >Diminution des coûts de main d’oeuvre (conception et montage).
- Environnement de programmation et de simulation évolués.

 http://electronique.perso.sfr.fr/Ethernet/carte.jpg

    =>Les défauts des microcontrôleurs :

 
- le microcontrôleur est souvent surdimensionné devant les besoins de l’application.
- Investissement dans les outils de développement.
- Écrire les programmes, les tester et tester leur mise en place sur le matériel qui entoure   

    le microcontrôleur.
- Incompatibilité possible des outils de développement pour des microcontrôleurs de même marque.
- Les microcontrôleurs les plus intégrés et les moins coûteux sont ceux disposant de ROM programmables par masque.





              En conclusion :


le microcontrôleur présente l’avantage des μprocesseurs mais limités aux applications ne nécessitant pas trop de puissance de calcul (architecture courante 8bits).
 

Il existe plusieurs architecture de microcontrôleurs de 4 à 128 bits pour les applications demandant une certaine puissance de calcul (injecteurs automobile).
  •  microprocesseur et microcontrôleur:


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 à l’autre (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.
Structure d'un système à microprocesseur.


 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é.
Lorsque toutes les fonctions du système informatique sont regroupées dans un unique circuit intégré, y compris les fonctions logiques, analogiques, radiofréquence, d'interface (USB, Ethernet, etc.), on parle alors de System on Chip (système sur puce ou système mono-puce). Ces composants sont basés sur un ou plusieurs cœurs de microcontrôleur, microprocesseur, processeur graphique, contrôleur de périphériques, etc…
  •   programmation des microcontrôleurs
Le programme d'un microcontrôleur est généralement appelé micrologiciel.


À l'origine, les microcontrôleurs se programmaient en assembleur. Fortement bas niveau , 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, capable de faciliter la programmation de microcontrôleurs toujours plus puissants. Ces compilateurs C présentent généralement certaines restrictions liées aux spécificités des microcontrôleurs (mémoire limitée, par exemple). Le compilateur GCC peut produire du code pour certains microcontrôleurs. Avec l’augmentation de la puissance et de la quantité de mémoire de stockage  disponible dans les microcontrôleurs, les programmes de ces derniers peuvent désormais être écrits en C++. Il existe même des  plateformes en C++ destinés à l’embarqué, comme Qtopia, mais l'utilisation de ceux-ci restera limitée aux microcontrôleurs les plus puissants.

Il existe des environnements pour aider au développement de certaines applications. Par exemple, LabVIEW et son langage G permettent de programmer les microcontrôleurs Blackfin d'Analog Devices.










 Des simulateurs sont disponibles pour certains microcontrôleurs, comme l'environnement MPLAB de Microchip. Les développeurs peuvent ainsi analyser le comportement du microcontrôleur et du programme, comme s'il s'agissait du composant réel. Un simulateur montre l'état interne du processeur, ainsi que celui de ses sorties. Bien que la plupart des simulateurs ne proposent pas de simuler les autres composants d'un système, ils permettent de spécifier les entrées à volonté. On peut de cette façon créer des conditions qui seraient sans cela difficiles à reproduire dans une implémentation physique. Cela facilite donc l'analyse et la résolution des problèmes. De la même façon, certains logiciels de CAO simulent le comportement du microcontrôleur et des composants qui l'entourent. On peut ainsi afficher les états des entrées et sorties des différents composant au cours de l'exécution d'un programme.

Une fois le programme compilé, le fichier binaire doit être envoyé au microcontrôleur. On utilise soit :

 => 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 et, malheureusement, inadapté au test des cartes lors de la phase de production.

Toutefois, le programme qui a été envoyé peut comporter des bogues (bugs), aussi, pour parvenir à les détecter on peut utiliser un émulateur in-circuit.

  • Composants intégrés: 
Un microcontrôleur intègre sur un unique die (petit morceau de semiconducteur sur lequel un circuit intégré électronique a été fabriqué).
  • 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 .

  • souvent un oscillateur pour le cadencement. Il peut être réalisé avec un quartz, un circuit RC ou encore une PLL.
  • des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner entre autres :
    • les convertisseurs analogiques-numériques (CAN) (donnent un nombre binaire à partir d'une tension électrique).
    • les convertisseurs numériques-analogiques (CNA) (effectuent l'opération inverse).
    • les générateurs de signaux à modulation de largeur d'impulsion .
    • les timers/compteurs (compteurs d'impulsions d'horloge interne ou d'événements externes).
    • les comparateurs (comparent deux tensions électriques).
    • les contrôleurs de bus de communication (UART, SSP, CAN , USB, etc.).
 http://i.ytimg.com/vi/-PpzHPX2IwM/hqdefault.jpg


 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,  etc.) permet de les faire sortir de cet état de sommeil.

0 commentaires :

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.