Messages du bus GPIB

Aperçu

Il existe deux types de messages du bus d'interface général (GPIB) : les messages de commande et les messages de données. Chaque contrôleur du bus GPIB et chaque instrument du bus GPIB possède une identité unique sur le bus ; cette identité est appelée son adresse. Les contrôleurs du bus GPIB utilisent des messages de commande pour indiquer aux instruments quand ils peuvent parler pour fournir des informations au bus et quand ils peuvent écouter des informations sur le bus. Ces informations sont transmises sous forme de messages de données.

Contenu

Contrôleurs, émetteur et récepteur

Dans le monde du bus GPIB, il existe des contrôleurs, des émetteurs et des récepteurs :
  • Les contrôleurs régulent le flux d'informations sur le bus en attribuant des rôles de émetteur et de récepteur à d'autres périphériques du bus. Ils répondent aux demandes de service des instruments et peuvent passer le contrôle du bus à d’autres contrôleurs. Il ne peut y avoir qu'un contrôleur en charge (CIC ou contrôleur système) par bus, qui est responsable de la gestion globale du bus.
  • Les émetteurs placent des informations sur les lignes de données du bus, mais uniquement lorsqu'un contrôleur leur demande de le faire. Un seul appareil peut parler à la fois.
  • Les récepteurs récupèrent les informations des lignes de données du bus, mais seulement quand un contrôleur leur demande de le faire. N'importe quel nombre de périphériques peut écouter en même temps.

Messages de commande vs. Messages de données

Les contrôleurs GPIB utilisent des messages de commande pour indiquer aux périphériques (instruments ou autres contrôleurs) quand ils peuvent communiquer pour fournir des informations au bus et quand ils peuvent écouter des informations sur le bus. Les affectations Émetteur et Récepteur sont envoyées sous forme de messages de commande, tandis que les informations sont transmises sous forme de messages de données.

La principale différence entre un message de commande et un message de données est l'état de la ligne Attention (ATN), qui est l'une des lignes de gestion de bus. Si la ligne ATN est activée, tous les messages envoyés sur les lignes de données sont entendus par tous les périphériques et sont considérés comme des messages de commande. Si la ligne ATN n'est pas activée, seuls les périphériques qui ont été adressés pour écouter peuvent recevoir les messages sur les lignes de données.

Le protocole d'adressage GPIB


Le GPIB a huit lignes de données, qui sont utilisées pour envoyer des informations un octet (8 bits) à la fois. Les messages de commande utilisent sept des huit bits, comme le montre la figure 1 ci-dessous :


Protocole d'adressage GPIB
Figure 1. Protocole d'adressage GPIB



Les bits 0 à 4 indiquent l'adresse principale du périphérique pour lequel l'affectation Parleur/Écouteur est prévue. Si le bit 5 est haut, le périphérique doit écouter. Si le bit 6 est haut, le périphérique devrait parler. Le bit 7 est un bit "sans importance". Sa valeur est ignorée, elle est donc interprétée comme une valeur de zéro dans les messages de commande.

Chaque périphérique du bus doit avoir une adresse unique. Cette adresse est composée d'une adresse principale (PAD) et d'une adresse secondaire (SAD). Comme vous pouvez le voir sur la figure 1, cinq des lignes de données sont utilisées pour indiquer l'adresse principale GPIB. Cela signifie que vous pourriez avoir une valeur de 0 à 31, pour un total de 32 adresses (2 à la puissance de 5) ; cependant, le PAD 31 n'est jamais utilisé comme adresse principale, car il est utilisé pour des messages de commande spéciaux. Cela laisse un total de 31 adresses principales possibles. Le contrôleur en charge (CIC) pour un bus est presque toujours au PAD 0, de sorte que les instruments sur un bus peuvent avoir des adresses principales de 1 à 30. Une erreur courante lors de l'utilisation du GPIB est d'attribuer la même adresse à la carte contrôleur et à l'instrument, ce qui entraînera une erreur EADR (erreur d'adressage).

