• Aucun résultat trouvé

I- Initiation aux microcontrôleurs : Application au 68HC11

N/A
N/A
Protected

Academic year: 2022

Partager "I- Initiation aux microcontrôleurs : Application au 68HC11"

Copied!
11
0
0

Texte intégral

(1)

SMI-S4 1/12 I.OUADNOUNI Chapitre 3

Initiation aux microcontrôleurs : Application au 68HC11

I- Introduction

Un microcontrôleur est un objet capable de traiter, de stocker et de restituer de l’information. Il est en particulier constitué d’un microprocesseur. C’est la partie centrale qui permet le traitement de l’information.

Un microprocesseur est un circuit intégré VLSI (very large scale integrated circuit). Il comprend des milliers voir des millions de transistors. Ils réalisent les fonctions logiques suivantes :

• Calculs arithmétiques et logiques

• Mémorisation

• Interface de communication

L’objectif du cours est de comprendre à travers le microcontrôleur 68HC11F1 le fonctionnement des microcontrôleurs en général.

Pour cela, l’architecture générale des microcontrôleurs sera d’abord abordée (pour énumérer et définir les différents constituants d’un microcontrôleur). Ensuite l’architecture du 68HC11F1 sera détaillée.

Enfin, la programmation en assembleur (langage bas niveau, proche du langage machine) sera étudiée.

Usage des microcontrôleurs dans l’industrie

Le développement des microcontrôleurs, associés à leur faible coût en permet une large utilisation dans des domaines variés. Les microprocesseurs sont utilisés dans les systèmes automatisés pour réaliser un processus industriel :

• Matière d’œuvre : ce sur quoi s’effectue le processus • Energie : ce qui permet d’effectuer le processus

• Partie opérative : ce qui permet de réaliser le processus (outils, machine)

• Partie commande : coordonne les différents processus de réalisation Pour les systèmes non automatisés, la partie commande est réalisée par l’homme tandis que pour les systèmes automatisés la partie commande est réalisée par les circuits électroniques.

Pour la partie commande électronique, il existe deux solutions :

• La logique câblée

