저전력 센서 AFE를 사용하여 고정밀 화학 또는 생물학 감지 시스템 구현

작성자: Stephen Evanczuk

DigiKey 북미 편집자 제공

생물학 또는 전기 화학에서 더욱 정밀한 감지에 대한 수요가 증가하면서 개발자들은 정확도와 유연성을 모두 제공하면서 다양한 요구 사항을 지원할 수 있는 일부 효과적인 센서 신호 체인 솔루션을 발견했습니다. 이러한 기능을 저전력의 콤팩트한 형태로 제공해야 함에 따라 문제가 더 복잡해지고 설계 일정도 훼손됩니다.

정확한 센서 신호를 취득하고 조절하지 못한다면 생물학 및 화학 감지 응용 분야와 관련하여 잡음이 심한 소형 신호 발생기를 측정하는 과정에서 중대한 오류가 발생할 수 있습니다. 생물학 응용 분야(예: 인간 생명 징후 모니터링) 또는 화학 응용 분야(예: 독성 가스 감지)에서 측정 오류로 인한 가양성 또는 가음성은 파괴적인 결과를 초래할 수 있습니다.

이 기사에서는 광범위한 2선, 3선, 4선 감지 응용 제품 지원을 통해 간단하면서 효과적인 솔루션을 제공하는 Analog Devices 정밀 아날로그 프런트 엔드(AFE)에 대해 설명합니다. 개발자는 AD5940을 통해 구성 및 운영 기능을 간단히 프로그래밍하여 정확한 생물 또는 전기 화학 감지에 대한 다양한 요구 사항을 충족하는 초저전력 설계를 빠르게 구현할 수 있습니다.

생물학 및 화학 감지 시스템 응용 분야

인체 또는 전기 화학 소스에서 임피던스, 전압 또는 전류 변화를 측정하는 것이 많은 응용 분야에 중요한 기능으로 등장했습니다. 피부 전기 활동(EDA)(이전에는 피부 전기 반응(GSR)이라고 함)을 측정하여 스트레스 지표를 식별하는 기능은 의료 전문가에게 개인의 정신 생리학적 상태에 대한 중요한 실마리를 제공합니다. 치료하지 않고 방치할 경우 만성적 스트레스와 불안은 심장 문제 및 기타 생리학적 이상으로 이어질 수 있습니다.

또한 생체임피던스 분석(BIA)과 같은 다양한 유형의 측정이 의료, 피트니스 및 의료 등급 분석용 소비자 제품에서 점점 더 다양하게 적용되고 있습니다. 수년 전부터 체성분 장치에서 사용되고 있는 BIA를 혈압 측정을 위한 비침습적 기술로 활용하려는 의료 전문가들의 관심이 높아지고 있습니다. 전기 화학 소스에서 작은 전류 변화를 측정하는 관련 방법을 활용하여 의료 장치 전문가는 이러한 측정을 통해 더 효과적인 혈당 모니터 및 기타 장치를 제공하고 있습니다. 마찬가지로 산업 엔지니어는 독성 가스 모니터, 수질 테스터 등과 같은 응용 분야에서 동일한 전기 화학 측정 방법을 사용할 수 있습니다.

이러한 측정 기술에서는 일반 기능(예: 피부 또는 유체 시료 내에 배치된 전극 사용)을 공유합니다. 하지만 구현 세부 사항이 매우 다양하므로 개발자가 광범위한 요구 사항을 모두 충족하는 하나의 솔루션을 찾는 데 어려움이 있습니다.

예를 들어 EDA 측정을 수행하려면 인간 조직의 더 깊은 층에 대한 여기 신호의 침투를 제한하도록 설계되고 일반적으로 200Hz를 초과하지 않는 저주파 여기 소스가 필요합니다. 일반적으로 2선 회로로 구현되는 전극 쌍 사이의 피부 패치를 통해 전달되는 소스 전압은 표피 전도율 변화에 따라 변동되는 작은 전류를 유도합니다.

