Configuración del controlador GPIB para que coincida con su sistema

Información general

Uno de los problemas más comunes que tiene un desarrollador GPIB Software es configurar el software para que coincida con los requisitos de cada sistema de prueba. Debido a que un controlador opera con una variedad de sistemas, configurarlo debe ser fácil. El software NI-488 de NI ofrece varios métodos de configuración para que pueda elegir el mejor método para su aplicación. Este documento describe cada uno de los métodos de configuración disponibles con el software NI-488 MS-DOS.


Contenido

Opciones de configuración del GPIB

Hay tres métodos que utilizan el software NI-488 para cambiar las opciones de configuración predeterminadas de su sistema. Son los siguientes:

  • Ejecute la utilidad de configuración IBCONF.
  • Ejecute un archivo por lotes especial (.BAT) que cambie el archivo IBCONF dinámicamente.
  • Utilice funciones de configuración especiales desde su programa de aplicación.


En las secciones siguientes se explican los métodos para cambiar las características de configuración del controlador y las ventajas de cada método.

 

Método 1: La utilidad de configuración IBCONF


IBCONF.EXE es un programa interactivo orientado a la pantalla que pasa dos grupos de características al controlador. El primer grupo consiste en las características de los dispositivos conectados a la interfaz GPIB. Cada dispositivo tiene las siguientes características:

  • Un nombre simbólico (como DEV5, PLOTTER o METER).
  • Una dirección GPIB primaria y, si se utiliza, una dirección secundaria.
  • Límite de tiempo impuesto al ejecutar determinadas funciones. Este plazo garantiza que las transferencias no cuelguen el GPIB indefinidamente.
  • Un método de terminación de datos al ejecutar llamadas de dispositivo: mediante un carácter de fin de cadena (EOS), una señal de fin o identificación (EOI) y/o un recuento de bytes.
  • Activar o desactivar el parámetro de direccionamiento repetido para llamadas consecutivas a un dispositivo.


El segundo grupo consiste en las características de cada placa de interfaz GIB en el ordenador. El controlador NI-488 puede controlar hasta dos placas de interfaz GPIB. Cada placa de interfaz GPIB tiene las siguientes características:

  • Nombre simbólico (GPIB0 o GPIB1).
  • Una dirección GPIB primaria y, si se utiliza, una dirección secundaria.
  • Capacidad para ser designado como Controlador del Sistema de los dispositivos en su bus y acciones específicas para desempeñarse como Controlador del Sistema.
  • Un límite de tiempo al ejecutar ciertas funciones.
  • Un método de terminación de datos GPIB cuando se ejecutan funciones de placa, mediante un carácter EOS, una señal EOI y/o un recuento de bytes.
  • Una línea de interrupción que el tablero usa, si la hay.
  • Un canal DMA que la placa utiliza, si lo hay.
  • Velocidad de temporización (retardo T1) al transferir datos.


Las ventajas de ejecutar y modificar IBCONF manualmente son que tiene total flexibilidad en la configuración de cada dispositivo, y no tiene que agregar código de configuración a cada programa de aplicación.

 

Método 2: Modo por lotes IBCONF


El modo por lotes IBCONF ofrece un método alternativo para modificar los parámetros de configuración del controlador NI-488. En el modo discontinuo, la información de configuración está contenida en un archivo de configuración que crea. Para cargar la información de configuración del archivo que ha creado, escriba el siguiente comando:

ibconf -b nombre de archivo <Enter>


donde filename es el nombre del archivo de configuración, por ejemplo, sample.cfg. Debe haber al menos un espacio entre -b y nombre de archivo.

No verá el mapa del dispositivo IBCONF, pero verá un mensaje solicitando actualizar el controlador GPIB cargado en la memoria. Responder sí elimina la necesidad de reiniciar el equipo después de realizar los cambios. Sin embargo, puede eliminar el símbolo para que el controlador se actualice automáticamente ejecutando IBCONF con la opción -d. Esto configura automáticamente la versión cargada del controlador.

