• Aucun résultat trouvé

Dans ce mode d'adressage, l'adresse de la donnée se trouve dans un registre spécial du processeur (du même nombre de bits que son bus d'adresses), le pointeur de données

Dans le document Microprocesseurs et Microcontrôleurs (Page 99-103)

L'avantage, par rapport à l'adressage direct, est que l'adresse peut être manipulée

commodément, par exemple pour accéder à une suite de données consécutives en mémoire.

Ceci est particulièrement utile lorsqu'on manipule des données stockées dans un tableau.

II.4.5 Adressage immédiat.

C'est un peu un abus de langage que de parler d'adressage dans ce cas-ci. En effet, la donnée

suit tout simplement l'instruction.

II.4.6 Adressage indexé.

Ce mode est assez semblable à l'adressage indirect à registre. Il fait appel à un registre spécial

appelé registre d'index. Certains microprocesseurs ou microcontrôleurs ne supportent pas ce

mode, d'autres au contraire ont 1 ou même 2 registres d'index. Deux registres d'index sont

9 Jlassi Khaled

particulièrement bienvenus lorsqu'il s'agit de déplacer un bloc de données dans la mémoire

RAM d’un emplacement vers un autre. Le premier servira alors pour pointer la zone mémoire

source et le second pour pointer la zone mémoire destination.

III. Le choix d'un microcontrôleur.

Nous n'avons pour l'instant évoqué que des généralités applicables à tous les microcontrôleurs du marché, sans citer de marque précise. En effet, toute la difficulté du choix d'un microcontrôleur pour une application donnée réside dans la sélection du "bon" circuit adapté pour cette application. Le choix du microcontrôleur est surtout dicté par deux critères principaux :

- l'adaptation de son architecture interne aux besoins de l'application (présence de convertisseurs A/N par exemple ou d'un timer disposant d'un mode particulier, …); - le fait de posséder déjà ou non un système de développement.

En effet, si l'on ne possède rien, on peut se laisser guider par le premier critère en comparant toutefois les investissements de développement à prévoir. Si l'on est déjà équipé, mieux vaut choisir un circuit un peu moins bien adapté, quitte à lui adjoindre des circuits externes, que le circuit qui va bien mais qui impose un changement de système. Pour simplifier un peu ce deuxième dilemme, les fabricants ont essayé de développer non pas des microcontrôleurs isolés mais des familles de circuits, plus ou moins compatibles entre eux tant au niveau de l'architecture qu'au niveau de la programmation et des outils de développement. Il existe plusieurs familles de microcontrôleurs dont les plus connues sont :

- la famille Atmel AT91 - la famille Atmel AVR

- le C167 de Siemens/Infineon - la famille Hitachi H8

- la famille Intel 8051, qui ne cesse de grandir ; de plus, certains processeurs récents utilisent un cœur 8051, qui est complété par divers périphériques (ports d'E/S, compteurs/temporisateurs, convertisseurs A/N et N/A, chien de garde, superviseur de tension...)

- l'Intel 8085, à l'origine conçu pour être un microprocesseur, a en pratique souvent été utilisé en tant que microcontrôleur

10 Jlassi Khaled - le Motorola 68HC11

- la famille des PIC de Microchip

- la famille des ST6 de STMicroelectronics - la famille ADuC d'Analog Devices

- la famille PICBASIC de Comfile Technology

Il est bien évident que, dans le cadre de ce cours dont le nombre de pages doit forcément rester limité, il ne va pas être possible de donner toutes les informations, matérielles et logicielles, relatives à tous ces microcontrôleurs. Le manuel technique de chacun d'entre eux comporte en effet plusieurs dizaines de pages, voir parfois une centaine. Nous allons nous intéresser dans le cadre de ce cours à la famille Intel C51. Cette famille, qui ne cesse de s’agrandir, est basé sur l'architecture 8051 qui est intemporelle et continuera d'évoluer, car de nombreux concepteurs ne souhaitent pas renoncer à l'investissement réalisé dans les progiciels, les outils et l'expertise acquise avec le 8051. Il est vrai que l'utilisation du langage C, d'interfaces utilisateur plus conviviales mais plus lourdes, de jeux de caractères multiples, de vitesses de transmission accélérées et l'enregistrement des données de masse nécessitent des densités de mémoires beaucoup plus importantes que celle proposée avec la majorité des microcontrôleurs de cette famille. Toutefois si nous prenons le cas de la famille µPSD3200 basé sur l’architecture 8051, elle possède deux bancs indépendants de mémoire Flash (256 ko et 32 ko), capables de fonctionner simultanément en lecture et en écriture, 8 ko de SRAM et plus de 3000 portes de logique programmable avec 16 macrocellules. Le jeu de périphériques intègre une interface USB, deux canaux UART, quatre unités PWM 8 bits, quatre canaux ADC 8 bits, une interface maître-esclave I²C, un canal d'affichage de données, des fonctions de supervision comme l'horloge chien de garde et la détection de basse tension, et jusqu'à 50 broches d'entrée/sortie multi-usages. Il est clair que ce modèle de microcontrôleur 8 bits basé sur l’architecture C51 n’a rien à envier aux modèles 16 et 32 bits. Il convient particulièrement aux systèmes embarqués nécessitant de grandes quantités de stockage de code et/ou de données, à l'instar des périphériques utilisés sur les lieux de vente : lecteurs de chèques et de cartes, imprimantes thermiques, lecteurs de codes-barres et contrôleurs de distributeurs automatiques. Autres applications également bien prises en charge : la sécurité des immeubles, les alarmes, le contrôle d'accès, le contrôle industriel, les applications GPS portables, les téléphones publics et l'instrumentation. Il est bien clair d’après cet

11 Jlassi Khaled exemple de la famille µPSD3200 basée sur l’architecture 8051, que les microcontrôleurs 8 bits ont encore leur lot d’applications et qu’ils continueront à concurrencer les microcontrôleurs 16 et 32 bits.

La famille µPSD3200 de St Microelectronics n’est qu’un exemple, en effet plusieurs constructeurs font aujourd’hui des microcontrôleurs utilisant l’architecture 8051.

IV. La Famille MCS51

La famille MCS-51 est l'une des plus prolifiques parmi celles des microcontrôleurs. Ce processeur créé tout au début des années quatre-vingt par la société INTEL a connu au fil des années de nombreux descendants. On distingue actuellement de très nombreuses variantes fournies par six principaux constructeurs (Intel, Dallas-Semiconductor, Philips/Signetics, Oki, Siemens, Amd, Matra-Harris), sans compter quelques modèles peu répandus, réalisés par des fabricants moins connus. Cette famille MCS-51 est la plus vendue (ou la seconde selon les sources) sur le marché mondial des microcontrôleurs 8 bits non dédiés. Le marché des microcontrôleurs, qui était le second de l'électronique, est maintenant le premier devant celui des mémoires, loin devant celui des microprocesseurs (source Electronic World News). Les circuits MCS-51 sont fabriqués selon les deux technologies MOS (NMOS et CMOS) et plusieurs de leurs variantes. Alors que le composant NMOS classique consomme environ de 100 mA à 300 mA (selon la variante) sous une tension de 5V, certains types en technologie CMOS peuvent se contenter de 1,8V sous 2,5 mA (on trouve ces modèles dans les cartes à puce et les téléphones auto alimentés). Le microcontrôleur de base, qui incorpore un certain nombre de fonctions périphériques élémentaires, est commercialisé en un boîtier de 40 broches (DIL) ou de 44 broches (boîtier plat PLCC). Les variantes, épurées ou alourdies de nombreux périphériques supplémentaires, sont incluses dans des boîtiers de 24 broches (boîtier DIL étroit) à 84 broches (boîtier carrés plats divers). Le composant devenant ancien, la société Intel a (en raison du succès exceptionnel du contrôleur) mis sur le marché une version modernisée compatible appelée 80C251 et comportant un pipeline d'exécution rendant le processeur quatre fois plus rapide à fréquence d'horloge égale. D'autres améliorations comme le fonctionnement statique, une consommation nettement moindre, une capacité d'adressage étendue ont été apportées. Philips, pour sa part, commercialise depuis peu une variante 16 bits

12 Jlassi Khaled appelée 80C51-XA compatible au niveau du code source aux performances également fortement améliorées par rapport au composant initial.

Les différentes versions possèdent en outre quelques caractéristiques spécifiques

Dans le document Microprocesseurs et Microcontrôleurs (Page 99-103)