반대로 BIA 측정을 수행하려면 일반적으로 깊은 조직 층에 도달하기 위해 저주파 여기를 고주파 여기(일반적으로 50kHz)와 결합하는 4선 회로가 필요합니다.

하지만 전기 화학 측정에서는 일반적으로 다른 구성이 필요합니다. 이러한 측정에서는 일부 관련 화학 반응에 포함되는 작업 전극을 일정한 잠재성을 유지하는 데 사용되는 기준 전극 및 전류 루프를 완성하는 대향 전극과 결합합니다.

수년 동안 이러한 여러 측정에 대한 다양한 솔루션이 등장했지만, 이러한 기술의 다양한 요구 사항을 지원할 수 있는 기능을 제공하는 효과적인 대체 솔루션은 일부에 불과합니다. Analog Devices AD5940BCBZ-RL7 AFE를 사용하여 개발자는 높은 정확성, 작은 크기, 낮은 전력 소비 요구 사항을 결합할 수 있는 생물학 및 전기 화학 감지 시스템을 보다 쉽게 구현할 수 있습니다.

통합 AFE

AD5940은 2선, 3선 또는 4선 센서 측정이 필요한 다양한 응용 제품을 지원하도록 프로그래밍 방식으로 구성 가능한 저전력 다기능 AFE입니다. AD5940을 적절한 전극 보완과 결합하여 보건, 의료, 산업 응용 분야의 다양한 측정 요구 사항을 충족할 수 있는 고정밀 장치를 빠르게 개발할 수 있습니다.

구성 가능성과 정확도 외에도 AD5940은 4Hz의 출력 데이터 전송률에서 80µA 미만의 전류를 소비하여, 개발자가 웨어러블, 기타 배터리 구동 장치와 같은 새롭게 등장하는 초저전력 제품에 측정 기능을 내장할 수 있도록 해줍니다. 또한 AD5940은 고정밀 전압, 전류 및 임피던스 측정에 필요한 전체 서브 시스템 보완을 통합하여 설계를 단순화합니다(그림 1).

Analog Devices의 AD5940 구성도그림 1: Analog Devices AD5940은 여기 소스를 생성하고 전류, 전압, 임피던스를 측정하는 데 필요한 전체 서브 시스템을 결합합니다. (이미지 출처: Analog Devices)

AD5940 기능 아키텍처는 여기 출력, 입력 신호 측정, 제어를 위한 세 가지 기본 서브 시스템으로 구성됩니다.

여기 소스로서 AD5940은 두 개의 개별 고정밀 여기 루프를 제공합니다. 최대 200kHz의 고주파 여기가 필요한 BIA와 같은 응용 분야의 경우 개발자는 원하는 주파수와 파형으로 여기 신호를 생성할 수 있는 고대역폭 루프를 사용할 수 있습니다. 이 루프 내에서 파형 생성기는 AC 여기 신호를 센서에 필요한 DC 바이어스 전압과 결합하는 여기 출력 증폭기를 구동하는 프로그래밍 가능 이득 증폭기(PGA)를 필터링된 출력이 통과하는 고속 12비트 디지털 아날로그 컨버터(DAC)를 구동합니다(그림 2).

Analog Devices의 AD5940 고속 신호 체인 구성도그림 2: 고주파 여기 요구 사항의 경우 개발자는 Analog Devices AD5940 고속 신호 체인을 사용하여 다양한 형태의 파형과 최대 200kHz의 주파수를 생성할 수 있습니다. (이미지 출처: Analog Devices)

EDA 또는 전기 화학 측정과 같이 DC ~ 200Hz 사이의 저주파 여기가 필요한 응용 분야의 경우 개발자는 저대역 여기 루프를 사용할 수 있습니다. 이 루프에서 저전력 이중 출력 12비트 DAC는 3선 센서 구성의 대향 전극(CE)에 일반적으로 연결되는 저잡음 일정 전위기 증폭기(PA)의 비반전 입력을 구동합니다(그림 3).

