在數據采集系統中,通常需要盡量將模擬信號子樣放大到接近A/D轉換電路的滿度值,以充分利用A/D轉換器的分辨能力。然而,在某些應用領域,一方面信號子樣有效幅值輸入范圍較小,另一方面信號又極其微弱,因此,一般需要調理電路具備100dB以上的信號放大能力,而運放和采樣裝置引入的失調可能高達100~200μV,同時還具有一定的時、熱漂移。而在某些應用領域,信號子樣有效幅值輸入范圍又可能較大。顯然,固定增益信號調理電路無法兼顧對上述兩類信號子樣的高分辨率A/D轉換。為提高信號調理電路對信號的自適應能力,設計者往往希望系統能根據信號的強弱自動調整增益并實現高保真信號調理。本文介紹一種采用自適應控制A/D轉換編碼電路來實現信號自適應調理的方法。該方法同時具有自動增益控制、失調與溫漂自動補償和A/D轉換編碼控制等功能。
1 自動控制循環放大及誤差補償
利用圖1所示電路可直接完成對±10μV~±5V信號的自動增益放大并實現12位A/D轉換編碼,并在信號調理過程中使增益隨信號的強弱自動調節,運放失調誤差可被自動補償,從而實現極高的信噪比。該電路主要由模擬開關S1~S10、運放OP1與OP2(主放大器、精密電平比較器)、比較器OP3與OP4、精密電阻R1~R3及Rf、采樣保持器A1與A2構成。OP1與OP2選擇低漂移運放,OP3、OP4為普通集電極開路輸出比較器。電路工作過程為信號及誤差采樣、自動增益控制循環放大和循環編碼A/D轉換3個階段。
1.1 信號及誤差采樣
一般放大電路主要存在三個誤差:主運放OP1的失調誤差E0、采保器A1與A2的誤差E1和E2。E0、E1及E2均折算于OP1同相輸入端。
在第1采樣周期,開關S1、S4及S10閉合,其它斷開。電路完成對E0、E1的采樣。OP1同相組態增益K1=1+Rf/R1=7/4。此周期結束后,采保器A1的輸出電壓為:
Vp=(7/4)E0+E1
在第2采樣周期,開關S2、S7及S11閉合,其它斷開。OP1同相組態增益K2=1+Rf/R2=2。這時第一采樣周期輸出Vp被放大,同時再計入E0、E1的影響,采保器A2的輸出電壓為:
VQ=2Vp+2E0+E2
輸入信號采樣過程在第3周期內完成。此時,開關S3、S5及S10閉合,其它斷開。對誤差電壓VQ而言,OP1呈反相組態,反相增益K3=-(Rf/R3)=-(2/3)。對信號子樣VE,OP1呈同相組態,同相增益K4=1-K3=5/3。此周期結束后,電容C1上的電壓為:
VM=(5/3)VE+(5/3)E0-(2/3)VQ
1.2 自動增益控制循環放大與誤差補償
前三個周期完成對輸入信號VE及三個誤差信號E0、E1、E2的采集,并將其結果保存于電容C1中。從第4周期開始,將通過對電子開關S6、S10、S7、S11的交替切換完成對輸入電壓的循環放大。在第4、6、8、…等周期,S7、S11閉合,在第5、7、9、…等周期,S6、S10閉合。在整個循環放大過程中,S2一直閉合,主運放OP1的同相組態增益為2。電子開關經n次交替切換后,原輸入信號子樣被放大(5/3)×2 n倍。由于完成一次循環放大的時間很短,因而時漂可以忽略。在對信號進行循環放大的同時,誤差也參加循環,正是前三個周期對誤差、信號的特殊采集方法確保了失調誤差在各次循環放大過程中的自動補償,從而使之不會隨信號被循環放大。其放大過程如下:
第3周期結束時(第n=0次循環放大),A1輸出電壓為:
V3=VM+E1
=(5/3)VE-2E0-(1/3)E1-(2/3)E2
第4周期結束時(第n=1次循環放大),A2輸出電壓為:
V4=2V3+2E0+E2
=(5/3)×2 1 VE-2E0-(2/3)E1-(1/3)E2
第5周期結束時(第n=2次循環放大),A1輸出電壓為:
V5=2V4+2E0+E1
=(5/3)×2 2 VE-2E0-(1/3)E1-(2/3)E2
依此類推,經n次循環放大后,有效信號達(5/3)×2 n VE,而誤差一直為-2E0-(1/3)E1-(2/3)E2或-2E0-(2/3)E1-(1/3)E2,仍然是信號采樣周期結束時所獲得的初始誤差采樣值。經n次循環放大后,信號被放大到滿刻度的1/2~1倍。其值已達數伏之高,而輸出誤差總額卻不超過300μV,從而實現了極高的信噪比。
自動增益控制通過控制循環放大的次數來實現,循環放大次數取決于以下兩個條件之一:第一,通過溢出判斷電路OP3、OP4判斷輸出電壓,如果輸出已超過滿刻度的1/2時,應停止再進行循環放大,否則,下次循環的輸出直將溢出;第二,循環放大次數已超過規定的限值時(一般取n≤18,循環增益≤2 18,約110dB,說明被測信號太弱,已超出電路的處理能力,應停止循環。)
2 循環編碼式A/D轉換的實現
利用電子開關S8和S9分別將基準電壓+VR和-VR加到運放的反相輸入端,可在放大階段結束后接著對輸出信號進行循環編碼式A/D轉換。A/D轉換電路的參考基準電源VR=+5V,它同時也代表放大電路的滿刻度值。主運放OP1的反相放大倍數為-1,同相放大倍數為2。
在循環編碼過程中,S7、S11和S6、S10兩組開關輪流切換,以完成信號的循環傳遞。整個循環編碼過程中的誤差仍然是自動補償的,這里不再贅述。在OP1的輸出端接了一個極性檢測器OP2.放大階段結束時,運放OP1輸出被用于循環放大后的信號(已保存于C1或C2中),極性檢測器OP2同時產生一個二進制編碼B0,它表示被編碼電壓的極性,即A/D轉換結果的二進制編碼的符號位。各編碼周期的二進制編碼輸出位Bi及S8、S9的狀態選擇邏輯如下:
Vo(i)》0時,取Bi=1,下次S8閉合,基準源+VR加到運放反相輸入端,運放執行以下運算:
Vo(i+1)=2Vo(i)-VR
Vo(i)《0時,取Bi=0,下次S9閉合,基準源-VR加到運放反相輸入端,則執行:
Vo(i+1)=2Vo(i)+VR
轉換結果為二進制小數形式,Bo為二進制編碼結果的符號位,B1至BN分別表示最高至最低位數值位。B0=1時,被測信號為正,B1至BN表示轉換結果的原碼;B0=0時,被測信號為負,B1至BN為二進反碼形式。每轉換一位需要一個控制周期,轉換的總周期數決定了A/D轉換的分辨率。需指出,上述循環編碼A/D轉換電路與普通逐次逼近式A/D轉換在理論上是一致的(證明過程略)。
3 時序控制電路設計
該電路還需設計一個時序控制電路與之配合,以產生各操作周期所必需的時鐘節拍。一次完整操作最多需33個時鐘節拍。圖2給出了模擬開關的控制時序。可采用通用門器件或可編程門陣列構成的硬件時序邏輯電路來實現,也可應用微處理器控制產生所需時序。硬件實現圖2的控制時序可獲得較高的整機速度,約為幾μs~μs。這主要取決于采樣保持器及硬件時序邏輯電路的工作速度 。用微處理器產生所需時序時,完成圖2所示的一個時鐘節拍的電子開關狀態設定約需數條至十數條指令周期,因而速度較低。因此只適用于500μs左右的低速數據采集系統。
某離子濃度測定儀的循環放大與編碼電路采用了8031單片機控制接口電路,應用P1口輸出8位控制數據以控制S1~S11,T0、T1接8031的狀態測試端。為提高程序執行效率,提高電路工作速度,程序設計采用簡單的順序執行方式,這種方式所實現的圖2時序控制周期可能是非等時間間隔的,但這不會影響控制時序的執行性能。單片機系統時鐘為6MHz,指令周期TCY=2μs,一次數據采集轉換約需要390個TCY,即約需時780μs。
4 結束語
在本文所述的自適應控制A/D轉換編碼電路中,A/D轉換編碼與信號放大共用一套電路,工作過程由數字電路或微處理器控制,結構簡單,對信號的自適應能力強,可實現自動增益控制、失調與溫漂的自動補償、A/D轉換循環編碼控制,工作穩定可靠。在中速以下數據測量應用場合,該電路具備較高的性能價格比,特別適宜于各種單片機智能儀器、移動型微數字檢測設備及虛擬儀器系統使用。在實際應用中,應注意采樣保持誤差對系統精度的影響。用微處理器生成控制時序時,由于周期較長,因而應選用低頂降率的采保器,采用其它硬件電路產生控制時序時,周期較短,則應選用低獲取時間的采保器。
在某離子濃度測定儀的應用實例中,其輸入信號為30μV~200mV,A/D轉換字長為12位,平均信號處理時間為600μs。OP1與OP2筆者選用AD707極低漂移運放(偏置電壓15μV、偏置電壓漂移0.1μV/℃、噪聲0.1μVp-p、回轉率0.1V/μs),OP3與OP4選用LM339普通集電極開路輸出型比較器(失調2mV),A1與A2選有SMP-04EP經濟型采保器(精度0.01%、獲取時間7μs、頂降率為0.025μV/μs)。
評論