Chapitre 4 Transmission de données et interface d'entrée/sortie

Chapitre 4 Transmission de données et interface d'entrée/sortie

La transmission de données entre le CPU et les périphériques n'a pas de bus d'adresses, mais est effectuée par la puce d'interface via le transfert et le pont.

Il existe trois façons de communiquer entre le CPU et les données :

Requêtes, interruptions et accès direct à la mémoire (DMA).

  • Interrogation : la CPU demande en permanence si le périphérique d'E/S est prêt via le programme, afin de contrôler l'échange d'informations entre le périphérique d'E/S et l'hôte. L'inconvénient de cette méthode de requête est que si l'état de l'appareil n'est pas prêt, le processeur continuera à avancer et à attendre, ce qui affectera l'efficacité d'exécution du processeur.

  • Interruption : une fois que la CPU a démarré le périphérique d'E/S, elle ne demande pas si le périphérique est prêt, mais continue d'exécuter son propre programme et ne répond que lorsque le périphérique est prêt et envoie une demande d'interruption à la CPU. De cette manière, le phénomène de "stepping" du CPU peut être évité et le taux d'utilisation du CPU peut être amélioré.

    Ce n'est qu'après avoir reçu la demande du périphérique d'E/S que les données seront lues de l'interface vers la CPU, puis vers la mémoire principale (en s'appuyant sur l'implémentation ISR du service de programme d'interruption) , et le cycle sera répété jusqu'à la transmission des données. est terminé.

Processus interrompu :

L'appareil envoie une demande d'interruption à la CPU, et la CPU détecte la demande d'interruption dans chaque cycle de bus et accorde l'autorisation d'interruption correspondante ( désactiver l'interruption : empêcher d'autres signaux d'interruption de sauvegarder le programme de point d'interruption et d'accéder à la première adresse de l'interruption gestionnaire défini par l'appareil ), puis protégez le site (environnement de sauvegarde du programme de service terminal, processus d'interruption ouvert, environnement de récupération)

dernier retour d'interruption

Interruption 8086/8088

  • 8086 utilise un code binaire 8 bits pour représenter un type d'interruption, et il y a 256 interruptions au total.
  • Les interruptions sont divisées en interruptions externes et interruptions internes
  • 8086 table des vecteurs d'interruption : table de conversion du numéro de type d'interruption et de l'adresse d'entrée de la fonction de service du terminal correspondante
    • Chaque type d'interruption correspond à un vecteur d'interruption, composé de quatre octets
      • Octet d'adresse haute : l'adresse de segment du segment de code stockant la routine de service d'interruption
      • Octet d'adresse bas : stocke l'adresse de décalage de la routine de service d'interruption
    • Plage d'adresse :
    • 00000H - 03FFFH

Accès direct à la mémoire :

DMA fait référence à la technologie d'interface selon laquelle le périphérique externe échange directement des données avec la mémoire système sans passer par le processeur. Habituellement, le bus système est géré par le CPU. En mode DMA, on espère que le CPU laissera ces bus sortir, c'est-à-dire que les lignes connectées à ces bus par le CPU sont dans le troisième état (état haute impédance) , et le contrôleur DMA prend le relais et contrôle le nombre d'octets transférés, pour déterminer si le DMA est terminé, et pour signaler la fin du DMA.

Convient pour la transmission de données à grande vitesse.

8253 Minuteries et compteurs

registre de mots de contrôle

image-20220105110320880

Écrivez d'abord les 8 bits inférieurs, puis les 8 bits supérieurs.

  • six façons de travailler

    mode 0 : interruption de fin de comptage

    image-20220105110512831

    • Lorsque le compteur a fini d'écrire la valeur de comptage, il commence à compter (déclenchement logiciel) et le signal de sortie correspondant OUT passe au niveau bas. Lorsque le compteur descend à zéro, OUT produit immédiatement un niveau haut.
    • Lorsque le signal de commande de porte est de niveau haut, le compteur fonctionne ; lorsqu'il est de niveau bas, le compteur cesse de fonctionner et la valeur de comptage reste inchangée
    • Pendant le fonctionnement du compteur, si une nouvelle valeur de comptage est réécrite, le compteur retravaillera en fonction de la valeur de comptage nouvellement écrite, ce qui peut réaliser la fonction de comptage répété

    mode 1 : Impulsion monostable programmable

    image-20220105111354456

    • Après avoir écrit la valeur initiale de comptage, le compteur commence à fonctionner. Le front montant du signal de déclenchement GATE est valide avant qu'il ne commence à fonctionner (déclenchement matériel), de sorte que la sortie OUT devient basse et que la sortie ne devient haute que lorsque le compteur descend à 0.
    • Pendant le fonctionnement du compteur, lorsqu'il y a un autre front montant sur GATE, le compteur recharge la valeur initiale de comptage d'origine et recommence à compter
    • Si une nouvelle valeur initiale de comptage est écrite dans le compteur pendant le fonctionnement, il ne commencera pas à fonctionner avec la valeur initiale de comptage nouvellement écrite jusqu'à ce que la valeur de comptage actuelle soit pleine et revienne à zéro et que le signal de porte présente à nouveau un front montant.

    mode 2 : diviseur de fréquence

    image-20220105111500604

    • Une fois la valeur initiale de comptage définie, le compteur peut répéter automatiquement l'opération de soustraction "1", et la soustraction "1" compte à nouveau jusqu'à "0", et un signal d'impulsion négatif peut être émis à la borne de sortie
    • Après avoir écrit la valeur initiale de comptage, GATE est haut et commence à fonctionner. Lorsque le compteur est 0, OUT émet une impulsion négative avec une largeur d'impulsion d'horloge, puis revient automatiquement au niveau haut ; en même temps, il recharge automatiquement le comptage d'origine valeur initiale et compte à plusieurs reprises
    • Si une nouvelle valeur initiale de comptage est écrite dans le compteur pendant le travail, il ne commencera pas à fonctionner selon la valeur initiale de comptage nouvellement écrite jusqu'à ce que la valeur de comptage actuelle soit pleine et revienne à zéro.
    • Pendant le fonctionnement du compteur, lorsque GATE est à l'état bas, il arrête de compter. Après la récupération de GATE, le compteur recharge la valeur initiale de comptage d'origine et redémarre le comptage.

    mode 3 : sortie d'onde carrée

    image-20220105111829506

    • Le mode de fonctionnement du mode 3 est fondamentalement le même que celui du mode 2, et il a également pour fonction de charger automatiquement la constante de temps (valeur initiale de comptage)
    • La différence est que lorsque vous travaillez en mode 3, la sortie de la broche OUT n'est pas une impulsion négative d'un cycle d'horloge, mais une onde carrée avec un rapport cyclique de 1:1 ou environ 1:1. Lorsque la valeur de comptage est paire, la sortie est de niveau haut pendant la première moitié du processus de comptage et de niveau bas pendant la seconde moitié du processus de comptage ; lorsqu'il s'agit d'un nombre impair, le niveau haut est une impulsion d'horloge plus large que le bas niveau

    mode 4: stroboscope à déclenchement logiciel

    image-20220105111953072

    • La sortie OUT commence à passer à un niveau haut, et lorsque GATE est haut, elle commence à compter après avoir écrit la valeur de comptage. Lorsque le compteur diminue à zéro, OUT émet une impulsion négative avec une largeur d'une impulsion d'horloge, puis restaure le niveau haut et maintient le niveau haut tout le temps
    • Lorsque le signal de déclenchement GATE est au niveau haut, le compteur fonctionne, et lorsqu'il est au niveau bas, le compteur cesse de fonctionner, et après être revenu au niveau haut, le compteur commence à soustraire 1 de la valeur initiale de comptage d'origine.
    • Pendant le fonctionnement du compteur, si la nouvelle valeur initiale de comptage est réécrite, l'état de comptage actuel ne sera pas affecté, et seulement après l'enregistrement de la valeur de comptage actuelle, la valeur de comptage fonctionnera en fonction de la valeur de comptage écrite

    mode 5 : stroboscope à déclenchement matériel

    image-20220105112241824

    • Le compteur est déclenché par le front montant de GATE pour commencer à fonctionner
    • Lorsque la valeur de comptage initiale est écrite, le compteur ne commence pas à compter immédiatement, mais commence à compter à partir du front montant du signal de porte
    • Pendant le processus de comptage (ou après la fin du comptage), si le signal de porte présente à nouveau un front montant, le compteur recommencera à compter à partir de la valeur initiale de comptage d'origine.

Puce parallèle 8255A

  • Le registre de contrôle est généralement placé à la dernière adresse.

Structure de la puce :

image-20220105113406480

  • Tampon du bus de données : D7-D0connecté au bus de données système, responsable de l'échange de données avec la CPU. Y compris les données d'entrée et de sortie, le mot de contrôle et le mot d'état
  • Logique de contrôle de lecture et d'écriture : signaux de lecture et d'écriture, signaux de sélection de puce, A1A0sélection des broches d'entrée pour les ports (port ABC)
  • Contrôle du groupe A et contrôle du groupe B : le groupe A contrôle les 4 bits supérieurs du port A et du port C, le groupe B contrôle les 4 bits inférieurs du port B et du port C
  • Ports A, B et C : leurs fils externes sont respectivement PA7~PA0, PB7~PB0et PC7~PC0. Le port C peut être divisé en deux ports 4 bits : le port C haut 4 bits ( PC7~PC4) et le port C bas 4 bits ( PC3~PC0).

Trois manières de travailler :

  • Mode 0 : mode d'entrée et de sortie de base

    • S'applique à la méthode de transfert inconditionnel
    • Capacité de verrouillage pour l'entrée, pas de sortie pour la sortie
  • Mode 1 : mode d'entrée et de sortie stroboscopique

    • Convient pour la requête de programme et le mode de contrôle d'interruption
    • Un port et un port B sont généralement utilisés pour la transmission de données d'E/S, et le port C est utilisé comme ligne de connexion entre le port A et le port B pour transmettre des données en mode interruption.
    • En mode 1, le port A et le port B peuvent stroboscoper les données de sortie, et les 6 lignes du port C sont utilisées comme signaux de contrôle stroboscopiques : PC3、PC6、PC7coopérer avec le port A, PC0、PC1、PC2coopérer avec le port B ;
  • Mode 2 : mode de transmission bidirectionnelle

    • Seul le port A peut fonctionner de cette façon
    • L'entrée et la sortie du port A ont une capacité de verrouillage des données, et l'entrée et la sortie des données peuvent provoquer une interruption
    • Convient pour la requête de programme et le mode de contrôle d'interruption
    • À ce moment, le port B peut fonctionner en mode 0 ou en mode 1, et les 3 lignes restantes du port C peuvent être utilisées comme lignes d'entrée et de sortie ou comme lignes de contrôle en mode 1.
  • Application : affichage dynamique et clavier matriciel

    image-20220105115329294

    PC7 - PC4Indique une ligne, PC3-PC0indique une colonne et 11011101indique que la deuxième ligne et la deuxième colonne sont enfoncées.

Caractéristiques de la communication série

  • La communication série fait référence à une méthode de communication dans laquelle les données sont transmises bit par bit
  • Convient pour la communication longue distance
  • Selon que les horloges des parties émettrice et réceptrice sont unifiées, elles peuvent être divisées en transmission synchrone et transmission asynchrone.

Processus de transmission de la communication série (trame de mots asynchrone)

En mode asynchrone, les extrémités émettrice et réceptrice ont des horloges de synchronisation de bits indépendantes et le débit de transmission de données est convenu par les deux parties. Les parties émettrices et réceptrices utilisent les données elles-mêmes pour se synchroniser. Lorsque l'écart d'horloge des deux parties n'est pas important, tant que l'horloge bit dans un cycle de synchronisation ne dépasse pas 1 bit de transmission, la condition d'une réception correcte peut être remplie.

Une trame d'informations est composée de quatre parties : bit de départ, bit de données, bit de contrôle de parité et bit d'arrêt.

image-20220105123237848

  • Bit de démarrage : il s'agit d'un niveau bas d'un bit de large après le niveau haut, et son front descendant représente la relation d'horloge, informant le récepteur que la transmission commence
  • Bits de données : 5 à 8 bits, spécifiquement convenus par les deux parties via un logiciel
  • Bit de parité : vérifie la parité des données ; il ne peut pas non plus être utilisé
  • Bit d'arrêt : il peut s'agir de 1 bit, 1,5 bit ou 2 bits, et les détails sont convenus par les deux parties. Actif haut, c'est-à-dire que le niveau haut du bit d'arrêt indique la fin d'un caractère

La communication série asynchrone identifie généralement les erreurs suivantes

  • Erreur de parité : Le récepteur calcule la parité selon que le nombre de 1 est pair ou impair, et la compare à la valeur attendue ; elle peut être interrompue ou interrogée lorsqu'elle est incohérente ; le travail du dispositif d'interface n'est pas interdit
  • Erreur de trame : une séquence binaire commençant par un bit de démarrage et se terminant par un bit d'arrêt est une trame. Si le récepteur ne reçoit pas suffisamment de bits d'arrêt, il s'agit d'une erreur de trame. Il existe de nombreuses raisons, telles que des problèmes avec le récepteur ou l'émetteur, des interférences sur la ligne de transmission ou une erreur d'horloge de transmission dépassant la valeur autorisée. Signalez simplement une erreur sans en préciser la raison
  • Erreur de débordement : le microprocesseur ne peut pas supprimer les données du registre à décalage à temps, et ces dernières données écraseront les données précédentes

Interruption ou requête ; n'empêche pas le fonctionnement du dispositif d'interface

  • Erreur de trame : une séquence binaire commençant par un bit de démarrage et se terminant par un bit d'arrêt est une trame. Si le récepteur ne reçoit pas suffisamment de bits d'arrêt, il s'agit d'une erreur de trame. Il existe de nombreuses raisons, telles que des problèmes avec le récepteur ou l'émetteur, des interférences sur la ligne de transmission ou une erreur d'horloge de transmission dépassant la valeur autorisée. Signalez simplement une erreur sans en préciser la raison
  • Erreur de débordement : le microprocesseur ne peut pas supprimer les données du registre à décalage à temps, et ces dernières données écraseront les données précédentes

Les niveaux logiques RS-232 sont inversés

Je suppose que tu aimes

Origine blog.csdn.net/wjrzm2001/article/details/127459136
conseillé
Classement