張峰+劉慶峰
摘 要: 基于AD7008和AD7520芯片設(shè)計(jì)了一個(gè)可程控信號源,只需通過電腦設(shè)置發(fā)送控制命令參數(shù),就能夠產(chǎn)生頻率和幅度符合要求的數(shù)字檢測信號。詳細(xì)介紹了該方案的軟件和硬件的設(shè)計(jì)要點(diǎn)以及在調(diào)試中應(yīng)注意的問題。調(diào)試結(jié)果及實(shí)際應(yīng)用表明該信號源工作穩(wěn)定,精度較高,頻率、幅度控制都非常便利,在電子設(shè)備的電路板故障檢測中起到了很好的作用。
主題詞: 程控信號源; AD7008; 頻率控制; AD7520; 幅度控制
中圖分類號: TN710?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)15?0079?04
Design and implementation of programmable signal source based on DDS
ZHANG Feng, LIU Qing?feng
(Unit 91413 of PLA, Qinhuangdao 066000, China)
Abstract: A programmable signal source with AD7008 chip and AD7520 chip was designed. By sending the control command parameters through PC settings, the digital detection signal meeting the requirements of frequency and amplitude can be generated. The key points of the software and hardware design on the program and their debugging cautions are introduced in this paper. The debugging results and actual application prove that the signal source works stable, and has high accuracy, convenient frequency and amplitude control. It has played a important role in fault detection of circuit boards.
Keyword: programmable signal source; AD7008; frequency control; AD7520; amplitude control
很多電子設(shè)備在檢查電路板故障時(shí),都希望使用由電腦自動控制頻率、幅度變化的信號源。雖然利用信號發(fā)生器芯片(MAX038),再加上切換開關(guān)、電阻等元器件,也能夠控制幅度和頻率的變化,但通過這樣的控制結(jié)果是離散的,電路連接復(fù)雜,操縱使用也十分麻煩,而如果通過數(shù)字直接合成芯片(AD7008)和D/A轉(zhuǎn)換芯片(AD7520),組合成可控制信號源,可很方便產(chǎn)生調(diào)頻波、調(diào)幅波、方波及正弦波等,并且產(chǎn)生的信號非常準(zhǔn)確,由電腦控制其幅度和頻率,調(diào)節(jié)起來十分便利。
1 電路總體設(shè)計(jì)
PC機(jī)一般為插卡結(jié)構(gòu),為了在設(shè)備電路板檢測故障中好用、易用,在設(shè)計(jì)信號源時(shí)要考慮適應(yīng)PC機(jī),盡量設(shè)計(jì)成插卡式的。PC機(jī)通過接口連接,發(fā)送控制命令,使電路發(fā)出幅度和頻率符合要求的信號信息,即通過數(shù)字直接合成芯片AD7008,產(chǎn)生頻率符合要求的正弦信號,然后再將信號傳輸?shù)紸D7520構(gòu)成的數(shù)控衰減電路,通過此電路就可以控制輸出信號的幅度大小,就能夠得到頻率和幅度可調(diào)節(jié)的信號。電路框圖如圖1所示。
圖1 信號源硬件框圖
2 器件簡介
ADI公司的AD7008器件由可編程DDS系統(tǒng)、高性能10位DAC及與計(jì)算機(jī)串行、并行接口和控制電路組成,利用了先進(jìn)的直接數(shù)字合成(DDS)技術(shù),能實(shí)現(xiàn)全數(shù)字編程控制的頻率合成器。接上控制時(shí)序的晶振,產(chǎn)生精確的時(shí)鐘信號,AD7008可發(fā)出一個(gè)模擬正弦波輸出信號,該信號的頻率和相位都可編程控制調(diào)節(jié)[1]。如果要更進(jìn)一步控制,還可以對此信號進(jìn)行調(diào)頻、調(diào)相或幅度控制。該輸出信號可直接作為頻率可變化的信號源或轉(zhuǎn)換成方波信號。AD7008的主要性能指標(biāo)如下:
可以用并行口或串行口直接輸入頻率、相位、調(diào)幅幅度等控制參數(shù);內(nèi)含32位可編程頻率寄存器;集成有10位D/A轉(zhuǎn)換器;采用CMOS低功耗工藝;可通過人機(jī)設(shè)定或?yàn)橛布倒姆绞剑蛔畲筝敵鲭娏?0 mA、最大輸出電壓為1 V;單一電源(+5 V)供電;設(shè)計(jì)有44腳的PLCC封裝。
AD7008芯片的引腳,主要有地址線、數(shù)據(jù)線、DAC輸出、參考時(shí)鐘輸入引腳、寄存器組選擇、頻率更新引腳、復(fù)位信號及系統(tǒng)同步時(shí)鐘引腳等。
AD7008芯片的結(jié)構(gòu)見如圖2所示。它主要由三個(gè)部分組成:一是包括一個(gè)32位的相加累加器、一個(gè)余弦/正弦表、一個(gè)10位的D/A轉(zhuǎn)換器和兩個(gè)頻率、一個(gè)相位及兩個(gè)幅度調(diào)節(jié)單元等組成的可編程DDS數(shù)字合成系統(tǒng);二是一個(gè)命令寄存器和兩個(gè)幅度寄存器用于控制AD7008芯片的工作模式(用于調(diào)節(jié)I及Q幅度)等;三是控制電路和并、串行接口等,與計(jì)算機(jī)接口實(shí)現(xiàn)對相位、幅度和頻率調(diào)節(jié)寄存器等的修改、寫入。
圖2 AD7008芯片的系統(tǒng)結(jié)構(gòu)圖
3 具體電路設(shè)計(jì)和頻率、幅度的控制
3.1 基于AD7008的可程控信號源的SCH圖
圖3是由AD7008和計(jì)算機(jī)接口組成的實(shí)際電路。AD7008與計(jì)算機(jī)之間采用并行8位的接口。鎖存器74LS273與AD7008連接,通過鎖存器輸出信號到TC0~ TC3,RESET,LOAD,SLEEP和FSELECT等對AD7008進(jìn)行控制。當(dāng)SLESECT=0或SLESECT=1,就能通過輸出頻率決定FREQ0寄存器的值或FREQ1寄存器的值;TC0~TC3是傳輸?shù)刂房刂瓶偩€,它的作用是數(shù)據(jù)傳輸過程中使用目的、源寄存器[1]。LOAD引腳作用是數(shù)據(jù)裝載允許,當(dāng)高電平時(shí),TC3~TC0總線選中的寄存器,允許寫數(shù)據(jù)。SLEEP引腳作用是低功耗休眠控制,高電平時(shí),AD7008進(jìn)入低功耗休眠。內(nèi)部時(shí)鐘停止,同時(shí)DAC電流源關(guān)閉。RESET的作用就是寄存器復(fù)位,高電平時(shí),所有寄存器復(fù)位為零,同時(shí)不能輸出信號。經(jīng)過DAC轉(zhuǎn)換,電流信號成為電壓信號,通過低通濾波器和射隨器,輸出為正弦或調(diào)頻調(diào)幅信號。FREQ0或FREQ1的值為頻率指數(shù),決定信號的頻率,F(xiàn)REQ0,F(xiàn)REQ1的字長是32位,通過8位并行口4次輸入,按高位到低位的順序傳送[2?4]。
3.2 頻率控制
本設(shè)計(jì)采用時(shí)鐘為20 MHz,字長為32位。因此最小頻率為:
[FL=20×106232]
最大頻率為:
[FM=1(4T)=FCLK4=5 MHz]
由:
[F=KFL=K×20×106232]
得到:
[K=F×232(20×106)]
[K]值取整,通過8位并行口送入FREQ0或FREQ1中,就可以對信號的頻率進(jìn)行控制。幅度和相位調(diào)節(jié)與上述類似,都是通過將調(diào)節(jié)值送入對應(yīng)的寄存器控制。
3.3 幅度控制
幅度控制基于ADI公司的AD7520來進(jìn)行設(shè)計(jì),該器件是單片10位16引腳雙列直插式封裝的乘法型模/數(shù)轉(zhuǎn)換器。采用先進(jìn)的CMOS及薄膜工藝,能夠提供10位精度,并與TTL/DTL/CMOS兼容。AD7520工作電源為[+5~+15 V,]包括梯形網(wǎng)絡(luò)在內(nèi)的功耗20 mW。由AD7520構(gòu)成的數(shù)字控制的衰減器電路如圖3所示。根據(jù)圖3中AD7520的部分所示電路,LF353的2腳輸入電流的表達(dá)式如下:
[I01=IREF(D12-1+D22-2+…+D102-10)]
將[IREF=VREFR,][VREF=VIN]代入上式得:
[I01=VIN(R(D12-1+D22-2+…+D102-10))]
采用運(yùn)算放大器將輸入的電流轉(zhuǎn)換成電壓,再輸出,得到LF353的輸出電壓[VOUT]為:
[VOUT=-I01R]
將表達(dá)式[I01]代入,得:
[VOUT=-VIN(D12-1+D22-2+…+D102-10)]
可見輸入電壓經(jīng)過該電路后受到衰減后輸出,隨著[D1~D10]的值的不斷改變,輸出電壓也隨之進(jìn)行變化。輸出電壓和輸入電壓最大值相當(dāng),輸出電壓最小值與輸入電壓的[11 024](衰減可達(dá)60 dB)相當(dāng)。本設(shè)計(jì)是通過74LS273鎖存器輸出信號,來控制AD7520的衰減量。因此由電腦向74LS273內(nèi)寫入不同參數(shù)的方式就能夠?qū)λp量進(jìn)行控制[5]。
4 程序設(shè)計(jì)
通過C語言編程設(shè)計(jì),總體設(shè)計(jì)策略是[6]:首先輸入頻率、幅度,計(jì)算幅度控制字和頻率指數(shù);把頻率指數(shù)[K]值傳輸?shù)紸D7008的32位并行口寄存器;然后設(shè)置頻率寄存器的地址;傳輸幅度控制字到幅度控制字寄存器中;最后把[K]值裝載入頻率寄存器,產(chǎn)生信號[7]。該編程設(shè)計(jì)已在BC5.0環(huán)境下成功編譯,程序源碼如下:
/*------system("send1.exe PORT BYTE.BY");------*/
#include
#include
#include
#include
#include
void signal(int fr1b4,int fr1b3,int fr1b2,int fr1b1,int am1-2,int am1-8)
void sglres()
void main()
{
sglres()
signal(30000,0x3ff);
adjust(0x10);
}
void sglres() /*AD7008芯片復(fù)位控制*/
{
outport(0x212,0xff);
outport(0x212,0xff);
outport(0x212,0xff);
outport(0x212,0x00);
outport(0x212,0x00);
outport(0x212,0x00);
}
void signal(unsigned long f?value,unsignal int am?value)
/*設(shè)置AD7008輸出信號頻率及AD7520對信號的衰減量*/
{
unsigned int fr1b4,fr1b3,fr1b2,fr1b1,am1?2,am1?8;
unsigned long k1,k2,k3;
k1=(f?value*0x800000)/10000000;
fr1b4=int(k1/(0x10000000));
k2=k1?fr1b4*(0x10000000);
fr1b3=int(k2/(0x10000));
k3=k2?fr1b3*(0x10000);
fr1b2=int(k3/(0x100));
fr1b1=k3?fr1b2*(0x100);
if am?value>0x3ff am?value=0x3ff;
if am?value<0x00 am?value=0x00;
am1?2=int(am?value/(0x100));
am1?8=am?value?am1?2*(0x100);
sglres();
outport(0x212,0xff);
outport(0x212,0x00);
outport(0x216,0x00);
outport(0x212,0x04);
outport(0x212,0x00);
outport(0x216,fr1b4);
outport(0x216,fr1b3);
outport(0x216,fr1b2);
outport(0x216,fr1b1);
outport(0x212,0x80);
outport(0x212,0x84);
outport(0x212,0x00);
outport(0x212,am1?2);
outport(0x218,am1?8);
}
5 結(jié) 語
文中信號源按照插入PC機(jī)ISO槽結(jié)構(gòu)設(shè)計(jì), 利用PC機(jī)中的±12 V電源,通過7805芯片和7905芯片穩(wěn)壓后得到信號板所需的+5 V模擬電源和-5 V模擬電源。通過膽電容和0.1 μF高頻小獨(dú)石電容并聯(lián),得到電源濾波電容[8?9]。因頻率和幅度變化界限較大,其中幅度的最小值達(dá)到了2 mV。為了不使數(shù)字部分對模擬部分產(chǎn)生大的干擾,PCB板采用四層板設(shè)計(jì),其中最中間兩層,一層為數(shù)字地,一層為模擬地,而且通過插槽使數(shù)字地和模擬地相連。芯片上的數(shù)字電源和模擬電源、模擬地和數(shù)字地分開隔離,芯片上的電源端需要采取措施,加0.1 μF的高頻去耦電容。另外在用示波器進(jìn)行檢測時(shí),示波器接地端要和PCB板上的接地端連接牢固后,才能進(jìn)行測試,否則如果檢測中示波器接地端與PCB板斷開,就很有可能造成芯片燒損。
調(diào)試結(jié)果、實(shí)際應(yīng)用表明:本文設(shè)計(jì)的基于AD7008的可程控信號源工作穩(wěn)定,精度較高,頻率、幅度控制都非常便利,在電子設(shè)備的電路板故障檢測中起到了很好的作用。
參考文獻(xiàn)
[1] 徐勤建.AD7008構(gòu)成的可程控信號源設(shè)計(jì)[J].國外電子元器件,2000(11):30?33.
[2] 李瀚蓀.電路分析基礎(chǔ)[M].北京:人民教育出版社,1981.
[3] 李華.MCS51單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993.
[4] 竇振中.單片機(jī)外圍器件實(shí)用手冊存儲器分冊[M].北京:北京航空航天大學(xué)出版社,1998.
[5] 劉保生.基于虛擬儀器技術(shù)的鐵路信號試驗(yàn)車自動測試系統(tǒng)研究[D].北京:北京交通大學(xué),2007.
[6] 張衛(wèi)東,杜普選.用AD7008實(shí)現(xiàn)多音頻調(diào)制的調(diào)頻信號[J].北方交通大學(xué)學(xué)報(bào),2003,27(3):104?106.
[7] 李德偉.基于DDS的可程控信號源的設(shè)計(jì)和實(shí)現(xiàn)[C]//信息產(chǎn)業(yè)部電子對抗專業(yè)情報(bào)網(wǎng)2006年技術(shù)交流會論文集.北京:信息產(chǎn)業(yè)部,2006.
[8] 胡奇巧.壓電加速度傳感器校準(zhǔn)系統(tǒng)的程控信號源研究[D].合肥:安徽大學(xué),2005.
[9] 劉勝龍.汽車發(fā)動機(jī)ECU環(huán)境耐久性測試系統(tǒng)關(guān)鍵技術(shù)研究[D].重慶:重慶大學(xué),2010.
outport(0x216,fr1b4);
outport(0x216,fr1b3);
outport(0x216,fr1b2);
outport(0x216,fr1b1);
outport(0x212,0x80);
outport(0x212,0x84);
outport(0x212,0x00);
outport(0x212,am1?2);
outport(0x218,am1?8);
}
5 結(jié) 語
文中信號源按照插入PC機(jī)ISO槽結(jié)構(gòu)設(shè)計(jì), 利用PC機(jī)中的±12 V電源,通過7805芯片和7905芯片穩(wěn)壓后得到信號板所需的+5 V模擬電源和-5 V模擬電源。通過膽電容和0.1 μF高頻小獨(dú)石電容并聯(lián),得到電源濾波電容[8?9]。因頻率和幅度變化界限較大,其中幅度的最小值達(dá)到了2 mV。為了不使數(shù)字部分對模擬部分產(chǎn)生大的干擾,PCB板采用四層板設(shè)計(jì),其中最中間兩層,一層為數(shù)字地,一層為模擬地,而且通過插槽使數(shù)字地和模擬地相連。芯片上的數(shù)字電源和模擬電源、模擬地和數(shù)字地分開隔離,芯片上的電源端需要采取措施,加0.1 μF的高頻去耦電容。另外在用示波器進(jìn)行檢測時(shí),示波器接地端要和PCB板上的接地端連接牢固后,才能進(jìn)行測試,否則如果檢測中示波器接地端與PCB板斷開,就很有可能造成芯片燒損。
調(diào)試結(jié)果、實(shí)際應(yīng)用表明:本文設(shè)計(jì)的基于AD7008的可程控信號源工作穩(wěn)定,精度較高,頻率、幅度控制都非常便利,在電子設(shè)備的電路板故障檢測中起到了很好的作用。
參考文獻(xiàn)
[1] 徐勤建.AD7008構(gòu)成的可程控信號源設(shè)計(jì)[J].國外電子元器件,2000(11):30?33.
[2] 李瀚蓀.電路分析基礎(chǔ)[M].北京:人民教育出版社,1981.
[3] 李華.MCS51單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993.
[4] 竇振中.單片機(jī)外圍器件實(shí)用手冊存儲器分冊[M].北京:北京航空航天大學(xué)出版社,1998.
[5] 劉保生.基于虛擬儀器技術(shù)的鐵路信號試驗(yàn)車自動測試系統(tǒng)研究[D].北京:北京交通大學(xué),2007.
[6] 張衛(wèi)東,杜普選.用AD7008實(shí)現(xiàn)多音頻調(diào)制的調(diào)頻信號[J].北方交通大學(xué)學(xué)報(bào),2003,27(3):104?106.
[7] 李德偉.基于DDS的可程控信號源的設(shè)計(jì)和實(shí)現(xiàn)[C]//信息產(chǎn)業(yè)部電子對抗專業(yè)情報(bào)網(wǎng)2006年技術(shù)交流會論文集.北京:信息產(chǎn)業(yè)部,2006.
[8] 胡奇巧.壓電加速度傳感器校準(zhǔn)系統(tǒng)的程控信號源研究[D].合肥:安徽大學(xué),2005.
[9] 劉勝龍.汽車發(fā)動機(jī)ECU環(huán)境耐久性測試系統(tǒng)關(guān)鍵技術(shù)研究[D].重慶:重慶大學(xué),2010.
outport(0x216,fr1b4);
outport(0x216,fr1b3);
outport(0x216,fr1b2);
outport(0x216,fr1b1);
outport(0x212,0x80);
outport(0x212,0x84);
outport(0x212,0x00);
outport(0x212,am1?2);
outport(0x218,am1?8);
}
5 結(jié) 語
文中信號源按照插入PC機(jī)ISO槽結(jié)構(gòu)設(shè)計(jì), 利用PC機(jī)中的±12 V電源,通過7805芯片和7905芯片穩(wěn)壓后得到信號板所需的+5 V模擬電源和-5 V模擬電源。通過膽電容和0.1 μF高頻小獨(dú)石電容并聯(lián),得到電源濾波電容[8?9]。因頻率和幅度變化界限較大,其中幅度的最小值達(dá)到了2 mV。為了不使數(shù)字部分對模擬部分產(chǎn)生大的干擾,PCB板采用四層板設(shè)計(jì),其中最中間兩層,一層為數(shù)字地,一層為模擬地,而且通過插槽使數(shù)字地和模擬地相連。芯片上的數(shù)字電源和模擬電源、模擬地和數(shù)字地分開隔離,芯片上的電源端需要采取措施,加0.1 μF的高頻去耦電容。另外在用示波器進(jìn)行檢測時(shí),示波器接地端要和PCB板上的接地端連接牢固后,才能進(jìn)行測試,否則如果檢測中示波器接地端與PCB板斷開,就很有可能造成芯片燒損。
調(diào)試結(jié)果、實(shí)際應(yīng)用表明:本文設(shè)計(jì)的基于AD7008的可程控信號源工作穩(wěn)定,精度較高,頻率、幅度控制都非常便利,在電子設(shè)備的電路板故障檢測中起到了很好的作用。
參考文獻(xiàn)
[1] 徐勤建.AD7008構(gòu)成的可程控信號源設(shè)計(jì)[J].國外電子元器件,2000(11):30?33.
[2] 李瀚蓀.電路分析基礎(chǔ)[M].北京:人民教育出版社,1981.
[3] 李華.MCS51單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993.
[4] 竇振中.單片機(jī)外圍器件實(shí)用手冊存儲器分冊[M].北京:北京航空航天大學(xué)出版社,1998.
[5] 劉保生.基于虛擬儀器技術(shù)的鐵路信號試驗(yàn)車自動測試系統(tǒng)研究[D].北京:北京交通大學(xué),2007.
[6] 張衛(wèi)東,杜普選.用AD7008實(shí)現(xiàn)多音頻調(diào)制的調(diào)頻信號[J].北方交通大學(xué)學(xué)報(bào),2003,27(3):104?106.
[7] 李德偉.基于DDS的可程控信號源的設(shè)計(jì)和實(shí)現(xiàn)[C]//信息產(chǎn)業(yè)部電子對抗專業(yè)情報(bào)網(wǎng)2006年技術(shù)交流會論文集.北京:信息產(chǎn)業(yè)部,2006.
[8] 胡奇巧.壓電加速度傳感器校準(zhǔn)系統(tǒng)的程控信號源研究[D].合肥:安徽大學(xué),2005.
[9] 劉勝龍.汽車發(fā)動機(jī)ECU環(huán)境耐久性測試系統(tǒng)關(guān)鍵技術(shù)研究[D].重慶:重慶大學(xué),2010.