1 AD5933芯片概述
1.1 主要性能
AD5933 是一款高精度的阻抗測量芯片,內(nèi)部集成了帶有12位,采樣率高達(dá)1MSPS的AD轉(zhuǎn)換器的頻率發(fā)生器。這個頻率發(fā)生器可以產(chǎn)生特定的頻率來激勵外部電阻,電阻上得到的響應(yīng)信號被ADC采樣,并通過片上的DSP進(jìn)行離散的傅立葉變換。傅立葉變換后返回在這個輸出頻率下得到的實(shí)部值R和虛部值I。這樣就可以很容易的計(jì)算出在每個掃描頻率下的傅立葉變換的模和電阻的相角。
AD5933主要具有以下特性:
? 可編程的頻率發(fā)生器,最高頻率可達(dá)100KHz
? 作為設(shè)備通過口和主機(jī)通訊,實(shí)現(xiàn)頻率掃面控制
? 頻率分辨率為27位(<0.1Hz)
? 阻抗測量范圍為100Ω到10MΩ
? 內(nèi)部帶有溫度傳感器,測量誤差范圍為±2℃
? 帶有內(nèi)部時鐘
? 可以實(shí)現(xiàn)相位測量
? 系統(tǒng)精度為0.5%
? 可供選擇的電源范圍為2.7V到5V
? 正常工作的溫度范圍-40℃到+125℃
? 16腳SSOP封裝
1.2 AD5933的引腳定義
圖1給出了AD5933的封裝圖,表1給出了AD5933的引腳定義。建議在使用時把所有的電源腳9、10、11都連到一起,統(tǒng)一連接到電源上,同樣所有的地引腳12、13、14也都連接到一起,統(tǒng)一連接到系統(tǒng)地上
圖1 AD5933引腳排列
表1 AD5933引腳定義
1.3 主要應(yīng)用
AD5933 可以廣泛的應(yīng)用在電化學(xué)分析、生物電極阻抗測量、阻抗譜分析、復(fù)雜阻抗測量、腐蝕監(jiān)視和儀器保護(hù)、生物醫(yī)學(xué)和自動控制傳感器、無創(chuàng)檢測、原材料性能分析以及燃料和電池狀態(tài)監(jiān)測等眾多領(lǐng)域。為阻抗的測量提供了很大的方便,單片集成技術(shù)大大的減小了儀器的體積,使得儀器使用更加方便。簡單的I2C通訊方式,方便用戶操作,減小了用戶編程的困難。由于它給出的直接是變換后阻抗的實(shí)部和虛部數(shù)據(jù),大大的簡化了用戶編程過程,節(jié)省了開發(fā)時間。
2 AD5933工作原理
2.1 AD5933的參數(shù)設(shè)置
AD5933 片上帶有一個27位的DDS來提供輸出特定頻率激勵信號。輸入到DDS狀態(tài)寄存器的數(shù)據(jù)由AD5933片上地址為82h、83h、84h的起始頻率寄存器提供。盡管狀態(tài)寄存器提供27位的精度,但其實(shí)起始頻率寄存器的高三位是被內(nèi)部置零的,所以用戶可以控制的只有起始頻率的低24位。AD5933可以實(shí)現(xiàn) 0.1Hz的頻率分辨率,頻率分辨率是通過片上24位頻率增量寄存器來控制的。頻率增量寄存器的地址為85h、86h、87h。起始頻率和頻率分量寄存器的代碼的計(jì)算方法為要求的起始頻率值或者頻率增量值除以四分之一的系統(tǒng)時鐘再乘以2的27次方。系統(tǒng)時鐘可以通過控制寄存器來設(shè)置是選擇外部時鐘還是內(nèi)部時鐘,AD5933的內(nèi)部時鐘為16MHz。還可以在寄存器88h和89h中設(shè)置頻率點(diǎn)個數(shù)。例如,如果用戶想測量150個頻率點(diǎn),則用戶給88h和 89h中分別存入00H和96H。當(dāng)這三個參數(shù)都設(shè)置好之后,可以通過給控制寄存器寫入起始頻率掃描命令來實(shí)現(xiàn)掃描初始化。當(dāng)完成每個頻率點(diǎn)的掃描后狀態(tài)寄存器的第二位將自動置位,可以通過查詢這位來判斷是否測量完成,用戶可以自行控制實(shí)現(xiàn)跳到下一個頻率點(diǎn)。測量結(jié)果的實(shí)部保存在94h和95h中,虛部保存在96h和97h中,這個結(jié)果應(yīng)該在跳到下一個頻率點(diǎn)之前讀出。如果想要多次測量同一個頻率點(diǎn)的值,以使得測量結(jié)果更加精確,只需在一次測量完成之后在控制寄存器中寫入重復(fù)當(dāng)前頻率命令字即可。當(dāng)所有的頻率點(diǎn)都掃描完時,狀態(tài)寄存器的第三位將被自動置位。一旦這位被置位后,將不能進(jìn)一步實(shí)現(xiàn)頻率掃描。
頻率掃描的具體過程包括三部分:
(1) 進(jìn)入標(biāo)準(zhǔn)模式,在寫入開始頻率掃描控制字到控制寄存器之前,首先要寫入標(biāo)準(zhǔn)模式控制字到控制寄存器,在這個模式中VOUT和VIN引腳被內(nèi)部接到地,因此在外部電阻或者電阻和地之間沒有直流偏置。
?。?) 進(jìn)入初始化模式。在寫入開始頻率控制字到控制寄存器后將進(jìn)入初始化模式。
在這個模式下,電阻已經(jīng)被起始頻率信號激勵,但沒有進(jìn)行測量。用戶可以通過程序設(shè)置在寫入頻率掃描命令到控制寄存器來啟動進(jìn)入頻率掃描模式之前的時間。
(3) 進(jìn)入頻率掃描模式。用戶通過寫入頻率掃描控制字。在這個模式中,ADC在設(shè)定時間周期過去之后開始測量。用戶可以通過在每個頻率點(diǎn)測量之前設(shè)置寄存器8Ah和8Bh的值來控制輸出頻率信號的周期數(shù)。
片上DDS輸出的信號通過一個可編程增益放大器,通過控制增益可以實(shí)現(xiàn)四個不同范圍的峰峰值輸出。這個輸出范圍的控制是在控制寄存器的第9和第10位實(shí)現(xiàn)的。
在接收過程中,從電阻上得到的信號首先進(jìn)入電流電壓轉(zhuǎn)換放大器,后面緊跟的是一個可編程增益放大器,這個放大器的增益有5和1兩個值,可以通過設(shè)置控制寄存器的第8位來選擇。經(jīng)過可編程增益放大器之后的信號被ADC采樣,采樣得到的數(shù)據(jù)送DSP進(jìn)行傅立葉變換。每個頻率采樣1024個點(diǎn)進(jìn)行傅立葉變換,變換的結(jié)果存儲在兩個16位的寄存器中代表變換后的實(shí)部和虛部,每個16位的寄存器分別為兩個8位的寄存器組成,這個將在下面的寄存器介紹中專門給出。
AD5933的系統(tǒng)時鐘可以通過兩個途徑給出。用戶可以在外部時鐘引腳MCLK接入一個高精度穩(wěn)定的時鐘。另外也可以使用AD5933內(nèi)部16.776MHz的時鐘。具體選擇哪個時鐘可以通過設(shè)置控制寄存器的第3位來實(shí)現(xiàn)。系統(tǒng)上電默認(rèn)為選擇內(nèi)部時鐘。
2.2 內(nèi)部寄存器定義及設(shè)置
AD5933片上有9個寄存器。這些寄存器分別實(shí)現(xiàn)不同的參數(shù)設(shè)置功能,表2中給出了它們的名稱、地址和讀寫特性。
表2 內(nèi)部寄存器
起重大部分寄存器已經(jīng)在上面提到過了。首先主要介紹一下控制寄存器??刂萍拇嫫髦饕獙?shí)現(xiàn)AD5933各參數(shù)的設(shè)置以及工作狀態(tài)的設(shè)定。表3給出了控制寄存器各個位的功能定義??刂萍拇嫫饔蓛蓚€8位的寄存器組成,地址分別為80h和81h,在使用時,用戶可以只改變其中一個寄存器的值,而另外一個寄存器的值不變。當(dāng)給控制寄存器寫入復(fù)位命令時不會使得已經(jīng)編程好的和頻率掃描有關(guān)的設(shè)置復(fù)位,和頻率掃描有關(guān)的值為起始頻率,頻率增量和頻率點(diǎn)數(shù)。在復(fù)位命令之后,必須寫入開始頻率命令到控制寄存器來重新開始頻率掃描過程。上電之后控制寄存器的缺省值為A000H。
表3 AD5933內(nèi)部寄存器位定義
除了控制寄存器外,需要注意的還有狀態(tài)寄存器,狀態(tài)寄存器的地址是8Fh。狀態(tài)寄存器來標(biāo)志測量的結(jié)束。D7到D0各位分別表示AD5933的不同功能狀態(tài),其中D4至D7沒有實(shí)際意義,不表示任何測量狀態(tài)。(D0表示溫度測量完成時,這位被置1)。D1表示一個頻率點(diǎn)的阻抗測量,當(dāng)完成當(dāng)前頻率點(diǎn)的阻抗測量時,這位被置1,同時表明實(shí)部和虛部數(shù)據(jù)寄存器中已經(jīng)存入測量結(jié)果。在接到開始,跳到下個頻率點(diǎn),重復(fù)當(dāng)前頻率或復(fù)位等命令時該位被自動復(fù)位,在上電時這位也被復(fù)位。D2表示頻率掃描完成,當(dāng)所有的頻率點(diǎn)都測量結(jié)束時該位被置1,當(dāng)接受到復(fù)位命令或上電時這位被復(fù)位。
2.3 AD5933與控制系統(tǒng)的數(shù)據(jù)傳輸
AD5933與控制系統(tǒng)的通訊是用實(shí)現(xiàn)的,作為 設(shè)備使用,遵守通訊的時序。它有一個七位的設(shè)備地址0001101。當(dāng)控制系統(tǒng)寫入到AD5933時沒有什么特別說明的,當(dāng)從AD5933讀數(shù)據(jù)時,首先要寫入B0h到 AD5933,然后寫入要讀出數(shù)據(jù)的寄存器地址,讀出寄存器的值。
2.4 溫度測量實(shí)現(xiàn)
AD5933片上的溫度傳感器是一個13位的數(shù)字溫度傳感器,第14位是一個標(biāo)志位。溫度傳感器可以精確測量周圍器件的溫度。溫度傳感器的測量范圍是-40℃到+125℃,當(dāng)溫度達(dá)到+150℃時,當(dāng)工作在電壓和溫度的最大規(guī)格時,結(jié)構(gòu)完整性將受到破壞。測量溫度的精度為±2℃。
溫度測量過程的轉(zhuǎn)換時鐘由內(nèi)部產(chǎn)生,只有從串口讀取或?qū)懭霐?shù)據(jù)才需要外部時鐘。一般模式下,內(nèi)部時鐘自動完成轉(zhuǎn)換過程。默認(rèn)情況下溫度傳感器處于掉電狀態(tài),要啟動溫度測量需要在控制寄存器中寫入溫度測量控制字,在測量完成后溫度傳感器自動關(guān)閉,直到下次接受到命令再啟動。用戶可以通過讀取狀態(tài)寄存器的值來檢查溫度測量是否結(jié)束,溫度測量的結(jié)果保存在92h和93h中。其中有14位是有用數(shù)據(jù),最高兩位沒有意義。DB13是一個標(biāo)志位。表4中給出了部分測量數(shù)據(jù)與實(shí)際溫度的對應(yīng)關(guān)系。對于具體的溫度測量數(shù)據(jù)可以通過公式得到,如果測量溫度為正,則等于所得數(shù)據(jù)的十進(jìn)制表示值除以32。如果測量溫度值為負(fù),且把DB13的值也計(jì)算在內(nèi),則等于測得數(shù)據(jù)的十進(jìn)制值減去 16384后再除以32,若不把DB13的值計(jì)算在內(nèi),則等于測量數(shù)據(jù)的十進(jìn)制值減去8192后再除以32。
3 阻抗測量過程實(shí)現(xiàn)
3.1 AD5933測量阻抗模值計(jì)算
上面已經(jīng)提到在頻率掃描過程中,各個頻率點(diǎn)上都可以得到實(shí)部值R和虛部值I兩個值,通過它們可以計(jì)算傅立葉變換之后的模值,模值=。計(jì)算之前先把實(shí)部和虛部值用十進(jìn)制表示。但這只是傅立葉變換后的結(jié)果,要想得到阻抗的實(shí)際值必須乘以一個校準(zhǔn)系數(shù),這里稱這個系數(shù)為增益系數(shù)。
下面給出一個計(jì)算增益系數(shù)的例子。當(dāng)輸出電壓范圍為2V,標(biāo)定電阻為200kΩ,可編程放大器設(shè)置為1,電流電壓轉(zhuǎn)換放大器增益電阻為200 kΩ,激勵頻率為30kHz,在這個頻率點(diǎn)上得到的實(shí)部和虛部值分別為F064、227E,轉(zhuǎn)換為十進(jìn)制分別為-3996、8830,則傅立葉變換后的模值=,則增益系數(shù)為標(biāo)定電阻的倒數(shù)除以計(jì)算得到的模值,即(1/200kΩ)/9692.106=515.819E-12。
下面再給出一個已知增益系數(shù)、被測電阻的實(shí)部和虛部值計(jì)算被測電阻阻值的例子。假設(shè)被測電阻為510kΩ,激勵頻率為30kHz,測量得到的實(shí)部和虛部值分別為-1473和3507,則計(jì)算得到的模值為3802.863。電阻值=1/(增益系數(shù)×模值)=1/(515.819E-12×3802.863) =509.791kΩ。
對于不同的測量頻率點(diǎn)增益系數(shù)是不同的,所以在不同的頻率點(diǎn)上要分別計(jì)算增益系數(shù)。
在測量過程中可以通過限制電阻的測量范圍來優(yōu)化測量性能。表4給出6個不同的阻抗范圍作為參考,它們所選擇的輸出電壓范圍均為2V,可編程增益放大器設(shè)置為1。
表4 測量阻抗范圍設(shè)定
3.2 相角計(jì)算及校準(zhǔn)
在阻抗測量過程中不僅僅要關(guān)注電阻的模值,還要知道相角的大小,相角值=。和模值一樣相角也要進(jìn)行校準(zhǔn)。首先對標(biāo)定電阻進(jìn)行測量,得到標(biāo)定電阻的相角,測量電阻的實(shí)際相角等于測量計(jì)算得到的值減去標(biāo)定電阻的相角值。值得注意的是測量時通過得到的相角是在-90º到+90º之間的,所以要根據(jù)R和I所決定的象限來把相角變換到所在象限內(nèi)。如果R<0,I>0則說明在第二象限,所以計(jì)算時要把相角加上180º;如果R<0,I<0則是在第三象限,計(jì)算時要把相角減去180 º。
4 單片機(jī)控制的阻抗測量系統(tǒng)
本文設(shè)計(jì)了一個用單片機(jī)控制AD5933實(shí)現(xiàn)阻抗測量的系統(tǒng)。單片機(jī)選擇的ADI公司的ADμC848。單片機(jī)和AD5933通過 串口實(shí)現(xiàn)通訊,單片機(jī)控制對AD5933的工作模式設(shè)置,控制測量過程,讀取測量結(jié)果,并通過串口傳輸?shù)絇C機(jī)。
4.1 硬件電路
系統(tǒng)采用電池供電,又MAX603實(shí)現(xiàn)把四節(jié)1.5V電池串聯(lián)后的電壓變到5V。在AD5933的 RFB和VIN之間接入電流電壓轉(zhuǎn)換電阻,這個電阻的值是可以按照上面提到的設(shè)置測量電阻的范圍的方法來設(shè)定的。在VIN和VOUT之間接入的是被測電阻,測量之前先大致估計(jì)一下測量電阻的范圍,然后來選擇相應(yīng)電流電壓轉(zhuǎn)換電阻的大小。在測量被測電阻之前,首先要用已知阻值的電阻進(jìn)行標(biāo)定,得到模值和相角的基準(zhǔn)。單片機(jī)把從AD5933讀到的阻抗測量結(jié)果的實(shí)部和虛部通過串口傳到上位機(jī),又上位機(jī)根據(jù)上面提到的公式,計(jì)算得到阻抗值。圖2中給出了電路連接的原理圖。
圖2 系統(tǒng)硬件電路圖
4.2 系統(tǒng)軟件設(shè)計(jì)
圖3中給出了系統(tǒng)測量的軟件流程圖。這是完成單個阻抗測量的過程。測量后得到的實(shí)部和虛部結(jié)果都是十六進(jìn)制表示。用單片機(jī)傳輸?shù)缴衔粰C(jī)后進(jìn)行后續(xù)的處理。每個頻率點(diǎn)上都要首先對標(biāo)定電阻進(jìn)行測量和計(jì)算,然后再以此為標(biāo)準(zhǔn)計(jì)算被測電阻。
圖3 系統(tǒng)軟件流程
5 小結(jié)
本文介紹了阻抗測量芯片AD5933,它是一款可以實(shí)現(xiàn)精確測量的高集成度的芯片,大大簡化了測量系統(tǒng)的電路和數(shù)據(jù)處理過程。本文對其性能、參數(shù)設(shè)置和具體測量實(shí)現(xiàn)進(jìn)行了較為詳細(xì)的介紹,并設(shè)計(jì)實(shí)現(xiàn)了單片機(jī)系統(tǒng)對其控制。為阻抗測量提供了一個比較方便、使用的解決方案。