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