Använd en sensor-AFE med låg effekt för att implementera ett kemiskt eller biologiskt avkänningssystem med hög precision

Av Stephen Evanczuk

Bidraget med av DigiKeys nordamerikanska redaktörer

Med ökande efterfrågan på mer precis biologisk eller elektrokemisk avkänning har utvecklarna hittat nya effektiva lösningar för sensorsignalkedjan för att ge både den precision och flexibilitet som krävs för att stödja olika krav. Behovet av att leverera dessa funktioner i kompakt form med låg effekt gör det hela ännu svårare och försenar designschemana.

Utan exakt mottagning och behandling av sensorsignaler kan försöken att mäta brusiga, små signalkällor som är förknippade med biologiska och kemiska avkänningstillämpningar leda till betydande fel. I biologiska tillämpningar som övervakning av mänskliga vitala funktioner eller kemiska tillämpningar som avkänning av toxisk gas kan falska positiva eller falska negativa besked på grund av mätfel få katastrofala konsekvenser.

Den här artikeln visar att en Analog Devices analog frontend-modul (AFE) med hög precision med sitt stöd för ett stort urval av 2-, 3- och 4-kabelavkänningstillämpningar ger en enklare och effektivare lösning. Genom att enkelt programmera dess konfigurations- och driftfunktioner kan utvecklarna använda AD5940 för att snabbt implementera konstruktioner med ultralåg effekt för att uppfylla olika krav på exakt biologisk eller elektrokemisk avkänning.

Tillämpningar för biologiska och kemiska avkänningssystem

Mätändringar i impedans, spänning eller ström över den mänskliga kroppen eller från en elektrokemisk källa har växt fram som en viktig funktion för många tillämpningar. Förmågan att identifiera stressindikationer genom att mäta elektrodermal aktivitet (EDA), tidigare kallat galvanisk hudrespons (GSR), ger sjukvårdspersonal en viktig insyn i en individs psykologiska tillstånd. Om det lämnas obehandlat kan kronisk stress och oro leda till hjärtproblem och andra allvarliga fysiologiska patologier.

Andra typer av mätningar som bioimpedansanalys (BIA) får också allt större tillämpning i konsumentprodukter inom hälso- och friskvård samt medicinska analyser. BIA har använts i åratal i kroppssammansättningsmaskiner och blir alltmer populära bland medicinska experter eftersom de kan använda som en ickeinvasiv metod för att mäta blodtryck. Med en relaterad metod som mäter små strömförändringar i elektrokemiska källor använder medicinska enhetsspecialister dessa mätningar för att tillverka effektivare blodsockermätare och andra enheter. På liknande sätt kan industritekniker använda samma elektrokemiska mätmetoder i tillämpningar som giftgasdetektorer och vattenkvalitetstestare.

Dessa mättekniker och andra har gemensamma egenskaper som användning av elektroder som placeras på huden eller i ett vätskeprov. Samtidigt är implementeringsdetaljerna tillräckligt olika för att komplicera utvecklarnas möjlighet att hitta en lösning som kan uppfylla alla krav.

EDA-mätningar t.ex. kräver en exciteringskälla med låg frekvens, normalt högst 200 hertz (Hz), som är utformad för att begränsa exciteringssignalens genomträngning till djupare lager av mänsklig vävnad. Normalt sett implementeras lösningen med en tvåledarkrets och källspänningen över en bit hud mellan två elektroder inducerar en liten ström som växlar med ändringarna i överhudens ledningsförmåga.

Till skillnad från etta kräver en BIA-mätning normalt en fyrledarkrets som kombinerar lågfrekvensexcitering med högfrekvensexcitering (normalt 50 kilohertz (kHz)) för att nå mer djupliggande vävnadslager.

Elektrokemiska mätningar kräver normalt en annan konfiguration. Dessa mätningar kombinerar en arbetselektrod som är inblandad i någon kemisk reaktion av intresse med en referenselektrod som används för att hålla en konstant potential samt en räknarelektrod som kompletterar strömslingan.

Olika lösningar för dessa olika mätningar har framtagits under åren, men få effektiva alternativ finns som ger förmågan att stödja de olika kraven i dessa tekniker. Med Analog Devices AD5940BCBZ-RL7 AFE kan utvecklarna enklare implementera biologiska och elektrokemiska avkänningssystem som kan kombinera efterfrågan på hög precision, liten storlek och låg effektförbrukning.

Integrerad AFE

AD5940 är en flerfunktions-AFE med låg effekt som kan konfigureras programmatiskt för att stödja ett stort urval av tillämpningar som kräver sensormätningar med 2, 3 eller 4 ledare. Genom att kombinera AD5940 med ett lämpligt komplement av elektroder kan högprecisionsenheter som uppfyller de olika mätkraven i tillämpningar inom hälso-, medicin- och industrisegmenten snabbt utvecklas.