El modo por lotes es útil tanto para desarrolladores de GPIB que distribuyen programas ejecutables como para usuarios finales de GPIB. Para los desarrolladores que tienen una base instalada de programas, el uso de este modo por lotes de IBCONF es una manera fácil de garantizar una configuración adecuada sin tener que hacer ningún cambio en sus programas existentes. El usuario simplemente ejecuta el archivo por lotes y los dispositivos GPIB se configuran automáticamente. Los programadores pueden desarrollar archivos por lotes para cada uno de sus programas.

El archivo por lotes se puede editar usando cualquier editor de texto. El archivo por lotes es un archivo de texto de forma libre que consta de pares de elementos. Cada elemento debe estar separado por al menos un espacio o un nuevo carácter de línea: esta es la única restricción de formato. El primer elemento de un par es un mnemotécnico que representa una característica de placa o dispositivo, o una función de configuración de mapa placa/dispositivo (por ejemplo, renombrar, conectar, desconectar) que se va a configurar. El segundo elemento de un par es el valor al que se debe establecer el primer elemento (mnemotécnico). Por ejemplo, para cambiar el nombre de dev8 en el mapa del dispositivo al escáner, introduzca la siguiente línea de código en el archivo por lotes:



Para activar el sondeo serial automático para gpib0, introduzca la siguiente línea de código:

Encontrar tablero0 hechizo sí

Todas las características encontradas en el archivo IBCONF real se pueden alterar utilizando el método de modo discontinuo, incluyendo la dirección de E/S base, el ajuste de interrupción y el canal DMA. También puede conectar y desconectar dispositivos de las placas de interfaz GPIB tal como puede hacer con el mapa de dispositivos IBCONF. La tabla 1 contiene una lista de todos los pares válidos de elementos de configuración. Cualquier valor que se pueda introducir como número se puede introducir en decimal o hexadecimal. Los números hexadecimales deben ir precedidos de 0x (por ejemplo, el decimal 64 se escribiría como 0x40).

Tabla 1. Pares de comandos en modo discontinuo
Primer punto
Segundo punto
Mnemotecnia
Explicación
Valor
encontrarBuscar tablero o dispositivoboard# o device#
padDirección GPIB primarianúmero
tristeDirección GPIB secundarianúmero
tmoAjustes de tiempo de esperanúmero o mnemónico
eosByte EOSnúmero
reosTerminar leer en EOSsí o no
xeosEstablecer EOI con EOS en escriturasí o no
binTipo de comparación en EOS7-bit u 8-bit
eotEstablecer EOI con el último byte de escriturasí o no
scControlador del sistema (solo placa)sí o no
sreafirmar REN cuando SC (solo tablero)sí o no
spollhabilitar el sondeo automático en serie (solo en placa)sí o no
tmngTemporización (solo tablero)2usec, 500nseg,
350nseg
e488_2habilitar 488.2 protocolos (solo placa)sí o no
cic_protProtocolo CIC (solo placa)sí o no
intajuste de interrupción (solo placa)número
puertoDirección de E/S base (solo tablero)número
dmaCanal DMA (solo placa)número
raddrrepetir direccionamiento (solo dispositivo)sí o no
namerenombrar un dispositivo (solo dispositivo)Nombre del dispositivo
conectarconectar un dispositivo a una placa (solo dispositivo)board#
desconectardesconectar un dispositivo de una placa (solo dispositivo)ningún valor
tipocambiar la placa actual al modo PC2 o PC2Apc2 o pc2a



El siguiente ejemplo es un archivo de configuración de ejemplo junto con una explicación paso a paso de cada entrada.

Ejemplo: archivo de configuración de muestra scanner.cfg

