2 - Cenidet

Anuncio
930015
S.E I.T.
S.E.P.
D.G.I.T.
CENTRO NACIONAL DE INVESTIGACION
Y DESARROLLO TECNOLOGICO
,':
DESARROLLO DE UNA INTERFAZ HOMBRE MAQUINA PARA CONTROL DE INSTRUMENTOS
PROGRAMABLES MEDIANTE EL BUS IEEE-488
T
E
OBTENER
PARA
I
S
GRADO
DE:
S
MAESTRO
EL
EN CIENCIAS
EN INGENIERIA ELECTRONlCA
P
E
R
S
B
N
T
A,
I
C~(TRODE I N K ) ~ A C I W
-A
CUAUHTEMOC GONZALEZ GONZALEZ
ASESOR: M.C. JAVIER MENESES R U E
Cuernavaca, Mor.
Mayo de 1993
CENlDET
c
P S l S T E M A NACIONAL DE INSTITUTOS TECNOLOGICOS
Centro Nacional de Investigación y Desarrollo Tecnológico
Cuernavaca. Mor. a 13 de Mayo de 1993
Dr. Juan Manuel Ricaño Castillo
Director del CENIDET
PRESENTE
At'n: M.C. María Helguera Martínez
Coordinadora de Electrónica
Por este conducto, hacemos de su conocimiento que, después de haber
sometido a revisión el trabajo de tesis titulado "Desarrollo de una interfaz hombremáquina para control de instrumentos programables mediante el bus IEEE-488".
desarrollado por el Ing. Cuauhtémoc González González y habiendo cumplido con
todas las correcciones que se le indicaron, estamos de acuerdo en que se le conceda
la autorización de impresión de la tesis, y la fecha de examen de grado.
Sin otro particular quedamos de usted.
Atentamente
Comisibn Revisora
cenidet/
Intenor Internado Palmtra S/N C P. 62430
Apartado Postal 5-164, C.P. 62050 Cuernavaca, Mor. México
Tels.. (73) 18 77 41 y (73) 12 76 13
SISTEMA NACIONAL DE INSTITUTOS TECNO1,OGICOS
Centro Nacional de Investigación y Desarrollo Tecnológico
Cuernavaca, Mor., a 2 de abril de 1993.
ING. CUAUHTEMOC GONZALEZ GONZALEZ
CANDIDATO AL GRADO DE MAESTRO EN
CIENCIAS EN INGEN I ERI A ELECTRONICA
PRESENTE.
Después de haber sometido a revisión su trabajo de tesis titulado:
"
DESARROLLO DE UNA INTERFAZ HOMBRE-MAQUINA PARA CONTROL DE INSTRUMENTOS
PROGRAMABLES MEDIANTE EL BUS IEEE -488 "
habiendo cumplido con todas las indicaciones que el Jurado Revisor de
Tesis le hizo, se le comunica que se le concede autorización para que se
proceda a la impresión de la misma, como requisito para la obtención del
grado.
Y
Sin otro particular, quedo de usted.
c .c .p.
-
Expediente
Coord. Académica
Archivo
/rbs
cenidet /
Interior Internado Pnlmira S/N C P. 62490
Apartado Postal 5-164. C.P.62050 CucrnJv.icJ. Mor.Mtxico
Tcls.: (73) 18 77 41 y (73) 12 76 13
AGRADEZCO RL CENTRO NACIONAL DE INVESTICACION Y
DESARROLLO TECNOLOGICO (CENIDET), Al CONSEJO NACIONAL DE
(CONACYT), AL INSTITUTO DE
CIENCIA Y TECNOLOGIA
INVESTIGACIONES ELECTRICAS (IIE), AL DEPARTAHENTO DE
COMUNICACIONES Y AL N . C . JAVIER MENESES RUIZ POR LAS
FACILIDADES Y EL APOYO BRINDADOS PARA LA RBALIZACION DE
ESTE TRABAJO.
A
MIS PADRES
AMIS
A
HERMRKXS
MI ESPOSA
A MI HIJO
Indice
1.- ~ntroducción
. . .. .. .. .. .. .. .. .. .. .. .. ..
. . . . .
Intorfaa PC/IEEE-488
2.1 Conceptos basicos del estándar IEEE-488 . . .
2.1.1 Tipos de mensajes . . . . . . . . .
2.1.2 Parlantes. escuchas y controladores . .
2.1.3 Controlador a cargo y controlador
del sistema . . . . . . . . . . . .
2.1.4 Líneas del GPIB . . . . . . . . . .
2.1.5 Características y eléctricas . . . . .
2.2 Interfaz PCIIEEE-488 . . . . . . . . . . .
2.2.1 Descripción del lPD7210 . . . . . . .
2.2.2 Tarjeta de interfaz
....... .
1.1 Antecedentes
1.2 Conceptualization
1.2.1 Herramientas de programacidn
2.-
3.- Desarrollo de la interfaa hombre-máquina
. .. ..
..
.
..
..
...
.
.
.
..
...
.
.
.
..
...
.
.
.
.
. . .
..
.
...
.
.
.
.
.
.
. . . .
..
.
...
.
.
.
.
.
.
.
..
.
...
.
.
.
.
.
.
..
..
.
...
.
.
.
.
.
.
..
3.1 Descripción general
3.2 Descripción funcional
3.2.1 Programación de bajo nivel
3.2.1.1 PROG721O.ASM
3.2.1.2 DIR-DIS.ASM
3.2.1.3 ENV-DAT.ASM
3.2.1.4 REC DAT.ASM
3.2.1.5 DES:CIS.ASM
3.2.2 Paso de parámetros
3.2.2.1 Ligado de rutinas
3.2.2.2 Representación interna
de los datos
3.2.2.3 Consideraciones del ensamblador
3.2.3 Programación de alto nivel
3.2.3.1 Programa de alta de
equipos PC488A
3.2.3.2 Programa de control PC488C
i
...
.
.
..
..
.
...
..
1
2
3
4
5
5
5
6
8
9
9
11
13
16
16
19
19
19
19
20
20
21
21
23
24
24
27
4.-
5.-
easi6n de trabajo aon a 1 PC4üS
. . . . . . . . .. ..
. .
Conalusiones
5.1 Conclusiones . . . . . . . . . .
5.2 Trabajo a futuro
. . . . . . . .
Bibliogratla . . . . . . . . . . . .
4.1 Introducción
4.2 Sesión de trabajo con el PC488A
4.3 Sesión de trabajo con el PC488C
Aphdice
Listado de los programas
ii
...
..
.
...
..
.
...
..
.
...
..
.
. . . . . . .
33
33
41
48
49
51
Al
Lista de Figuras
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
. . . . .. .. .. 27
. .. .. .. .. .. .. 96
. . . . . . 12
. . . . . . . 14
. . . 15
. .. .. .. 23
.
.
.
24
. .. .. .. .. .. .. 25
26
. . .. .. .. .. .. 29
.. .. 35
36
36
.. .. 37
37
36
... ... 36
39
.. .. 39
40
.
.
40
. . . . . 43
... ... 43
44
44
. . 45
.. .. 45
46
.. . 46
. . 47
47
1.1
2.1
2.2
2.3
2.3
3.1
3.2
Estructura del sistema PC466
Esquema básico del sistema de interfaz
Configuraciones de conexión
Registros internos del PD7210
Tarjeta e interfaz PC/iEEE-466
Archivos de datos del PC466
Estructura general del sistema PC486
3.3 Estado del s t a c k después de un
llamado a una rutina en ensamblador
3.4 Estructura del programa PC488A
3.5 Diagrama de flujo del PC466A
3.6 Estructura del programa PC466C
3.7 Diagrama de flujo del PC466C
4.1 Sesión de trabajo con el PC466A
4.2 Sesión de trabajo con el PC486A (cont.)
4.3 Sesión de trabajo con el PC486A (cont.)
4.4 Sesión de trabajo con el PC466A (cont.)
4.5 Sesión de trabajo con el PC468A (cont.)
4.6 Sesión de trabajo con el PC486A (cont.)
4.7 Cesión de trabajo con el PC466A (cont.)
4.8 Sesión de trabajo con el PC466A (cont.)
4.9 Sesión de trabajo con el PC468A (cont.)
4.10 Sesión de trabajo con el PC486A (cont.)
4.11 Sesión de trabajo con el PC486A (cont.)
4.12 Sesión de trabajo con el PC468C
4.13 sesión de trabajo con el PC466C (cont.)
4.14 Sesión de trabajo con el PC468C (cont.)
4.15 Sesión de trabajo con el PC466C (cont.)
4.16 Sesión de trabajo con el PC468C (cont.)
4.17 Sesión de trabajo con el PC466C (cont.)
4.16 Sesión de trabajo con el PC466C (cont.)
4.19 Sesión de trabajo con el PC486C (cont.)
4.20 Sesión de trabajo con el PC466C (cont.)
4.21 Sesión de trabajo con el PC488C (cont.)
iii
*
Capítulo 1
Introducción
1.1
Antecedentes
El desarrollo, por parte de Hewlett-Packard, de una interfaz
para equipos de medición encaminada a la implementación de un
sistema de instrumentación programable remotamente a través de una
computadora personal, tuvo tal impacto entre los fabricantes de
equipo de medición que, por tal motivo se adoptó, bajo auspicio de
la IEEE', como un estándar internacional y de "de facto", a fin de
poder incorporar los equipos de diversos fabricantes en un sistema
heterogéneo de instrumentación a través de dicha interfaz.
La interfaz propuesta por HP, el Bus de Interfaz de Propósito
General (GPIB de sus siglas en inglés), se convirtió posteriormente
en el estándar IEEE-488 que, hasta nuestros dlas, es el estándar
más utilizado en los equipos de medición e instrumentación debido
a su probada eficiencia y capacidad.
Debido a lo anterior, un número considerable de los equipos de
medición con que cuenta el Departamento de Comunicaciones del
Instituto de Investigaciones Electricas tienen incorporado el GPIB.
Esto generó el interés de utilizar dicha capacidad de los equipos,
para implementar un sistema de instrumentación controlado por una
computadora personal o PC. Como producto de ese interés se disefió
y concibió una tarjeta de interfaz entre el GPIB y una PC.
1
Dicha interfaz fue el producto final de un proyecto de tesis,
que se llevb a cabo dentro del mismo Departamento de
Comunicaciones. Sin embargo dicho trabajo no fue objeto de mayor
seguimiento y sblo se contaba con el prototipo y un programa que
manejaba, de manera mínima, a la tarjeta de interfaz. En esos
términos, el usar dicha interfaz para programar remotamente algún
instrumento de medicibn requería de amplio conocimiento de la
tarjeta de interfaz, del mismo GPIB, así como de programacibn de
bajo nivel o ensamblador y de la informacibn de programacibn del
dispositivo a controlar.
Como un medio para hacer más accesible el uso de dicha interfaz,
surgió el presente tema de tesis, cuyo objetivo es proporcionar al
usuario un ambiente en el cual el uso del hardware de interfaz y la
programadon de los dispositivos se realice de una manera rápida,
fácil y eficiente. Además, permitirá al usuario con poca
experiencia en el manejo del GPIB, de la tarjeta de interfaz GPIBPC y del lenguaje ensamblador, llevar a cabo la programacibn remota
de los dispositivos conectados a través del GPIB.
1.2 conoeptualimaaión
El presente trabajo de tesis tiene como finalidad la
implementacibn de las capas superiores del sistema de interfaz
entre el GPIB y el usuario mediante una PC, a fin de permitir al
usuario un rápido y fácil acceso a los dispositivos a ser
programados. La estructura total del sistema de interfaz se muestra
en la figura 1.1, indicando además las etapas concernientes a este
trabajo.
I
USWRIO
SOFTWARE
PC488
Figura No 1.1 Estructura del Sistema PCPS8
2
I
Dichas etapas son: programación de bajo nivel, que es
concerniente al manejo del hardware de interfaz entre la PC y
GPIB; y otra de programacióñ de alto nivel que es la encargada
proporcionar al usuario un ambiente de trabajo amigable y que
permita el uso transparente del hardware y del protocolo GPIB.
la
el
de
le
Este sistema permitirá suplir la falta de experiencia de un
usuario dado en el uso del GPIB, facilitandole y haciendole
accesible el control de instrumentos de medición por medio de la PC
de manera transparente.
1.2.1
Barramientas de programacidn
El alcance previsto incluye el desarrollo de software tanto de
bajo como de alto nivel, para la tarjeta de interfaz y el ambiente
de trabajo proporcionado al usuario. Para la realización del
software requerido, se ha tomado en cuenta el lenguaje ensamblador
para la parte de bajo nivel, por su eficiencia y velocidad; y el
Turbo-Pascal para la parte de la interfaz del usuario debido a las
amplias capacidades gráficas y de manejo de archivos. Además se
hace uso del Turbo Graphix ToolBox, que es un conjunto de funciones
para el Turbo Pascal que incrementa considerablemente las
capacidades gráficas y el manejo de ventanas.
Este trabajo se dividirá de la siguiente manera:
Capítulo 1: Esta introducción.
Capítulo 2: Conceptos
básicos
relativos
ai
GPIB, el
controlador del GPIB utilizado en la tarjeta de interfaz, as€ como
de la propia tarjeta.
Capítulo 3: Planteamiento del sistema de
interfaz, su
estructura y niveles con los que cuenta. Se incluye la descripción
de las rutinas o procedimientos de programación desarrollados tanto
de alto como de bajo nivel.
Capítulo 4: Se ilustra una sesión típica de trabajo con el
sistema de interfaz desarrollado, apoyándose en la descripción de
gráficas capturadas directamente de la pantalla de la PC.
Capítulo 5: Conclusiones y trabajo a futuro.
3
Capítulo 2
Interfaz PCDEEE-488
2.1 Conceptos básicos del estándar IEEE-488.
El estándar IEEE-488 define un bus de interfaz para
interconectar y controlar dispositivos programables necesarios para
ensamblar un sistema de instrumentación y f o medición.
Este estándar es aplicable a sistemas de interfaz, donde:
a) Los datos intercambiados entre los dispositivos son
de tipo digital.
b) El niímero de dispositivos interconectados es menor de
15.
c) La longitud total de la trayectoria de transmisión no
exceda de 20 metros.
d) La velocidad de transmisión de datos sea menor 1 Mbyte
por segundo.
La versatilidad y rapidez de este bus obtuvo una amplia
aceptacibn por parte de los fabricantes de equipo, por lo que se le
dió el nombre de bus de interfaz de propósito general o GPIB por
sus siglas en inglés. El esquema básico del bus y el arreglo para
la conexion de los dispositivos que forman el sistema de interfaz
se muestran en la figura 2.1.
4
2.1.1
Tipos de mensajes.
La comunicación entre los dispositivos interconectados se logra
por medio del intercambio de mensajes a través del sistema de
interfaz. Dichos mensajes viajan en forma bit-serie, byte-paralelo.
Existen dos tipos de mensajes:
1) Dependientes del dispositivo.-
Llamados comúnmente
"mensajes de datoso* o V?atosgV, contienen información
especlfica
relacionada
con
la
programación
del
dispositivo, estado actual, resultados de mediciones.
2) De interfan.A mentido llamados tfcomandos**,son
utilizados para el manejo de la interfaz. Por medio de
éstos se realizan funciones tales como inicialización del
sistema, direccionamiento de dispositivos.
2.1.2
Parlantes, escuchas y controladores.
L o s dispositivos conectados a la interfaz pueden ser de 3 tipos:
parlantes, escuchas o controladores.
LOS parlantes son aquellos que envfan sus mensajes a uno o más
escuchas, que son los encargados de recibirlos. El controlador es
aquel dispositivo que supervisa esta transferencia, enviando los
comandos apropiados a los dispositivos involucrados en ella.
La transferencia inicia con el controlador, direccionando al
parlante y al o los escuchas. Posteriormente, el parlante envía su
mensaje y se finaliza, generalmente, con la deshabilitación de los
dispositivos por parte del controlador.
En algunas configuraciones donde un dispositivo siempre es
parlante (conocido como sólo parlante) y existen uno o más
dispositivos s610 escuchas, la presencia de un controlador no es
necesaria. El controlador sólo es utilizado cuando la asignación de
parlantes y10 escuchas
esta cambiando, dentro del sistema. La
función de controlador es generalmente asignada a una computadora.
2.1.3
Controlador a cargo y controlador del sistema.
Aún cuando pueden existir varios controladores dentro del
sistema de interfaz, sólo uno a la vez puede estar activo, a éste
se ,le denomina controlador a cargo (CIC). El control de> sistema
puede ser pasado de un CIC a un controlador inactivo, pero sólo, el
controlador del sistema puede hacerse así mismo el CIC.
5
2.1.4
Lineae del G P I B .
El GPIB está formado por 24 líneas, 16 de ellas son de Señal Y
son retornos de tierra. Las 16 líneas de señal se agrupan en 3
buses: datos, handshake y manejo de interfaz, con 0 , 3 y 5 líneas
respectivamente, como se muestra en la figura 2.1.
8
1) Lineas de datos: Denominadas DIO1-DI08, son las encargadas de
llevar los mensajes, tanto datos como comandos, a través de la
interfaz, utilizando el código ASCII de 7 bits, generalmente
manteniendo el octavo bit sin utilizar o para verificación de
paridad.
2) Lineae de handshake: Estas 3 líneas controlan, de manera
asíncrona, la transferencia de mensajes mediante un protocolo de 3
hilos, el cual asegura una comunicación libre de errores. A
continuación se presenta una breve description de cada una de estas
líneas:
-
NRFD : Esta línea es la que indica si un dispositivo
está o no preparado para recibir un mensaje. Es utilizada
por todos los dispositivos cuando reciben comandos, y por
los escuchas cuando reciben datos.
-
NDAC : Por medio de esta línea se conoce si un mensaje
ha sido aceptado o no por un dispositivo. El uso de esta
línea es similar al de la anterior.
-
DAV : La función de esta llnea es indicar si los datos
en DIO1-DIO8 son válidos. Es utilizada por el controlador
cuando envía comandos y por el parlante cuando envía
datos.
3) Lineas de manejo de interfaz: Las 5 lineas utilizadas para
mantener un flujo ordenado de datos dentro de la interfaz son:
-
ATM : El propósito de esta linea es indicar si a través
de DIO1-DI08 se están enviando comandos o datos. El
controlador la coloca en un nivel lógico verdadero cuando
envía comandos, y en un valor falso cuando le permite a
un parlante enviar sus datos.
-
I F C : Utilizada por el controlador del sistema para
inicializar el sistema y convertirse en el CIC.
-
REN : A través de esta línea, el controlador del
sistema coloca a los dispositivos restantes en modo de
programación local o remota.
6
33”I
x
3’1
3
SOLO PIRUNTE
I
I
MSPOSmVO
o
SOLO ESCUCHA
]
’1
1
DIO1
Di08
L
Figura 2.1
B u y i s u báaico del a h t a u da interfa.
7
-
BRQ : Cualquier dispositivo, a través de esta línea,
puede solicitar atención del controlador en forma
asíncrona.
-
EO1 : Cuando esta línea es manejada por un parlante,
indica el fin de una cadena de mensaje. El controlador la
utiliza para solicitar una identificación de los
dispositivos en una encuesta paralelo (parallel p o l l )
2.1.5
caracteríeticae fisicae y eiéctricae.
LOS dispositivos están interconectados por medio de un cable
blindado de 24 conductores, con un conector tipo clavija y otro
tipo receptáculo en cada extremo de él. Este diseno permite
conexiones del sistema en configuración estrella o lineal o en
combinación de ambas como se puede apreciar en la figura 2.2. Los
niveles utilizados en el estándar son “TL con lógica negativa, de
acuerdo a los siguientes valores:
Las especificaciones de corriente, impedancias y otras
características ,mecánicas adicionales se detallan ampliamente
dentro de la norma’.
A) CONRCUWION UNEAL
Figura 2 . 2 Configuracianea de conexibn.
8
2.2 Interfaa PC/iEEE-400.
Como se mencionó anteriormente, la --inción de contro idor puede
ser realizada por una computadora, en este caso por una PC, por lo
que se vuelve necesario el uso de una interfaz entre ésta última Y
el GPIB. Dicha interfaz está constitulda por una tarjeta prototipo,
diseflada alrededor del circuito integrado pPD7210, el cual es un
controlador dedicado al manejo del protocolo de comunicaciones del
GPIB.
2.2.1
Descripción del PD7210
El PD7210 es un controlador del GPIB que interconecta el bus de
un microprocesador con el bus GPIB. Está diseñado para cumplir los
requerimientos de las funciones de parlante, escucha y controlador
como se especifican en el estándar, así como de proporcionar un
manejo de alto nivel del propio GPIB a fin de simplificar el
hardware y el software asociados a una interfaz dada.
El PD7210 tiene como función liberar al procesador con el que se
interconecta, de las tareas de manejo del protocolo del GPIB y para
ello cuenta con 16 registros internos que le permiten fijar los
parámetros de operación y conocer el ‘estado de la interfaz en un
momento dado. Los 16 registros se dividen en 2 grupos, 8 de lectura
y 8 de escritura, como se muestra en la figura 2.3 y son accesados
a través de 3 líneas de direccionamiento (RSO a RS2) y las líneas
de RD, WR, y CS de este controlador2.
R R R
W
M
r?
SI
Dl
R R R
sss
[OR]MlODEENnuo*
[lR] STAD0 DE UlTERRUPClONES I
t2RI m
A
D
0 DE 1UTERRumES 2
[YI] fSlW DE n i C V m A SERE
[4R] W
AD0 DE MRfCCIüNfS
[ S I PISO DE COUUIW
[en] DlREccloH o
[7R] MRü2CCti 1
REClSTRmMESCRlTUU
Figura 2 . 3 Registros internos del PD7210.
Registros de datos: El registro dato de entrada (OR) es donde se
deposita la información recibida desde el GPIB para transferirla al
microprocesador mientras que el registro de dato de salida (OW) es
donde se escribe el dato que se desea enviar a través del GPIB.
Registros de interrupciones: Son los encargados de fijar las
máscaras de interrupciones, es decir, colocar las condiciones por
las cuales se va a generar una interrupción y reportar el estado de
dichas condiciones. Para esto se dividen en dos grupos los
registros de máscara (1W y 2W) y los registros de estado (1R y 2R)
contando con 13 condiciones de interrupción como se muestra en la
tabla siguiente.
INT
CPT
OR de todos los bits
sin máscara
Command Pass Throuah
APT
Address Pass Through
END
End (recepción del
mensaje EOS)
DET
Device Clear
w
Data Out
DI
SRQI
LOKC
REMC
ADSC
co
11
Device Trigger
DEC
ERR
l
Error
Data In
Service Request Input
Lockout change
Remote change
Address status change
Command output
-
Registros de encuesta serie: Este registro (3R) guarda el byte
de estado y el mensaje local de petición de servicio rsv.
10
Registros de dirección: El registro de modo de dirección (4W),
fija el modo de direccionamiento del dispositivo y fija el modo de
operación de las líneas de control de los transceptores (T/R2 y
T/R3). El registro de estado de direcciones (4R), refleja la manera
en que ha sido direccionado el dispositivo. El registro de
dfreccidn O (6R) y el de dirección 1 (7R) son utilizados para fijar
las direcciones a las que va a responder el dispositivo, ésto se
lleva a cabo mediante el registro de dirección 0 / 1 (6W).
Registro de paso de comando: Este registro (5R) es utilizado
para que el procesador lea las líneas de datos cuando se presente
un comando indefinido, una dirección secundaria o una respuesta a
una encuesta paralelo.
Registro de fin de cadena: En este registro (7W) se graba el
byte de EOS con el que el GPIB marca el fin de un bloque de datos.
Registro de modo auxiliar: Es un registro (5W) multipropósito
utilizado para el envío de comandos auxiliares, programación del
reloj interno del PD7210 y la escritura a los registros auxiliares
A , B, E y al de encuesta paralelo.
2.2.2
Tarjeta de interfaa.
La tarjeta de interfaz entre los buses de la PC y el GPIB
cuenta, adicionalmente al PD7210, con un transceptor de datos para
conectar el bus de datos de la PC al bus de datos del PD7210, dos
transceptores dedicados, que cumplen con las especificaciones
eléctricas de estándar, a las salidas del PD7210 para conectarse al
GPIB, un bloque de decodificación de direcciones y una base de
tiempo como se puede apreciar en la figura 2.4.
La base de tiempo es un reloj de 6MH2, utilizado para generar
los tiempos necesarios para que el PD7210 maneje adecuadamente los
cambios de estado del protocolo IEEE-488.
El bloque de decodificación de direcciones está diseñado para
activar al PD7210 sólo cuando se direcciona la tarjeta como un
dispositivo de entradalsalida.
El acceso a la tarjeta se logra mediante 8 direcciones contiguas
del espacio de direccionamiento de entradalsalida de la PC, en la
región destinada a tarjetas prototipo y son las direcciones 0308H
a 030FH. El acceso de los registros del PD7210 se logra conectando
las 3 líneas de direcciones más bajas del bus de la PC a las
terminales RSO, RS1 y RS2 del PD7210 mientras que el resto de las
líneas de dirección en conjunto con las líneas de IOW e IOR se
utilizan para decodificar la dirección base de la tarjeta que
corresponde a la 0300H.
11
Para interconectar el bus de datos de la PC al bus de datos de
entrada del PD7210 se coloc6 un transceptor bidireccional SN 74245
mientras que los transceptores a la salida del PD7210 son los
circuitos integrados SN 75160 y SN 75162 utilizados para
interconectar las líneas de control, manejo de la interfaz y de
datos del PD7210 al GPIB.
Figura 2.4 Tarjeta de interfar PC/iEEE-PSS.
De esta manera quedan descritos de manera general el estándar y
el hardware de interconexión entre la PC y el GPIB. El siguiente
capítulo describe el desarrollo del software de bajo nivel para el
control de la tarjeta de interfaz as€ como el software de alto
nivel correspondiente a la interfaz hombre-máquina.
12
Capítulo 3
Desarrollo de la Interfaz Hombre-Máquina
3.1
. Descripción General.
,
La función principal de una interfaz hombre-máquina o de usuario
es facilitar la interacción hombre-computadoraI involucrando el
hardware y el software en un diálogo que le permita al usuario
manejar algoritmos o procedimientos complejos, así como controlar
de manera transparente dispositivos de entrada/salida. El manejo
transparente se lleva a cabo cuando el usuario controla tales
algoritmos o dispositivos de manera indirecta y, la mayoría de las
veces, sin tener un elevado conocimiento acerca de ellos. La
interfaz de usuario es la encargada de superar dicha falta de
conocimiento solicitando al usuario los datos que si conoce para
controlar los dispositivos antes mencionados a fin de realizar una
tarea específica. Cabe mencionar que la importancia de las
interfaces de usuario ha ido aumentando en tal medida que, en la
actualidad, el código escrito para dichas interfaces supera al de
la aplicación en sí.
M
,4-
o
o
M
0 8
E d
5:
* +
z;
r;
El objetivo de este trabajo es desarrollar una interfaz de
usuario que permita hacer transparente al operador la programación O "
y el manejo de la tarjeta de interfaz entre los buses de la PC y el GI
GPIB descrita en el capítulo anterior, a fin de poder implementar
un sistema de medición e instrumentación. A s í mismo, dicha interfaz v
..
debe liberar al usuario del aprendizaje del protocolo IEEE-488 y
los códigos de programación de los dispositivos que desea controlar
remotamente. Lo anterior le permitirá a un usuario con relativa
poca experiencia en el estándar, implementar un sistema de medición
e instrumentación controlado de manera remota por una PC.
2
13
La interfaz desarrollada, que recibe el nombre de PC488, cuenta
con las funciones de programar la tarjeta de interfaz, enviar y
recibir datos de y hacia el GPIB, así como también las de mantener
un índice de dispositivos que puedan eventualmente ser habilitados
y controlados de manera remota, además de proporcionar la capacidad
de incrementar el número de dispositivos.
El sistema PC488 consta de 2 módulos principales para ejecutar
las tareas antes descritas:
a) PC488A
b) PC488C
Programa de Altas.
Programa de Control.
El PC488A tiene la función de generar y, posteriormente,
actualizar el índice de dispositivos o instrumentos mediante una
rutina de a l t a s de equipo, que recolecta los datos necesarios para
generar un archivo que contiene la información requerida para
programar un dispositivo en particular.
El PC488A genera dos tipos de archivos, uno de ellos es el
índice de dispositivos y el otro almacena las funciones del
instrumento y sus respectivos códigos de operación. La estructura
de esos archivos, que de aquí en adelante se denominarán archivo
índice y archivo de dispositivo, se puede ver en la figura 3.1.
DIRECCION
cwxo cos
mm Eos
Figura 3.1 Archivos de dato.
NUN. “CKmES
del Pc488.
El PC488C es el programa utilizado para el control de la
comunicación de los dispositivos interconectados al GPIB. Este
programa utiliza los archivos creados por el PC488A para tener una
representacibn gráfica de los instrumentos dados de alta en el
sistema; a partir de esta representación se pueden seleccionar
aquellos que se requieran para una tarea en particular. como paso
siguiente a la selección se tiene la programación de dichos
instrumentos, mediante el archivo de dispositivo que de cada uno de
ellos se mantiene y cuyo contenido son los códigos necesarios para
su control a través del GPIB.
14
La estructura general del sistema, como se observa en la figura
3.2, consta del hardware de interfaz y dos etapas de programación,
una de bajo nivel y otra de alto nivel. El hardware está
representado por la tarjeta de interfaz; la primera etapa de
programación, realizada en lenguaje ensamblador, esta constituida
por las rutinas de programación y control de dicha tarjeta y
finalmente la etapa de alto nivel, llevada a cabo en lenguaje
Pascal, es la encargada de hacer transparente al usuario el uso del
hardware y en la cual está desarrollado todo el sistema en sí. Este
uso transparente del hardware se logró mediante llamadas a las
rutinas de bajo nivel desde el lenguaje de alto nivel por medio de
un mecanismo de paso de p a r h t r o s , que nos permite transferir
datos entre los dos niveles de programación.
T U R B O
-PASCAL
ALTO N M L
ENSAMBUDOR
WONML
rll
Figura 3 . 2 Estructura general del sistema PCP88
Como ya se mencionó anteriormente, para el desarrollo del
sistema se eligió el lenguaje ensamblador, para la parte de bajo
nivel, a fin de tener un control total y veloz sobre la tarjeta de
interfaz y, como lenguaje de alto nivel, el Turbo-Pascal por sus
cualidades gráficas, así como también por que proporciona un fácil
y eficiente manejo de archivos.
15
3.2
Deecripcián Funcional.
Para la descripción funcional se tomará como primer punto las
rutinas en lenguaje ensamblador, para continuar con el mecanismo de
paso de parámetros entre lenguajes y terminar con la etapa de alto
nivel de programación, realizada en Lenguaje Turbo-Pascal.
La secuencia necesaria para poder programar en forma remota un
dispositivo principia con el envío, por parte del CIC, de la
airección de escucha del instrumento a controlar y la dirección de
parlante del propio controlador, para que posteriormente el
controlador envíe cada código de operación del instrumento
direccionado. En cualquier momento que se desee accesar las
funciones de algún otro instrumento, se debe enviar su dirección de
escucha antes de enviar los códigos de operación correspondientes.
Programacibn de bajo nivel.
3.2.1
La programación a este nivel está destinada a las tareas de
programación y control de la tarjeta de interfaz y a la
comunicación con los dispositivos interconectados en el sistema de
intrumentación. Para realizar dichas funciones se diseñaron las
siguientes rutinas en lenguaje ensamblador de la familia del
procesador 80x86, puesto que se utilizó una PC tipo AT:
a)
b)
c)
d)
e)
3.2.1.1
Programación del PD7210 (prog7210.asm)
Diredonamiento de dispositivos (dir dis.asm)
Envío de datos y10 comandos (env datTasm)
Recepción de datos (rec dat.asm)Deshabilitación del sisEema (des-sis.asm)
PROG721Q.A8M
La rutina de programación coloca los parámetros de operación del
PD7210, así como también coloca al sistema de interfaz en un estado
conocido de reposo o espera, a la vez que lo habilita como el CIC.
Como primer paso se colocan las máscaras de interrupción
colocando un valor de OOH en los registros de máscaras de
interrupción 1 y 2. Las máscaras se colocan a cero ya que el manejo
de interrupciones no se contempla en este trabajo. A continuación
se programa el modo de direccionamiento escribiendo un valor 031H
al registro de modo de direcciones.
REGISTRO DE MOW DE DlRECClONES
16
Por medio de este registro se selecciona el modo de
direccionamiento 1, en el cual la dirección mayor del dispositivo
se coloca en el registro de direcciones O y la dirección menor en
el registro de direcciones 1. Además se selecciona las funciones de
las termínales T/R2 y T/R3 del PD7210 a CIC y PE respectivamente y
según las tablas siguientes:
Cic
PE
1
EOIOE : INSI LA TERMINAL M EOI
ES-OSUlM
CIC
: INDW SI LA FUNCION DE
COHlROWOR ESTA ACTNA
PE
: INDICA EL npo OE LOS
WEJADORES M BUS
iRlG : K GENERA UN PULSO SI K
ENVY< UN C O W W DE lRlCER
1
Después de ésto, se escribe al registro auxiliar A para colocar
el modo de selección de datos y el mensaje de EOS. Al enviar un 84H
se selecciona el handshake normal, se permite que el bit END sea
colocado cuando se reciba el mensaje EOS, se inhibe la transmisión
automática del mensaje de EOS y se habilita la opción de 7 bits del
registro EOS como mensaje válido de EOS.
Una vez hecho lo anterior, se procede con la programación de la
cuenta del reloj interno del PD7210 que tiene la función de generar
los tiempos necesarios para los cambios de estado dentro de la
interfaz de acuerdo a la norma IEEE-488. Para ésto se envla un 26H
al registro de modo auxiliar y con este valor se programa una
frecuencia de 6 Mhz, que es igual a la del reloj con que cuenta la
tarjeta.
17
Como paso siguiente se envlan un BCH al registro auxiliar El lo
que permite seleccionar las características de prohibición de la
recepción de comandos indefinidos, prohibición de la transmisión
del EOS en una encuesta serie. Se elige también T1 como alta
velocidad, esto se selecciona también al colocar la cuenta interna
del reloj de referencia; además'se selecciona el nivel de la linea
de interrupción y se indica que el primer valor de un mensaje local
sea tomado como CRQS.
REGISTRO AUXIWIR B
Se inhibe la encuesta paralelo enviando un 70H al registro de
modo auxiliar, para continuar con el envío de un COH al registro
auxiliar E que deshabilita la retención de la llnea de DAC. A
continuación se fija la dirección de la tarjeta, escribiendo al
registro de dirección 1, como 01H y se deshabilita la dirección
menor mediante el envio de un 80H al registro de direcciones 011.
[ O
I' I '1u I s
1
0
0
0
0
IP,IP?IPII
REGISTRO DE ENCUESTA P W L O
La secuencia de programación termina con la colocación, en el
registro de EOS, de la palabra de 7 bits que servirá como mensaje
de EOS, en este caso se envla un ODH o retorno de carro. Con ésto
se tienen los parámetros requeridos para que la tarjeta funcione
como controlador y responda a las características de hardware con
las que fue construlda y además se le asigna la dirección 01H
dentro del sistema de interfaz. Por último se procede a inicializar
el sistema de interfaz por medio del envío del comando auxiliar
PowerOn' (encendido) y colocando a un valor lógico verdadero la
llnea de I F C por al menos 100 microsegundos, terminando con un
comando auxiliar de RemoteEnable' (habilita remoto) que habilita al
sistema de interfaz para trabajar en modo remoto de programación.
18
3.2.1.2
DIR-DIS.ABM
3.2.1.3
ENV DAT.ASM
3.2.1.4
REC-DAT.ASM
La rutina para direccionar los dispositivos es la primera en
utilizar el mecanismo de paso de parámetros, ya que tiene que
recibir como entrada la dirección del dispositivo que se desea
programar. Esta rutina cuenta con tres subrutinas locales
denominadas ASCII, TEST CO y TEST TA las que se utilizan para
fomatear el dato de dirección, verificar que el PD7210 esté en
disponibilidad de enviar un dato y verificar si el PD7210 ha sido
direccionado como parlante respectivamente.
Esta rutina recibe la dirección del dispositivo en forma de una
cadena de 2 caracteres en código ascii, y por medio de la rutina
ASCII se convierte esa cadena de caracteres a un valor hexadecimal
correspondiente a la dirección del dispositivo.
Por medio de
TEST CO se prueba si el registro de salida del PD7210 está libre
paraenviar un dato hacia el GPIB. Esta subrutina prueba el bit CO
del registro de status de interrupciones 2 y si se encuentra en un
valor lógico verdadero se envía la dirección del instrumento al
GPIB. Si esta última dirección cae dentro del rango de escucha, el
CIC es direccionado como parlante enviando la dirección 41H
verificando posteriormente, mediante la rutina de TEST TA, que se
haya hecho el direccionamiento correcto. se finaliza con el envío
del comando auxiliar GoToStandBy (ir a espera) que tiene como
función colocar al sistema de interfaz en un estado conocido de
espera.
-
Con esta rutina se envían los códigos de programación a los
dispositivos previamente direccionados, Cuenta con una subrutina
local que verifica que el PD7210 se encuentre en condiciones de
enviar un dato al GPIB, ésto para no sobreescribir en el registro
de salida y llegar a perder información. Esta rutina recibe, como
primer parámetro, el número de caracteres ASCII que se van a enviar
seguido de los propios caracteres. Con el primer parámetro se
construye un lazo que verifica el estado del registro de salida del
PD7210 y envía el carácter ASCII en turno; al terminar con el envío
los códigos o caracteres, la rutina env-dat manda un mensaje de EOS
para marcar el fin de cadena.
Esta rutina es la utilizada cuando se requiere obtener
información de algún dispositivo a través del GPIB. Cuenta con 5
subrutinas locales TEST DO, TEST CO, TEST LA, TEST DI, TEST CIC con
las que se verifican las siguienfes condiciones: qüe el regrstro de
salida esté libre, que se esté habilitado para enviar un comando,
que el controlador esté direccionado como escucha, que se haya
recibido un dato en el registro de entrada del PD7210 y que se éste
actuando como CIC del sistema.
19
La rutina inicia con un llamado a TEST-DO para luego enviar el
comando auxiliar de TakeControlAsynchronously (toma control
asfncronamente) y verificando que se tenga el control del sistema
haciendo un llamado a la rutina TEST-CIC. Continúa con un llamado
a TEST CO a fin de enviar el comando auxiliar de Unlisten (no
escuchar) para luego direccionar al controlador como escucha y
enviar la dirección de parlante del dispositivo que se desea
accesar, finalizando con el envio de l o s comandos auxiliares de
Listen (escuchar) y GoToStandBy (ir a espera). Una vez hecho ésto,
se tiene un lazo que verifica si ha llegado un dato al registro de
entrada y lee dicho carácter, terminando este ciclo cuando se
recibe el código de fin de cadena o retorno de carro.
3.2.1.5
-
DES SIB.ASM
Su función es la de devolver a los dispositivos al modo de
programación local, a fin de que se puedan manejar desde el panel
frontal de control. También es la encargada de restablecer y
deshabilitar el sistema de interfaz. Cuenta con las subrutinas
locales de TEST CO, -TEST-CIC y TEST-DO con las funciones antes
descritas. Inizia con el envio del comando auxiliar de
TakeControlAsynchronously verificando si se tiene el control del
sistema para luego enviar los comando de Unlisten y Untalk (no
hablar) a fin de no direccionar a ningún instrumento o dispositivo;
finaliza con el comando auxiliar de ResetRemote (restablece remoto)
seguido de un DisableSystemControl
(deshabilita control del
sistema) con lo que se libera todo el control del sistema,
regresando a todos los dispositivos conectados al sistema de
interfaz a su modo local de operación.
3.2.2
Paso de Parámetros
El paso de parámetros es una técnica empleada para compartir
datos entre lenguajes y surge de la necesidad de utilizar lenguajes
diferentes para realizar tareas especlficas dentro de una
aplicación global. Esta técnica nos permite dividir una aplicación
en tareas individuales, mismas que son programadas en el lenguaje
idóneo para llevar a cabo la función para la que han sido creadas.
Esto último redunda en una mayor eficiencia de la aplicación,
mediante la programación a distintos niveles y enfocada a un mejor
aprovechamiento de las facilidades y beneficios otorgados por los
distintos lenguajes utilizados. De esta manera, se puede tener un
programa en Pascal para manejar la captura y presentación de los
datos mientras que se tiene otro programa en ensamblador para
manejar las comunicaciones de manera rápida y eficiente.
20
Para llevar a cabo la comunicación entre el Turbo-Pascal y el
ensamblador, las rutinas en ensamblador deben ser ligadas al
programa principal en Turbo-Pascal. Para ello se requiere cumplir
con 3 requisitos: el primero es informar al Turbo-Pascal que la
rutina es de tipo externo, como segundo paso se debe implementar un
mecanismo para el intercambio de datos, en base a la representación
interna de los datos en Turbo-Pascal y, por último, las rutinas en
ensamblador deben ajustarse al modelo de llamado a procedimientos
del Turbo-Pascal.
3.2.2.1
Ligado de rutinas
Para cumplir con el primer requisito, la rutina en ensamblador
declara como cualquier otro procedimiento o función del TurboPascal agregando al final la palabra reservada EXTERNAL y
colocando, entre comillas, el nombre del archivo ejecutable
correspondiente a la rutina, como se puede ver a continuación:
8.9
PROCEDURE EJEMPLO IPARAM1, PARAM2.i; EXTERNAL 'RUTINA.COM'
La rutina debe ser ejecutable y del tipo COM, es decir, de
código relocalizable para que el ligador pueda resolver las
referencias y colocarlo debidamente junto al resto del código
generado por el Turbo-Pascal dentro del mismo segmento de código.
El segundo requisito involucra al Turbo-Pascal y al programador, ya
que la tarea del Turbo-Pascal es preparar áreas de memoria para
entradalsalida de datos mientras que la del programador es realizar
el protocolo de acceso a dichas áreas. Esto se logra mediante el
conocimiento de la representación interna de los datos en TurboPascal y con un manejo adecuado de las áreas de entradalsalida
proporcionadas por el propio lenguaje. Generalmente el área de
memoria conocida como s t a c k es el centro del proceso de intercambio
de datos entre lenguajes, aún cuando se pueden manejar registros y
algunas banderas del microprocesador.
3.2.2.2
Representación interna de los datos
La representación interna de los diferentes tipos de datos que
el Turbo-Pascal hace para el manejo y almacenamiento de los mismos
es el siguiente:
EnterOS: L o s números enteros son almacenados como números de
complemento a dos en dos bytes, con el menos significativo en la
dirección menor.
.
Caraateres y Booleanos: Se almacena un byte que corresponde al
código ASCII del carácter. Para los booleanos se almacena un ' O '
para falso y un '1' para verdadero.
21
C.delu8 de oaraateres: Una cadena de tamaflo n ocupa n+l bytes
de memoria, siendo el primer byte el tamaflo de la cadena. El ntímero
que representa la longitud de la cadena es tratado como un entero
sin signo, razón por la cuál el tamaño o longitud máxima de una
cadena es de 255 caracteres.
Reales8 El Turbo-Pascal tiene la posibilidad de representar
los reales de 3 tipos: estándar, BCD y 8087 con 6, 10 y 8 bytes
respectivamente. Debido a ésto las rutinas en ensamblador deben de
"conocer" cuál de las tres versiones se está utilizando.
Enumerados y subrangos: Se almacenan como un entero igual ai
valor ordinal de la posición del elemento dentro de la declaración,
iniciando con un ' 0 ' para el primero, un '1' para el segundo y así
sucesivamente. El tipo subrango se almacena como el valor ordinal
del elemento dentro del rango completo, por ejemplo, si se define
un subrango del 5 . . 9 , el primer elemento será un 4.
'
Conjuntos: Este tipo de dato ocupa en memoria un total de n
bytes, donde n toma valores desde 1 hasta 32. El valor de n depende
de los valores ordinales de los límites superior e inferior del
conjunto, con el i-ésimo bit del arreglo total representando al
elemento de valor ordinal i dentro de la declaración del conjunto.
Apuntadores: Se almacenan 2 bytes, una para el offset y otro
para el segmento, en ese orden.
Registros: Se asigna una cantidad de memoria igual a la suma
de todos los campos del registro de acuerdo a las definiciones
anteriores. En los registros variantes, se reserva memoria para la
parte fija más la necesaria para almacenar la parte variante de
mayor tamaño posible. Las direcciones se asignan de menor a mayor
de acuerdo a la posición de los campos dentro de la definición de
dicho registro.
Arreglos: L o s arreglos son almacenados por renglones con el
elemento [i,j] seguido del elemento [i,j+i], con el espacio de
memoria ajustándose a las descripciones antes proporcionadas.
Cabe mencionar que para procedimientos y funciones , las salidas
de datos son manejadas de manera distinta. Por lo general los
procedimientos entregan sus salidas de datos a través de parámetros
tipo VAR por lo que el ensamblador sólo requiere conocer las
direcciones de esos parámetros y dichas direcciones se encuentran
en el stack.
Por
de la
salida
maneje
otro lado, las funciones entregan sus salidas en el nombre
función; razón por la cual la mecánica de accesar dicha
depende del tipo de función que se haya declarado y de cómo
el ensamblador el tipo de dato de que se trate.
22
Así, los enteros, enumerados y subrango son regresados en el
registro AX, con la posibilidad de ser en el registro AL si el dato
es de 8 bits; los booleanos colocan la bandera de cero del
procesador si el resultado es falso; los reales y las cadenas de
caracteres son regresados a través del stack, siempre y cuando el
apuntador del stack esté apuntando al primer byte del resultado de
la función; los apuntadores son regresados en el par de registros
DX:AX, segmento y desplazamiento respectivamente.
3.2.2.3
Consideracionee del ensamblador
Con respecto al tercer requisito, el primer punto es generar, a
partir de la rutina en ensamblador, un archivo ejecutable de tipo
COM, o de código relocalizable, debido a la forma en que el TurboPascal genera sus archivos ejecutables. A continuación se debe
almacenar el estado del programa, guardando los registros en el
stack, al momento de iniciar la rutina en ensamblador y
restablecerlos antes de regresar el control al programa principal,
mediante instrucciones de PUSH y POP. Adicionalmente, se debe
contar con un apuntador que permita el desplazamiento dentro del
área de stack donde se encuentran los datos. Esto se logra copiando
a un registro, por ejemplo BP, el apuntador de stack SP y navegar
a través del stack mediante un desplazamiento de la forma [BP+n],
donde n representa el n-ésimo dato que se desea accesar, como se
ilustra en la figura 3.3
pop
POP
pop
U
POP
Ds
pop
E M
ligura No. 3.3 Eatado del stack después de
rutina en ensamblador
23
BX
SP
ss
UII
llamado a m a
3.1.3
Programación de A l t o Nivel
Como se mencionó anteriormente, la programación de alto nivel
consta de 2 programas principales que son el PC488A y el PC488C
procediendo a su explicación en ese orden presentando un diagrama
jerárquico de los procedimientos utilizados, así como la
explicación de las funciones realizadas por cada uno de ellos.
Además se crearon algunos archivos de procedimientos que son
incluidos en los programas principales, ésto para lograr una mayor
modularidad y facilitar el manejo de los mismos.
3.2.3.1
Programa de
Alta
de Equipos PC488A
El PC488A está dividido, para lograr una mayor modularidad, en
dos archivos de código fuente, como se aprecia en la figura 3.4
donde además se observan los procedimientos que componen cada uno
de esos módulos.
Introduction
WindowDefinition
PC488A
Instructions
Enterlnfo
Figura
'.
DrawDeviceNo 1
DrawDeviceNo2
DrawDeviceNo3
KbdClear
Translations
AddressLayout
Beep
EnterFunctions
EnterData
DecimalToBinary
Bina ryToSwit c hes
EnterDataTg
no. 3.4 E s t r u c t u r a del Programa ~ ~ 4 8 8 ~
El programa principia con la inicialización y habilitación del
modo gráfico, contintía con la definición de las ventanas a
utilizar, después ejecuta la subrutina de presentación del programa
donde, además se proporciona al usuario alguna información general
del uso del programa. A continuación el PC488A verifica si se
encuentra el archivo lndice de dispositivos, desplegando una
advertencia en caso de no existir, para continuar a la etapa de
captura de datos. Esta etapa está constituida por un lazo de
captura que permite agregar varios dispositivos en forma
consecutiva. Una vez terminada la operación de dar de alta a los
dispositivos, se le da la opción a usuario de entrar directamente
al segundo programa, el PC488C, a fin de accesar los dispositivos
recién dados de alta. En el diagrama de flujo del PC488A,
presentado en la figura 3.5, se puede observar de manera más clara
la secuencia de operación descrita líneas arriba.
24
IN-
GRAFKXK
I
wmdawcwinihs
I
IniroducUai
Figura No. 3 . 5 Diagrama de F l u j o del PC488A.
Los procedimientos que componen al PC488A son presentados a
continuación dando una descripción de las funciones realizadas por
cada uno de ellos:
Proaedimiento WindowDefinitions:
La función de este
procedimiento es la de definir las ventanas que servirán como áreas
de trabajo y despliegue. Las ventanas utilizadas en el programa son
11 y se definen como: Pantalla general, comandos, encabezado 1,
encabezado 2, encabezado 3, movimiento y diálogos, borrado, máscara
de direcciones, entrada de datos, borrar entrada-tg, y borrar
letrero-tg.
25
Procedimiento Introduction: Este procedimiento se encarga de
desplegar la pantalla de presentación del PC488A. Inicia por
activar las ventanas de trabajo y graficar la pantalla de
presentación auxiliandose de los procedimientos DrawDevicel, 2 y 3,
terminando con un mensaje al usuario de cómo obtener información
adicional.
Procedimientos DraWDBViCBl, DrawDevice2 y DrawDevice3: Estos
procedimientos grafican algunos de los elementos utilizados en la
pantalla de presentación.
Procedimiento Instructions: Este procedimiento genera una
ventana de información acerca de la forma de introducir los datos
al programa, debido a que existen varios formatos para los datos de
los dispositivos.
Procedimiento EnterInfo: Por medio de este procedimiento se
captura la información relativa a un dispositivo y se crea el
archivo correspondiente a la vez que actualiza el archivo indice.
Como primer paso inicializa las variables involucradas en la
captura de datos, para después, mediante el procedimiento
EnterData,
solicitar
al
usuario
los
datos
necesarios.
Adicionalmente verifica si existe ya un archivo de dispositivo con
se depliega
el nombre que se está capturando, en caso afirma:ivo
una ventana de advertencia y se solicita un nombre diferente
continuando con la captura del resto de la informción. Una vez que
se han introducido todos los datos solicitados, se pregunta al
usuario si estos están correctos proporcionando un mecanismo para
correción en caso negativo.
Una vez que se dan por validos los datos mediante el
procedimiento AddressLayout se abre una ventana en pantalla que
muestra los datos generales del dispositivo y sus direcciones en
los 3 formatos posibles, es decir, en representación decimal,
hexadecimal o con una gráfica de los interruptores con que cuenta
el instrumento que, físicamente, son los encargados de fijar la
dirección dentro del GPIB.
A
continuación,
se hace un
llamado al
procedimiento
EnterFunctions que es el encargado de capturar los datos relativos
a funciones y códigos de operación del instrumento en cuestión.
Para terminar, se verifica la existencia del archivo indice para
determinar si se debe crear o sólo agregar el dispositivo recién
dado de alta al archivo que lleva registro de todos los que están
dados de alta en el sistema.
Procedimiento EnterData: Este procedimiento tiene como función
capturar y validar los datos del dispositivo que está siendo dado
de alta. Tiene como entradas las coordenadas de pantalla de donde
va a desplegar la información que está siendo tecleada, el número
máximo de caracteres que permite, la leyenda que despliega en caso
de error y el conjunto de los caracteres válidos. Además verifica
las teclas de <BACKSPACE>, < E S O y <ENTER> ya que son teclas que
tienen asignada una función dentro del procedimiento.
26
La tecla de <BACKSPACE> se utiliza para borrar, la de < E S O para
salir del programa y la de <ENTER> para terminar la entrada de un
dato. Todos los caracteres o teclas que no estén entre estas 3 y
los caracteres válidos son ignorados a fin de evitar errores por el
tipo de dato introducido.
Proaedbiento EnterDataTg: Con los mismos parámetros y
funciones que el anterior pero específicamente diseñado para
manejar apropiadamente el tipo de font' asociado a esta etapa de la
captura de datos.
Procedimiento AddreesLayout: Por medio de este procedimiento
se genera la ventana que permite al usuario visualizar las
3
posibilidades que tiene de representar la dirección del dispositivo
en cuestión. Estas representaciones son decimal, hexadecimal y
gráfica.
Proaedbiento Translations: Por medio de este procedimiento se
hacen las conversiones entre las 3 diferentes representaciones de
la dirección mencionadas lfneas arriba. Este procedimiento se
auxilia de los procedimientos DecimalToBinary y BinaryToSwitches
descritos posteriormente.
Procedimiento DecimalToBinary: Este procedimiento sirve para
obtener una representación binaria de la dirección decimal del
dispositivo.
Procedimiento BinaryToSwitches: De manera análoga al anterior,
este procedimiento genera una representación gráfica equivalente de
los interruptores de dirección del dispositivo en cuestión.
3.2.3.2
Programa de Control PC488C
Este programa inicia verificando la existencia del archivo
lndice, en caso de que no exista se despliega una advertencia y se
da por terminado el programa; si el archivo se encuentra en el
directorio, se inicializan los gráficos, se definen las ventanas a
utilizar y se ejecuta la introducción colocando posteriormente en
la pantalla la ventana de trabajo. En dicha ventana se muestran los
primeros 16 dispositivos que se encuentran en el archivo índice y
se dan l o s mecanismos para n a v q a r a través de estos y10 para
cargar l o s siguientes 16 o los que resten por mostrar del archivo
índice. Esta navegación, que de hecho es a través del archivo
lndice, representa listar todos los dispositivos dados de alta
hasta el momento de correr el PC488C y se lleva a cabo mediante las
teclas de cursor y las de página arriba y página abajo, dejando la
tecla <ESC> para salir del programa.
Además se tienen las teclas de <F1> y <F2> para seleccionar y
deseleccionar los dispositivos que se van a utilizar. El proceso de
selección valida que no se hayan seleccionado más de 15 que
representa el número máximo permitido.
Una vez hecha la selección se pasa a la etapa de programación,
mediante la tecla <F3>, en la que se presenta una pantalla
semejante a la de la etapa de selección pero mostrando solamente
los dispositivos seleccionados con anterioridad. En el caso de que
no se hayan seleccionado ningGn dispositivo, el programa se da por
terminado; si el número de dispositivos seleccionados es diferente
de cero se hace un llamado al procedimiento Seestatus mediante el
cual se procede a la programación o inspección de los datos
relativos a un dispositivo en particular.
En esta etapa se tienen las opciones de ver el estado de un
dispositivo que representa básicamente examinar su dirección dentro
del bus, como segunda opción se tiene la posibilidad de alterar
esta última información para ajustes del tipo de cuando se tienen
dos dispositivos con la misma dirección dentro del bus. En estas
opciones se abre una ventana que permite desplegar el nombre del
dispositivo y su dirección en los tres formatos mencionados con
anterioridad. En la opción de cambio además se permite la
modificación de este dato en cualquiera de los tres formatos.
La opción restante es la de programar un dispositivo, para lo
cual se abre una ventana que despliega la lista de las funciones
realizadas por dicho dispositivo y un campo de selección para poder
elegir la función a desarrollar por dicho instrumento. Se da la
opción de terminar el programa mediante la tecla <F3> para
conveniencia del usuario.
MITOW
SeeSlalua
un08
R*nor
Pc488c
WlnáowLhiinillon
InlllolSelUp
InImducUon
Help
I
slodddmn
TmnJalionr
Mdmdoywl
{
Desimalloüinory
BinaylaSwilchea
ChongeAddresa
DmwDaissNol
DmiDsricsNoZ
ümw W c a N a 3
Figura N o . 3 . 6 Estructura d e l programa PCP88C.
28
El diagrama de flujo simplificado de la operación del programa
se muestra en la siguiente figura.
U
IntrDductMn
o
Figura No. 3.7 Diagrama de f l u j o del PC488C.
Los procedimientos desarrollados para la ejecución de dicho
programa se describen a continuación y dado que algunos
procedimientos son idénticos a los utilizados en el P C 4 8 8 A , sólo se
presentan los que no han sido explicados con anterioridad.
Prooedimientoe u m r o w ,
Dmrow,
=row
y mrrow:
son
procedimientos cuyas funciones son controlar el movimiento del
cursor en las tareas de selección de dispositivos dentro de las
etapas de conectar/desconectar y programar.
29
Proasdinientos PgUp y PgDn: Son los procedimientos utilizados
para navegar entre la lista completa de dispositivos dentro de la
etapa de selección. La lista completa de dispositivos está
determinada por el número de estos últimos que se encuentren dados
de alta y registrados en el archivo índice. Estos procedimientos
permiten extraer de dicho archivo 16 instrumentos a la vez y
permitir que sean agregados a la lista de seleccionados para su
posterior programación. Cuenta con un mecanismo de validación para
el caso de que el fin de archivo sea encontrado antes de leer 16
unidades de información referente a 16 instrumentos. Estos
procedimientos actualizan también el despliegue en pantalla de la
información que está siendo extraída del archivo índice permitiendo
la navegación, a razón de 16 dispositivos a la vez, a través de la
totalidad del archivo índice. Se auxilian de los procedimientos
ResetConnectedDevices y Readselections descritos líneas abajo.
Procedimiento InitialSetUp: Utilizado para colocar una
pantalla conocida de arranque para la etapa de selección, este
procedimiento inicia por colocar los encabezados pertinentes en las
ventanas destinadas a ello y %argar8' los primeros 16 dispositivos
que representan la selección inicial y a partir de la cual se puede
iniciar la navegación a través del archivo índice así como la
selección de los dispositivo a utilizar en la sesión de
programación.
Proasdimiento ReadSelections: Este procedimiento es utilizado
para extraer del archivo índice la información relativa de 16
dispositivos. Dicha información es pasada a variables temporales
para su uso en la etapa de selección, validando el fin de archivo
en caso de que éste se presente antes de que se puedan leer los 16
registros correspondientes a igual número de instrumentos.
Proceüimiento Connect: Por medio de este procedimiento, se da
al usuario una representación gráfica y lógica de los instrumentos
que han sido seleccionados para ser programados en la siguiente
etapa de ejecución del PC488C. Se auxilia de las funciones Col y
Ren para desplegar en forma gráfica la conexión al GPIB y que dicho
dispositivo está siendo habilitado para ser programado.
Procedimiento Disconnect: Este procedimiento realiza la
función contaria a la del procedimiento anterior, es decir, elimina
la representación gráfica y lógica de la conexión de un dispositivo
para su programación a través del GPIB. Para actualizar la
representación gráfica de la selección se auxilia del procedimiento
ResetConnectedDevices.
Ounaiones Col y Ren: Son dos funciones utilizadas para el
cálculo de los parámetros gráficos que permiten representar la
conexión de un dispositivo. También es utilizado para la
desconexión del algún dispositivo mediante el procedimiento
Disconnect.
30
BosetConnectedDevicee: Este procedimiento es el encargado
najustaro*las conexiones gráficas de los dispositivos al momento
ser desconectado alguno. Por medio de este procedimiento
restablecen las conexiones de los dispositivos seleccionados y
limpian las de los dispositivos que han sido deseleccionados.
de
de
se
se
Proaedimiento Seestatus: Este procedimiento es el que se
encarga de preparar la pantalla de despliegue donde se llevarán a
cabo las tareas de verificar y/o modificar los datos relativos a la
dirección de algtin dispositivo, así como la tarea de seleccionar un
dispositivo para programarlo mediante el envlo de sus códigos de
operación. Para realizar ésto, se implementa un lazo o ciclo en el
cual se verifican las teclas de cursor, utilizadas para la
selección, y las teclas <F1> para observar el estado del
dispositivo, <F2> para modififcar los datos, <F3> para terminar y
<F4> para pasar a la etapa de programación del dispositivo
seleccionado. Se auxilia de los procedimientos UArrow, DArrow,
LArrow y RArrow para la selección, de ShowAddress y ChangeAddress
para la verificación y modificación de los datos de dirección y de
ProgramDevices para la etapa de programación.
Proaedimiento ShowAddrese: Utilizado para desplegar una
ventana que muestre la información relativa a la dirección del
dispositivo, se auxilia de los procedimientos AddressLayout y
Translations descritos anteriormente.
PrOaedbIieBtO ChangeAddrees: Este procedimiento tiene las
funciones de habilitar la modificación, en cualquiera de los tres
formatos dados, de la dirección asignada a un instrumento en
particular. Permite la selección de uno de los formatos y hace un
llamado a la rutina que efectúa los cambios en dicho formato.
Dichas rutinas se listan a continuación.
Procedimiento ChangeDec: Este procedimiento permite modificar
la direción de un dispositivo dado en el formato decimal. Permite
elegir si el cambio es temporal o permanente, además de validar la
entrada de datos.
Procedimiento ChaBgeHeX: Con las mismas funciones y atributos
que el procedimiento anterior, éste es utilizado para el formato
hexadecimal.
Procedimiento ChangeSwitches: Este procedimiento es utilizado
para modificar la representación gráfica correspondiente a los
switches de dirección de manera análoga a la de los dos
procedimientos anteriores. Sólo que éste en particular hace uso de
un procedimiento adicional que es el BinaryToDecimal.
Oroaedimiento BinaryToDecimal: Este procedimiento auxilia al
anterior en la conversión de la dirección en formato binario a
formato decimal para poder realizar las transferencias a los tres
formatos utilizados en el programa.
31
Proaadimiento UpdateIndexFiler Por medio de este procedimiento
se logra hacer la modificación de la dirección en forma permanente,
es decir, se actualiza el archivo índice con la nueva información
de dirección.
PrOCOdimientO ProgramDevices: El llamado a este procedimiento,
permite al usuario tener, en pantalla, la lista de las funciones
que puede realizar el dispositivo seleccionado, elegir una de ellas
y mediante un llamado a la rutina de ensamblador de env dat
realizar la programación de dicha función en el instrumento en
cuestión. Se auxilia del procedimiento ReadFunctions descrito
llneas abajo.
Proaedimiento ReadFunctions: Este procedimiento localiza el
archivo de dispositivo pertinente y lee la lista de funciones, así
como sus códigos de operación, para preparar una posible
programación remota de dicho instrumento. Valida la lectura del
archivo para evitar encontrar el fin de archivo antes de terminar
de desplegar la lista completa de funciones.
De esta manera han quedado descritas las funciones que llevan a
cabo cada uno de los programas desarrollados para implementar el
sistema PC488. Han sido desglosados los procedimientos y funciones
elaborados para que los programas ralizaran dichas tareas y
expuestos a través de diagramas de flujo que delinean la forma de
operación de los mismo. En el capítulo siguiente se recopila una
sesión de programación con un dispositivo y se describe cada etapa
de la sesión mediante la presentación de las pantalla mostradas al
usuario y un texto asociado a la misma.
Procadimiento Kbdclear: Este procedimiento es una rutina en
ensamblador utilizada para limpiar el área de entrada del teclado.
Esta área de entrada del teclado es una pequeña memoria que
almacena las teclas que el usuario va presionando, y ésta rutina
tiene como función eliminar cualquier carácter almacenado en dicha
área para los casos en que se sobrepasen l o s limites de caracteres
de un campo de captura de datos.
32
Capítulo 4
Sesión de Trabajo con el PC488
4.1
Introducción.
En este capítulo se describe una sesión tfpica de trabajo con el
sistema PC488. Se describen las actividades que realiza el usuario
al utilizar el sistema y, mediante figuras tomadas de la pantalla
de despliegue, se muestra el comportamiento de los programas a las
acciones del usuario. A l utilizar el sistema por primera vez, se
necesita, obviamente, dar de alta al o los dispositivos y por lo
tanto se debe hacer ésto mediante el programa PC488A y
posteriormente llamar al PC488C para llevar a cabo la programación.
En base a ésto se describe primero la sesión de trabajo con el
PC408A y luego con el PC488C.
4.2
8esi6n de Trabajo con el
PC488A
En la figura 4.1 se muestra la pantalla de presentación del
programa PC488A, mostrando las opciones de presionar la tecla <F1>
para desplegar la ventana de instrucciones o la tecla de <ENTER>
para entrar directamente al programa. La ventana de instrucciones
mencionada se puede observar en la figura 4.2, donde además se
indica la forma en que deben de prepararse los datos para ser
introducidos al programa. En la figura 4.3 se tiene una ventana de
advertencia que aparece cuando no se tiene el archivo índice de
dispositivos, que es el caso de cuando se utiliza por primera vez
el programa.
33
En la figura 4.4 se muestra la pantalla inicial de captura de
datos relativos al dispositivo. Esta información es la que se
almacena en el archivo índice, en la estructura descrita en el
Capítulo 3, con el siguiente formato: nombre del dispositivo, para
efectaos de identificación del mismo; dirección, para su acceso a
través del GPIB; número de funciones, que representa las funciones
que puede realizar el dispositivo; código de EOS, que en algunos
dispositivos es utilizado para ‘terminar, el comando. Este campo
fue agregado en previsión de dichos equipos, ya que si no se envía
ese código el comando no es reconocido por el dispositivo. Un caso
particular de estos dispositivos es el del Generador de Nivel PS-19
de Wandel & Goltermann con que cuenta el Departamento de
Comunicaciones, ya que como ‘terminador’ del comando necesita
enviar un carácter I ,I (ASCII 44). En el caso de que el dispositivo
que se está dando de alta no requiera tal terminador, se debe
teclear un espacio seguido de la tecla de <ENTER>.
Al terminar la introducción de estos datos, se despliega una
ventana cuya función es validar los datos recién introducidos
mediante una interrogación directa al usuario de si los datos estan
correctos. En caso negativo se repite el ciclo de captura,
limpiando previamente los campos respectivos. Cabe hacer mención
que se valida la existencia previa de algún dispositivo, es decir,
si se intenta dar de alta un dispositivo con un nombre que ya
exista dentro del sistema, el programa desplegará una ventana de
advertencia como la mostrada en la figura 4.5 indicando que ya
existe un dispositivo identificado con ese nombre. Se indica
además, que se puede utilizar un nombre distinto si se desea dar de
alta de cualquier manera al dispositivo.
Una vez validados los datos anteriores, se muestra al usuario
una pantalla, ver figura 4.6, que muestra los datos recién
introducidos así como la representación de la dirección en los tres
formatos utilizados. Adicionalmente se muestra una segunda ventana
para introducir los datos relativos a las funciones del dispositivo
y sus respectivos códigos de operación, y un indicador en la parte
superior que muestra el número de función, del total del
dispositivo, que está siendo capturada.
En la ventana de captura se observan los campos destinados a
recibir los datos de nombre de la función y código de la función,
los cuales estan validados hasta un número límite de caracteres (25
y a respectivamente), este límite está representado por las áreas
sombreadas y , en caso de que se exceda, se despliega la ventana de
advertencia que se observa en la figura 4.7, para posteriormente
limpiar dichas áreas y volver a capturar esos datos. Una vez que
los datos han sido introducidos se interroga al usuario a fin de
conocer si fueron introducidos correctamente o no, como se puede
observar en la figura 4.6.
34
En la figura 4.8 se tiene la pantalla que el PC488A muestra al
usuario una vez que se han introducido los datos relativos a las
funciones y sus códigos de operación. En el caso del ejemplo se han
completado 7 funciones de un total de 7 con que cuenta el
dispositivo que está siendo dado de alta. El PC488A, en este punto,
proporciona al usuario la posibilidad de dar de alta otro
dispositivo. En caso de que as€ se desee se repite el ciclo de
captura de datos, figuras 4.4 a la 4.8, y en caso negativo se da
al usuario la posibilidad de una entrada inmediata al programa de
control o abandonar definitivamente el PC488A, como se observa en
la figura 4.9. En caso de que se desee entrar directamente al
programa de control el PC488A inicia por indicar al usuario que
está cargando la aplicación respectiva, ver figura 4.10, y
transfiere el control al PC488C. En caso negativo el PC488A da por
terminada la sesión y regresa el control al sistema operativo.
En caso de que el usuario desee abortar el programa por
cualquier motivo, se ha dado la opción de presionar la tecla < E C O
en cualquier momento de la sesión, y el programa responde con una
ventana, mostrada en la figura 4.11, en la que se le solicita ai
usuario confirmar o negar la salida del PC488A.
PROGRAilA DE ALTA DE EQUIPOS
PLLSIüIII G I )
P/IIIsIRuccIonls
ü ( I H I l R ) PKüWIIWUOR
COWIROL D I IWI1RUiiliilDS PROGRlliiOlLEI iilDIIWII: It SUI IEEI-$88
Figura No. 4 . 1 8esi6n de Trabajo con el PC488A.
35
Instruction
htcutncq
lnpi iudt
I
I
I
Units
ntrti
~iitntrtz
I
Figura
no.
4 . 1 8eni6n de Trabajo con e l PC488A.
(Cont..)
Figura No. 4 . 3 8eni6n de Trabajo con e1 PC488A. (Cont..)
36
Figura Ro. 4.4
Sosi& de Trabajo con el PC4üüA. (Coat...)
.
.
.
.
.
37
Figura lo. 4.6 Seai6n de Trabajo con el PC488A. (Cont..)
I
I
I
30
P i g u r i So. 4.8 Sesi6n de T r a b a j o aom -1 PC48üA. ( a n t . . )
P i g u r i No. 4 . 9 Smsi6n do Trabajo con e l PC48üA. (Cent..)
39
UN HOHEHTO POR FAUDR
CAR6ANDO EL ARCHIUD P C W C
Figura *o. 4.10 sesi611dm Trabajo con el ~ ~ 4 8 8
(cant..)
~ .
40
4.3 Boeióa do Trabajo con el PC488C.
La figura 4.12 se muestra la pantalla de presentación del
PC488C, mientas que la figura 4.13 la pantalla inicial de trabajo
del PC408C. En esta pantalla se muestran los 16 primeros
instrumentos que se encuentren dados de alta en el sistema, y en la
ventana de comandos ( parte inferior de la pantalla ) , se muestran
las teclas que tienen asignada una función especifica y que son:
<F1>, conectar; <F2>, desconectar; <F3>, continuar; PgUp y PgDn,
para avanzar a la siguiente o retroceder a la anterior pantalla;
las teclas de cursor, para moverse en la pantalla; <F10>, ayuda.
La acción de conectar tiene como objetivo hacer una
representacion gráfica de la selección de un instrumento a ser
sujeto de programación, como se explicó anteriormente en el
capítulo 3. La acci6n de desconexión realiza la tarea contraria a
la anterior, mientras que la acción de continuar permite pasar a la
siguiente etapa dentro del programa PC488C. Por medio de las teclas
de PgUp, PgDn y las teclas de cursor se provee al usuario con un
mecanismo de navegación que le permite seleccionar, a todo lo largo
del archivo índice, los dispositivos que requiera programar o
utilizar en una sesión dada.
En la figura 4.14 se representa la entrada del usuario
seleccionando los dispositivos HP-1, HP-4, HP-6 y HP-7. En este
último dispositivo se aprecia el cursor, en forma de un bloque que
resalta la posición actual, que permite al usuario verificar su
posición dentro de la pantalla. En la figura 4.15 se despliega la
ventana de ayuda, misma que muestra la lista de teclas de comando
y las acciones que realizan cada una de ellas.
La figura 4.16 muestra la segunda etapa del PC488C, en la que
sólo se despliegan en pantalla los instrumentos que hayan sido
seleccionados en la etapa inicial, en el presente ejemplo: HP-1,
HP-4, HP-6 y HP-7. En la ventana de comandos de dicha pantalla se
muestran las teclas y las funciones asignadas para esta etapa del
programa y son: < F D , para mostrar el estado actual del
dispositivo; <F2>, para cambiar dicho estado; <F3>, terminar o
salir del programa; <F4>, programar el dispositivo apuntado por el
cursor y <F10>, para desplegar la ventana de ayuda.
En la figura 4.17 se muestra la ventana que es desplegada cuando
el usuario solicita la opción de ayuda, y en dicha ventana se
listan las teclas asignadas y sus respectivas funciones dentro del
programa dependiendo de que etapa del mismo se esté ejecutando.
Esta Gltima parte se refiere al hecho de qué se tiene una ventana
de ayuda para cada una de las etapas del programa donde se
reasignen las funciones de las teclas.
41
En la siguiente figura, 4.18, se observa la selección del
primero de ellos y la ventana que se despliega, a la derecha de la
pantalla, cuando se selecciona la opción de mostrar el estado del
dispositivo. En dicha ventana se muestra el nombre y la dirección
del dispositivo apuntado por el cursor. La opción de cambiar el
estado de algún dispositivo se ilustra en la figura 4.19 donde se
observa la ventana de estado del dispositivo y una ventana
adicional, en la parte inmediata superior, con las indicaciones
necesarias para realizar algún cambio. Además en la ventana de
estado del dispositivo se aprecia un cursor en forma de flecha que
permite al usuario elegir, de entre los 3 formatos de la dirección,
cuál es el que desea utilizar para realizar el cambio. Dicho cambio
es automáticamente reflejado en los otros formatos restantes.
Para el caso de que el usuario eliga realizar el cambio en el
formato decimal o hexadecimal, el campo correspondiente es borrado
y abierto a la entrada del teclado, con la debida validación de la
entrada. Cuando se elige hacer el cambio en el formato de
interruptores o switches de configuración de dirección, el PC488C
despliega en la ventana de estado un área que representa a los 5
switches de dirección, con las 5 posiciones en blanco y un mensaje
en la parte inferior solicitando al usuario el estado lógico de
cada uno de los switches. Esto se puede observar en la figura 4.20,
donde se representa el cambio de dirección de un dispositivo. Una
vez actualizado el valor de la dirección se interroga al usuario si
desea que ese cambio sea permanente, es decir, si se elige que sea
permanente, el archivo índice es actualizado con el nuevo valor y
si no el cambio es temporal y válido sólo durante la sesión de
trabajo actual.
Finalmente, en la figura 4.21 se tiene la pantalla donde se
despliega la lista de funciones del dispositivo apuntado por el
cursor. Esta lista es desplegada cuando se selecciona la Opción de
programar y permite al usuario el envío de los códigos de
programación de la función seleccionada, esto último lo realiza el
PC488C de manera transparente. En esta opción, además, se permite
al usuario introducir un dato que sería el valor numérico de la
función que desea realizar, es decir, si selecciona la opción de
frecuencia en un generador, en este campo él introduciría el valor
que requiera para su propósito particular. Al terminar de
ejecutarse ese comando remoto, el sistema vuelve al estado de la
figura 4.16, donde el usuario est6 en posibilidad de seleccionar
alg6n otro dispositivo para su programación.
1
A s l , en este capstulo, se ha descrito de manera general una
sesión típica de trabajo con el sistema PC488, de lo que se puede
observar que es fácil de utilizar y realiza un manejo adecuado
tanto del bus como de los instrumentos. Esta facilidad de uso es la
principal ventaja del sistema, sin embargo, sólo se pueden
implementar sistemas de medición sencillos ya que la estructura del
PC488 sólo le permite programar función por función e instrumento
por instrumento lo que limita su capacidad operativa.
42
PROGRfiHA DE CONTROL DEL G P I B
F i g u r a Yo. 4 . 1 2 Sasi611 de T r a b a j o con e l PCOBBC.
1-1
I C O I f C I Y I t . DfSCühiClRk f3: COIIIIUkR
"]."'I
PgUp: IILRiüR tfh: llW0
,'v]
t&++
'NOUiR
118' bVUDR
F i g u r a Yo. 4 . 1 3 8esi6n de T r a b a j o con el PC488C. ( a n t . . )
43
I
P.1
I
Sigura No. 4.14 sesión dm Trabajo con 01 PC488C. (Cant..)
?igura M. 4.15 Seai6n de Trabajo con 01 PC488C. (Cant..)
44
?iguri N o . 4 . 1 6 Saaión da Trabajo con el PC488C. ( a n t . . )
45
B
Figura iio. 4.18 Sa8i6n da Trabajo con a1 PC488c. (Cont..)
Figura M. 4.19 Saai6n do Trabajo con a1 PC488C. (Cont..)
46
F i g u r a lo. 4.20 sesión de T r a b a j o con el PCOBBC. (con+..)
no: nwn
I
~~
~
~
F i g u r a iio. 4 . 2 1 sesión de T r a b a j o con e1 PC488C.
47
Capítulo 5
Conclusiones
5.1
conclusiones
En este trabajo de tesis se planteó el desarrollo de una
interfaz de usuario para implementar, de una manera más sencilla,
un sistema de instrumentación a través del GPIB y controlado por
una PC. Se expuso la estructura de la interfaz, se dio la
descripción, tanto general como funcional, de los módulos que la
componen, as€ como la descripción de las rutinas constitutivas de
cada uno de ellos. Por Gltimo, se describió una sesión de trabajo
tipica con el sistema desarrollado con las gráficas capturadas de
la pantalla de la PC, lo que permite tener una visión exacta de lo
que se verla en la sesión de trabajo real.
De las pruebas realizadas se puede concluir que el sistema
desarrollado mejora, considerablemente, el uso y el manejo de la
tarjeta de interfaz así como la programación remota de los
dispositivos interconectados al GPIB, aunque sin llegar al grado
máximo de funcionalidad. Lo anterior dado que la rutina de
recepción de datos, desde el instrumento a la PC, sólo se limita a
desplegar el mensaje recibido sin realizar mayor interpretación del
mismo. Esto se debe a que cada dispositivo formatea los datos de
una manera particular por lo que se tendrían que desarrollar
módulos especiales para cada instrumento, lo que requerir€a que al
dar de alta algún instrumento el programador del sistema tuviera
que diseflar una rutina espec€fica pasa la interpretación de los
datos, de acuerdo al formato utilizado por el instrumento.
48
Desde el punto de vista de programación y control de los equipos
conectados al sistema de instrumentación, se observa que con el
sistema PC488 se tiene un acceso y una facilidad de programación
mucho mayores a las ofrecidas por el sistema inicial (tarjeta de
interfaz y programación en ensamblador), ya que éste Gltimo,
pannitía el manejo y programación de un dispositivo o equipo de
medición mediante un programa en lenguaje ensamblador dedicado. El
término dedicado se refiere al hecho de que el programa en
ensamblador, bajo dicho esquema, debía contener los códigos de
programadon del dispositivo y realizar el manejo del protocolo de
la interfaz en la secuencia requerida. Lo que implicaba que el
usuario debía tener un amplio conocimiento tanto del hardware como
del software asociado al sistema de interfaz PC/iEEE-488 como del
equipo que deseara controlar.
Con el sistema PC488 el usuario, para fines de control y
programación de dispositivos, no necesita conocer el GPIB, ni el
hardware de interfaz ni tampoco los códigos de operación del
dispositivo; lo Gnico que necesita saber es que funciones de las
que puede realizar el dispositivo a usar, son las que desea
utilizar. De esta manera el sistema PC488 cumple con su objetivo
primordial, de facilitar el uso del sistema de interfaz a los
usuarios con conocimientos mínimos acerca de éste.
Para fines de evaluación del sistema desarrollado, cabe hacer
mención que en la actualidad existen en el mercado un nGmero
considerable de productos que involucran hardware y software para
la implementación de sistemas de instrumentación, medición y10
monitoreo. Estos sistemas van desde los más básicos, con sistemas
adquisitores de datos y una programación muy orientada al hardware
de adquisición; pasando por los sistemas que utilizan una interfaz
estándar, que en algunos casos es el mismo GPIB, con un software
limitado pero eficiente que requiere cierto grado de conocimienFo
por parte del usuario, hasta llegar a los grandes sistemas que
utilizan una o más interfaces estándares y que cuenta con un
software muy avanzado que permite la creación de instrumentos
virtuales con las facilidades de manejo que ésto implica.
Los instrumentos virtuales son una herramienta de programación
que le permite al usuario definir y, de hecho construir, en la
pantalla de la PC una réplica de la carátula de control del
instrumento que desea utilizar permitiendole asignar perillas,
botones, controles que en un momento determinado pueden recibir
accidn por parte del usuario, es decir por ejemplo, cambiar una
perilla de una posición a otra y que dicha acción sea interpretada
por el software y la traduzca a códigos de control que finalmente
colocarán al instrumento en los nuevos valores fijados, reflejando
las acciones del usuario en el "instrumento" virtual en la pantalla
de la PC.
I
49
De tal forma, comparando el sistema desarrollado con los
sistemas comerciales, el sistema pC488 se situaría a un nivel
intermedio. Esto debido a que el PC488 no demanda del usuario una
programación directa delhardware, el límite inferior de la escala,
pero no llega al nivel de instrumentos virtuales, que son el límite
superior en la escala de funcionalidad de estos productos.
5 . 2 Trabajo a futuro
Como trabajo a futuro queda el desarrollo de software adicional
que le permita al sistema realizar una mejor interpretación de los
datos recibidos, quedando como una buena alternativa la creación de
librerías de instrumentos que permitan llevar a cabo la
interpretación antes mencionada.
Por otro lado, otra opción que elevaría el grado de
funcionalidad del sistema PC488, sería el desarrollo de software
enfocado a la generación de archivos de datos en formatos estándar
a fin de poder utilizar la información y los datos recabados en
otros paquetes de software tales como graficadores, lo que
aumentaría considerablemente los beneficios otorgados por el
sistema Pc488.
Sólo resta decir que el trabajo a futuro a realizar en este tipo
de sistemas, debe encaminarse hacia el desarrollo de instrumentos
virtuales, que se perfilan como el medio óptimo de programación y
control de sistemas de instrumentación, medición y monitoreo por
medio de la computadora personal.
50
Bibliografía
1.2.3.-
4.-
ANBIIIEEE STD 488.1-1987
IEEE Standard Digital Interface for
Programmable Instrumentation.
jbPD7210 General Purpose Interface Manual
NEC electronics
Designig the User Interface: Strategies for
Effective Buman Computer Interaction
Ben Shneiderman
Addison-Wesley, 1987
80386/80286 Programación en Lenguaje Ensamblador
William H. Muuray, Chris H. Pappas
McGraw-Hill, 1987
5.- Turbo-Pascal Programmer's
Borland International
6.-
7.8.-
9.-
Reference Manual
Turbo-Graphix ToolBox €or Turbo Pascal
Programmer's Reference Manual
Borland International
Elegant Linkage
Richard Halpern
PC Tech Journal, Marzo 1987
Mapping PC Addres Space
Augie Hansen
PC Tech Journal, Marzo 1987
The New Peter Norton Programmer's
to the IBM PC ti PSf2
Peter Norton, Richard Wilton
Microsoft Press, 1988
51
Guide
Apéndice
Al
A2
A4
A5
A6
A7
UDOulb.Uk
A8
A9
A10
A l1
A12
A13
A14
F a I:- O ID n do
A15
I
A16
A17
VU
I
:-
A18
A19
AZO
A2 1
A2 2
A23
A2 4
RIcaupi:-D.
Fa /:-I ID I S &
A2 6
A2 7
A28
CSEO
mooi:
Om
DX.N
DX.AWR.MODE
ow
nx,a
ow
DXAL
MOV
MOV
AI..)IH
MOV
DX.AUXY.MODE
:PROGRAMA RKtilSTRO A
MOV
ALUH
;PROGRAMA r O K T * m R
MOV
11-m
ow
1,X.A.L
;PROGRAMA RE~~ISTRO
MOV
AI-OBiH
O w
D X A
:DFSIUBIUTA R f t i W 7 R O PP
MOV
Al..mH
n
DX.N
MOV
DX.AWRF>WI
;F.%RIBE DIRFPCION MAYOR
MOV
11.01H
OUl
OW
IIX.AI.
YOV
AI-OmH
;m.mAnn.mA IIIRHXION
om
MENOR
,*.AI.
MOV
nx.mn.oF.sr
MOV
O m
MOV
MOV
AI..ODH
1IX.N
IIX;AllXY-MODE
A1,XPOWER ON
1lX.N
N..XMAB-LFC
:tCR> MARCA FIN DECADENA
om
MOV
om
WlAY
nx.AL
cx.m
MOV
UMP
üFJAY
MOV
AI3RUT-IFC
MOV
DX.AUXY.MODE
A29
A30
c
.
CONWADOJ AL BUS
FALSE%
MOV
IN
TEST
JZ
TFSTTA
MCU
RET
ox,mnR.srAi
ALDX
AI..TFSTBllTA
FAIJEl
PIDP
PROC
PllSH
Ax
m.omii
AND
ALWI
CMP
IZ
ow
Ax
FQP
ANO
AI.OFH
Ai.omi
Ai..Wll
SUB
01m
ASCII
AWRFS..
AND
RkT
POP
AND
R W
Ax
ALOFll
FHDP
PSOC
CAU
MOV
CAII.
uov
1111.
MOV
MOV
CAU
OR
.
TI1FT.,CO
AI..IBP+III
ASCII
n.wn
ALCI.
BLAL
m.(np+ 1.
MCII
N..BI.
A3 1
0X.DATA-OUI'
MOV
om
CMP
IS
CAU.
ox.&
ALJPH
T*U<OI
wv
ALZIH
üX.N
Ovll
Ovl
TAUQI:
IMP
m-m
rm.m
CAU.
wov
NAIH
m.AL
W.TA
WI
OVTI:
CAU.
MOV
om
miAL
WP
u
POP
POP
POP
OX
BP
SI
M
POP
ADDPFSS
me0
IIX.AUXY.MODE
ALXOOTO.SBY
MOV
IC7
m
ENW
MM
M D ADD1
A32
CSEn
SEWDI:
PVJH
Ds
wsn
JS
BP
BX
Ax
BP.SV
SEND
PUSH
PUSH
WSH
MOV
IMV
=-DO
FAIJEI:
moc
PUSH
U
MOV
TEÍT
=.DO
SMD
J7.
pop
REr
DX
N.DX
DX.-STATI
ALTECTBrn
FUE1
DX
MOP
moc
CAU
MOV
MOV
OVI
CAU
MOV
OW
CAU
MOV
OW
CAU
MOV
OVT
CALL
MOV
OW
CALL
MOV
OVT
CALL
MOV
OW
CALL
MOV
Olrr
<:All-
MOV
om
<:u
MOV
ow
CALL
MOV
A3 3
OUT
CAU
MOV
OUT
CAU
m.u
m.w
ALIBP+24I
DX.M
m-m
MOV
OUT
MOV
m.u
OUT
m.u
uov
ALIBP+YI
DX.AUXY.MOD6
UJIsermi
A34
A35
OW
CAU
CAU
MOV
MOV
OW
CAU
MOV
OUl
MOV
MOV
OVI
MOV
OUl
Po?
Po?
POP
Po?
Po?
PPI
*U~.clROL
DX.N
Ax
Bx
BP
ss
m
A36
A3 7
m
n
POP
m.m
REC
M
FNsW
m
WDP
moc
CAU
MOV
MOV
OUT
m.m
0X.A-MODE
ALXTCIR0L.A
DX.N
mcic
CAU
CAU
m.m
MOV
DX.DATA.OUT
&uNLLíIw
Mov
OUT
DX.N
MOV
MOV
DX.AUXY~MODE
m-m
CAU
&U5l'FN
m.AL
OUT
CAU
-
MOV
MOV
OUT
COmuE:
MOV
CAU m - m
DX.DATA m
DLN
MOV
AIlm
MOV
POP
POP
POP
POP
u
DX.AUXY-MODE
&XrnO.SBY
DX.N
Bx
UP
s
RET
WDI
M
A38
WI:
A39
Descargar