Tillsammans med konfigureringsförmågan och precisionen förbrukar AD5940 färre än 80 mikroampere (µA) med en utgående datahastighet på 4 Hertz (Hz), vilket gör att utvecklarna kan bygga in dessa mätfunktioner i framväxande produkter med ultralåg effekt som bärbara enheter och andra batteridrivna enheter. Samtidigt förenklar AD5940 designen genom att integrera ett fullt komplement av delsystem som krävs för högprecisionsspänning, ström och impedansmätning (figur 1).

Diagram över Analog Devices AD5940Figur 1: Analog Devices AD5940 kombinerar en fullständig uppsättning av delsystem som krävs för att generera excitationskällor och mäta ström, spänning och impedans. (Bildkälla: Analog Devices)

AD5940:s funktionsarkitektur består av tre primära delsystem för exciteringsutdata, ingående signalmätning och reglering.

Som exciteringskälla tillhandahåller AD5940 två separata exciteringsslingor med hög precision. För tillämpningar som BIA som kräver högfrekvensexcitering upp till 200 kHz kan utvecklarna använda en slinga med hög bandbredd som kan producera en exciteringssignal med önskad frekvens och vågform. I den här slingan driver en vågformsgenerator en 12-bitars digital-till-analogomvandlare (DAC) med hög hastighet, vars filtrerade utmatning därefter passerar en programmerbar förstärkare (PGA) som driver exciteringsutgångsförstärkaren, som kombinerar AC-excitationssignalen med sensorns nödvändiga DC-biasspänning (figur 2).

Schema över Analog Devices AD5940 höghastighetssignalkedjaFigur 2: För högfrekventa excitationskrav kan utvecklarna använda Analog Devices AD5940 höghastighetssignalkedja för att generera vågformer med olika form och frekvenser upp till 200 kHz. (Bildkälla: Analog Devices)

För tillämpningar som EDA eller elektrokemiska mätningar som kräver lågfrekvensexcitering från DC upp till 200 Hz kan utvecklarna använda en exciteringsslinga med låg bandbredd. I den här slingan driver en 12-bitars DAC med låg effekt och dubbla utgångar den icke-inverterande ingången hos en potentiostatförstärkare (PA) med lågt brus, normalt ansluten till motelektroden (CE) i en sensorkonfiguration med 3 trådar (figur 3).

I den här konfigurationen slutförs mätslingan med referenselektroden (RE) som driver PA:s inverteringsingång medan avkänningselektroden (SE) driver inverteringsingången på en transimpedansförstärkare (TIA) med låg effekt, vars icke-inverterande ingång drivs av den andra utgångskanalen i DAC:en med dubbla utgångar.

Diagram över Analog Devices AD5940 slinga med låg bandbreddFigur 3: För sensorkonfigurationer med 3 trådar som kräver lågfrekvensexcitering inkluderar Analog Devices AD5940 lågbandbreddslinga en PA vars utgång är ansluten till CE och vars ingång är ansluten till RE, medan en transimpedansförstärkare med låg effekt (LPTIA) tar emot insignaler från SE. (Bildkälla: Analog Devices)

Som lågbandbreddsslingan kompletterar högbandbreddsslingan sin högfrekventa exciteringssignalkedja med en höghastighets-TIA för att omvandla SE-ingångsströmmen till spänning. Båda slingorna driver i sin tur respektive utgångar till AD5940:s integrerade analoga multiplexer som fungerar som ingångssignalens mätdelsystem.

I signalmätningsdelsystemets hjärta kombinerar en högpresterande analog signalkedja ett signalbehandlingssteg med buffert, PGA och att andra gradens filter som matar en 16-bitars analog-till-digitalomvandlare (ADC) med successivt approximationsregister (SAR) (figur 4).

Diagram över Analog Devices AD5940 signalmätningsdelsystemFigur 4: I AD5940:s signalmätningsdelsystem gör en analog multiplexer det möjligt för utvecklarna att driva olika spänningskällor via ett signalbehandlingssteg för omvandling med en högpresterande 16-bitars ADC. (Bildkälla: Analog Devices)

Med den analoga ingångsmultiplikatorn kan utvecklarna mata ADC-signalkedjan med olika signalkällor inklusive den interna temperaturgivaren, matnings- och referensspänning och samt andra externa källor. Vid en typisk tillämpning är de primära signalkällorna för sensordatainsamling fortsatt lågeffekt-TIA- och höghastighets-TIA-utgångarna från slingorna med låg respektive hög bandbredd.

