Périphériques PC - Pages de Michel Deloizy

michel.deloizy.free.fr

Périphériques PC - Pages de Michel Deloizy

1 Le port série 8250.Occupe 8 adresses. Implanté de 3F8 à 3FF.Gère bits de START, STOP, et Parité.Générateur de bauds intégré.Caractères de 5 à 8 bits avec 1, 1.5 ou 2 bits de stop.Génération d'interruptions.Format des informations en sortie de l'UART :1/5 Mesures et Contrôles AutomatisésCircuits périphériques du 8086 dans le PC.MarkStartParitéStopb0b7DonnéeRemarques :Le bit b0 est le premier émis et reçu.L'UART insère automatiquement les bits de contrôle (START, STOP et Parité).Bit de START : niveau 0.Bit de STOP : niveau 1.Lignes de transmission au repos : niveaux 1.En liaison RS232 : inversion des signaux établis entre -12v/+12v.Niveau 0 : +12 volts.Niveau 1 : -12 volts.Registres du 8250 :bit Adresse R/W Registre FonctionDLAB0 3F8 W TransmissionRegistre émission des donnéesTHR0 3F8 R RéceptionRegistre réception des donnéesRBR1 3F8 R/W Latch div. LSBPoids faible compteur générateur de baudsBAL1 3F9 R/W Latch div. MSBPoids fort générateur de baudsBAH0 3F9 R/W Autoris. iTPermet le déclenchement d'interruptionsIERx 3FA R Identif. ITPermet détermination source d'interruptionsIIRx 3FB R/W Contrôle ligneDéfinition du format de transmission (b7=DLAB)LCRx 3FC R/W Contrôle modemGestion lignes de contrôle (RTS, DTR, Out 1 & 2)MCRx 3FD R Etat ligneGestion erreurs transmission, reg. émiss/trans. videsLSRx 3FE R Etat modemLecture lignes de contrôle (DCD, RI, DSR, CTS)MSRx 3FF R/W Scratch Mémoire tamponLa valeur à placer dans le générateur de bauds est donnée par la formule :FN = 16* BBaudsNoù F est la fréquence du signal appliqué à l'entrée horloge (Hz) (1,84 MHzsur PC),B est la vitesse de transmission désirée (Bauds).1200 96 (60h)9600 12 (0Ch)19200 6 (06h)38400 3 (03h)


2/5 Mesures et Contrôles AutomatisésInterrupt Enable Register (IER) :Autorisation des interruptions selon diverses sources :Bit IERFonction7 à 4 Réservés (=0)3 1 : Autorise interruptions modem2 1 : Autorise interruptions réception sur ligne (Rx)1 1 : Autorise interruptions reg. émission vide (Tx)0 1 : Autorise interruptions donnée disponible (Rx)Interrupt Identification Register (IIR) :Permet d'identifier la source de l'interruption :Bit IIRFonction7 à 3 Réservés (= 0)2Numéro de la source d'iT (voir tab. ci dessous)10 Pas d'interruption en attente si = 1Les bits b2 et b1 de IIR permettent de déterminer la source d'interruption :bits IIR Priorité Source Cause Acquittementb2 b11 1 1 (+) réception sur ligne Rx erreur de réception ou lecture LSRBreak1 0 2 donnée reçue donnée reçue dans lecture RBRdisponibleregistre RBR0 1 3 registre émission vide registre émission(THR) videécriture THR oulecture IIR0 0 4 (-) état du modem changement d'état surles lignes du modemlecture de MSRLine Control Register (LCR) :Bit LCRFonction7 1 : Accès au reg. géné. bauds (DLAB)6 1 : Force la sortie Tx état inactif (Break)5 1 : bit parité forcé à (-b4) (si b3 = 1)4 1 : sélection parité paire (si b3 = 1)3 1 : autorise bit parité21format de transmission0Format de transmission (selon b2,b1,b0 de LCR) :b2 b1 b0 bits donnée bits stop0 0 0 5 10 0 1 6 10 1 0 7 10 1 1 8 11 0 0 5 1,51 0 1 6 21 1 0 7 21 1 1 8 2


Modem Control Register (MCR) :3/5 Mesures et Contrôles AutomatisésBit MCRFonction7 à 5 Réservés (= 0)4 1 : mode 'bouclé' (tests)3 1 : OUT2 = 02 1 : OUT1 = 01 1 : RTS = 00 1 : DTR = 0Line Status Register (LSR) :Modem Status Register (MSR) :Bit LSRFonction7 Réservé (= 0)6 1 : buffer émission & reg. décalage vides5 1 : Buffer émission vide (iT évent.)4 1 : détection break (durée transmission 1 mot)3 1 : bit de stop invalide (framing error)2 1 : erreur de parité1 1 : donnée perdue (non lue : overrun error)0 1 : donnée reçue et disponible dans RBRBit MSRFonction7 1 : entrée #DCD = 06 1 : entrée #RI = 05 1 : entrée #DSR = 04 1 : entrée #CTS = 03 1 : changement d'état de DCD2 1 : changement d'état de RI1 1 : changement d'état de DSR0 1 : changement d'état de CTSRem : iT possible si b3...b0 = 1.


