Le HC12 de Motorola

publicité
Le HC12 de Motorola
Introduction
La famille de microcontrôleurs 68HC12 a été introduite en 1996 en guise de mise à jour de la
famille 68HC11. Les membres de cette famille implémentent le même jeu d’instructions et les mêmes
modes d’adressage mais diffèrent en termes de mémoire et de fonctions périphériques. Les membres de la
famille 68HC12 possèdent les caractéristiques suivantes :
-
UPC 16 bit
-
Supporte 64k d’espace d’adresse
-
Quelques membres supportent la pagination de la mémoire avec des fenêtres prédéfinies de l’espace
mémoire
-
Entre 768 octets et 4 Ko de EEPROM
-
De 1Ko à 12 Ko de SRAM
-
Convertisseur analogique numérique de 8 bit ou 10 bit
-
Module Timer avec les fonctions input capture, output compare, accumulateur d’impulsions.
-
Modulation de largeur d’impulsion (PWM)
-
Interface de périphérique synchrone
-
Interface de communication série asynchrone
-
Communication Byte Data Link (BDLC)
-
Controller Area Network (CAN)
-
Computer operating properly (COP); mécanisme d’assurance de bon fonctionnement
-
Mode de déboguage à un fil fonctionnant en arrière plan (BDM)
-
Instructions supportant la logique floue
Les membres de la famille 68HC12 ont entre 80 et 112 broches. Voici un diagramme à bloc du 912BC32
utilisé dans nos laboratoires :
Les registres du HC12
Le HC12 a plusieurs registres qui peuvent être classés sous deux catégories : registres
UPC et registres E/S. Les registres UPC sont utilisés pour faire des opérations
mathématiques, logiques et de contrôle de flot de processus. Les registres E/S sont
utilisés principalement pour configurer les périphériques, effectuer des entrées/sorties de
données et pour afficher le statut de ces opérations. Les registres sont intégrés à l’espace
mémoire du HC12 donc on peut y écrire ou lire en écrivant ou en lisant dans la mémoire.
Voici les registres UPC du HC12 :
Accumulateurs tout usage A et B : Ce sont des registres 8 bit avec lesquels la plupart
des opérations mathématiques sont effectués. Ils peuvent être concaténés pour former un
registre 16 bit nommé accumulateur D.
Registres index X et Y : Ces deux registres sont utilisé principalement lors de la
formation d’adresses des opérandes durant l’exécution d’instructions mais peuvent être
utilisés dans quelques opérations mathématiques.
Pointeur de la pile SP : La pile est une structure dernier entré, premier sorti (LIFO). Le
HC12 a un pointeur 16 bit qui contient l’adresse du sommet de la pile. Lors de l’insertion,
le pointeur est décrémenté.
Compteur ordinal PC : Ce registre 16 bit contient l’adresse de la prochaine instruction à
exécuter. Après exécution d’une instruction, le PC est incrémenté par le nombre d’octets
dans l’instruction exécuté.
Modes d’adressage du HC12
Le 68HC12 a un bus d’adresse 16 bit et un bus de données 16 bit. Ceci permet au HC12
d’accéder à 16 bits de données en une opération de transfert. Les 16 bit d’adresse
permettent au HC12 d’accéder à 65536 adresses différentes.
Une instruction sur le HC12 contient un ou deux octets spécifiant l’instruction et entre
zéro et cinq octets spécifiant les paramètres de l’instruction. Les modes d’adressage
spécifient comment l’UPC accède aux espaces mémoire. Voici un sommaire des modes
d’adressage du HC12 :
Mode inhérent
Dans ce mode, il peut ne pas y avoir d’opérandes ou ils sont contenus entièrement dans
les registres internes de l’UPC. L’UPC n’a donc pas besoin d’accéder à la mémoire lors
de l’exécution de l’instruction.
Ex :
- NOP ; instruction sans opérandes
- INX ; opérande est un registre interne de l’UPC
Mode Immédiat
Les opérandes de ce mode sont inclus dans l’instruction. L’UPC n’accède pas à la
mémoire. Une valeur immédiate peut être 8 bit ou 16 bit selon le contexte de
l’instruction. Un valeur immédiate est précédée de # lors de l’écriture en langage
assembleur.
Ex :
- LDAA #55
;place 55 en hexadécimal dans A
- LDX #$2000
;place 2000 en hexadécimal dans X
Mode Direct
Ce mode est utilisé pour accéder aux données situés aux adresses dans les 256 premiers
octets de mémoire. Il n’est donc pas nécessaire de stocker une adresse de plus de 8 bits
en mémoire.
Ex :
- LDAA $20
;charge le contenu de l’adresse située à 32 octets de l’adresse du
compteur ordinal
Mode Étendu
Dans ce mode, 16 bits sont utilisés pour spécifier l’adresse de la donnée mémoire.
Ex :
- LDAA $2000
ordinal
;charge le contenu de l’adresse située à 8Ko de l’adresse du compteur
Mode relatif
Ce mode est utilisé par les instructions de branchement parce qu’il permet d’accéder aux
adresses situés à moins de 128 octets de l’adresse du compteur ordinal.
Ex :
- BRA #$20
Instructions principales
Instructions de stockage et de chargement
Instructions d’échange et de transfert
Instruction de déplacement
Instructions d’addition et de soustraction
Téléchargement