USD

Use un sensor AFE de bajo consumo para implementar un sistema de detección química o biológica de alta precisión

Por Stephen Evanczuk

Colaboración de Editores de Digi-Key de América del Norte

Al enfrentarse a una creciente demanda de sensores biológicos o electroquímicos más precisos, los desarrolladores han encontrado pocas soluciones efectivas de cadena de señales de sensor capaces de proporcionar tanto la precisión como la flexibilidad para admitir diversos requisitos. La necesidad de ofrecer estas capacidades en forma compacta de bajo consumo complica aún más las cosas y entorpece los cronogramas de diseño.

Sin la adquisición y el acondicionamiento precisos de la señal del sensor, los esfuerzos para medir fuentes de señales pequeñas y ruidosas asociadas con aplicaciones de detección biológica y química pueden provocar errores significativos. En aplicaciones biológicas como el monitoreo de signos vitales humanos, o aplicaciones químicas como la detección de gases tóxicos, los falsos positivos o falsos negativos ocasionados por errores de medición pueden tener consecuencias desastrosas.

Este artículo mostrará que, gracias a su compatibilidad con una amplia gama de aplicaciones de detección de 2, 3 y 4 cables, el front end analógico (AFE) de precisión de Analog Devices proporciona una solución simple y efectiva. Al simplemente programar su configuración y capacidades operativas, los desarrolladores pueden usar el AD5940 para implementar rápidamente diseños de ultra bajo consumo capaces de satisfacer diversos requisitos para una detección biológica o electroquímica precisa.

Aplicaciones para sistemas de detección biológica y química

La medición de los cambios en la impedancia, el voltaje o la corriente a través del cuerpo humano o de una fuente electroquímica se ha convertido en una capacidad importante para muchas aplicaciones. La capacidad de identificar indicadores de estrés a través de la medición de la actividad electrodérmica (EDA), anteriormente denominada respuesta galvánica de la piel (GSR), proporciona una pista importante para los profesionales de la salud sobre los estados psicofisiológicos de un individuo. Si no se los trata, el estrés y la ansiedad crónicos pueden provocar problemas cardíacos y otras patologías fisiológicas graves.

Otros tipos de medición, como el análisis de bioimpedancia (BIA), también están encontrando una mayor aplicación en productos de consumo para la salud y el estado físico, así como en análisis médicos. Utilizado durante años en dispositivos de composición corporal, el BIA está logrando un creciente interés por parte de expertos médicos debido a que se puede utilizar como técnica no invasiva para la medición de la presión arterial. Con el uso de un método relacionado que mide pequeños cambios de corriente en fuentes electroquímicas, los especialistas en dispositivos médicos están utilizando estas mediciones para proporcionar monitores de glucosa en sangre y otros dispositivos más efectivos. Del mismo modo, los ingenieros industriales pueden usar estos mismos métodos de medición electroquímica en aplicaciones como monitores de gases tóxicos y medidores de calidad del agua.

Estas técnicas de medición, al igual que otras, comparten características comunes como el uso de electrodos colocados en la piel o dentro de una muestra de fluido. Sin embargo, los detalles de su implementación son lo suficientemente diferentes como para que los desarrolladores tengan dificultades para encontrar una solución capaz de abarcar la amplitud de requisitos.

La medición de la EDA, por ejemplo, requiere una fuente de excitación de baja frecuencia, generalmente de no más de 200 hercios (Hz), diseñada para limitar la penetración de la señal de excitación a capas más profundas del tejido humano. A menudo implementado con un circuito de dos cables, el voltaje de la fuente a través de un parche cutáneo entre un par de electrodos induce una pequeña corriente que fluctúa con los cambios en la conductividad epidérmica.

En contraste, una medición de BIA a menudo requiere un circuito de cuatro cables que combina excitación de baja frecuencia con excitación de alta frecuencia (generalmente de 50 kilohercios [kHz]) para alcanzar las capas de tejido profundo.