이 구성에서 측정 루프는 PA의 반전 입력을 구동하는 기준 전극(RE)으로 완성되며, 감지 전극(SE)은 저전력 트랜스 임피던스 증폭기(TIA)의 반전 입력을 구동합니다. 여기서 TIA의 비반전 입력은 이중 출력 DAC의 다른 출력 채널에 의해 구동됩니다.

Analog Devices의 AD5940 저대역 루프 구성도그림 3: 저주파 여기가 필요한 3선 센서 구성의 경우 Analog Devices AD5940 저대역 루프에는 출력은 CE에 연결되고 입력은 RE에 연결되는 PA가 포함되고, 저전력 트랜스 임피던스 증폭기(LPTIA)는 SE에서 입력을 수신합니다. (이미지 출처: Analog Devices)

저대역 루프와 마찬가지로 고대역 루프는 SE 입력 전류를 전압으로 변환하기 위해 고속 TIA로 고주파 여기 신호 체인을 보완합니다. 결국 두 루프는 모두 입력 신호 측정 서브 시스템을 지원하는 AD5940의 통합 아날로그 멀티플렉서에 해당 출력을 전달합니다.

신호 측정 서브 시스템의 핵심이 되는 고성능 아날로그 신호 체인은 16비트 연속 근사화 레지스터(SAR) 아날로그 디지털 컨버터(ADC)에 제공되는 2차 필터, PGA, 버퍼 등으로 구성되는 신호 조정 단계를 결합합니다(그림 4).

Analog Devices의 AD5940 신호 측정 서브 시스템 구성도그림 4: AD5940 신호 측정 서브 시스템 내에서 아날로그 멀티플렉서를 사용하면 개발자가 고성능 16비트 ADC에서 변환하기 위해 신호 조정 단계를 통해 다양한 전압 소스를 구동할 수 있습니다. (이미지 출처: Analog Devices)

아날로그 입력 배율기를 사용하여 개발자는 ADC 신호 체인에 내부 온도 센서, 공급 및 레퍼런스 전압, 다른 외부 소스를 비롯한 다양한 신호 소스를 제공할 수 있습니다. 일반 응용 분야에서 센서 데이터 수집을 위한 기본 신호 발생기는 각각 저대역 및 고대역 루프의 저전력 TIA 및 고속 TIA 출력을 유지합니다.

변환 후 별도의 기능 블록에서 추가적인 사후 처리를 수행합니다. 예를 들어 디지털 필터링을 수행하고 샘플 세트에서 평균, 분산 등을 자동으로 계산합니다. 이러한 기본 기능 이외에 AD5940 사후 처리 하드웨어에는 이산 소자 프리에 변환(DFT) 장치가 포함되어 있습니다. 이 DFT 기능을 사용하여 개발자는 임피던스 측정에 필요한 규모 및 위상값을 자동으로 계산하도록 AD5940을 구성할 수 있습니다.

세 번째 주요 서브 시스템은 특정 여기 소스 생성, 다양한 전압 소스 변환, 사후 처리 기능 수행을 비롯한 장치 작업을 제어합니다. 개발자는 이 제어 서브 시스템의 기반이 되는 프로그래밍 가능 시퀀서를 사용하여 호스트 마이크로 컨트롤러 또는 마이크로 프로세서 없이 여기를 생성하고 센서 측정을 수행할 수 있습니다.

호스트 프로세서를 사용하여 명령 시퀀스를 AD5940으로 로드한 이후에 개발자가 명령을 실행하기만 하면 AD5940 시퀀서가 시작되고 인터럽트 대기(WFI) 명령 또는 다른 방법을 사용하여 호스트 프로세서가 저전력 절전 상태로 즉시 전환됩니다. 이제 시퀀서가 AD5940에 대한 제어권을 인계받아 측정 작업을 독립적으로 수행하고 측정 사이에 장치를 저전력 모드로 전환합니다(그림 5).

파워온 리셋 후에도 독립적으로 작동하도록 프로그래밍된 Analog Devices의 AD5940 구성도그림 5: 개발자는 부팅 프로세스 중에 값을 로드하고, 장치를 초기화하고, 명령 시퀀스를 로드한 다음 시퀀서를 실행하여 파워온 리셋 후에도 독립적으로 작동하도록 AD5940을 프로그래밍할 수 있습니다. (이미지 출처: Analog Devices)

