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