Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Prólogo
Un sistema de instrumentación es una estructura compleja que agrupa un conjunto de
instrumentos, un dispositivo o sistema en el que se mide, unas conexiones entre estos elementos y por
último, y más importante, unos programas que se encargan de automatizar el proceso y de garantizar
la repetibilidad de las medidas. El objetivo final, que no debe perderse de vista, del proceso de
automatización de las medidas es el aumento de la calidad. Esta calidad puede entenderse desde el
punto de vista del usuario del producto o del servicio que ha pasado por el proceso de prueba o desde
el punto de vista del ingeniero que desarrolla, pone en marcha y mantiene el sistema de
instrumentación que realiza este proceso de prueba, y que cada vez con mayor insistencia debe
ajustarse a estándares internacionales como la norma ISO 9000.
Para no perder generalidad y para enmarcar adecuadamente los temas centrales del libro
hemos dedicado los dos primeros capítulos a describir los objetivos, las estructuras y las funciones de
los distintos tipos de sistemas de instrumentación existentes. El resto de capítulos se centran ya en
sistemas construidos alrededor de buses estándar, en concreto IEEE-488 (conocido también por GP-
IB o HP-IB) y VXI, describiendo la arquitectura y funcionalidad de los mismos, las formas de
programarlos y la forma genérica de las aplicaciones informáticas que facilitan la tarea de desarrollar
los programas de control y que conocemos habitualmente como instrumentación virtual.
La descripción de los buses estándar de interconexión de instrumentos que suelen hacer los
textos de instrumentación es casi siempre muy somera (muchas veces por limitaciones de espacio),
por lo que se limita a una descripción mecánica y eléctrica y a enumerar las características
funcionales más relevantes. Aquel ingeniero interesado en conocer más profundamente el
funcionamiento del sistema, ya sea como usuario avanzado o como diseñador de aplicaciones, no
tiene otra alternativa que recurrir al texto de las normas. En el presente libro hemos intentado una
descripción rigurosa pero didáctica de los estándares. Aquel que necesite asegurar que su diseño, ya
sea un equipo o una aplicación informática, cumple con el estándar no tendrá otro remedio que acudir
a él, pero el usuario avanzado que necesita comprender las razones del comportamiento de una
determinada aplicación encontrará en este texto el material suficiente para ello o para acudir a la parte
del estándar requerida con suficiente base como para leerlo con provecho.
Este texto se ha escrito pensando en estudiantes de ingeniería, de ciclo corto o largo, que
estén cursando materias de instrumentación o cursos de laboratorio con instrumentos controlados de
forma automática. También será útil a aquellos profesionales que trabajen con sistemas automáticos
de medida y que deban desarrollar aplicaciones de bajo nivel, no soportadas o suministradas por los
fabricantes de los equipos o del entorno informático de aplicación.
Los autores
Septiembre de 1995
Índice
Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Libros y artículos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Normas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Catálogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Bibliografía
Libros y artículos
[COO95] COOMBS, C.F. JR. Electronic instrument handbook, 2a. Edición, Nueva York,
McGraw-Hill, 1995.
Normas
ANSI/IEEE Std 488.1-1987, IEEE Standard Digital Interface for Programmable Instrumentation The
Institute of Electrical and Electronics Engineers, Inc, 1988.
ANSI/IEEE Std 488.2-1992, IEEE Standard Codes, Formats, Protocols and Common Commands;
The Institute of Electrical and Electronics Engineers, Inc, 1988, 1993.
ANSI/IEEE Std 728-1982, IEEE Recomended Practice for Code and Format Conventions for use
with ANSI/IEEE Std 488-1978; The Institute of Electrical and Electronics Engineers, Inc, 1982.
IEEE Std 1014-1987, IEEE Standard for a Verastile Backplane Bus:VMEbus; The Institute of
Electrical and Electronics Engineers, Inc, 1987.
IEEE Std 1155-1992, IEEE Standard VME bus extensions for Instrumentation:VXI; The Institute of
Electrical and Electronics Engineers, Inc, 1992.
Standard Commands for Programmable Instruments:SCPI, SCPI Consortium, La Mesa (CA), 1991.
Catálogos
National Instruments, Instrumentation reference and catalogue 1995, Austin, Texas 1994.
Data Translation, 1993 Product Handbook: Data Acquisition and Image Procesing,
Massachusetts, 1993.
Hay otros ejemplos donde la cantidad de información no es tan grande pero para poder
asegurar la exactitud o la repetibilidad requerida en las pruebas es necesaria una sistematización de
los ensayos que solo puede asegurarse, con un tiempo y un coste razonable, si se realiza de forma
automática.
Desde el punto de vista del técnico, aumentar la calidad de una medida puede constituir
simplemente en el aumento de la velocidad de adquisición o procesado de los datos, el aumento de la
exactitud o la disminución del coste. Así deberíamos incluir aquellos sistemas destinados a adquirir
conocimiento del mundo físico para contrastar hipótesis sobre el mismo, el uso de los cuales solo
repercutirá en la calidad de un producto o servicio de forma muy indirecta, o bien los sistemas de
control donde, tradicionalmente, se ha dado más importancia a los algoritmos que se usaban para
decidir las acciones a seguir que a la instrumentación usada para adquirir los datos con que se
alimentan estos algoritmos.
Fig. 1.2 Sistema de prueba dedicado de alta velocidad para entornos de fabricación HP84000 (Hewlett-Packard)
Una forma de realizar un sistema de instrumentación consiste en diseñar cada una las partes
que lo componen a medida de la aplicación. Este proceso acaba en un sistema, que tiene la estructura
vista en el apartado anterior, y que normalmente conocemos como instrumento. En el caso de un
sistema de prueba automático (ATE), el instrumento finalmente diseñado (incluido el ordenador)
puede tener un volumen considerable, como el sistema de la figura 1.2. No obstante, se le continúa
considerando un instrumento aislado más que un sistema de instrumentación. La ventaja de esta
aproximación es la adecuación perfecta entre instrumento y aplicación. La desventaja es el coste y la
incapacidad de reconfiguración para cubrir nuevas necesidades. Por este motivo los sistemas
dedicados sólo son factibles económicamente si cubren una necesidad suficientemente amplia que
permita a sus diseñadores/fabricantes producir una cantidad significativa, y aun así su precio puede
resultar muy elevado. Es del dominio público el hecho que durante la década de los 70 los circuitos
integrados digitales estaban limitados a 40 terminales porque los equipos de prueba que se usaban
tenían previsto como máximo este número de entradas y cambiarlos suponía un coste excesivo. Esta
1.4 Aplicaciones
Las principales aplicaciones en este campo son la verificación del diseño, las medidas de
prestaciones y los ensayos ambientales. Los sistemas de verificación de diseño son usados por los
ingenieros de diseño para comprobar los primeros prototipos del producto desarrollado. Son sistemas
con vida muy corta y niveles de automatización pequeños, donde los sistemas de tipo bastidor tienen
sus dominios. En estos entornos, la existencia de aplicaciones informáticas que permitan un
desarrollo rápido de la automatización de las medidas es un factor clave.
Estos sistemas se usan para asegurar que el producto que se construye cumple con las
especificaciones deseadas. En estos sistemas el factor clave es la velocidad puesto que limita la
Finalmente se suelen realizar pruebas funcionales con el producto ya acabado para determinar
que éste realiza la función para la cual fue diseñado. Es una prueba entrada/salida, es decir,
considerando el producto como una caja negra. Si el producto no supera la prueba no es posible, en
este estadio, saber cuál es el componente defectuoso y debe volverse a alguna de las pruebas
anteriores.
Las medidas de campo suelen realizarse para reparar productos que han dejado de funcionar o
no realizan su tarea a satisfacción del cliente. Dado que los sistemas de instrumentación necesarios
han de desplazarse hasta el SBP, el tamaño y el peso son factores muy importantes. Habitualmente
son instrumentos diseñados a medida. También en esta campo la técnica de Boundary Scan ofrece
grandes ventajas.
Normalmente será un ordenador con todos los periféricos típicos más las interfases necesarias para
controlar el sistema. A continuación pasamos a describir cada bloque en mayor profundidad.
BUS DE CONTROL
CONTROL
INSTRUMENTO INSTRUMENTO INSTRUMENTO
DEL BUS
SISTEMA DE CONTROL
COMUNICACIONES
SBP
En inglés se le denomina Device Under Test: DUT o también System Under Test:
SUT. Es el elemento que se mide con el objeto de caracterizar alguna o algunas de sus
cualidades. Puede ser desde un componente electrónico de 2 terminales -resistor,
condensador, etc- a un sistema de N terminales de entrada y M de salida.
Tal como se representa en la figura 2.1, el SBP puede ser un sistema que requiera una
programación o un control. Para ello hay que prever el disponer del bus adecuado para poder
reconfigurar de forma automática el SBP.
Es el sistema que establece la conexión eléctrica del SBP con el sistema de medida.
Para aplicaciones en control de producción suelen ser conjuntos de puntas de prueba (bed of
nails) contra los que se enfrentan las placas de circuito impreso a examinar. Las puntas de
prueba están constituidas por una parte fija más una móvil que gracias a un muelle tiene un
cierto recorrido y ejerce una presión dada. La parte móvil es la que establece el contacto
eléctrico con las pistas o los pines existentes en las placas de circuito impreso bajo prueba.
Para que el contacto sea estable mecánicamente y de baja resistencia las puntas de prueba
están acabadas normalmente en formas puntiagudas con un baño de oro o de rodio. La ventaja
de estos sistemas es la rapidez con que se establecen los contactos y que se puede acceder a
cualquier punto de la placa de circuito impreso.
- Conmutación
Este bloque es el encargado de direccionar las señales entre los instrumentos y los
contactos del sistema de fijación del SBP para excitar o medir, en función de la medida a
realizar, las entradas o salidas correspondientes del SBP. En algunos casos este sistema no
existirá o se reconfigurarán las conexiones de forma manual, reconectando los cables o las
puntas de prueba.
- Conexionado de señal
El conjunto de cables para conectar los instrumentos con el SBP es una de las partes
imprescindibles en un sistema de medida. Normalmente se realiza de una forma precipitada
utilizando cualquier tipo de cable que tengamos a mano. Sin embargo, este sistema puede
llevarnos a resultados totalmente falsos en algunas situaciones. La problemática del sistema
de conexionado estriba en los problemas que pueden surgir de diafonía, bucles de masa,
atenuaciones, desfases y reflexiones a alta frecuencia. En el apartado 2.3 se verán algunas
directrices para atacar estos problemas.
- Instrumentos
En muchos casos los SBP tienen que ser examinados bajo unas condiciones
preestablecidas de la alimentación o, incluso, en un margen dado de ésta. Para ello hemos
considerado la alimentación como una señal más a aplicar al SBP. En realidad el bloque de
alimentación de la figura 2.1 puede considerarse como un instrumento más del sistema de
instrumentación.
- Bus de control
- Comunicaciones
Cada día es más importante el integrar todos los sistemas que forman parte del
Fig. 2.2 Estructura en capas del software para el control de un sistema de instrumentación
En todos los casos, el utilizar un S.O. de uso general como puede ser UNIX, DOS,
OS/2 o MS-Windows permitirá disponer de más software comercial. Además, facilitará las
comunicaciones con otros ordenadores y su integración en redes locales.
Los controladores (drivers, en inglés) del bus de interconexión son las rutinas que
gestionan los recursos concretos del gestor del bus, normalmente una placa que se instala en
el ordenador de control. En el caso de un software bien estructurado éstas serían las únicas
subrutinas que se deberían modificar en el caso de que se sustituyese el controlador del bus o
incluso el tipo de bus de control.
- Controladores de instrumentos
Estas son las rutinas (drivers) que controlan los instrumentos conectados al bus de
control. Estas rutinas serán, por lo tanto, dependientes de cada instrumento. Normalmente se
presentan como un conjunto de funciones de alto nivel que permiten programar un
instrumento en concreto. La programación se realiza llamando a rutinas diferentes para cada
función o a una rutina general con un cierto número de parámetros.
Estos son los algoritmos que realizan la programación de los equipos para cada
medida concreta. Se basan en llamadas a los drivers de instrumento para la programación de
estos. Normalmente se utilizan programas escritos en lenguajes de alto nivel, o también
entornos de programación específicos textuales o gráficos. Idealmente en este nivel se
tendrían un conjunto de funciones que realizarían cada una de las medidas y devolverían los
datos adquiridos por los instrumentos una vez procesados.
Con lo visto hasta este momento se puede entender que, en un sistema automático de
medida, localizar, de forma manual, los posibles fallos puede ser muy costoso. Un mal
funcionamiento puede ser debido a problemas de comunicaciones, problemas en un
instrumento o problemas en el controlador y/o en su software. Por ello, los programas de
diagnóstico se hacen imprescindibles para localizar las causas de un mal funcionamiento del
sistema.
Este es el nivel más alto y se encarga de gestionar tanto los programas de prueba
como los datos obtenidos. Puede incluir sistemas de diagnóstico automático y
autoconfiguración. Aspectos clave en este nivel son: la interfase de usuario, la presentación
de datos, la exportación o los enlaces de datos a otros programas y las comunicaciones con
otros sistemas.
El soporte físico para el paso de señales entre los instrumentos y el SBP es lo que
denominamos como sistema de direccionamiento de la señal. Está compuesto, como mínimo, por los
cables y sus conectores (conexionado de señal) y también puede incluir etapas de multiplexado o
demultiplexado (conmutación) y sistemas para fijar el SBP.
Aunque se cumplan estos requisitos básicos aún pueden surgir problemas como son: diafonía,
bucles de masa, atenuaciones indeseadas, desfases y reflexiones a alta frecuencia. Para evitar estos
problemas es necesario estudiar el sistema de cableado y prestar atención a los siguientes puntos:
La etapa de conmutación es la que permite encaminar las señales hacia los instrumentos o los
puertos de entrada del SBP de forma adecuada para cada medida. Puede estar constituido desde un
sistema con relés individuales (figura 2.3.a) hasta un sistema basado en una matriz de interconexión
(figura 2.3.b) que permita cualquier combinación de conexiones.
Los conmutadores son los elementos básicos tanto de los multiplexores como de las matrices
de conexiones. Según la tecnología pueden ser de los siguientes tipos:
- relés de armadura
- relés de láminas (reed): secos o de mercurio
- interruptores de estado sólido: FET o CMOS
Las ventajas de los interruptores de estado sólido frente a los mecánicos son: menor volumen,
bajo costo y rapidez de conmutación. El mayor inconveniente es la resistencia serie del interruptor
cuando está cerrado.
Fig. 2.3 Conmutación utilizando un multiplexor (a) o por una matriz de conexión (b)
Según el número de contactos fijos y contactos móviles (polos) los relés se clasifican en:
Podemos clasificar los instrumentos, definidos como todo sistema que realice una
medida concreta, en dos grandes grupos: los instrumentos modulares y los instrumentos
autónomos (standalone).
Dentro de los instrumentos modulares podemos hacer una subdivisión entre los
instrumentos para ordenadores personales y los sistemas específicamente diseñados para
instrumentación industrial o de laboratorio. Actualmente existen instrumentos modulares para
la mayoría de ordenadores personales y estaciones de trabajo (workstations), como son: IBM
PC/XT/AT, PS/2, Sun, DEC, NeXT, MAC, etc. A todos estos instrumentos se les denomina
en inglés PLUG-IN'. También se dispone de instrumentos conectables al bus de extensión
EISA y PCMCIA.
- VME: es un bus digital estándar para sistemas de 32 bits que ha tenido expansión en
el entorno industrial gracias a disponer de racks con características apropiadas
para entornos industriales y gran número de instrumentos modulares. Su
limitación es que el bus común del backplane es solo digital.
A pesar de que estos sistemas incorporan el control digital y permiten realizar sistemas
completos de instrumentación, todos ellos tienen posibilidades de comunicarse o ser incluso
controlados por un sistema distinto. Así, por ejemplo, un rack basado en VXI puede tener un
controlador del bus VXI que actúe controlado a su vez por un bus IEEE-488 al que estén
conectados otros instrumentos o racks y todo a su vez controlado por un PC.
Por último, los instrumentos autónomos son los que disponen de todas las funciones
necesarias para realizar las medidas de forma independiente. Para poder configurar un sistema
de medida utilizando este tipo de instrumentos es imprescindible que sean controlables. La
ventaja evidente de utilizar equipos autónomos es su posible utilización de forma
independiente pero, para especificaciones parecidas, estos equipos serán más caros que sus
equivalentes modulares.
El bus más utilizado es el IEEE-488; es un bus paralelo de 8 bits más las líneas de
control y de protocolo de comunicación (handshake). Diseñado en 1965 por Hewlett-Packard
bajo el nombre de HP-IB, ganó popularidad gracias a su alta velocidad de transferencia
(1 Mbyte/s), y fue recogido ya en 1975 por el IEEE como el standard IEEE-488. Otro nombre
por el que se conoce es 'General Purpose Interfase Bus' (GPIB). Puede controlar hasta 14
instrumentos con una distancia total de cable de hasta 20 m.
Fig. 2.5 Sistemas de instrumentación integrados en la red de comunicaciones de una empresa (Natinal Instruments)
En entornos industriales son muy utilizados los buses de control serie ya que permiten
distancias mayores entre los equipos. El más utilizado es el RS-232, ya que está incorporado
en la mayoría de ordenadores. Otros buses serie son: RS-422, RS-486, I2C, CAN, LAN, etc.
Otros tipos de equipos son los adaptadores de protocolos entre buses distintos. Por
ejemplo, existen conversores de: RS-232 a IEEE-488, SCSI a IEEE-488, ETHERNET (con
protocolo TCP/IP) a IEEE-488, etc. Para extender la longitud de los enlaces también se
encuentran adaptadores que pasan del cable estándar paralelo de IEEE-488 a una transmisión
serie por cable coaxial o fibra óptica y viceversa.
Utilizando todos los recursos vistos hasta este momento se pueden realizar sistemas
distribuidos de instrumentación basados en redes de área local. En la figura 2.5 podemos ver
un sistema distribuido de una empresa basado en conexiones por internet entre centros,
ethernet dentro de cada edificio y GPIB para el control dentro de cada laboratorio o zona de
producción.
El bus IEEE-488, conocido también como GP-IB o HP-IB es, con mucho, el más usado de los
sistemas de interconexión de instrumentos presentes en el mercado. Este hecho debe justificarse,
actualmente, más por razones de mercado que por razones tecnológicas. La muerte del bus IEEE-488
(que tiene una antigüedad de jure de 20 años, y de facto de casi 30) ha sido vaticinada varias veces,
pero es previsible que subsista durante mucho más tiempo. Dos son los motivos que podemos aducir.
En primer lugar, disponer de un instrumento que pueda funcionar autónomamente es mucho más
rentable para empresas de tamaño medio/pequeño y para departamentos de investigación o desarrollo
que adquirir instrumentación que deba funcionar en un bastidor o conectada al bus de un ordenador,
por las razones de tiempo de vida y necesidad de reconfiguración comentadas en el capítulo 1. En
segundo lugar, añadir una interfase IEEE-488 a un instrumento supone, actualmente, un coste mínimo
y prácticamente todos los instrumentos de gama media/alta lo llevan de serie.
El bus IEEE-488 es un bus paralelo de 8 bits con una transferencia de información similar a
la de un bus asíncrono de ordenador, mediante el uso de 3 líneas de protocolo (Fig. 3.3). Permite
transferir datos a una velocidad de 1 Mbyte/s, aunque en la práctica el límite suele estar en
2505 kbyte/s. Algunos fabricantes han desarrollado circuitos de interfase que permiten hasta 8
Mbytes/s de velocidad de transmisión. Pueden conectarse un máximo de 14 instrumentos más un
controlador, de forma directa, y se pueden ampliar usando extensores de bus, con una longitud
máxima de 20 m para cada sección. Se pueden configurar estructuras físicas lineales, en estrella o
mixtas, aunque la estructura lógica es tipo bus (todos los instrumentos están conectados en paralelo).
La transmisión de órdenes de programación y datos de medida suele hacerse usando códigos ASCII,
aunque no es obligatorio. Los instrumentos pueden pedir atención al controlador mediante una única
línea de interrupción y se identifican con una dirección de 5 bits.
Interface for Progammable Instrumentation. Esta publicación cubre los aspectos eléctricos y de
protocolo de bajo nivel del bus (se podría asimilar a los niveles 1 y 2 del modelo de referencia OSI de
la ISO), pero deja totalmente libre la estructura de los comandos de programación de los instrumentos
y los formatos de los datos. Dado que existía esta libertad, cada fabricante, e incluso cada instrumento
de un mismo fabricante, usaba estructuras y codificaciones distintas, lo que complicaba el diseño de
sistemas de instrumentación. Un intento de solventar esta dispersión fue la norma ANSI/IEEE Std
728-1982, IEEE Recomended Practice for Code and Format Conventions for use with IEEE Std 488-
1978, que de hecho era similar al estándar internacional IEC-625.2. Este documento define
estructuras sintácticas que permiten la construcción de mensajes y el intercambio de datos, aunque la
difusión y el seguimiento del mismo fueron escasos.
Un salto cualitativo se dio en 1987 cuando se volvió a revisar la norma. Después de esta
revisión aparecieron dos subnormas: ANSI/IEEE Std 488.1-1987 que toma como base el estándar de
1978 con el mismo nombre y ANSI/IEEE Std 488.2-1987, IEEE Standard Codes, Formats, Protocols,
and Common Commands for use with ANSI/IEEE Std 488.1-1987 que toma como base y amplía el
estándar IEEE 728-1982. En la norma 488.2, además de definir la sintaxis, se definen también un
conjunto de comandos comunes, unos códigos de error también comunes y un conjunto de
procedimientos de operación. Sólo el último nivel, los comandos dependientes de cada instrumento,
se dejan a libertad del fabricante. Esta norma ha sido revisada en 1992.
Por lo que respecta a los comandos de programación y los formatos de las estructuras de
datos, un consorcio de fabricantes definió en 1991 los Standard Commands for Programmable
Instruments: (SCPI). Esta "norma" no está recogida, de momento, por ningún órgano oficial.
6 DAV "Data VAlid". Línea del protocolo asíncrono, gestionada por el emisor
7 NRFD "Not Ready For Data". Línea de protocolo, gestionada por el receptor
17 REN "Remote ENable". Indica a los instrumentos que van a ser programados
Las especificaciones eléctricas están basadas en circuitos con tecnología TTL usando lógica
negada, de forma que un 0 lógico corresponde a un nivel alto (VL > +2.0 V) y un 1 lógico corresponde
a un nivel bajo (VL < +0.8 V).
Las líneas SRQ (Service ReQuest), NRFD (Not Ready For Data) y NDAC (No Data
ACcepted) deberán tener los circuitos de ataque tipo colector abierto. El resto de las líneas, incluidas
las de datos, podrán ser colector abierto o de tres estados. Con circuitos de tres estados se consigue
mayor velocidad. En el caso de querer implementar la función de consulta en paralelo, las líneas de
datos deben ser colector abierto. Los circuitos de ataque deben ser capaces de entregar hasta 5.2 mA
al bus en estado alto y sumir 48 mA en estado bajo.
Para los circuitos de recepción es recomendable usar comparadores con histéresis, con un
ciclo de histéresis de 0.4 V, para aumentar la inmunidad al ruido. Cada una de las líneas de señal, en
cada instrumento conectado al bus, tendrá una carga resistiva, de forma que la tensión de la línea no
sea flotante ni cuando todos los circuitos de ataque estén en estado de alta impedancia. Será
necesario, además, proteger los circuitos de recepción contra tensiones negativas que pudieran
aparecer en la línea. La carga que supone un instrumento conectado al bus debe ser tal que la relación
V/I esté dentro de la zona no sombreada de la figura 3.2(a). Un posible circuito que realiza todo lo
enumerado anteriormente se puede ver en la figura 3.2(b).
+2 mA
Vcc
+2V
+4V
3k
-2 mA
ATAQUE
-4 mA
-6 mA RECEPTOR
-8 mA
6.2 k
-10 mA BUS
-12 mA
(a) (b)
Fig. 3.2 (a) Requerimientos de carga para cada instrumento conectado al bus, (b)
circuito que cumple con los requerimientos de carga. (trazo grueso en (a)).
Se contempla la posibilidad de que exista una capacidad parásita entre cada línea y masa, que
no debe exceder de 100 pF por cada instrumento. La existencia de una capacidad alta puede
comprometer las especificaciones de velocidad.
La máxima resistencia de las líneas de datos y control es de 0.14 S/m, para la línea de masa a
común es de 0.085 S/m y para la malla de apantallamiento 0.0085 S/m. La máxima capacidad entre
cualquier línea de señal y cualquiera de las otras conectada a masa debe ser inferior a 150 pF/m,
medida a 1 kHz. Esta capacidad es la que limita la longitud máxima del cableado. El límite máximo
es de 20 m, pero este límite solo puede alcanzarse si hay más de 10 instrumentos en el sistema, y
considerando que la velocidad máxima que se conseguirá no superará los 500 kbytes/s. Si el número
de instrumentos es menor, el límite es de 2m * número de instrumentos. La razón hay que buscarla en
la impedancia de carga que supone cada instrumento. Al aumentar el número de instrumentos
disminuye la resistencia de carga total de la línea y la constante de tiempo entre la capacidad parásita
de la línea y esta impedancia disminuye también, de forma que la velocidad máxima se mantiene, a
costa de aumentar el consumo. El límite de 4 m para el cable individual, o lo que es lo mismo, la
máxima longitud de cable entre 2 instrumentos, es debida a problemas de retardos de propagación
(hay que distribuir la carga de la línea de forma uniforme).
El nivel siguiente (nivel 2 o de trama en un modelo OSI) hace referencia a cómo se realizan
las transferencia básicas de información entre elementos conectados al bus. Ya hemos comentado que
la transferencia se realiza de forma similar a un bus asíncrono de ordenador. Antes de comentar en
detalle las señales y las temporizaciones comentaremos la estructura genérica que puede tener un bus
IEEE-488.
En la figura 3.3 podemos ver un ejemplo de conexión con 4 instrumentos. En este caso el
dispositivo A es capaz de emitir mensajes de control de la interfase, y es capaz de emitir y recibir
información del bus. El dispositivo B es capaz de emitir y leer información, el dispositivo C solo es
capaz de leer información (p. ej. una impresora) y el dispositivo D solo es capaz de emitir
información (p. ej. un contador). En esta figura, además, se ha puesto de manifiesto la conexión
paralelo de todas las líneas del bus y su agrupación funcional, en líneas de datos, líneas de protocolo
(DAV, NRFD y NDAC) y de control.
Antes de poder realizar una transferencia en el bus es necesario saber quiéen va a emitir la
información y quién va a leerla. Para determinar esto el controlador configurará cada uno de los
instrumentos. Es evidente que solo puede haber un instrumento que emita información, pero puede
haber más de un elemento que la reciba. En el apartado 3.4 se comentarán con más detalle las
funciones en el bus.
Una vez configurados los instrumentos, cuando el que está configurado para emitir
información (talker) tiene la información disponible da comienzo el protocolo de comunicación
(handshake). El momento en que se empieza a emitir depende totalmente del instrumento. La
información a emitir puede ser, por ejemplo, un dato de medida que no se adquiere nunca porque la
condición de disparo no se cumple y por tanto el instrumento, aunque configurado como talker, no
realizará ninguna transferencia. Este tipo de problemas no están contemplados en la norma y suelen
solucionarse con la introducción de timeouts, de forma que si el controlador detecta que ha pasado
mucho tiempo desde que ha configurado el sistema y todavía no se ha realizado la transferencia puede
reinicializar la interfase.
El proceso de intercambio de información puede verse en la figura 3.4. Justo después de ser
configurado, el talker pone la línea DAV (DAta Valid) a nivel alto (0 lógico, falso) (1). En esta
situación los otros instrumentos, configurados como listeners, ponen la línea NDAC (No Data
ACcepted) a nivel bajo indicando que no se ha aceptado ningún dato y la línea NRFD (Not Ready For
DISPOSITIVO A
Capacidad para
EMITIR, RECIBIR y
CONTROLAR
p.e.: ordenador
DATOS
DISPOSITIVO B
Capacidad para
EMITIR y RECIBIR
DISPOSITIVO C
Capacidad para
RECIBIR
p.e.: impresora
CONTROL de la
INTERFÍCIE
DISPOSITIVO D
Capacidad para
EMITIR
p.e.: contador
DIO1..8
DAV
NRFD
NDAC
IFC
ATN
SRQ
REN
EOI
Data) también a nivel bajo, indicando que no están listos para aceptar datos (2). En el momento que
los instrumentos estén listos para aceptar datos irán poniendo esta línea a nivel alto. Al ser colector
abierto, hasta que el último de ellos no la haya puesto a nivel alto, la línea del bus estará baja (5).
Cuando el talker detecta NRFD alta, activa DAV (6) si había puesto los datos (3) con antelación
suficiente (4). Al detectar DAV activa, los instrumentos ponen NRFD baja (7) para indicar que no
aceptan más datos y a medida que cada uno lee el dato presente en el bus va desactivando NDAC (8)
hasta que todos la han puesto a nivel alto (9). En este momento el talker sabe que el dato ha sido
leído, desactiva DAV (10) y quita el dato del bus (11) poniendo el siguiente si lo hubiera. Los
listeners van poniendo NRFD alta (14) hasta que todos ellos vuelven a estar listos para aceptar más
datos (15) y recomienza el proceso descrito a partir de (6).
Este procedimiento provoca que el más lento de los instrumentos que intervienen en la
comunicación sea el que fije la velocidad real de transmisión de la información. Los instrumentos que
no han sido configurados ni como talker ni como listener mantienen la interfase en un estado inactivo
(idle), dejando NRFD y NDAC a nivel alto, y por tanto no entorpecen la comunicación.
El resumen de funciones que pueden realizar las interfases se ve en la tabla 3.2. En este
apartado veremos con algún detalle cómo se realizan estas funciones, haciendo hincapié en los
aspectos prácticos y en la codificación de algunos mensajes de control de una línea o multilínea.
Para cada una de estas funciones existen diferentes niveles de realización, que se indican con
un número que sigue al símbolo de la función. A veces el conjunto de capacidades de un instrumento
está escrito junto al conector del bus. Otras veces está en el manual, aunque la norma no especifica
que deba suministrarse esta información. Así, un instrumento que tuviera escrito el siguiente conjunto
de símbolos:
AH1, SH1, T5, TE0, L3, LE0, SR0, RL1, PP0, DC0, DT0, C0
debería interpretarse como: el dispositivo realiza las funciones básicas de handshake, puede actuar
como talker de forma completa pero no puede usar direcciones extendidas. Puede actuar como
listener de forma completa pero tampoco puede usar direcciones extendidas. No tiene capacidad de
generar un petición de servicio. Los controles del panel pueden bloquearse mediante órdenes desde el
bus, no puede responder a una consulta en paralelo, el instrumento no puede inicializarse mediante
una orden, no puede iniciarse un medida desde el bus y no tiene capacidad de controlador. Es un
conjunto típico de capacidades para un instrumento de medida, como un osciloscopio digital o un
DMM.
Son las funciones que permiten leer y mandar información multilínea, usando las líneas de
datos. Esto, por si solo, permite recoger comandos de la interfase. Si además van acompañadas de las
funciones L o T podrán leer o generar mensajes que dependan del instrumento (datos de medida, etc).
Para cada función la norma especifica un diagrama de estados donde se indica cuándo debe activarse
o desactivarse una función, etc. En la figura 3.5 puede verse, como ejemplo, el diagrama de estados
de la función AH.
Después de poner en marcha el instrumento (pon) o bien si la línea ATN (Attention) es falsa y
no está configurado como Listener, la interfase está en un estado inactivo (AIDS: Acceptor Idle
State). De este estado sale si se activa ATN (significa que el controlador va a mandar órdenes a la
interfase) o bien está configurado como listener, y se entra en un estado de no operación (ANRS:
Acceptor Not Ready State). De este se sale cuando la interfase está dispuesta a recibir información,
con lo que pasa a ACRS. Cuando se activa DAV (ver el cronograma del protocolo de comunicación)
se pasa a un estado de aceptación de datos, del que se sale cuando se ha aceptado, y se pasa a un
estado de espera, AWNS, hasta que el elemento talker desactiva DAV.
Junto con el diagrama de estados deberíamos indicar el estado de las líneas que se controlan,
en este caso NRFD y NDAC. Por ejemplo en AIDS las líneas NRFD y NDAC están a nivel alto,
como se ha comentado en 3.3.
Las funciones T y L permiten que una interfase envíe o reciba datos dependientes del
instrumento (datos de medida, comandos de programación, etc.). Para que un instrumento actúe como
talker o listener debe haber sido configurado como tal por el controlador. La forma de realizar esta
configuración la veremos al hablar de la función controller. Ya hemos comentado que solo puede
haber un talker pero puede haber varios listeners, aunque en la práctica la mayoría de transferencias
de información se realizan entre un instrumento y el controlador (ordenador de propósito general),
que se encarga de procesarlas.
En instrumentos complejos o modulares, cada una de las partes del instrumento puede tener
"personalidad" propia. En este caso el instrumento global tiene una dirección y cada uno de los
módulos tiene una sub-dirección. Se puede configurar como talker o listener a uno de los
submódulos. No se puede configurar a un submódulo como talker y a otro como listener porque la
interfase es única. Esto se usaba p. ej. en los analizadores lógicos HP64000, y actualmente en los
sistemas VXI cuando se conectan a un ordenador mediante una interfase IEEE-488.
Un tema importante es saber cómo se finaliza un mensaje multibyte. Hay dos formas
habituales de hacerlo, aunque la norma no impone ninguna de ellas. Se puede usar la línea EOI (End
Or Identify) o se puede usar un carácter específico, conocido como terminador. Si la transmisión es en
ASCII, el terminador suele ser el carácter LF (Line Feed). De todas formas, al no especificar nada la
norma, esto debe ser un acuerdo entre emisor y receptor. Si este extremo no está bien resuelto suele
haber problemas de comunicación.
Estas tres funciones no afectan al estado de la interfase sino al estado de las funciones de
medida del instrumento. La función RL (Remote Local) permite que el instrumento sea programado
desde la interfase IEEE-488. Hay instrumentos que son capaces de volcar datos de medida al bus pero
no son capaces de ser programados. Cuando un instrumento es programado desde el bus los mandos
locales dejan de funcionar. Suele haber un botón (habitualmente llamado local) que devuelve el
control al operador. Si el instrumento posee la característica de realizar un lockout de los mandos,
entonces incluso el botón de local deja de funcionar y no puede controlarse el instrumento
manualmente hasta que se desbloqueen los mandos desde el bus.
La función DC (Device Clear) permite que el instrumento (no la interfase) sea inicializado
desde el bus. La norma no especifica en qué estado debe quedar el instrumento después de realizar
esta función, por lo que cada fabricante la realiza de la forma que más le conviene.
La función DT (Device Trigger) permite que se inicie una medida mediante una orden desde
el bus. La orden se puede dar a un instrumento de forma selectiva o a un grupo de instrumentos.
Como los tiempos de respuesta desde la orden hasta que la medida se realiza efectivamente no están
especificados, la utilidad de esta función para sincronizar varios instrumentos es muy limitada.
Si el controlador decide hacer caso de la petición tiene dos maneras alternativas de identificar
al elemento causante y la causa de la interrupción. La primera se llama Serial Poll y esta incluida
dentro de la función de talker. En este caso el controlador envía una orden de Serial Poll Enable que
indica a todos los instrumentos que se va a realizar una consulta en serie. Después configura de forma
secuencial a cada uno de los instrumentos como talker. Estos responden con una palabra de estado
donde el bit 7 indica si el instrumento ha causado o no la petición de interrupción. El resto de bits de
la palabra de estado están sin definir y cada instrumento puede codificar aquí información específica.
Una vez identificado al causante o causantes de la interrupción se envía una orden Serial Poll Disable
y se continúa con la actividad normal.
Una vez el controlador ha configurado las interfases de los instrumentos, puede dejar que la
transferencia de información se realice sola o puede participar en ella, con lo que se configura el
mismo como listener (a no ser que él sea realmente el originador o receptor de la información). En el
caso que no participe en la transferencia de información debe poder monitorizar las líneas del bus
para saber cuando finaliza la misma o bien inicializar la interfase si se detecta algún problema. Estos
procedimientos, no obstante, no están contemplados en la norma.
Para la programación de las interfases se usan órdenes de tipo unilínea (U), como por
ejemplo REN e IFC, u órdenes de tipo multilínea (M), que involucran las líneas de datos o varias
líneas de control. Dependiendo de a quién vayan dirigidas la órdenes se dividen en varias clases:
En las dos páginas siguientes se puede ver la codificación de todos los mensajes posibles en
una interfase IEEE-488.1. Como ejemplo, si quisiésemos configurar al instrumento cuya dirección es
12 como talker deberíamos enviar el byte Y101100 con la línea ATN activada. En esta orden el bit de
mayor peso puede tomar cualquier valor. Los dos siguientes (10) indican que se configura la interfase
como talker y los 5 últimos son la dirección del dispositivo. Desde el punto de vista del controlador
esta orden se llama TAG:Talker Address Group mientras que desde el punto de vista del dispositivo
cuya dirección es la especificada se llama MTA: My Talk Address.
Dispositivo X Dispositivo Y
BUS
Mensajes de la interfase
Específico
Específico
del IEEE-488.1
IEEE-488.2 IEEE-488.2 del
dispositivo
dispositivo
Fig. 3.6 Capas de protocolos cubiertos por las normas IEEE 488.1 y IEEE 488.2
Vemos que la norma IEEE-488.2 define una sintaxis y unas estructuras de datos por encima
de la codificación de mensajes vista en el apartado anterior. Además define un conjunto de comandos
y preguntas, basados en esta sintaxis, y por tanto multibyte, y las estructuras asociadas. De todas
formas queda un nivel por encima de la norma que no se define y que está constituido por los
mensajes particulares de programación de cada instrumento.
Para que un dispositivo pueda programarse de acuerdo con lo que especifica la norma IEEE-
488.2, la interfase debe realizar, obligatoriamente, un cierto subconjunto de las funciones definidas en
el apartado 3.4. Las más significativas, y que pueden provocar que un dispositivo no diseñado
específicamente para cumplir la norma IEEE-488.2 no se comporte correctamente, son:
1.- Debe poder generar y aceptar el protocolo de transferencia de información (SH1 y AH1).
Adicionalmente se especifica que se debe entrar en el estado AIDS (ver figura 3.5) como
máximo 1 ms después que la señal ATN se desactive, a no ser que se haya programado como
listener. Esto se hace para asegurar que el protocolo FindListeners funcione correctamente.
2.- Los dispositivos deberán usar la misma dirección como talker que como listener.
Habitualmente esto es así, pero la norma IEEE-488.1, de hecho, no lo especifica. Los
dispositivos deberán tener las capacidades básicas de emitir información y deberán poder
responder a un Serial Poll (T5 o T6). También deberán tener capacidad de recibir
información (L3 o L4). Se supone, además, que un dispositivo configurado como listener se
desconfigura automáticamente si recibe MTA (My Talk Address) y viceversa.
3.- Los dispositivos deben responder a una orden Device Clear de la siguiente forma:
- Limpiar la cola de órdenes de entrada y datos de salida
- Abortar el comando que se estuviese ejecutando (caso de un dispositivo con
procesado en paralelo de comandos)
- Guardando los datos internos de medida que se hubiesen adquirido
- Cambiando sólo el bit indicado en el registro de estado.
4.- Las líneas ATN, EOI y DAV deberán usar circuitos de ataque de tres estados. Las líneas de
datos también excepto que el dispositivo este respondiendo a un consulta en paralelo
(Parallel Poll), en cuyo caso serán colector abierto.
Cada dispositivo tendrá, como mínimo, 4 registros en los que se indica su estado y se
configura la posibilidad de pedir atención al controlador. La estructura de estos registros se puede ver
en la figura 3.7. El registro de sucesos habituales (Standard Event Status Register:SESR) contiene el
estado del dispositivo. Es un registro de 16 bits. Los 8 de mayor peso están reservados y deben
ponerse a 0. Cada uno de los restantes tiene asociado un suceso. Este registro tiene asociada una
máscara. Si cualquiera de los bits está a 1 y la máscara lo permite se activara el bit 5 del registro de
estado (Status Register). Este es el registro que se devuelve al controlador como consecuencia de una
consulta en serie. Al igual que el anterior, este registro tiene asociada una máscara. Si cualquiera de
los bits está activado y la máscara lo permite se activará el bit 6 y se generará una petición de
interrupción. De hecho, sólo 3 bits de este registro tienen función definida: el bit 6 indica que se ha
producido una petición de servicio. El bit 5 indica que se ha producido un suceso habitual no
enmascarado y el bit 4 indica que la cola de mensajes de salida no está vacía. El resto de bits pueden
estar asociados a otros registros de estado distintos del SESR, específicos de cada dispositivo
El cuerpo del mensaje puede constar de una o varias unidades, <PROGRAM MESSAGE
UNIT> separadas por el carácter ';'. Hay dos tipos de unidad, los comandos de programación y las
preguntas. Ambas se componen de una cabecera y unos datos, separados por un espacio en blanco.
Las cabeceras de las preguntas llevan un carácter '?' al final, antes de los datos y especifican al
dispositivo que debe devolver un mensaje de respuesta. Los datos pueden ser numéricos o cadenas de
caracteres. Si son numéricos pueden estar representados en ASCII o transmitirse en binario. Si hay
más de un dato, estos se separan con el carácter ','.
Las cabeceras pueden ser de tres tipos: simples, compuestas y comandos comunes (common
command). Una cabecera simple es un mnemotécnico. Una cabecera compuesta es una sucesión de
mnemotécnicos separados por el carácter ':'. Un comando común es un mnemotécnico precedido de
carácter '*'.
MED:CORR:DC? 1A,0.001A Es una cabecera compuesta. Podría indicar al dispositivo que realice
una medida de corriente continua en la escala de 1 amperio con una
resolución de 0,001 amperios. El interrogante indica que el
dispositivo debe devolver el resultado de la medida.
CONF:REP 10;VOLT:AC AUTO Es un mensaje con dos unidades. La primera podría indicar
que se tienen que hacer 10 medidas. La segunda que debe
medir tensiones alternas en una escala automática.
Cuando los datos numéricos representan magnitudes físicas, el símbolo de la unidad se puede
especificar, acompañado de un multiplicador si fuese necesario. El conjunto de símbolos y
multiplicadores han sido elegidos siguiendo la norma ISO Std 2955-1983 y han sido modificados
adecuadamente para representar unidades que no son del Sistema Internacional y para poder usar un
conjunto restringido de caracteres (solo mayúsculas o solo minúsculas). Así el mnemotécnico que
representa 10-3 es el carácter 'm' o 'M' mientras que para 106 es 'ma' o 'MA'. En el caso de usar
unidades compuestas formadas por el producto o cociente de unidades simples, los símbolos de
producto '.' y cociente '/' se pondrán de forma explícita.
La norma define 39 comandos comunes. De ellos 13 deben ser implementados por todos los
dispositivos, mientras que los otros son opcionales u obligatorios si el dispositivo tiene capacidades
adicionales a las estrictamente obligatorias (Parallel Poll, Device Trigger, Controller). Los comandos
obligatorios se pueden ver en la siguiente tabla:
MNEMOTÉCNICO DESCRIPCIÓN
*CLS Clear Status. Borra toda la información de estado del dispositivo y por tanto también la
condición o las condiciones de error presentes.
*ESE Standard Event Status Enable. Fija la máscara de interrupción del registro de sucesos
habituales ("Standard Event Register"). La máscara se pasara como un número decimal entre
0 y 256 en cualquiera de los formatos aceptados en al norma (decimal, hexa, octal, binario,
coma flotante, etc.).
*ESE? Solicita del dispositivo el valor de la máscara del registro de sucesos habituales. La respuesta
debe hacerse como un número entero en cualquiera de los formatos admitidos.
*ESR? Solicita del dispositivo el valor del registro de sucesos habituales. La respuesta se dará como
en el caso anterior.
*IDN? Solicita la identificación del dispositivo. La respuesta es una cadena de caracteres ASCII (7
bits) dividida en 4 campos separados por el carácter ','. Los campos son: fabricante, modelo,
número de serie y versión del firmware. Si los dos últimos no están disponibles se devolverá el
carácter '0'.
*OPC "Operation Complete". Provoca que el dispositivo active el bit correspondiente del registro de
sucesos habituales cuando todas las operaciones pendientes hayan finalizado.
*OPC? "Operation Complete Query". Provoca que el dispositivo mande un carácter '1' cuando todas
las operaciones pendientes finalicen.
*RST "Reset". Provoca una inicialización del dispositivo. No debe afectar al estado de la interfase
ni debe modificar los registros de estado y sus máscaras.
*SRE "Service Request Enable". Fija la máscara de interrupción del registro de estado que habilita
la generación de una petición de servicio. La máscara debe suministrarse con un número
decimal en el margen 0 a 255 en cualquiera de los formatos permitidos.
*SRE? Solicita el valor de la máscara del registro de estado. La respuesta debe darse como en el
comando *ESE?
*STB? Solicita el valor del registro de estado. La respuesta debe ser como en el caso anterior.
*TST? "Self test Query". Provoca que el dispositivo realice un secuencia de prueba interna y envíe un
mensaje con el resultado. EL mensaje de respuesta es un entero en el margen -32767 a 32767.
El valor 0 indica que la prueba interna se superó con exito. Cualquier otro valor indica que la
prueba no se finalizó o se detectó algún error. El significado de los códigos distintos de 0
depende del dispositivo.
*WAI "Wait". Impide que el dispositivo realice ninguna operación hasta que la operación en curso
haya sido completada. Solo tiene sentido en aquellos dispositivos con capacidad de realizar
operaciones en paralelo.
Si un dispositivo recibe un comando común que no puede ejecutar (de los opcionales) debe
activar el bit de error correspondiente en el registro de sucesos habituales.
Las técnicas de sincronización son procedimientos que puede usar el controlador para
asegurar que los comandos de programación que ha enviado a un dispositivo han sido completados.
Los dispositivos pueden ejecutar comandos de forma secuencial o solapada (paralela). Esto depende
del dispositivo y del tipo de comando.
El generador no responderá a la consulta *OPC? hasta que la salida de señal sea la programada. Dado
que la respuesta a la consulta *OPC? es la misma para todos los dispositivos, si se necesita
sincronizar varios de ellos debe recurrirse a otra técnica.
Usando el comando *OPC provocamos que el bit de menor peso el registro de sucesos
habituales (SESR) se ponga a 1 cuando el comando que precede a *OPC haya finalizado. Podemos
detectar este evento bien leyendo el registro SERS con el comando *ESR? bien programando el
dispositivo para que genere una petición de servicio al activarse este bit. Generar una petición de
servicio habitualmente provoca una interrupción interna en el controlador, que suele ser un ordenador
de propósito general con una interfase adecuada. Manejar interrupciones en entornos multitarea
(UNIX, MS-Windows, etc) no siempre es una tarea fácil o agradecida, por lo que las técnicas basadas
en peticiones de servicio no suelen usarse excepto en aplicaciones muy consolidadas o si los
requerimientos de velocidad lo aconsejan.
Una vez asignadas las direcciones se construye una tabla que contiene las direcciones
realmente ocupadas y la identificación del dispositivo obtenida mediante la orden *IDN?. Esta tabla
servirá al usuario para enviar las órdenes de programación de medida adecuadas.
La existencia de dispositivos que no cumplan con la norma IEEE-488.2 debe ser detectada de
forma manual. Estos dispositivos no responderán, por ejemplo, a una orden *IDN? o incluso pueden
no ser detectados con el protocolo Find Listeners si la interfase no pasa a un estado inactivo en un
tiempo máximo de 1 ms después que ATN se ha desactivado.
La experiencia nos enseña que puede haber incluso dispositivos más perversos. Nos hemos
encontrado con dispositivos cuya interfase no funciona correctamente a no ser que se active la línea
REN, lo que permite la programación remota del instrumento. Este hecho puede parecer anecdótico,
aunque provoca que protocolos como Find Listeners no detecten ningún dispositivo conectado. Estos
dispositivos, de hecho, no cumplen siquiera con el estándar IEEE-488.1.
La norma IEEE-488.1 establece los códigos de los comandos para configurar la interfase pero
no especifica en qué orden deben enviarse ni qué secuencias de códigos son necesarias para una
determinada acción. En la norma IEEE-488.2 se establece un conjunto de secuencias de control que
permiten realizar acciones básicas en el sistemas de instrumentación así como protocolos que ayudan,
por ejemplo, a la configuración automática del sistema.
En la tabla 3.3 pueden verse las secuencias de control que debe realizar el controlador.
Adicionalmente se pueden implementar secuencias de control que permiten el paso de control a otro
dispositivo y la configuración de una consulta en paralelo.
controlador debería tomar parte en la transferencia, como listener. Algunos programas de aplicación
tienen prevista esta situación y provocan que el controlador responda únicamente al handshake, sin
almacenar realmente la información, aunque esto escapa un poco del contenido de la norma.
SEND SETUP Configura el sistema para que el controlador pueda enviar mensajes de
programación del instrumento a uno o varios dispositivos
RECEIVE SETUP Configura el sistema para que un dispositivo actúe como "talker" y el
controlador pueda recibir la información
RECEIVE RESPONSE MESSAGE El controlador recibe el mensaje del dispositivo previamente configurado
SEND IFC Pulsa la línea IFC durante un tiempo mayor que 100 µs. Solo puede realizarlo el
controlador del sistema
DEVICE CLEAR Provoca una inicialización de los dispositivos, bien de todos ellos ("Device
Clear") o de un conjunto ("Selected Device Clear") usando órdenes 488.1
ENABLE LOCAL CONTROLS Coloca en estado local los dispositivos seleccionados o todo el sistema,
permitiendo el uso de los controles manuales
ENABLE REMOTE Configura todo el sistema o algunos dispositivos para que puedan recibir
comandos de programación de medida de forma remota, activando la línea REN
SET RWLS Impide que se puedan utilizar los controles locales de los instrumentos
seleccionados ("Local LockOut")
SEND LLO Impide que se puedan usar los controles locales de todos los instrumentos,
aunque de hecho no los dispone en estado de programación remota.
READ STATUS BYTE Realiza una lectura del registro de estado de un dispositivo. De hecho se realiza
una consulta serie ("Serial Poll") a un solo dispositivo
Los protocolos comunes son algoritmos diseñados para realizar determinadas funciones. La
diferencia con las secuencias de comandos es la existencia de sentencias condicionales. Solo hay dos
protocolos obligatorios: RESET y ALLSPOLL.
RESET esta diseñado para realizar una inicialización completa del sistema. En primer lugar
se envía un mensaje IFC que provoca que todas las interfases queden en un estado inactivo y el
controlador se autoconfigura como controlador activo (CIC) y después se activa una secuencia
ENABLE REMOTE. En segundo lugar se pone en marcha una secuencia DEVICE CLEAR para todo
el sistema y en tercer lugar se envía el comando *RST a todos los dispositivos del sistema usando una
secuencia SEND. Para este último paso el controlador debe conocer las direcciones de los
dispositivos. Si existieran dispositivos que no tuviesen implementada la orden *RST, debería saberse
de antemano cómo reaccionan cuando la reciben, ya que podrían provocar situaciones inesperadas
(errores, peticiones de servicio, etc.).
El protocolo ALLSPOLL realiza una consulta serie de todos los dispositivos en el sistema.
Para poder ejecutarse correctamente el controlador debe saber las direcciones de los dispositivos con
capacidad de responder a una consulta serie (todos los que cumplan IEEE-488.2).
Hay otros protocolos que se pueden realizar de forma opcional y que comentamos
brevemente:
Sería posible emular el funcionamiento de una interfase IEEE-488.1 usando una interfase de
entradas -salidas digitales y realizando los diagramas de estados a través de programas que se
ejecutasen en un microprocesador. Esta solución fue adoptada en alguna máquina basada en i8086
con un puerto de E/S basado en i8255 que se usaba normalmente como interfase CENTRONICS para
una impresora y que, mediante el programa adecuado, se convertía en IEEE-488.1. Si bien es una
solución muy barata, la velocidad de transferencia de información se ve muy comprometida.
Por este motivo han ido apareciendo en el mercado circuitos integrados que realizan en más o
en menos las funciones de una interfase IEEE-488.1 y que se conectan como un periférico de
microprocesador al sistema informático que se usa como controlador.
Los chips de Intel realizan las funciones de Talker y Listener en un circuito (8291) y las de
Controller en otro (8292), por lo cual se puede dimensionar mejor la interfase si no se está diseñando
un controlador. Estos dos integrados requiren circuitos de interfase física con las líneas del bus. Si se
quiere realizar una interfase completa se debe recurrir a los circuitos 8293, especialmente diseñados
para ello.
Los integrados de Texas y NEC tienen todas las funciones (T, L, C) en el mismo circuito.
También requiren chips adicionales para la interfase física con el bus, pero en este caso se pueden
usar circuitos 75160/161/162, que son mucho más asequibles que los anteriores.
Las diferencias entre todos estos circuitos son pequeñas por lo que respecta a la funcionalidad
de la interfase IEEE-488 y quizá algo mayores por lo que respecta a la interfase con el
microprocesador que los controla. En cualquier caso, conviene leer detenidamente las hojas de
características de todos ellos antes de realizar la elección.
Por lo que respecta al circuito de National Instruments TNT4882, éste consiste en la unión en
un solo chip de los circuitos NAT4882 (T, L, C), Turbo488 (interfase rápida con el microprocesador)
y unos drivers para el bus, con lo cual se puede hacer una interfase GPIB con un solo circuito.
Además de esto, este integrado tiene algunas características especiales que le permiten realizar
protocolos previstos en la norma IEEE-488.2, como son la monitorización de todas las líneas del bus
o la detección automática del terminador de mensaje. Finalmente, este circuito es capaz de
implementar un protocolo de comunicación llamado HS488 (High Speed 488) que permite alcanzar
velocidades de transferencia de datos de hasta 8 Mbyte/s. Este protocolo se basa en que la mayor
parte de las transferencias de información se realizan hacia o desde el controlador a un dispositivo,
con lo cual el protocolo de tres líneas clásico (handshake) se puede obviar y por tanto evitar los
retardos asociados con el mismo. La revisión de la norma IEEE-488.1 (que fue reafirmada en 1994)
para incluir este protocolo de alta velocidad y la extensión de los mensajes de la interfase que permita
la conmutación dinámica entre el protocolo clasico y el nuevo está actualmente en fase de proyecto.
A finales de la década de los setenta, muchos fabricantes diseñaban y construían sus propios
sistemas de instrumentación modulares o en tarjeta. Sin embargo, la mayor parte de estos equipos
utilizaban arquitecturas propias y sólo algunas soportaban los equipos de más de un fabricante.
La aparición previa del estándar del bus VME para sistemas basados en microprocesador,
junto con el deseo del Departamento de Defensa de los Estados Unidos de reducir el tamaño de sus
equipos de prueba automáticos, propiciaron la aparición del bus VXI. Para conseguirlo recurrieron al
bus VME, que en aquel momento, gracias a su estructura modular, y velocidad de transferencia de
datos, tenía un exito comercial importante. Era particularmente útil en el diseño de aplicaciones de
test digital y procesado digital de señal.
No obstante, la limitación más importante del bus VME era que su diseño no estaba orientado
al diseño de sistemas de instrumentación, en especial no incorporaba líneas analógicas ni de
sincronización. Para solventar este problema se creó en abril de 1987 un comite de cinco empresas
fabricantes de instrumentación (Colorado Data Systems, Hewlett Packard, Racal Dana, Tektronix y
Wavetek). Cuatro meses después se definía un nuevo estándar abierto para instrumentación basado en
el bus VME llamado VXI (VME bus Extensions for Instrumentation).
El bus VXI es una arquitectura abierta para todos los fabricantes de instrumentos modulares.
Esta especificación pública de sistema permite la coexistencia y el funcionamiento de un amplio
margen de instrumentos dentro del mismo bastidor. Mientras que el estándar IEEE-488 es
principalmente un estándar de comunicaciones para facilitar la integración del sistema, el bus VXI es
un estándar de sistema. En la norma VXI no se define únicamente el protocolo de comunicaciones y
la conexión física de dichos instrumentos, se definen también aspectos mecánicos, eléctricos, de
compatibilidad electromagnética y tipos de instrumentos.
El bus VXI está orientado a aplicaciones que requieren una capacidad de integración y
velocidad que se encuentran fuera de las capacidades del bus IEEE-488. Sin embargo, la enorme
popularidad de la norma IEEE-488 se tuvo en cuenta en la definición de la norma VXI y se utilizó
como modelo para el protocolo de comunicaciones entre dispositivos e instrumentos.
Desde la primera definición de la norma en el año 1987 han ido apareciendo sucesivas
versiones que incorporaban ligeras modificaciones sobre el borrador original, de las cuales la última
versiónha sido la 1.4, correspondiente a abril de 1992, que se ha consolidado con el reconocimiento
por parte del IEEE como estándar IEEE-1155. El consorcio original de cinco empresas se ha
ampliado con nuevos miembros como Bruel & Kjaer, Fluke, GenRad, Keythley y National
Instruments.
Para la definición de la norma se tomó como base el bus VME (IEEE-1014). Su estructura
jerárquica, velocidad, flexibilidad y la existencia de multitud de tarjetas ya disponibles lo hacen ideal
en este contexto. La primera consecuencia es la posibilidad de integrar dispositivos o sistemas VME
ya existentes en futuras aplicaciones basadas en VXI.
La norma VXI define las características mecánicas, eléctricas, los protocolos y los procesos
de inicialización así como las peculiaridades de los posibles interficies IEEE-488 que puedan
emplearse para la comunicación con elementos de control externos.
VXI-0 Visión general de las especificaciones del bus VXI. Revisión 1.0 mayo 1992.
VXI-1 Especificación de un sistema basado en el bus VXI. Revisión 1.4, abril 1992.
VXI-2 Especificación para dispositivos extendidos basados en registros y para dispositivos
VXI de memoria extendidos basados en registros. Revisión 1.0, febrero 1991.
VXI-3 Especificación de comandos de palabra serie para la identificación de la versión y el
número de serie de dispositivos VXI. Revisión 1.0, febrero 1991.
VXI-4 Especificación de mnemotécnicos comunes en la norma VXI. Revisión 1.0, junio
1991.
VXI-5 Especificación de los comandos ASCII comunes del sistema. Revisión 1.0, junio
1991.
VXI-6 Especificación de la interfase estándar para la extensión del bus VXI. Revisión 1.0,
febrero 1991.
VXI-7 Especificación del formato de datos de memoria compartida. Revisión 1.0, marzo
1992.
VXI-9 Especificación del protocolo de memoria compartida para sistemas VXI. Revisión
1.0, mayo 1992.
Todas ellas están recogidas y publicadas dentro de un documento conocido como VXIbus
System Specifications Revision 1.4. El núcleo principal de la norma, donde se comprende la
configuración y el funcionamiento de un sistema VXI, es la especificación VXI-1.
La norma VXI constituye una extensión del la norma VME. Por tanto, los dispositivos VME
son un subconjunto dentro de los instrumentos VXI.
El bus VME es bus asíncrono formado por cuatro sub-buses: transferencia de datos, arbitraje,
interrupciones y utilidades.
Permite transferir el control del bus de datos entre diferentes dispositivos maestros de
una manera ordenada y garantizando que únicamente un dispositivo maestro controla el bus
de datos en cualquier instante.
- Bus de interrupciones
- Bus de utilidades
Dentro de la norma VME se definen tarjetas de dos dimensiones estándar diferentes (figura
4.1); Eurocard, tamaño A (100 mm x 160 mm), y doble Eurocard, tamaño B (233 mm x 160 mm),
figura 4.1. Las señales descritas están disponibles en dos conectores denominados P1 y P2 de 96
contactos cada uno. En el primer conector se utilizan las 96 líneas y del segundo (P2) se utilizan las
32 líneas centrales del conector. Las tarjetas de tamaño A incluyen únicamente el conector P1, que es
la configuración mínima de funcionamiento. El espacio de direcciones en la tarjeta de tamaño A
puede ser el A24 (16 Mbytes) o A16 (64 kbytes) con palabras de 8 o 16 bits.
P1
VME 233 mm x 160 mm
Tamaño B
P2
P1
VXI Tamaño C 233 mm x 340 mm
P2
P1
P3
La extensión del bus VME, por parte de la norma VXI, a un bus para instrumentación
modular contempla diversos aspectos.
Bus de reloj
Está formado por dos señales de reloj de 10 MHz y 100 MHz y una señal de sincronización
de reloj para esta última. La señal de 10 MHz (CLK10) está disponible en el conector P2 y la señal
de 100 MHz (CLK100) junto con la de sincronización (SYNC100) están ubicadas en el conector P3.
CLK10, CLK100 y SYNC100 son señales diferenciales con niveles ECL y disponen de un
amplificador en el bus para cada módulo para aumentar el aislamiento entre módulos y reducir el
efecto de carga sobre la señal de reloj. El controlador del bus VXI, el módulo 0, puede generar estos
relojes o pueden ser suministrados a partir de un generador de frecuencia patrón a través del panel
frontal del módulo 0. La señal SYNC100 permite sincronizar diferentes módulos con un determinado
flanco de subida de la señal CLK100.
Bus en estrella
Situado en el conector P3, está formado por doce pares de líneas (STARXn y STARYn) que
unen respectivamente cada uno de los módulos con el módulo 0 como muestra la figura 4.2. Además
son líneas bidireccionales diferenciales con niveles ECL.
El bus en estrella ofrece una vía de comunicación de alta velocidad entre módulos para
procesos en los cuales la temporización es extremadamente crítica. La norma VXI fija un retardo
máximo de 5 ns entre cualquier módulo y el módulo 0 y una desviación de 2 ns entre cualquier par de
señales STARXn-STARYn.
Líneas de reloj y sincronismo
Bus en estrella
Bus Local
bus VME
Bus de Disparo
Bus Suma
Bus de disparo
El bus de disparo puede subdividirse en 8 líneas de disparo con niveles TTL (TTLTRG*) y 6
líneas con niveles ECL (ECLTRG). Todas la líneas TTLTRG* y dos de las ECLTRG están situadas
en el conector P2. Las cuatro restantes ECLTRG están en el conector P3.
Las líneas TTLTRG* son TTL en colector abierto y están terminadas en cada uno de los
extremos del bus con una red pasiva. El nivel lógico alto, 5 V, viene fijado por las terminaciones del
bus. Para la temporización de procesos mediante estas líneas la norma recomienda utilizar los flancos
descendentes de las señales al tener un tiempo de bajada menor por la configuración de colector
abierto.
Bus local
Está formado por 36+36 líneas (12+12 en el conector P2 y 24+24 en P3) que comunican cada
módulo únicamente con los inmediatamente adyacentes y con el que se pueden realizar transferencias
de hasta 200 MHz, proporcionando una velocidad de transmisión efectiva de 1 Gbyte/s. Su función es
la de enlazar localmente diferentes tarjetas a gran velocidad, por ejemplo un módulo digitalizador y
un módulo de procesado de señal.
Está presente en el conector P2 y forma un nodo común a todos los módulos del sistema.
Está terminado con una resistencia de 50 S conectada a la masa de señal en cada extremo del bus. La
señal de suma analógica está situada en un extremo del conector P2, alejada de las señales digitales y
apantallada por tres terminales de masa. Está previsto que cualquier módulo pueda enviar o recibir de
esta línea. Cada módulo puede transmitir a esta línea mediante una fuente de corriente con una
impedancia de salida mayor de 10 kS con una capacidad en paralelo menor de 4 pF. El receptor
deberá tener una impedancia equivalente de entrada mayor de 10 kS con una capacidad en paralelo
menor de 3 pF.
Bus de alimentación
En la figuras 4.2 y 4.3 puede verse una esquema de la estructura completa de sub-buses del
bus VXI y la distribución de las diferentes señales en los conectores P1, P2 y P3.
En el apartado anterior se han descrito los recursos físicos disponibles en la norma VXI que
se basan en un bus específico. La norma también define las relaciones entre los componentes del
sistema y las estructuras que permiten la realización de configuraciones efectivas.
Un sistema VXI puede estar constituido por un máximo de 256 dispositivos incluyendo uno
o más subsistemas VXI. Cada subsistema incluye un módulo central o ranura 0 (SLOT0), que genera
las señales de reloj, temporización y control del sistema, y hasta 12 instrumentos o módulos
adicionales. Todo el subsistema se encuentra ubicado en un bastidor normalizado.
Los dispositivos son los elementos básicos de un sistema VXI; están formados generalmente
por un solo módulo, pero pueden existir varios dispositivos en un solo módulo, o bien un dispositivo
puede ocupar varios módulos. Cada uno de los 256 dispositivos que pueden existir en un sistema VXI
tiene una dirección lógica asociada entre 0 y 255. A cada dispositivo se le adjudican 64 direcciones
absolutas de memoria en el mapa de direcciones A16, de 64 kbytes. La dirección lógica del
dispositivo define la dirección de este segmento de 64 bytes. Estos 64 bytes contienen los registros de
configuración y los registros de comunicación del dispositivo.
En la norma VXI se ha buscado, ante todo, una gran flexibilidad que facilite su adaptación a
los más variados entornos y aplicaciones. Se han definido cuatro tipos diferentes de dispositivos VXI:
basados en mensajes, basabdos en registros, memoria y extendidos.
Definición del conector P1 del bus VXI; Slot 0-12 Definición del conector P2 del bus VXI; Slot 0
Número de Fila A Fila B Fila C Número de Fila A Fila B Fila C
PIN Señal Señal Señal PIN Señal Señal Señal
basados en registros disponen de una inteligencia limitada. Se comunican con su módulo controlador
por medio de protocolos específicos definidos por el fabricante, en forma de escrituras directas en sus
Un instrumento puede estar compuesto por más de un módulo. Los buses definidos en la
norma son el soporte físico que permite el funcionamiento de los distintos módulos como un único
instrumento. En cuanto al soporte lógico, software, es necesario que la acción de los componentes del
instrumento sea coordinada adecuadamente y que la información se comparta de la forma más natural
y transparente posible. La norma VXI contempla la constitución de estructuras jerárquicas basadas en
dispositivos Servants y Commanders (ver figura 4.4). Varios dispositivos Servants dependen de un
único dispositivo Commander. Un determinado Commander puede a su vez ser un Servant de otro.
Los dispositivos Servants pueden ser de dos tipos, basados en registro o basados en mensajes. Sin
embargo, los Commander ha de ser dispositivos basados en mensajes que permitan controlar a los
Servant.
COMMANDER
SERVANT
SERVANT
COMMANDER
SERVANT SERVANT
El Slot 0 debe generar las señales de reloj, CLK10, CLK100 y SYNC100 así como las señales
del Bus de Identificación de Módulos (MODID) y comunicación STARXn, STARYn.
El Resource Manager tiene asignadas funciones de mas alto nivel. Es un dispositivo basado
en mensajes con capacidad de Commander que debe estar situado en la dirección lógica 0 y que, al
arrancar el sistema, realiza las siguientes funciones:
SCPI
488-VXI
MEMORIA
COMPARTIDA WORD SERIAL
COMUNICACIÓN
CONFIGURACIÓN
La comunicación con los dispositivos basados en registros, que sólo pueden actuar como
Servants, no está especificada por la norma VXI y depende del fabricante del equipo. En este caso el
sistema deberá incluir el dispositivo o los dispositivos Commander adecuados del fabricante para
poder controlar el Servant basado en registros. La comunicación entre Commanders y Servants
basados en mensajes está totalmente definida en la norma. El protocolo empleado es conocido como
Word Serial. Permite el envío y la recepción de información secuencialmente de una forma similar a
la usada en el entorno IEEE-488. Se trata de un protocolo asíncrono cuya velocidad se adapta al
dispositivo más lento en cada momento. La longitud de estas palabras es de 16 bits, aunque existen
variantes de 8, 32 o 48 bits. El protocolo hace uso del contenido de diversos registros en el Servant
normalizados para la coordinación y configuración de las transmisiones.
La norma VXI permite una gran variedad de configuraciones posibles. Las más típicas son:
1.- Un único controlador externo, Host, conectado al sistema a través del SLOT 0 y el
Resource Manager mediante una interfase IEEE-488, RS232 o red local.
2.- Un único controlador interno que realiza además las funciones de SLOT0 y Resource
Manager. Los controladores VXI existentes se basan, en su mayoría, en la
arquitectura PC, con procesadores de la familia INTEL 80x86.
a) Múltiples primarias: Cada instrumento VXI se identifica mediante una dirección primaria
válida dentro del bus IEEE-488. Tiene como ventaja la similitud con la programación de
instrumentación IEEE-488, pero el número de direcciones de dispositivos se limita a 30.
c) Dirección incluida en los comandos, Embeded Addressing. Se envía con cada comando un
identificador antepuesto al mismo indicando qué dispositivo lógico es el destinatario de la
información. Se utiliza una única dirección primaria y el nombre del dispositivo queda a
elección del programador.
La norma SCPI es el escalón más alto dentro de la jerarquía normativa para el control de
sistemas de instrumentación. Tal como se puede ver en la figura 5.1, la norma SCPI se asienta sobre
la IEEE-488.2 y esta, a su vez, se basa en la IEEE-488.1. A pesar de esta jerarquía los comandos y la
estructura de datos basados en la norma SCPI pueden usarse, y se usan, en sistemas de
instrumentación que no estén basados en IEEE-488, por ejemplo en sistemas basados en VXI, RS-232
o LAN.
Para conseguir estos objetivos la norma establece la sintaxis y los formatos de los mensajes
para que instrumentos con la misma funcionalidad o instrumentos del mismo tipo utilicen los mismos
comandos. Por ejemplo, los comandos para medir una frecuencia utilizando frecuencímetros de
distintos fabricantes serán los mismos. Además, la medida de la frecuencia con otro instrumento que
lo permita, por ejemplo un osciloscopio digital o un multímetro, también utilizarán los mismos
comandos.
1.- Vertical: equipos de un mismo tipo tienen los mismos controles. Ejemplo: en dos multímetros
distintos la selección de escala se realizará de la misma forma.
2.- Horizontal: equipos que realizan la misma medida, aunque sea de formas distintas, utilizarán los
mismos comandos. Ejemplo: un osciloscopio que pueda medir períodos y un frecuencímetro-contador
utilizarán los mismos comandos para medir el período de una señal.
3.- Funcional: dos equipos distintos que puedan realizar la misma función lo harán con los mismos
comandos. Ejemplo: un analizador de espectros que pueda realizar barridos de frecuencia y un
generador de señal serán funcionalmente compatibles si el barrido de frecuencia se programa con los
mismos comandos.
Para conseguir un conjunto de comandos que puedan ser utilizados en cualquier instrumento,
optimizando la compatibilidad, la norma define un modelo de instrumento universal. Este modelo es
el que pasamos a ver de forma más detallada a continuación.
Para facilitar el aprendizaje de los nombres de los comandos, que provienen de abreviaciones
de palabras inglesas, usaremos las denominaciones inglesas para las distintas partes de los
instrumentos.
Cada instrumento específico se representa sólo por los bloques que lo constituyen. Por
ejemplo, un multímetro digital puede tener sólo los bloques de función de medida, TRIGger y
FORMat (figura 5.3). En cambio, para un generador de funciones sólo tendríamos: FORMat y Signal
generation (figura 5.4)1.
A continuación se describe cada uno de los bloques del modelo de instrumento definido.
- Signal ROUTing
Representa la posibilidad que tienen ciertos instrumentos para direccionar las señales de sus
conectores de entrada a distintos circuitos internos. Es análogo al bloque de direccionamiento
de señal visto en el apartado 5.2. Los comandos que controlan esta sección se denominan
ROUTe.
- MEASurement Function
Este bloque es el que realiza la medida, entendida en su sentido más amplio como una
transformación de una señal en un código que luego podrá ser procesado. Este bloque se
subdivide a su vez en los siguientes (figura 5.5): INPut, SENSe y CALCulate.
1
La parte de las palabras que está en mayúsculas coincide con el nombre de los comandos estándares abreviados para cada bloque.
más bajo serían distintos. En el voltímetro la medida se realiza con un comando del bloque
SENSe, mientras que en el osciloscopio habría que calcular (utilizando comandos del bloque
CALCulate) el valor eficaz a partir de las muestras adquiridas.
- INPut
Representa la etapa de adaptación de la señal de entrada, por ejemplo el acoplo AC,
DC, GND de osciloscopios.
- SENSe
Es propiamente el bloque de medida, que pasa de una señal eléctrica a un código que
luego puede ser procesado digitalmente.
- CALCulate
Su función es pasar los datos adquiridos por el bloque de medida a valores que sean
más apropiados para una aplicación concreta. Por ejemplo, calcular períodos,
frecuencias, tiempos de subida, etc. en un osciloscopio digital.
- Signal Generation
Este bloque también esta subdividido al igual que el de medida (figura 5.6). Su función es la
de pasar datos a una señal eléctrica. Para ello se pueden distinguir los siguientes sub-bloques:
- CALCulate
Su función es modificar el flujo de datos recibido para generar la señal deseada a la
salida.
- SOURce
La función de este bloque es determinar las características de la señal generada a
partir del flujo de datos suministrado.
- OUTput
Es la parte que determina cómo se aplica la señal generada. Incluye las funciones de
atenuación, filtrado, suma de tensiones continuas, etc.
- TRIGger
Su función es proveer al instrumento de medios para sincronizarse con eventos de las
señales, tanto internas como externas.
- MEMory
Es el almacén de datos interno al instrumento. Según sea el caso pueden realizarse
lecturas de datos, escrituras o guardarse parámetros de calibración internos.
- FORMat
Es el encargado de transformar el formato de los datos digitales internos al
instrumento a otros que sean transferibles a través del bus de control.
Los comandos en la norma SCPI se agrupan jerárquicamente en forma de árbol. En la raíz del
árbol se encuentran los comandos que hacen referencia a los bloques que aparecen en el modelo de
instrumento visto en la sección anterior. Cada uno de estos comandos se divide en un conjunto de
ramas identificadas por palabras clave que a su vez identifican a funciones subordinadas al bloque
raíz y así sucesivamente.
En la figura 5.7 se representa el arbol del bloque de INPut. La notación que se sigue es la
siguiente:
: indican el paso a un nivel jerarquico inferior. Para clarificar la notación también se ha
utilizado identación de los niveles inferiores.
[] palabras clave opcionales
<> encierran el tipo de parámetro
| separa parámetros opcionales (solo se puede poner uno de ellos)
; separa comandos que están en la misma línea (no cambia el nivel del último comando)
, se usa para separar distintos parámetros dentro de un mismo nivel
? indica que es un comando de consulta y que se espera una respuesta del equipo al que se
envía. Es muy importante leer el dato solicitado; de no ser así al enviar otro comando se crea
una situación de error en el instrumento.
INPut
:ATTenuation <numeric_value> <tipo de variable>
:AUTO <Boolean>|ONCE | separa parámetros opcionales
:BIAS
[:STATe] <Boolean> opcional
:VOLTage
[:DC] <numeric_value> opcional
:AC <numeric_value>
:TYPE CURRent|VOLTage
. otras opciones
. .
. .
:COUPling AC|DC|GROund
:GAIN <numeric_value>
:AUTO <Boolean>|ONCE
. otras opciones
. .
. .
INPut:BIAS:STATe OFF
INP:COUPling ?
INP:ATT 20
INPut:ATTenuation:AUTO; INPut:BIAS:STATe ON; INPut:BIAS:VOLTage:DC 0.1 V
INP:ATT:AUTO; INP:BIAS:STAT ON; VOLT:DC 0.1 V (esta línea realiza la misma programación
del instrumento que la anterior)
La sintaxis para los valores numéricos, las unidades y sus prefijos es la definida en los
apartados 7.2 y 7.3 de la norma IEEE-488.2. Los parámetros numerícos pueden ser en cualquier tipo
de notación: entera, decimal o científica. Entre los sufijos numerícos aceptados están: MA (106), k o
K (103), m o M (10-3), u o U (por µ: 10-6). También pueden enviarse las palabras MAXimum,
MINimum y DEFault.
Los parámetros booleanos pueden escribirse como ON y OFF o como 0 y 1. Los instrumentos
siempre responderán con 0 o 1.
5.3 Comandos
Los comandos comunes definidos en la norma IEEE-488.2 que deben estar implementados
para cumplir la norma SCPI son:
Los comandos específicos definidos en la norma SCPI se dividen a su vez en dos grupos, los
obligatorios y los opcionales. Los únicos bloques que son obligatorios son el de SYSTem y el de
STATus.
En la norma se estipulan todos los niveles inferiores posibles para cada uno de estos bloques.
En un instrumento en particular sólo se utilizarán aquellos comandos que tengan una función
definida. En la figura 5.9 pueden verse los comandos que son funcionales en un multímetro digital
para los bloques de medida y configuración. Se debe notar que si se envía un comando de medida, por
ejemplo:
MEASure
:VOLTage:DC? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:VOLTage:DC:RATio? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:VOLTage:AC? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:CURRent:DC? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:CURRent:AC? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:RESistance? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:FRESistance? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:FREQuency? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:PERiod? {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:CONTinuity?
:DIODe?
CONFigure
:VOLTage:DC {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:VOLTage:DC:RATio {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:VOLTage:AC {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:CURRent:DC {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:CURRent:AC {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:RESistance {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:FRESistance {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
:FREQuency {<range>|MIN|MAX|DEF},{<resolution>|MIN|MAX|DEF}
Fig. 5.9 Ejemplo de comandos posibles en un multímetro digital para los bloques de medida y configuración
el multímetro automáticamente realizará una medida y esperará a que se lea su registro de salida. En
cambio, con la instrucción:
CONF:VOLT:DC 10, 0.003
solo se configurará el instrumento pero la medida no se realizará hasta que se envíe una instrucción
adecuada, por ejemplo:
TRIG:SOUR EXT; READ?
en este caso el multímetro esperará a recibir un sincronismo de reloj externo para realizar la medida y
ponerla en su registro de salida.
Los bloques definidos por la norma son 10; entre corchetes [] se incluyen los bloques que son
opcionales:
ADIF: define el bloque general en el que se incluyen los demás, asignándole una etiqueta.
[REMark]: es un texto libre que contiene comentarios generales sobre los datos.
[ENCode]: especifica la codificación de todos los datos numéricos del bloque y, opcionalmente,
su valor máximo y mínimo o su resolución.
DIMension: este bloque puede repetirse varias veces y especifica la estructura y el formato de
cada bloque de datos. Los datos pueden ser implícitos, y en este este caso se incluirán
en el bloque DATA, o explícitos estando definidos en este bloque. Contiene otras
características como son: escala, offset y unidades de medida.
[ORDer]: especifica el orden dentro del bloque de datos para cada una de las dimensiones
implícitas que tenga. Los datos pueden estar ordenados por dimensiones (DIM) o de
forma alternada con un dato de cada dimensión (TUPLe).
[VIEW]: define relaciones entre los distintos grupos de trazas (TRACe), por ejemplo puede
identificar a una dimensión como parte real y a otra como parte imaginaria de un
número complejo.
DATA: contiene los datos propiamente dichos en el orden indicado por ORDer y en el
número indicado por las dimensiones implícitas y su longitud. Normalmente incluye
una comprobación de errores basada en una suma (CSUM)
El formato está estructurado en bloques; en la figura 5.10 puede verse un ejemplo. Cada nivel
jerárquico está definido por un nombre de bloque seguido de un paréntesis que incluye a los bloques
subordinados. Dentro de cada sub-bloque hay palabras clave seguidas de uno o más valores
numéricos. Los valores numéricos están separados por comas. Esta estructura de datos es compatible
con lo definido por la norma IEEE 488.2.
Todos los carácteres usados son ASCII de 7 bits (ANSI X3.4-1977). Los datos en el bloque
DATA pueden ir codificados en otros códigos distintos de ASCII. La norma especifica 11 tipos
distintos de codificación, desde números enteros en ASCII a bloques de datos en binario con distintas
longitudes (8, 16, 32 o 64 bits) pasando por formatos especiales para cadenas de caracteres, tiempo y
fecha.
El ejemplo de la figura 5.10 es bastante complejo; para mostrar el caso más simple podemos
poner parte de la misma información de la siguiente forma:
ADIF = datos1 (
STD (1.0)
DIM = amplitud (
TYPE EXP
UNIT "V")
DATA ( CURV ( VAL 233, -134, ... 389 ) ) )
ADIF = canal1 (
STD (VERSion 1.0)
REMARK (
NOTE "array opcional de un máximo de 255 caracteres")
IDENtify (
NAME "Ejemplo de formato"
DATE 1995-08-22
TIME 13:15:10.55
TEST (NUMBer "AD1","3.1"))
ENCode (
NOTE "array opcional de caracteres"
FORMat INT16
HRANge 1000
LRANge -1000)
DIMension = amplitud (
TYPE EXPLicit
SCALe 3.2E-6
OFFSet 1.0E-5
UNITs "V")
DIMension = tiempo (
TYPE IMPLicit
SCALe 1E-6
SIZE 1024
UNITs "S")
ORDer (
BY DIMension)
TRACE = respuesta_impulsional (
SYMMetry NONE
INDependent (LABel tiempo)
DEPendent (LABel amplitud))
DATA (
CURVe (
VALue 233,-134,...389
CSUM 67)))
La estructura se ha simplificado mucho pero a costa de perder información (en este caso la escala
temporal y otros datos identificativos), lo que está en contra de la filosofía básica de la norma, que es
el contener los datos en una estructura que sea autosuficiente para reconstruir toda la información
adquirida por los instrumentos de medida.
Los instrumentos tradicionales son autocontenidos, tanto las capacidades de entrada salida
como la interfase de usuario, botones, pulsadores, pantallas, etc., y otras características adicionales
son fijas. Dentro de la caja del instrumento convertidores A/D, circuitos acondiconadores de señal,
microprocesadores, memoria y un bus interno convierten señales del mundo real, las analizan, y las
presentan como resultados al usuario. El fabricante define completamente la funcionalidad del
instrumento, sin la posibilidad de ser cambiada por el usuario.
El instrumento virtual simula cada una de las partes descritas anteriormente, apoyándose en
elementos hardware accesibles por el ordenador (tarjetas de adquisición, instrumentos IEEE-488,
VXI, RS-232).
el software puede, sin embargo, llevar un coste asociado mayor que el del instrumento tradicional. Si
el usuario no dispone de las herramientas adecuadas de programación para el desarrollo de la
aplicación, las horas invertidas en la realización de los programas encarecerán el valor real del
instrumento final.
Tal como se ha visto, un instrumento virtual está formado por tres elementos principales:
adquisición de datos, análisis y presentación, tal como muestra la figura 6.1. Junto al gran crecimiento
de la microinformática han ido apareciendo en el mercado diversas herramientas de programación
para el desarrollo de sistemas de instrumentación virtual, que se centran en alguno o en todos los
elementos del sistema. La elección del entorno de programación vendrá condicionada por la
aplicación final del usuario.
El software que realiza el instrumento virtual y que se ejecuta sobre el controlador, en este
caso el ordenador, ha evolucionado con el tiempo. Los primeros entornos de programación permitían
el control de instrumentos o dispositivos externos al ordenador, un ejemplo es el Basic de la familia
HP9000 (la mayor parte de los instrumentos de HP programables mediante el bus IEEE-488 todavía
incluyen ejemplos de programación en Basic). Otros fabricantes de interfases para ordenador
suministraban, primero, un conjunto de funciones (funciones de nivel 0 o de registro) que se dejaban
residentes en memoria y a las que se accedía mediante interrupciones software. Posteriormente
suministraban librerías de funciones (funciones de nivel 1) que se podían llamar desde lenguajes de
alto nivel, ( C, Basic o Pascal) que ejecutaban las interrupciones software. Estas primeras
herramientas facilitaban el control de la interfase de comunicaciones con instrumentos externos y
eran independientes del instrumento a controlar. No obstante, éstas no incluían utilidades para el
análisis de datos ni la presentación de los mismos. La creación de instrumentos virtuales, con
Programación gráfica
Programación linguística
Drivers de instrumentos
Comandos
488.2 VXI DAQ
Serie
DSP
Mensaje Mensaje
IEEE 488.2 Registro Registro Mensaje
Bus RS-232
GPIB VXI
Ordenador Serie
El siguiente paso fue crear librerías de funciones específicas para un determinado instrumento
o conjunto de instrumentos de un fabricante. Evitan la necesidad de aprender los comandos o las
instrucciones del instrumento por parte del programador. Cada una de estas funciones (de nivel 2)
suele hacer uso de una serie más o menos compleja de funciones de nivel 1 y 0. A este conjunto de
funciones se le denomina driver de instrumento y pueden encontrarse en forma de librerías enlazables
a un lenguaje de programación (C, Basic, Pascal), o bien en formato DLL (Dyamic Link Library) para
MS-Windows de manera que se pueden llamar desde cualquier entorno de programación (figura 6.2).
Al igual que las funciones de nivel 1 y 0, las de nivel 2 siguen abarcando únicamente la
adquisición de datos, bien sea a través de instrumentos convencionales provistos de interfase GPIB,
RS-232 o VXI, o con tarjetas de adquisición de datos incorporadas al bus del propio ordenador.
No obstante, los mismos fabricantes de software ofrecen entornos programación propios para
el desarrolo de aplicaciones que permiten acceder a estas librerías de una forma mas fácil. Estos
entornos ya incluyen herramientas para el análisis y presentación de datos más o menos elaboradas.
El primer grupo lo comprenden aquellos entornos que han sido desarrollados para el control
de un instrumento específico o tarjeta de adquisición de datos. Permiten, mediante una interfase de
menús desplegables, configurar y programar el dispositivo para la adquisición de una señal y su
visualización. Un ejemplo de estos entornos es el software DAQ-Ware de National Instruments que
ofrece con sus tarjetas de adquisición datos. Permite configurar el número de canales, la ganancia y la
frecuencia de muestreo de sus tarjetas y visualizar en pantalla las señales adquiridas así como
salvarlas a fichero.
VisuaLab (IOtech): Es una extensión del entorno Visual Basic para el desarrollo de
aplicaciones de adquisición de datos.
Uno de los primeros y más conocido de los entornos de programación gráfica es el LabView
(National Instruments), que apareció en el año 1986. Las primeras versiones funcionaban sólo sobre
Macintosh, que eran entonces los únicos que disponían de memoria suficiente, 1 Mbyte, y de un
sistema operativo avanzado. Actualmente está disponible en versiones Macintosh, PC MS-Windows y
para estaciones de trabajo Sun SPARC.