Issuu on Google+

Cours des Microprocesseurs

BTS GI

Chapitre 6 Les interfaces d’entrées/sorties 6.1 Définitions Une interface d’entrées/sorties est un circuit intégré permettant au microprocesseur de communiquer avec l’environnement extérieur (périphériques) : clavier, écran, imprimante, modem, disques, processus industriel, ... Les interfaces d’E/S sont connectées au microprocesseur à travers les bus d’adresses, de données et de commandes.

Les points d’accès aux interfaces sont appelés ports. Schéma synoptique d’un circuit d’E/S :

6.2 Adressage des ports d’E/S Un circuit d’E/S possède des registres pour gérer les échanges avec les périphériques : • registres de configuration ;

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

1


Cours des Microprocesseurs

BTS GI

• registres de données.

A chaque registre est assigné une adresse : le microprocesseur accède à un port d’E/S en spécifiant l’adresse de l’un de ses registres. Le microprocesseur peut voir les adresses des ports d’E/S de deux manières : • adressage cartographique : les adresses des ports d’E/S appartiennent au même espace mémoire que

les circuits mémoire (on dit que les E/S sont mappées en mémoire) :

Conséquences : –

l’espace d’adressage des mémoires diminue ;

l’adressage des ports d’E/S se fait avec une adresse de même longueur (même nombre de

bits) que pour les cases mémoires ; –

Toutes les instructions employées avec des cases mémoires peuvent être appliquées aux ports

d’E/S : les mêmes instructions permettent de lire et écrire dans la mémoire et les ports d’E/S, tous les modes d’adressage étant valables pour les E/S. • adressage indépendant

: le microprocesseur considère deux espaces distincts :

l’espace d’adressage des mémoires ;

l’espace d’adressage des ports d’E/S.

C’est le cas du microprocesseur 8086 :

Conséquences : –

contrairement à l’adressage cartographique, l’espace mémoire total adressable n’est pas

diminué ; –

l’adressage du port d’E/S peut se faire avec une adresse plus courte (nombre de bits inférieur)

que pour les circuits mémoires ;

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

2


Cours des Microprocesseurs

BTS GI

les instructions utilisées pour l’accès à la mémoire ne sont plus utilisables pour l’accès aux

ports d’E/S : ceux-ci disposent d’instructions spécifiques ; –

une même adresse peut désigner soit une case mémoire, soit un port d’E/S : le

microprocesseur doit donc fournir un signal permettant de différencier l’adressage de la mémoire de l’adressage des ports d’E/S. Remarque : l’adressage indépendant des ports d’E/S n’est possible que pour les microprocesseurs possédant un signal permettant de différencier l’adressage de la mémoire de l’adressage des ports d’E/S ainsi que les instructions spécifiques pour l’accès aux ports d’E/S. Par contre, l’adressage cartographique est possible pour tous les microprocesseurs.

6.3 Gestion des ports d’E/S par le 8086 Le 8086 dispose d’un espace mémoire de 1 Mo (adresse d’une case mémoire sur 20 bits) et d’un espace d’E/S de 64 Ko (adresse d’un port d’E/S sur 16 bits). Le signal permettant de différencier l’adressage de la mémoire de l’adressage des ports d’E/S est la ligne M/IO : •

pour un accès à la mémoire, M/IO = 1 ;

pour un accès aux ports d’E/S, M/IO = 0.

Ce signal est utilisé pour valider le décodage d’adresse dans les deux espaces :

Les instructions de lecture et d’écriture d’un port d’E/S sont respectivement les instructions IN et OUT. Elles placent la ligne M/IO à 0 alors que l’instruction MOV place celle-ci à 1. Lecture d’un port d’E/S : • si l’adresse du port d’E/S est sur un octet :

IN AL,adresse :lecture d’un port sur 8 bits ; IN AX,adresse : lecture d’un port sur 16 bits. Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

3


Cours des Microprocesseurs

BTS GI