Las mediciones electroquímicas generalmente requieren una configuración adicional. Estas mediciones combinan un electrodo de trabajo que está involucrado con alguna reacción química de interés, con un electrodo de referencia utilizado para mantener un potencial constante, y un contraelectrodo que completa el bucle de corriente.

Han surgido diversas soluciones para estas diferentes mediciones a lo largo de los años; sin embargo, pocas alternativas eficientes brindan la capacidad de soportar los variados requisitos de estas técnicas. Utilizando el AFE AD5940BCBZ-RL7 de Analog Devices, los desarrolladores pueden implementar más fácilmente sistemas de detección biológicos y electroquímicos capaces de combinar las demandas de alta precisión, tamaño pequeño y bajo consumo de energía.

AFE integrado

El AD5940 es un AFE multifunción de bajo consumo que se puede configurar mediante una programación para admitir una amplia variedad de aplicaciones que requieren mediciones de sensores de 2, 3 o 4 cables. Al combinar el AD5940 con un complemento adecuado de electrodos, se pueden desarrollar rápidamente dispositivos de alta precisión capaces de cumplir con los diversos requisitos de medición de las aplicaciones en los segmentos de salud, médicos e industriales.

Junto con su capacidad de configuración y precisión, el AD5940 consume menos de 80 microamperios (µA) a una velocidad de datos de salida de 4 Hertz (Hz), lo que permite a los desarrolladores desarrollar sus capacidades de medición en productos emergentes de ultra baja potencia, como dispositivos portátiles y otros dispositivos alimentados por batería. Al mismo tiempo, el AD5940 simplifica el diseño al integrar un complemento completo de subsistemas necesarios para la medición de alta precisión del voltaje, la corriente y la impedancia (Figura 1).

Diagrama del AD5940 de Analog DevicesFigura 1: El AD5940 de Analog Devices combina un conjunto completo de subsistemas necesarios para generar fuentes de excitación y medir la corriente, el voltaje y la impedancia. (Fuente de la imagen: Analog Devices).

La arquitectura funcional del AD5940 comprende tres subsistemas primarios para la salida de excitación, la medición de la señal de entrada y el control.

Como fuente de excitación, el AD5940 proporciona dos bucles de excitación separados de alta precisión. Para aplicaciones como el BIA que requieren excitación de alta frecuencia de hasta 200 kHz, los desarrolladores pueden usar un bucle de alto ancho de banda que puede producir una señal de excitación en la frecuencia y forma de onda deseadas. Dentro de este bucle, un generador de forma de onda acciona un convertidor de digital a analógico (DAC) de alta velocidad de 12 bits, cuya salida filtrada a su vez pasa a través de un amplificador de ganancia programable (PGA) que acciona el amplificador de salida de excitación, que combina la señal de excitación de CA con el voltaje de polarización de CC requerido por el sensor (Figura 2).

Diagrama de la cadena de señal de alta velocidad del AD5940 de Analog DevicesFigura 2: Para los requisitos de excitación de alta frecuencia, los desarrolladores pueden usar la cadena de señal de alta velocidad del AD5940 de Analog Devices para generar formas de onda de diferentes formas y frecuencias de hasta 200 kHz. (Fuente de la imagen: Analog Devices).

Para aplicaciones como las mediciones electroquímicas o de la EDA que requieren excitación de baja frecuencia de CC hasta de 200 Hz, los desarrolladores pueden usar un bucle de excitación de bajo ancho de banda. En este bucle, un DAC de 12 bits de baja potencia y salida doble acciona la entrada no inversora de un amplificador de potenciostato (PA) de bajo ruido, generalmente conectado al contraelectrodo (CE) en una configuración de sensor de 3 cables (Figura 3).

Para esta configuración, el bucle de medición se completa con el electrodo de referencia (RE) que impulsa la entrada inversora del PA, mientras que el electrodo sensor (SE) controla la entrada inversora de un amplificador de transimpedancia (TIA) de baja potencia, cuya entrada no inversora es accionada por el otro canal de salida del DAC de doble salida.