2 Le contrôleur d'interruptions 8259.4/5 Mesures et Contrôles AutomatisésSur le 8086, une seule entrée IRQ -> nécessité d'implanter un contrôleur d'iT pour pouvoir connecter plusieurs dispositifs etalléger traitement par µP.Sur PC, implanté à l'adresse 20h (20h ... 2Fh).permet gestion de 8 sources d'interruptions (64 en mode cascadé).gère la vectorisation des iT compatible avec 8086.permet déclenchement iT sur niveaux ou sur fronts.gère priorités et masquage.Priorité et masquage :- La priorité permet de prendre en compte ou non une iT en fonction d'un niveau de priorité associé à l'iT.Niveau le plus prioritaire : 0Niveau le moins prioritaire : 7Si iT5 et iT2 arrivent simultanément : iT2 servie en priorité.- Le masquage permet de ne pas prendre en compte une iT (elle est ignorée).La priorité produit un effet de masquage sur toute autre iT de niveau prioritaire inférieur.Exemple (ISR : In-Service Register) :registre ISR b7 b6 b5 b4 b3 b2 b1 b0Priorité 7 6 5 4 3 2 1 0valeur ISR 0 0 0 0 0 0 0 0iT acceptées * * * * * * * *Requêtes iT^valeur ISR 0 0 1 0 0 0 0 0iT acceptées * * * * *Requêtes iT ^ ^ ^valeur ISR 0 0 1 0 1 0 0 0iT acceptées * * *Acquittement iT(non specifique)valeur ISR 0 0 1 0 0 0 0 0iT acceptées * * * * *Requêtes iT ^ ^valeur ISR 0 0 1 1 0 0 0 0iT acceptées * * * *A chaque ligne d'interruption correspond un numéro et un vecteur d'iT :Niveau Vecteur ad. vect. SourceIRQ0 08h 20h Timer canal 0IRQ1 09h 24h Clavier, disp. pointage, horl.temps réelIRQ2 0Ah 28h Réservé (vidéo)IRQ3 0Bh 2Ch COM2IRQ4 0Ch 30h COM1IRQ5 0Dh 34h Disque durIRQ6 0Eh 38h DisquetteIRQ7 0Fh 3Ch LPT1


Sur PC-AT, un deuxième 8259 est mis en esclave sur l'entrée IRQ2 du maître.Il est implanté à l'adresse A0h.On a alors 7 sources d'iT supplémentaires :5/5 Mesures et Contrôles AutomatisésNiveau Vecteur ad. vect. SourceIRQ8 70h 1C0h Horloge temps réelIRQ9 71h 1C4h détournée vers IRQ2IRQ10 72h 1C8h libreIRQ11 73h 1CCh libreIRQ12 74h 1D0h libre (souris PS/2)IRQ13 75h 1D4h coprocesseur 80287IRQ14 76h 1D8h disque durIRQ15 77h 1DCh libreStructure du 8059 :- 1 ligne d'adresse (occupe 2 adresses).- 4 registres d'initialisation (ICWx : Initialisation Command Words).- 3 registres de contrôle (OCWx : Operation Command Words).- 1 registre de masquage des iT (IMR : Interrupt Mask Register).- 1 registre de signalisation iT (IRR : Interrupt Request Register).- 1 registre de traitement iT (ISR : In-Service Register).Remarque : Accès aux registres de manière séquentielle.Registres ICWx :Initialisations à effectuer au démarrage du système.Commande effectuée avec A0=0 et D4=1 : mot de commande ICW1.-> démarre séquence d'initialisation.Réalisé par BIOS :Positionne vectorisation.Détermine types de déclenchement (fronts ou niveaux).Programme la mise en cascade.Registres OCWx :Registres de contrôle utilisés pour activer iT, acquitter,...OCW1 :Accès à OCW1 (Lecture/Ecriture) quand A0 = 1.Permet de positionner bits dans IMR (Interrupt Mask Register) -> masquage iTsi bit = 1 -> iT masquée (inhibée)si bit = 0 -> iT autorisée.b0 pour IRQ0, ...., b7 pour IRQ7.OCW2 :Accès quand A0 = 0 et D4=0 ,D3=0.Fonction :acquittement des iT.3 façons d'acquitter les iT :- Non spécifique : annule le bit de l'ISR de plus forte priorité- Spécifique : annule un bit de l'ISR. Ce bit devra être spécifié.- Automatique : annule le bit de l'ISR après que µP ait accusé réception de l'iT.

More magazines by this user
Similar magazines