• si l’adresse du port d’E/S est sur deux octets :

IN AL,DX

: lecture d’un port sur 8 bits ;

IN AX,DX

: lecture d’un port sur 16 bits.

ou le registre DX contient l’adresse du port d’E/S à lire. Ecriture d’un port d’E/S : • si l’adresse du port d’E/S est sur un octet :

OUT adresse,AL

: écriture d’un port sur 8 bits ;

OUT adresse,AX

: écriture d’un port sur 16 bits.

• si l’adresse du port d’E/S est sur deux octets :

OUT DX,AL

: écriture d’un port sur 8 bits ;

OUT DX,AX

: écriture d’un port sur 16 bits.

ou le registre DX contient l’adresse du port d’E/S à écrire. Exemples : • Lecture d’un port d’E/S sur 8 bits à l’adresse 300H :

mov dx,300H in al,dx • Écriture de la valeur 1234H dans le port d’E/S sur 16 bits à l’adresse 49H :

mov ax,1234H out 49H,ax

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

4


Cours des Microprocesseurs

BTS GI

6.4 L’interface parallèle 8255 Le rôle d’une interface parallèle est de transférer des données du microprocesseur vers des périphériques et inversement, tous les bits de données étant envoyés ou reçus simultanément.

Le 8255 est une interface parallèle programmable : elle peut être configurée en entrée et/ou en sortie par programme.

Le 8255 contient 4 registres : • trois registres contenant les données présentes sur les ports A, B et C; • un registre de commande pour la configuration des port A, B et C en entrées et/ou en sorties.

Accès aux registres du 8255 : les lignes d’adresses A0 et A1 définissent les adresses des registres du 8255 :

Remarque : le registre de commande est accessible uniquement en écriture, la lecture de ce registre n’est pas autorisée. Configuration du 8255 : les ports peuvent être configurés en entrées ou en sorties selon le contenu du registre de commande. De plus le 8255 peut fonctionner selon 3 modes : mode 0, mode 1 ou mode 2.

Le mode 0 : Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

5


Cours des Microprocesseurs

BTS GI

Le mode 0 est le plus simple : les ports sont configurés en entrées/sorties de base. Les données écrites dans les registres correspondants sont mémorisées sur les lignes de sorties ; l’´etat des lignes d’entrées est recopié dans les registres correspondants et n’est pas mémorisé. Structure du registre de commande :

Connexion du 8255 sur les bus du 8086 : le bus de données du 8255 est sur 8 bits alors que celui du microprocesseur 8086 est sur 16 bits. On peut donc connecter le bus de données du 8255 sur les lignes de données de poids faible du 8086 (D0 - D7) ou sur celles de poids fort (D8 - D15). Une donnée est envoyée (ou reçue) par le microprocesseur 8086 : •

sur la partie faible du bus de données lorsque l’adresse à écrire (ou à lire) est paire : validation

par A0 ; •

sur la partie haute lorsque l’adresse est impaire : validation par BHE.

Ainsi l’un de ces deux signaux A0 ou BHE doit être utilisé pour sélectionner le 8255 :

Conséquence : les adresses des registres du 8255 se trouvent à des adresses paires (validation par A0) ou impaires (validation par BHE). Le décodeur d’adresses détermine l’adresse de base du 8255 ; les lignes A1 et A2 déterminent les adresses des registres du 8255. Exemple : connexion du 8255 sur la partie faible du bus de données du 8086, avec décodage d’adresses incomplet (les lignes d’adresses A3 - A15 ne sont pas toutes utilisées) :

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

6


Cours des Microprocesseurs

BTS GI

Détermination de l’adresse du 8255 :

A2 = 0 et A1 = 0 : adresse du port A = adresse de base + 0 = 300H ;

A2 = 0 et A1 = 1 : adresse du port B = adresse de base + 2 = 302H ;

A2 = 1 et A1 = 0 : adresse du port C = adresse de base + 4 = 304H ;