Diagrama de bucle de ancho de banda bajo del AD5940 de Analog DevicesFigura 3: Para configuraciones de sensores de 3 cables que requieren excitación de baja frecuencia, el bucle de ancho de banda bajo del AD5940 de Analog Devices incluye un PA cuya salida se conecta al CE y cuya entrada se conecta al RE, mientras que un amplificador de transimpedancia de baja potencia (LPTIA) recibe la entrada del SE. (Fuente de la imagen: Analog Devices).

Al igual que el bucle de ancho de banda bajo, el bucle de ancho de banda alto complementa su cadena de señal de excitación de alta frecuencia con un TIA de alta velocidad para convertir la corriente de entrada del SE en voltaje. Ambos bucles a su vez conducen sus respectivas salidas al multiplexor analógico integrado del AD5940 que trabaja para el subsistema de medición de señal de entrada.

En el núcleo del subsistema de medición de señal, una cadena de señal analógica de alto rendimiento combina una etapa de acondicionamiento de señales que comprende un búfer, un PGA y un filtro de 2do orden que alimenta un convertidor de analógico a digital (ADC) de registro de aproximaciones sucesivas (SAR) de 16 bits (Figura 4).

Diagrama de subsistema de medición de señal del AD5940 de Analog DevicesFigura 4: Dentro del subsistema de medición de señal del AD5940, un multiplexor analógico les permite a los desarrolladores controlar diferentes fuentes de voltaje a través de una etapa de acondicionamiento de señales para la conversión mediante un ADC de 16 bits de alto rendimiento. (Fuente de la imagen: Analog Devices).

Usando el multiplicador de entrada analógica, los desarrolladores pueden alimentar la cadena de señal del ADC con diferentes fuentes de señal, incluyendo el sensor de temperatura interno, los voltajes de suministro y de referencia, y otras fuentes externas. Para una aplicación típica, las fuentes de señal principales para la recopilación de datos del sensor seguirán siendo las salidas de TIA de bajo consumo y la de TIA de alta velocidad de los bucles de ancho de banda bajo y ancho de banda alto, respectivamente.

Después de la conversión, los bloques funcionales separados proporcionan más procesamiento posterior, incluyendo el filtrado digital y el cálculo automático del promedio, la media y la varianza de un conjunto de muestras. Más allá de esas funciones más básicas, el hardware de procesamiento posterior del AD5940 incluye una unidad de transformación de Fourier discreta (DFT). Con esta capacidad de DFT, los desarrolladores pueden configurar el AD5940 para calcular automáticamente los valores de magnitud y fase necesarios en las mediciones de impedancia.

El tercer subsistema principal controla el funcionamiento del dispositivo, incluida la generación de fuentes de excitación específicas, la conversión de diferentes fuentes de voltaje y la realización de funciones de procesamiento posterior. En la base de este subsistema de control, un secuenciador programable les permite a los desarrolladores generar excitación y realizar mediciones de sensores sin la participación del microcontrolador o microprocesador host.

Después de usar el procesador host para cargar una secuencia de comandos en el AD5940, los desarrolladores simplemente emiten un comando para iniciar el secuenciador de AD5940 e inmediatamente colocan el procesador host en un estado de reposo de bajo consumo utilizando una instrucción de espera de interrupción (WFI) u otro método. A partir de ese momento, el secuenciador asume un mayor control del AD5940, realiza independientemente una serie de mediciones e incluso coloca el dispositivo en un modo de bajo consumo entre mediciones (Figura 5).

Diagrama del AD5940 de Analog Devices programado para funcionar independientemente incluso después de un reinicio de encendidoFigura 5: Los desarrolladores pueden programar el AD5940 para que funcione de manera independiente incluso después de un reinicio de encendido cargando valores durante un proceso de arranque, inicializando el dispositivo, cargando una secuencia de comandos y finalmente ejecutando el secuenciador. (Fuente de la imagen: Analog Devices).

