SciELO - Scientific Electronic Library Online

 
vol.2 número3Aplicación del Simulador ChemCAD TMen la Enseñanza en Carreras de IngenieríaCAN2PCI: Placa con Interfaz al Bus CAN y PCI con Finalidad Docente índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

Compartir


Formación universitaria

versión On-line ISSN 0718-5006

Form. Univ. v.2 n.3 La Serena  2009

http://dx.doi.org/10.4067/S0718-50062009000300005 

Formación Universitaria-Vol. 2 Nº3-2009, pág.: 25-30

ARTICULOS

ADQPCI: Placa de Adquisición de Datos con Fines Docentes

ADQPCI: Data Acquisition Board for Educational Purposes

Francisco J. Quiles, Manuel A. Ortiz, Carlos D. Moreno y María Brox
Universidad de Córdoba, Escuela Politécnica Superior, Departamento de Arquitectura de Computadores, Electrónica y Tecnología Electrónica, Edificio Leonardo Da Vinci,
Campus Universitario de Rabanales, Ctra. Madrid-Cádiz Km. 396-A, 14071 Córdoba-España
(e-mail: el1qulaf@uco.es)


Resumen

En este trabajo se presenta una de las placas de adquisición de datos que se ha desarrollado con fines docentes para su utilización en prácticas relacionadas con sistemas en tiempo real e informática industrial y se plantean algunas de las ventajas e inconvenientes frente a la utilización de placas comerciales. A lo largo del trabajo se detalla el diseño del hardware, en el que se ha priorizado la facilidad de programación, siendo ésta una de las ventajas frente a las placas comerciales. En estas prácticas es fundamental que el alumno tome conciencia de la importancia de la interfaz hardware-software, si se quiere conseguir un sistema fiable y que explote al máximo las características del hardware. Con el desarrollo de una placa de adquisición de datos se consigue un sistema que el alumno puede utilizar en varias asignaturas de su titulación que están relacionadas con el desarrollo y programación de sistemas empotrados.

Palabras clave: adquisición de datos, diseño hardware, sistemas empotrados, interfaz hardware-software, fines docentes


Abstract

In this work a data acquisition board developed for educational use in subjects related to real-time systems and industrial computing, is presented. The main advantages and disadvantages of using these boards versus the use of commercial boards are discussed. The hardware design described along this work emphasizes the facility of programming the board, which is one of the main advantages versus the commercial boards. In these practices it is essential that student comprehend the importance of the hardware-software interface in order to obtain a reliable system which exploits in a maximum way the characteristics of the hardware. The development of a data acquisition board allows to obtain a system that the students can use in several course during his university career which are related to the development and programming of embedded systems. 

Keywords: data acquisition, hardware design, embedded systems, hardware-software interface, educational objectives


INTRODUCCIÓN

En los laboratorios de Electrónica es habitual la utilización de placas de adquisición de datos como parte de la Instrumentación Virtual (Golberg et al., 2000) o como parte de los sistemas de control. Actualmente existe una amplia oferta comercial de Instrumentos Virtuales, que incluye incluso la correspondiente placa de adquisición de datos. Estos tienen el inconveniente de que suelen ser aplicaciones muy generales, por lo que no se adaptan completamente a nuestras necesidades docentes. Esto se soluciona haciendo un diseño a medida, según las necesidades de las prácticas a realizar en cada tipo de laboratorio. Existen numerosos trabajos que analizan las ventajas e inconvenientes de la Instrumentación Virtual frente a la tradicional (Grimaldi et al., 2005; Nedic et al., 2003). El grupo de trabajo del presente estudio ha desarrollado también varios instrumentos virtuales en su vertiente hardware y software (Quiles et al., 2006; Torres et al., 2002).

En cuanto a la utilización de las placas de adquisición en sistemas de control se pueden dividir las prácticas en dos grupos. Un grupo de prácticas serían aquellas en las que el objetivo principal es realizar el  software de control. En estas prácticas interesa que el alumno preste su atención en los lazos de control y se utiliza la placa de adquisición como un recurso más del computador. Se utilizan habitualmente librerías que abstraen al programador del hardware de la placa. Para el otro grupo de prácticas, que se podrían denominar de informática industrial y/o de sistemas en tiempo real, es importante conocer el proceso de adquisición de datos y por tanto es necesario conocer el hardware y el software que maneja este hardware. Para llevar a cabo este objetivo se requiere por tanto disponer de toda la información detallada de la placa de adquisición.