A2 = 1 et A1 = 1 : adresse du registre de commande = adresse de base + 6 = 306H.

Remarque : le décodage d’adresses étant incomplet, le 8255 apparaît dans plusieurs plages d’adresses selon les valeurs des bits d’adresses non décodés (A7 - A13 et A12 -A15). Dans cet exemple, l’adresse de base 300H correspond à la première adresse possible (bits d’adresses non décodés tous égaux à 0). Remarque : si on veut que le 8255 possède des adresses consécutives (par exemple 300H, 301H, 302H et 303H), on peut utiliser le schéma suivant qui exploite tout le bus de données (D0 - D15) du 8086 :

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

7


Cours des Microprocesseurs

BTS GI

Exemple de programmation : soit le montage suivant :

On veut que la LED s’allume lorsqu’on a la combinaison : K0 = 1 et K1 = 0 et K2 = 1. Programme :

portA

equ

300H

portB

equ

302H

portC

equ

304H

controle

equ

306H

mov

dx,controle

mov

al,90H

out

dx,al

; controle = 10010000B = 90H

mov

dx,portA

; lecture du port A

in

al,dx

boucle :

Prof : A. El magri

; adresses des registres du 8255

; initialisation du port A en entrée ; et du port B en sortie (mode 0) :

Chapitre 6 : Les interfaces d’entrées / sorties

8


Cours des Microprocesseurs

BTS GI

and

al,00000111B

; masquage PA0, PA1 et PA2

cmp

al,00000101B

; test PA0 = 1, PA1 = 0 et PA2 = 1

jne

faux

; non -> aller au label ‘‘faux’’ ...

mov

al,00000001B

; oui -> mettre PB0 `a 1

jmp

suite

; et continuer au label ‘‘suite’’

faux :

mov

al,00000000B

; ... mettre PB0 `a 0

suite : mov

dx,portB out

dx,al

jmp

boucle

; écriture du port B ; retourner lire le port A

Mode 1 : Entrées/Sorties Parallèles avec Dialogue Dans ce mode de fonctionnement, seuls les ports A et B sont disponibles pour le transfert parallèle des données en entrée ou en sortie. Les 2x4 bits du port C servent aux signaux de dialogue. On distingue deux configurations : l’entrée et la sortie. - Mode 1 en entrée Les ports A et B sont programmés en entrée. Les signaux de dialogue correspondants sont respectivement PC3, PC4, PC5 et PC0, PC1, PC2. Les deux bits restants (PC6 et PC7) peuvent être programmés soit en entrée soit en sorties.

Signification des signaux de dialogue • STB\ (STROBE) : signal en entrée permettant l’échantillonnage de la donnée présente sur le port

associé. Un niveau bas sur cette entrée autorise le passage, de la donnée dans le registre d’entrée. Celui-ci sera verrouillé au front montant de STB\. • IBF (Input Buffer Full) : signal en sortie indicateur de prête en entrée du port. Cette sortie est mise à 1

sur front descendant de STB\. Elle sera remise à 0 sur front montant de RD\ : c'est-à-dire lorsqu’on aura effectué la lecture de la donnée. • INTR lnterrup Request (Demande d’interruption) : signal en sortie pouvant être utilisé pour effectuer

une demande d’interruption au CPU. Elle passe à 1 sur le front montant de STB\ si le masque qui lui est associé (INTE) est préalablement mis à 1. INTR est remis à 0 sur le front descendant de RD\ (lecture de l’information). Fonctionnement

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

9


Cours des Microprocesseurs

BTS GI

Le périphérique place une donnée de 8 bits sur A7-A0 (ou B7-B0) puis génère un strobe (STB\=0) qui charge cette donnée dans le latch d’entrée. Ceci a pour effet l’activation du signal IBF à 1, indiquant au CPU que la donnée est prête à l’entrée du port. Mot d’état (Port A/Port B) : adresse port C

