Instrumentación

Implementación de VISA en GNU/Linux

Después de un periodo sin escribir nada en mi blog me gustaría retomar el ritmo y seguir publicando más información referente a mi proyecto para el III CUSL.

Tras revisar varios sitios y algunos documentos sobre instrumentación virtual, parece evidente que el siguiente paso para conseguir una implementación libre de LabGNU será crear una librería VISA abierta. Buscando he podido encontrar OpenVISA (para C), pero parece que está abandonada desde hace tiempo. También existe una librería para python llamada PyVISA, pero que será poco útil de momento, ya que su funcionamiento se lo debe a un módulo de python (parte del mismo proyecto) llamado vpp43, que por lo poco que he mirado parece que se apoya en una librería externa propietaria del fabricante de hardware. El objetivo de este módulo es adaptar las llamadas a la librería propietaría desde el lenguaje python. También le veo un gran inconveniente, y es que los nombres de las funciones cambian, por lo que por ejemplo la función estándar definida por la especificación VISA como viRead, en python sería read, y esto pasa con todas las funciones. De momento queda descartado el uso de este proyecto en LabGNU.

De momento creo que lo principal es tener una implementación de VISA abierta, y salvo que OpenVISA tenga un grado suficiente de madurez, tendré que empezar a construirla. En esta primera fase del proyecto creo que me contentaré con la implementación tenga soporte para RS-232 y según el tiempo disponible GPIB o USB.

De momento esto es todo lo que he podido hacer, ya que el tiempo libre que tengo es menor cada día.

Protocolos para instrumentación

Ya he empezado a buscar información sobre los protocolos y estádares (de norma y de facto) que existen para la comunicación de datos en equipos de instrumentación y la verdad es que hay literatura para un rato...

En una primera búsqueda de información he podido dar con los siguientes protocoles y tipos de conexiones:

  • IEEE-488
    También conocido como GPIB o HP-IB, creado por HP a finales de los 60 y estandarizado por el IEEE en 1975. Posteriormente, en el 2003, National Instruments introdujo una extensión que era compatible hacia atrás, y que permitía velocidades de hasta 8Mbit/s, era conocida como HS-488. La interfaz de conexión es mediante un conector paralelo de 24 pines.
  • LXI
    Este nuevo estandar se creó para sustituir a GPIB. Se desarrollo por un consorcio creado por las grandes compañías de instrumentación y electrónica como Agilent, National Intruments y EADS entre otras muchas. Se basa en una interfaz LAN (incluyendo enlaces inalámbricos), un protocolo para controlar el tiempo con alta precisión (IEEE 1588, PTP) y un sistema de disparo cableado basado en LVDS.
  • VXI
    Es una plataforma estandar abierta basada en VMEBus. Además se define un tipo de chasis común para que las tarjetas de distintos fabricantes puedan ser instaladas en el mismo sistema. Eran un tarjetas grandes parecidas a los actuales racks de servidores.
  • PXI
    Es una plataforma modular en la que los distintos módulos se basan en conexiones CompactPCI (similar a PCI). La gran ventaja es que en un mismo sistema PXI pueden instalarse módulos de distintos fabricantes.
  • VISA
    Tras la creación de VXI se decidió especificar también la forma en la que se comunicaban PC e instrumentos de test y medidas, para ello se creo VISA (Virtual Instrument Software Architecture) como un estandar abierto. Principalmente está pensado para comunicarse a través de interfaces típicamente de instrumentos de test y medidad, como VXI o GPIB. Actualmente existen especificaciones para interfaces típicas de PCs, tal y como USB (USBTMC) o TCP/IP (VXI-11).

De momento creo que con todo esto ya tengo para hacerme una idea. Lo siguiente será indagar sobre USBTMC, ya que pienso que es lo más importante en la primera etapa del proyecto. También tendré que buscar mucha más información sobre VISA y ver si hay algo en referencia al puerto serie (que me ha extrañado no ver por ningún lado).

Distribuir contenido