版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PulseIntervalModulation–DualHeader(PIM-DH)引言在通信系統(tǒng)的科研實(shí)驗(yàn)中,常常需要用到多種不同頻率和相位的信號(hào),如正弦波、三角波、方波和鋸齒波等,因此多波形信號(hào)發(fā)生器的應(yīng)用十分廣泛。傳統(tǒng)的波形發(fā)生器多采用模擬分立元件實(shí)現(xiàn),產(chǎn)生的波形種類要受到電路硬件的限制,體積大,靈活性和穩(wěn)定性也相對較差。近年來,以數(shù)字技術(shù)為基礎(chǔ)的波形發(fā)生器得到了飛速的發(fā)展,性能指標(biāo)都達(dá)到了一個(gè)新的水平?,F(xiàn)場可編程門陣列器件具有容量大、運(yùn)算速度快、現(xiàn)場可編程等優(yōu)點(diǎn),使得許多復(fù)雜的電路有了新的實(shí)現(xiàn)途徑,越來越被廣泛地應(yīng)用到實(shí)際系統(tǒng)中。本文參考直接數(shù)字頻率合成原理,利用Max-PIUSII軟件和Matlab數(shù)學(xué)工具,基于FPGA配合相應(yīng)外圍器件實(shí)現(xiàn)多波形信號(hào)發(fā)生器,電路結(jié)構(gòu)簡單、易于擴(kuò)展,具有極大的靈活性和方便性。實(shí)現(xiàn)的多波形發(fā)生器可產(chǎn)生正弦波、三角波、鋸齒波和方波等信號(hào),輸出信號(hào)頻率在0Hz一100KHz范圍內(nèi)可調(diào)。1設(shè)計(jì)任務(wù)設(shè)計(jì)一基于FPGA的多波形發(fā)生器。設(shè)計(jì)目標(biāo)為,可以實(shí)現(xiàn)穩(wěn)定的正弦波、三角波、方波的輸出,輸出頻率范圍:1Hz~100KHz,且頻率可調(diào)(步進(jìn)1Hz)。2設(shè)計(jì)思路及原理DDS的工作原理是以數(shù)控振蕩器的方式產(chǎn)生頻率、相位可控制的正弦波。電路一般包括基準(zhǔn)時(shí)鐘、頻率累加器、相位累加器、幅度/相位轉(zhuǎn)換電路、D/A轉(zhuǎn)換器和低通濾波器(LPF)。頻率累加器對輸入信號(hào)進(jìn)行累加運(yùn)算,產(chǎn)生頻率控制數(shù)據(jù)X(frequencydata或相位步進(jìn)量)。相位累加器由N位全加器和N位累加寄存器級(jí)聯(lián)而成,對代表頻率的2進(jìn)制碼進(jìn)行累加運(yùn)算,是典型的反饋電路,產(chǎn)生累加結(jié)果Y。幅度/相位轉(zhuǎn)換電路實(shí)質(zhì)上是一個(gè)波形寄存器,以供查表使用。讀出的數(shù)據(jù)送入D/A轉(zhuǎn)換器和低通濾波器。市場上目前專用的DDS芯片種類比較多,雖然他們的輸出頻率高、輸出波形好,但是輸出波形比較單一,一般只有正弦(余弦)波和方波;另外專用DDS芯片的輸入已經(jīng)固定,當(dāng)需要一個(gè)變化靈活的頻率或相位時(shí),可能無法通過這些輸入信息達(dá)到要求;這些都限制了專用DDS芯片的使用范圍。而用FPGA實(shí)現(xiàn)的DDS電路則不一樣,由于波形信息存儲(chǔ)在RoM中,可以通過改變RoM中的存儲(chǔ)內(nèi)容達(dá)到實(shí)現(xiàn)不同波形的要求。同樣波形是和頻率、相位有關(guān)系的,因此也可以通過修改ROM中的波形數(shù)據(jù)來實(shí)現(xiàn)比較靈活的頻率和相位要求。另外專用DDS芯片的功耗大,價(jià)格高,相比而言用FPGA實(shí)現(xiàn)的電路在這些方面同樣具有很大的優(yōu)勢。而且由于FPGA自身的特點(diǎn),能夠很容易在FPGA內(nèi)部生成多個(gè)基本模塊,從而開發(fā)出功能強(qiáng)大的芯片。另外FLEX1OK器件還提供了可供選擇的時(shí)鐘鎖定和時(shí)鐘自舉電路,這兩種電路中均含有用來提高設(shè)計(jì)速度和減少資源占用的鎖相環(huán),可以支持高速設(shè)計(jì)。通過MAX+PLUSI或者QUARTUS軟件可以調(diào)用FPGA的內(nèi)部模塊或者VHDL語言設(shè)計(jì)電路,使電路的設(shè)計(jì)、修改變得簡單方便2.1DDS工作原理及原理框圖直接數(shù)字頻率合成(DDS)技術(shù)是60年代末出現(xiàn)的第三代頻率合成技術(shù),以Nyquist時(shí)域采樣定理為基礎(chǔ),在時(shí)域中進(jìn)行頻率合成。DDS具有相對帶寬很寬,頻率轉(zhuǎn)換時(shí)間極短(可小于20ns),頻率分辨率可以做到很高(典型值為0.001Hz)等優(yōu)點(diǎn);另外,全數(shù)字化結(jié)構(gòu)便于集成,輸出相位連續(xù),頻率、相位、幅度都可以實(shí)現(xiàn)程控,通過更換波形數(shù)據(jù)可以輕易實(shí)現(xiàn)任意波形功能??偟膩碚f,新一代的直接數(shù)字頻率合成器采用全數(shù)字的方式實(shí)現(xiàn)頻率合成,與傳統(tǒng)的頻率合成技術(shù)相比,具有以下特點(diǎn):(1)頻率轉(zhuǎn)換快。直接數(shù)字頻率合成是一個(gè)開環(huán)系統(tǒng),無任何反饋環(huán)節(jié),其頻率轉(zhuǎn)換時(shí)間主要由頻率控制字狀態(tài)改變所需的時(shí)間及各電路的延時(shí)時(shí)間所決定,轉(zhuǎn)換時(shí)間很短。(2)頻率分辨率高、頻點(diǎn)數(shù)多。DDS輸出頻率的分辨率和頻點(diǎn)數(shù)隨機(jī)位累加器的位數(shù)的增長而呈指數(shù)增長。分辨率高達(dá)μHz。(3)相位連續(xù)。DDS在改變頻率時(shí)只需改變頻率控制字(即累加器累加步長),而不需改變原有的累加值,故改變頻率時(shí)相位是連續(xù)的。(4)相位噪聲小。DDS的相位噪聲主要取決于參考源的相位噪聲。(5)控制容易、穩(wěn)定可靠。高集成度、高速和高可靠是FPGA/CPLD最明顯的特點(diǎn),其時(shí)鐘延遲可達(dá)納秒級(jí),結(jié)合其并行工作方式,在超高速應(yīng)用領(lǐng)域和實(shí)時(shí)測控方面有非常廣闊的應(yīng)用前景。在高可靠應(yīng)用領(lǐng)域,如果設(shè)計(jì)得當(dāng),將不會(huì)存在類似于MCU的復(fù)位不可靠和PC可能跑飛等問題。CPLD/FPGA的高可靠性還表現(xiàn)在,幾乎可將整個(gè)系統(tǒng)下載于同一芯片中,實(shí)現(xiàn)所謂片上系統(tǒng),從而大大縮小了體積,易于管理和屏蔽。所以,采用FPGA來實(shí)現(xiàn)DDS有明顯的好處。2.2具體工作過程圖2-1DDS結(jié)構(gòu)上圖所示是一個(gè)基于的DDS電路的工作原理框圖DDS的工作原理是以數(shù)控振蕩器的方式產(chǎn)生頻率、相位可控制的正弦波。電路一般包括基準(zhǔn)時(shí)鐘、頻率累加器、相位累加器、幅度/相位轉(zhuǎn)換電路、D/A轉(zhuǎn)換器和低通濾波器(LPF)。頻率累加器對輸入信號(hào)進(jìn)行累加運(yùn)算,產(chǎn)生頻率控制數(shù)據(jù)X(frequencydata或相位步進(jìn)量)。相位累加器由N位全加器和N位累加寄存器級(jí)聯(lián)而成,對代表頻率的2進(jìn)制碼進(jìn)行累加運(yùn)算,是典型的反饋電路,產(chǎn)生累加結(jié)果Y。幅度/相位轉(zhuǎn)換電路實(shí)質(zhì)上是一個(gè)波形寄存器,以供查表使用。讀出的數(shù)據(jù)送入D/A轉(zhuǎn)換器和低通濾波器。每來一個(gè)時(shí)鐘脈沖Fclk,N位加法器將頻率控制數(shù)據(jù)X與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果Y送至累加寄存器的輸入端。累加寄存器一方面將在上一時(shí)鐘周期作用后所產(chǎn)生的新的相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一時(shí)鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)X相加;另一方面將這個(gè)值作為取樣地址值送入幅度/相位轉(zhuǎn)換電路,幅度/相位轉(zhuǎn)換電路根據(jù)這個(gè)地址輸出相應(yīng)的波形數(shù)據(jù)。最后經(jīng)D/A轉(zhuǎn)換器和低通濾波器將波形數(shù)據(jù)轉(zhuǎn)換成所需要的模擬波形。相位累加器在基準(zhǔn)時(shí)鐘的作用下,進(jìn)行線性相位累加,當(dāng)相位累加器加滿量時(shí)就會(huì)產(chǎn)生一次溢出,這樣就完成了一個(gè)周期,這個(gè)周期也就是DDS信號(hào)的頻率周期。DDS輸出信號(hào)的頻率由下式給定:(2-1)假定基準(zhǔn)時(shí)鐘為,累加器為24位,則再假定X=1000000Mhz,則可見,通過設(shè)定相位累加器位數(shù)、頻率控制字X和基準(zhǔn)時(shí)鐘的值,就可以產(chǎn)生任意頻率的輸出。DDS的頻率分辨率定義為:Fout=Fclk/Y(2-2)由于基準(zhǔn)時(shí)鐘一般固定,因此相位累加器的位數(shù)就決定了頻率分辨率。如上面的例子,相位累加器為24位,那么頻率分辨率就可以認(rèn)為是24位。位數(shù)越多,分頻率越高。3系統(tǒng)電路的設(shè)計(jì)及原理3.1系統(tǒng)原理用FPGA實(shí)現(xiàn)多波形信號(hào)發(fā)生器基于直接數(shù)字頻率合成技術(shù)。圖1以正弦輸出為例,概括了直接數(shù)字頻率合成器的結(jié)構(gòu)和原理。圖1中頻率控制字和相位控制字分別控制DDS輸出波形的頻率和相位。DDS系統(tǒng)的核心是Nbit相位累加器。相位累加器以頻率控制字為步長進(jìn)行地址抽取,以參考時(shí)鐘周期為采樣率,產(chǎn)生待合成信號(hào)的數(shù)字化相位取樣值。隨后通過查表變換,數(shù)字相位取樣值被轉(zhuǎn)化為信號(hào)波形的數(shù)字幅度序列,再由數(shù)/模變換器(DAC)將代表波形幅度的數(shù)字序列轉(zhuǎn)化為模擬電壓,最后經(jīng)由低通濾波器將DAC輸出的階梯狀波形平滑為所需的連續(xù)波形。若頻率控制字設(shè)為K,相位累加器為N位,參考時(shí)鐘頻率fc,則輸出頻率為(3-1)最小頻率分辨率為(3-2)DDS的輸出頻率下限對應(yīng)于頻率控制字K=0的情形,即fout=0根據(jù)奈奎斯特抽樣定律,DDS的輸出上限頻率為時(shí)鐘頻率的1/2,即(3-3)但由于實(shí)際輸出低通濾波器的非理想特性,工程上可實(shí)現(xiàn)的頻率上限為(3-4)即若參考頻率為fc,DDS的輸出頻率范圍是0~2/5fc。由于DDS的模塊化結(jié)構(gòu),其輸出波形由波形查找表中的數(shù)據(jù)來決定,因此,只需改變查找表中的數(shù)據(jù),即可以方便地利用DDS產(chǎn)生出正弦波之外的其他波形,如余弦波、方波、三角波、鋸齒波甚至調(diào)頻、調(diào)相波以及帶限的噪聲信號(hào)。系統(tǒng)總框圖如(圖3-1)所示。圖3-1系統(tǒng)整體框圖3.2各模塊具體實(shí)現(xiàn)原理分析和說明3.2.1外圍電路FPGA的外圍電路如(圖3-2)所示圖3-2FPGA的外圍電路單片機(jī)是用來控制整個(gè)電路的,他負(fù)責(zé)輸入FPGA的頻率、相位信息,對鍵盤和顯示模塊的控制。鍵盤用來輸入需要的頻率和相位信息,經(jīng)單片機(jī)再輸入FPGA。顯示模塊用來顯示輸入的頻率、相位信息以及輸出頻率等狀態(tài)。DAC用來將FPGA輸出的數(shù)字信息轉(zhuǎn)換成模擬信息。LPF濾除不必要的頻率,使波形更加平滑。3.2.2頻率控制模塊這一模塊是由FPGA實(shí)現(xiàn)的,F(xiàn)PGA完成相位累加器的功能,而頻率控制字X是由外部撥碼開關(guān)給出的。 相位累加器(見圖3-3)是實(shí)現(xiàn)DDS的核心,它由一個(gè)N位字長的二進(jìn)制加法器和一個(gè)固定時(shí)鐘脈沖取樣的N位相位寄存器組成。相位寄存器的輸出與加法器的一個(gè)輸入端在fcN位相位寄存器N位加法器N位相位寄存器N位加法器頻率控制字X輸出序列N圖3-3相位累加器結(jié)構(gòu)內(nèi)部相連,加法器的另一個(gè)輸入端是外部輸入的頻率控制字X。這樣,在每個(gè)時(shí)鐘到達(dá)時(shí),相位寄存器采樣上個(gè)時(shí)鐘周期內(nèi)相位寄存器的值與頻率控制字X之和,并作為相位累加器在這一時(shí)鐘周期的輸出。頻率控制字X決定了相應(yīng)的相位增量,相位累加器則不斷地對該相位增量進(jìn)行線性累加,當(dāng)相位累加器積滿兩時(shí)就會(huì)產(chǎn)生一次溢出,從而完成一個(gè)周期性的動(dòng)作,這個(gè)動(dòng)作周期即是DDS合成信號(hào)的一個(gè)頻率周期。于是,輸出信號(hào)波形的頻率表示式為(3-5)由該式可知,輸出信號(hào)頻率主要取決于頻率控制字X,當(dāng)X增大時(shí),可以不斷的增高,由抽樣定理,最高輸出頻率不得大于/2,而根據(jù)實(shí)驗(yàn)所得,實(shí)際工作頻率小于/3時(shí)較為合適。由于受到FPGA芯片資源限制,所能達(dá)到的頻率不是很高,范圍也不是很廣。根據(jù)設(shè)計(jì)目標(biāo),決定取=51200Hz,選取4.096MHz有源晶振,經(jīng)過80分頻,得到基準(zhǔn)頻率為51200Hz。N為9位。這樣,頻率分辨率為可以達(dá)到的最高最佳頻率為51200/3≈17KHz。另外Altera還在它們公司的VHDL設(shè)計(jì)平臺(tái)MAX+PLUS上提供了LPM_ADD_SUB核和LPM_DFF核,利用MAX+PLUS綜合可以自動(dòng)編譯包含LPM_ADD_SUB和LPM_DFF元件的文件,本設(shè)計(jì)利用LPM_ADD_SUB核以及LPM_DFF核在FPGA上實(shí)現(xiàn)相位累加器。3.2.3ROM查找表設(shè)計(jì)FPGA的結(jié)構(gòu)是由基于半定制門陳列的設(shè)計(jì)思想而得到的。從本質(zhì)上講,FPGA是一種比半定制還方便的ASIC設(shè)計(jì)技術(shù)。FPGA的結(jié)構(gòu)主要分為三部分:可編程邏輯塊、可編程I?O模塊、可編程內(nèi)部連線??删幊踢壿媺K的構(gòu)造主要有兩種類型:即基于查找表的結(jié)構(gòu)類型和基于乘積項(xiàng)的結(jié)構(gòu)類型。查找表型FPGA的可編程邏輯單元是由功能為查找表的SRAM構(gòu)成邏輯函數(shù)發(fā)生器,實(shí)現(xiàn)與其它功能塊的可編程連接。在此,選用FLEX10K系列FPGA作為目標(biāo)芯片,FLEX10K系列是Altera公司于1995年推出的產(chǎn)品,它的集成度達(dá)到了10萬門,而且在FPGA中首次集成了嵌入式存儲(chǔ)器塊的芯片。它是查找表型FPGA,由輸入-輸出控制模塊(IOC)、嵌入式陣列塊(EAB)、邏輯陣列塊(LAB)和快速通道(FASTTRACK)構(gòu)成。其中EAB是一種輸入輸出端帶有寄存器的非常靈活的RAM,它既可以用來作為存儲(chǔ)器使用,也可以用來實(shí)現(xiàn)邏輯功能。每一個(gè)EAB有容量為2048位的RAM,可配置為存儲(chǔ)器或邏輯函數(shù),FLEX10K系列中不同型號(hào)的芯片其中包含的EAB的數(shù)目不同,FLEX10K10有3個(gè)EAB。另外Altera還在它們公司的VHDL設(shè)計(jì)平臺(tái)MAX+PLUS上提供了LPMROM核,利用MAX+PLUS綜合可以自動(dòng)編譯包含LPMROM元件的文件,在FLEX10K10的EAB上產(chǎn)生ROM功能。本設(shè)計(jì)利用LPMROM核預(yù)置正弦查找表在FPGA上。LPM2ROM核簡介:輸入端口:address[]~ROM的地址信號(hào);輸出端口:q[]~ROM的輸出數(shù)據(jù)。具體參數(shù):LPM_WIDTH:輸出數(shù)據(jù)的寬度(1~64任選);LPM_WIDTHAD:輸入地址的寬度(1~12任選);LPM_FILE:存儲(chǔ)器初始化文件名(.mifor.hex)。本設(shè)計(jì)中各參數(shù)設(shè)置如下:LPM_WIDTH:=>8;LPM_WIDTHAD=>9;LPM_OUTDATA=>”UNREGISTERED”;LPM_ADDRESS_CONTROL=>"UNREGISTERED";其中LPM_FILE的“.mif”中存放正弦的值,可由文本形式生成,也可由高級(jí)語言如C語言生成。ROM查找表在整個(gè)設(shè)計(jì)中是一個(gè)比較重要的部分。為了保證波形的平滑,設(shè)計(jì)時(shí)可將一個(gè)周期分為512個(gè)點(diǎn)。但是,點(diǎn)數(shù)太多時(shí),用文本方式輸入可能有很多困難。因此,應(yīng)當(dāng)用C語言描述正弦方程式,最后再將其轉(zhuǎn)化為所需的mif文件。下面是用TC來在512.mif文件里產(chǎn)生512個(gè)點(diǎn)的正弦波數(shù)據(jù)的源程序:#include<stdio.h>#include"math.h"intmain(){ints; inti; FILE*fp; fp=fopen("512.mif","r+");fprintf(fp,"--MAX+plusII-generatedMemoryInitializationFile\n");fprintf(fp,"--By00022809\n\n\n\n\n"); fprintf(fp,"WIDTH=8;\n\n");fprintf(fp,"DEPTH=512;\n\n"); fprintf(fp,"ADDRESS_RADIX=HEX;\n\n"); fprintf(fp,"DATA_RADIX=HEX;\n\n"); fprintf(fp,"CONTENTBEGIN\n"); for(i=0;i<512;i++) {s=abs(sin(atan(1.0)*8/512*i)*255); fprintf(fp,"%x\t:\t%x;\n",i,s); } fprintf(fp,"END;\n"); fclose(fp);}這樣就可以得到一個(gè)周期512個(gè)點(diǎn)的波形數(shù)據(jù)。ROM存儲(chǔ)器是設(shè)計(jì)人員在許多設(shè)計(jì)電路中不可缺少的關(guān)鍵部件,特別是在一些特殊的運(yùn)算場合,設(shè)計(jì)人員通常利用ROM改造出各種各樣的查找表,以簡化電路,提高電路的處理速度和穩(wěn)定性。在FPGA器件中實(shí)現(xiàn)存儲(chǔ)器功能,需要占用芯片的存儲(chǔ)單元,而這種資源是十分有限的,如何在FPGA器件的存儲(chǔ)單元和邏輯單元的使用效率上取得最佳折衷是設(shè)計(jì)人員必須細(xì)心考慮的問題。一個(gè)好的設(shè)計(jì)應(yīng)該是速度、可靠性和資源利用率三者的最佳結(jié)合。對于鋸齒波、三角波、方波等相位/幅度對應(yīng)關(guān)系比較簡單的信號(hào),則可以通過直接計(jì)算得到幅度數(shù)據(jù),無需占用有限的ROM資源。這一部分相位/幅度轉(zhuǎn)換采用VerilogHDL語言完成。3.2.4數(shù)模轉(zhuǎn)換模塊數(shù)模轉(zhuǎn)換。本來欲打算采用轉(zhuǎn)換速度為85ns,帶寬為10MHz的8位單調(diào)高速乘法器ADDAC08或者是DAC0800。但由于都購買不到,而改為使用轉(zhuǎn)換速度為1us帶寬為1MHz的DAC0832,這樣最高頻率就不是很高。DAC0832為電流輸出型D/A轉(zhuǎn)換器,需要外接運(yùn)算放大器進(jìn)行電流電壓變換才能得到模擬電壓輸出。輸出方式為單極性輸出方式的時(shí)候,輸出級(jí)接一低電壓溫漂運(yùn)放op07作為電壓電流轉(zhuǎn)換器,在運(yùn)算放大器的輸出端就可以得到單極性模擬電壓:(3-6)3.2.5濾波輸出電路模塊D/A輸出后,通過濾波電路,使信號(hào)平滑。濾波器在通帶內(nèi)的平坦程度對我們而言,比其衰減更為重要,而且,巴特沃斯濾波器的元件值也較合乎實(shí)際情況,不像絕大多數(shù)其他類型濾波器對元件值要求那么苛刻。在截止頻率附近,頻率響應(yīng)鈍化可能使這些濾波器在要求銳截止的地方不合要求。二階巴特沃斯有源低通濾波器設(shè)計(jì)(圖3-4):正弦波的輸出頻率小于10KHz,為保證10KHz頻帶內(nèi)輸出幅度平坦,又要盡可能抑制諧波和高頻噪聲,綜合考慮取R1=1KΩ,R2=1KΩ,C1=100pF,C=100pF圖3-4有源低通濾波器設(shè)計(jì)3.3設(shè)計(jì)所用關(guān)鍵元器件的介紹3.3.1FLEX10K系列FPGA概述。FLEX10K是工業(yè)界第一個(gè)嵌入式的可編程邏輯器件,采用可重構(gòu)的CMOSSRAM工藝,把連續(xù)的快速通道互連與獨(dú)特的嵌入式陣列結(jié)構(gòu)相結(jié)合,同時(shí)也結(jié)合了眾多可編程器件的優(yōu)點(diǎn)來完成普通門陣列的宏功能。由于其具有高密度、低成本、低功率等特點(diǎn),所以脫穎而出成為當(dāng)今AlteraPLD中應(yīng)用最好的器件系列。其集成度已達(dá)到25萬門。它能讓設(shè)計(jì)人員輕松地開發(fā)出集存儲(chǔ)器、數(shù)字信號(hào)處理器及特殊邏輯包括32位多總線系統(tǒng)等強(qiáng)大功能于一身的芯片。到目前為止,已經(jīng)推出了FLEX10K、FLEX10KA、FLEX10KV、FLEX10KE等分支系列。FLEX10K結(jié)構(gòu)類似于嵌入式門陣列,是門陣列市場中成長最快的器件。像標(biāo)準(zhǔn)門陣列一樣,嵌入式門陣列采用一般的門海(seaofgates)結(jié)構(gòu)實(shí)現(xiàn)普通邏輯,因此,在實(shí)現(xiàn)大的特殊邏輯時(shí)會(huì)有潛在死區(qū)。與標(biāo)準(zhǔn)門陣列相比,嵌入式門陣列通過在硅片中嵌入邏輯塊的方法來減少死區(qū),提高速度。然而,典型的嵌入式宏功能模塊通常是不能改變的,這就限制了設(shè)計(jì)人員的選擇。相反,F(xiàn)LEX10K器件是可編程的,在調(diào)試時(shí)它允許設(shè)計(jì)人員全面控制嵌入式宏功能模塊和一般的邏輯,可以方便地反復(fù)修改設(shè)計(jì)。 每個(gè)FLEX10K器件包含一個(gè)嵌入式陣列和一個(gè)邏輯陣列。嵌入式陣列用來實(shí)現(xiàn)各種存儲(chǔ)器及復(fù)雜的邏輯功能,如數(shù)字信號(hào)處理、微控制器、數(shù)據(jù)傳輸?shù)?。邏輯陣列用來?shí)現(xiàn)普通邏輯功能,如計(jì)數(shù)器、加法器、狀態(tài)機(jī)、多路選擇器等。嵌入式陣列和邏輯陣列結(jié)合而成的嵌入式門陣列的高性能和高密度特性,使得設(shè)計(jì)人員可在單個(gè)器件中實(shí)現(xiàn)一個(gè)完整的系統(tǒng)。 FLEX10K器件的配置通常是在系統(tǒng)上電時(shí),通過存儲(chǔ)于一個(gè)串行PROM中的配置數(shù)據(jù)或者由系統(tǒng)控制器提供的配置數(shù)據(jù)來完成。Altera提供EPC1、EPC2、EPC16和EPC1441等配置用的PROM器件,配置數(shù)據(jù)也能從系統(tǒng)RAM和BitBlaster串行下載電纜或ByteBlasterMV并行下載電纜獲得。對于配置過的器件,可以通過重新復(fù)位器件、加載新數(shù)據(jù)的方法實(shí)現(xiàn)在線可配置(ICR,In-CircuitReconfigurability)。由于重新配置要求少于320ms,因此可在系統(tǒng)工作時(shí)實(shí)時(shí)改變配置。FLEX10K器件由MAX+PLUSII開發(fā)軟件支持。(2)FLEX10K器件系列的特點(diǎn)。①FLEX10K是工業(yè)界第一種嵌入式的PLD器件系列,具有實(shí)現(xiàn)宏功能的嵌入式陣列(例如實(shí)現(xiàn)高效存儲(chǔ)器和特殊的邏輯功能)和實(shí)現(xiàn)普通功能的邏輯陣列,可提供可編程單芯片系統(tǒng)(SOPC)集成。②高密度:1萬~25萬個(gè)可用門。高達(dá)40960位內(nèi)部RAM(每個(gè)EAB有2048位),所有這些都可在不減少邏輯能力的情況下使用。③系統(tǒng)級(jí)特點(diǎn):支持多電壓接口;在FLEX10KA器件中允許輸入的引腳電壓為5.0V,在FLEX10KB器件中允許輸入的引腳電壓為3.3V和5.0V;低功耗(維持狀態(tài)小于0.5mA);遵守PCI總線規(guī)定;內(nèi)帶JTAG邊界掃描測試電路;邊界掃描測試電路;器件采用先進(jìn)的工藝制造并可在2.5V、3.3V、5.0V電源電壓下工作。所有器件都100%經(jīng)過功能測試。④靈活的內(nèi)部連接:快速、可預(yù)測連線延時(shí)的快速通道(FastTrack)連續(xù)式布線結(jié)構(gòu);實(shí)現(xiàn)快速加法器、計(jì)數(shù)器和比較器的專用進(jìn)位鏈;實(shí)現(xiàn)高速、多輸入邏輯函數(shù)的專用級(jí)聯(lián)鏈;實(shí)現(xiàn)內(nèi)部三態(tài)總線的三態(tài)模擬;多達(dá)六個(gè)全局時(shí)鐘信號(hào)和四個(gè)全局清除信號(hào)。⑤強(qiáng)大的I/O引腳功能:每個(gè)引腳都有一個(gè)獨(dú)立的三態(tài)輸出使能控制及漏極開路配置選項(xiàng)(Open-drainoption);可編程輸出電壓的擺率控制,可有減少開關(guān)噪聲。FLEX10KA、FLEX10KE、FLEX10KS器件支持熱拔插。⑥多種封裝方式:用戶可任意選擇84~600引腳的各種封裝。封裝形式有PLCC、TQFP、PQFP、RQFP、PGA、BGA等,同一種封裝中的各種FLEX10K系列器件的引腳相兼容。 FLEX10K還包括了一個(gè)優(yōu)化界面,允許微處理器以串行方式或并行方式、同步方式或異步方式對FLEX10K器件進(jìn)行配置。 FLEX10K的這些特點(diǎn)使得FLEX10K器件成為替代傳統(tǒng)門陣列專用的理想選擇,其使用非常廣泛;又由于FLEX10K系列的芯片都帶有JTAG口(JointTestActionGroup—聯(lián)合測試行動(dòng)組),能夠使用JTAGPROGRAM指令進(jìn)行配置;為了盡量簡化電路,所以本設(shè)計(jì)采用FLEX10K系列產(chǎn)品中的FLEX10K器件,該型號(hào)芯片采用PLCC封裝,有84個(gè)管腳,其中I/O引腳個(gè)數(shù)為59。FLEX10K的主要引腳和引腳名稱的對應(yīng)關(guān)系如(表3-1)所示。表3-1FLEX10K10的主要引腳和引腳名稱引腳名稱輸出引腳引腳名稱輸出引腳MSEL0(2)31MSEL1(2)32nSTATUS(2)55nCONFIG(2)34DCLK(2)13CONF-DONE(2)76INIT-DONE(3)69nCE(2)14nCEO(2)75nWS(4)80nRS(4)81nCS(4)78CS(4)79RDYnBSY(4)70CLKUSR(4)73DATA7(4)5DATA6(4)6DATA5(4)7DATA4(4)8DATA3(4)9DATA2(4)10DATA1(4)11DATA0(2),(5)12TDI(2)15TDO(2)74TCK(2)77TMS(2)57TRST(2)56DedicatedInput2,42,44,84DedicatedClockPins1,43DEVB-CLRn(3)3DEV-OE(3)83VCCINT4,20,33,40,45,63GNDINT26,41,46,68,82TotalUserI/OPins59注: ⑴沒有列出所有的用戶I/O引腳。 ⑵該引腳為專用引腳,不能用作用戶I/O引腳。 ⑶該引腳如果沒有用于器件配置功能,則它可用作用戶I/O引腳。 ⑷該引腳在器件配置后可用作用戶I/O引腳。 ⑸該引腳在用戶模式中是三態(tài)。 ⑹用戶I/O引腳數(shù)包括專用輸入引腳、專用時(shí)鐘引腳和所有I/O引腳。(3)FPGA結(jié)構(gòu)與原理①查找表(Look-Up-Table)的原理與結(jié)構(gòu)采用這種結(jié)構(gòu)的PLD芯片我們也可以稱之為FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。查找表(Look-Up-Table)簡稱為LUT,LUT本質(zhì)上就是一個(gè)RAM。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM。當(dāng)用戶通過原理圖或HDL語言描述了一個(gè)邏輯電路以后,PLD/FPGA開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。(表3-2)是一個(gè)4輸入與門的例子,表3-2實(shí)際邏輯電路LUT的實(shí)現(xiàn)方式a,b,c,d輸入邏輯輸出地址RAM中存儲(chǔ)的內(nèi)容00000000000001000010....0...01111111111②基于查找表(LUT)的FPGA的結(jié)構(gòu)
我們看一看xilinxSpartan-II的內(nèi)部結(jié)構(gòu),如下圖:圖3-5xilinxSpartan-II的內(nèi)部結(jié)構(gòu)Spartan-II主要包括CLBs,I/O塊,RAM塊和可編程連線(未表示出)。在spartan-II中,一個(gè)CLB包括2個(gè)Slices,每個(gè)slices包括兩個(gè)LUT,兩個(gè)觸發(fā)器和相關(guān)邏輯。Slices可以看成是SpartanII實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu)(xilinx其他系列,如SpartanXL,Virtex的結(jié)構(gòu)與此稍有不同,具體請參閱數(shù)據(jù)手冊)altera的FLEX/ACEX等芯片的結(jié)構(gòu)如下圖:圖3-6alteraFLEX/ACEX芯片的內(nèi)部結(jié)構(gòu)圖3-7邏輯單元(LE)內(nèi)部結(jié)構(gòu)FLEX/ACEX的結(jié)構(gòu)主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個(gè)LAB包括8個(gè)邏輯單元(LE),每個(gè)LE包括一個(gè)LUT,一個(gè)觸發(fā)器和相關(guān)的相關(guān)邏輯。LE是FLEX/ACEX芯片實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu)(altera其他系列,如APEX的結(jié)構(gòu)與此基本相同,具體請參閱數(shù)據(jù)手冊)③查找表結(jié)構(gòu)的FPGA邏輯實(shí)現(xiàn)原理我們還是以這個(gè)電路的為例:圖3-8A,B,C,D由FPGA芯片的管腳輸入后進(jìn)入可編程連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實(shí)現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來實(shí)現(xiàn)。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時(shí)鐘專用通道,直接連接到觸發(fā)器的時(shí)鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖3所示電路的功能。(以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù))這個(gè)電路是一個(gè)很簡單的例子,只需要一個(gè)LUT加上一個(gè)觸發(fā)器就可以完成。對于一個(gè)LUT無法完成的的電路,就需要通過進(jìn)位邏輯將多個(gè)單元相連,這樣FPGA就可以實(shí)現(xiàn)復(fù)雜的邏輯。由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會(huì)丟失,一定需要外加一片專用配置芯片,在上電的時(shí)候,由這個(gè)專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時(shí)間很短,不會(huì)影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對這種FPGA,就不需要外加專用的配置芯片。④其他類型的FPGA和PLD
隨著技術(shù)的發(fā)展,在2004年以后,一些廠家推出了一些新的PLD和FPGA,這些產(chǎn)品模糊了PLD和FPGA的區(qū)別。例如Altera最新的MAXII系列PLD,這是一種基于FPGA(LUT)結(jié)構(gòu),集成配置芯片的PLD,在本質(zhì)上它就是一種在內(nèi)部集成了配置芯片的FPGA,但由于配置時(shí)間極短,上電就可以工作,所以對用戶來說,感覺不到配置過程,可以傳統(tǒng)的PLD一樣使用,加上容量和傳統(tǒng)PLD類似,所以altera把它歸作PLD。還有像Lattice的XP系列FPGA,也是使用了同樣的原理,將外部配置芯片集成到內(nèi)部,在使用方法上和PLD類似,但是因?yàn)槿萘看?,性能和傳統(tǒng)FPGA相同,也是LUT架構(gòu),所以Lattice仍把它歸為FPGA。⑤選擇PLD還是FPGA?根據(jù)上一篇PLD的結(jié)構(gòu)和原理可以知道,PLD分解組合邏輯的功能很強(qiáng),一個(gè)宏單元就可以分解十幾個(gè)甚至20-30多個(gè)組合邏輯輸入。而FPGA的一個(gè)LUT只能處理4輸入的組合邏輯,因此,PLD適合用于設(shè)計(jì)譯碼等復(fù)雜組合邏輯。但FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是幾千上萬,PLD一般只能做到512個(gè)邏輯單元,而且如果用芯片價(jià)格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本大大低于PLD。所以如果設(shè)計(jì)中使用到大量觸發(fā)器,例如設(shè)計(jì)一個(gè)復(fù)雜的時(shí)序邏輯,那么使用FPGA就是一個(gè)很好選擇。同時(shí)PLD擁有上電即可工作的特性,而大部分FPGA需要一個(gè)加載過程,所以,如果系統(tǒng)要可編程邏輯器件上電就要工作,那么就應(yīng)該選擇PLD3.3.2AT89S51芯片介紹(1)AT89S51簡介AT89S51是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。
AT89S51具有如下特點(diǎn):40個(gè)引腳,4kBytesFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式。空閑模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。圖3-9AT89S51引腳圖主要功能特性:兼容MCS-51指令系統(tǒng)32個(gè)雙向I/O口2個(gè)16位可編程定時(shí)/計(jì)數(shù)器全雙工UART串行中斷口線2個(gè)外部中斷源中斷喚醒省電模式看門狗(WDT)電路靈活的ISP字節(jié)和分頁編程4k可反復(fù)擦寫(>1000次)ISPFlashROM4.5-5.5V工作電壓時(shí)鐘頻率0-33MHz128x8bit內(nèi)部RAM低功耗空閑和省電模式3級(jí)加密位軟件設(shè)置空閑和省電功能雙數(shù)據(jù)寄存器指針(2)管腳說明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:
口管腳備選功能
P3.0RXD(串行輸入口)
P3.1TXD(串行輸出口)
P3.2/INT0(外部中斷0)
P3.3/INT1(外部中斷1)
P3.4T0(記時(shí)器0外部輸入)
P3.5T1(記時(shí)器1外部輸入)
P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)
P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。
ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。
/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。
/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。(3)振蕩器特性
XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。(4)芯片擦除
整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。
此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。3.3.3DAC0832芯片介紹(1)芯片簡介。DAC0832是NSC公司(美國國家半導(dǎo)體公司)生產(chǎn)的8位DAC芯片,可直接與多種CPU總線連接而不必增加任何附加邏輯。DAC0830、DAC0831與它兼容,可以完全相互代換。DAC0832由兩級(jí)數(shù)據(jù)緩沖器和D/A轉(zhuǎn)換器組成,第一級(jí)數(shù)據(jù)緩沖器稱為輸入寄存器,第二級(jí)稱為DAC寄存器,如(圖3-10)所示。圖3-10DAC0832內(nèi)部結(jié)構(gòu)DAC0832各引腳的定義如下:◆D7~D0——8位數(shù)據(jù)輸入端?!鬒LE——允許輸入鎖存(輸入),高電平有效。◆——片選(輸入),低電平有效?!簟獙懶盘?hào)1(輸入),低電平有效。ILE、、為輸入寄存器的選通信號(hào),當(dāng)ILE、、全部有效,LE1為高電平時(shí),選通輸入寄存器,數(shù)據(jù)總線D7~D0上的輸入數(shù)據(jù)進(jìn)入輸入寄存器;當(dāng)ILE、、不同時(shí)有效,LE1為低電平時(shí),輸入寄存器中原有數(shù)據(jù)被鎖存?!簟獋魉涂刂菩盘?hào)(輸入),低電平有效。◆——寫信號(hào)2(輸入),輸入低電平有效。、為DAC寄存器的選通信號(hào),當(dāng)、同時(shí)有效時(shí),LE2為高電平,選通DAC寄存器,輸入寄存器中鎖存的數(shù)據(jù)進(jìn)入DAC寄存器;、不同時(shí)有效時(shí),LE2為低電平,DAC寄存器中原有數(shù)據(jù)被鎖存?!簟M電流輸出端1,它是邏輯電平為1的各位輸出電流之和?!簟M電流輸出端2,它是邏輯電平為0的各位輸出電流之和。+=常數(shù)?!簟鶞?zhǔn)電壓輸入,+10V~-10V,此電壓越穩(wěn)定模擬輸出精度越高?!簟答侂娮枰龆?,DAC0832內(nèi)部此端與端之間已集成一反饋內(nèi)阻,其值為15KΩ,所以可以直接接到外部運(yùn)算放大器的輸出端。◆——電源電壓,+5V~+15V?!鬉GND——模擬地,芯片模擬信號(hào)接地點(diǎn)。◆DGND——數(shù)字地,芯片數(shù)字信號(hào)接地點(diǎn)。必須注意的是:在使用DAC芯片和ADC芯片的電路中,必須正確處理地線和連接問題。電路中有兩種芯片:一種是模擬電路芯片,如DAC、ADC、運(yùn)算放大器等;另一種是數(shù)字電路芯片,如CPU、譯碼器、寄存器等。這兩種芯片應(yīng)由兩個(gè)獨(dú)立的電源分別供電。模擬地線和數(shù)字地線應(yīng)該分開、模擬地和數(shù)字地應(yīng)分別連接到系統(tǒng)的模擬地線和數(shù)字地線。在整個(gè)系統(tǒng)中僅有一個(gè)共地點(diǎn),避免造成回路,防止數(shù)字信號(hào)通過數(shù)字地線干擾微弱的模擬信號(hào)。(2)DAC0832的工作方式。DAC0832有兩級(jí)鎖存器,因此有3種工作方式:雙緩沖工作方式、單緩沖工作方式和直通工作方式。雙緩沖工作方式,就是把DAC0832的輸入寄存器和DAC寄存器都接成受控方式。CPU對DAC芯片的寫操作分兩步進(jìn)行:第一步把數(shù)據(jù)寫進(jìn)輸入寄存器,第二步把輸入寄存器的內(nèi)容寫入DAC寄存器。雙緩沖工作方式的優(yōu)點(diǎn)是DAC0832的數(shù)據(jù)接收和啟動(dòng)轉(zhuǎn)換異步進(jìn)行。于是,可在D/A轉(zhuǎn)換的同時(shí)進(jìn)行下一數(shù)據(jù)的接收,可實(shí)現(xiàn)多個(gè)轉(zhuǎn)換器的同時(shí)輸出。單緩沖工作方式,就是使兩個(gè)寄存器中一個(gè)處于直通狀態(tài),而另一個(gè)處于受控狀態(tài)。這種方式可以減少一條輸出指令,在不要求多個(gè)DAC同時(shí)進(jìn)行D/A轉(zhuǎn)換時(shí)普遍采用此種方式。當(dāng)、、和引腳全部接數(shù)字地,ILE引腳為高電平時(shí),芯片就處于直通工作狀態(tài)。8位數(shù)字量一旦達(dá)到D7~D0輸入端,便立即進(jìn)行D/A轉(zhuǎn)換。此種方式下,DAC0832不能直接和CPU的數(shù)據(jù)總線相連,故很少采用。由于本設(shè)計(jì)要求數(shù)據(jù)一到立即轉(zhuǎn)換,因此,采用了此種工作方式。(3)DAC0832的輸出方式。DAC0832為電流輸出型D/A轉(zhuǎn)換器,需要外接運(yùn)算放大器進(jìn)行電流電壓變換才能得到模擬電壓輸出。輸出方式有兩種:單極性輸出和雙極性輸出。單極性電壓輸出方式輸出的電壓極性是單一的,而雙極性輸出方式輸出的電壓極性是可變的,即有正有負(fù)。單極性輸出時(shí),在運(yùn)算放大器的輸出端就可以得到單極性模擬電壓:(3-7)若參考電壓為+5V,則當(dāng)數(shù)字量從00H~FFH變化時(shí),對應(yīng)的模擬電壓輸出范圍是0V~-5V。雙極性電壓輸出方式需要兩級(jí)運(yùn)算放大器級(jí)聯(lián)輸出電壓,輸出電壓與及第一級(jí)運(yùn)算放大器輸出的關(guān)系是:=—(2+)(3-8)這時(shí),當(dāng)數(shù)字量從00H~FFH變化時(shí),對應(yīng)的模擬電壓輸出范圍是—5V~+5V,顯然,其分辨率較單極性輸出降低一倍。根據(jù)設(shè)計(jì)目標(biāo)需要,本設(shè)計(jì)采用單極性電壓輸出方式。3.3.4其他的主要芯片兩片DAC0832的電流-電壓轉(zhuǎn)換都采用了低溫漂電壓的運(yùn)算放大器op07,OP07是一種高精度單片運(yùn)算放大器,具有很低的輸入失調(diào)電壓和漂移。OP07的優(yōu)良特性使它特別適合作前級(jí)放大器,放大微弱信號(hào)。使用OP07一般不用考慮調(diào)零和頻率問題就能滿足要求。主要特點(diǎn):◆
低輸入失調(diào)電壓:75uV(最大)◆
低失調(diào)電壓溫漂:1.3uV/℃(最大)◆
低失調(diào)電壓時(shí)漂:1.5uV/月(最大)◆
低噪聲:0.6uVP-P(最大)◆
寬輸入電壓范圍:±14V◆
寬電源電壓范圍:3V~18V4FPGA部分VHDL仿真及說明FPGA部分電路是整個(gè)電路設(shè)計(jì)系統(tǒng)中最主要的部分,所以其能否正常工作對整個(gè)系統(tǒng)的工作起關(guān)鍵作用。FPGA部分仿真主要是觀察波形數(shù)據(jù)的值的輸出是否正確和值輸出的頻率是否和預(yù)置的頻率控制字相對應(yīng),在MAX+plusII的仿真文件.scf里對FPGA部分的電路進(jìn)行了驗(yàn)證。由于外部有源晶振的頻率為4.096MHz,故將.scf的option里的Gridsize設(shè)置為244.1ns,即周期差不多是4.096MHz。運(yùn)行仿真,得到的結(jié)果跟理論的結(jié)果幾乎一樣,因此,可以確定整個(gè)FPGA部分電路可以正常運(yùn)行。仿真部分波形如(圖4-1)所示。圖4-1DDS部分電路的仿真結(jié)果從圖8的波形仿真結(jié)果中很難直觀地看出DDS輸出正弦波的情況。為了便于調(diào)試設(shè)計(jì)電路,我們可以利用計(jì)算機(jī)高級(jí)語言將MAX+plusII波形仿真結(jié)果轉(zhuǎn)換為波形曲線,這就需要借助于MAX+plusII的表格文件(.tbl文件)。MAX+plusII的設(shè)計(jì)軟件中的.tbl文件是純文本文件,它包含了.scf文件或.wdf文件中的所有信息。.tbl文件的生成很簡單,在MAX+plusII波形仿真結(jié)束后,打開.scf文件,然后從“File”菜單中選擇“CreateTableFile”選項(xiàng),就可產(chǎn)生.tbl文件。.tbl文件的基本結(jié)構(gòu)可分為四大部分,其中第三部分和第四部分是最關(guān)鍵的,可從中獲取仿真波形數(shù)據(jù),并利用計(jì)算機(jī)高級(jí)語言處理這些數(shù)據(jù),將其轉(zhuǎn)換為直觀的波形曲線。需要注意的是,每做一次MAX+plusII波形仿真,都要重新生成一次.tbl文件,以更新.tbl文件內(nèi)的數(shù)據(jù)。經(jīng)過MaxplusII的綜合與仿真,結(jié)果表明,能夠?qū)崿F(xiàn)多波形發(fā)生器的各個(gè)波形功能及不同精度要求。波形仿真后,在軟件中觀察.scf文件可以得到輸出波形的數(shù)字幅度序列數(shù)據(jù)。為了直觀的觀察到輸出波形,仍然借助Matlab工具,將仿真結(jié)果轉(zhuǎn)換為波形曲線。在MaxplusIl中將仿真結(jié)果生成表格文件(.tbl文件)。在Matlab工具中,通過編寫的一段m文件程序,讀取表格文件中的相應(yīng)數(shù)據(jù)信息,繪出電路的仿真波形曲線。以下給出具體的m文件(假設(shè)tbl文件的位置在d:\dmax2work\下):clearall;fid=fopen('d:\max2work\example.tbl','r');data=fscanf(fid,‘%s');fclose(fid);b=find(data==‘=’);number:=length(b);j=0;fori=1:numberifdata(b(i)-1)==’0'j=j+1;out_hex(j,l)=data(b(i)+1);out_hex(j,2)=data(b(i)+2);out_hex(j,3)=data(b(i)+3);endendout_dec=hex2dec(out_hex);plot(out_hec);(圖4-2)是用這一程序繪出的電路仿真波形曲線(仍以輸出正弦波為例)。圖4-2仿真波形5工程設(shè)計(jì)EDA是電子設(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation)的縮寫,是90年代初,從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM(計(jì)算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而來的。本設(shè)計(jì)主要使用了兩個(gè)EDA工具,MAX+plusII和Protel99SE,以下就分別對這兩個(gè)工具在本設(shè)計(jì)中的應(yīng)用進(jìn)行簡單的說明。5.1MAX+plusII的使用以及VHDL程序的編寫FPGA部分電路的VHDL程序主要是依靠MAX+plusII來處理。VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,誕生與1982年。1987年底,VHDL被IEEE(TheInstituteofElectricalandElectronicsEngineers)和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本(IEEE-1076)以后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語言。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本?,F(xiàn)在,VHDL和Verilog語言將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法十分類似于一般的計(jì)算機(jī)高級(jí)語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件、一個(gè)電路模體的內(nèi)部功能和算法完成部分。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其它的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體部分分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的,具體如下:5.1.1VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)(1)與其它的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。就目前流行的EDA工具和VHDL綜合器而言,將基于抽象的行為描述風(fēng)格的VHDL程序綜合成為具體的FPGA和CPLD等目標(biāo)器件的網(wǎng)表文件已不成問題,只是在綜合與優(yōu)化效率上略有差異。(2)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期(即尚未完成),就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對設(shè)計(jì)進(jìn)行仿真模擬。即在遠(yuǎn)離門級(jí)的高層次上進(jìn)行模擬,使設(shè)計(jì)者對整個(gè)工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性作出決策。(3)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效、高速的完成必須由多人甚至多個(gè)開發(fā)組共同并行工作才能實(shí)現(xiàn)。VHDL中設(shè)計(jì)實(shí)體的概念、程序包的概念、設(shè)計(jì)庫的概念為設(shè)計(jì)的分解和并行工作提供了有力的支持。(4)對于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)地把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表(根據(jù)不同的實(shí)現(xiàn)芯片)。這種方式突破了門級(jí)設(shè)計(jì)的瓶頸,極大地減少了電路設(shè)計(jì)的時(shí)間和可能發(fā)生的錯(cuò)誤,降低了開發(fā)成本。應(yīng)用EDA工具的邏輯優(yōu)化功能,可以自動(dòng)地把一個(gè)綜合后的設(shè)計(jì)變成一個(gè)更小、更高速的電路系統(tǒng)。反過來,設(shè)計(jì)者還可以容易地從綜合和優(yōu)化后的電路獲得設(shè)計(jì)信息,反回去更新修改VHDL設(shè)計(jì)描述,使之更為完善。(5)VHDL對設(shè)計(jì)的描述具有相對獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。正因?yàn)閂HDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān),VHDL設(shè)計(jì)程序的硬件實(shí)現(xiàn)目標(biāo)器件有廣闊的選擇范圍,其中包括各系列的CPLD、FPGA及各種門陣列器件。(6)由于VHDL具有類屬描述語句和子程序調(diào)用等功能,對于已完成的設(shè)計(jì),在不改變源程序的條件下,只需改變類屬參量或函數(shù),就能輕易地改變設(shè)計(jì)的規(guī)模和結(jié)構(gòu)。MAX+plusII界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。MAX+plusII支持原理圖、AHDL、VHDL和Verilog語言文本文件、以及波形與EDIF等格式的文件作為設(shè)計(jì)輸出,并支持這些文件的任意混合設(shè)計(jì)。MAX+plusII具有門級(jí)仿真器,可以進(jìn)行功能仿真和時(shí)序仿真,能夠產(chǎn)生精確的仿真結(jié)果。在適配之后,MAX+plusII生成供時(shí)序仿真用的EDIF、VHDL和Verilog三種不同格式的網(wǎng)表文件。5.1.2MAX+plusII的過程MAX+plusII支持主流的第三方EDA工具,如Synopsys、Cadence、Synplicity、Mentor、Viewlogic、Exemplar和ModelTechnology等。MAX+plusII支持除APEX20K系列之外的所有AlteraFPGA/CPLD大規(guī)模邏輯器件。本設(shè)計(jì)使用Altera公司的EDA軟件MAX+plusII的過程大概如下所述。本設(shè)計(jì)分二個(gè)模塊,即freqdiv80.vhd和TOP.GDF。其中freqdiv80.vhd是用VHDL編寫的,TOP.GDF則是原理圖,是本例以原理圖方式表示的頂層設(shè)計(jì)文件。圖中將是用freqdiv80.vhd作為元件進(jìn)行調(diào)用。freqdiv160.vhd是一個(gè)80分頻器;頂層文件TOP.GDF則將freqdiv80.vhd、MAX+plusII自帶的LPM_ADD_SUB、LPM_DFF以及LPM_ROM模塊組裝起來構(gòu)成一完整的設(shè)計(jì)實(shí)體。首先為工程建立一目錄,然后進(jìn)入MAX+plusII集成環(huán)境。(1)創(chuàng)建源程序freqdiv80.vhd選擇菜單“File”→“New…”,出現(xiàn)一個(gè)對話框,在框中選中“TextEditorfile”,按“OK”按鈕,即選中了文本編輯方式。在出現(xiàn)的“Untitled-TextEditor”文本編輯窗口中輸入程序。輸入完畢后,選擇菜單“File→Save”,即出現(xiàn)如圖12所示的對話框。首先在“Directories”目錄中選擇存放本文件的目錄,然后在“FileName”框中輸入文件名freqdiv80.vhd,然后按“OK”按鈕,即把輸入的文件放在“Directories”目錄中了。文件的后綴名將決定使用的語言形式,在MAX+plusII中,后綴為.VHD表示VHDL文件;后綴為.TDF表示AHDL文件;后綴為.V表示Verilog文件。文件存盤后,為了能在圖形編輯器中調(diào)用freqdiv160,需要為freqdiv160創(chuàng)建一個(gè)元件圖形符號(hào)。選擇菜單“File”→“CreatDefaultSymbol”,MAX+plusII出現(xiàn)一個(gè)對話框,詢問是否將當(dāng)前工程設(shè)為freqdiv80,可按下“確定”按鈕。這時(shí)MAX+plusII調(diào)出編譯器對freqdiv80.vhd進(jìn)行編譯,編譯后生成freqdiv80的圖形符號(hào)。如果源程序有錯(cuò),要對源程序進(jìn)行修改,重復(fù)上面的步驟,知道此元件符號(hào)創(chuàng)建成功。成功后出現(xiàn)元件符號(hào)創(chuàng)建成功的對話框。退出編譯器,再退出編譯器,回到主窗口。(2)創(chuàng)建源文件TOP.GDFTOP.GDF是本項(xiàng)示例的最頂層的圖形設(shè)計(jì)文件,調(diào)用了前面創(chuàng)建的功能文件,將Freqdiv80.vhd、LPM_ADD_SUB、LPM_DFF以及LPM_ROM幾個(gè)模塊組裝起來,成為一個(gè)完整的設(shè)計(jì)。選擇菜單File→New,在對話框中選擇“GraphicEditorFile”,按“OK”按鈕,即出現(xiàn)圖形編輯器窗口GraphicEditor?,F(xiàn)按照以下給出的方法在“GraphicEditor”中繪出原理圖。①往圖中添加元件將freqdiv80.vhd、LPM_ADD_SUB、LPM_DFF以及LPM_ROM調(diào)入原理圖編輯器。排好它們的位置。并設(shè)置好LPM_ADD_SUB、LPM_DFF以及LPM_ROM這幾個(gè)模塊的參數(shù)。輸入輸出接口符號(hào)名為“INPUT”和“OUTPUT”。②在符號(hào)之間進(jìn)行連線先放好輸入/輸出元件符號(hào),再將鼠標(biāo)箭頭移到符號(hào)的輸入/輸出引腳上,鼠標(biāo)箭頭形狀會(huì)變成“+”字型,然后可以按著鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo),繪出一條線,送開鼠標(biāo)鍵完成一次操作。細(xì)線表示單根線,粗線表示總線,它的根數(shù)可從元件符號(hào)的標(biāo)示上看得出。③設(shè)置輸入/輸出引腳名在INPUT或OUTPUT符號(hào)的引腳上雙擊鼠標(biāo)左鍵,可以在端口上輸入新的引腳名。TOP.GDF中有兩個(gè)輸入引腳“CLK”和“FREQ[7..0]”及8位總線輸出引腳“Q[7..0]”,分別輸入端口符號(hào)。FREQ[7..0]在VHDL中是一個(gè)數(shù)組,表示由信號(hào)FREQ7~FREQ0組成的總線信號(hào)。實(shí)際上這里有8個(gè)輸入引腳。Q[7..0]也是同樣的道理。最后選擇File→Save菜單,將此頂層原理圖文件取名為TOP.GDF,并寫入“FileName”中,存入同一目錄中。④編譯TOP.GDF在編譯TOP.GDF之前,需要設(shè)置此文件為頂層文件(最上層文件),或稱工程文件:Project。選擇菜單File→Project→SetProjecttoCurrentFile,當(dāng)前的工程即被設(shè)為TOP。然后選擇用于編程的目標(biāo)芯片和確定引腳。全部設(shè)定結(jié)束后,按“OK”鍵。最后開始編譯和綜合。選擇“MAX+plusII”→“Compiler”菜單,可運(yùn)行編譯器。最后在Compiler窗口中按下“Start”按鈕,啟動(dòng)編譯過程,直到編譯結(jié)束。如果源程序有錯(cuò)誤,用鼠標(biāo)雙擊紅色的錯(cuò)誤信息即可返回圖形或文本編輯器進(jìn)行修改,然后再次編譯,直到通過。⑤仿真頂層設(shè)計(jì)TOPMAX+plusII支持功能仿真和時(shí)序仿真兩種仿真形式。功能仿真用于大型設(shè)計(jì)編譯適配之前的仿真,而時(shí)序仿真則是在編譯適配生成時(shí)序信息文件之后進(jìn)行的仿真。仿真首先要建立波形文件。將所有的信號(hào)全部選中到波形編輯器中。設(shè)置好各信號(hào)后,按下“Simulator”子窗口中的“Start”按鈕,即刻進(jìn)行仿真運(yùn)算。波形觀察窗左排按鈕是用于設(shè)置輸入信號(hào)的,十分方便。使用時(shí)先用鼠標(biāo)在輸入波形上拖一需要改變的黑色區(qū)域,然后點(diǎn)左排按鈕,其中“0”、“1”、“X”、“Z”、“INV”、“G”分別表示低電平、高電平、任意、高阻態(tài)、反相和總線數(shù)據(jù)設(shè)置。⑥將設(shè)計(jì)文件TOP編程下載到芯片中去選擇“MAX+plusII”→“Programmer”菜單,可調(diào)出編程器(Programmer)窗口。在將設(shè)計(jì)文件編程配置進(jìn)硬件芯片前,需連接好硬件測試系統(tǒng)。本設(shè)計(jì)使用FLEX10K系列的10K10器件,一切連接就緒后,方可按下編程器窗口中的“Configure”按鈕,若一切無誤,即可將所設(shè)計(jì)的內(nèi)容下載到10K10芯片中。下載成功后將在一彈出的小窗中顯示“ConfigureComplete”。如果在安裝MAX+plusII軟件之后第一次調(diào)用編程器子窗口,則MAX+plusII將彈出對話框選擇編程器型號(hào),以便調(diào)用正確的編程器驅(qū)動(dòng)程序。如果用FLEX或ISP型MAX系列器件,通常選擇“ByteBlaster”編程器?!癇yteBlaster”實(shí)際上是指連接在并行打印口使用的下載電纜。編程器型號(hào)的選擇方法是啟動(dòng)“Programmer”,選菜單“Options”→“HardwareSetup”,在HardwareType下拉欄中選ByteBlaster,按“OK”即可。5.2Protel99SE的使用在進(jìn)行電路板及PCB設(shè)計(jì)時(shí),采用的是Protel99SE軟件。這是一個(gè)目前被普遍使用的軟件,在介紹具體的電路板及PCB設(shè)計(jì)前,有必要對這個(gè)軟件進(jìn)行一定的簡介。電路及PCB設(shè)計(jì)是EDA技術(shù)中的一個(gè)重要內(nèi)容,而EDA技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù),它提供了基于計(jì)算機(jī)和信息技術(shù)的電路系統(tǒng)設(shè)計(jì)方法。Protel是其中比較杰出的一個(gè)軟件,在國內(nèi)流行最早、應(yīng)用面最寬。其最新版的Protel99SE較以前的Protel功能更為強(qiáng)大,它是桌面環(huán)境下以設(shè)計(jì)管理和協(xié)作技術(shù)(PDM)為核心的一個(gè)優(yōu)秀的印刷電路板設(shè)計(jì)系統(tǒng)。它在先前的Protel的基礎(chǔ)上新增加了3項(xiàng)技術(shù),它們分別是SmarTDoc、SmartTeam和SmartTool,這些功能增加了人與工具之間的交互功能。Protel99SE軟件包主要包含以下幾個(gè)模塊:原理圖設(shè)計(jì)軟件ProtelAdvancedSchimatic99SE、電路板設(shè)計(jì)軟件ProtelAdvancedPCB99SE、用于PCB自動(dòng)布線的ProtelAdcancedRoute99SE、可編程邏輯器件設(shè)計(jì)的ProtelAdvancedPLD99SE、用于電路仿真的AdvancedSIM99和信號(hào)完整性分析的AdvancedIntegrity99,可謂是功能齊全。上面簡單介紹了Protel99SE的情況,下面就簡述設(shè)計(jì)方法過程。首先構(gòu)思電路模塊。在著手繪制具體的電路之前,將本設(shè)計(jì)的整個(gè)系統(tǒng)進(jìn)行了模塊化設(shè)計(jì)。將設(shè)計(jì)的整個(gè)系統(tǒng)分為二個(gè)模塊。它們分別是D/A、幅度控制以及濾波輸出這個(gè)主模塊和FPGA程序加載模塊。分別對這二個(gè)模塊繪制電路圖,最后通過長腳插針,將FPGA程序加載模塊插在主模塊上。接下來就是設(shè)計(jì)電路原理圖。在這部分是利用Protel99SE的原理圖設(shè)計(jì)系統(tǒng)繪制我所需要的電路原理圖。在這一過程中,要充分利用各種原理圖繪制工具和編輯功能。在完成原理圖設(shè)計(jì)后,利用Tools中的ERC命令,檢查繪制原理圖時(shí)是否出現(xiàn)一些簡單的基本錯(cuò)誤,如連線錯(cuò)誤、標(biāo)號(hào)錯(cuò)誤等。接下來產(chǎn)生SPICEnetlist。這是電路原理圖設(shè)計(jì)(Sch)與印制電路板設(shè)計(jì)(PCB)之間的一座橋梁,是電路板自動(dòng)布線的核心。設(shè)計(jì)印制板的過程是整個(gè)設(shè)計(jì)中的核心部分,如果印制板沒有設(shè)計(jì)好,將會(huì)影響整個(gè)后期的調(diào)試,甚至?xí)绊戨娐钒宓男Ч?。下面就簡單介紹設(shè)計(jì)印制電路板時(shí)可能會(huì)出現(xiàn)的一些問題以及解決方法。在將報(bào)表網(wǎng)絡(luò)調(diào)入時(shí),常常會(huì)出現(xiàn)一種情況:在原理圖中相連的兩個(gè)元件被調(diào)入后并沒有連在一起。解決的方法是在PCB圖中進(jìn)行手動(dòng)連接。在PCB的庫文件中,常常沒有適合實(shí)際中的一些電器件。比如四腳開關(guān)、撥碼開關(guān)等;還有些場合下,庫中已經(jīng)存在的元件,其引腳的排列順序不符合圖紙的要求,必須修改。解決這兩種情況的辦法都是利用Protel的編輯功能和修改功能。在布板時(shí),有手動(dòng)布板和自動(dòng)布板兩種方法。這兩種方法各有各的的優(yōu)點(diǎn),在時(shí)間允許的情況下推薦采用手動(dòng)布板。這里有幾個(gè)原因,一是自動(dòng)布板不利于進(jìn)行電路檢查;二是自動(dòng)布板比手動(dòng)布板復(fù)雜,它會(huì)出現(xiàn)一些重復(fù)和不合實(shí)際情況的布線。比如出現(xiàn)直角會(huì)對高頻電路產(chǎn)生影響,而折線對高頻電路的影響將會(huì)小的多;另外地線應(yīng)該較其它線條粗,可以防止干擾;信號(hào)線應(yīng)該短一些,這樣也可以防止信號(hào)之間的串?dāng)_,避免主要信號(hào)中串入太多干擾信號(hào)。最后在附錄里附上電路的PCB圖。6制作工藝PCB設(shè)計(jì)的一般原則要使電子電路獲得最佳性能,元器件的布且及導(dǎo)線的布設(shè)是很重要的。本設(shè)計(jì)由于頻率不高,因此對電路板的工藝以及布線的要求不高,但是需要注意的是,信號(hào)最好不要拉得太長,以免引入太多干擾信號(hào),影響波形的效果。為了設(shè)計(jì)質(zhì)量好、造價(jià)低的PCB。應(yīng)遵循以下一般原則:(1)布局首先,要考慮PCB尺寸大小。PCB尺寸過大時(shí),印制線條長,阻抗增加,抗噪聲能力下降,成本也增加;過小,則散熱不好,且鄰近線條易受干擾。在確定PCB尺寸后.再確定特殊元件的位置。最后,根據(jù)電路的功能單元,對電路的全部元器件進(jìn)行布局。在確定特殊元件的位置時(shí)要遵守以下原則:①盡可能縮短高頻元器件之間的連線,設(shè)法減少它們的分布參數(shù)和相互間的電磁干擾。易受干擾的元器件不能相互挨得太近,輸入和輸出元件應(yīng)盡量遠(yuǎn)離。②某些元器件或?qū)Ь€之間可能有較高的電位差,應(yīng)加大它們之間的距離,以免放電引出意外短路。帶高電壓的元器件應(yīng)盡量布置在調(diào)試時(shí)手不易觸及的地方。③重量超過15g的元器件、應(yīng)當(dāng)用支架加以固定,然后焊接。那些又大又重、發(fā)熱量多的元器件,不宜裝在印制板上,而應(yīng)裝在整機(jī)的機(jī)箱底板上,且應(yīng)考慮散熱問題。熱敏元件應(yīng)遠(yuǎn)離發(fā)熱元件。④對于電位器、可調(diào)電感線圈、可變電容器、微動(dòng)開關(guān)等可調(diào)元件的布局應(yīng)考慮整機(jī)的結(jié)構(gòu)要求。若是機(jī)內(nèi)調(diào)節(jié),應(yīng)放在印制板上方便于調(diào)節(jié)的地方;若是機(jī)外調(diào)節(jié),其位置要與調(diào)節(jié)旋鈕在機(jī)箱面板上的位置相適應(yīng)。⑤應(yīng)留出印制扳定位孔及固定支架所占用的位置。根據(jù)電路的功能單元.對電路的全部元器件進(jìn)行布局時(shí),要符合以下原則:①按照電路的流程安排各個(gè)功能電路單元的位置,使布局便于信號(hào)流通,并使信號(hào)盡可能保持一致的方向。②以每個(gè)功能電路的核心元件為中心,圍繞它來進(jìn)行布局。元器件應(yīng)均勻、整齊、緊湊地排列在PCB上.盡量減少和縮短各元器件之間的引線和連接。③在高頻下工作的電路,要考慮元器件之間的分布參數(shù)。一般電路應(yīng)盡可能使元器件平行排列。這樣,不但美觀.而且裝焊容易.易于批量生產(chǎn)。④位于電路板邊緣的元器件,離電路板邊緣一般不小于2mm。電路板的最佳形狀為矩形。長寬比為3:2成4:3。電路板面尺寸大于200x150mm時(shí).應(yīng)考慮電路板所受的機(jī)械強(qiáng)度。(2)布線布線的原則如下:①輸入輸出端用的導(dǎo)線應(yīng)盡量避免相鄰平行。最好加線間地線,以免發(fā)生反饋藕合。②印制攝導(dǎo)線的最小寬度主要由導(dǎo)線與絕緣基扳間的粘附強(qiáng)度和流過它們的電流值決定。當(dāng)銅箔厚度為0.05mm、寬度為1~15mm時(shí).通過2A的電流,溫度不會(huì)高于3℃,因此.導(dǎo)線寬度為1.5mm可滿足要求。對于集成電路,尤其是數(shù)字電路,通常選0.02~0.3mm導(dǎo)線寬度。當(dāng)然,只要允許,還是盡可能用寬線.尤其是電源線和地線。導(dǎo)線的最小間距主要由最壞情況下的線間絕緣電阻和擊穿電壓決定。對于集成電路,尤其是數(shù)字電路,只要工藝允許,可使間距小至5~8mm。③印制導(dǎo)線拐彎處一般取圓弧形,而直角或夾角在高頻電路中會(huì)影響電氣性能。此外,盡量避免使用大面積銅箔,否則.長時(shí)間受熱時(shí),易發(fā)生銅箔膨脹和脫落現(xiàn)象。必須用大面積銅箔時(shí),最好用柵格狀.這樣有利于排除銅箔與基板間粘合劑受熱產(chǎn)生的揮發(fā)性氣體。(3)焊盤焊盤中心孔要比器件引線直徑稍大一些。焊盤太大易形成虛焊。焊盤外徑D一般不小于(d+1.2)mm,其中d為引線孔徑。對高密度的數(shù)字電路,焊盤最小直徑可取(d+1.0)mm。此外,還應(yīng)注意以下兩點(diǎn):①在印制板中有接觸器、繼電器、按鈕等元件時(shí).操作它們時(shí)均會(huì)產(chǎn)生較大火花放電,必須采用RC電路來吸收放電電流。一般R取1~2K,C取2.2~47uF。②CMOS的輸入阻抗很高,且易受感應(yīng),因此在使用時(shí)對不用端要接地或接正電源。7調(diào)試測試以及對結(jié)果的分析根據(jù)方案設(shè)計(jì)的要求,測試過程共分三大部分:硬件調(diào)試、軟件調(diào)試和軟硬件聯(lián)調(diào)。電路按模塊調(diào)試,各模塊逐個(gè)調(diào)試通過后再聯(lián)調(diào)。FPGA部分的VHDL程序先在GW48EDA實(shí)驗(yàn)開發(fā)系統(tǒng)上測試通過,再與硬件系統(tǒng)聯(lián)調(diào)。7.1測試儀器SS-7802A雙蹤示波器SS1792可跟蹤直流穩(wěn)壓電源5V電源 UT2004數(shù)字萬用表7.2系統(tǒng)指標(biāo)測試測試數(shù)據(jù)如下表:表7-1輸出波形頻率測試預(yù)置頻率/Hz實(shí)際輸出頻率/Hz10.98109.7610097.551000975.54100009755.442000019510.893000029266.32由表可以看出,在頻率穩(wěn)定度方面,輸出頻率穩(wěn)定度和晶振穩(wěn)定度在同一個(gè)數(shù)量級(jí)。7.3測試結(jié)果分析(1)本設(shè)計(jì)的輸出在較高頻率時(shí)由于運(yùn)算放大器、D/A的帶寬限制,輸出幅度有所下降,頻率穩(wěn)定度不夠好。(2)本設(shè)計(jì)對波形一個(gè)周期存放512個(gè)數(shù)據(jù)點(diǎn),有效防止了奈奎斯特混疊,故輸出波形失真較小。8總結(jié)本設(shè)計(jì)研究了有關(guān)利用FPGA實(shí)現(xiàn)DDS的方法,主要內(nèi)容如下: (1)通過對有關(guān)DDS現(xiàn)有技術(shù)的大量文獻(xiàn)的調(diào)研,打下了設(shè)計(jì)DDS的理論基礎(chǔ),分析了影響DDS性能的主要因素。(2)根據(jù)理論研究,確定了DDS的設(shè)計(jì)目標(biāo),以AlteraMAX+plusII上的宏函數(shù)LPM_ADD_SUB和LPM_DFF進(jìn)行了累加器的VHDL設(shè)計(jì),得到了預(yù)期的結(jié)果。(3)以AlteraMAX+plusII上的宏函數(shù)LPM_ROM為存儲(chǔ)單元設(shè)計(jì)出了用于DDS的相位-幅度變換器。(4)該系統(tǒng)利用MAX+plusII軟件在AlteraFLEX10K10芯片上進(jìn)行了邏輯綜合、仿真和硬件實(shí)現(xiàn),證實(shí)了設(shè)計(jì)的正確性和可行性。本設(shè)計(jì)的不足之處及以后的研究方向:本設(shè)計(jì)中沒有深入地分析了DDS的主要誤差來源和輸出頻譜之間的關(guān)系。而且,沒有能夠利用高級(jí)語言來模擬DDS波形的輸出。最大的缺陷是由于準(zhǔn)備不充分和元件的缺少,不能夠?qū)⑾到y(tǒng)的頻率做得很高,頻率分辨率比較低,有關(guān)DDS的理論研究和工程技術(shù)可以說已經(jīng)成熟了,但是正確地去理解現(xiàn)有的理論和技術(shù)而且導(dǎo)入到實(shí)踐上也是個(gè)大的課題。致謝本次課程設(shè)計(jì)之所以能夠順利完成,首先要感謝四年來精心授課的各位老師,沒有他們的辛勤施教,就不會(huì)有我現(xiàn)在的成功。與此同時(shí),我要特別感謝我的指導(dǎo)老師姜天松老師和鄧德迎老師,是他的細(xì)心指導(dǎo)使我順利地完成了課程設(shè)計(jì),并取得了良好的成績。其次,我要感謝各種參考資料的編寫者,正是他們的智慧結(jié)晶使我對電子世界有了更多更深的了解。我還要感謝一起做課程設(shè)計(jì)的同學(xué)們,他們的關(guān)心給了我很大的幫助。最后,我想再次對所有給予我?guī)椭睦蠋熀屯瑢W(xué)表示衷心的感謝!參考文獻(xiàn)[1]J.Tierey,C.Rader,andB.Gold.ADigitalFrequencySynthesizer.IEEETrans.AudioandElectroacoust.VoLAU-19,1971,48:57.[2]J.Vankka,M.Waltarietal.DirectDigitalSynthesizerwithon-ChipD/A-Converter.IEEEJ.ofSCC,VoL33,1998,218
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年兒童安全教育游戲化五年開發(fā)報(bào)告
- 2026年長沙市中小學(xué)素質(zhì)教育實(shí)踐基地岳麓營地編外合同制教師、教官招聘備考題庫及參考答案詳解
- 2025廣西南寧市武鳴區(qū)陸斡中心衛(wèi)生院招聘編外工作人員1人考試核心題庫及答案解析
- 2025年工業(yè)軟件加密市場投資機(jī)會(huì)行業(yè)報(bào)告
- 2025年安徽某國企汽車駕駛員招聘1人筆試重點(diǎn)題庫及答案解析
- 2025吉林大學(xué)化學(xué)學(xué)院趙曉剛教授團(tuán)隊(duì)博士后招聘1人筆試重點(diǎn)試題及答案解析
- 2025南平武夷礦產(chǎn)資源發(fā)展有限公司勞務(wù)派遣員工四次社會(huì)招聘7人模擬筆試試題及答案解析
- 2025青海西寧市藝術(shù)實(shí)驗(yàn)中學(xué)招聘2人參考考試試題及答案解析
- 交通運(yùn)輸部所屬事業(yè)單位2026年度第三批統(tǒng)一公開招聘備考題庫有答案詳解
- 2025福建漳州市薌江人力資源服務(wù)有限公司文化館招聘專業(yè)技術(shù)人員考試重點(diǎn)試題及答案解析
- 軟件無線電原理與應(yīng)用(第3版)-習(xí)題及答案匯總 第1-9章 虛擬人-軟件無線電的新發(fā)展 認(rèn)知無線電
- 中級(jí)會(huì)計(jì)實(shí)務(wù)-存貨
- 機(jī)械電氣設(shè)備管理制度
- 簡單酒水購銷合同
- GB/T 41933-2022塑料拉-拉疲勞裂紋擴(kuò)展的測定線彈性斷裂力學(xué)(LEFM)法
- 高中語文 選修中冊 第四課時(shí) 展示強(qiáng)大思想力量 邏輯思維在著作中提升-《改造我們的學(xué)習(xí)》《人的正確思想是從哪里來的》
- 大學(xué)化學(xué)試題庫
- GCB發(fā)電機(jī)出口斷路器教育課件
- 柑桔周年管理工作歷第二版課件
- 半導(dǎo)體異質(zhì)結(jié)課件
- Q∕SY 1356-2010 風(fēng)險(xiǎn)評(píng)估規(guī)范
評(píng)論
0/150
提交評(píng)論