Mode 1 en sortie Les ports A et B sont programmés en sortie. Les signaux de dialogue correspondants sont respectivement PC3, PC6. PC7 et PC0, PC1, PC2. Les deux bits restants (PC4 et PC5) peuvent être programmés soit en entrée soit en sorties.

Signification des signaux de dialogue • ACK\(Acknowledge) signal en entrée. Un niveau 0 sur cette entrée signale au 8255 que la donnée a

été prise en compte. • OBF\ (Output Buffer Full): signal en sortie indicateur de donnée prête en sortie du port. Cette sortie est

mise à 1 sur front montant de WR\ c’est à dire lors d’une opération de sortie sur le port associé. Elle sera remise à 0 sur front descendant de ACK\ (réponse du périphérique comme quoi il a bien reçu la donnée). • INTR Demande d’interruption ; signal en sortie. Cette sortie passe à 1 sur front montant de ACK\ si le

masque qui lui est associé est à 1. Elle est remise à 0 sur le front descendant de WR\. Fonctionnement Pour la sortie en mode 1, le microprocesseur écrit la donnée dans le port A (ou B). Le front montant de WR\ fait cesser l’interruption du μP (INTR=0), et met OBF\=0 pour signifier au périphérique que son buffer de sortie est plein et qu’il peut donc venir chercher une donnée requis la donnée ce dernier répond par ACK\=0 qui a pour effet de faire cesser OBF\=1. De nouveau ACK\=1, OBF\=1 et INTE=1 (par le bit SET/RESET de PC6 pour A et celui de PC2 pour B) fait interrompre le μP pour que celui-ci écrive la donnée suivante. Mot d’état (port A/port B) : adresse port C

Mode 2 : Entrée/Bus bidirectionnelle

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

10


Cours des Microprocesseurs

BTS GI

Le mode 2 permet d’avoir un bus bidirectionnel sur le port A. Cinq bits du port C sont utilisés pour le status et le contrôle du port A permettant un handshake similaire à celui du mode 1.

Mot d’état (port A/port B): adresse port C

6.5 L’interface série 8251 Une interface série permet d’échanger des données entre le microprocesseur et un périphérique bit par bit.

Avantage : diminution du nombre de connexions (1 fil pour l’émission, 1 fil pour la réception). Inconvénient : vitesse de transmission plus faible que pour une interface parallèle. Il existe deux types de transmissions séries : Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

11


Cours des Microprocesseurs

BTS GI

synchrone : chaque octet peut être émis ou reçu sans durée déterminée entre un octet et le

suivant ; •

asynchrone : les octets successifs sont transmis par blocs séparés par des octets de

synchronisation. La transmission asynchrone la plus utilisée est celle qui est définie par la norme RS232. Exemple : transmission du caractère ’E’ (code ASCII 45H = 01000101B) sous forme série selon la norme RS232.

l’état 1 correspond à une tension négative comprise entre −9 et −15 V, l’état 0 à une tension

positive comprise entre +9 et +15 V. Au repos, la ligne est à l’état 1 (tension négative) ; •

le bit de start marque le début de la transmission du caractère ;

les bits de données sont transmis l’un après l’autre en commençant par le bit de poids faible.

Ils peuvent être au nombre de 5, 6, 7 ou 8. Chaque bit est maintenu sur la ligne pendant une durée déterminée T. L’inverse de cette durée définit la fréquence de bit = nombre de bits par secondes = vitesse de transmission. Les vitesses normalisées sont : 50, 75, 110, 134.5, 150, 300, 600, 1200, 2400, 4800, 9600 bits/s ; •

le bit de parité (facultatif) est un bit supplémentaire dont la valeur dépend du nombre de bits de

données égaux à 1. Il est utilisé pour la détection d’erreurs de transmission ; •

les bits de stop (1, 1.5 ou 2) marquent la fin de la transmission du caractère.

Principe d’une interface série :

Un circuit intégré d’interface série asynchrone s’appelle un UART : Universal Asynchronous Receiver Transmitter) ; une interface série synchrone/asynchrone est un USART. Exemples d’interfaces séries : Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

