Академический Документы
Профессиональный Документы
Культура Документы
Universit Mohamed Khider Biskra
Facult des Sciences et de la Technologie
Dpartement de Gnie Electrique :
Filire dElectronique :
Microprocesseurs et
ses interfaces
Support de cours : 1 ere anne Master
INSTRUMENTATION et Micro-informatique
1
III.2.5 Adressage bas ...........................................................................................................................17
III.2.6 Adressage index .......................................................................................................................17
III.2.7 Adressage bas index ...............................................................................................................18
III.3 Les instructions de transfert .......................................................................................................18
III.3.1 Instruction MOV .......................................................................................................................18
III.3.2 Instruction de pile......................................................................................................................19
III.3.3 Instruction XCHG......................................................................................................................20
III.4 Les instructions arithmtiques .................................................................................................20
III.4.1 Instruction ADD .........................................................................................................................20
III.4.2 Instruction ADC ........................................................................................................................20
III.4.3 Instruction INC...........................................................................................................................21
III.4.4 Instruction SUB .........................................................................................................................21
III.4.5 Instruction SBB .........................................................................................................................21
III.4.6 Instruction DEC ........................................................................................................................21
III.4.7 Instruction NEG ........................................................................................................................21
III.4.8 Instruction CMP.........................................................................................................................21
III.4.9 Instruction MUL.........................................................................................................................22
III.4.10 Instruction DIV.........................................................................................................................22
III.4.11 Instructions IMUL et IDIV.....................................................................................................22
III.5 Les instructions logiques..........................................................................................................22
III.5.1 Instruction AND..........................................................................................................................22
III.5.2 Instruction OR ...........................................................................................................................22
III.5.3 Instruction XOR ........................................................................................................................23
III.5.4 Instruction TEST........................................................................................................................23
III.5.5 Instruction NOT .........................................................................................................................23
III.5.6 Instructions de Dcalages...........................................................................................................23
III.5.7 Instructions de Rotations ...........................................................................................................24
III.6 Les instructions de branchement .............................................................................................24
III.6.1 Instruction de saut inconditionnel ...........................................................................................25
III.6.2 Instructions de sauts conditionnels ..........................................................................................25
III.6.3 Instruction CALL.......................................................................................................................25
III.6.4 Instruction RET ..........................................................................................................................26
2
III.6.5 Instructions des interruptions ...................................................................................................26
III.6.6 Instruction de boucles LOOP ....................................................................................................26
III.7 Les instructions de manipulation de chaines ...........................................................................26
Chapitre 4 : Interfaage du microprocesseur 8086 .....................................................................................28
IV.1 Microprocesseur 8086 (Minimum Mode).................................................................................28
IV.2 Gnrateur dhorloge.................................................................................................................28
IV.3 Bus systme (Demultiplexed and Buffered) .............................................................................28
IV.4 Mmoire systme (ROM & RAM) ............................................................................................30
IV.5 E/S systme (Switches and LEDs) .............................................................................................32
IV.5.1 Adresse cartographique .............................................................................................................32
IV.5.2 Adressage indpendant ..............................................................................................................32
Chapitre 5 : Les interfaces dentres/sorties................................................................................................34
V.1 Dfinition.....................................................................................................................................34
V.2 Linterface parallle 8255 .........................................................................................................34
V.2.1 Interfaage de 8086 avec le 8255 ...............................................................................................37
V.3 Le 8279........................................................................................................................................37
V.4 Linterface srie 8250 .................................................................................................................38
V.4.1 Structure de lUART..................................................................................................................39
V.4.2 Les registres du 8250..................................................................................................................40
Chapitre 6 : Les interruptions......................................................................................................................41
VI.1 Dfinition dune interruption ....................................................................................................41
VI.2 Le contrleur programmable dinterruptions 8259 ................................................................42
VI.3 Le temporisateur programmable 8253/8254...........................................................................44
VI.4 DMA (Accs Direct la Mmoire)............................................................................................48
VI.5 Le 8237.........................................................................................................................................48
Bibliographie...................................................................................................................................................50
3
Chapitre 1 : Introduction aux microprocesseurs
I.1 Introduction
Dans les annes 70 les technologies des
ordinateurs numriques et celles des circuits intgrs
sont fondues pour donner naissance au
microprocesseur.
Le microprocesseur possde une architecture
semblable lordinateur en plus tous les deux
effectuent des calculs sous le contrle dun
programme.
La plupart des systmes informatiques
d'aujourd'hui sont bass sur un principe de conception
propose par le Dr John Von Neumann (1946).
I.2.1 Le microprocesseur
Cest le cur du systme. Cest lui qui a la charge des fonctions suivantes :
- Fournit les signaux de synchronisation et de commande tous les lments du systme
- Prend en charge les instructions et les donnes dans la mmoire
- Transfre les donnes entre la mmoire et les dispositifs dI/O et vice versa
- Dcode les instructions
- Effectue les oprations arithmtiques et logiques commandes par les instructions
- Ragit aux signaux de commande produits par les entres/sorties comme le signal RESET et
les INTERRUPTIONS
4
I.2.2 La mmoire
La mmoire a pour rle de conserver des groupes de chiffres binaires (mots) qui sont soit
des instructions formant un programme, soit des donnes dont le programme a besoin.
Elle se dcompose souvent en :
a/ une mmoire morte (ROM = Read Only Memory) charge de stocker le programme. Cest une
mmoire lecture seule.
ROM : Read Only Memory. Mmoire lecture seule, sans criture. Son contenu est programm
une fois pour toutes par le constructeur. Avantage : faible cot.
Inconvnient : ncessite une production en trs grande quantit.
PROM: Programmable Read Only Memory. ROM programmable une seule fois par lutilisateur.
EPROM : Erasable PROM, appele aussi UVPROM. ROM programmable lectriquement avec
un programmateur et effaable par exposition un rayonnement ultraviolet.
EEPROM : Electrically Erasable PROM. ROM programmable et effaable lectriquement.
Les EEPROM contiennent des donnes qui peuvent tre modifies.
b/ une mmoire vive (RAM = Random Access Memory) charge de stocker les donnes
intermdiaires ou les rsultats de calculs. On peut lire ou crire des donnes dedans, ces donnes
sont perdues la mise hors tension.
SRAM: Static Random Access Memory. Mmoire statique accs alatoire, base de bascules
semi-conducteurs deux tats (bascules RS).
DRAM : Dynamic RAM. Base sur la charge de condensateurs : condensateur charg = 1,
condensateur dcharg = 0.
Remarque :
Les disques durs, disquettes, CDROM, etc sont des priphriques de stockage et sont considrs
comme des mmoires secondaires.
On peut donc schmatiser un circuit mmoire par la figure suivante o lon peut distinguer :
5
Les entres dadresses, les entres / sorties de donnes, les entres de commandes :
Entre de slection de lecture ou dcriture. (R/ W), une entre de slection du circuit. (CS).
Le nombre de lignes dadresses dpend de la capacit de la mmoire : n lignes dadresses
permettent dadresser 2n cases mmoire: 8 bits dadresses permettent dadresser 256 octets, 16 bits
dadresses permettent dadresser 65536 octets (= 64 Ko), ...
Exemple : mmoire RAM 6264, capacit = 8K8 bits : 13 broches dadresses A0 A12,
213 = 8192 = 8 Ko.
UAL Registres
Bus dadresse
Flags
Bus de donnes
Dcodeur Squenceur
Unit de commande
Figure I.3: Principales sections d'un microprocesseur
6
ALU (Arithmetic and Logic Unit)
C'est lunit qui permet d'effectuer des calculs arithmtiques simples (additions, soustractions,
dcalages, etc.) et des oprations logiques (ET, OU, etc.).
Les registres gnraux
Les registres gnraux participent aux oprations arithmtiques et logiques ainsi qu' l'adressage. Le
plus important est appel accumulateur.
Registre dtat
Cest lensemble des drapeaux (flags) qui forme le registre dtat.
Les flags ragissent aprs certaines instructions et permettent de savoir si le rsultat de l'opration
est zro (flag Z), si il y a eu un dpassement (flag C), si le nombre de bit 1 est pair (flag P) et le
signe (flag S).
7
I.4.2 Le microprocesseur 8088 (1979)
Il est entirement compatible avec le 8086, le jeu d'instruction est identique. La seule
diffrence rside dans la taille du bus de donnes, celui du 8088 fait seulement 8 bits.
8
I.4.6 Le microprocesseur 80486 (1989)
Bus d'adresse de 32 bits.
Bus de donnes 32 bits interne et externe.
Des registres de 32 bits.
On-chip cache (stocke les instructions et les donnes les plus rcemment utilises)
Unit virgule flottante intgre (FPU)
Modes rels et protgs comme dans 80386
9
Chapitre 2 : Le Microprocesseur Intel 8086
10
ALE (Address Latch Enable ): Ce signal est une impulsion active pendant T1, elle indique que
linformation qui circule dans bus A/D est une adresse.
Elle est fournie par le Cpu pour verrouiller les lignes d'adresse au cours des cycles T2, T3, T4.
RD : Read, signal de lecture dune donne.
WR : Write, signal dcriture dune donne.
M/IO : Memory/Input-Output, indique si le CPU adresse la mmoire (M/IO = 1) ou les
entres/sorties (M/IO = 0).
DEN : Data Enable, indique que des donnes sont en train de circuler sur le bus A/D (quivalente
de ALE pour les donnes).
DT/R : Data Transmit/Receive, indique le sens de transfert des donnes :
DT/R = 1 : donnes mises par le microprocesseur (criture) ;
DT/R = 0 : donnes reues par le microprocesseur (lecture).
11
Chronogramme de sens de transfert de donnes sur le bus de donnes
1 1 aucun octet
12
II.2.1 Connexions de base
GND: se connecter 0V.
Remarque :
Un systme microprocesseur trs simple est compos des parties suivantes:
13
Figure II.2 : architecture du microprocesseur 8086
14
Remarque : la pile est une zone mmoire ou on peut sauvegarder le contenu des registres, les
adresses ou les donnes pour les rcuprer aprs l'excution d'un sous-programme ou l'excution
d'un programme d'interruption.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
15
Chapitre 3 : La programmation du microprocesseur 8086
III.1 Gnralits
Le programme est une suite d'instructions. Une instruction est un mot binaire dcrivant
l'action que doit excuter le microprocesseur,
Une instruction est dfinie par son code opratoire, quon crit gnralement en hexa, mais
pour une plus grande facilit on les dsignera par leurs mnmoniques. Le mnmonique est une
abrviation en caractre latin.
La programmation en assembleur utilise un ensemble dinstructions appel jeu
dinstructions. Chaque microprocesseur son propre jeu dinstructions.
Pour les microprocesseurs classiques, le nombre dinstructions reconnues varie entre 75 et
150 (microprocesseurs CISC : Complex Instruction Set Computer). Il existe aussi des
microprocesseurs dont le nombre dinstructions est trs rduit (microprocesseurs RISC : Reduced
Instruction Set Computer) : entre 10 et 30 instructions, permettant damliorer le temps
dexcution des programmes.
Les instructions peuvent tre classes en groupes :
instructions de transfert de donnes ;
instructions arithmtiques ;
instructions logiques ;
instructions de branchement ...
Lopration est ralise entre les 2 oprandes et le rsultat est toujours rcupr dans
loprande de gauche.
Il y a aussi des instructions qui agissent sur un seul oprande.
Les oprandes peuvent tre des registres, des constantes ou le contenu de cases mmoire, on
appelle a le mode dadressage
Les modes d'adressage dfinissent comment identifier l'oprande de chaque instruction.
Un mode d'adressage spcifie comment calculer l'adresse de la mmoire d'un oprande en
utilisant les informations contenues dans les registres et / ou Les constantes contenues dans
linstruction.
Il y a plusieurs modes d'adressage dans le 8086:
16
III.2.1 Adressage registre
Ce mode utilise les registres internes de CPU, dans ce mode le CPU transfert d'une copie
d'un octet (8 bits) ou un mot (16 bits) d'un registre (source) vers un autre registre (destination).
Exemples : MOV AX, BX : Copier le contenu de BX dans AX
Notez que le transfert d'un registre 8 bits avec un registre 16 bits est une erreur.
17
III.2.7 Adressage bas index
Cest un mode combine entre de modes dadressage comme lindique son nom.
Exemple : MOV AX, [BP+SI-8] : AX est charg par la mmoire d'adresse SS:BP+SI-8
MOV AX, [BX+DI+4] : AX est charg par la mmoire d'adresse DS:BX+DI+4
18
III.3.2 Instruction de pile
Les instructions de pile sont des instructions importantes qui stockent et rcuprent des
donnes partir de la pile mmoire selon le protocole LIFO (dernier entr, premier sorti).
Le processeur 8086 prend en charge 4 instructions de pile:
PUSH
POP
PUSF (Push Drapeau enregistrer)
POPF (Pop Drapeau enregistrer)
a/ PUSH
Le format gnral d'une instruction de PUSH est : PUSH oprande
- L'instruction PUSH stocke le contenu de loprande Op (16 bits) dans le sommet de Pile
- Dcrmente SP de 2
b/ POP
Le format gnral d'une instruction POP est : POP oprande.
- L'instruction POP Dpile une valeur de 16 bits depuis le sommet de la Pile (STACK
SEGMENT) et la stocke dans les oprandes (16 bits).
- Incrmente SP de 2
19
Figure III.2 : Fonctionnement de l'instruction POP
20
III.4.3 Instruction INC
Incrmentation dun oprande.
INC Destination ; Destination destination+1.
La destination peut tre : registre, mmoire.
Les FLAGs affects : OF ; AF ; SF ; ZF ; PF
CF reste inchang
Pour incrmenter une case mmoire, il faut prciser la taille :
INC byte [ ], INC word [ ]
21
III.4.9 Instruction MUL
Cette instruction excute la multiplication entre laccumulateur et un oprande (non
sign) : MUL Oprande.
Si loprande est une valeur sur 8 bits : AX AL * Oprande.
Si loprande est une valeur sur 16 bits : DX : AX AX * Oprande.
L'oprande ne peut pas tre une donne, cest soit un registre soit une position mmoire,
dans ce dernier cas, il faut prciser la taille (byte ou word)
Les FLAGs affects : CF et OF si la partie haute du rsultat est non nulle. La partie haute
est AH pour la multiplication 8 bits et DX pour la multiplication 16 bits
Exemple :
MUL BL ; AL x BL AX
MUL CX ; AX x CX DX:AX
III.5.2 Instruction OR
OU logique entre deux oprandes bit bit : OR Destination, Source ;
Destination destination (OU) source.
La destination peut tre : registre, mmoire.
La source peut tre : registre, mmoire, immdiate.
Les FLAGs affects : ZF ; SF ; PF
22
III.5.3 Instruction XOR
OU Exclusif entre deux oprandes bit bit : XOR Destination, Source ;
Destination destination (ou exclusif) source.
La destination peut tre : registre, mmoire.
La source peut tre : registre, mmoire, immdiate.
Les FLAGs affects : ZF ; SF ; PF
Remarque : Astuces sur les instructions logiques (OR, XOR, AND) :
1. Forage 1 : cest le OR avec un 1 .
2. Masquage 0 : cest le AND avec un 0 .
3. Inverser un bit : cest le XOR avec un 1 .
Shift Left
Shift Arithmetic
Left
Shift Right
Shift Arithmetic
23
Remarque : Les dcalages arithmtiques permettent de conserver le signe. Ils sont utiliss pour
effectuer des oprations arithmtiques comme des multiplications et des divisions par 2.
La forme gnrale des instructions de dcalage est : XXX destination, N
O: XXX est le mnmonique de dcalage (i.e., SHL, SHR, SAL, SAR),
La destination peut tre : registre, mmoire et l'oprande N peut tre soit une constante
(immdiat) soit le registre CL :
Exemples: SHL AX, 1
SHL AX, CL
Rotate Through CF
Left
Rotate Left
Rotate Through CF
Right
Rotate
Right
24
III.6.1 Instruction de saut inconditionnel
JMP label ; Provoque un saut sans condition la ligne portant l'tiquette label.
O label est un identificateur d'adresse de programme.
Remarque :
- Les termes suprieur et infrieur (above and below) pour les nombres non signs.
- Les termes plus grand et plus petit (greater than and less than) pour les nombres signs.
25
(2) Il stocke le contenu du registre IP dans la pile de programme.
(3) On ajuste le contenu du registre d'IP de nouveau pour pointer sur la premire instruction
de la procdure appele.
Lunit centrale continue excuter les instructions jusqu' ce qu'elle rencontre une
instruction RET.
Remarque : Chacune des instructions existe en deux versions, entre deux octets, ou entre 2
words, le prfixe REP pour les instructions de transfert MOVS LODS STOS, Ce prfixe utilise
le registre CX comme un compteur de rptition.
26
Les prfixes REPE et REPZ : Rptition des instructions de comparaisons SCAS et CMPS
tant que ZF=1 et CX0.
Les prfixes REPNE et REPNZ : Rptition des instructions de comparaisons SCAS et
CMPS tant que ZF=0 et CX0.
Ces instructions sont utilises sans oprandes. les registres utiliss sont : pour la source
DS:SI, et pour la destination ES:DI. A chaque excution dune instruction de traitement de
chane, les registres dindexes sont incrments ou dcrments selon le flag DF de registre
dtat.
* DF = 0 : SI et DI sont incrments, (linstruction CLD mit (DF = 0))
* DF = 1 : SI et DI sont dcrments. (l instruction STD mit (DF = 1))
SI et DI sont incrments de 1 ou de 2 selon que l'opration s'effectue sur un octet
(byte) ou sur un mot de 16 bits (word).
MOVSB : Copie Le contenu dun octet de mmoire DS: [SI] dans un octet de mmoire
ES: [DI], puis auto inc/decrmente les registres SI et DI.
MOVSW : Copie Le contenu du mot de mmoire DS: [SI] dans le mot de mmoire ES:
[DI], puis auto inc/decrmente de 2 les registres SI et DI
LODSB : Copie l'octet source DS: [SI] dans AL puis inc/dcr le registre SI.
LODSW : Copie le mot source DS: [SI] dans AX puis inc/dcr de 2 le registre SI.
STOSB : Copie AL dans loctet destination ES: [DI] et inc/dcr le registre DI.
STOSW : Copie AX dans le mot destination ES: [DI] et inc/dcr de 2 le registre DI.
CMPSB : Compare l'octet source ES : [DI] avec l'octet destination DS: [SI], positionne
les indicateurs puis inc/dcrmente les registres SI et DI.
CMPSW : Compare le mot source ES : [DI] avec mot destination DS: [SI], positionne
les indicateurs puis inc/dcrmente de 2 les registres SI et DI
27
Chapitre 4 : Interfaage du microprocesseur 8086
28
Figure IV.2 : bascules D circuits 8282
Si plus de 10 composants sont attachs aux broches de bus, l'ensemble du systme 8086 doit
tre amplifi. Les broches dmultiplexs (adresse bus A19-A0 et BHE) sont dj
amplifies par les verrous (latch). Donc, il faut amplifier le bus de donnes D15 - D0. Le bus de
donnes est bidirectionnel, nous devons utiliser des tampons (buffers) bidirectionnels :
Exemples de tampons de bus : circuits transmetteurs bidirectionnels 8286 ou 74245 :
Remarque : Les signaux de bus de contrle (M/IO, RD et WR) les signaux de bus de
contrle sont des signaux unidirectionnels. Par consquent, nous avons besoin d'utiliser des
tampons unidirectionnels tels que le buffer 74LS244.
La figure suivante montre la conception de bus systme de p 8086
29
Figure IV.4 : conception de bus systme de p 8086
30
Le 8086 sera interfac la RAM comme suit:
Les lignes d'adresse les moins significatives A16-A1 sont utilises pour adresser des
emplacements de mmoire dans la RAM.
Les lignes d'adresse les plus significatives A19-A17 sont utilises pour slectionner la plage
d'adresses ncessaires dans l'espace de mmoire de 8086 (slectionner les deux boitiers RAM),
comme sur figure.
Dcodage Adressage
31
Figure IV.6 : dcodage signaux lecture et criture mmoire et I/O.
32
Tableau IV.1: Comparaison entre Adressage cartographique et indpendant
Remarque : la mmoire et les ports I/O partage le mme bus de donnes et dadresse, cest Le
signal M/IO qui permet de diffrencier ladressage de la mmoire de ladressage des ports E/S :
pour un accs la mmoire, M/IO = 1;
pour un accs aux ports dE/S, M/IO = 0.
Les instructions utilises pour R/W dun port sont IN / OUT . Il existe deux types
daccs, accs direct et un autre indirect. Les registres utiliss sont laccumulateur AL / AX et le
registre de donnes DX . Les instructions directes d'E / S fournissent l'adresse de port (qui doit
tre un nombre compris entre 0 et FFh).
Si ladresse du port dE/S est sur un octet:
Pour accder la plage complte des ports d'E/S de 0000H FFFFH, les instructions
indirectes d'E / S doivent tre utilises.
Pour ces instructions, le registre DX doit tre prcharg avec l'adresse du port.
si ladresse du port dE/S est sur deux octets:
33
Chapitre 5 : Les interfaces dentres/sorties
V.1 Dfinition
Une interface d'entres/sorties est un circuit permettant au Cpu de communiquer avec
l'environnement extrieur (priphrique) : clavier, cran, imprimante, processus industriel etc...
Les interfaces d'E/S sont connectes au microprocesseur travers les bus d'adresses de
donnes et de commandes.
Un circuit dE/S possde des registres pour grer les changes avec les priphriques :
Registre de configuration
Registre de donnes
A chaque registre est assigne une adresse : le microprocesseur accde un port dE/S en
spcifiant ladresse de lun de ses registres.
Intel a dvelopp plusieurs circuits intgr de contrle de priphrique conus pour soutenir
la famille de processeurs 80x86 tels que:
Le 8255A Programmable Peripheral Interface (PPI),
Le 8259 Programmable Interrupt Controller (PIC),
Le 8253/54 Programmable Interval Timer (PIT),
Le 8237 Programmable DMA Controller.
34
Tableau V.1: Slection des ports de 8255
35
Figure V.3: Structure du registre de commande
36
V.2.1 Interfaage de 8086 avec le 8255
On peut connecter le bus de donnes du
8255 sur les lignes de donnes de poids faible
du 8086 (D0 - D7) ou sur celles de poids fort
(D8 - D15).
Donc lun des deux signaux A0 ou
BHE doit tre utilise pour slectionner le 8255
alors les adresses des registres du 8255 se
trouvent des adresses paires (validation par
A0) ou impaires (validation par BHE).
Exemple :
V.3 Le 8279
Intel 8279 est un circuit intgr d'interface programmable clavier / l'cran :
Scans et encode jusqu' un clavier de 64-cl.
Contrle jusqu' un affichage numrique de 16 chiffres.
La Section Clavier possde une mmoire tampon de 8 caractres FIFO intgre.
L'affichage est command partir d'une RAM interne 16x8 qui mmorise les informations
d'affichage codes.
37
Figure V.6: Interface du 8279 (Un clavier Hexa et afficheur 7 segments) avec le 8086.
dans le protocole de transmission de donnes on a que deux tats significatifs : 0 (ou low),
38
et 1 (ou high). Quand on ne transmet rien, la ligne est l'tat high (tension ngative). Comme le
montre la figure V.7,
Le bit de Start permettra au rcepteur de savoir que des donnes vont tre transmises;
Les bits de donnes sont transmis lun aprs lautre en commenant par le bit de poids
faible. Ils peuvent tre au nombre de 5, 6, 7 ou 8.
Le bit de parit est un bit supplmentaire dont la valeur dpend du nombre de bits de
donnes gaux 1. Il est utilis pour la dtection derreurs de transmission ;
Les bits de stop (1, 1.5 ou 2) marquent la fin de la transmission du caractre.
L'UART est conue pour grer les signaux en provenance d'un modem. Aussi est-il
ncessaire de donner quelles broches sont utilises par
l'ETCD (Equipement Terminal de Communication de
Donnes).
signal Signification
TxD Transmit Data
RxD Receive Data
RTS Request To Send
CTS Clear To Send
DTR Data Terminal Ready
DSR Data Set Ready
DCD Data Carrier Detect
RI Ring Indicator
Les 2 signaux TxD et RxD servent transmettre les donnes. Les autres signaux sont des
signaux de contrle de lchange de donnes.
39
Figure V.10 : Bornes du circuit UART 8250.
40
Chapitre 6 : Les interruptions
41
VI.2 Le contrleur programmable dinterruptions 8259
Le 8259A peut grer jusqu 8 demandes dinterruptions matrielles. Il est programm par le
logiciel du systme comme un priphrique d'E / S.
Une slection de modes de priorit est disponible pour le programmeur de sorte que la
manire dont les demandes sont traites par le 8259A peut tre configure pour correspondre ses
besoins du systme.
Les modes de priorit peuvent tre modifis ou reconfigurs dynamiquement tout moment
pendant le programme principal. Cela signifie que la structure d'interruption complte peut tre
dfinie selon les besoins.
42
VI.3 Brochage du 8259 :
43
VI.3 Le temporisateur programmable 8253/8254
On peut facilement excuter une boucle de temporisation mais lorsque le microprocesseur
excute la temporisation il ne peut plus rien faire dautre. Pour cela on fait appel un circuit
spcialis cest le PROGRAMMABLE TIMER.
Le 8253 programmable interval timer/counter est spcialement conu pour les circuits
dIntel. Le programmeur configure le 8253 pour correspondre ses besoins, initialise un des
compteurs du 8253 avec la quantit dsire, puis avec le mot de commande le 8253 prendra en
charge la temporisation et signalera la fin dexcution avec une interruption du CPU.
Il y a trois registres de comptage de 16 bits, dont chacun peut tre programm comme un
timer ou un compteur d'vnements. Plus un registre de commande qui peut ne peut-tre qucrit.
Laccs aux registres du 8254 seffectue de la faon suivante :
Tableau VI.1: Description des oprations de base
CS RD WR A1 A0 fonction
0 1 0 0 0 Chargement compteur 0
0 1 0 0 1 Chargement compteur 1
0 1 0 1 0 Chargement compteur 2
0 1 0 1 1 Ecriture mot de mode
0 0 1 0 0 Lecture compteur 0
0 0 1 0 1 Lecture compteur 1
0 0 1 1 0 Lecture compteur 2
0 0 1 1 1 Etat de haute impdance
1 X X X X
0 1 1 X X
44
Table VI.2: Pin description of the 8254.
La programmation du 8254 se fait par lenvoi dun mot de commande dans le registre de
commande CR. Les bits 6 et 7 de ce mot de commande permettent de laffecter lun des trois
compteurs. Le format du mot de commande est le suivant :
45
On remarque que chaque compteur peut tre utilis selon lun des 6 modes possibles :
Mode 0 :
Il Permet au 8254 dtre utilis comme un compteur ou temporisateur. Dans ce mode, la
sortie est au niveau logique 0 Lorsque le dcomptage atteint 0, la sortie passe au niveau 1. On
notera que l'entre GATE doit tre un 1 logique pour permettre au compteur de compter. Si G
devient 0 au milieu du comptage, le compteur sarrte jusqu' ce que G redevient 1.
Mode 1 :
Le 8254 la fonction comme un monostable redclenchable. Un front montant sur la
gchette GATE dclenche le dcompte au top dhorloge qui suit. Alors la sortie passe 0 et sy
maintient jusqu ce que le dcompte arrive 0. Chaque front montant sur GATE relance le
processus partir du compte initial (si celui- ci na pas t modifi).
Mode 2 :
Cest le mode diviseur par n il permet au 8254 de gnrer une srie d'impulsions continues.
La sparation entre les impulsions est dtermine par le comptage. Par exemple, pour un compte de
10, la sortie est un tat logique 1 pendant neuf priodes d'horloge et 0 pour une priode d'horloge.
Ce cycle est rpt jusqu' ce que le compteur est programm avec un nouveau comptage ou jusqu'
ce que lentre G est place un niveau logique 0. L'entre G doit tre un 1 logique pour ce mode
pour gnrer une srie continue d'impulsions.
Mode 3:
Ce mode est similaire au mode 2 sauf que OUT passe au niveau bas lorsque la moiti du
compte initial est atteinte, soit N/2, et reste dans cet tat jusqu ce que le compte arrive 0 et le
cycle recommence. Comme pour le mode 2, un niveau 1 sur GATE valide le dcompte et un niveau
0 linhibe alors quun front montant le rinitialise. De ce fait, une valeur impaire amne (N+l)/2
avec sorties au niveau haut et (N-1)/2 au niveau bas.
Mode 4:
Ce mode est similaire au mode 0 sauf que OUT est au niveau haut pendant le dcomptage et
produit une seule impulsion ngative lorsque le compte devient nul.
Mode 5:
Ce mode est similaire au mode 4. Cependant il est dmarr par une impulsion de
dclenchement sur la broche G au lieu par le programme. Ce mode est galement similaire au mode
1, car il est redclenchable.
46
Figure VI.4 : Les six modes de fonctionnement pour le 8254. L'entre de G = 0 arrte le
compteur en mode 2, 3, et 4.
47
VI.4 DMA (Accs Direct la Mmoire)
Prcdemment, nous avons discut d'E / S de base et de traitement dinterruption.
Maintenant, nous nous tournons vers la forme finale d'E / S appel accs direct la mmoire
(DMA). La technique DMA offre laccs directe la mmoire pendant que le microprocesseur est
temporairement dsactiv. Ceci permet aux donnes d'tre transfres entre la mmoire et le
dispositif d'E / S une vitesse qui est limite uniquement par la vitesse des composants de
mmoire dans le systme ou le dispositif de commande DMA. Les transferts DMA sont utiliss de
nombreuses fins, mais plus frquents comme pour, transfert de donnes entre la mmoire et le
disque dur, transfert de donnes vers la carte graphique ou la carte de son, etc.
On utilise pour cela le contrleur de DMA un circuit intgr qui gre le transfert par DMA,
lors de linitialisation dun transfert par DMA, le contrleur de DMA ngocie laccs au bus de
donnes avec le microprocesseur via les deux broches HRQ et HLDA du microprocesseur :
Le cycle commence avec la requte du priphrique via une entre DREQ (pour Dma
REQuest) du DMAC.
Le DMAC positionne alors lentre HOLD du 8086 niveau haut, requrant ainsi que le
microprocesseur entre dans un tat HOLD qui laisse la main au DMAC.
Le microprocesseur rpond en terminant le cycle de bus en cours (sil y en a un) et met ses
adresses, donnes et la plupart des contrles en position ouverte (haute impdance). La broche
HLDA (pour HOLD Acknowledge) est positionne au niveau haut par le microprocesseur pour
accuser rception de la requte.
Dans un systme avec des tampons de bus dadresse, de donnes et de contrle, HDLA est
utilis pour dsactiver ces tampons de faon ce que le microprocesseur soit compltement
dconnect de la mmoire et des entres-sorties.
Lorsquil reoit HDLA, le DMAC applique DACK (pour Dma ACknowledge) au
priphrique requrant le service. Le DMAC contrle alors le systme, fournissant les signaux de
bus dadresse et de contrle comme si il tait le microprocesseur (ce quil est rellement).
Tant que le DMAC utilise les bus pour des transferts, le microprocesseur est inactif (et
rciproquement, lorsque le microprocesseur est actif, le DMAC est inactif). Lorsque le DMAC a
termin son travail, il met HOLD un niveau bas de faon ce que le microprocesseur reprenne la
main.
VI.5 Le 8237
Intel a conu le DMAC 8237 pour tre associ au microprocesseur 8080. Il est galement
utilis pour les microprocesseurs 8085 et 8086/88. Le 8237 est en fait un microprocesseur usage
spcial dont le travail est le transfert de donnes grande vitesse entre la mmoire et les E / S. la
Figure suivante montre le brochage et le diagramme du contrleur de DMA programmable 8237.
Le 8237 a quatre canaux pour transfrer les donnes, cest--dire quil peut tre reli
quatre priphriques. Bien entendu, un instant donn, un seul priphrique peut utiliser le DMAC
pour transfrer des donnes.
A chaque canal est associ deux signaux : DREQ et DACK. Il y a un seul signal HOLD et
un seul signal HLDA, ce qui signifie que les quatre canaux utilisent les mmes bus systme, mais le
DMAC dcide quel priphrique doit prendre le contrle partir dun registre des priorits qui peut
tre programm.
48
Figure VI.5 : (a) Schma fonctionnel et (b) brochage du contrleur DMA programmable
8237.
On ne va pas aller plus loin dans ltude du contrleur DMA programmable 8237 car il est
rarement utilis dune faon individuelle.
49
Bibliographie
[1] Brey, Barry B. The Intel microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486,
Pentium, Pentium Pro processor, Pentium II, Pentium III, Pentium 4, and Core2 with 64-
bit extensions: architecture, programming, and interfacing ;8th ed; Pearson Prentice Hall ;
2009.
[2] D.a.godse A.p.godse. Microprocessors and Interfacing; first edition ; technical publications
pune ; 2009 .
[3] M.aumiaux . Les systmes microprocesseurs ; 2eme edition ; masson ; 1982.
[4] Intel The 8086 Family; Users Manual ; 1979.
[5] Dr J.Y. Haggge. MICROPROCESSEUR ; (cours Institut Suprieur des tudes
Technologiques de Rads) ; 2003
[6] A. Oumnad. MICROPROCESSEURS DE LA FAMILLE 8086.
[7] www.chipdocs.com
[8] www.datasheetcatalog.com
50