Requisitos:

  1. Cambie el nombre del primer dispositivo a escáner.
  2. Cambie el nombre del tercer dispositivo al ámbito.
  3. Cambiar la configuración de board0 (gpib0).
    • Dirección primaria a 2 (pad 2)
    • Ajuste de tiempo de espera a T30s (tmo T30s)
    • Byte EOS a hex 1E (eos 0x1E)
    • Capacidad del controlador del sistema a NO (sc no)
    • Tipo de comparación en EOS a 8 bits (bin 8 bits)
    • Velocidad de sincronización de bus GPIB a 350 nseg (tmng 350nseg)


Archivo de configuración :

 

Método 3: Funciones de configuración especiales

Un tercer método para configurar dispositivos es configurarlos dinámicamente dentro del programa de aplicación usando funciones de configuración especiales. Como se ha descrito anteriormente, la configuración de un sistema GPIB requiere el conocimiento del bus y de los dispositivos a los que está conectado. Los desarrolladores de software de aplicación pueden configurar dinámicamente el controlador para que los usuarios principiantes no tengan que entender o editar IBCONF. Este método también es ideal para ejecutar muchas configuraciones diferentes del sistema con la misma placa de interfaz GPIB. Los cambios de configuración realizados en el programa solo se aplican mientras se ejecuta el programa. Al finalizar, los parámetros de configuración se restauran a sus ajustes originales. Este método de configuración no solo es más eficiente, sino que también lo hace muy fácil, porque viene en forma de llamadas a funciones de subrutina.

La función IBCONFIG
Mediante el uso de la función de configuración más potente, ibconfig, puede configurar dinámicamente todos los parámetros de software que se encuentran en IBCONF con solo agregar llamadas a la función ibconfig al programa de aplicación. Puede asegurarse de que el controlador está configurado correctamente independientemente de la configuración en IBCONF. Los parámetros de configuración de ibconfig se pueden dividir en dos grupos: parámetros de placa y parámetros de dispositivo. Los parámetros de la placa, por ejemplo, activan/desactivan las interrupciones de hardware o activan/desactivan el sondeo automático en serie. Los parámetros del dispositivo pueden habilitar/deshabilitar el direccionamiento repetido.

También puede seleccionar direccionamiento primario y secundario, tiempo de espera y terminación de fin de cadena mediante ibconfig. Sin embargo, las funciones de configuración NI-488 tradicionales ibpad (cambiar dirección primaria), ibsad (cambiar dirección secundaria), ibtmo (cambiar configuración de tiempo de espera), ibeos (establecer carácter de fin de cadena) e ibeot (establecer mensaje de terminación de FIN) todavía son compatibles. La siguiente parte del código muestra cómo se utiliza la función ibconfig.

REM QuickBASIC 4.5 Ejemplo
REM El siguiente código configura un dispositivo para el funcionamiento GPIB.
REM
REM $INCLUIR: 'qbdecl.bas'
CALL ibfind ("dev1", dev%)

REM Cambiar la dirección principal a 7.
opción% = IbcPAD:valor% = 7
LLAMADA ibconfig(dev%, option%, value%)

REM Cambia el tiempo de espera a 10 segundos.
opción% = IbcTMO:valor% = 13
LLAMADA ibconfig (dev%, option%, value%)

La función IBLN
La función ibln busca un Listener en la dirección especificada. Esto es similar a la rutina NI-488.2TM FindLstn, excepto que el parámetro es una única dirección de dispositivo, no una matriz de direcciones. ibln es útil para escanear varias direcciones para averiguar qué Listeners están en el bus. Una vez que sepa cuál es la dirección, puede usar ibconfig para cambiar la dirección principal de ese dispositivo en el controlador.

La siguiente parte del código QuickBASIC busca Listeners en todas las direcciones primarias GPIB (sin direcciones secundarias) en el bus e informa qué dispositivos se encontraron.