12


Cours des Microprocesseurs

BTS GI

8251 (Intel) ;

8250 (National Semiconductor) ;

6850 (Motorola).

Connexion de deux équipements par une liaison série RS232 : Les équipements qui peuvent être connectés à travers une liaison série RS232 sont de deux types : •

les équipements terminaux de données (DTE : Data Terminal Equipment) qui génèrent les

données à transmettre, exemple : un ordinateur ; •

les équipements de communication de données (DCE : Data Communication Equipment) qui

transmettent les données sur les lignes de communication, exemple : un modem. Pour connecter ces équipements, on utilise des connecteurs normalisés DB9 ou DB25 :

Différents signaux sont transportés par ces connecteurs :

DSR: Data Set Ready (Modem prêt) : signal d’entrée. DTR : Data Terminal Ready (Ordinateur prêt) : signal de sortie. RTS : Request To Send (Demande pour émettre) : signal de sortie. CTS : Clear To Send (Prêt pour émettre) : signal d’entrée. TxD : Transmit Data (Emission de données) : signal de sortie. RxD : Receive Data (Réception de données) : signal d’entrée. Seuls les 2 signaux TxD et RxD servent à transmettre les données. Les autres signaux sont des signaux de contrôle de l’échange de données. Connexion entre DTE et DCE :

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

13


Cours des Microprocesseurs

BTS GI

Dialogue entre DTE et DCE :

(Les signaux de contrôle sont actifs à l’état bas = tension positive) quand le DTE veut transmettre des données, il active le signal DTR. Si le DCE est prêt à

recevoir les données, il active le signal DSR puis le signal DCD : la communication peut débuter ; lorsque le DTE a une donnée à émettre, il active le signal RTS. Si le DCE peut recevoir la

donnée, il active CTS : le DTE envoie la donnée sur la ligne TxD; si le DCE veut demander une pause dans la transmission, il désactive CTS : le DTE arrête la

transmission jusqu’à ce que CTS soit réactivé. C’est un contrôle matériel du flux de données ; Lorsque la transmission est terminée, les signaux RTS, CTS, DTR, DCD et DSR sont

successivement désactivés. Applications des liaisons séries : transmission de données à travers une ligne téléphonique :

Le modem transforme les signaux numériques produits par l’interface série en signaux analogiques acceptés par la ligne téléphonique et inversement (modulations numériques FSK, PSK, ...). liaison série directe entre deux DTE :

Prof : A. El magri

liaison simple à 3 fils : rebouclage (strapping) des signaux de contrôle :

Chapitre 6 : Les interfaces d’entrées / sorties

14


Cours des Microprocesseurs

BTS GI

Ce câblage ne permet pas le contrôle matériel du flux entre les deux DTE. –

liaison complète : câble Null Modem :

Ce câblage simule la présence d’un modem (DCE) en croisant les signaux de contrôle et permet le contrôle matériel du flux. Mise en œuvre d’une interface série, l’USART 8251 Schéma fonctionnel

Adresses des registres

reset nCS nRD nWR CnD data | behaviour -------------------------------------+----------------------------------1 * * * * * | device reset 0 1 * * * * | device passive 0 0 1 1 * * | device selected but inactive 0 0

0 0

0 1

1 0

1 1

read | write |

read status register write mode/command/sync registers

0

0

0

1

0

read

read receive buffer

Prof : A. El magri

|

Chapitre 6 : Les interfaces d’entrées / sorties

15


Cours des Microprocesseurs

0

0

1

BTS GI

0

0

write |

write transmit buffer

Le 8251 comprend, principalement, une interface de connexion au modem, un bloc d’émission et un bloc de réception. Bloc d’émission Bloc d’émission Ce block comprend : 9

Deux registres • Un registre tampon (BUFFER OUT) qui reçoit du CPU les données parallèles. • Un registre de transmission qui converti les données à transmettre en série et insère des bits ou des