시퀀서에 의해 제어되는 자율 작동 중에 AD5940은 FIFO(First-In, First-Out) 명령 버퍼에서 명령을 읽고 결과 데이터를 FIFO 데이터 버퍼에 씁니다. 명령 및 데이터 FIFO 버퍼는 모두 AD5940의 통합 SRAM(Static Random-Access Memory)에서 할당된 동일한 6kB 블록을 공유하지만, 두 FIFO 버퍼는 개별적인 작동 상태를 유지합니다. 명령 FIFO 버퍼가 비어 있거나 데이터 FIFO 버퍼가 채워지면 호스트 프로세서에 대한 인터럽트를 생성하여 추가적인 시퀀스를 로드하거나 데이터를 적절히 언로드하도록 AD5940을 프로그래밍할 수 있습니다.

시스템 설계

하드웨어와 소프트웨어의 관점에서 AD5940을 통한 개발은 간단합니다.

AD5940은 필요한 하드웨어 서브 시스템을 완벽하게 통합하므로 개발자가 최소한의 외부 부품만 사용하여 4선 BIA 측정 루프와 같은 복잡한 설계를 구현할 수 있습니다. 개발자는 장치의 두 아날로그 입력(AIN) 포트(AIN2 및 AIN3)를 사용하여 필요한 저주파 측정을 처리하도록 AD5940 저대역 루프를 구성할 수 있습니다(그림 6). 동시에 장치의 CE0 및 AIN1 포트를 사용하여 BIA 응용 제품에 필요한 고주파 여기 및 측정을 구현할 수도 있습니다.

4선 구성을 구현하는 Analog Devices의 AD5940 구성도그림 6: Analog Devices AD5940을 사용하면 개발자가 일부 외부 부품만으로 인체 임피던스 분석 응용 제품에서 저주파 및 고주파 여기가 모두 필요한 4선 구성을 구현할 수 있습니다. (이미지 출처: Analog Devices)

따라서 Analog Devices 평가 기판을 사용하는 개발자는 이 최소 하드웨어 인터페이스 설계 단계를 건너뛰어 개발 프로젝트를 단축할 수 있습니다. Arduino UNO 폼 팩터로 설계된 Analog Devices EVAL-ADICUP3029 평가 키트 기본 기판은 Analog Devices ADUCM3029 마이크로 컨트롤러를 기반으로 하는 호스트 플랫폼을 제공합니다. AD5940 생체 전기 실드를 연결하여 개발자는 AD5940을 통해 BIA와 같은 생물학 측정을 즉시 수행할 수 있습니다. 또한 개발자는 AD5940 전기 화학 실드를 연결하고 외부 센서(예: 가스 센서)를 추가하여 AD5940 전기 화학 측정을 기반으로 독성 가스 분석을 수행할 수 있습니다.

개발자는 가용 리소스를 사용하여 다양한 AD5940 기반 소프트웨어 애플리케이션을 빠르게 평가할 수 있습니다. 오픈 소스 C 언어 AD5490 펌웨어 라이브러리와 함께 Analog Devices는 인체 임피던스 분석 샘플 애플리케이션을 비롯한 많은 C 언어 응용 사례를 포함하는 오픈 소스 리포지토리를 제공합니다.

목록 1에 표시된 대로 BIA 모듈의 주 루틴인 AD5940_Main()은 다음과 같은 일련의 초기화 함수를 호출합니다.

  • AD5940PlatformCfg()는 FIFO, 클록, GPIO를 비롯한 AD5490 하드웨어 서브 시스템을 설정하는 AD5940 펌웨어 라이브러리 함수입니다.
  • AD5940BIAStructInit()는 값을 사용하여 구조를 인스턴스화하는 BIA 응용 함수입니다. 개발자는 이 값을 수정하여 샘플 출력 데이터 전송률(BiaODR, Hz), 샘플 수(NumOfData) 등과 같은 응용 파라미터를 쉽게 변경할 수 있습니다.
  • AppBIAInit()는 파라미터를 재설정하고, 보정을 수행하고, 다른 BIA 응용 루틴인 AppBIASeqCfgGen()을 호출하여 시퀀서를 초기화하는 BIA 응용 함수입니다.
