GPIB

From Eric

Revision as of 20:28, 9 June 2012 by Ejenn (Talk | contribs)
Jump to: navigation, search

Contents

Caractéristiques générales

Le bus GPIB comprend

  • 8 lignes de données
  • 3 lignes de handshake
  • 5 lignes de gestion du bus

Autres caractéristiques :

  • toutes les lignes sont compatibles TTL
  • utilise une logique négative (vrai = 0, faux = 1)
  • assure un débit max de de 1Mo/s
  • supporte une longueur maximale de 20m
  • utilise un codage des données en ASCII sur 7 bits (en général)


Le connecteur est de type "centronics", mais avec 24 broches. La désignation est "24 points ribbon connector". Le brochage du connecteur est le suivant (de Wikipedia):

Gpib connector.jpg

Un équipement peut être

  • Contrôleur (controler) : il gère le trafic, reçoit et émet des données,
  • Ecouteur (listener) : il recoit des données,
  • Parleur (talker) : il émet des données.

C'est Le contrôleur détermine qui parle et qui écoute. Un bus peut avoir plusieurs contrôleurs, mais un seul peut être actif à un instant donné.

Chaque instrument a une adresse en écoute / en émission (voire les deux).


Fonctionnement du handshake

On rappelle que les signaux sont en logique négatif : VRAI au niveau BAS.

Le handshake utilise 3 lignes. Si on se place du point de vue d'un contrôleur, la signification des signaux est la suivante :

  • DAV (Data Valid) VRAI signifie que les signaux du bus de données (commandes ou données) sont stables et sont prêtes à être lues ;
  • NRFD (Not Ready For Data, collecteur ouvert) VRAI signifie qu'au moins un écouteur n'est pas prêt à recevoir des données ;
  • NDAC (Not Data Accepted, collecteur ouvert) VRAI signifie qu'au moins un écouteur n'a pas encore lu la donnée.

Appelons "émetteur" un noeud contrôleur ou parleur. Le protocole de communication est le suivant :

  • L'émetteur positionne DAV à FAUX (niveau haut). Il attend que les lignes NFRD et NDAC soit VRAI (niveau bas).
  • L'émetteur met les données sur le bus.
  • NFRD passe à FAUX (niveau haut) lorsque tous les écouteurs sont prêts à recevoir une donnée. C'est le écouteur le plus lent qui détermine la remontée du signal.
  • L'émetteur place DAV à VRAI (niveau bas) pour signifier que les données sont prêtes.
  • NRFD reste à l'état VRAI (niveau bas) tant qu'au moins moins un récepteur est en train d'acquérir la donnée.
  • NDAC passe à l'état FAUX (niveau haut) dès que tous les écouteurs ont accepté la donnée.
  • L'émetteur passe DAV à FAUX (niveau haut) pour indiquer qu'il cesse de piloter les lignes de données.
  • NDAC passe à l'état bas.
Gpib handshake.jpg

La description précise du protocole est donnée dans le standard IEEE 488. En voici deux extraits :

Gpib handshake ieee488 1.jpg
Gpib handshake ieee488 2.jpg

Fonctionnement des lignes de contrôle

  • ATN (Attention)
    • ATN au niveau BAS : le bus de donnée porte une commande
    • ATN au niveau HAUT : le bus de donnée porte une donnée
  • IFC (Interface Clear)
    • IFC au niveau BAS : le bus est réinitialisé
  • REN (Remote ENable)
    • REN au niveau BAS : le bus est contrôlé par le contrôleur. Normalement, cette ligne est placée au niveau bas aussi longtemps que le contrôleur est en charge du bus.
  • SRQ (Service ReQuest, collecteur ouvert)
    • SRQ au niveau BAS : un instrument souhaite recevoir ou émettre sur le bus. Le contrôleur va poller les instruments pour connaître celui qui a activer le signal.
  • EOI (End Or Identity)
    • EOI au niveau BAS : signale la fin d'un message émis par un parleur ou est utilisé par le contrôleur lors du polling après un SRQ.

Le sens des lignes