caractères suivant le mode de fonctionnement. 9

Une sortie série de caractères : TxD.

9

Deux sorties d’état: • TxRDY (Transmitter Ready)

Au niveau 1, cette sortie signale que le registre tampon est prêt à accepter un nouveau caractère (pendant que le registre de transmission émet le précédent). • TxE (Transmitter Empty)

Au niveau 1, cette sortie indique que la transmission du caractère est terminée et que le registre de transmission est vide. 9

Une entrée d’horloge de transmission TxC\ :

Cette horloge peut être égale à 1, 16 ou 64 fois la vitesse de transmission en Bauds dans le mode asynchrone. Bloc de réception Ce bloc comprend : 9

Deux registres : • Un registre de réception qui transforme les données série en parallèle. • Un registre tampon (Buffer IN) qui envoie au CPU les données parallèles.

9

Une entrée série de caractères: RxD.

9

Une sortie d’état: RxRDY (Receiver Ready)

Au niveau 1, cette sortie indique que le registre de réception est prêt à recevoir un caractère. 9

Une entrée d’horloge de réception

Cette horloge peut être égale à 1, 16 ou 64 fois la vitesse de réception en Bauds dans le mode asynchrone. 9

Une borne SYNDET (Synchro detect) : utilisée en mode synchrone, elle peut émettre ou recevoir suivant le mode de synchronisation choisit : interne ou externe. • Synchro interne : cette borne délivre un niveau haut lorsque le 8251 à détecté le mot de synchro. • Synchro externe : cette borne reçoit un niveau haut lorsqu’il y a eu détection (par un système

extérieur) du mot de synchro.

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

16


Cours des Microprocesseurs

BTS GI

Programmation du 8251 Avant l’utilisation, le 8251 doit recevoir successivement un mot de sélection de mode et un mot de commande. Ceci ne peut être effectué que si l’USART a reçu le signal RESET = 1 ou le mot de commande de RESET. Mot de sélection de mode S2

S1

EP

PEN

L2

L1

B2

B1 00 : mode synchrone # 00 : mode asynchrone

B2

B1

Vitesse en Bauds

0

1

Fréquence clock

1

0

Fréquence clock/16

1

1

Fréquence clock/64

L2

L1

Longueur du caractère

0

0

5 bits

0

1

6 bits

1

0

7 bits

1

1

8 bits

PEN

Parity Enable : Autorisation de parité

0

Pas de génération de bit de parité

1

Bit de parité ajouté

EP

Even Parity : Parité paire

0

Parité impaire

1

parité paire

Mode Asynchrone S2

S1

Bits de Stop

0

0

Invalide

0

1

1 bit

1

0

1,5 bits

1

1

2 bits

Mode synchrone Seuls les bits S1 et S2 ont une signification différente. Mode Synchrone S1

External Syrchro Detect : ESD

0

SYNDET est une sortie

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

17


Cours des Microprocesseurs

1

BTS GI

SYNDET est une entrée Mode Synchrone

S2

Single Character Synchro: SCS

0

Deux caractères de synchro

1

Un seul caractère de synchro

Remarque Dans le cas du mode synchrone, le ou les caractères de synchronisation doivent être chargés dans le 8251 (Ecriture avec C/D=1) immédiatement après l’envoie du mode. Mot de commande Quel que soit le mode choisi, ce mot est unique. Il a le format suivant. EH

D7: D6: D5: D4: D3: D2: D1: D0:

EH IR RTS ER SBRK RXE DTR TXEN

IR

RTS

ER

SBRK

RxE

DTR

TxEN

1=hunt mode 0=normal operation 1=internal reset 0=normal operation set nRTS output value 1: nRTS='0' 0: nRTS='1' 1=reset error flags 0=keep error flags 1=send break character 0=normal operation 1=enable receiver 0=disable receiver set nDTR output value 1: nDTR='0' 0: nDTR='1' 1=enable transmitter 0=disable transmitter

