Les Interfaces d'Entrées/Sorties

Ce matériel couvre les interfaces d’entrées/sorties (E/S) en microprocesseur, leurs modes d’adressage, les instructions associées, ainsi que deux interfaces spécifiques : l’interface parallèle 8255 et le timer programmable 8253. Il s’adresse aux étudiants en informatique, électronique ou automatisme souhaitant comprendre la communication entre microprocesseur et périphériques.

D'après le document Les Interfaces d'Entrées/Sorties

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Les Interfaces d'Entrées/Sorties

Programmation, Microprocesseurs · PDF · 22 pages

Afficher l'aperçu du document

Consulter le document original →

Ce matériel couvre les interfaces d’entrées/sorties (E/S) en microprocesseur, leurs modes d’adressage, les instructions associées, ainsi que deux interfaces spécifiques : l’interface parallèle 8255 et le timer programmable 8253. Il s’adresse aux étudiants en informatique, électronique ou automatisme souhaitant comprendre la communication entre microprocesseur et périphériques.

Définitions et principes généraux des interfaces d’entrées/sorties

Une interface d’entrées/sorties est un circuit intégré qui permet au microprocesseur de communiquer avec l’environnement extérieur. Ces interfaces sont connectées au microprocesseur via les bus d’adresses, de données et de commandes. Les points d’accès aux interfaces sont appelés ports.

Adressage des ports d’E/S

Chaque circuit d’E/S possède des registres pour gérer les échanges avec les périphériques :

  • Registres de configuration
  • Registres de données

Chaque registre est associé à une adresse. Le microprocesseur accède à un port d’E/S en spécifiant l’adresse d’un de ses registres.

Le microprocesseur peut voir les adresses des ports d’E/S selon deux modes :

  • Adressage cartographique (memory-mapped I/O) : les adresses des ports d’E/S font partie du même espace mémoire que les circuits mémoire. Les E/S sont mappées en mémoire.
  • Adressage indépendant : le microprocesseur considère deux espaces distincts, un pour la mémoire et un autre pour les ports d’E/S.

Conséquences de l’adressage cartographique

  • L’espace d’adressage mémoire diminue.
  • L’adressage des ports d’E/S utilise une adresse de même longueur que pour la mémoire.
  • Les mêmes instructions et modes d’adressage que pour la mémoire peuvent être appliqués aux ports d’E/S.

Conséquences de l’adressage indépendant

  • L’espace mémoire total adressable n’est pas réduit.
  • L’adressage des ports d’E/S peut se faire avec une adresse plus courte (moins de bits) que pour la mémoire.
  • Les instructions utilisées pour accéder à la mémoire ne sont plus utilisables pour les ports d’E/S, nécessitant des instructions spécifiques.
  • Une même adresse peut désigner soit une case mémoire, soit un port d’E/S, donc un signal différenciant mémoire et E/S est nécessaire.

Instructions d’accès aux ports d’E/S

Les instructions spécifiques pour lire et écrire sur un port d’E/S sont respectivement IN et OUT. Ces instructions placent la ligne M/IO à 0, alors que l’instruction MOV la place à 1.

Lecture d’un port d’E/S

  • Si l’adresse du port est sur un octet :
  • IN AL, adresse  ; lecture 8 bits
    mov DX, adresse
    IN AL, DX      ; lecture 8 bits
  • Si l’adresse du port est sur deux octets :
  • IN AX, adresse  ; lecture 16 bits
    mov DX, adresse
    IN AX, DX      ; lecture 16 bits

Écriture sur un port d’E/S

  • Si l’adresse du port est sur un octet :
  • OUT adresse, AL  ; écriture 8 bits
    mov DX, adresse
    OUT DX, AL      ; écriture 8 bits
  • Si l’adresse du port est sur deux octets :
  • OUT adresse, AX  ; écriture 16 bits
    mov DX, adresse
    OUT DX, AX      ; écriture 16 bits

Exemples

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

Interface parallèle 8255