En este último grupo de prácticas disponer de una placa de adquisición con fines docentes, donde se conozca minuciosamente el hardware y se haya simplificado su programación, reduce el esfuerzo del alumno, centrando su atención en otros aspectos de las prácticas proporcionando una importante ayuda en la labor docente.

CARACTERÍSTICAS GENERALES DE LA PLACA ADQPCI

La placa diseñada se puede englobar en la gama medio-baja, pero incluye todo lo necesario para implementar multitud de aplicaciones de control y de Instrumentación Virtual. En la Fig. 1 se muestra una fotografía de la placa ADQPCI. Sus características más importantes son:

Otra característica que se consideró imprescindible en el diseño, es que fuese muy fácil de programar, tratando de reducir al mínimo posible los pasos a seguir en la configuración. Por eso, se ha incluido dos registros digitales independientes, uno de entrada y otro de salida. De esta forma sólo hay que realizar el acceso de lectura (entrada) o de escritura (salida), sin necesidad de configurar la dirección del puerto, como sería el caso, si se hubiera optado por unos puertos bidireccionales. El puerto de salida es direccionable bit a bit facilitando así la actuación sobre este puerto. Tampoco se han incluido buffers para los datos adquiridos en el conversor A/D, que aunque reducen las prestaciones simplifican en gran medida la programación.


Fig.1: Vista superior de la placa ADQPCI.

DESCRIPCIÓN DE LA PLACA ADQPCI

En la figura 2 se indica el diagrama de bloques de la placa ADQPCI. El bloque de conversión analógico/digital consta de un conversor MAX118, que tiene 7 canales de entrada utilizables y 8 bits de resolución, un multiplexor analógico de 8 a 1, 74HC4051, y un amplificador de ganancia programable (AGP), AD526. Los 8 primeros canales analógicos de entrada se multiplexan mediante el 74HC4051 y la salida de éste se conecta al AGP. La conversión de estos 8 canales se realiza a través del primer canal de entrada del conversor. Los otros 6 canales de entrada se conectan a los restantes canales del conversor. Por tanto, sólo se puede configurar la ganancia en los 8 primeros canales de entrada. Para seleccionar el canal a convertir se debe configurar adecuadamente las entradas de selección, tanto del multiplexor como del conversor. La señal de fin de conversión se conecta al bloque de control.

El bloque de conversión digital/analógico consta de un conversor con 2 salidas (AD8582), que incluye el generador de tensión de referencia, y 3 amplificadores operacionales. Dos se usan para proteger y amplificar el nivel de salida, de forma que se obtenga una resolución de 20mV por LSB. El otro operacional se usa para generar la tensión de referencia al MAX118.

El registro de entrada se implementa mediante un buffer 74HC244 y el de salida mediante un latch 74HC259. Estos circuitos que implementan puertos digitales se han montado en zócalos para que sean reemplazados fácilmente, si se deterioran por una mala manipulación o conexión en prácticas.

El bloque de control se ha realizado mediante el CPLD ispM4A5-256/128 de Lattice Semiconductor (http://www.latticesemi.com), que es programable a través del conector JTAG. Realiza las siguientes funciones:

- Un interfaz básico al bus PCI, que incluye el espacio de configuración y un segmento de E/S de 256 bytes para poder acceder a los distintos periféricos de la placa.
- Decodificador de direcciones que genera las señales de selección de los periféricos.

- Generador de estados de espera al bus PCI según el periférico al que se acceda.

- Obtener un bus de datos de 32 bits para el espacio de configuración y otro de 8 bits que conecte  a  todos los componentes de la placa.

- Temporizador/contador de eventos de 16 bits.

- Registro de lectura para determinar el estado de la placa: fin de conversión y fin del timer.

- Controlador de interrupciones, que incluye un bit de máscara y un EOI (fin de interrupción) para cada una de las dos peticiones: fin de conversión y fin de cuenta del timer.

- Registro de selección de canal analógico de entrada y conversor de código.

Fig. 2: Diagrama de bloques de la placa ADQPCI.

Para facilitar al programador la selección del canal a convertir, se ha realizado un conversor de código, que a partir del contenido del registro de selección genera adecuadamente las señales de selección al multiplexor y al conversor A/D. Así, el programador solamente tiene que escribir en el registro de selección el número binario del 0 al 13 que identifica el canal.

La descripción del diseño del CPLD se ha realizado en VHDL (Ashenden, 1996) y se ha sintetizado mediante la herramienta ispLEVER Starter V6. La programación se realizó a través del conector JTAG mediante la herramienta ispVM SYSTEM V16. Ambas son proporcionadas gratuitamente por Lattice Semiconductor (http://www.latticesemi.com).

VENTAJAS DE LA UTILIZACIÓN DE LA PLACA ADQPCI EN PRÁCTICAS

Una vez realizada una simple clasificación en la introducción de las diferentes prácticas que se suelen realizar en los laboratorios de Electrónica, cabe decir, en lo que se refiere a Instrumentación Virtual, que la mayoría de las veces se prefiere un sistema comercial por estar más depurado, tener numerosas prestaciones, y no tener que dedicar recursos a su diseño y desarrollo.  Aunque a veces se olvida que el desarrollo de sistemas electrónicos contribuye en gran medida tanto a la formación del profesorado como del alumnado.

En el grupo de prácticas relativas a Informática Industrial y Sistemas en Tiempo Real se requiere tener unas placas de adquisición de datos propias, como la que se presenta, de la que se disponga de toda la información relativa al hardware y modo de programación, ya que parte del objetivo de estas prácticas es que el alumno conozca cómo se lleva a cabo la adquisición de datos en un sistema computacional. Incluso en la asignatura de Informática industrial de I.T.I. Electrónica Industrial, se puede describir el hardware de la placa, que se empleará en prácticas, como ejemplo de sistema de adquisición de datos.

Por otro lado, en la asignatura de Sistemas Informáticos en Tiempo Real de Ingeniería en Automática y Electrónica Industrial, se necesita tener una placa de adquisición que sea sencilla de programar, para que el alumno centre su atención en la programación del sistema operativo y en el estudio de los tiempos de ejecución de la aplicación y las tareas que la formen. Además en este tipo de sistemas es esencial que el alumno conozca la interacción hardware-software (Kooman et al., 2005).

Independientemente de lo comentado anteriormente, a lo largo de los estudios, el alumno tiene que utilizar algún sistema operativo de propósito general y algún sistema operativo en tiempo real. En este caso es difícil encontrar un fabricante de placas de adquisición de datos que proporcione librerías adecuadas para todos los sistemas operativos utilizados. En el caso de la titulación de I. en Automática y Electrónica Industrial de la Universidad de Córdoba el alumno utiliza Windows (http://www.microsoft.com) y el sistema operativo en tiempo real Phar Lar ETS (http://www.ardence.com/embedded). Habitualmente se utilizan placas distintas por no disponer de librerías para estos sistemas operativos. Además en algunas asignaturas optativas también se utiliza el sistema operativo VxWorks (http://www.windriver.com/vxworks). Si se tiene una placa en la que se conozca el hardware y el mapa de registros, una vez escritas las funciones básicas se pueden adaptar a cualquier sistema operativo en tiempo real, y por tanto se simplifica el esfuerzo de programación del alumno.

Por supuesto, cabe decir, que para muchos docentes, el esfuerzo de desarrollar una placa de adquisición de datos con fines docentes y el conjunto de unas librerías básicas para su manejo no está justificado y se opta por la compra de una placa comercial. Para otros docentes, entre los que se encuentran los autores de este trabajo, es fundamental el diseño y desarrollo de hardware como una labor docente más. Otros docentes, muestran incluso la necesidad de ampliar en el diseño hardware del sistema,  los contenidos de algunos cursos de diseño de sistemas empotrados, que se imparten en Universidades Europeas (Bertels et al., 2007).

EXPERIENCIA DE LA UTILIZACIÓN DE LA PLACA ADQPCI EN PRÁCTICAS

La placa ADQPCI se está utilizando en la asignatura de Sistemas Informáticos en Tiempo Real de la titulación de Ingeniero en Automática y Electrónica Industrial de la universidad de Córdoba. Los resultados han sido satisfactorios y justifican el esfuerzo realizado en su desarrollo. El profesor de prácticas conoce en detalle el hardware de la placa y el interfaz que presenta al bus PCI, pudiendo argumentar mucho mejor las operaciones que se deben realizar en la placa.

Entre las funciones que deben codificar lo alumnos, está la programación de una función que localice la placa en el bus PCI y localice la interrupción asignada. Una vez localizada la placa debe obtener su dirección base y puede comenzar a operar con ella. Con esta placa se  puede mostrar el proceso de configuración de dispositivos en el bus PCI.

A continuación se exponen el conjunto de registros que, dada la sencillez de la placa, se reduce a una decena. Posteriormente se agrupan los registros y se detalla la programación para los puertos digitales, conversores, etc.  De acuerdo a cada práctica el alumno programa uno de los interfaces y realiza operaciones con ellos, que posteriormente se comprueban con el osciloscopio. Durante el curso el alumno no requiere de ninguna función para la realización de las prácticas que no haya sido desarrollada por él.

CONCLUSIONES

La placa ADQPCI ha sido diseñada priorizando la simplicidad y la sencillez sin perder prestaciones. Se tiene en una sola placa conversión A/D, conversión D/A, puertos digitales y timers. Se han utilizado conectores simples y robustos que facilitan la labor del alumno en los laboratorios de electrónica. Los circuitos integrados con conexión al exterior se han montado en zócalos lo que facilita su sustitución.

Se conoce con detalle los mapas de registros y los tiempos de adquisición y está pensada para que se programe simple y fácilmente y así el alumno  pueda aprovechar mejor el tiempo de prácticas. En este sentido se han seleccionado circuitos de conversión sencillos; los puertos digitales son unidireccionales, de entrada o salida; la programación del canal para la conversión se realiza con una sola escritura en un registro; no se han incluido buffers intermedios para los datos adquiridos y la placa se ha mapeado en el espacio de entrada/salida del bus PCI.

La utilización de la placa de adquisición de datos  ADQPCI en la asignatura de Informática Industrial de la titulación de I.T.I. Electrónica y en la asignatura de Sistemas Informáticos en Tiempo Real de la Titulación de I. en Automática y Electrónica Industrial presenta numerosas ventajas frente a una placa comercial debido a su sencillez como se ha comentado anteriormente. Por un lado se tiene un ejemplo real y permite describirla con detalle en la asignatura de Informática Industrial y, por otro lado, su utilización en las prácticas de la asignatura de Sistemas Informáticos en Tiempo Real ahorra esfuerzo al profesor y al alumno por la sencillez de su programación y permite además realizar prácticas con la misma placa en distintos sistemas operativos en tiempo real.

REFERENCIAS

Ashenden P.J., The Designer’s Guide to VHDL, 1a ed., Morgan Kaufmann Publishers, San Francisco, USA (1996).

Bertels P. y otros tres autores; Gathering Skills for Embedded Systems Design, Proceedings of 3th Workshop on Embeddeds Systems Education: 30-35 (2007).

Goldberg H.; What is virtual instrumentation?, IEEE Instrum. Meas. Mag.: 3, 10-13 (2000).

Grimaldi, D. y otros dos autores; Aspects of Traditional versus Virtual Laboratory for Education in Instrumentation and Measurement, Instrum. and Meas. Tech. Conference: 2, 1233 - 1238 (2005)

Koopman P. y otros doce autores; Undergrate Embedded System Education at Carnegie Mellon, ACM Transactions on Embedded Computing Systems: 4(3), 500-528 (2005).

Nedic, Z. y otros dos autores; Remote laboratories versus virtual and real laboratories, Frontiers in Education: 1 (2003)

Quiles F. J. y otros cinco autores; Analizador lógico virtual para ordenador personal, Actas del 7º Congreso de Tecnologías Aplicadas a la Enseñanza de la Electrónica, 263-264, Madrid-España (2006).

Torres J. y otros tres autores; Osciloscopio Virtual para PC: diseño e implementación del soporte hardware, Actas del 5º Congreso de Tecnologías Aplicadas a la Enseñanza de la Electrónica, Las Palmas de Gran Canarias-España  (2002).

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons