市場對于更精確的生物或電化傳感的需求日益增長,面對這種狀況,開發人員幾乎找不到有效的傳感器信號鏈解決方案,能夠同時提供精度和靈活性,以滿足不同的要求。設計人員需要在緊湊的外形內提供這些功能,同時還要保持低功耗,這些需求不僅進一步增加了設計的復雜性,而且打亂了設計日程。
如果沒有精確的傳感器信號采集和調節,要測量與生物和化學傳感應用相關的包含噪聲的小信號源,可能導致嚴重錯誤。在生物應用(例如監測人體生命體征)或化學應用(例如毒氣檢測)中,由于測量誤差導致的漏報或誤報可能帶來災難性后果。
本文將介紹Analog Devices的精密模擬前端 (AFE) 憑借對 2 線、3 線和 4 線傳感應用的廣泛支持,提供一種簡單有效的解決方案。只需對 AD5940 的配置和操作功能進行編程,開發人員便可使用 AD5940 來快速實現超低功耗設計,滿足對精確的生物或電化傳感的不同要求。
生物和化學傳感系統的應用
測量人體或電化電源的阻抗、電壓或電流變化,已成為很多應用的一項重要功能。通過測量皮膚電活動 (EDA)(以前稱為皮電反應 (GSR))來確定壓力指標,可為醫療專業人員提供有關患者精神生理狀態的重要線索。如果沒有得到治療,長期心理壓力和焦慮可能導致心臟問題和其他嚴重的生理病理。
其他類型的測量,例如生物阻抗分析 (BIA),也在消費型健康與健身產品和醫療級分析中得到日益廣泛的應用。BIA 已在人體成份檢測設備中使用多年,也吸引了醫療專家越來越多的關注,被當作一種非侵入式技術用于血壓測量。醫療設備專家使用相關方法測量電化電源中的微小電流變化,并借助這些測量提供更有效的血糖監測儀和其他設備。同樣,工業工程師也可在毒氣監測儀和水質測試儀等應用中使用相同的電化測量方法。
這些測量技術和其他技術具有一些共同的特性,例如將電極放置在皮膚上或流體標本中。但它們的實現細節具有很大的差異,開發人員必須能夠找到一種解決方案,以涵蓋廣泛的需求。
例如,EDA 測量需要低頻激勵源,它們的頻率通常不高于 200 赫茲 (Hz),旨在限制激勵信號滲透到更深層的人體組織。它通常采用兩線電路實現,由某塊皮膚上的一對電極之間存在的源電壓,感應出隨表皮導電性的變化而波動的小電流。
相反,BIA 測量通常需要四線電路,將低頻激勵與高頻激勵(通常為 50 kHz)相結合,以便到達深層組織。
然而,電化測量通常需要另一種配置。這些測量將工作電極(參與一些相關化學反應)、參考電極(用于維持恒定的電勢)和反電極(完成電流環路)組合在一起。
雖然這些不同測量的各種解決方案已問世多年,但很少有高效的替代解決方案能夠支持這些技術的不同要求。使用 Analog Devices 的AD5940BCBZ-RL7AFE,開發人員能夠更輕松地實現同時滿足高精度、小尺寸和低功耗要求的生物和電化傳感系統。
集成式 AFE
AD5940 是一款低功耗、多功能 AFE,能夠通過編程方式進行配置,以支持需要 2 線、3 線或 4 線傳感器測量的廣泛應用。通過將 AD5940 與一組合適的電極組合在一起,可以快速開發出能夠滿足健康、醫療和工業細分市場內各種應用測量要求的高精度器件。
除了可配置性和精度之外,AD5940 在 4 赫茲 (Hz) 的輸出數據速率下僅消耗不到 80 微安 (μA) 的電流,這使得開發人員能夠在新興的超低功耗產品(例如可穿戴設備和其他電池供電設備)中構建測量功能。同時,AD5940 通過將高精度電壓、電流和阻抗測量所需的整套子系統集成到一起,簡化了設計(圖 1)。
圖 1:Analog Devices 的 AD5940 組合了生成激勵源和測量電流、電壓及阻抗所需的整套子系統。(圖片來源:Analog Devices)
AD5940 的功能架構包括三個主要子系統,分別用于激勵輸出、輸入信號測量和控制。
作為激勵源,AD5940 提供了兩個單獨的高精度激勵回路。對于 BIA 等需要高達 200 kHz 高頻激勵的應用,開發人員可以使用高帶寬回路,按照需要的頻率和波形生成激勵信號。在此回路內部,波形發生器驅動一個高速 12 位數模轉換器 (DAC),該轉換器的濾波輸出再通過一個可編程增益放大器 (PGA),驅動激勵輸出放大器,從而將 AC 激勵信號與傳感器所需的 DC 偏置電壓組合在一起(圖 2)。
圖 2:對于高頻激勵要求,開發人員可以使用 Analog Devices 的 AD5940 高速信號鏈生成不同形狀和頻率(最高可達 200 kHz)的波形。(圖片來源:Analog Devices)
對于 EDA 或電化測量等需要來自 DC 的不超過 200 Hz 的低頻激勵的應用,開發人員可以使用低帶寬激勵回路。在此回路中,由一個低功耗、雙輸出 12 位 DAC 驅動一個低噪聲電位放大器 (PA) 的非反向輸入,而該放大器通常連接到 3 線傳感器配置中的反電極 (CE)(圖 3)。
在此配置中,測量回路含有基準電極 (RE),用于驅動 PA 的反向輸入,而傳感電極 (SE) 則驅動一個低功耗跨阻放大器 (TIA) 的反向輸入,后者的非反向輸入由雙輸出 DAC 的另一個輸出通道驅動。
圖 3:對于需要低頻激勵的 3 線傳感器配置,Analog Devices 的 AD5940 低帶寬回路包含一個 PA,其輸出端連接到 CE,輸入端連接到 RE,同時由一個低功耗跨阻放大器 (LPTIA) 接收來自 SE 的輸入。(圖片來源:Analog Devices)
與低帶寬回路相同,高帶寬回路在高頻激勵信號鏈中包含了一個高速 TIA,用于將 SE 輸入電流轉換為電壓。這兩種回路都將其相應的輸出驅動至 AD5940 的集成模擬多路復用器,由其為輸入信號測量子系統提供服務。
信號測量子系統的核心是一個高性能模擬信號鏈,其中組合了一個信號調節級,包括緩沖區、PGA 以及為 16 位逐次逼近寄存器 (SAR) 模數轉換器 (ADC) 饋送信號的二階濾波器(圖4)。
圖 4:在 AD5940 信號測量子系統內部,開發人員可利用一個模擬多路復用器,通過信號調節級驅動不同的電壓源,以便由高性能 16 位模數轉換器進行轉換。(圖片來源:Analog Devices)
使用模擬輸入倍頻器,開發人員能夠利用不同信號源,包括內部溫度傳感器、電源和基準電壓以及其他外部信號源,為 ADC 信號鏈饋送信號。對于典型應用,傳感器收集數據的主要信號源仍為低功耗 TIA 和高速 TIA 輸出(分別來自相應的低帶寬和高帶寬回路)。
轉換之后,單獨的功能模塊提供進一步的后處理,包括進行數字濾波,以及自動計算樣本集的平均值、中間值和方差。除了這些更基本的功能之外,AD5940 的后處理硬件還包括離散傅里葉變換 (DFT) 單元。借助這種 DFT 功能,開發人員可將 AD5940 配置為自動計算阻抗測量中需要的幅度和相位值。
第三個主要子系統用于控制器件的工作,包括生成特定激勵源、轉換不同電壓源、執行后處理功能。以這一控制子系統為基礎,開發人員可利用一個可編程定序器來生成激勵和執行傳感器測量,而無需主機微控制器或微處理器介入。
使用主機處理器將命令序列加載到 AD5940 后,開發人員只需發出命令來啟動 AD5940 定序器,然后立即使用一條等待中斷 (WFI) 指令或其他方法,將主機處理器置于低功耗休眠狀態。此時,定序器將接管 AD5940 的進一步控制,獨立地執行一系列測量,甚至在測量之間將器件置于低功耗模式(圖 5)。
圖 5:開發人員可對 AD5940 進行編程,使其即使在上電復位后仍舊獨立工作,即在啟動過程中加載值,初始化器件,加載命令序列,以及最終運行定序器。(圖片來源:Analog Devices)
在由定序器控制的自主工作期間,AD5940 從先進先出 (FIFO) 命令緩沖區讀取命令,并將產生的數據寫入 FIFO 數據緩沖區。命令和數據 FIFO 緩沖區共享從 AD5940 的集成式靜態隨機存取存儲器 (SRAM) 分配的同一 6 kB 存儲塊,但兩個 FIFO 緩沖區在操作上仍是獨立的。當命令 FIFO 緩沖區清空或數據 FIFO 緩沖區填滿時,可將 AD5940 編程為生成主機處理器中斷,以酌情加載其他序列或卸載數據。
系統設計
從硬件和軟件的角度來看,使用 AD5940 進行開發都很簡單。
由于它完全集成了需要的硬件子系統,開發人員只需使用很少的外部元器件,便可利用 AD5940 實現復雜的設計,例如 4 線 BIA 測量回路。開發人員能夠配置 AD5940 低帶寬回路使用器件的兩個模擬輸入 (AIN) 端口 AIN2 和 AIN3,來處理所需的低頻測量(圖 6)。同時,他們可以使用器件的 CE0 和 AIN1 端口,實現 BIA 應用同時需要的高頻激勵和測量。
圖 6:使用 Analog Devices 的 AD5940,開發人員只需少數外部元器件,便可實現四線配置,提供在人體阻抗分析應用中所需的低頻和高頻激勵。(圖片來源:Analog Devices)
借助一系列 Analog Devices 評估板,開發人員可以省略這一繁瑣的硬件接口設計步驟,快速地完成開發項目。Analog Devices 的EVAL-ADICUP3029評估套件基板采用ArduinoUNO外形尺寸設計,提供了基于 Analog Devices 的ADUCM3029微控制器的主機平臺。通過加裝 AD5940生物電盾板,開發人員可以立即開始使用 AD5940 來執行類似 BIA 這樣的生物測量。或者,開發人員可以加裝 AD5940電化盾板,并添加氣體傳感器等外部傳感器,以執行基于 AD5940 電化測量的毒氣分析。
開發人員可以快速利用可用的資源來評估基于 AD5940 的不同軟件應用。除了開源的 C 語言AD5490 固件庫之外,Analog Devices 還提供開源庫,其中包括了多個 C 語言應用樣例,例如人體阻抗分析樣例應用。
如清單 1 所示,BIA 模塊中的主例程 AD5940_Main() 調用了一系列的初始化函數:
AD5940PlatformCfg()是一個 AD5490 固件庫函數,用于設置 AD5940 硬件子系統,包括 FIFO、時鐘和 GPIO。
AD5940BIAStructInit()是一個 BIA 應用函數,它使用開發人員能夠修改的值進行結構實例化,以便輕松更改應用參數,例如以赫茲 (Hz) 為單位的樣本輸出數據速率 (BiaODR),以及樣本的數量 (NumOfData)。
AppBIAInit()是一個 BIA 應用函數,用于復位參數,執行校準,以及通過調用另一個 BIA 應用例程AppBIASeqCfgGen()來對定序器進行初始化。
復制 /* !!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 子系統方面發揮了重要作用。該例程對 D5940 固件庫頭文件 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
清單 2:Analog Devices 的人體阻抗分析 (BIA) 樣例應用中的AppBIADataProcess()例程展示了開發人員如何在自定義的后處理例程(例如計算電壓幅度和相位的這一例程)中使用 AD5940 測量數據。(代碼來源:Analog Devices)
為了構建適用于健康和健身可穿戴設備且功能更豐富的解決方案,開發人員可將 AD5940 的阻抗測量功能與 Analog Devices 的AD8233心率監測器結合使用(請參閱“專用心率監測器 IC 克服 ECG 噪聲和功耗挑戰”)。
結論
Analog Devices 的 AD5940 AFE 支持眾多的 2 線、3 線和 4 線傳感應用,針對精確的生物或電化傳感應用所面臨的精度和靈活性難題提供了一種簡單有效的解決方案。只需對 AD5940 的配置和操作功能進行編程,開發人員便可使用 AD5940 快速實現超低功耗設計,滿足不同應用的需求。
-
AFE
+關注
關注
7文章
218瀏覽量
121594 -
Analog Devices
+關注
關注
2文章
211瀏覽量
18317
發布評論請先 登錄
相關推薦
評論