Efter omvandling ger separata funktionsblock ytterligare efterbehandling inklusive digital filtrering och automatisk beräkning av genomsnitt och avvikelse från en provuppsättning. Utöver dessa grundläggande funktioner inkluderar AD5940-efterbehandlingsmaskinvaran en diskret Fourier-omvandlingsenhet (DFT). Med den här DFT-kapaciteten kan utvecklarna konfigurera AD5940 att automatiskt beräkna de magnitud- och fasvärden som behövs i impedansmätningar.

Det tredje större delsystemet kontrollerar driften av enheten inklusive generering av specifika exciteringskällor, omvandling av olika spänningskällor och utförande av efterbehandlingsfunktioner. Grunden för det här kontrolldelsystemet är en programmerbar sekvenserare som gör det möjligt för utvecklarna att generera excitering och utföra sensormätningar utan att blanda in värdmikrostyrenheten eller mikroprocessorn.

Efter att ha använt värdprocessorn för att läsa in en kommandosekvens i AD5940 utfärdar utvecklarna helt enkelt ett kommando för att starta AD5940-sekvenseraren och försätter därefter omedelbart värdprocessorn i ett viloläge med låg effektförbrukning med instruktionen Wait for Interrupt (WFI) eller en annan metod. Från den punkten tar sekvenseraren över ytterligare kontroll av AD5940 och utför oberoende ett antal mätningar och försätter till och med enheten i lågeffektsläge mellan mätningarna (figur 5).

Diagram över Analog Devices AD5940 programmerad för att fungera oberoende till och med efter en power-on-resetFigur 5: Utvecklarna kan programmera AD5940 att arbeta oberoende till och med efter en power-on-reset genom att läsa in värden under en startprocess, initiera enheten, läsa in en kommandosekvens och slutligen köra sekvenseraren. (Bildkälla: Analog Devices)

Under autonom funktion som styrs av sekvenseraren läser AD5940 av kommandon från en FIFO-kommandobuffert (first-in, first-out) och skriver resulterande data till en FIFO-databuffert. Både kommando- och data-FIFO-buffertarna delar samma block av 6 kilobyte (kB) tilldelade från AD5940:s integrerade SRAM-minne, men de två FIFO-buffertarna är fuktionsseparerade. När kommando-FIFO-bufferten töms eller data-FIFO-bufferten fylls kan AD5940 programmeras att generera ett avbrott till värdprocessorn för att läsa in ytterligare sekvenser eller ta bort data efter behov.

Systemdesign

Från både maskinvaru- och programvaruperspektiv är utvecklingen med AD5940 enkel.

Eftersom den integrerar de nödvändiga maskinvarudelsystemen gör AD5940 det möjligt för utvecklarna att implementera komplexa konstruktioner som BIA-mätslingorna med fyra ledare med endast en minimal uppsättning externa komponenter. Utvecklare kan konfigurera AD5940-slingan med låg bandbredd för att hantera de nödvändiga lågfrekvensmätningarna med två av enhetens analoga ingångsportar (AIN), AIN2 och AIN3 (figur 6). Samtidigt kan de använda enhetens CE0- och AIN1-portar för att implementera högfrekvensexciteringen och mätningen som också krävs för BIA-tillämpningar.

Diagram över Analog Devices AD5940 för implementering av fyrledarkonfigurationerFigur 6: Med Analog Devices AD5940 behöver utvecklarna bara några då externa komponenter för att implementera fyrledarkonfigurationer med både den lågfrekvens- och högfrekvensexcitering som krävs i tillämpningar för kroppsimpedansanalys. (Bildkälla: Analog Devices)

En uppsättning av Analog Devices-utvärderingskort låter utvecklarna hoppa över det här minimala designsteget för maskinvarugränssnittet för snabba utvecklingsprojekt. Designat med Arduino UNO-formfaktor, Analog Devices EVAL-ADICUP3029 utvärderingssats baskort tillhandahåller en värdplattform som baseras på Analog Devices ADUCM3029-mikrostyrenhet. Genom att ansluta AD5940 bioelektrisk sköld kan utvecklarna omedelbart börja använda AD5940 för att utföra biologiska mätningar som BIA. Alternativt kan utvecklarna ansluta AD5940 elektrokemisk sköld och lägga till externa sensorer som gassensorer för att utföra analys av toxiska gaser baserat på AD5940 elektrokemiska mätningar.

Utvecklarna kan lika snabbt använda tillgängliga resurser för att utvärdera olika AD5940-baserade programvarutillämpningar. Tillsammans med AD5490 fasta programvarubibliotek med C-baserad öppen källkod tillhandahåller Analog Devices en katalog med öppen källkod som innehåller ett antal C-baserade tillämpningsexempel inklusive en provtillämpning för kroppsimpedansanalys.

