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