• Microprocesseur :

 Reçoit de l’information de l’extérieur (capteurs, mémoire de masse (disquette, disque dur, CD Rom), interface homme machine (clavier, souris), autres processeurs…

 Traite l’information : il répond aux entrées en effectuant la série d’instructions stockées en mémoire

 Renvoie de l’information à l’extérieur (actionneur, vanne, interface homme- machine, mémoire de masse, autre processeur

Domaine d’application des microprocesseurs

• Aéronautique

(2)

SMI-S4 2/12 I.OUADNOUNI

• Contrôle des processus industriels (régulation, pilotage)

• Appareil de mesure (affichage, calcul statistique, mémorisation)

• Automobile (ABS, régulateur de vitesse, injection, GPS, airbag)

• Multimédia (carte audio, carte vidéo, décodeur MP3, magnétoscope)

• Electroménager (lave-vaisselle, lave-linge, four micro-onde)

II-Structure interne

Le micro-contrôleur Motorola 68HC11 peut fonctionner avec des horloges allant jusqu'à 12MHz. Tous les registres étant statiques, une coupure d'horloge n'entraine pas de perte de donnée.

Le 68HC11 intègre de puissants périhériques :

 Port de communication série asynchrone

 Port de communication série synchrone

 Ports analogiques

 Timers très complèts

 Chien de garde

 Génération d'interruptions temps réel

 Jusqu'à 12KO de ROM ou d'EPROM

 Jusqu'à 1KOde RAM

 Jusqu'à 8KO d'EEPROM

Schéma fonctionnel

Le 68HC11 est disponible suivant les versions en boitier DIP ou PLCC. L’unité centrale 68HC11 est dérivée du « vieux » 6801. Il existe une grande variété de 68HC11, issus du

(3)

SMI-S4 3/12 I.OUADNOUNI 68HC11A8. Autour de l’unité centrale du 68HC11, on trouve de la mémoire. Elle se subdivise au maximum en trois blocs distincts dont la taille et la présence varient selon les références exactes du circuit : RAM ( 256 octets minimum), ROM (présente ou absente) et EEPROM.

Cette unité centrale est entourée d’un certain nombre de ports parallèles baptisés port A à port E qui peuvent être bidirectionnels ou unidirectionnels selon le cas. Un timer est également disponible. Il comporte plusieurs timers très évolués, ainsi qu’un accumulateur d’impulsions, une horloge temps réel et un chien de garde (ou COP : Computer Operating Properly) destiné à surveiller le fonctionnement du microcontrôleur. Un convertisseur analogique/numérique à huit entrées complète les ressources internes du 68HC11.

Les caractéristiques de l’ensemble des microcontrôleurs de la famille 68HC11 sont présentées dans le tableau suivant :

Brochage du MC68HC11F1 en boitier PLCC 68 broches

(4)

SMI-S4 4/12 I.OUADNOUNI On peut souligner les éléments suivants :

 microcontrôleur en technologie HCMOS.

 512 octets de EEPROM.

 1 Koctets de RAM.

 Un timer 16 bits.

 2 accumulateurs 8 bits.

 Une liaison série asynchrone (SCI).

 Une liaison série synchrone (SPI).

 Un convertisseur Analogique/Numérique 8 bits,8 entrées multiplexées.

 Circuit d’interruption temps réel.

 Circuit oscillant externe.

Architecture du 68HC811F1

(5)

SMI-S4 5/12 I.OUADNOUNI 2-1 Accumulateurs :

Accumulateurs A, B et D :

Les registres A et B sont des accumulateurs 8 bits indépendants utilisés pour toutes opérations arithmétiques et logiques. A et B peuvent être concaténés et former un accumulateur D de 16 bits. Attention cet accumulateur n’est pas indépendant de A et B.

Registres d’index X et Y :

Les registres d’index X et Y, indépendants, possèdent 16 bits chacun, puisque la capacité d’adressage du 68HC11 est de 16 bits d’adresses. Leur rôle premier est d’être utilisé pour l’adressage indexé, mais ils peuvent être utilisés pour le stockage temporaire de données, ou pour quelques opérations arithmétiques élémentaires.

Pointeur de pile S :

Le pointeur de pile S est un registre 16 bits. Ce registre pointe sur la première adresse libre de la zone mémoire définie pour ranger différents paramètres, tel registre PC, registre CCR, etc ..., suivant la demande (interruption, appel à un sous-programme). Il est indispensable de l’initialiser à une adresse RAM, sinon à la première interruption ou appel à un sous-programme, le programme se plantera (bug).

Compteur programme ou PC :

Le compteur programme, PC, indique l’adresse du prochain code binaire à 8 bits (instruction ou valeur de travail) à traiter. La taille du registre PC est donc de 16 bits.

Registre d’état ou CCR :

Le registre d’état ou CCR ( Condition Code Register) est un registre sur 8 bits. Chaque bit à une signification particulière.

Le bit C (Carry) : C est mis à 1 lorsqu’une opération arithmétique génère une retenue. Il est également utilisé comme indicateur d’erreur lors d’une multiplication ou d’une division, et sert lors de certaines opérations de décalage ou rotation qui peuvent passer par son intermédiaire ou non.

Le bit V (oVerflow) : V est mis à 1 lorsqu’une opération arithmétique génère un débordement de l’accumulateur.

Le bit Z (Zero) : Z est mis à 1 lorsque le résultat de l’instruction exécuté est nul.

(6)

SMI-S4 6/12 I.OUADNOUNI Le bit N (Negative) : N est mis à 1 lorsque le résultat de la dernière opération arithmétique réalisée est négatif (bit de poids fort du résultat à 1).

Le bit H (Half carry) : H, demi-retenue, est mis à 1 lors d’une retenue entre les bits 3 et 4 d’une opération arithmétique. Il n’est affecté que par les instructions ADD, ADC et ABA, et est ensuite exploité par l’instruction DAA pour réaliser de l’arithmétique DCB (en anglais BCD), c’est à dire codée en fait sur 2 groupes de 4 bits.

Le bit I (Interrupt mask) : I interdit toute interruption masquable lorsqu’il est mis à 1. C'est à dire qu'il permet d'autoriser les interruptions du TIMER, ACIA et autres. Suite à un RESET, I est mis à 1.

Le bit X (Xirq interrupt mask) : X interdit toute interruption masquable lorsqu’il est mis à 1.

Suite à un RESET, X est mis à 1. Attention XIRQ est une interruption non masquable en général, mais dans le cas du 68HC11, il est possible de la masquer.

Le bit S (Stop disable) : S est mis à 1 pour interdire l’exécution de l’instruction STOP. Elle sera considérée comme un simple NOP (No OPeration).

Il existe certaines instructions pour manipuler directement certains bits du registre CCR.

2-2 Signaux de contrôle

Alimentation (VDD et VSS) : VSS=0V et VDD=+5V à 5%.

MODA/ LIR et MODB/Vstby :

EXTAL et XTAL : Entrées du quartz pour générer le signal d’horloge E. On peut aussi appliquer seulement un signal d’horloge sur l’entrée EXTAL.

E : E est une sortie d’horloge de bus. Sa fréquence est égale au quart de la valeur du quartz. L’état logique de E, haut ou bas, indique si des données ou des adresses valides sont présentes sur le bus du 68HC11.

RESET : Entrée RESET active au niveau bas. Mais elle peut devenir une sortie, dans le cas du chien de garde ou COP, active là aussi au niveau bas.

IRQ : Entrée d’interruption masquable (voir bit I du registre CCR et bit IRQE du registre option).

XIRQ : Entrée d’interruption non masquable (voir bit X du registre CCR). Cette interruption est quand même masquable.

VREFL et VREFH : VREFL et VREFH sont respectivement des entrées de référence basse et haute du convertisseur analogique/numérique. Pour une bonne précision, la différence de potentiel entre VREFH et VREFL doit être au moins de 2,5V, mais restée dans les limites de VDD et VSS.

(7)

SMI-S4 7/12 I.OUADNOUNI

2-3 Les ports :

Port E : PE0 à PE7 sont des entrées du port parallèle E. Ces lignes sont unidirectionnelles et ne fonctionnent qu’en entrée. De plus elles sont partagées avec les entrées du convertisseur analogique/numérique. Il est possible de faire travailler le port E en numérique et en analogique en même temps (il faudra soigner le programme sous peine de légères perturbations).

Port D : PD0 à PD5 sont des entrées ou sorties du port parallèle D. Ces lignes sont programmables indépendamment en entrée ou sortie. La programmation du port D est réalisée par le registre DDRD, registre de programmation des lignes du port D.

Port C : PC0 à PC7 sont des entrées ou sorties du port parallèle C. Ces lignes sont programmables indépendamment en entrée ou sortie. La programmation du port C est réalisée par le registre DDRC, registre de programmation des lignes du port C. En mode étendu, le port C devient bus de données (8 bits) ou bus de poids faible des adresses (8 bits) (multiplexage des différents bus).

Port B : PB0 à PB7 sont des sorties du port parallèle B. En mode étendu, le port B devient bus de poids fort des adresses (8 bits).

Port A : PA0 à PA2 sont des entrées du port parallèle A, P3 à PA6 sont les sorties de ce port et PA7 est l’entrée ou sortie de ce même port. Ces lignes sont partagées par le timer. PA0 à PA2 sont les entrées de capture IC3 à IC1 du timer. PA3 à PA6 sont les sorties de comparaison OC1 à OC5 du timer. PA7 peut être configuré en entrée de capture ou sortie de comparaison.

(8)

SMI-S4 8/12 I.OUADNOUNI

Port F : PF0 à PF7 sont des sorties du port parallèle F.

Port G : PG0 à PG7 sont des entrées ou sorties du port parallèle G, configurable par le registre interne DDRG dont l’adresse est $1003.

2-4 Plan mémoire du MC68HC11F1

(9)

SMI-S4 9/12 I.OUADNOUNI 2-5 Registres internes du 68HC11

Adresses Bit 7 6 5 4 3 2 1 Bit 0 Registre

$1000 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PORTA

$1001 DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0 DDRA

$1002 PG7 PG6 PG5 PG4 PG3 PG2 PG1 PG0 PORTG

$1003 DDG7 DDG6 DDG5 DDG4 DDG3 DDG2 DDG1 DDG0 DDRG

$1004 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PORTB

$1005 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 PORTF

$1006 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PORTC

$1007 DDC7 DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0 DDRC

$1008 0 0 PD5 PD4 PD3 PD2 PD1 PD0 PORTD

$1009 0 0 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0 DDRD

$100A PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 PORTE

$100B FOC1 FOC2 FOC3 FOC4 FOC5 0 0 0 CFORC

$100C OC1M7 OC1M6 OC1M5 OC1M4 OC1M3 0 0 0 OC1M

$100D OC1D7 OC1D6 OC1D5 OC1D4 OC1D3 0 0 0 OC1D

$100E 15 14 13 12 11 10 9 8 TCNT

$100F 7 6 5 4 3 2 1 0 TCNT

$1010 15 14 13 12 11 10 9 8 TIC1

$1011 7 6 5 4 3 2 1 0 TIC1

$1012 15 14 13 12 11 10 9 8 TIC2

$1013 7 6 5 4 3 2 1 0 TIC2

$1014 15 14 13 12 11 10 9 8 TIC3

$1015 7 6 5 4 3 2 1 0 TIC3

$1016 15 14 13 12 11 10 9 8 TOC1

$1017 7 6 5 4 3 2 1 0 TOC1

$1018 15 14 13 12 11 10 9 8 TOC2

$1019 7 6 5 4 3 2 1 0 TOC2

$101A 15 14 13 12 11 10 9 8 TOC3

$101B 7 6 5 4 3 2 1 0 TOC3

$101C 15 14 13 12 11 10 9 8 TOC4

$101D 7 6 5 4 3 2 1 0 TOC4

$101E 15 14 13 12 11 10 9 8 TI4/O5

$101F 7 6 5 4 3 2 1 0 TI4/O5

$1020 OM2 OL2 OM3 OL3 OM4 OL4 OM5 OL5 TCTL1

$1021 EDG4B EDG4A EDG1B EDG1A EDG2B EDG2A EDG3B EDG3A TCTL2

$1022 OC1I OC2I OC3I OC4I I4/O5I IC1I IC2I IC3I TMSK1

$1023 OC1F OC2F OC3F OC4F I4/O5F IC1F IC2F IC3F TFLG1

(10)

SMI-S4 10/12 I.OUADNOUNI

$1024 TOI RTII PAOVI PAII 0 0 PR1 PR0 TMSK2

$1025 TOF RTIF PAOVF PAIF 0 0 0 0 TFLG2

$1026 0 PAEN PAMOD PEDGE 0 I4/O5 RTR1 RTR0 PACTL

$1027 7 6 5 4 3 2 1 0 PACNT

$1028 SPIE SPE DWOM MSTR CPOL CPHA SPR1 SPR0 SPCR

$1029 SPIF WCOL 0 MODF 0 0 0 0 SPSR

$102A 7 6 5 4 3 2 1 0 SPDR

$102B TCLR 0 SCP1 SCP0 RCKB SCR2 SCR1 SCR0 BAUD

$102C R8 T8 0 M WAKE 0 0 0 SCCR1

$102D TIE TCIE RIE ILIE TE RE RWU SBK SCCR2

$102E TDRE TC RDRF IDLE OR NF FE 0 SCSR

$102F 7 6 5 4 3 2 1 0 SCDR

$1030 CCF 0 SCAN MULT CD CC CB CA ADCTL

$1031 7 6 5 4 3 2 1 0 ADR1

$1032 7 6 5 4 3 2 1 0 ADR2

$1033 7 6 5 4 3 2 1 0 ADR3

$1034 7 6 5 4 3 2 1 0 ADR4

$1035 0 0 0 PTCON BPRT3 BPRT2 BPRT1 BPRT0 BPROT

$1036 et $1037 Reserved

$1038 GWOM CWOM CLK4X 0 0 0 0 0 OPT2

$1039 ADPU CSEL IRQE DLY CME FCME CR1 CR0 OPTION

$103A 7 6 5 4 3 2 1 0 COPRST

$103B ODD EVEN 0 BYTE ROW ERASE EELAT EEPGM PPROG

$103C RBOO SMOD MDA IRV PSEL3 PSEL2 PSEL1 PSEL0 HPRIO

$103D RAM3 RAM2 RAM1 RAM0 REG3 REG2 REG1 REG0 INIT

$103E TILOP 0 OCCR CBYP DISR FCM FCOP 0 TEST1

$103F EE3` EE2 EE1 EE0 1 NOCOP 1 EEON CONFIG

$1040 to $105B Reserved

$105C IO1SA IO1SB IO2SA IO2SB GSTHA GSTHB PSTHA PSTHB CSSTRH

$105D IO1EN IO1PL IO2EN IO2PL GCSPR PCSEN PSIZA PSIZB CSCTL

$105E GA15 GA14 GA13 GA12 GA11 GA10 0 0 CSGADR

$105F IO1AV IO2AV 0 GNPOL GAVLD GSIZA GSIZB GSIZC CSGSIZ

III- Modes d’adressage du 68HC11

ADRESSAGE IMMEDIAT: La donnée fait partie de l'instruction. Par exemple si on veut initialiser un registre avec une valeur donnée, on utilisera ce mode d'adressage.

(11)

SMI-S4 11/12 I.OUADNOUNI Exemple:

LDAA #$4F

Le registre A est chargé par la valeur en hexadécimal : 4F. Ce mode est spécifié à l'assembleur par l'utilisation du préfixe # avant la donnée.

ADRESSAGE DIRECT: La donnée est à une adresse codée sur 8 bits, c'est à dire comprise entre $00 et $FF donc dans la zone RAM. Un seul octet est nécessaire pour spécifier l'adresse.

Exemple:

STAA $0F

Le contenu du registre A est rangé à l'adresse $0F.

ADRESSAGE ETENDU: La donnée est à une adresse codée sur deux octets, c'est à dire n'importe où dans l'espace adressable par le 68HC11 qui a 16 bits d'adresse.

Exemple:

STAA $1000

Le contenu du registre A est rangé à l'adresse $1000.

ADRESSAGE INDEXE: La donnée est à une adresse spécifiée par le contenu un registre d'index: X ou Y auquel on ajoute une valeur d'offset contenue dans l'instruction.

Exemple:

LDX #$1000 LDAA 5,X

Le registre A est chargé par l'octet de l'adresse $1005.

ADRESSAGE INHERENT: La donnée n'est pas nécessaire au micro car l'instruction est implicite.

Exemple:

TAB

Transfert du contenu du registre A vers le registre B.

IV- Jeu d’instructions :

Voir annexe 1

Références

Documents relatifs

Vous découvrez dans ce lieu de nombreux équipements informatiques tels que les ordinateurs de bureau, les imprimantes, scanners, caméras de surveillance, modems, serveurs, etc.

Dans le cinquième chapitre, nous avons appliqué une technique intelligente par mode glissant floue pour la commande et la recherche d’un point de puissance maximale (MPPT)

Un système non linéaire commandé est un ensemble d’équations (différentielles par exemple) non linéaires décrivant l’évolution temporelle des variables

On s'intéresse dans cette partie à l'étude du moteur à courant continu MTA.. IL est alimenté sous une tension

Divers : Pour les murs et le plafond, acheter 2 pinceaux ronds pour les angles, 2 rouleaux, 2 manches télescopiques et 2 bacs à peinture.. Partie 2   : utiliser un tableur. Marie

Les deux essais sont effectués sur les modèles de synthèse caractéristiques à chaque type de commande : le modèle PWA à temps discret (4.33)-(4.34) pour la commande

Compléter le diagramme d’états principal pour un comportement similaire de l'ascenseur à celui du chapitre II.. Procédez aux modifications, puis

Deux lois de commande non linéaire de type grand gain et backstepping ont été proposées pour la régulation du taux d’oxygène dissout dans le bioréacteur. Comme ces lois de