基于STC12C5410AD設(shè)計10位高精度ADC
摘要:在此主要基于機內(nèi)測試技術(shù)實際需求,為了能夠?qū)崿F(xiàn)監(jiān)測點模擬信號的提取和轉(zhuǎn)換,設(shè)計了模數(shù)轉(zhuǎn)換器。運用STC12C5410AD芯片,設(shè)計了ADC硬件,同時為了達到快速穩(wěn)定的性能,軟件設(shè)計運用了滑動濾波算法。實現(xiàn)了模擬電壓信號轉(zhuǎn)換成10位精準(zhǔn)穩(wěn)定的數(shù)字信號。
關(guān)鍵詞:機內(nèi)測試技術(shù);數(shù)/模轉(zhuǎn)換器;滑動濾波器;單片機;STC12C5410AD
0 引言
測試性(Testability)是指:產(chǎn)品能及時準(zhǔn)確地確定其狀態(tài)(可工作、不可工作、性能下降)和隔離器內(nèi)部故障的設(shè)計特性。1976年,F(xiàn).L iour等人在《設(shè)備自動測試性設(shè)計》一文中首次提出了測試性的概念。隨后,測試性相繼用于診斷電路的設(shè)計和其他各個領(lǐng)域。隨著裝備的復(fù)雜程度和技術(shù)含量越來越高,維修性、測試性對裝備的作戰(zhàn)能力、生存能力、機動性、維修人員產(chǎn)生了越來越重要的影響。
在信息高速發(fā)展的時代,現(xiàn)代雷達裝備的機內(nèi)測試技術(shù)(Built-in Technology,BIT)追求實時性、準(zhǔn)確性、高效性。因此需要狀態(tài)監(jiān)測中的信號采集技術(shù)擁有高速、穩(wěn)定的特性。雷達裝備中的許多非電物理量(如溫度、壓力等等)和一些其它電參量(如電容、電阻、功率等等)都可以變成電壓形式,并借助ADC(模/數(shù)轉(zhuǎn)換器)得到穩(wěn)定的高精度的數(shù)字信號,為信號特征分析提供可靠保證。
運用單片機實現(xiàn)各種需求的ADC的技術(shù)已經(jīng)被廣泛應(yīng)用,并且技術(shù)日漸成熟穩(wěn)定。為了滿足不同信號處理和信號檢測等要求,誕生了大量的結(jié)構(gòu)不同,性能不一的單片機數(shù)據(jù)采集電路。主流趨勢不外乎2種算法:逐次比較數(shù)模轉(zhuǎn)換器和雙積分型數(shù)模轉(zhuǎn)換器。各有不同的優(yōu)缺點,在不同領(lǐng)域有十分廣泛的應(yīng)用。本論文從穩(wěn)定性考慮,選擇了運用逐次比較數(shù)模轉(zhuǎn)換器的單片機:STC12C5410系列。
1 硬件設(shè)計
1.1 STC12C5410AD
芯片的選擇直接關(guān)系到硬件電路的設(shè)計和機內(nèi)測試系統(tǒng)的靈敏度,而單片機STC12C5410AD是高速、低功耗的新一代增強型8051單片機,如圖1所示。
STC12系列單片機是美國STC公司在8051單片機標(biāo)準(zhǔn)的內(nèi)核結(jié)構(gòu)上進行了較大改進推出的一款增強型8051單片機。STC12單片機從內(nèi)核到指令,完全兼容8051的單片機;C代表工作電壓在5.5~3.8V;12代表CPU同樣的工作頻率時,速度是8051的12倍;54代表RAM是512B,PCA/PW M是4路;10代表程序存儲空間大小10 KB。AD表示有A/D轉(zhuǎn)換功能,共計有8個ADC口,分別是P1.0~P1.7。可以通過編程設(shè)定其中任意一路為A/D轉(zhuǎn)換口(需要將選中的I/O口設(shè)定為開漏和高阻模式)和設(shè)定轉(zhuǎn)換速率,最快轉(zhuǎn)換速率為210個時鐘周期/次(最快速度可達200kHz),另外3種選擇為420個時鐘周期/次,630個時鐘周期/次,840個時鐘周期/次。
I/O口共計23個接口,分別是P1口8個、P2口8個、P3口7個;
有內(nèi)置復(fù)位電路,可以通過軟設(shè)計進行復(fù)位。
1.2 電路設(shè)計
電路原理圖如圖2所示,STC12C5410AD芯片內(nèi)部晶振為5.2~6.8 MHz,為了提高精確度,設(shè)計時可以采用外接晶振,晶振可以根據(jù)實際情況選固定值。STC12C5410AD可以保證10位精確度的數(shù)字信號輸出,剛好符合設(shè)計要求。供電電壓電路采用的是9805穩(wěn)壓電路器,為了提高轉(zhuǎn)換輸出精確度,也可采用LM317穩(wěn)壓器的供電電路,調(diào)節(jié)輸出電壓達到STC12C5410AD的設(shè)計精準(zhǔn)要5 V。A/D轉(zhuǎn)換電路的輸入電壓為0~5 V,用電位器進行調(diào)節(jié)輸入,設(shè)計電路實時跟進,轉(zhuǎn)換輸出穩(wěn)定信號。
將串行口RXD與TXD外接MAX232,與PC相連,便于燒寫和修改程序以及程序的在線調(diào)試,輸出結(jié)果的在線監(jiān)測。并行輸出口選擇P2.0~P2.7(高8位),P1.0~P1.1(低2位),每個管腳外接一個LED燈,便于觀察管腳是否能夠正常輸出高低電平。A/D轉(zhuǎn)換接口選擇P1.7,外接接地電容后可以直接與調(diào)節(jié)電位器相連,調(diào)節(jié)電壓范圍為0~5 V。
2 軟件設(shè)計
2.1 寄存器的相關(guān)設(shè)置
STC12C5410AD單片機要實現(xiàn)上述設(shè)計,必須對相關(guān)寄存器進行設(shè)置:
通過設(shè)置P1M0,P1M1兩個寄存器對P1口選擇作為A/D轉(zhuǎn)換的輸入口進行設(shè)置,比如若是選擇P1.7,則設(shè)置:
P1M0=0x80;
P1M1=0x80;
選擇I/O口模式為開漏(Open Drain),可以作為A/D使用,還可以選擇高阻輸入,設(shè)置為:
P1M0=0x80;
P1M1=0x00;
ADC_CONTR特殊功能寄存器,從高到底依次表示:
ADC_POWER SPEED1 SPEED0 ADC_FLAG CHS2CHS1 CHS0;
選擇P1.7作為A/D輸入管腳需將CHS2/CHS1/CHS0設(shè)置為:
CHS2=1;
CHS1=1;
CHS0=1;
SPEED1/SPEED0是數(shù)/模轉(zhuǎn)換速率控制位,為了達到最快的轉(zhuǎn)換速率,本設(shè)計采用210個時鐘周期轉(zhuǎn)換一次,設(shè)置為:
SPEED1=1;
SPEED0=1;
ADC_FLAG位,為模/數(shù)轉(zhuǎn)換結(jié)束標(biāo)志位,轉(zhuǎn)換結(jié)束后自動跳變?yōu)?ldquo;1”,需軟件清零;
ADC_START,為ADC開始控制位,設(shè)置為:
ADC_START=1; //模/數(shù)轉(zhuǎn)換開始
ADC_DATA,ADC_LOW2分別是10位模/數(shù)轉(zhuǎn)換結(jié)果的高8位和低2位的寄存器。轉(zhuǎn)換計算公式為:
(ADC_DATA[7:0],ADC_LOW2[1:0])=1 024*Vin/Vcc;
式中:Vin為模擬輸入通道的輸入電壓;Vcc為單片機的供電電壓,由單片機的供電電路9805或者LM317穩(wěn)壓電路輸出端決定。
2.2 軟件調(diào)試
A/D初始化子程序和啟動A/D轉(zhuǎn)換的子程序:
3 結(jié)語
機內(nèi)測試系統(tǒng)在裝備系統(tǒng)中所占比例不得超過裝備的10%,否則會影響裝備的正常運行。在信號采集中,硬件設(shè)計的簡化尤其重要。本設(shè)計不但達到設(shè)計電路的精簡元器件且多個測試點共用的要求。10位精度的ADC分辨率理論上可達到1/1 024,為了能夠穩(wěn)定的輸出頻率,試驗中加入了中轉(zhuǎn)寄存器保持轉(zhuǎn)換結(jié)果,同時運用滑動濾波器消除不穩(wěn)定信號的噪聲影響。最后試驗結(jié)果可保持長時間穩(wěn)定輸出,達到試驗預(yù)期要求。同時最低位能夠連續(xù)跳變,保證輸出的連續(xù)性和準(zhǔn)確性。本設(shè)計對模數(shù)轉(zhuǎn)換器的高精度要求,在調(diào)試過程中需對STC12C5410AD單片機的供電電壓進行微調(diào)。設(shè)計中運用LM317穩(wěn)壓器供電電路,調(diào)節(jié)輸入電壓,保證電壓精確穩(wěn)定在5 V,所達到效果和效率遠(yuǎn)遠(yuǎn)高于雷達裝備的BIT的模數(shù)轉(zhuǎn)換要求。同時該設(shè)計簡單有效,且故障率低,能夠持續(xù)保持穩(wěn)定工作。該設(shè)計在保證設(shè)計要求條件下優(yōu)化了硬件電路設(shè)計,精簡元器件,降低成本和實際電路運行的故障率。本設(shè)計的不足之處有兩點:集成化程度還是太低,解決方法是采用貼片小板設(shè)計;沒用同時處理信號的能力。后續(xù)研究將主要針對這兩點對其進行改進。
評論