一種基于I2C總線的新型可編程增益放大電路的設計
在各類遙感遙測系統(tǒng)中,模擬信號的動態(tài)范圍通常都很大,一般在幾mV至幾十V范圍內(nèi)(動態(tài)范圍可達80_90db),有的甚至是幾pV_幾百V(動態(tài)范圍可達160db以上)。而且信號的干擾源多,有時甚至掩蓋掉有用信號,很難辨識是有用信號還是干擾信號。此外,不同的材料、形狀、尺寸,不同的類型,不同的測量速度,得到的信號頻譜不同,受干擾信號的特點也不同。對這樣的信號進行采集處理,為保證精度,檢測系統(tǒng)首先需要對大動態(tài)模擬信號的動態(tài)范圍進行壓縮,即對mV甚至pV級的信號進行放大,對幾十V甚至幾百V的信號進行衰減,將信號的變化幅度調(diào)整到A/電路所需要的范圍。針對這一問題,本文提出了一種基于I2C總線的新型可編程增益放大器的設計方法,可根據(jù)輸入的模擬信號大小,自動選擇量程進行放大/衰減。
可編程增益放大器的硬件電路
遙感遙測系統(tǒng)的數(shù)據(jù)采集部分通常包括一個可編程增益放大器,來確保不
同幅度的信號經(jīng)A/D轉(zhuǎn)換后為滿分辨率的信號。大的信號需要少量甚至無需放大,小的信號則需要高放大倍數(shù)來減少轉(zhuǎn)換器噪音的影響。對于動態(tài)范圍很大的模擬輸入信號,就需要根據(jù)信號的大小提供相應的放大倍數(shù),本文提出的可編程增益放大電路就是通過單片機改變輸出數(shù)字量來控制放大電路的增益,從而達到控制輸出信號幅度的目的。
其原理框圖如圖1所示。
圖1 可編程增益放大器硬件原理圖 |
按照功能,硬件可分為五個部分:(1)增益可變放大器;(2)微控制器;(3)數(shù)字電位器;(4)多路開關(guān)選擇。
電路特點及功能
該電路以單片機89C2051為核心組成微處理系統(tǒng),用軟件實現(xiàn)放大器增益的智能控制。該電路先對輸入信號的大小進行判斷,以一定算法得到相應放大倍數(shù),然后轉(zhuǎn)化為增益碼再通過I2C總線傳遞給數(shù)字電位器,選擇相應的反饋電阻輸出,從而改變放大器的放大倍數(shù)。
微控制器及A/D轉(zhuǎn)換電路
在模擬輸入信號進入微控制器前,首先要將模擬信號轉(zhuǎn)換成數(shù)字信號,本文微控制器部分選用單片機AT89C2051,充分利用AT89C2051在對單輸入信號的A/D轉(zhuǎn)換方面的優(yōu)勢。該芯片利用P1.0、P1.1兩個I/O口,再配以簡單的外圍電路,通過軟件編程即可實現(xiàn)單輸入的A/D轉(zhuǎn)換,不需要專門的外部A/D芯片,該方法降低了開發(fā)成本、減少了電路體積和器件。
數(shù)字電位器
AT89C2051對轉(zhuǎn)換后的數(shù)字信號進行處理,得到相應的放大倍數(shù),轉(zhuǎn)化為增益碼輸出到數(shù)字電位器,由增益碼控制數(shù)字電位器的阻值輸出,從而改變增益可變放大器的放大倍數(shù)。
本文數(shù)字電位器采用Xicor公司的X9241芯片,該芯片是把四個非易失性數(shù)控電位器集成在一個單片的CMOS微電路。單個數(shù)控電位器包含63個電阻單元,可實現(xiàn)64級增益控制,四個電位器串聯(lián)則可以提供256級的增益控制。若256級增益設置仍然不能滿足大動態(tài)范圍信號的要求,那么可以采用多片X9241串聯(lián)的方法解決。
在每個電阻單元之間和二個端點都有可以被滑動單元訪問的抽頭點,滑動單元在陣列中的位置由用戶通過I2C串行總線傳遞增益碼來控制,X9241自帶I2C二線接口,接法簡單,使用方便,可靈活控制滑臂位置,改變阻值大小。
增益可變放大器及多路選擇開關(guān)
X9241芯片的四數(shù)控電位器集成特性提供了足夠大的阻值范圍,可滿足大動態(tài)范圍信號放大的增益要求。
因此根據(jù)模擬輸入信號的大小,通過單片機獲得相應的增益控制碼,同時控制多路選擇開關(guān),選擇X9241相應的檔位輸出,即可獲得不同的阻值大小,控制增益可變放大器的放大倍數(shù)。
本文選用的增益可變放大器為ADI公司的AD623,具有低噪聲、高共模抑制比和低漂移等優(yōu)點。AD623可產(chǎn)生的增益范圍,性能極限主要決定于外部電阻。其中由X9241提供,具體設計時采用X9241W芯片,其內(nèi)部四個數(shù)控電位器的阻值均為,因此其增益范圍為,增益誤差小于0.05%,且呈現(xiàn)極好的交流特性,具有25MHz的增益帶寬積、的轉(zhuǎn)換速率和的響應時間。
可編程增益放大器的軟件設計
設計過程當中,數(shù)字電位器滑臂位置的控制起著非常重要的作用,對它的控制是通過總線實現(xiàn)的??偩€是目前常用的一種雙向串行總線,其二線制的結(jié)構(gòu)非常簡單,可靠性和抗干擾性較好,同時具有接法簡單、使用靈活等優(yōu)點。
單片機AT89C2051沒有專用的總線接口,要用普通I/O口來模擬實現(xiàn),所以對該可編程增益放大器的設計來說,其軟件模擬總線的實現(xiàn)在軟件設計中就顯得相當重要。
在單片機中使用I/O口模擬總線時,只需將單片機的兩個I/O口,在軟件中分別定義成SCL(串行時鐘信號)與SDA(串行數(shù)據(jù)信號),與X9241的兩個接口連接,再加上上拉電阻即可。其連接圖為:
圖2 單片機與X9241之間的I2C連接 |
普通口模擬I2C總線的硬件連接非常簡單,主要是軟件模擬I2C總線的數(shù)據(jù)傳送。一次完整的數(shù)據(jù)傳送包括開始、數(shù)據(jù)發(fā)送、應答以及停止等典型信號。此外,在軟件模擬過程中,還需注意的一點,即對標準I2C總線的數(shù)據(jù)傳送,規(guī)定了嚴格的時序要求,以保證數(shù)據(jù)傳送的可靠性。I2C總線上時鐘信號的最小低電平周期為,最小高電平周期為,總線時鐘頻率為,根據(jù)這些要求,具體實現(xiàn)時,我們采用時鐘信號的最小、最高周期均定為。
圖3為軟件模擬I2C總線控制數(shù)字電位器的流程圖。對X9241的控制主要由三個字節(jié)實現(xiàn),第一字節(jié)為器件地址,即X9241的地址;第二字節(jié)為命令內(nèi)容和電位器的選擇,即選擇讀/寫四個電位器中的哪一個;第三字節(jié)為滑臂位置控制,即選擇具體的阻值大小。
圖3 軟件模擬I2C總線控制數(shù)字電位器的流程圖 |
結(jié)語
按照上述方法設計的可編程增益放大電路,克服了傳統(tǒng)可編程放大器增益范圍小的缺點,X9241四數(shù)字電位器的串聯(lián)使用,擴大了增益范圍、提高了增益精度。此外,便于與單片機接口,可以在線修改,調(diào)整設計。I2C總線的運用降低了噪聲干擾,在干擾環(huán)境下也能夠高精度放大信號,簡化了設計。
上述設計經(jīng)系統(tǒng)整體調(diào)試,放大器的非線性誤差,增益為100和500時的輸出噪聲分別為20mV和50mV,共模抑制比,基本滿足預定的性能要求。該電路已在一些微弱激光檢測系統(tǒng)中獲得了應用。
評論