# IEEE 1284

IEEE 1284 est le nom d'une norme de l’IEEE qui définit les communications parallèles bidirectionnelles entre les ordinateurs et d'autres périphériques.

## Historique

Dans les années 1970, Centronics a développé le port parallèle à présent obsolète mais qui fut un standard de facto. Le standard originel devint ensuite lui-même non standard au fur et à mesure que de nouvelles versions de l'interface étaient développées, telle l'implémentation Bitronics de HP mise sur le marché en 1992.
En 1991, la Network Printing Alliance a été formée pour développer un nouveau standard. En mars 1994, la spécification IEEE 1284 était publiée.

## Description

Le standard IEEE 1284 offre un débit supérieur aux standards précédents et un flux de données bidirectionnel :
* Le débit maximal théorique est de 4 mégaoctets par seconde : le débit réel est de l'ordre de 2 mégaoctets par seconde et dépend du type de matériel. Dans le domaine de l'impression, cela permet d'imprimer plus rapidement.
* Le flux bidirectionnel permet d'informer l'ordinateur de l'état du périphérique.
L'interface IEEE 1284 ne fut pas utilisée que pour connecter des imprimantes à un ordinateur. Il concurrença l'interface SCSI à un prix bien inférieur. Cela permettait de connecter des scanners, des lecteurs de bande magnétique, des disques durs, et même de mettre en réseau directement des ordinateurs en les connectant par leurs ports parallèles. Le consommateur n'avait plus à acheter une carte SCSI onéreuse, il pouvait simplement utiliser le port parallèle intégré d'office à l'ordinateur. Le port IEEE 1284 a ainsi été le précurseur du port USB dans le développement des connexions universelles à bas prix. Même si le port USB a pris la place du port parallèle de manière générale, l'interface IEEE 1284 reste très populaire dans le monde de l'impression, dû au coût de renouvellement du matériel.
Le débit grâce à cette nouvelle norme peut monter jusqu'à des niveaux comparable ou supérieur à de l'USB 1.1. L'USB ayant beaucoup d'avantages, le coût des ports et des câbles plus bas notamment, le port IEEE 1284 a été définitivement remplacée par l'USB peu après l'avènement de l'USB 2.0.
Par conséquent la plupart des ordinateurs récents ne comportent plus de port IEEE 1284, mais il est toujours possible d'utiliser les périphériques compatibles avec cette norme via des adaptateurs USB ou une carte PCI.

## Les modes IEEE 1284

IEEE 1284 peut fonctionner dans cinq modes :
* Le mode de compatibilité, également connu sous les noms de Centronics, mode standard ou SPP. C'est une implémentation unidirectionnelle très proche du port parallèle Centronics originel. Ce mode est presque exclusivement utilisé avec des imprimantes. Les seuls signaux que l'imprimante peut envoyer en sens inverse vers l'ordinateur ont une signification prédéterminée qui indiquent des situations d'erreur classiques, comme le manque de papier.
* Le mode quartet (nibble mode) est une interface qui permet au périphérique d'envoyer quatre bits de données (un quartet) à la fois vers l'ordinateur, en redéfinissant le rôle de quatre lignes d'état du mode de compatibilité. C'est le mode bitronics introduit par HP. Il est généralement utilisé pour fournir des informations plus fines sur l'état d'une imprimante. Bien qu'il n'ait jamais été officiellement pris en charge par les interfaces Centronics antérieures à IEEE 1284, le mode quartet fonctionne également avec la plupart d'entre elles.
* Le mode octet (byte mode) ou mode bidirectionnel, bien que tous les modes sauf le mode de compatibilité soient bidirectionnels. Il s'agit d'un mode à l'alternat (half-duplex) qui permet au périphérique de transmettre huit bits à la fois en utilisant les mêmes lignes de données que celles qui sont utilisées dans l'autre sens. Ce mode est pris en charge sur une minorité d'interfaces pré-IEEE-1284, comme celles que l'on trouvait dans les ordinateurs IBM PS/2 ; pour cette raison, on appelle parfois de façon non officielle ce mode le mode PS/2.
* Le mode Enhanced Parallel Port (EPP), « port parallèle amélioré », est une interface half-duplex bidirectionnelle permettant à des périphériques tels que des imprimantes, des scanners ou des périphériques de stockage de transmettre de grandes quantités de données tout en étant capable de changer rapidement le sens du transfert. EPP offre un débit jusqu'à 2 Mo/s, soit environ 15 fois la vitesse d'un port parallèle normal, tout en demandant bien moins de temps de calcul au processeur.
* Le mode Extended Capability Port (ECP), « port parallèle étendu », est une interface half-duplex bidirectionnelle qui ressemble à EPP, si ce n'est que son implémentation sur PC utilise l'Accès direct à la mémoire (DMA) pour transférer les données plus rapidement que EPP. Il s'agit d'habitude de DMA ISA sur le canal 3. Le matériel DMA ISA et le port parallèle se chargent de transférer les données au lieu de laisser cette tâche au processeur. De nombreux périphériques qui utilisent ce mode prennent en charge la compression RLE. Le mode ECP offre un débit allant jusqu'à 2.5 Mo/s, ce qui est la limite naturelle du DMA ISA sur 8 bits. Une interface ECP sur un PC peut aussi améliorer les transferts vers des imprimantes pré-IEEE-1284 en réduisant la charge du processeur pendant le transfert ; néanmoins, dans ce cas, le transfert est unidirectionnel.
La norme IEEE-1284 demande que les périphériques bidirectionnels commencent toujours la communication en mode quartet. Si l'ordinateur ne reçoit pas de réponse dans ce mode, il supposera que le périphérique est une vieille imprimante, et passera en mode de compatibilité. Sinon, le meilleur mode pris en charge par les deux parties est négocié en échangeant des messages standard en mode quartet.

## Câbles et connecteurs

Un connecteur IEEE 1284 doit se conformer à plusieurs standards concernant le brochage et la qualité. Trois types de connecteurs sont définis :
* Type A : DB-25 25 broches, pour le branchement à l'ordinateur.
* Type B : Centronics (officiellement appelé Micro Ribbon) 36 broches, pour le branchement à l'imprimante ou à un autre périphérique.
* Type C : Mini-Centronics (MDR36) 36 broches, une alternative au précédent moins encombrante, mais qui n'a pas connu le succès escompté.
Deux types de câbles sont définis :
* IEEE 1284-I : comporte un connecteur IEEE 1284-A à un bout et un connecteur IEEE 1284-B à l'autre bout.
* IEEE 1284-II : comporte deux connecteurs IEEE 1284-C.
La spécification IEEE 1284 Daisy Chain permet de connecter jusqu'à 8 périphériques à un même port parallèle.
Le voltage utilisé consiste en les niveaux logiques TTL, ce qui limite la longueur de câble possible à quelques mètres, sauf si l'on utilise des câbles spéciaux chers.