REM $INCLUIR: 'qbdecl.bas'
Dispositivo DIM%(30)
cnt% = 0
REM
REM La siguiente llamada abre dev1 como un dispositivo genérico.
REM Necesita un descriptor de unidad para llamar a ibln.
CALL ibfind("dev1", dev%)
REM
REM Debido a que no está buscando direcciones secundarias, establezca
REM el parámetro sad a 0. sad% = 0
REM Ahora escanea las 30 direcciones primarias posibles.  Note que
REM no estás comprobando la dirección 0 porque es la predeterminada
Dirección REM del controlador GPIB, que siempre debe ser
REM escuchando.
PARA i% = 1 a 30

LLAMADA ibln(dev%, i%, sad%, listen%)

REM Compruebe la respuesta para ver si un oyente está presente en el
Dirección REM especificada por i%.  Si un dispositivo está escuchando, guarde
REM la dirección en el array Device%(), que es un listado
REM de todos los oyentes activos.
REM
REM Incrementa la cuenta a medida que se encuentra cada Listener.

SI escucha% = 1 ENTONCES
Dispositivo% (cnt%) = i%
cnt% = cnt% + 1
 FIN IF

SIGUIENTE i%
REM Ahora imprime las direcciones activas.
PRINT "Los dispositivos están presentes en las siguientes direcciones"
PARA j% = 0 a cnt% - 1
PRINT "Un dispositivo está en la dirección GPIB"; Device%(j%)
SIGUIENTE j%

La función IBDEV
En las aplicaciones NI-488 tradicionales, la función ibfind se utiliza para abrir dispositivos para la comunicación. ibfind devuelve un número (el descriptor de la unidad) para que se puedan realizar llamadas GPIB a ese dispositivo. Sin embargo, para usar ibfind, el nombre del dispositivo debe estar preconfigurado en IBCONF, de lo contrario, ibfind fallará. Como puedes ver, esta es una deficiencia si no conoces el nombre del dispositivo.

Usando la función ibdev en lugar de la función ibfind, puede abrir e inicializar un dispositivo sin saber su nombre. ibdev es similar a ibfind, excepto que no pasa un nombre de dispositivo como uno de los argumentos de la función. ibdev simplemente abre el primer dispositivo configurable por el usuario sin abrir que encuentra y devuelve un descriptor de unidad que se usa en ibconfig, ibln y todas las demás llamadas a nivel de dispositivo. Después de llamar a ibdev para obtener un descriptor de unidad, también puede necesitar llamar a ibconfig para configurar características de comunicación no configuradas usando ibdev.

Un ejemplo de cómo usar ibdev se muestra a continuación.

El % del índice REM bd. es 0 para gpib0 o 1 para gpib1.
bd.index% = 0
REM pad% es la dirección principal del dispositivo que desea
REM abierto. Supongamos que en el programa anterior, usted determina
REM que había un dispositivo de escucha en la dirección 7.
pad% = Dispositivo%(0) : sad% = 0
REM Para los demás parámetros que se deben especificar, establezca
REM el tiempo de espera a 10 segundos, habilite el mensaje END en
REM escribe y deshabilita cualquier terminación de EOS.
tmo% = 13 : eot% = 1 : eos% = 0
REM Al llamar a ibdev, el valor devuelto en ud% es el
Descriptor de unidad REM.
Llamada ibdev (bd.index%, pad%, sad%, tmo%, eot%, eos%, ud%)

 

Resumen


En el presente documento se describen dos métodos alternativos para configurar un sistema GPIB distintos del método tradicional IBCONF: el método del modo por lotes y el método del programag. Ambos nuevos métodos configuran de forma transparente el controlador con poco o ningún esfuerzo del usuario final. Usando el modo por lotes, puede crear un archivo por lotes que configure la configuración en IBCONF sin que un usuario final tenga que editar realmente el archivo IBCONF. Con las funciones de configuración NI-488 puede configurar dinámicamente el controlador añadiendo funciones al programa. Tres de las funciones de configuración NI-488 más potentes (ibconfig, ibln e ibdev) pueden encontrar un Listener en particular y cambiar todos los ajustes de configuración que se encuentran en IBCONF dentro de su programa de aplicación.

 

Was this information helpful?

Yes

No