Som visas i lista 1 anropar huvudrutinen, AD5940_Main(), i BIA-modulen ett antal initieringsfunktioner:

  • AD5940PlatformCfg() är en AD5490 fast programvarubibliotekfunktion som ställer in AD5940 maskinvarudelsystem inklusive FIFO, kocka och GPIO:er.
  • AD5940BIAStructInit() är en BIA-tillämpningsfunktion som instansierar en struktur med värden som utvecklar kan modifiera för att enkelt ändra applikationsparametrar som datahastighet för utgående provtagning (BiaODR) i hertz (Hz) och ett antal prov (NumOfData).
  • AppBIAInit() är en BIA-tillämpningsfunktion som återställer parametrar, utför kalibrering och initierar sekvenseraren med ett anrop till en annan BIA-tillämpningsrutin, AppBIASeqCfgGen().
Copy /* !!Ändra tillämpningsparametrarna här om du vill ändra det till icke standardvärde */ 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. Tillhandahåll en buffert, som används för att lagra sekvenserarkommandon */ AppBIACtrl(BIACTRL_START, 0); /* Control BIA measurment to start. Den andra parametern har ingen betydelse med det här kommandot. */ 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. Eftersom sekvenserna är klara behövs ingen buffert, som används för att lagra sekvenserarkommandon */ //AppBIACtrl(BIACTRL_START, 0); /* Control BIA measurment to start. Den andra parametern har ingen betydelse med det här kommandot. */ } } } 

Lista 1: I Analog Devices provtillämpning för kroppsimpedansanalys (BIA) demonstrerar huvudrutinen det grundläggande designmönstret för att initiera AD5490, ställa in anpassade parametrar, definiera en kommandosekvens och slutligen samla in mätresultat i en ändlös slinga som väntar på ett avbrott från AD5490. (Kodkälla: Analog Devices)

När det anropas av AppBIAInit()-funktionen utför AppBIASeqCfgGen() det tunga arbetet genom att konfigurera de AD5940-delsystem som krävs för att utföra den önskade sekvensen (impedansmätning i det här fallet). Den här rutinen instansierar en serie strukturer som definieras i AD5940 fasta programvarubibliotekets rubrikfil, ad5940.h, som ställer in de specifika konfigurationerna och parametrarna som krävs för varje tillämpning.

Slutligen anropar AD5940_Main() AppBIACtrl() för att inleda mätprocessen innan den går in i en ändlös slinga som används för att samla in data. När data blir tillgängliga (vilket indikeras med en avbrottssignal) hämtar ett anrop till AppBIAISR() data om de är tillgängliga från enheten och anropar en annan rutin, AppBIADataProcess(), som bearbetar rådata för att generera de resultat som krävs av tillämpningen (lista 2). I en produktionstillämpning kan utvecklarna använda AD5940:s omfattande avbrottsfunktioner för att skapa mer effektiva datainsamlingsmetoder.

Copy /* 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. Ett DFT-resultat har två data i FIFO, en faktisk del och en imaginär del. */ /* 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; } 

Lista 2: I Analog Devices provtillämpning för kroppsimpedansanalys (BIA) ingår AppBIADataProcess()-rutinen som illustrerar hur utvecklarna kan använda AD5940-mätdata i skräddarsydda efterbehandlingsrutiner som den här, som beräknar spänningens magnitud och fas. (Kodkälla: Analog Devices)

För en mer funktionsrik lösning för bärbar hälso- och friskvårdsutrustning kan utvecklarna till exempel kombinera AD5940:s impedansmätningsfunktioner med Analog Devices AD8233 pulsövervakare (se "Specialiserade pulsövervakningskretsar övervinner EKG-brus och effektutmaningar").

Slutsats

Med sitt stöd för ett stort urval av 2-, 3- och 4-kabelavkänningstillämpningar ger Analog Devices AD5940 AFE en enklare och effektivare lösning på problemet med precision och flexibilitet för precis biologisk eller elektrokemisk avkänning. Genom att enkelt programmera dess konfigurations- och driftfunktioner kan utvecklarna använda AD5940 för att snabbt implementera konstruktioner med ultralåg effekt för att uppfylla kraven i olika tillämpningar.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk har arbetat i mer än 20 år med att skriva för och om elektronikbranschen inom många olika områden som maskinvara, programvara, system och applikationer – inklusive sakernas internet. Han har en kandidatexameni neurovetenskap om artificiella neuronnät och har arbetat inom rymdfartsindustrin med mycket distribuerade säkra system och metoder för acceleration av algoritmer. När han inte skriver artiklar om teknik och konstruktion arbetar han med applikationer för djupinlärning för igenkänningssystem och rekommendationssystem.

Om utgivaren

DigiKeys nordamerikanska redaktörer