Cet ouvrage fait partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour le lire en ligne
En savoir plus

UTBM MI43 Final 2000

2 pages
MI43 FinalMI 43 – FINALNote : les parties 1 et 2 sont à rédiger sur des copies séparéesPartie 1 : envoi de caractères vers une imprimantes via un port parallèleOn souhaite implémenter une fonction qui réalise l'envoie d'un paquet de données vers une imprimante selon le protocoleCentronics (SPP).Description de l'interface du port parallèleAdresse de base : 278hDescription des registres de l'interface :Décalage Registre Accès Description0Dat lecture/ Octet de donnée transféré vers l'imprimanteécriture1 Status lecture Etat du port parallèle et de l'imprimantebits 0 et 1 réservé, généralement à 1bit 2 IRQ#, 0 : interruption demandée par le portbit 3 ERROR#, 0 : une erreur est survenuebit 4 SELECT, 1 : l'imprimante est sélectionnéebit 5 PAPER OUT, 1 : plus de papierbit 6 ACK#, 0 : accusé de réceptionbit 7 BUSY, 0 : imprimante occupée *2 Control lecture/ Contrôle de port parallèle de la ligneécriturebit 0 STROBE#, 1 : active la ligne STROBE **bit 1 Auto LineFeed, 1 : autofeed (retour à la ligne automatique)bit 2 Init, 0 : initialisation de l'imprimante (remettre à un après l'initialisation)bit 3 Select In, 1 : sélection de l'imprimante (doit être à 1 pour envoyer des données)bit 4 Enable IRQ, 1 : active les interruptionsbit 5 Enable bi-direct., 1 : permet la lecture des données sur le port parallèle ***bits 6 et 7 réservés, mettre à 1* inversion matérielle : un 0 dans le registre indique que la ligne est à l'état haut et un 1 indique que la ligne ...
Voir plus Voir moins
MI43
MI 43 – FINAL
Note: les parties 1 et 2 sont à rédiger sur des copies séparées
Final
Partie 1 : envoi de caractères vers une imprimantes via un port parallèle On souhaite implémenter une fonction qui réalise l'envoie d'un paquet de données vers une imprimante selon le protocole Centronics (SPP).
Description de l'interface du port parallèle Adresse de base :278h Description des registres de l'interface : Décalage RegistreAccès Description 0 Datalecture/ Octetde donnée transféré vers l'imprimante écriture 1 Statuslecture Etatdu port parallèle et de l'imprimante
bits 0 et 1réservé, généralementà 1 bit 2IRQ#, 0: interruption demandée par le port bit 3ERROR#, 0: une erreur est survenue bit 4SELECT, 1: l'imprimante est sélectionnée bit 5PAPER OUT,1 :plus de papier bit 6ACK#, 0: accusé de réception bit 7BUSY, 0: imprimante occupée * 2 Controlde port parallèle de la lignelecture/ Contrôle écriture bit 0STROBE#, 1: active la ligne STROBE ** bit 1Auto LineFeed,1 : autofeed (retour à la ligne automatique) bit 2Init, 0: initialisation de l'imprimante (remettre à un après l'initialisation) bit 3Select In,1 : sélection de l'imprimante (doit être à 1 pour envoyer des données) bit 4Enable IRQ,1 : active les interruptions bit 5Enable bi-direct.,1 : permet la lecture des données sur le port parallèle *** bits 6 et 7réservés, mettreà 1 * inversion matérielle : un 0 dans le registre indique que la ligne est à l'état haut et un 1 indique que la ligne est à l'état bas. ** il est nécessaire de mettre un 1 pour mettre la ligne STROBE à l'état bas (inversion matérielle)… *** utilisé pour utiliser le port parallèle en bidirectionnel (inutilisé ici mettre à 0)
Fonctionnement du dialogue avec l'imprimante Dialogue STROBE# BUSY ACK# DATA
L'hôte place les données sur le port Il vérifie que la ligne BUSY est désactivée Il active la ligne STROBE#, la maintient durant 1µs et la désactive L'imprimante en réponse active la ligne BUSY signalant qu'elle traite l'octet et ne peut en recevoir d'autre (généralement transfert dans un tampon interne) une fois le caractère traité (de quelques microsecondes à quelques secondes selon le remplissage du tampon de l'imprimante) l'imprimante désactive la ligne BUSY et envoie une impulsion sur la ligne ACK# en la mettant brièvement à l'état bas.
UTBM – Printemps 2000
1/2
Nicolas Lacaille
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin