3.2 Sistemas de adquisición de datos (inteligentes versus tradicionales)
3.2.1 Sistemas tradicionales de adquisición de datos
En el apartado anterior hemos visto los conceptos más básicos que se requieren para caracterizar un sistema de adquisición de datos. Pero para poder dotarle de una funcionalidad completa, se requieren más elementos hardware y software que permitan procesar los datos y/o almacenarlos.
Los sistemas tradicionales de adquisición de datos, ver Figura 19, se componen principalmente de un dispositivo capaz de muestrear los datos mediante canales de entrada.
Figura 19: Sistema tradicional de adquisición de datos. Los datos adquiridos son enviados al host, y pueden ser procesados por software después de ser adquiridos
Memoria FIFO interna Bus de datos PCI Memoria RAM del PC
CPU
Procesamiento de datos Señal acondicionada Actuadores Almacenamiento en bases de datos36
La implementación de los dispositivos de adquisición de datos, puede ser realizada con diferentes tipos de configuraciones. Un ejemplo se muestra en la Figura 20.
Sincronización y control
MUX PGA LPF ADC FIFO
AI0 AI1 AI2 AI3 AIN . ..
Figura 20: Esquema típico de un Sistema de adquisición de datos, basado en un solo conversor ADC con la entrada de los canales multiplexada, y con un amplificador de ganancia programable
Este ejemplo se caracteriza por utilizar una única etapa de conversión, cuya entrada esta multiplexada. Esta configuración tiene como ventajas con respecto a los sistemas simultáneos (ver Figura 21), que el número de elementos hardware es menor y el espacio utilizado en la placa que lo integra también es menor. Por el contrario, sus desventajas se acentúan en la máxima velocidad de muestreo que el sistema podrá ofrecer de manera simultánea a todos los canales. De tal forma, que si la máxima velocidad de muestreo ofrecida por el ADC es de 100kS/s y son 10 los canales de entrada, multiplexados en el tiempo, la máxima frecuencia de muestreo por canal es de 10kS/s. Este tipo de implementación genera un desfase entre las muestras, que supuestamente se han adquirido en el mismo instante.
En el ejemplo de la Figura 20, el primer elemento después de la etapa de multiplexación, es una etapa de ganancia programable (PGA), elemento muy común en los sistemas de adquisición de datos. Este elemento es imprescindible cuando la señal de entrada que se quiere muestrear está muy lejos de estar cerca del rango dinámico del conversor. Una señal mal acondicionada puede verse afectada por el parámetro de relación de señal ruido (SNR), y puede provocar una deficiente cuantificación de la señal.
El siguiente elemento, es un filtro paso bajo (LPF) anti-solapamiento. Para poder reconstruir la señal muestreada, se debe de cumplir el teorema de Nyquist- Shannon12. Este teorema define que la frecuencia de muestreo de conversión, debe ser al menos el doble de la frecuencia máxima de la señal original (
). Si esta condición no se cumpliera, se produciría un solapamiento de la señal muestreada, haciendo imposible la reconstrucción de la señal. Para evitar
12 Teorema que define cual debe ser la frecuencia de muestreo para digitalizar una señal, para poder
37
que la señal que se está muestreando supere , se utilizaría un filtro paso bajo con frecuencia de corte igual , suponiendo el filtro ideal.
Finalmente la señal eléctrica llega al conversor ADC, donde la señal es digitalizada y posteriormente almacenada en una memoria FIFO. Todo el sistema necesita estar perfectamente sincronizado, y por ello todos los bloques están conectados a un sistema de control, como se puede ver en la Figura 20.
Similar a esta implementación, están los sistemas de adquisición de datos simultáneos, en los cuales la adquisición no es multiplexada. Los datos podrían ser almacenados en distintas FIFOs para ser enviados por diferentes canales DMA al host, o podrían ser almacenados en la misma FIFO y enviados todos ellos a través de un mismo canal DMA, teniendo que ir las muestras multiplexadas. En la Figura 21 se muestra un ejemplo en el cual, las muestras de todos los canales son enviados al host a través de un solo canal DMA.
Sincronización y control LPF0 FIFO PGA0 ADC0 AI0 AI1 Reg LPF1
PGA1 ADC1 Reg
. . . .
AIN PGAN LPFN ADCN Reg
.
. . . . .
Figura 21: Sistema de adquisición de datos simultáneos
Una vez que los datos van siendo almacenados en una memoria FIFO interna del dispositivo, éstos serán enviados a la memoria RAM del host a través de un bus de datos, generalmente de alta velocidad como por ejemplo PCI/PCIe. Los mecanismos por los que los datos pueden ser enviados de la memoria de la tarjeta, a la memoria de la CPU, pueden ser por:
Interrupción. Mecanismo por el cual, la tarjeta de adquisición de datos genera una interrupción hardware a la CPU. La CPU atiende a la subrutina de la interrupción, en la que se produce la lectura de las muestras adquiridas. Este mecanismo es ineficiente en los casos en los que la frecuencia de muestreo son elevadas, y no se pueden perder ninguna de las muestras adquiridas. En el caso de los FC-I&C, esta
38
solución no podría ser aplicable, ya que se requieren frecuencias de muestreo de MS/s y GS/s.
Polling o sondeo. De forma periódica el proceso que atiende a la adquisición de datos, “pregunta” a la tarjeta si ya dispone de N muestras para leerlas. Para anchos de banda elevados (MS/s o GS/s), este mecanismo también sería muy ineficiente. Este mecanismo, podría ser utilizado para sistemas de control lento.
Bus Mastering. Común mente denominado como transferencia de datos por DMA. Es el método más efectivo para transferencias de datos que requieran un ancho de banda elevado, hablamos de Gbit/s en los casos de PCI/PCIe. Este método es el que va a ser utilizado por las tarjetas de adquisición de datos RIO/FlexRIO, para transferencias masivas de datos. Este mecanismo se implementa mediante el controlador DMA que dispone el dispositivo en cuestión. Este controlador, siendo bus master, permite mandar los datos desde la memoria interna de la tarjeta de adquisición, a la memoria RAM de la CPU, sin necesidad de la participación de la CPU. Por lo que la CPU podría seguir ejecutando procesos, mientras que en paralelo, el dispositivo de adquisición de datos envía las muestras adquiridas a la memoria del host al máximo de velocidad que le permita el bus.
Una vez que los datos están en la memoria RAM del host, estos podrán ser procesados para posteriormente realizar con ellos lo que sea requerido: cerrar el lazo de control, almacenarlos, etc.
Un sistema de adquisición de datos puede ser utilizado: para monitorizar información acerca del estado de un diagnóstico; para almacenar los datos adquiridos y posteriormente ser estudiados; y para implementar un sistema de control.
A continuación se muestra un ejemplo de aplicación basado en un sistema de adquisición de datos tradicional (ver Figura 22). El objetivo de analizar este ejemplo, consiste en mostrar los procesos que lleva a cabo un sistema de adquisición de datos tradicional. El proceso se va a dividir en intervalos, que van a ser caracterizados por el tiempo que le lleva a cada elemento del sistema en llevarlos a cabo.
Intervalo 1. Desde que la magnitud física varía, hasta que su valor es digitalizado, va a transcurrir una cantidad de tiempo que se puede considerar fija.
39
Intervalo 2. Una vez que los datos están disponibles en la memoria de la tarjeta de adquisición de datos, se requiere tiempo para enviar los datos a la memoria RAM de la CPU. Se va a suponer que el mecanismo utilizado para ello, es el más eficiente de los explicados anteriormente, usando transferencia por DMA.
Figura 22: Proceso de control utilizando un Sistema tradicional de adquisición de datos
Intervalo 3. Una vez que los datos van llegando a la memoria RAM, el proceso que gestiona la adquisición de datos, tiene que darse cuenta de que tiene datos disponibles para ser procesados. Este procedimiento suele realizarse por polling, pero también podría realizarse por interrupción (actualmente, la tendencia es evitar las interrupciones hardware cuando se hace uso de la DMA). Si el SO en el que se ejecuta el proceso, no es un sistema RT, este intervalo tendrá mayor incertidumbre. Dentro de este intervalo vamos a incluir el tiempo que puede llevarle al sistema en dejar los datos accesibles al proceso que se ejecuta, generalmente en espacio usuario. El esquema de intervalos de este análisis se puede ver en la Figura 23.
Figura 23: Esquema de intervalos de tiempo que se emplean en un sistema de adquisición de datos tradicionales
Este ejemplo de sistema de adquisición de datos, es similar al que se utiliza para dar solución a un sistema de control RT (Santos, Zilker et al. 2011) en un
CPU
ADC Sensor +
acondicionador
Bus de datos
1. señal acondicionada esta a punto de ser
muestrada 2. Los datos llegan a la
memoria RAM del host
3. El proceso encargado del control del dispositivo, deja los datos accesibles para
ser procesados
I.1
Transferencia
Accesibilidad
Incertidumbre
Tiempo en tener los datos listos para su procesamiento
I.2
I.3 Digitalización
40
entorno de fusión. No obstante hay sistemas que requieren de algoritmos de procesamiento complejos y que requieren menor latencia. Por ello, las características de este sistema podrían ser mejoradas considerablemente eliminando algunos de los intervalos y haciendo absolutamente determinista otros.
A continuación se van a estudiar sistemas que permiten implementar procesamiento hardware en el mismo dispositivo de adquisición de datos.