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