L'adresse secondaire GPIB est identique dans sa gamme de 0 à 30, ce qui permet un total de 961 (31 x 31) adresses GPIB possibles, mais l'adresse secondaire est très rarement utilisée (le DAU est généralement défini à zéro). Les affectations émetteur/auditeur font partie des informations d'adressage principales, donc avec les PAD, vous utilisez le bit 6 ou le bit 5 lorsque vous envoyez un message de commande. Cela peut vous inciter à demander : « Comment envoyer les informations du TRS ? » Pour les adresses secondaires, vous définissez les bits 6 et 5 à haut lorsque vous envoyez un message de commande. Si vous devez communiquer avec un périphérique doté d'une adresse secondaire, vous devez d'abord indiquer son adresse principale, puis immédiatement son adresse secondaire.

Le moyen le plus simple de jouer avec l'adressage primaire et secondaire, les messages de commande et les messages de données est d'utiliser le contrôle interactif (IBIC). Par exemple, si vous avez une carte au PAD 0 et un instrument avec PAD 2 et SAD 4, et que vous voulez que la carte parle et que l'instrument écoute, vous envoyez le message de commande suivant dans IBIC :

ibcmd "\x40\x22\x64"

Le \x40 signifie hexadécimal 40, qui représente le motif binaire de 0 1 0 0 0 0 0 0 0. Cela signifie que le bit 6 est haut (talk) et que l'adresse principale est zéro. \x22 signifie hexadécimal 22, qui représente le motif binaire de 0 0 1 0 0 0 1 0. Cela signifie que le bit 5 est haut (écouter) et que l'adresse principale est 2. Le \x64 représente l'hexagone 64, qui représente le motif binaire de 0 1 1 0 0 1 0 0. Cela signifie que les bits 6 et 5 sont hauts -- donc, traitez l'adresse suivante comme une adresse secondaire -- et l'adresse est 4.

Table de messages d'interface multiligne


Comme nous l'avons vu dans la section précédente, chaque message de commande correspond à un motif de bits particulier, qui peut être représenté au format hexadécimal. Tous les messages de commande GPIB peuvent aussi être mappés à des caractères ASCII (car ASCII est un jeu de caractères 7 bits), donc ASCII est la "langue" du GPIB. La table d'interface multiligne (tableau 1) répertorie la correspondance des caractères ASCII aux messages de commande, ainsi que leurs valeurs hexadécimales, octogonales et décimales. Le tableau de messages d'interface multiligne se trouve en annexe dans la plupart des manuels techniques relatifs au GPIB de National Instruments.
Tableau 1 (Partie 1). Messages d'interface multiligne

Hexa
Oct
Déc
ASCII
Msg
Hexa
Oct
Déc
ASCII
Msg
00
000
0
NUL
20
040
32
C
MLA0
01
001
1
SOH
GTL
21
041
33
!
MLA1
02
002
2
STX
22
042
34
"
MLA2
03
003
3
ETX
23
043
35
#
MLA3
04
004
4
EOT
SDC
24
044
36
$
MLA4
05
005
5
ENQ
PPC
25
045
37
%
MLA5
06
006
6
ACK
26
046
38
&
MLA6
07
007
7
BEL
27
047
39
'
MLA7
08
010
8
BS
GET
28
050
40
(
MLA8
09
011
9
HT
TCT
29
051
41
)
MLA9
0A
012
10
LF
2A
052
42
*
MLA10
0B
013
11
VT
2B
053
43
+
MLA11
0C
014
12
FF
2C
054
44
,
MLA12
0D
015
13
CR
2D
055
45
-
MLA13
0E
016
14
SO
2E
056
46
.
MLA14
0F
017
15
SI
2F
057
47
/
MLA15
10
020
16
DLE
30
060
48
0
MLA16
11
021
17
DC1
LLO
31
061
49
1
MLA17
12
022
18
DC2
32
062
50
2
MLA18
13
023
19
DC3
33
063
51
3
MLA19
14
024
20
DC4
DCL
34
064
52
4
MLA20
15
025
21
NAK
PPU
35
065
53
5
MLA21
16
026
22
SYN
36
066
54
6
MLA22
17
027
23
ETB
37
067
55
7
MLA23
18
030
24
CAN
SPE
38
070
56
8
MLA24
19
031
25
EM
SPD
39
071
57
9
MLA25
1A
032
26
SUB
3A
072
58
:
MLA26
1B
033
27
ESC
3B
073
59
;
MLA27
1C
034
28
FS
3C
074
60
<
MLA28
1D
035
29
GS
3D
075
61
=
MLA29
1E
036
30
RS
3E
076
62
>
MLA30
1F
037
31
US
3F
077
63
?
UNL

