IEEE-488 fait référence à la norme n° 488 de l'Institute of Electrical and Electronics Engineers (IEEE) et est communément appelée GPIB (General Purpose Interface Bus). Cette norme a été établie pour la première fois en 1978, 13 ans après que Hewlett-Packard (HP) de Palo Alto, en Californie, ait commencé à travailler pour permettre à sa large gamme d'instruments de communiquer entre eux et avec des ordinateurs « hôtes ».
Au moment de son développement, le protocole IEEE-488 était particulièrement bien adapté aux applications instrumentales par rapport aux autres solutions. Essentiellement, l'IEEE-488 comprend un « bus sur un câble », fournissant à la fois un chemin de transfert de données parallèle sur huit lignes et huit lignes de contrôle dédiées. Compte tenu des exigences de l'époque, son débit de transfert de données nominal maximal de 1 Mo/sec semblait tout à fait adéquat ; même aujourd'hui, l'interface GPIB est suffisamment puissante pour de nombreuses applications très sophistiquées et exigeantes.
Cependant, la norme IEEE-488, telle qu'elle était définie à l'origine, laissait certaines ambiguïtés quant aux spécificités de l'interaction et de la communication entre le contrôleur et l'instrument. Si ces questions en suspens visaient probablement à donner une certaine latitude aux concepteurs d'instruments et de contrôleurs, elles ont en réalité entraîné une confusion et des problèmes de compatibilité entre les instruments de différents fabricants.
Au cours des années 1980, une nouvelle couche a été ajoutée à la norme IEEE-488, l'IEEE-488.2. La norme d'origine a été renommée IEEE-488.1. L'IEEE-488.2 prévoit un ensemble minimal de capacités entre les « Contrôleurs » et les « Dispositifs », ainsi qu'un contenu et une structure plus spécifiques pour les messages et les protocoles de communication.
La norme IEEE-488.2 est entièrement rétrocompatible avec la norme IEEE-488.1 ; l'utilisation d'un contrôleur conforme à la norme « 488.2 » permet d'utiliser les nouveaux protocoles disponibles avec les instruments « 488.2 » tout en conservant la possibilité de communiquer avec les instruments conformes à la norme « 488.1 » et de contrôler les particularités des fournisseurs associés.
Aujourd'hui, le bus IEEE-488 est la méthode la plus largement reconnue et utilisée pour la communication entre les instruments scientifiques et techniques. Les principaux fournisseurs d'instruments autonomes à usage général intègrent des interfaces IEEE-488 dans leurs produits. De nombreux fabricants d'instruments destinés à des marchés verticaux s'appuient également sur la norme IEEE-488 pour la communication et le contrôle des données.
Les contrôleurs GPIB prennent en charge une grande variété d'ordinateurs personnels, des IBM PC/XT/AT et PS/2 et leurs compatibles à la famille Macintosh aux multiples facettes. Certains de ces contrôleurs sont des cartes enfichables, d'autres sont des convertisseurs de protocole (par exemple, SCSI vers IEEE-488). Tous sont au moins conformes à la norme IEEE-488.1, et un nombre croissant d'entre eux adhèrent à la norme « 488.2 ».
Informations générales sur l'interface GPIB
L'interface GPIB, parfois appelée General Purpose Interface Bus (GPIB), est un système d'interface numérique à usage général qui peut être utilisé pour transférer des données entre deux ou plusieurs appareils. Elle est particulièrement bien adaptée à l'interconnexion d'ordinateurs et d'instruments. Voici quelques-unes de ses principales fonctionnalités :
- Jusqu'à 15 appareils peuvent être connectés à un seul bus
- La longueur totale du bus peut atteindre 20 m et la distance entre les appareils peut atteindre 2 m
- La communication est numérique (par opposition à analogique) et les messages sont envoyés un octet (8 bits) à la fois
- Les transactions de messages sont gérées par un protocole de communication matériel
- Les débits de données peuvent atteindre 1 Mo/s
Spécifications mécaniques
Connecteur Le connecteur GPIB est un connecteur à 24 broches. Les périphériques sur le bus IEEE-488 sont équipés de prises femelles ; les câbles d'interconnexion sont équipés de connecteurs mâles correspondants. Les câbles de connexion sont généralement équipés de prises mâles et femelles câblées en parallèle à chaque tête de connexion afin de permettre la connexion en parallèle des câbles au niveau d'un périphérique et/ou la connexion en série entre les périphériques.
Câblage d'interconnexion Chaque bus IEEE-488 individuel est limité à 15 périphériques, y compris le contrôleur. Cependant, la spécification GPIB limite la longueur totale de tous les câbles utilisés pour interconnecter les périphériques sur un bus commun à 20 m, ou 2 m multiplié par le nombre de périphériques interconnectés (jusqu'à 20 m). La longueur des câbles entre les appareils peut varier, tant que la longueur totale des câbles ne dépasse pas ces restrictions. Les appareils peuvent être interconnectés selon une topologie en étoile ou linéaire, ou une combinaison des deux, tant que les limites de distance sont respectées. Pour obtenir des taux de transfert de données maximaux, la longueur totale des câbles doit être réduite à 15 m, la longueur moyenne des câbles entre les appareils étant de 1 m ou moins.
Spécifications électriques
Lignes de bus Le bus IEEE-488 est une interface multipoint dans laquelle tous les appareils connectés ont accès aux lignes de bus. Les 24 lignes de bus sont regroupées en quatre catégories :
- Lignes de données - Huit lignes (DIO1 à DIO8) utilisées pour transférer des informations (données et commandes) entre les appareils sur le bus, un octet à la fois.
- Lignes de handshake - Trois lignes utilisées pour établir la communication lors du transfert d'informations sur les lignes de données : DAV : données valides NDAC : données non acceptées NRFD : non prêt pour les données
- Lignes de gestion du bus - Cinq lignes utilisées pour le contrôle général et la coordination des activités du bus : ATN : attention I FC : interface claire REN : activation à distance SRQ : demande de service EOI : fin ou identification
- Lignes de masse - Huit lignes utilisées pour le Blindage et le retour des signaux : Un Blindage mis à la terre Une masse de signal générale Six lignes de masse logiques appariées avec ATN, SRQ, IFC, NDAC, NRFD et DAV
Handshaking
Le bus IEEE-488 utilise trois lignes de handshake dans une séquence « Nous sommes prêts - Voici les données - Nous les avons reçues » pour transférer des informations sur le bus de données. Le protocole de handshake garantit un transfert de données fiable à la fréquence déterminée par le récepteur le plus lent. Les lignes de handshake, comme toutes les autres lignes GPIB, sont actives à l'état bas. DAV est contrôlé par le talker actif. Avant d'envoyer des données, le Talker vérifie que NDAC est activé (bas), ce qui indique que tous les Listeners ont accepté l'octet de données précédent. Le Talker place ensuite un octet sur les lignes de données et attend que NRFD soit désactivé (haut), indiquant que tous les Addressed Listeners sont prêts à accepter les informations. Lorsque NRFD et NDAC sont dans l'état approprié, l'émetteur active DAV (actif bas) pour indiquer que les données sur le bus sont valides. NRFD est utilisé par les récepteurs pour informer l'émetteur qu'ils sont prêts à accepter les nouvelles données. L'émetteur doit attendre que chaque récepteur désactive cette ligne (haut), ce qu'ils font à leur propre fréquence lorsqu'ils sont prêts à recevoir d'autres données. Cela garantit que tous les périphériques acceptant les informations sont prêts à les recevoir. Le NDAC, également contrôlé par les auditeurs, indique au locuteur que chaque périphérique adressé pour écouter a accepté les informations. Chaque périphérique libère le NDAC (haut) à sa propre fréquence, mais le NDAC ne passe pas à l'état haut tant que l'auditeur le plus lent n'a pas accepté l'octet de données. Ce type de poignée de main permet à plusieurs périphériques de recevoir des données provenant d'un seul transmetteur de données sur le bus. Tous les périphériques de réception actifs participent à la négociation des données octet par octet et font fonctionner les lignes NDAC et NRFD selon un schéma « câblé ou » afin que le périphérique actif le plus lent détermine la fréquence à laquelle les transferts de données ont lieu.
Fonctions IEEE-488
Lors de la place des informations sur les lignes de données, elles peuvent représenter soit un octet de données, soit une commande. Si la ligne de gestion du bus Attention (ATN) est activée pendant le transfert des données, les lignes de données transportent alors une commande multiligne qui doit être reçue par tous les périphériques du bus. Si ATN n'est pas activée, un octet de données est transféré et seuls les auditeurs actifs reçoivent cet octet.
Le bus IEEE-488 dispose également d'un certain nombre de commandes unilignes qui sont transportées sur une seule ligne de gestion du bus. Par exemple, lors de l'activation de la ligne Interface Clear (IFC), elle envoie la commande Interface Clear à tous les périphériques du bus, ce qui les oblige à réinitialiser leur interface de bus IEEE-488.
Adressage
La norme GPIB autorise normalement la configuration de 15 périphériques maximum au sein d'un même système. Chacun de ces périphériques possède une adresse de bus unique, un nombre compris entre 0 et 30. Les limites d'adresses peuvent être contournées directement à l'aide d'extensions de bus ou indirectement à l'aide d'un isolateur ou d'un prolongateur.
Un périphérique devient « Addressed to Talk » (adressé pour parler) lors de la réception d'une commande multiligne Talk Address Group (TAG) (un octet transféré avec ATN activé) spécifiant sa propre adresse depuis le Contrôleur actif. De même, il devient « Addressed to Listen » lors de la réception d'une commande multiligne « Listen Address Group » (LAG). Les autres commandes d'adresse comprennent « My Talk Address » (MTA) et « My Listen Address » (MLA), qui sont les commandes TAG et LAG du contrôleur actif. Le groupe de commandes secondaire (SCG) est utilisé pour faire référence à des sous-adresses ou des sous-fonctions au sein d'un dispositif particulier. Cela permet d'accéder directement aux sous-dispositifs ou sous-instruments intégrés dans des dispositifs ou instruments complexes et de les contrôler.
Le contrôleur système
Le contrôleur système, généralement un ordinateur équipé d'une carte IEEE-488, conserve toujours le contrôle ultime du bus. Lors de la mise sous tension du système pour la première fois, le contrôleur système est le contrôleur actif et contrôle toutes les transactions du bus. Le contrôleur système peut transférer le contrôle à un périphérique, qui devient alors le nouveau contrôleur actif, lequel peut à son tour transférer le contrôle à un autre périphérique. Même s'il n'est pas le contrôleur actif, le contrôleur système conserve le contrôle exclusif des lignes de gestion du bus Interface Clear (IFC) et Remote Enable (REN) et peut prendre le contrôle du bus quand il le souhaite.
IEEE-488.2
La norme IEEE-488.2 a été développée pour simplifier le processus de base de communication avec les instruments. La norme IEEE488.2 étend la norme 488 avec la normalisation des codes, des formats et des protocoles et sert à résoudre les problèmes laissés en suspens dans la norme 488.1.
La norme IEEE-488.2 détaille la mise en œuvre préférée de nombreuses questions qui étaient facultatives ou non spécifiées dans la première norme. La norme IEEE-488.1 couvre les questions physiques clés (type de connecteur, longueur du bus, nombre maximal d'instruments, etc.), les questions électriques (collecteur ouvert TTL, trois états) et les protocoles de bas niveau (adressage des dispositifs, passage du contrôle et poignée de main/synchronisation des données). Quatre fonctions de base des appareils (Talker, Listener, Contrôleur et Système de Contrôle) sont spécifiées, ainsi que des sous-ensembles de capacités pour chaque type d'appareil.
Un certain nombre d'éléments non couverts par la norme 488.1 peuvent poser des problèmes aux ingénieurs de test, notamment en ce qui concerne la compatibilité des équipements et la corruption des données.
Par exemple, la norme 488.1 ne couvre pas les spécifications techniques suivantes :
- Exigences minimales en matière de capacités des dispositifs La norme IEEE- 488.1 ne prévoit pas d'exigences minimales pour les émetteurs, les récepteurs, les Contrôleurs ou les Contrôleurs du Système. Par conséquent, un dispositif peut mettre en œuvre tout ou partie des ensembles de capacités définis dans la norme 488.1, ce qui donne lieu à des systèmes contenant des dispositifs avec des niveaux de capacités variables.
Dans une telle situation, le contrôleur n'a aucune garantie quant à l'existence d'un sous-ensemble de communication de base entre les dispositifs du système. Cela peut entraîner une confusion pour l'opérateur du système et des problèmes de communication entre les dispositifs. - Codage des données, formats et protocole de message En vertu de la norme 488.1, les messages transférés entre le contrôleur et un dispositif sont entièrement à la discrétion du fabricant du dispositif. L'utilisation du code ASCII, binaire ou d'une autre forme de code de données et le choix des terminateurs tels que le retour chariot ou l'EOI sont arbitraires. De plus, la séquence d'envoi des commandes et de lecture de leurs réponses n'est pas spécifiée et varie d'un instrument à l'autre.
- Définition de l'octet de statut La norme 488.1 définit un octet de statut et un bit à l'intérieur, mais la signification des sept autres bits est laissée à la discrétion du concepteur de l'appareil. Cela oblige l'utilisateur à fournir une interprétation unique de chaque bit de l'octet de statut. De plus, la relation entre l'octet de statut et les autres registres de statut internes du dispositif n'est pas spécifiée.