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