복사 /* !!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. */     }   } } 

목록 1: Analog Devices 인체 임피던스 분석(BIA) 샘플 애플리케이션에서 주 루틴은 AD5490에서 인터럽트를 대기하는 무한 루프 내에서 AD5490을 초기화하고, 맞춤형 파라미터를 설정하고, 명령 시퀀스를 정의한 다음 측정 결과를 수집하는 기본 설계 패턴을 보여줍니다. (코드 출처: Analog Devices)

AppBIAInit() 함수에 의해 호출된 경우 AppBIASeqCfgGen()은 원하는 시퀀스(이 경우 임피던스 측정)를 수행하는 데 필요한 AD5940 서브 시스템을 구성할 때 까다로운 작업을 수행합니다. 이 루틴은 각 응용 분야에 필요한 특정 구성 및 파라미터를 설정하는 AD5940 펌웨어 라이브러리 헤더 파일 ad5940.h에 정의된 일련의 구조를 인스턴스화합니다.

마지막으로 AD5940_Main()AppBIACtrl()을 호출하여 데이터를 수집하는 데 사용되는 무한 루프에 들어가기 전에 측정 프로세스를 시작합니다. 데이터가 사용 가능해지면(인터럽트 신호에 의해 표시됨) AppBIAISR()을 호출하여 장치에서 데이터(사용 가능한 경우)를 가져오고 다른 루틴인 AppBIADataProcess()를 호출합니다. 이 루틴은 원시 데이터를 처리하여 응용 분야에 필요한 결과를 생성합니다(목록 2). 프로덕션 응용 분야에서 개발자는 AD5940의 포괄적인 인터럽트 기능을 사용하여 더 효과적인 데이터 수집 방법을 생성할 수 있습니다.

복사 /* 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; } 

목록 2: Analog Devices 인체 임피던스 분석(BIA) 샘플 응용 분야에 포함된 AppBIADataProcess() 루틴은 개발자가 이 루틴과 같은 맞춤형 사후 처리 루틴에서 AD5940 측정 데이터를 사용하여 전압 크기 및 위상을 계산하는 방법을 보여줍니다. (코드 출처: Analog Devices)

예를 들어, 풍부한 기능을 가진 의료 및 피트니스 웨어러블용 솔루션에서 개발자는 AD5940의 임피던스 측정 기능을 Analog Devices의 AD8233 심박계와 결합할 수 있습니다("특수 심박계 IC를 통해 ECG 잡음 및 전력 문제 해결" 참조).

결론

광범위한 2선, 3선 및 4선 감지 응용 제품을 지원하는 Analog Devices AD5940 AFE는 정밀 생물학 또는 전기 화학 감지의 정확성 및 유연성 문제를 해결하는 간단하면서 효과적인 솔루션을 제공합니다. 개발자는 AD5940을 통해 구성 및 운영 기능을 간단히 프로그래밍하여 다양한 응용 분야의 요구 사항을 충족하는 초저전력 설계를 빠르게 구현할 수 있습니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk는 전자 산업에 관해 하드웨어, 소프트웨어, 시스템, 응용 제품(예: IoT)을 비롯한 광범위한 주제에 대해 20년 이상 집필한 경력을 갖고 있습니다. 그는 신경 과학의 뉴런 네트워크 박사 학위를 받았으며항공 우주 산업 분야의 광범위하게 분포된 보안 시스템 및 알고리즘 가속 메서드 관련 업무를 수행했습니다. 현재, 기술 및 엔지니어링에 대해 기사를 쓰지 않을 때에는 인식 및 추천 시스템에 대한 심층적 학습 응용 프로그램을 연구하고 있습니다.

게시자 정보

DigiKey 북미 편집자