王 達(dá),王化祥,崔自強(qiáng),高振濤,種楠楠
(1.天津大學(xué) 電氣與自動(dòng)化工程學(xué)院,天津300072;2.華北石油采油工藝研究院,河北 任丘062552;3.南開(kāi)大學(xué) 信息科學(xué)技術(shù)學(xué)院,天津300071)
阻抗譜測(cè)量在生物醫(yī)學(xué)工程、工業(yè)測(cè)量等領(lǐng)域有著廣泛應(yīng)用。通常,阻抗譜測(cè)量系統(tǒng)由多個(gè)模塊組成,其中,涉及信號(hào)發(fā)生器、可編程增益放大器(PGA)、低通濾波器(LPF)、模數(shù)轉(zhuǎn)換器(ADC)以及信號(hào)解調(diào)模塊,使系統(tǒng)結(jié)構(gòu)復(fù)雜、集成度低,且不易實(shí)現(xiàn)便攜[1]。AD5933 為 Analog Devices 公司推出的一種集成式阻抗測(cè)量芯片[2],該芯片將直接數(shù)字合成器(direct digital synthesizer,DDS)、模數(shù)轉(zhuǎn)換器、DSP 微處理器內(nèi)核等單元集成在一起,可直接輸出待測(cè)阻抗的實(shí)部和虛部等信息?,F(xiàn)場(chǎng)可編程門(mén)陣列(field programmable gate array,F(xiàn)PGA)具有速度快、集成度高和可靠性強(qiáng)等特點(diǎn),并具有良好的可移植性和可擴(kuò)展性。本文采用硬件描述語(yǔ)言(very-h(huán)igh-speed integrated circuit hardware description language,VHDL)編程,設(shè)計(jì)了一種基于 FPGA 和AD5933 的集成式阻抗譜測(cè)量系統(tǒng)。系統(tǒng)功耗低,操作簡(jiǎn)單,便于實(shí)現(xiàn)阻抗譜測(cè)量系統(tǒng)的小型化,具有廣泛應(yīng)用前景。
AD5933 功能框圖如圖1 所示,芯片采用兩電極法測(cè)量阻抗,內(nèi)置DDS 產(chǎn)生正弦數(shù)字信號(hào),經(jīng)數(shù)模轉(zhuǎn)換和可調(diào)增益放大器產(chǎn)生幅值、頻率可調(diào)的正弦電壓,激勵(lì)被測(cè)阻抗單元;信號(hào)接收端與運(yùn)算放大器的反向輸入端相連,產(chǎn)生VDD/2 的虛地電位。流過(guò)被測(cè)阻抗單元Z 的電流由反饋電阻器RFB轉(zhuǎn)換為電壓信號(hào)送入片內(nèi)放大、濾波,由ADC采樣后送至DSP 進(jìn)行數(shù)字解調(diào),獲得被測(cè)阻抗單元的實(shí)部和虛部信息。AD5933 與FPGA 間通過(guò)I2C 總線(xiàn)進(jìn)行通信。
圖1 AD5933 功能框圖Fig 1 Function block diagram of AD5933
對(duì)一個(gè)周期的正弦波連續(xù)信號(hào),沿其相位軸方向,以等量的相位間隔進(jìn)行相位/幅度采樣,得到一個(gè)周期性離散相位幅度序列,量化后采用二進(jìn)制數(shù)據(jù)編碼固化在只讀存儲(chǔ)器ROM 中,每個(gè)存儲(chǔ)器單元地址,即為相位取樣地址,存儲(chǔ)單元數(shù)據(jù)為已量化的正弦波幅值。一個(gè)這樣的只讀存儲(chǔ)器便構(gòu)成了與2π 周期相位取樣對(duì)應(yīng)的正弦波函數(shù)表。
在系統(tǒng)時(shí)鐘控制下,相位累加器依頻率控制字產(chǎn)生相位取樣地址對(duì)正弦波存儲(chǔ)器輪詢(xún),周期性地讀取波形存儲(chǔ)器中數(shù)據(jù),輸出相應(yīng)的階梯波。由奈奎斯特采樣定理可知,當(dāng)采樣信號(hào)頻率大于原始信號(hào)最高頻率的2 倍時(shí),可以不失真地還原原始信號(hào),因此,階梯波經(jīng)數(shù)模轉(zhuǎn)換器和低通濾波器后,便可恢復(fù)為設(shè)定頻率的正弦波信號(hào),再由可編程增益放大器調(diào)節(jié)其幅值。
信號(hào)從VOUT 端輸出后,激勵(lì)被測(cè)阻抗單元,經(jīng)電流/電壓轉(zhuǎn)換、可編程增益放大器、低通濾波器送至ADC 采樣。電流/電壓放大器正向端設(shè)置VDD/2 虛地電平,為保證信號(hào)不失真,選擇反饋電阻器RFB和PGA 增益時(shí),使采樣信號(hào)的幅值應(yīng)在ADC 線(xiàn)性范圍(0 V~VDD )內(nèi)。
信號(hào)經(jīng)ADC 采樣后,送至片上 DSP 進(jìn)行1024 點(diǎn)離散傅里葉變換(DFT)運(yùn)算,此運(yùn)算為單頻DFT,僅計(jì)算與激勵(lì)信號(hào)同頻的頻點(diǎn)處結(jié)果,即相當(dāng)于數(shù)字正交解調(diào),如式(1)
其中,x(n)為 ADC 的采樣序列,cos n 和 sin n 為正交的本振信號(hào)序列,f 為激勵(lì)信號(hào)頻率。解調(diào)后,X(f)通常為一個(gè)復(fù)數(shù),其實(shí)部和虛部分別存儲(chǔ)在芯片的實(shí)部寄存器和虛部寄存器中,作為測(cè)量結(jié)果輸出。數(shù)字解調(diào)過(guò)程保證了載波和本振的同頻同相,求和平均過(guò)程抑制了噪聲,提高了信噪比[3]。
為保證系統(tǒng)應(yīng)用的靈活性和良好的可擴(kuò)展性,本文以Xilinx 公司FPGA 為平臺(tái),實(shí)現(xiàn)芯片的阻抗測(cè)量功能,F(xiàn)PGA主要包括3 個(gè)模塊:I2C IP Core、微控制器PicoBlaze 及內(nèi)部寄存器組,系統(tǒng)架構(gòu)見(jiàn)圖2。I2C IP Core 模擬I2C 總線(xiàn),將指令轉(zhuǎn)換為I2C 時(shí)序;PicoBlaze 為系統(tǒng)運(yùn)行核心,控制程序流程;內(nèi)部寄存器組用以存儲(chǔ)系統(tǒng)運(yùn)行中產(chǎn)生的數(shù)據(jù)。
圖2 系統(tǒng)架構(gòu)Fig 2 System architecture
IP Core 主要由4 個(gè)單元組成:時(shí)鐘產(chǎn)生器、字節(jié)控制器、位控制器及移位寄存器。時(shí)鐘產(chǎn)生器按照預(yù)分頻寄存器設(shè)置參數(shù)產(chǎn)生5 倍SCL 時(shí)鐘,驅(qū)動(dòng)位控制器工作;字節(jié)控制器讀取命令寄存器中命令,控制位控制器產(chǎn)生對(duì)應(yīng)時(shí)序,并將命令執(zhí)行情況反饋至狀態(tài)寄存器;位控制器控制SCL,SDA 電平轉(zhuǎn)換,產(chǎn)生I2C 時(shí)序;移位寄存器寫(xiě)數(shù)據(jù)時(shí),將傳送寄存器中數(shù)據(jù)送至I2C 總線(xiàn),讀數(shù)據(jù)時(shí),將I2C 總線(xiàn)數(shù)據(jù)送入接收寄存器。
字節(jié)控制器由有限狀態(tài)機(jī)實(shí)現(xiàn),共設(shè)計(jì)為6 種狀態(tài):空閑、起始、讀、寫(xiě)、應(yīng)答及停止?fàn)顟B(tài),初始狀態(tài)為空閑。I2C 總線(xiàn)進(jìn)行數(shù)據(jù)傳輸時(shí),狀態(tài)機(jī)從空閑狀態(tài)跳至目標(biāo)狀態(tài),控制位控制器產(chǎn)生對(duì)應(yīng)時(shí)序,完成后再跳回空閑狀態(tài),等待新命令。狀態(tài)轉(zhuǎn)移圖見(jiàn)圖3。
圖3 字節(jié)控制器狀態(tài)轉(zhuǎn)移圖Fig 3 State transform diagram of byte controller
位控制器將字節(jié)控制器指令轉(zhuǎn)化為5 種時(shí)序:起始、重復(fù)起始、停止、讀和寫(xiě)時(shí)序,又根據(jù)不同時(shí)序SCL,SDA 高低電平組合,細(xì)分為 5 個(gè)部分,為 idle,A,B,C 和 D,在 5 倍SCL 時(shí)鐘驅(qū)動(dòng)下完成電平轉(zhuǎn)換,時(shí)序劃分圖見(jiàn)圖4。
圖4 位控制器時(shí)序劃分圖Fig 4 Timing divided map of bit controller
PicoBlaze 為 Xilinx 公司設(shè)計(jì)的一種8 位微控制器軟核,效率高,占用資源少,可方便嵌入到硬件系統(tǒng)設(shè)計(jì)中,實(shí)現(xiàn)與其他功能模塊的無(wú)縫連接[4]。與FPGA 并行處理結(jié)構(gòu)不同,PicoBlaze 采用專(zhuān)有匯編語(yǔ)言編程,順序執(zhí)行各條指令,可通過(guò)編譯器自動(dòng)生成VHDL 模塊,嵌入到系統(tǒng)設(shè)計(jì)中。本設(shè)計(jì),PicoBlaze 負(fù)責(zé)向I2C IP Core 發(fā)送命令和讀取數(shù)據(jù),控制程序運(yùn)行。發(fā)送命令時(shí),先將命令暫存至地址寄存器和命令寄存器,再通過(guò)WISHBONE 總線(xiàn)接口送入IP Core 內(nèi)部;讀取數(shù)據(jù)時(shí),將IP Core 數(shù)據(jù)送至數(shù)據(jù)寄存器后再讀取。
設(shè)芯片時(shí)鐘頻率為fclk,ADC 采樣頻率為 fs,VOUT 輸出信號(hào)頻率為fm,編程寫(xiě)入芯片的輸出信號(hào)頻率碼為M,則
對(duì)諧波信號(hào),當(dāng)采樣周期與采樣點(diǎn)數(shù)的乘積等于信號(hào)周期的整數(shù)倍L 時(shí),不會(huì)發(fā)生頻譜泄露[5],即
其中,N = 1024 為 AD5933 采樣點(diǎn)數(shù)。由式(2)、式(3)、式(4)得
由式(5)知,頻譜泄露與系統(tǒng)時(shí)鐘頻率的選擇無(wú)關(guān),僅與編程寫(xiě)入芯片的輸出信號(hào)頻率碼有關(guān)。為選擇整數(shù)點(diǎn)的輸出頻率fm并保證不出現(xiàn)頻譜泄露,即要求L,fm均為整數(shù),由式(2)、式(5)得 fclk應(yīng)為16 ×1024 的整數(shù)倍。為使輸出信號(hào)頻率可達(dá)100 kHz,選定16.384 MHz 外部時(shí)鐘驅(qū)動(dòng)芯片。
芯片的讀寫(xiě)可分為按字節(jié)寫(xiě)入、按塊寫(xiě)入以及按字節(jié)讀取和按塊讀取。每次按塊寫(xiě)入或讀取時(shí),應(yīng)先設(shè)定地址指針,且對(duì)控制寄存器不能按塊讀寫(xiě)。此外,AD5933 器件地址固定,因此,同一I2C 總線(xiàn)不可掛接多個(gè)AD5933,但可與其他地址不同的芯片共享同一總線(xiàn),如E2PROM。圖5為設(shè)定地址指針為94H 時(shí),用LAB6052 邏輯分析儀采集到的信號(hào)。
圖5 AD5933 地址指針設(shè)定Fig 5 Address pointer settings of AD5933
信噪比與系統(tǒng)精度為衡量一個(gè)系統(tǒng)性能的重要指標(biāo)。用峰值電壓為 2 V,5,10 ~100 kHz 正弦電壓激勵(lì) 10 kΩ 標(biāo)準(zhǔn)電阻器,重復(fù)測(cè)量100 次,在每個(gè)測(cè)量頻率點(diǎn)上,取其均值,依式(6)計(jì)算各頻點(diǎn)下所測(cè)阻抗相對(duì)誤差,依式(7)計(jì)算各頻點(diǎn)下的信噪比,見(jiàn)圖6。不難看出,系統(tǒng)在各頻點(diǎn)測(cè)量的阻抗誤差控制在2%之內(nèi),信噪比大于70 dB,說(shuō)明系統(tǒng)精度較高,抗干擾性較好。
依三元件生物阻抗模型[6],用 2 只 20 kΩ 電阻器和1 只100 pF電容器搭建實(shí)驗(yàn),測(cè)量三元件模型在激勵(lì)頻率為2~100 kHz 時(shí)模型的實(shí)部和虛部值,畫(huà)出阻抗圓圖,并采用最小二乘法擬合測(cè)量數(shù)據(jù)[7],使擬合后的圓弧半徑最小,見(jiàn)圖7。
由圖7 可見(jiàn),在一定范圍內(nèi),三元件生物阻抗模型虛部模值隨激勵(lì)頻率增大而增大,當(dāng)頻率達(dá)37 kHz 時(shí),虛部的模達(dá)到最大值4.8 kΩ ,然后又隨頻率的增大而減小;模型實(shí)部隨頻率的增大而減小,與理論值相吻合。此外,由三元件模型阻抗方程可知,其阻抗圓圖為第四象限的一個(gè)半圓,圓心在實(shí)軸上,而根據(jù)實(shí)測(cè)數(shù)據(jù)擬合得到的圓心坐標(biāo)為(15 378,82),存在一定誤差。
圖6 阻抗誤差與信噪比圖Fig 6 Diagram of impedance error vs frequency and SNR vs frequency
圖7 阻抗圓圖Fig 7 Impedance circle diagram
針對(duì)傳統(tǒng)阻抗測(cè)量?jī)x器電路復(fù)雜、集成度低等問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA 和AD5933 的集成式阻抗譜測(cè)量系統(tǒng)。系統(tǒng)采用VHDL 語(yǔ)言編程,具有良好的可移植性和可擴(kuò)展性,體積小,功耗低,抗干擾能力強(qiáng),運(yùn)行穩(wěn)定,信噪比大于70 dB,便于實(shí)現(xiàn)阻抗譜測(cè)量系統(tǒng)的小型化。
[1] 李 靜,陳世利,靳世久.基于AD5933 的阻抗分析儀的設(shè)計(jì)和實(shí)現(xiàn)[J].現(xiàn)代科學(xué)儀器,2009,4(2):28 -30.
[2] 崔傳金,郭志強(qiáng),趙 楠,等.用AD5933 實(shí)現(xiàn)電導(dǎo)率測(cè)量的研究[J].機(jī)電工程技術(shù),2008,37(4):45 -47.
[3] 林 凌,王斯亮,李 剛.基于AD5933 的高精度生物阻抗測(cè)量方法[J].電子產(chǎn)品世界,2008(7):74 -78.
[4] 溫廣翔,徐 欣.PicoBlaze 處理器IP Core 的原理與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(12):37 -39.
[5] Hoja Jerzy,Lentka Grzegorz.Portable analyzer for impedance spectroscopy[C]∥XIX IMEKO World Congress,2009:597 -502.
[6] 劉俊霞.基于虛擬儀器的生物阻抗測(cè)量平臺(tái)[D].天津:天津大學(xué),2005.
[7] 馬 嵐,楊玉星.生物電阻抗特征參數(shù)提取方法及測(cè)量系統(tǒng)的研究[J].航天醫(yī)學(xué)與醫(yī)學(xué)工程,2002,15(3):199 -202.