L’interface parallèle 8255 permet le transfert simultané de tous les bits de données entre le microprocesseur et des périphériques. Elle est programmable, ce qui signifie que ses ports peuvent être configurés en entrée ou en sortie par programme.

Structure et registres du 8255

  • 3 registres de données correspondant aux ports A, B et C
  • 1 registre de commande pour configurer les ports en entrée ou sortie

Adressage des registres

Les lignes d’adresses A0 et A1 définissent les registres :

A1A0Registre
00Port A
01Port B
10Port C
11Registre de commande

Modes de fonctionnement

  • Mode 0 : ports configurés en entrées ou sorties de base. Les données écrites sont mémorisées sur les lignes de sortie, les états des lignes d’entrée sont recopiés dans les registres sans mémorisation.
  • Modes 1 et 2 : utilisés pour des périphériques nécessitant un asservissement (contrôle plus complexe).

Exemple d’adressage

Si l’adresse de base du 8255 est 300H :

  • Port A : 300H (A2=0, A1=0)
  • Port B : 302H (A2=0, A1=1)
  • Port C : 304H (A2=1, A1=0)
  • Registre de commande : 306H (A2=1, A1=1)

Exemple de programmation

Allumer une LED lorsque la combinaison des entrées K0=1, K1=0, K2=1 est détectée (détails du code non fournis dans la source).

Timer programmable 8253

Le Timer 8253 (Programmable Interval Timer) génère des signaux d’horloge basse fréquence à partir d’une horloge haute fréquence CLK (jusqu’à 2 MHz). Il est utilisé pour des fonctions nécessitant des temporisations précises.

Structure du 8253

  • 3 compteurs indépendants (Compteur 0, 1 et 2)
  • Registre de contrôle partagé
  • Bus de données D0-D7 connecté au bus système
  • Signaux de contrôle RD/WR reliés aux signaux IOR/IOW du bus système

Signaux importants

  • CLKx : horloge d’entrée (jusqu’à 2 MHz)
  • OUTx : sortie du compteur
  • GATEx : activation/désactivation du compteur (haut = actif)

Adressage des compteurs et registre de contrôle

A1A0Port
00Compteur 0
01Compteur 1
10Compteur 2
11Registre de contrôle

Programmation du timer 8253

Chaque compteur est programmé séparément :

  • L’octet de contrôle est écrit dans le registre de contrôle pour définir la forme du signal OUT, le mode, le compteur sélectionné, etc.
  • Le nombre N, par lequel la fréquence CLK est divisée pour obtenir la fréquence OUT, est chargé sur 16 bits en deux octets (LSB puis MSB).

Structure du registre de contrôle

Le registre de contrôle est un octet dont les bits ont la signification suivante :

  • SC1 SC0 : sélection du compteur (00=0, 01=1, 10=2)
  • RL1 RL0 : mode de lecture/écriture (LSB, MSB, LSB puis MSB)
  • M2 M1 M0 : mode de fonctionnement (0 à 5)
  • BCD : mode binaire (0) ou BCD (1)

Modes de fonctionnement

  • Mode 0 : interruption au compte final
  • Mode 1 : impulsion programmable (une seule fois)
  • Mode 2 : générateur de pulses périodiques
  • Mode 3 : générateur de signal carré
  • Mode 4 : déclenchement logiciel
  • Mode 5 : déclenchement matériel

Exemple d’adressage et programmation

Si la puce 8253 est activée par CS à partir des adresses A7-A2 = 100101b, alors :

  • Compteur 0 : 94H
  • Compteur 1 : 95H
  • Compteur 2 : 96H
  • Registre de contrôle : 97H

Exemple de programmation du registre de contrôle :

MOV AL, 36H
OUT 97H, AL

Valeur 36H = 00110110b correspond à :

  • Compteur 0 sélectionné (SC1 SC0 = 00)
  • Lecture/écriture LSB puis MSB (RL1 RL0 = 11)
  • Mode 3 (signal carré) (M2 M1 M0 = 110)
  • Mode binaire (BCD = 0)

Exemple de programmation d’un compteur

Programmer le compteur 0 pour une fréquence CLK0/4282 en BCD et mode 3 :