Définitions des messages
DCLDevice ClearMSAMy Secondary Address
GETGroup Execute TriggerMTAMy Talk Address
GTLGo To LocalPPCParallel Poll Configure
LLOLocal LockoutPPDParallel Poll Disable
MLAMy Listen Address


Tableau 1 (Partie 2). Messages d'interface multiligne

Hexa
Oct
Déc
ASCII
Msg
Hexa
Oct
Déc
ASCII
Msg
40
100
64
@
MTA0
60
140
96
`
MSA0,PPE
41
101
65
A
MTA1
61
141
97
a
MSA1,PPE
42
102
66
B
MTA2
62
142
98
b
MSA2,PPE
43
103
67
C
MTA3
63
143
99
c
MSA3,PPE
44
104
68
D
MTA4
64
144
100
d
MSA4,PPE
45
105
69
E
MTA5
65
145
101
e
MSA5,PPE
46
106
70
F
MTA6
66
146
102
f
MSA6,PPE
47
107
71
G
MTA7
67
147
103
g
MSA7,PPE
48
110
72 $
H
MTA8
68
150
104
h
MSA8,PPE
49
111
73
I
MTA9
69
151
105
i
MSA9,PPE
4A
112
74
J
MTA10
6A
152
106
j
MSA10,PPE
4B
113
75
K
MTA11
6B
153
107
k
MSA11,PPE
4C
114
76
L
MTA12
6C
154
108
l
MSA12,PPE
4D
115
77
M
MTA13
6D
155
109
m
MSA13,PPE
4E
116
78
N
MTA14
6E
156
110
n
MSA14,PPE
4F
117
79
O
MTA15
6F
157
111
o
MSA15,PPE
50
120
80
P
MTA16
70
160
112
p
MSA16,PPD
51
121
81
Q
MTA17
71
161
113
q
MSA17,PPD
52
122
82
R
MTA18
72 $
162
114
r
MSA18,PPD
53
123
83
S
MTA19
73
163
115
éch
MSA19,PPD
54
124
84
T
MTA20
74
164
116
t
MSA20,PPD
55
125
85
U
MTA21
75
165
117
u
MSA21,PPD
56
126
86
V
MTA22
76
166
118
v
MSA22,PPD
57
127
87
W
MTA23
77
167
119
w
MSA23,PPD
58
130
88
X
MTA24
78
170
120
x
MSA24,PPD
59
131
89
Y
MTA25
79
171
121
y
MSA25,PPD
5A
132
90
Z
MTA26
7A
172
122
z
MSA26,PPD
5B
133
91
MTA27
7B
173
123
{
MSA27,PPD
5C
134
92
\
MTA28
7C
174
124
|
MSA28,PPD
5D
135
93
MTA29
7D
175
125
}
MSA29,PPD
5E
136
94
^
MTA30
7E
176
126
~
MSA30,PPD
5F
137
95
_
UNT
7F
177
127
DEL

Définitions des messages
PPEParallel Poll EnableSPESerial Poll Enable
PPUParallel Poll UnconfigureTCTTake Control
SDCSelected Device ClearUNLUnlisten
SPDSerial Poll DisableUNTUntalk


Par exemple, le caractère ASCII "@" (hexadécimal 40) représente le message "MTA0", qui assigne le périphérique à l'adresse primaire zéro comme Émetteur. Autre exemple, le caractère ASCII "?" (hexa 3F) représente le message "UNL", qui indique à tous les périphériques qui avaient déjà été assignés comme Récepteurs de désécouter (c'est-à-dire d'arrêter d'écouter).

La table de messages d'interface multiligne est très utile si vous utilisez la fonction GPIB ibcmd au niveau de la carte. En tant que contrôleur, vous utiliseriez la fonction ibcmd pour envoyer des messages de commande. Par exemple, si vous utilisiez la commande interactive (IBIC) pour assigner le contrôleur (PAD 0) comme émetteur et un instrument (PAD 5) comme récepteur, vous utiliseriez ibcmd "?@%" pour indiquer à tous les périphériques d'arrêter d'écouter (?, UNL), au contrôleur de parler (@, MTA0) et à l'instrument d'écouter (%, MLA5).

Le contrôleur enverrait alors des données à l'instrument avec la fonction ibwrt. (Remarque : Appeler ibwrt désactivera la ligne ATN, de sorte que les lignes de données sur le bus seront utilisées pour envoyer des messages de données au lieu de messages de commande.) Pour continuer avec l'exemple précédent, vous pourriez utiliser ibwrt "hello" pour envoyer le message de données hello à l'instrument. (Bien sûr, le message que vous envoyez devrait avoir un sens pour l'instrument.)

Raccourcis de messages de commande


Si vous ne pouvez pas accéder facilement à la table de messages d'interface multiligne, vous pouvez créer les équivalents hexadécimaux des messages de commande MLA (Mon adresse d'écoute) et MTA (Mon adresse de conversation) en utilisant ces formules : MLA = (hexa) + (PAD en hexa) et MTA = (hexa) + (PAD en hexa). Par exemple, si vous voulez assigner votre contrôleur (PAD0) comme récepteur et votre instrument (PAD 25) comme émetteur, vous pouvez utiliser respectivement hex 20 (MLA0 = hex 20 + hex 00 = hex 20) et hex 59 (MTA25 = hex 40 + hex 19 = hex 59).

Unlisten (UNL) et Untalk (UNT) sont formés en utilisant PAD 31 (hex 1F) dans les formules de MLA et MTA, respectivement. Par exemple, UNL est hexagonale 3F (hexagonale 20 + hexagonale 1F = hexagonale 3F) et UNT est hexagonale 5F (hexagonale 40 + hexagonale 1F = hexagonale 5F).

Les adresses secondaires sont formées en ajoutant hexadécimal 60 à la DAU en hexadécimal : MSA (Mon adresse secondaire) = (hexadécimal 60) + (DAS en hexadécimal). Par exemple, si vous avez un instrument avec SAD 20, vous utiliserez l'hexagone 74 (MSA20 = hex 60 + hex 14 = hex 74) pour représenter son adresse secondaire.

Board-Level vs. Fonctions au niveau du périphérique


Il existe deux types de fonctions GPIB : les fonctions au niveau de la carte et les fonctions au niveau du périphérique. Au niveau du périphérique, vous êtes limité à communiquer avec un périphérique à la fois, tandis qu’au niveau de la carte, vous pouvez communiquer avec plusieurs périphériques (mais un seul périphérique peut parler à la fois !). En ce qui concerne les messages GPIB, les fonctions au niveau de la carte requièrent que vous effectuiez manuellement les affectations Parleur/Afficheur avec la fonction ibcmd ; les fonctions au niveau du périphérique se chargent des affectations Parleur/Afficheur pour vous.

Was this information helpful?

Yes

No