丁 磊,周鳳星
(武漢科技大學 故障診斷及檢測實驗室,湖北 武漢 430081)
汽車電磁閥在汽車工業(yè)生產(chǎn)中需求量極大,模擬電磁閥工作環(huán)境,從而檢測出其質量的優(yōu)劣值得關注研究。筆者設計的電磁閥檢測平臺是基于DDS技術與單片機相結合,同時運用CPLD技術,模擬出電磁閥在工作期間的相關參數(shù)環(huán)境,從而判斷電磁閥的好壞。
本設計采用直接數(shù)字合成(DDS)[1]技術,采用專用集成芯片AD9834作為三角波產(chǎn)生模塊,利用51單片機和CPLD[2]來控制完成整個系統(tǒng)的設計。該系統(tǒng)輸出的三角波低頻特性好并且可以模擬斜坡信號,能產(chǎn)生可調(diào)占空比的方波信號,可調(diào)范圍達1%~99%。
本文設計的數(shù)字信號源的系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)框架Fig.1 System framework
本系統(tǒng)產(chǎn)生輸出頻率為0~25 kHz,最小精度為1 Hz的信號,占空比在0~100%范圍內(nèi)可調(diào),變化周期為10 s的整數(shù)倍。系統(tǒng)輸出電壓VOUT范圍0~40 V,最小精度0.01 V,輸出電流最大可達10 A,方波低電壓可調(diào)范圍0~10 V,并且波形較好,可以連續(xù)變化,誤差不超過1%。
單片機完成鍵盤掃描和按鍵處理,通過SPI總線對AD9831進行控制處理,通過AD7541進行采樣處理。系統(tǒng)中的CPLD完成對單片機的擴展和測頻功能。單片機發(fā)出的指令通過CPLD控制DDS以完成信號的產(chǎn)生。
單片機控制整個系統(tǒng)工作,采用 12 MHz晶振,P1.0、P1.1、P1.2、P1.3、P1.4、P1.5 接一塊 3×3 矩陣鍵盤 ,P0 口為擴展接口,連接一塊8255芯片擴展端口,并且同時連接LCD的DB0、DB1、DB2、DB3、DB4、DB5、DB6、DB7 數(shù) 據(jù) 控 制 端 口 。P2.3、P2.4、P2.5 分 別 接 AD9834 的 FSYNC、SCLK、SDATA 端口。單片機各種數(shù)據(jù)和命令通過CPLD送出。
單片機向CPLD寫數(shù)據(jù)時,讀信號都一直置低電平,寫信號口在上升沿時,CPLD開始讀地址,寫信號口在下降沿時,CPLD開始讀數(shù)據(jù);單片機從CPLD讀數(shù)據(jù)時,將讀信號口一直置低電平,讀信號口在上升沿時,單片機開始讀地址,寫信號口在下降沿時,單片機開始讀數(shù)據(jù)。時序圖如圖2所示。
圖2 單片機讀取數(shù)據(jù)Fig.2 Reading the data by Microcontroller
DDS原理:直接數(shù)字頻率合成器 (Direct Digital Synthesizer)[3]是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術,一個直接數(shù)字頻率合成器由相位累加器、加法器、波形存儲ROM、D/A轉換器和低通濾波器 (LPF)構成。DDS框架圖如圖3所示。
圖3 DDS信號發(fā)生原理圖Fig.3 Schematic diagram of DDS signal happening
其中K為頻率控制字,P為相位控制字,W為波形控制字,fc為參考時鐘頻率,N為相位累加器的字長,D為ROM數(shù)據(jù)位及D/A轉換器的字長。相位累加器在時鐘fc的控制下以步長K作累加,輸出的N位二進制碼與相位控制字P波形控制字W相加后作為波形ROM的地址,對波形ROM進行尋址,波形ROM輸出D位的幅度碼S(n)經(jīng)D/A轉換器變成階梯波S(t),再經(jīng)過低通濾波器平滑后就可以得到合成的信號波形。合成的信號波形形狀取決于波形ROM中存放大幅度碼,因此用DDS可以產(chǎn)生任意波形。使用50 MHz的晶振理論上DDS可以產(chǎn)生15 MHz左右的失真度小于1%的正弦信號[4],信噪比可以達到60 dB,信號的輸出頻率可以表示為:
f0=(fc/2n)×M
fC為DDS時鐘頻率;N為相位累加器位數(shù);M為相位累加器步長;f0為輸出頻率。
DDS與單片機的連接方式以及自身外圍電路如圖4,圖5所示。
圖4 單片機與DDS連接圖Fig.4 Connection diagram between microcontroller and DDS
DDS9834驅動程序模塊如下:
void write_word(uint word)
{
uchar i=0;
SCLK=1;
圖5 DDS外圍電路Fig.5 DDS peripheral circuit
FSYNC=0;
for(i=0; i<16; i++)
{
if(word&0x8000)
SDATA=1;
else
SDATA=0;
SCLK=0;
SCLK=1;
word<<=1;
}
FSYNC=1;
}
ulong send_fre(ulong freq)
{
ulong water;
water=268435456.0*freq/30000000;
return(water);
}
void set_freq(ulong Freq_value)
{
ulong value1,value2;
uint LSB_D,MSB_D;
value1=Freq_value;
value2=Freq_value;
LSB_D=(value1%0x4000)+0x4000;
MSB_D=(value2/0x4000)+0x4000;
“Fish vie to swim upstream, in early summer less rain.
write_word(LSB_D);
write_word(MSB_D);
}
void AD9834(uint freq2)
{
uint j,freq3;
freq3=freq2;
FSYNC=1;
SDATA=0;
write_word(0x21C2);
set_freq(send_fre(freq3));
write_word(0xC000);
write_word(0x2002);
for(j=0;j<100;j++) ;
SCLK=1;
FSYNC=1;
SDATA=0;
}
復雜可編程邏輯器件CPLD(Complex Programmable Logic Device)[5],是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結構復雜,屬于大規(guī)模集成電路范圍,是一種用戶根據(jù)各自需要而自行構造邏輯功能的數(shù)字集成電路。本系統(tǒng)中,采用Altera公司的EPM3128[6]來連接單片機和DDS,單片機發(fā)出的指令通過CPLD來控制DDS芯片,同時檢測頻率為0~25 kHz的信號,檢測誤差小于 0.1%[7]。
使用DDS9834所提供的互補輸出信號IOUTB、IOUT,從IOUTB輸出的信號是微弱的三角波電流信號,圖6中端口3接AD9834的IOUTB,將輸出三角波信號放大,圖7的端口2接圖6的端口6,圖7的端口3接AD7541輸出的平穩(wěn)電壓,經(jīng)過比較,得出平穩(wěn)的方波[8-9]。
圖6 放大電路Fig.6 Amplifying circuit
圖7 比較電路Fig.7 Comparative circuit
單片機采用C語言編程,在執(zhí)行指令之前首先要完成各種初始化工作。其中包括時鐘初始化、端口設置、看門狗設置、開機初始化,尤其注意對DDS9834的初始化驅動程序的設置,然后等待中斷,進入鍵盤掃描和各種按鍵的處理程序[10],整體流程如圖8所示。
直接數(shù)字頻率合成(DDS)是DDS信號發(fā)生器的核心部分。本檢測平臺以單片機為核心,采用DDS技術實現(xiàn)了一種新型的低頻特性好并且可以模擬的斜坡信號,可以產(chǎn)生可調(diào)占空比的方波信號,可調(diào)范圍達1%~99%。經(jīng)過測試,該檢測系統(tǒng)平臺可以實現(xiàn)信號源工作穩(wěn)定,并且操作方便,成本低,通過樣機的研制,測試效果較好,精度較高。
圖8 系統(tǒng)流程圖Fig.8 Flow chart of system
[1]Kolen P T.Self-calibration compensation technique for microcontroller-based sensor arrays[J].IEEE Transactions On Instrumentation and Measurement.1994,43(4):620-623.
[2]Ahuja V.Analyses of transient event in complex value and feed systems[J].AIAA,2005:45-49.
[3]劉建成,鄒應全,行鴻彥.基于DDS9834函數(shù)發(fā)生器的設計[J].元器件與應用,2007(2):8-10.LIU Jian-cheng,ZOU Ying-quan,HANG Hong-yan.Based on the design of DDS9834 function generator[J].Components and application,2007(2):8-10.
[4]徐偉,周杏鵬.基于AD9834的高性價比型號發(fā)生器的設計[J].儀器儀表與分析檢測,2008(1):6-8.XUWei,ZHOUXing-peng.BasedonAD9834highperformanceto-price ratio model generator design[J].Instrumentation and Assay,2008(1):6-8.
[5]徐正平,翟林培,田雅男,等.基于DDS技術的高頻正弦波信號發(fā)生器的設計[J].單片機開發(fā)與應用,2009(2):69-76.XU Zheng-ping,QU Lin-pei,TIAN Ya-nan,et al.Design of high frequency sine signal generator based on DDS[J].SCM Development and Application,2009(2):69-76.
[6]周鵬.基于AD9851的多功能信號發(fā)生器的設計[J].電子元器件應用,2009(9):8-14.ZHOU Peng,AD9851 multifunctional signal generator based on the design[J].Electronic Components Application,2009(9):8-14.
[7]李季.信號發(fā)生器發(fā)展淺析[J].電子產(chǎn)品世界,2004,34(4):65-67.LI Ji.Signal generator development analysed[J].Electronics World,2004,34(4):65-67.
[8]鄭毅.一種高精度直接數(shù)字式頻率源的研制[D].武漢:武漢理工大學,2001.
[9]李凱.基于DDS技術的函數(shù)發(fā)生器設計與實現(xiàn)[J].電腦知識與技術,2009,5(9):2515-2517.LI Kai.Based on DDS technology function generator design and implementation[J].Computer Knowledge and Technology,2009,5(9):2515-2517.