MOV AL, 37H        ; Compteur 0, mode 3, BCD
OUT 97H, AL        ; Envoi au registre contrôle
MOV AX, 4282H      ; Nombre diviseur
MOV AL, 94H
OUT 94H, AL        ; Envoi LSB au compteur 0
MOV AL, AH
OUT 94H, AL        ; Envoi MSB au compteur 0

Autre exemple : programmation du compteur 2

Pour générer un signal carré à 360 Hz, sachant que fCLK2 = 1.8 MHz :

fCLK2 / fOUT2 = 1 800 000 / 360 = 5000 = 1388H (hexadécimal)

En BCD, 5000 s’écrit également 5000 (BCD).

MOV AL, B6H        ; Compteur 2, mode 3, binaire
OUT 97H, AL        ; Envoi au registre contrôle
MOV AX, 1388H      ; Nombre diviseur
MOV AL, 96H
OUT 96H, AL        ; Envoi LSB au compteur 2
MOV AL, AH
OUT 96H, AL        ; Envoi MSB au compteur 2

Formes des signaux OUT0, OUT1, OUT2

Exemples de programmation dans un IBM PC :

  • Compteur 0 : mode 3 (signal carré), nombre maximum 65536 (registre chargé avec 0000H), fréquence 18.2 Hz, rapport cyclique 50% (nombre pair).
  • Compteur 1 : mode 2 (générateur de pulses), nombre 18 (registre chargé avec 12H), fréquence 66 278 Hz, OUT1 reste haut pendant 17 périodes CLK et bas pendant la dernière.
  • Compteur 2 : mode 3 (signal carré), nombre 1331 (registre chargé avec 0533H), fréquence 896 Hz, rapport cyclique non 50% (nombre impair) : (N+1)/2 pulses à l’état haut, (N-1)/2 pulses à l’état bas.

Mode 3 : Générateur de signal carré

Pour générer un signal carré en mode 3 :

  • Charger le compteur avec la valeur N
  • Condition : GATE = 1 (activation)

Durée des états haut et bas :

Si N est pair :

Durée haut = N/2 × TCLK

Durée bas = N/2 × TCLK

Si N est impair :

Durée haut = (N+1)/2 × TCLK

Durée bas = (N-1)/2 × TCLK

Glossaire des termes clés

  • Interface d’entrées/sorties (E/S) : circuit intégré permettant au microprocesseur de communiquer avec l’extérieur.
  • Port : point d’accès aux interfaces d’E/S.
  • Adressage cartographique : mode où les ports d’E/S partagent l’espace mémoire avec la mémoire vive.
  • Adressage indépendant : mode où les ports d’E/S ont un espace d’adressage distinct de la mémoire.
  • Instruction IN : instruction pour lire un port d’E/S.
  • Instruction OUT : instruction pour écrire sur un port d’E/S.
  • Interface parallèle 8255 : interface programmable avec 3 ports (A, B, C) et un registre de commande.
  • Timer 8253 : timer programmable à 3 compteurs pour générer des signaux d’horloge basse fréquence.
  • Registre de contrôle : registre du 8253 qui configure le mode, le compteur sélectionné et la lecture/écriture.
  • Mode 3 : mode du timer 8253 générant un signal carré.
  • CLK : horloge d’entrée du timer.
  • GATE : signal d’activation/désactivation du compteur.

Points clés à retenir

  • Les interfaces d’E/S permettent la communication entre microprocesseur et périphériques via des ports adressables.
  • Deux modes d’adressage des ports d’E/S existent : cartographique et indépendant, chacun avec ses avantages et contraintes.
  • Les instructions IN et OUT sont spécifiques à l’accès aux ports d’E/S, distinctes des instructions mémoire.
  • L’interface 8255 est une interface parallèle programmable avec trois ports configurables en entrée ou sortie.
  • Le timer 8253 génère des signaux d’horloge basse fréquence programmables via trois compteurs et un registre de contrôle.
  • Le mode 3 du timer 8253 génère un signal carré avec un rapport cyclique dépendant de la valeur chargée dans le compteur.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions