Composant 8250 Architecture 03/11/02
David Saint-Mellion Page 1/2
Composant 8250
Le circuit 8250 est un UART, Universal Asynchronous Receiver/Transmitter).
Il comporte 10 registres répartis en 3 catégories :
• registres de contrôle : DLL et DLM, IER, LCR et MCR;
• registres d'état : LSR, MSR et IIR;
• registres de données : RBR et THR;
Adresse des registres, mode d'accès
Adresse Nom et désignation du registre bit DLAB Accès
Base +0 RBR Registre de réception de données 0 Read
Base + 0 THR Registre d'émission de données 0 Write
Base +0 DLL Registre de division d'horloge (poids faible) 1 R/W Base +1 DLM Registre de division d'horloge (poids fort) 1 R/W Base + 1 IER Registre d'autorisation d'interruption 0 R/W Base + 2 IIR Registre d'identification d'interruption 0 Read Base + 3 LCR Registre de contrôle de ligne 0 R/W Base + 4 MCR Registre de contrôle de modem 0 R/W
Base + 5 LSR Registre d'état de la ligne 0 R/W
Base + 6 MSR Registre d'état du modem 0 R/W
Base + 7 SCR "Scratch Register" (inutilisé) 0 R/W (DLAB désigne le bit 7 de LCR)
Le Registre de Contrôle de Ligne LCR
LCR1 et LCR0 précisent la longueur du caractère : 00 - 5 bits ; 01 - 6 bits ; 10 - 7 bits ; 11 - 8 bits LCR2 Nombre de bits de STOP : 0 - 1 bit de STOP ; 1 -: 2 bits de STOP pour 6, 7, 8 bits de données et 1,5 bits de STOP pour 5 bits de données ;
LCR3 Contrôle de parité - 0 pas de contrôle.
LCR4 Type de parité : 0 - parité impaire (odd ) 1 - parité paire (even)
LCR5 Force le bit de parité: 0 à hors service, 1 si LCR3= 1, le bit de parité est forcé à l'état inverse de LCR4 LCR6 Contrôle d’un BREAK : 0 hors service, 1: mise à 0 de la sortie Tx jusqu'à la mise à 0 de LCR6 LCR7 : DLAB : 1 - accès aux registres de division ; 0 - accès aux registres RBR, THR, IER.
Le Registre de Contrôle de Modem MCR
MCR0 Force la ligne DTR dans l'état indiqué MCR1 Force la ligne RTS dans l'état indiqué
MCR2 Valide (1) ou invalide (0) la sortie OUT1 (à laisser dans l'état antérieur) MCR3 " " " " " " " OUT2 ( idem )
MCR4 Autotest: les sorties sont rebouclées (en interne) sur les entrées si MCR4=1
Les Registres de Division DLL et DLM
Ils permettent de diviser la fréquence d'entrée (Il y a une prédivision par 16 de Fqc_Horloge). Sur le PC, la fréquence d'horloge est de 1.8432 Mhz.
Vitesse de transmission = 1.8432 /(16xBSR))
Débit DL Débit DL Débit BSR
600 0x00C0 2400 0x0030 7200 0x0010
1200 0x0060 4800 0x0018 9600 0x000C
Composant 8250 Architecture 03/11/02
David Saint-Mellion Page 2/2
Le Registre d'Autorisation d'Interruption IER
Lorsque le bit est à 0, il n'y aura pas de signal d'interruption émis par le boîtier pour l'événement désigné.
Lorsque tous les bits sont à 0, cela signifie qu'il n'y aura en aucun cas d'interruption produite par le circuit vers le gestionnaire d'interruption du PC (8259).
IER0 interruption produite à l'arrivée d'un caractère RBR plein IER1 interruption produite lorsque THR est vide
IER2 interruption autorisée sur changement du statut de ligne IER3 interruption autorisée sur changement du statut de modem IER4 à IER7 inutilisés (toujours à zéro).
Le Registre d'Etat de Ligne LSR
Il rend compte de l'état de la transmission;
LSR0 à 1 si donnée prête RBR plein - provoque une IT si elle est autorisée (IER0 à 1).
LSR1 à 1 si débordement (un caractère nouveau vient d'arriver alors que le précédent n'a pas encore été lu)
LSR2 à 1 si erreur de parité
LSR3 à 1 si erreur de trame (bit de STOP absent) LSR4 à 1 si erreur de break
LSR5 à 1 si THR est vide; remis à 0 par le chargement de THR - provoque une interruption si elle est autorisée (IER1 à 1).
LSR6 à 1 si THR et TSR(registre interne de décalage) sont vides; remis à 0 par le chargement de THR) LSR7 toujours à 0
La lecture de ce registre remet à zéro les bits 0 à 4.
Les bits 1 à 4 provoquent une interruption si elle est autorisée (IER2 à 1).
Le Registre d'Etat du Modem MSR
Il rend compte de l'état des lignes de contrôle du modem : MSR0 à 1 CTS a changé d'état depuis la dernière lecture;
MSR1 à 1 DSR a changé d'état depuis la dernière lecture;
MSR2 à 1 la ligne RI est passée de l'état haut à l'état bas depuis la dernière lecture;
MSR3 à 1 DCD a changé d'état depuis la dernière lecture;
MSR4 contient l'état de CTS; MSR5 contient l'état de DSR; MSR6 contient l'état de RI; MSR7 contient l'état de DCD;
La lecture de MSR remet à zéro les bits 0 à 3. Les bits 0 à 3 provoquent une interruption si elle est autorisée (IER3 à 1).
Le Registre d'Identification des Interruptions IIR
Il sert à identifier la source interne d'interruption:
IIR0 interruption en attente :
0 Interruption en attente ; 1 pas d’Interruption en attente;
IIR2 et IIR1 indique la source d'interruption de plus haute priorité en attente:
1 1 : statut ligne
1 0 : donnée reçue et prête à lire 0 1 : registre THR vide
0 0 : statut modem.