Line         NRFD   NDAC   DAV    ATN    EOI    IFC    REN    SQR
             I  O | I  O | I  O | I  O | I  O | I  O | I  O | I  O |
-----------|------|------|------|------|------|------|------|------|
Listener   |    X |    X | X    | X    | X    | X    | X    |    X |
Talker     | X    | X    |    X | X    |    X | X    | X    |    X |
Controller | X  X | X  X | X  X | X  X | X  X |    X |    G | X    |

Les commandes de gestion du bus

Le contrôleur peut émettre les commandes suivantes :

Gpib commandes.jpg

L'accès au bus

Le contrôleur donne accès à un instrument en écouteur de la façon suivante :

  • Il émet la commande Unlisten (UNL, 0x3F) pour déconnecter les éventuels écouteurs actuels (pas indispensable)
  • Il émet la commande écouteur Address (LAD, 0x40+ adresse de l'instrument) pour faire passer un instrument donné en écouteur.

Le contrôleur donne accès à un instrument en parleur de la façon suivante :

  • Il émet la commande Untalk (UNT, 0x5F) pour déconnecter les éventuels écouteurs actuels (pas indispensable)
  • Il émet la commande parleur Address (TAD, 0x20+ adresse de l'instrument) pour faire passer un instrument donné en parleur.

Le fonctionnement de la requête de service (Service Request, SRQ)

Le traitement d'une requête de service série est schématiquement le suivant : Lister

  • Un instrument place la ligne SRQ à l'état BAS pour signaler la demande.
  • Le contrôleur émet une commande Serial Poll Enable (SPE) à destination de tous les instruments.
  • Le contrôleur fait passer chaque instrument en parleur
  • L'instrument désigné émet un Event Status dont la structure est la suivante :
    • Bit 7 : Power On
    • Bit 6 : User Request <= ce bit est à un si une reqête de service a été émise.
    • Bit 5 : Command Error
    • Bit 4 : Execution Error
    • Bit 3 : Device Dependent Error
    • Bit 2 : Query Error
    • Bit 1 : Request Control
    • Bit 0 : Operation Complete
  • Le contrôleur émet une commande Serial Poll Disable (SPD) pour terminer le polling

Noter qu'il existe aussi un mode parallèle. Ce mode peut être utilisé s'il y au plus 8 instruments. Dans ce mode, le contrôleur envoi un mot de donnée à chaque instrument lui indiquant quel bit il doit positionner pour indiquer s'il a émis la requête.


Les commandes standards

Un instrument doit être capable de répondre aux commandes suivantes :

Gpib commandes standards.jpg

Quelques adaptateurs GPIB <=> Série

Voir adaptateur GPIB/USB

Connexion des drivers SN75160/161

Le SN75160 est le driver des lignes de données.

Le SN75161 est le driver des lignes de handshake et de contrôle. L'orientation (entrée/sortie) des signaux est décrit dans la table ci-après (extrait du document http://www.baltissen.org/newhtm/ieee.htm)

                                         |  ATN
                                |  NDAC  |  IFC
                                |  NRFD  |  REN
  ATN  |  TE   |  DC   ||  EOI  |  DAVV  |  SQR
-------------------------------------------------
   L   |   L   |   L   ||   O   |   O    |   O        
   L   |   L   |   H   ||   I   |   O    |   I
   L   |   H   |   L   ||   O   |   I    |   O
   L   |   H   |   H   ||   I   |   I    |   I
   H   |   L   |   L   ||   O   |   O    |   O
   H   |   L   |   H   ||   O   |   O    |   I
   H   |   H   |   L   ||   I   |   I    |   O
   H   |   H   |   H   ||   I   |   I    |   I

ATN, IFC, REN et SQR sont des sorties si DC = (L), sinon, ce sont des entrées. DAVV,NDAC and NRFD sont des sorties if TE = (L), sinon ce sont des entrées. EOI se comporte comme DAVV quand ATN = (H) ; sinon, il se comporte comme SQR.

Gpib sn7516x signals.jpg

Quelques exemples :

Gpib sn7516x.jpg
Personal tools