Durante las operaciones autónomas controladas por el secuenciador, el AD5940 lee los comandos de un búfer de comando primero en entrar, primero en salir (FIFO) y escribe los datos resultantes en un búfer de datos FIFO. Tanto los búferes FIFO de comando como los de datos comparten el mismo bloque de 6 kilobytes (kB) asignado desde la memoria estática de acceso aleatorio (SRAM) integrada del AD5940, pero los dos búferes FIFO permanecen operacionalmente separados. A medida que el búfer FIFO de comando se vacía o el búfer FIFO de datos se llena, el AD5940 puede programarse para generar una interrupción al procesador host para cargar secuencias adicionales o descargar datos según corresponda.

Diseño del sistema

Desde la perspectiva del hardware y el software, el desarrollo con el AD5940 es sencillo.

Debido a que integra completamente los subsistemas de hardware requeridos, el AD5940 les permite a los desarrolladores implementar diseños complejos como bucles de medición de BIA de 4 cables con solo un conjunto mínimo de componentes externos. Los desarrolladores pueden configurar el bucle de ancho de banda bajo del AD5940 para manejar las mediciones de baja frecuencia requeridas utilizando dos de los puertos de entrada analógica (AIN) del dispositivo, AIN2 y AIN3 (Figura 6). Al mismo tiempo, pueden usar los puertos CE0 y AIN1 del dispositivo para implementar la excitación y medición de alta frecuencia que también se requieren para las aplicaciones de BIA.

Diagrama del AD5940 de Analog Devices para implementar configuraciones de cuatro cablesFigura 6: Mediante el uso del AD5940 de Analog Devices, los desarrolladores necesitan solo unos pocos componentes externos para implementar configuraciones de cuatro cables con la excitación de baja y alta frecuencia requerida en las aplicaciones de análisis de impedancia corporal. (Fuente de la imagen: Analog Devices).

Un conjunto de placas de evaluación de Analog Devices les permite a los desarrolladores omitir este paso mínimo de diseño de interfaz de hardware para proyectos de desarrollo rápido. Diseñada con el factor de forma Arduino UNO, la placa base del kit de evaluación EVAL-ADICUP3029 de Analog Devices proporciona una plataforma de host basada en el microcontrolador ADUCM3029 de Analog Devices. Al conectar el escudo bioeléctrico de AD5940, los desarrolladores pueden empezar a utilizar inmediatamente el AD5940 para realizar mediciones biológicas como el BIA. De manera alternativa, los desarrolladores pueden conectar el escudo electroquímico del AD5940 y agregar sensores externos como sensores de gas para realizar análisis de gases tóxicos basados en las mediciones electroquímicas del AD5940.

Los desarrolladores pueden utilizar con la misma rapidez los recursos disponibles para evaluar diferentes aplicaciones de software basadas en el AD5940. Junto con su biblioteca de firmware AD5490 de código abierto en lenguaje C, Analog Devices proporciona un repositorio de código abierto que contiene varios ejemplos de aplicaciones en lenguaje C, incluida una aplicación de muestra de análisis de impedancia corporal.

Como se muestra en el Listado 1, la rutina principal, AD5940_Main(), en el módulo de BIA requiere una serie de funciones de inicialización:

  • AD5940PlatformCfg() es una función de biblioteca de firmware AD5490 que configura subsistemas de hardware AD5940 que incluyen FIFO, reloj y GPIO (entradas y salidas de uso general).
  • AD5940BIAStructInit() es una función de aplicación de BIA que representa una estructura con valores que los desarrolladores pueden modificar para cambiar fácilmente parámetros de la aplicación como la velocidad de datos de salida de la muestra (BiaODR) en hercios (Hz) y el número de muestras (NumOfData).
  • AppBIAInit() es una función de aplicación de BIA que restablece los parámetros, realiza la calibración e inicializa el secuenciador, dando pase a otra rutina de aplicación de BIA, AppBIASeqCfgGen().
