Utiliser un circuit d'entrée analogique de capteur basse consommation pour implémenter un système de détection chimique ou biologique haute précision
Avec la contribution de Rédacteurs nord-américains de DigiKey
2019-08-29
Face à la demande croissante en matière de détection biologique ou électrochimique plus précise, les développeurs ont trouvé peu de solutions de chaînes de signaux de capteurs efficaces capables de fournir à la fois précision et flexibilité pour répondre à diverses exigences. La nécessité de fournir ces capacités dans un format compact basse consommation complique encore les choses et compromet les délais de conception.
Sans l'acquisition et la mise en forme précises des signaux du capteur, les efforts fournis pour mesurer les sources des petits signaux bruyants associés aux applications de détection biologique et chimique peuvent entraîner des erreurs importantes. Dans les applications biologiques telles que la surveillance des signes vitaux humains ou les applications chimiques telles que la détection de gaz toxiques, les faux positifs ou les faux négatifs dus à des erreurs de mesure peuvent avoir des conséquences désastreuses.
Cet article démontre qu'avec sa prise en charge d'une large gamme d'applications de détection à 2, 3 et 4 fils, un circuit d'entrée analogique de précision d'Analog Devices constitue une solution simple et efficace. En programmant simplement sa configuration et ses capacités opérationnelles, les développeurs peuvent utiliser l'AD5940 pour implémenter rapidement des conceptions ultrabasse consommation capables de répondre à diverses exigences en matière de détection biologique ou électrochimique précise.
Applications pour systèmes de détection biologique et chimique
Mesurer les changements d'impédance, de tension ou de courant dans le corps humain ou à partir d'une source électrochimique s'est révélé être une capacité importante pour de nombreuses applications. La capacité à identifier des indicateurs de stress par la mesure de l'activité électrodermale (EDA), anciennement appelée réflexe psychogalvanique (GSR), fournit un indice important aux professionnels de la santé sur les états psychophysiologiques d'un individu. En l'absence de traitement, le stress chronique et l'anxiété peuvent entraîner des problèmes cardiaques et d'autres pathologies physiologiques graves.
Les applications dans d'autres types de mesure, tels que l'analyse de bio-impédance (BIA), deviennent également de plus en plus importantes dans les produits de consommation pour la santé et la remise en forme, ainsi que l'analyse de qualité médicale. Utilisée depuis des années dans les dispositifs de composition corporelle, l'analyse BIA suscite un intérêt croissant de la part des experts médicaux pour son utilisation en tant que technique non invasive de mesure de la pression artérielle. En utilisant une méthode connexe qui mesure les faibles changements de courant dans les sources électrochimiques, les spécialistes des dispositifs médicaux utilisent ces mesures pour fournir des moniteurs de glycémie et d'autres dispositifs plus efficaces. De même, les ingénieurs industriels peuvent utiliser ces mêmes méthodes de mesure électrochimiques dans des applications telles que les moniteurs de gaz toxiques et les testeurs de la qualité de l'eau.
Ces techniques de mesure et d'autres partagent des fonctionnalités communes telles que l'utilisation d'électrodes placées sur la peau ou dans un échantillon fluide. Cependant, les détails de leur implémentation sont suffisamment différents pour compliquer la capacité d'un développeur à trouver une solution permettant de couvrir toutes les exigences.
Les mesures de l'activité électrodermale, par exemple, nécessitent une source d'excitation basse fréquence, ne dépassant généralement pas 200 Hz, conçue pour limiter la pénétration du signal d'excitation dans les couches plus profondes des tissus humains. Habituellement implémentée avec un circuit à deux fils, la tension source à travers un fragment de peau entre une paire d'électrodes induit un faible courant qui fluctue avec les changements de conductivité épidermique.
En revanche, une mesure d'analyse BIA nécessite généralement un circuit à quatre fils combinant une excitation basse fréquence et une excitation haute fréquence (généralement 50 kHz) pour atteindre les couches tissulaires profondes.
Les mesures électrochimiques nécessitent généralement encore une autre configuration. Ces mesures combinent une électrode de travail impliquée dans une réaction chimique d'intérêt, une électrode de référence servant à maintenir un potentiel constant et une contre-électrode complétant la boucle de courant.
Au fil des années, diverses solutions ont été trouvées pour ces différentes mesures, mais peu d'alternatives efficaces permettent de répondre aux diverses exigences de ces techniques. Grâce au circuit d'entrée analogique AD5940BCBZ-RL7 d'Analog Devices, les développeurs peuvent implémenter plus facilement des systèmes de détection biologique et électrochimique permettant de combiner la demande de haute précision, de taille compacte et de basse consommation énergétique.
Circuit d'entrée analogique intégré
L'AD5940 est un circuit d'entrée analogique multifonction basse consommation qu'il est possible de configurer par programme pour prendre en charge une grande variété d'applications nécessitant des mesures de capteur à 2, 3 ou 4 fils. En combinant l'AD5940 avec un complément approprié d'électrodes, il est possible de développer rapidement des dispositifs haute précision capables de répondre aux diverses exigences de mesure d'applications dans les domaines de la santé, de la médecine et de l'industrie.
Outre sa configurabilité et sa précision, l'AD5940 consomme moins de 80 µA à un débit de données de sortie de 4 Hz, ce qui permet aux développeurs d'utiliser ses capacités de mesure dans des produits émergents ultrabasse consommation, tels que les dispositifs corporels et autres dispositifs alimentés par batterie. En même temps, l'AD5940 simplifie la conception en intégrant un ensemble complet de sous-systèmes nécessaires à la mesure de tension, de courant et d'impédance haute précision (Figure 1).
Figure 1 : L'AD5940 d'Analog Devices combine un ensemble complet de sous-systèmes requis pour générer des sources d'excitation et mesurer le courant, la tension et l'impédance. (Source de l'image : Analog Devices)
L'architecture fonctionnelle de l'AD5940 comprend trois sous-systèmes principaux pour la sortie d'excitation, la mesure du signal d'entrée et le contrôle.
En tant que source d'excitation, l'AD5940 fournit deux boucles d'excitation haute précision distinctes. Pour les applications telles que l'analyse BIA nécessitant une excitation haute fréquence jusqu'à 200 kHz, les développeurs peuvent utiliser une boucle à large bande passante capable de produire un signal d'excitation à la fréquence et à la forme d'onde souhaitées. Dans cette boucle, un générateur de formes d'ondes commande un convertisseur numérique-analogique (CNA) 12 bits haute vitesse, dont la sortie filtrée passe à travers un amplificateur à gain programmable (PGA) qui commande l'amplificateur de sortie d'excitation, qui combine le signal d'excitation CA avec la tension de polarisation CC requise par le capteur (Figure 2).
Figure 2 : Pour les besoins d'excitation haute fréquence, les développeurs peuvent utiliser la chaîne de signaux haute vitesse AD5940 d'Analog Devices pour générer des formes d'ondes de formes et de fréquences différentes, jusqu'à 200 kHz. (Source de l'image : Analog Devices)
Pour les applications telles que les mesures électrochimiques ou de l'activité électrodermale nécessitant une excitation basse fréquence de CC jusqu'à 200 Hz, les développeurs peuvent utiliser une boucle d'excitation à faible bande passante. Dans cette boucle, un CNA 12 bits bitension et basse consommation commande l'entrée non inverseuse d'un amplificateur de potentiostat à faible bruit, généralement connecté à la contre-électrode (CE) dans une configuration de capteur à 3 fils (Figure 3).
Pour cette configuration, la boucle de mesure se termine par l'électrode de référence commandant l'entrée inverseuse de l'amplificateur de potentiostat, tandis que l'électrode de détection commande l'entrée inverseuse d'un amplificateur d'adaptation d'impédance basse consommation, dont l'entrée non inverseuse est commandée par l'autre canal de sortie du CNA bitension.
Figure 3 : Pour les configurations de capteurs à 3 fils nécessitant une excitation basse fréquence, la boucle à faible bande passante AD5940 d'Analog Devices comprend un amplificateur de potentiostat dont la sortie se connecte à la contre-électrode et dont l'entrée se connecte à l'électrode de référence, tandis qu'un amplificateur d'adaptation d'impédance basse consommation reçoit les informations de l'électrode de détection. (Source de l'image : Analog Devices)
À l'instar de la boucle à faible bande passante, la boucle à bande passante élevée complète sa chaîne de signaux d'excitation haute fréquence par un amplificateur d'adaptation d'impédance haute vitesse permettant de convertir le courant d'entrée de l'électrode de détection en tension. Les deux boucles commandent à leur tour leurs sorties respectives vers le multiplexeur analogique intégré de l'AD5940, qui dessert le sous-système de mesure du signal d'entrée.
Au cœur du sous-système de mesure des signaux, une chaîne de signaux analogiques hautes performances combine un étage de mise en forme des signaux comprenant un tampon, un PGA et un filtre de 2e ordre qui alimente un convertisseur analogique-numérique (CAN) à registre d'approximations successives (SAR) 16 bits (Figure 4).
Figure 4 : Dans le sous-système de mesure des signaux AD5940, un multiplexeur analogique permet aux développeurs de gérer différentes sources de tension via un étage de mise en forme des signaux en vue de la conversion par un CAN 16 bits hautes performances. (Source de l'image : Analog Devices)
À l'aide du multiplicateur d'entrée analogique, les développeurs peuvent alimenter la chaîne de signaux du CAN avec différentes sources de signaux, notamment le capteur de température interne, les tensions d'alimentation et de référence et d'autres sources externes. Pour une application typique, les sources de signaux principales pour la collecte de données de capteur restent les sorties des amplificateurs d'adaptation d'impédance basse puissance et haute vitesse issues respectivement des boucles à faible bande passante et à bande passante élevée.
Après la conversion, des blocs fonctionnels distincts fournissent un post-traitement supplémentaire, notamment le filtrage numérique et le calcul automatique de la moyenne et de la variance à partir d'un ensemble d'échantillons. Au-delà de ces fonctions plus élémentaires, le matériel de post-traitement de l'AD5940 inclut une unité de transformée de Fourier discrète (TFD). Avec cette fonctionnalité TFD, les développeurs peuvent configurer l'AD5940 pour calculer automatiquement les valeurs de magnitude et de phase nécessaires aux mesures d'impédance.
Le troisième sous-système principal contrôle le fonctionnement du dispositif, notamment la génération de sources d'excitation spécifiques, la conversion de différentes sources de tension et l'exécution de fonctions de post-traitement. À la base de ce sous-système de contrôle, un séquenceur programmable permet aux développeurs de générer une excitation et de réaliser des mesures de capteurs sans impliquer le microcontrôleur ou le microprocesseur hôte.
Après avoir utilisé le processeur hôte pour charger une séquence de commandes dans l'AD5940, les développeurs émettent simplement une commande permettant de démarrer le séquenceur AD5940, puis placent immédiatement le processeur hôte dans un état de veille basse consommation à l'aide d'une instruction WFI (Wait for Interrupt) ou une autre méthode. À partir de ce point, le séquenceur reprend le contrôle de l'AD5940, effectuant indépendamment une série de mesures et plaçant même le dispositif en mode basse consommation entre les mesures (Figure 5).
Figure 5 : Les développeurs peuvent programmer le fonctionnement de l'AD5940 indépendamment, même après une réinitialisation à la mise sous tension, en chargeant des valeurs au cours d'un processus de démarrage, en initialisant le dispositif, en chargeant une séquence de commandes et en exécutant le séquenceur. (Source de l'image : Analog Devices)
Au cours d'opérations autonomes contrôlées par le séquenceur, l'AD5940 lit les commandes d'un tampon de commande FIFO (premier entré/premier sorti) et écrit les données résultantes dans un tampon de données FIFO. Les tampons FIFO de commande et de données partagent le même bloc de 6 ko alloué à partir de la mémoire SRAM intégrée à l'AD5940, mais les deux tampons FIFO restent séparés sur le plan opérationnel. Lorsque le tampon FIFO de commande se vide ou que le tampon FIFO de données se remplit, l'AD5940 peut être programmé pour générer une interruption pour le processeur hôte afin de charger des séquences supplémentaires ou décharger des données, selon le cas.
Conception du système
Tant du point de vue matériel que logiciel, le développement est simple avec l'AD5940.
Comme il intègre entièrement les sous-systèmes matériels requis, l'AD5940 permet aux développeurs d'implémenter des conceptions complexes telles que des boucles de mesure d'analyse BIA à 4 fils avec seulement un ensemble minimal de composants externes. Les développeurs peuvent configurer la boucle à faible bande passante de l'AD5940 pour gérer les mesures basse fréquence requises à l'aide de deux des ports d'entrée analogique (AIN) du dispositif, AIN2 et AIN3 (Figure 6). En même temps, ils peuvent utiliser les ports CE0 et AIN1 du dispositif pour implémenter l'excitation et la mesure haute fréquence également requises pour les applications d'analyse BIA.
Figure 6 : À l'aide de l'AD5940 d'Analog Devices, les développeurs n'ont besoin que de quelques composants externes pour implémenter des configurations à quatre fils avec l'excitation à la fois basse et haute fréquence requise dans les applications d'analyse d'impédance corporelle. (Source de l'image : Analog Devices)
Un ensemble de cartes d'évaluation d'Analog Devices permet aux développeurs d'ignorer cette étape de conception minimale de l'interface matérielle pour les projets de développement rapide. Conçue avec le format UNO d'Arduino, la carte de base du kit d'évaluation EVAL-ADICUP3029 d'Analog Devices fournit une plateforme hôte basée sur le microcontrôleur ADUCM3029 d'Analog Devices. En connectant l'extension bioélectrique de l'AD5940, les développeurs peuvent immédiatement utiliser l'AD5940 pour effectuer des mesures biologiques telles que l'analyse BIA. Les développeurs peuvent également relier l'extension électrochimique de l'AD5940 et ajouter des capteurs externes tels que des capteurs de gaz pour effectuer une analyse de gaz toxique sur la base de mesures électrochimiques de l'AD5940.
Les développeurs peuvent tout aussi rapidement utiliser les ressources disponibles pour évaluer différentes applications logicielles basées sur l'AD5940. Outre sa bibliothèque de micrologiciels AD5490 open-source en langage C, Analog Devices fournit un référentiel open-source contenant plusieurs applications d'exemple en langage C, notamment une application d'exemple pour l'analyse d'impédance corporelle.
Comme indiqué dans la Liste 1, la routine principale AD5940_Main() du module d'analyse BIA appelle une série de fonctions d'initialisation :
AD5940PlatformCfg()est une fonction de la bibliothèque de micrologiciels de l'AD5490 qui configure les sous-systèmes matériels de l'AD5940, y compris le FIFO, l'horloge et les GPIO.AD5940BIAStructInit()est une fonction de l'application d'analyse BIA qui instancie une structure avec des valeurs que les développeurs peuvent modifier pour changer facilement les paramètres d'application, tels que le débit de données de sortie d'échantillons (BiaODR) en Hz et le nombre d'échantillons (NumOfData).AppBIAInit()est une fonction de l'application d'analyse BIA qui réinitialise les paramètres, effectue l'étalonnage et initialise le séquenceur en appelant une autre routine d'application d'analyse BIA,AppBIASeqCfgGen().
Copier /* !!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. */ } } }
Liste 1 : Dans l'application d'exemple d'analyse d'impédance corporelle (BIA) d'Analog Devices, la routine principale présente le modèle de conception de base pour initialiser l'AD5490, définir des paramètres personnalisés, définir une séquence de commandes et collecter les résultats de mesure dans une boucle sans fin qui attend une interruption de l'AD5490. (Source du code : Analog Devices)
Lorsqu'elle est appelée par la fonction AppBIAInit(), AppBIASeqCfgGen() facilite grandement la configuration des sous-systèmes AD5940 nécessaires à l'exécution de la séquence souhaitée (mesure de l'impédance dans cet exemple). Cette routine instancie une série de structures définies dans le fichier d'en-tête de la bibliothèque de micrologiciels de l'AD5940, ad5940.h, qui définit les configurations et paramètres spécifiques requis pour chaque application.
Enfin, AD5940_Main() appelle AppBIACtrl() pour démarrer le processus de mesure avant d'entrer dans une boucle sans fin utilisée pour collecter des données. Lorsque les données deviennent disponibles (comme indiqué par un signal d'interruption), un appel à AppBIAISR() extrait les données, le cas échéant, du dispositif et appelle une autre routine, AppBIADataProcess(), qui traite les données brutes pour générer les résultats requis par l'application (Liste 2). Dans une application de production, les développeurs peuvent utiliser les fonctionnalités d'interruption étendues de l'AD5940 pour créer des méthodes de collecte de données plus efficaces.
Copier /* 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; }
Liste 2 : Incluse dans l'application d'exemple d'analyse d'impédance corporelle (BIA) d'Analog Devices, la routine AppBIADataProcess() illustre comment les développeurs peuvent utiliser les données de mesure AD5940 dans des routines de post-traitement personnalisées telles que celle-ci, qui calcule la phase et l'amplitude de tension. (Source du code : Analog Devices)
Pour une solution plus riche en fonctionnalités pour les dispositifs corporels dans les domaines de la santé et de la remise en forme, par exemple, les développeurs peuvent combiner les capacités de mesure d'impédance de l'AD5940 avec le moniteur de fréquence cardiaque AD8233 d'Analog Devices (consultez l'article relatif aux circuits intégrés de moniteur de fréquence cardiaque spécialisés qui permettent de surmonter les problèmes d'alimentation et de bruit liés à l'ECG).
Conclusion
Prenant en charge une large gamme d'applications de détection à 2, 3 et 4 fils, le circuit d'entrée analogique AD5940 d'Analog Devices fournit une solution simple et efficace au problème de précision et de flexibilité pour une détection biologique ou électrochimique précise. En programmant simplement sa configuration et ses capacités opérationnelles, les développeurs peuvent utiliser l'AD5940 pour implémenter rapidement des conceptions ultrabasse consommation capables de répondre aux besoins de diverses applications.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.




