Accueil | Page d'électronique

Le port Parallèle d'IBM

Table des matières


Qu'est-ce que c'est?

Les ordinateurs PC, XT, AT avaient originellement la possibilité de brancher trois imprimantes à communication parallèle. Le système offrait trois adresses de base de port d'entrée-sortie du processeur, soit 278, 378, et 3BC (en hexadécimal). Chacun des ports est utilisable seulement si une carte d'interface est présente à l'intérieur de l'ordinateur. Souvent, cette interface est intégrée, par exemple, à un contrôleur de disque dur.

Le port parallèle du PC a été spécifiquement conçu pour y brancher des imprimantes comportant une interface de communication parallèle pour pouvoir dialoguer avec l'ordinateur. Mais on peut aussi utiliser ce port comme un port général d'entrées-sorties pour une infinité d'autres applications. Le port présente 12 sorties et 4 entrées qui peuvent être accédées par le processeur par des instructions de lecture et d'écriture sur le port désiré.

Le port parallèle est rendu disponible grâce à un connecteur de 25 fils de type D (DB25) femelle. Il est situé à l'arrière de l'ordinateur. Il est fait de 25 trous, disposés comme suit:

Figure 1:

Plus précisément, les 25 broches sont numérotées comme suit:

Figure 2:
  ______________________________________________________  
 /                                                      \ 
 \  13  12  11  10   9   8   7   6   5   4   3   2   1  / 
  \                                                    /  
   \  25  24  23  22  21  20  19  18  17  16  15  14  /   
    \________________________________________________/    
    

Chaque broche a une fonction particulière, relative à son utilisation avec une imprimante, et portent chacune un nom particulier:

Tableau 1:

#Nom
1STROBE
2D0
3D1
4D2
5D3
6D4
7D5
8D6
9D7
10Acknoledge
11Busy
12PE
13SCLT
 
#Nom
14AUTOFEED
15ERROR
16INIT
17SLCT IN
18Mise à la Terre
19Mise à la Terre
20Mise à la Terre
21Mise à la Terre
22Mise à la Terre
23Mise à la Terre
24Mise à la Terre
25Mise à la Terre

Programmation du port

Débutons par un exemple simple: Le contrôle de l'allumage de DELs (petites lumières semblables à celles qui témoignent de l'activité de votre disque dur). DEL est une abbréviation de "diode électroluminescente".

D'abord, il faut savoir, en gros, ce qui se passe lorsque l'on envoie une commande au port. Il existe trois types de broches, disponibles par le connecteur décrit ci-haut.

Figure 3:

Les premières sont celles de SORTIE. Elles ont sont soit branchées au +5 volts de l'alimentation interne de l'ordinateur (comme le "+" d'une batterie de 5 volts), soit branchées à la Terre (le "-" de la batterie).

Le second type de broches est celui des ENTRÉES. Grâce à celles-ci, l'ordinateur (ou le logiciel) est capable de savoir de quelle façon vous avez branché ces broches. Si vous en reliez une à la Terre (le "-" de la batterie), l'ordinateur vous rapportera un "zéro" (0) lorsque vous lui demanderez de lire le port. Si vous branchez la broche au "+5" volts, l'ordinateur rapportera un "un" (1).

Le dernier type, le plus simple, est celui des broches de mise à la Terre, ou "GROUND", en anglais. Elles correspondent au "-" de la "batterie" interne de l'ordinateur, et sont toutes reliées ensemble dans l'ordinateur.

En plus concret, voici la liste des broches, avec en plus, les détails quant à leur fonction d'entrée ou de sortie:

Tableau 2:

#NomFonction
1STROBESortie
2D0Sortie
3D1Sortie
4D2Sortie
5D3Sortie
6D4Sortie
7D5Sortie
8D6Sortie
9D7Sortie
10Acknoledge?
11Busy?
12PE?
13SCLT?
#NomFonction
14AUTOFEED?
15ERROR?
16INIT?
17SLCT IN?
18Mise à la TerreAucun
19Mise à la TerreAucun
20Mise à la TerreAucun
21Mise à la TerreAucun
22Mise à la TerreAucun
23Mise à la TerreAucun
24Mise à la TerreAucun
25Mise à la TerreAucun

Le branchement d'une DEL utilise les broches de SORTIE, et s'effectue comme sur l'illustration ci-haut. Une DEL possède un "sens", c'est-à-dire qu'il faut la brancher seulement en respectant sa polarité. Le "+" va avec le "+" de l'alimentation, et le "-" va au "-", c'est-à-dire le "ground", ou mise à la Terre.

Une DEL ne supporte que 6 milliampères entre ses deux broches. C'est pourquoi on doit mettre un résistance, habituellement de 330 ohms, en SÉRIE avec la DEL. Ces résistances sont codées à l'aide de bandes de couleur, ce qui permet de déterminer leur résistance (voir une autre section de ce site, à venir bientôt).

Figure 4: Registre de données (sortie)
Accès: Adresse de base

Figure 5: Registre d'état (entrée)
Accès: Adresse de base + 1

Figure 6: Registre de commande (sortie)
Accès: Adresse de base + 2

Donc, pour ce que nous voulons faire, c'est-à-dire commander l'allumage d'une DEL, vous devrez vous procurer:

Chaque registre est accessible en lecture ou en écriture, à l'aide d'instructions spécifiques à chaque langage de programmation. Par exemple, en BASIC, pour écrire sur le port des zéros sur le registre de données, on écrirait:

OUT &H278, 0

Ceci signifie que l'on envoie la valeur zéro (en décimal), dans le port de l'imprimante, ayant ici pour numéro 278, en hexadécimal.

Pour lire sur registre d'état, on écrirait:

Lecture = INP (&H279)

Comme vous avez pu le remarquer sur les trois figures précédentes, ce qu'on appelle le "port parallèle" s'étend sur trois registres. Toutefois, chaque port parallèle possède une adresse de base, désignée par une des trois adresses suivantes, en hexadécimal: 378, 278, et 3BC. Cette adresse correspond au registre de données (sortie). Les registres d'état (entrée) et de commande (sortie) sont ceux qui suivent l'adresse de base. Voici un tableau qui vous permettra de mettre tout ceci au clair:

Tableau 3:
# de portRegistre de donnéesRegistre d'étatRegistre de commande
1
378
379
37A
2
278
279
27A
3
3BC
3BD
3BE

Langage Basic

L'accès aux ports se fait par les instructions OUT et INP. Pour envoyer la valeur 255 sur le port de données, vous devez écrire:

OUT &H278, 255

Le &H278 est l'adresse du port de données, qui varie d'un ordinateur à l'autre. Remarquez la notation hexadécimale, précédée de &H, qui permet au programme de savoir qu'on utilise la forme hexadécimale. (Pour plus d'information, voir la section précédente.)

Pour lire sur le port, on utilise l'instruction INP (port), où port représente le numéro du port, comme dans cet exemple:

ValeurSurLePort = INP (&H279)

Après l'exécution de cette ligne, la variable ValeurSurLePort contiendra, vous l'aurez deviné, la valeur que l'ordinateur a pu lire sur le port &h279.

Cette valeur, seule, est souvent inutile. Vous devrez l'analyser, pour en retirer l'information que vous recherchez.

Langage C

Langage C

Quoi, et comment brancher? Partie matérielle

Brancher

Bibliographie et liens


Accueil | Page d'électronique

Par Nicolas Marchildon