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