新型高集成度∑-ΔADC正在得到越來越廣泛的應(yīng)用。這種ADC只需極少外接元件就可直接處理微弱信號,僅適合嵌入式系統(tǒng)的應(yīng)用,也適合應(yīng)用在很多測量分析儀器中,取代傳統(tǒng)的A/D轉(zhuǎn)換器。本文通過對∑-Δ系列ADC和積分式以及逐次逼近式ADC的比較,以AD7115為實(shí)例說明這種取代的可行性。 AD7715模數(shù)轉(zhuǎn)換器是美國模擬器件公司(ADI)出品的采用和差轉(zhuǎn)換技術(shù)(∑-Δ技術(shù))的系列ADC之一。該系列A/D轉(zhuǎn)換器均由信號緩沖、可編程增益放大、∑-Δ調(diào)制器、數(shù)字濾波、三線串行接口等幾部分組成,在性能、通道數(shù)、功耗等指標(biāo)上有差別。傳統(tǒng)的討論局限于將此類ADC應(yīng)用到手持儀器、工業(yè)儀表、DSP設(shè)備等便攜式系統(tǒng)中,以發(fā)揮其小體積、低功耗的特點(diǎn)。而在比較大的系統(tǒng),例如高嚴(yán)謹(jǐn)分析儀器(如醫(yī)用生化類儀器和化學(xué)成分測量儀器)中,還是偏愛傳統(tǒng)的逐次比較或雙積分ADC。在我們以前設(shè)計(jì)的兩種智能儀器當(dāng)中,涉及到高阻低頻信號的測量時,曾使用過AD574和ICL7109。經(jīng)過認(rèn)真的分析,我們在其后的改型產(chǎn)品中,大膽使用了單通道的AD7715作為替換,考慮到成本以及我們所需要的通道數(shù)目,我們沒有使用AD公司的∑-Δ系列中的多通道產(chǎn)品,因?yàn)锳D7715的指標(biāo)已經(jīng)很好了。 這種嘗試取得了很好的效果,它不僅簡化了電路,縮小了面積,提高了分辨率,而且在抗干擾能力上不遜于雙積分式的7109;在量程處理和輸入信號的阻抗要求上雙比逐次逼近式的574靈活方便。轉(zhuǎn)換速度其實(shí)也是可變的,其滿足精度要求后的速度雖然和574不是一個數(shù)量級,但遠(yuǎn)比7109快,足以滿足系統(tǒng)的轉(zhuǎn)換頻率要求。其唯一的缺點(diǎn)是,物理接線簡單的三線制串行數(shù)據(jù)接口造成數(shù)據(jù)處理和程序調(diào)試的麻煩,不過和其顯著的優(yōu)點(diǎn)相比,這點(diǎn)困難是值得克服的。 1 ∑-Δ技術(shù)和AD7715簡介 1.1 ∑-ΔADC工作原理 ∑-Δ也稱為增量調(diào)制型轉(zhuǎn)換技術(shù),和普通的模數(shù)轉(zhuǎn)換原理不同,∑-Δ技術(shù)本身就采用了數(shù)字技術(shù)。使用∑-Δ技術(shù)的器件都具有數(shù)字系統(tǒng)所普遍具備的高可靠性、高穩(wěn)定性的優(yōu)點(diǎn)。 ∑-Δ模數(shù)轉(zhuǎn)換器中的模擬部分非常簡單(類似于一個1位ADC),而數(shù)字部分要復(fù)雜得多。由于更接近于一個數(shù)字器件,∑-Δ模數(shù)轉(zhuǎn)換器的制造成本很低廉。 簡單地說,∑-ΔADC以很低的采樣分辨率(1位)和很高的采樣速率將模擬信號數(shù)字化。通過使用采樣、噪聲整形和數(shù)字濾波等方法增加有效分辨率,然后對ADC輸出進(jìn)行數(shù)字濾波和采樣抽取以降低有效采樣速度,使之符合分辨率和帶寬的要求。 ∑-ΔADC主要由∑-Δ調(diào)制器、數(shù)字濾波和采樣抽取等幾部分組成,如圖1所示。 調(diào)制器本質(zhì)上是一個高速低精度(1位)的ADC,調(diào)制器以非常大的過采樣率采樣模擬信號。在這個階段調(diào)制器將輸入和輸出之間的差值(Δ)進(jìn)行一階劃多階積分(∑),結(jié)果通過一個量化器(1位ADC)輸出二進(jìn)制碼流。該碼流一方面輸出給數(shù)字濾波部分,另一方面通過一位DAC后和輸入信號比較,提供差值信號(Δ),構(gòu)成一個反饋循環(huán)。 ∑-Δ調(diào)器以采樣速率輸出1位數(shù)據(jù)流,頻率可高達(dá)MHz量級。數(shù)字濾波和采樣抽取的目的是從該數(shù)據(jù)流中提取出有用的信息。通過數(shù)字濾波采樣抽取,濾波經(jīng)過調(diào)制器整形后的量化噪聲,提高系統(tǒng)精度。采樣抽取的底限是滿足信號無損重建的采樣定律,采樣頻率大于奈奎斯特頻率的兩倍(fn>2fb)。 1.2 AD7715簡介 我們使用了16腳標(biāo)準(zhǔn)DIP封裝形式的AD7715,而沒有使用SOIC或TSSOP封裝。因?yàn)楹驮瓉硎褂玫腁DC相比,DIP封裝的AD7715已經(jīng)非常不占位置了。限于篇幅,AD7715的詳細(xì)工作原理不作介紹,可以參見AD公司的AD7715器件手冊。為便于下面的分析,在此僅給出主要技術(shù)參數(shù)和內(nèi)部編程用寄存器的簡單說明。AD7715片內(nèi)共有通信、設(shè)置、數(shù)據(jù)、測試四個寄存器供編程和訪問。 主要技術(shù)參數(shù): ①16位無誤碼輸出,0.0015%非線性度; ②三線制串行接口,可靈活地與微處理機(jī)或DSP執(zhí)連接; ③前端增益可編程為1、2、32、128這四種,能對四段量程內(nèi)信號直接進(jìn)行高分辨率的轉(zhuǎn)換而不用另外進(jìn)行量程匹配處理; ④內(nèi)設(shè)自校準(zhǔn)電路,可有效去除零點(diǎn)漂移和增益誤差; ⑤內(nèi)設(shè)模擬輸入緩沖器,可直接對高阻信號進(jìn)行轉(zhuǎn)換; ⑥帶輸出速率可編程的低通濾波器,可根據(jù)需要選用不同轉(zhuǎn)換速率。 圖3 自校準(zhǔn)時序 可使用的內(nèi)部寄存器: ①通信寄存器,8位,可讀寫。每次對AD7715的訪問都必須先向此寄存器寫入命令字。寫入的命令字決定下一步操作是針對哪一個寄存器,是讀操作還是寫操作。此外,通過該寄存器可設(shè)定片內(nèi)放大器增益。 ②設(shè)置寄存器,8位,可讀寫。該寄存器負(fù)責(zé)A/D各種模式的設(shè)置。 ③數(shù)據(jù)寄存器,16位,只讀。保存了最后一次A/D采樣的轉(zhuǎn)換結(jié)果。 2 在精密分析儀器中應(yīng)用AD7715 我們的分析測量儀器使用mV至V級的模擬信號,具有隨時間緩慢變化的曲線波形,要求準(zhǔn)確測量這種變化的曲線,通過對信號的處理獲得數(shù)據(jù),這種測量方法具有代表性。下面以其中種儀器為例進(jìn)行說明。 2.1 問題討論 我們的分析系統(tǒng)需要對兩路透射光信號通過光電波檢測后輸出,經(jīng)過電流-電壓轉(zhuǎn)換電路后范圍為0~1.5V,精度要求0.5%;另外還有兩路溫度信號,經(jīng)過溫度傳感器后的輸出的電壓范圍為0~450mV,對應(yīng)0~45℃,要求精度0.1℃。 對轉(zhuǎn)速速度有一定的要求:首先溫度測定是連續(xù)的,從開機(jī)時候起就要連續(xù)監(jiān)控,一個溫度信號用于控制加溫裝置,使測量系統(tǒng)恒溫在37℃;另一路溫度信號監(jiān)測機(jī)箱內(nèi)部溫度,根據(jù)這個溫度決定風(fēng)扇的啟停,風(fēng)扇啟動溫度可由用戶設(shè)定,停止溫度低于啟動溫度2℃.每2s測定一次這兩路的溫度,在進(jìn)行測量光信號時也不能停止37℃恒溫的監(jiān)控。 其次,測量兩路光信號必須精確按照0.1s一次的頻率進(jìn)行,即每100ms要各測量一次。考慮到對采樣數(shù)據(jù)簡單處理要保留3ms時間,所以一次A/D轉(zhuǎn)換時間不能超過47ms。 這樣就出現(xiàn)了一個問題,我們可以把測量光信號的時間中斷優(yōu)先級設(shè)置得比測量溫度的時間中斷要高,這樣才能保證前者的時間精度,而后者被中斷的、未轉(zhuǎn)換完的結(jié)果丟棄。但是,若每次A/D轉(zhuǎn)換(包括數(shù)據(jù)處理)時間大于33ms,將導(dǎo)致恒溫監(jiān)控事件上無法進(jìn)行,因?yàn)槠溟g的每個測溫A/D都無法完成。如果想使對機(jī)相溫度的監(jiān)控也不停止,則A/D轉(zhuǎn)換時間至少要小于25ms,其道理是顯而易見的。 2.2 設(shè)計(jì)思想 我們的系統(tǒng)使用12MHz主頻的97C52,AD7715的接線如圖2所示。 串口方式0很適合三線制接口的使用,此方式下TXD引腳作為串行時鐘,接收和發(fā)送均使用RXD引腳;RUN接CPU的P1.6引腳,IN_PORT.8是輸入端口的第8位,用來接收狀態(tài)信號DRDY;數(shù)字供電(DVDD、DGND)和模擬供電(AVDD、AGND)分開;VREF是基準(zhǔn)電壓,系統(tǒng)中使用2.39V精密電壓。Signal_IN接多路開關(guān)(8選1)的輸出,因?yàn)椴恍枰D(zhuǎn)換差分信號,所以AIN-接模擬地。 2.3 調(diào)試和軟件實(shí)現(xiàn) AD7715的最高更新率可以達(dá)到500Hz,即理論上2ms可以完成1次A/D轉(zhuǎn)換,但實(shí)際上如果考慮到通道切換的因素后,這個速率是不可能的。因?yàn)橥ǖ垒喠髑袚Q后,A/D內(nèi)部的信號需要重新建立,通道間信號差異越大,兩次連續(xù)轉(zhuǎn)換間誤差也越大。這個問題在其它類型的ADC中也存在。有兩種方法可以使AD7715在恒定的時間后獲得正確的輸出:一是使用設(shè)置寄存器中的FSYNC(同步)位,二是使用通信寄存器中的STBY(備用)位,我們采用后面一種方法。 另外一個問題就是串口數(shù)據(jù),AD7715輸出數(shù)據(jù)和接收命令都是高位在先,而51系列串口的數(shù)據(jù)時序是低位在先;所以不論是寫8位的命令,還是讀取16位的轉(zhuǎn)換結(jié)果,數(shù)據(jù)要經(jīng)過高低位的顛倒處理。 關(guān)于校準(zhǔn)方式,一般采用自校準(zhǔn)就夠了,不是特殊情況一般不用進(jìn)行系統(tǒng)標(biāo)準(zhǔn)。校準(zhǔn)一定在有效的復(fù)位后進(jìn)行,否則不能成功。 至于編程和調(diào)試,建議使用C語言,這已是潮流所趨。我們這個系統(tǒng)的工作方式類似于兩個任務(wù)并發(fā)執(zhí)行,每個通道最多一次要轉(zhuǎn)換1800個數(shù)據(jù)供分析,用匯編來寫程序是力不從心的。而對于AD7715的編程,一個好的調(diào)試工具是必須的,特別需要能觀察時序的手段。圖3~圖5是邏輯分析儀采取的波形,分別是自校準(zhǔn)時序、寫命令時序和一次完整轉(zhuǎn)換后讀取16位結(jié)果的時序。 void initial_7715(){ SCON=0x00; /*串口寫*/ initialize_ad(); /*初始化AD7715的通信口*/ writereg(0x10);/*下面寫設(shè)置寄存器*/(寫入時序見圖4) writereg(0x7c);/*自標(biāo)定,2.4576MHz,500Hz更新率,單極性,非緩沖模式*/ while(!IN_PORT %26;amp; 0x80)); /*等待自標(biāo)定結(jié)束*/(圖3中J3.3所示高電平時間) while(IN_PORT %26;amp; 0x80); } void writereg(UNCHAR bytepoint){ RUN=0; /*AD7715 CS=0*/ SBUF=exchange(bytepoint); /*字節(jié)首尾交換*/ while(!TI); TI=0;RUN=1; } float readdata 16(){ UNCHAR temp1; UNINT temp2; writereg(0x04); /*進(jìn)入stby方式,且下次寫通信寄存器*/ writereg(0x38); /*退出standby方式,設(shè)置讀操作,3/rate時間后出結(jié)果*/ while(!(IN_PORT %26;amp; 0x80)); while(IN_PORT %26;amp; 0x80); /*等待讀時刻到來*/ RUN=0; /*AD7715選中*/ SCON=0X10; /*串口讀*/ while(!RI); temp1=SBUF; /*讀低8位*/ temp2=(UNINT)temp1; while(!RI); SCON=0x00; /*讀兩字節(jié)后停止接收*/ RUN=1; temp1=SBUF; /*讀高8位*/(兩次讀取波形見圖5) temp2|=((UNINT)temp1)<<8; /*合并成16位*/ return((float)(exchange_16(temp2))/65536.0*VREF); /*首位顛倒后換成電壓值*/ } 3 結(jié)論 根據(jù)我們的對比研究,得出這樣的結(jié)論:AD7715以及類似的∑-ΔADC系列產(chǎn)品和目前國內(nèi)幾乎所有同類分析儀器中采用的傳統(tǒng)雙積分或逐次逼近模數(shù)轉(zhuǎn)換電路相比,具有精度高、抗干擾性和可靠性強(qiáng)、轉(zhuǎn)換速度可以滿足低頻要求、電路簡單、外圍器件少、維修更換方便等許多優(yōu)勢,對于很多方便提供三線制串口時序的系統(tǒng)來說,完全可以作為A/D轉(zhuǎn)換電路的首先。 |