Remarque Lors de la mise sous tension 1e 8251 peut se trouver au niveau du registre de mode, caractère de synchronisation ou du registre de contrôle afin de garantir qu’il se trouve bien au niveau du registre de contrôle avant l’émission de la commande de reset interne, le constructeur recommande la séquence d’initialisation du cas pire : écriture de trois 00H consécutifs à l’adresse A0=1 afin de configurer le 8251 dans le mode synchrone avec deux caractères de synchronisation égales à 00H. Le reset interne pourrait alors suivre : écrire 40H dans le registre de contrôle. Une séquence d’initialisation pourrait être la suivante :

INIT

PROC NEAR MOV DX, CNT XOR AL, AL

Prof : A. El magri

; CNT=adresse du registre mode/contrôle ; AL 00H Chapitre 6 : Les interfaces d’entrées / sorties

18


Cours des Microprocesseurs

OUT OUT OUT MOV OUT MOV OUT MOV OUT INIT

RET

BTS GI

DX, AL DX, AL DX, AL AL, 40H DX, AL AL, 7AH DX, AL AL, 37H DX, AL ENDP

; écriture ; de 00H ; trois fois ; puis le REST inetrne ; écriture du mot de sélection du mode ; écriture du mot de commande

Mot d’état Le format du registre de STATUS est le suivant DSR

SYNDET

FE

OE

PE

TxE

RxRDY

TxRDY

Les cinq bits DSR, SYNDET, TxE, RxRDY et TxRDY ont la même signification que les bornes du même type. Les trois autres sont les indicateurs d’erreur Bit

Signification

PE

Parity error: Erreur de paitré.

OE

Overrun Error : Erreur de recouvrement. Ce bit est mis à 1 lorsqu’un caractère reçu écrase le précédent pas encore lu par le CPU.

PF

Framing Error : Erreur de format. Ce bit est mis à 1 lorsqu’un bit de stop

D7: D6: D5: D4: D3: D2: D1: D0:

manque à la fin du caractère. DSR nDSR input value: 1: nDRS is '0' 0: nDSR is '1' SYNDET 1=sync char detected (not implemented) FE 1=frame error flag 0=ok OE 1=overrun error 0=ok PE 1=parity error 0=ok TXEMPTY 1=transmission complete 0=transmitter busy RXRDY 1=receiver ready 0=receiver busy TXRDY 1=transmitter accepts new data 0=transmitter busy

Ces indicateurs sont remis à 0 par le bit ER du mot de commande.

6.6 Le Timer Programmable le 8253 Introduction Ce circuit établit des intervalles de temps avec précision ou compte des événements. Il pourra servir de : • générateur de rythme programmable. • Compteur d’événements. • Monostable. • Générateur de Bauds en communication série • Etc.

Son buffer 8 bits est à trois états ; le microprocesseur l’adresse de façon classique, par exemple à l’aide de ses instructions d’entrées-sorties (IN et OUT). Les données reçues par le 8253 ont 3 fonctions : 1 – programmer les modes de fonctionnement. 2 – charger les registres de comptage. 3 – lire les valeurs comptées. Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

19


Cours des Microprocesseurs

BTS GI

Structure interne Cette interface est constituée de trois circuits de comptage identiques possédant, chacun deux entrées « CLK » et « GATE » (gâchette) et une sortie « OUT ». Chacun possède également un registre de contrôle, un registre d’état (STATUS), un registre compteur « CR » pour recevoir le compte initial, un élément compteur «CE » effectuant le comptage mais accessible par le microprocesseur et un latch de sortie « OL » pour verrouiller le contenu du compteur CE et le rendre disponible pour la lecture. CR, CE et OL sont des paires de registre 8 bits.

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

20


Cours des Microprocesseurs

BTS GI

Accès aux registres

Adresses L’accès aux registres du 8253 s’effectue de la façon suivante :

__ CS 0 0 0 0 0 0 0 0 1 0

__ __ RD WR 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 X X 1 1