Copia /* !!Change the application parameters here if you want to change it to none-default value */ void AD5940BIAStructInit(void) {   AppBIACfg_Type *pBIACfg;     AppBIAGetCfg(&pBIACfg);     pBIACfg->SeqStartAddr = 0;   pBIACfg->MaxSeqLen = 512; /** @todo add checker in function */     pBIACfg->RcalVal = 10000.0;   pBIACfg->DftNum = DFTNUM_8192;   pBIACfg->NumOfData = -1;      /* Never stop until you stop it mannually by AppBIACtrl() function */   pBIACfg->BiaODR = 20;         /* ODR(Sample Rate) 20Hz */   pBIACfg->FifoThresh = 4;      /* 4 */   pBIACfg->ADCSinc3Osr = ADCSINC3OSR_2; }   void AD5940_Main(void) {   static uint32_t IntCount;   static uint32_t count;   uint32_t temp;     AD5940PlatformCfg();     AD5940BIAStructInit(); /* Configure your parameters in this function */     AppBIAInit(AppBuff, APPBUFF_SIZE);    /* Initialize BIA application. Provide a buffer, which is used to store sequencer commands */   AppBIACtrl(BIACTRL_START, 0);         /* Control BIA measurment to start. Second parameter has no meaning with this command. */     while(1)   {     /* Check if interrupt flag which will be set when interrupt occured. */     if(AD5940_GetMCUIntFlag())     {       IntCount++;       AD5940_ClrMCUIntFlag(); /* Clear this flag */       temp = APPBUFF_SIZE;       AppBIAISR(AppBuff, &temp); /* Deal with it and provide a buffer to store data we got */       BIAShowResult(AppBuff, temp); /* Show the results to UART */         if(IntCount == 240)       {         IntCount = 0;         //AppBIACtrl(BIACTRL_SHUTDOWN, 0);       }     }     count++;     if(count > 1000000)     {       count = 0;       //AppBIAInit(0, 0);    /* Re-initialize BIA application. Because sequences are ready, no need to provide a buffer, which is used to store sequencer commands */       //AppBIACtrl(BIACTRL_START, 0);          /* Control BIA measurment to start. Second parameter has no meaning with this command. */     }   } } 

Listado 1: En la aplicación de muestra de análisis de impedancia corporal (BIA) de Analog Devices, la rutina principal muestra el patrón de diseño básico para inicializar el AD5490, establecer parámetros personalizados, definir una secuencia de comandos y finalmente recopilar resultados de medición dentro de un bucle sin fin que espera una interrupción del AD5490. (Fuente del código: Analog Devices).

Cuando se requiere por la función AppBIAInit(), AppBIASeqCfgGen() hace el trabajo pesado en la configuración de los subsistemas de AD5940 necesarios para realizar la secuencia deseada (medición de la impedancia en este caso). Esta rutina representa una serie de estructuras definidas en el archivo de encabezado de la biblioteca de firmware AD5940, ad5940.h, que establece las configuraciones y parámetros específicos necesarios para cada aplicación.

Finalmente, AD5940_Main() da paso a AppBIACtrl () para iniciar el proceso de medición antes de ingresar en un bucle sin fin utilizado para recopilar datos. A medida que los datos se vuelven disponibles (como lo indica una señal de interrupción), una orden a AppBIAISR() extrae los datos, de estar disponibles, desde el dispositivo e invoca otra rutina, AppBIADataProcess(), la cual procesa los datos en bruto para generar los resultados requeridos por la aplicación (Listado 2). En una aplicación de producción, los desarrolladores pueden usar las amplias funciones de interrupción del AD5940 para crear métodos de recolección de datos más eficientes.

Copia /* Depending on the data type, do appropriate data pre-process before return back to controller */ static AD5940Err AppBIADataProcess(int32_t * const pData, uint32_t *pDataCount) {   uint32_t DataCount = *pDataCount;   uint32_t ImpResCount = DataCount/4;     fImpPol_Type * const pOut = (fImpPol_Type*)pData;   iImpCar_Type * pSrcData = (iImpCar_Type*)pData;     *pDataCount = 0;     DataCount = (DataCount/4)*4;/* We expect RCAL data together with Rz data. One DFT result has two data in FIFO, real part and imaginary part. */     /* Convert DFT result to int32_t type */   for(uint32_t i=0; i<DataCount; i++)   {     pData[i] &= 0x3ffff; /* @todo option to check ECC */     if(pData[i]&(1<<17)) /* Bit17 is sign bit */     {       pData[i] |= 0xfffc0000; /* Data is 18bit in two's complement, bit17 is the sign bit */     }   }   for(uint32_t i=0; i<ImpResCount; i++)   {     iImpCar_Type *pDftVolt, *pDftCurr;       pDftCurr = pSrcData++;     pDftVolt = pSrcData++;     float VoltMag,VoltPhase;     float CurrMag, CurrPhase;       VoltMag = sqrt((float)pDftVolt->Real*pDftVolt->Real+(float)pDftVolt->Image*pDftVolt->Image);     VoltPhase = atan2(-pDftVolt->Image,pDftVolt->Real);     CurrMag = sqrt((float)pDftCurr->Real*pDftCurr->Real+(float)pDftCurr->Image*pDftCurr->Image);     CurrPhase = atan2(-pDftCurr->Image,pDftCurr->Real);       VoltMag = VoltMag/CurrMag*AppBIACfg.RtiaCurrValue[0];     VoltPhase = VoltPhase - CurrPhase + AppBIACfg.RtiaCurrValue[1];       pOut[i].Magnitude = VoltMag;     pOut[i].Phase = VoltPhase;   }   *pDataCount = ImpResCount;   /* Calculate next frequency point */   if(AppBIACfg.SweepCfg.SweepEn == bTRUE)   {     AppBIACfg.FreqofData = AppBIACfg.SweepCurrFreq;     AppBIACfg.SweepCurrFreq = AppBIACfg.SweepNextFreq;     AD5940_SweepNext(&AppBIACfg.SweepCfg, &AppBIACfg.SweepNextFreq);     AppBIACfg.RtiaCurrValue[0] = AppBIACfg.RtiaCalTable[AppBIACfg.SweepCfg.SweepIndex][0];     AppBIACfg.RtiaCurrValue[1] = AppBIACfg.RtiaCalTable[AppBIACfg.SweepCfg.SweepIndex][1];   }   return AD5940ERR_OK; } 

Listado 2: Incluida en la aplicación de muestra de análisis de impedancia corporal (BIA) de Analog Devices, la rutina AppBIADataProcess() ilustra cómo los desarrolladores pueden usar los datos de medición de AD5940 en rutinas de procesamiento posterior personalizadas como esta, que calcula la magnitud y la fase del voltaje. (Fuente del código: Analog Devices).

Para obtener una solución más rica en características para dispositivos portátiles de salud y estado físico, por ejemplo, los desarrolladores pueden combinar las capacidades de medición de impedancia del AD5940 con el monitor de ritmo cardíaco AD8233 de Analog Devices (consulte "Los CI del monitor de ritmo cardíaco especializados superan los desafíos de ruido y energía de ECG").

Conclusión

Gracias a su compatibilidad con una amplia gama de aplicaciones de detección de 2, 3 y 4 cables, el AFE de AD5940 de Analog Devices ofrece una solución simple y efectiva al problema de precisión y flexibilidad para una detección biológica o electroquímica precisa. Al simplemente programar su configuración y capacidades operativas, los desarrolladores pueden usar el AD5940 para implementar rápidamente diseños de ultra bajo consumo capaces de satisfacer las necesidades de diversas aplicaciones.

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este autor

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Acerca de este editor

Editores de Digi-Key de América del Norte