A1 0 0 1 1 0 0 1 1 X X

A0 0 1 0 1 0 1 0 1 X X

Chargement du compteur 0 Chargement du compteur 1 Chargement du compteur 2 Ecriture mot de mode Lecture Compteur 0 Lecture Compteur 1 Lecture Compteur 2 Pas d’Opération (3eme état 3) Inhibition (3eme état) Pas d’Opération (3eme état 3)

Le chargement du compteur i se fait en écrivant dans son registre CR.

Mot de commande Le format du mot de commande est le suivant :

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

21


Cours des Microprocesseurs

BTS GI

Procédure d’écriture Pour la procédure d’écriture, il faut se rappeler de deux conventions : • Pour chaque compteur, il faut écrire dans l’ordre : le mot de contrôle puis le compte initial. • Le compte initial doit se conformer au format binaire ou BCD indiqué par le mot de contrôle

Procédure de lecture On distingue deux types de commande : La commande Counter Latch (CL) : A pour effet de verrouiller, dans le registre OL correspondant, le contenu de l’élément compteur (CE) spécifié par les 2 MSB (bits plus significatifs) du mot de commande suivant

Modes de fonctionnement GATE = 1: valide le comptage (décomptage) GATE = 0 : le suspend mais n’a aucun effet sur la sortie OUT.

Mode 0 : Envoi d’une demande d’interruption en fin de décomptage Après chargement de la valeur à décompter et temporisation d’une impulsion d’horloge, le décomptage commence. La sortie est au niveau bas. Lorsque le décomptage atteint 0, la sortie passe au niveau 1. Ce qui se traduit par l’émission d’une demande d’interruption. Elle reste à 1 jusqu’au changement d’un nouveau mode ou d’une nouvelle valeur. Le décomptage se poursuit.

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

22


Cours des Microprocesseurs

BTS GI

Mode 1 : Re-déclenchement par impulsion extérieur En position d’attente, la sortie est au niveau haut. Un front montant sur la gâchette GATE déclenche le décomptage au top d’horloge qui suit. Alors la sortie passe à 0 et s’y maintient jusqu’à ce que le décompte arrive à 0. Chaque front montant sur GATE relance le processus à partir du compte initial (si celui-ci n’a pas été modifié). En mode 1 le 8253 fonctionne en monostable.

Mode 2 : Timer d’intervalle périodique Après le chargement de CR par N, à la prochaine impulsion d’horloge s’effectue le transfert de CR à CE et le décomptage commence. Mais au contraire du mode 1 la sortie reste au niveau haut. Lorsque le compte arrive à 1 elle passe à zéro et y reste pendant une période et retourne à 1. Le décompteur repart alors à partir du compte initial pour un autre cycle identique. On génère ainsi des tops à intervalles réguliers. Le décompte est suspendu par le passage de GATE à 0 et reprend, depuis le compte initial, par son passage à 1.

Mode 3 : Générateur d’ondes carrées 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 décompte et un niveau 0 l’inhibe alors qu’un front montant le réinitialise. De ce fait, une valeur impaire amène (N+l)/2 avec sorties au niveau haut et (N-1)/2 au niveau bas. On utilise ce mode pour la génération de Bauds.

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

23


Cours des Microprocesseurs

BTS GI

Mode 4 : Strobe déclenché par logiciel Ce mode est similaire au mode 0 sauf que OUT est au niveau haut pendant le décomptage et produit une seule impulsion négative lorsque le compte devient nul.

Mode 5 : Strobe déclenché par matériel (hardware) Après le chargement de CR, un front montant sur GATE fait transférer CR dans CE à la prochaine impulsion d’horloge. Comme dans le mode 4, OUT reset à 1 pendant le décomptage puis passe à 0 pendant une période d’horloge lorsque le compte est nul. GATE peut réinitialiser le décomptage à tout moment.

Prof : A. El magri

Chapitre 6 : Les interfaces d’entrées / sorties

24


chapitre-6_interface_es