畢業(yè)論文-基于FPGA的DDS信號(hào)源的設(shè)計(jì)_第1頁
畢業(yè)論文-基于FPGA的DDS信號(hào)源的設(shè)計(jì)_第2頁
畢業(yè)論文-基于FPGA的DDS信號(hào)源的設(shè)計(jì)_第3頁
畢業(yè)論文-基于FPGA的DDS信號(hào)源的設(shè)計(jì)_第4頁
畢業(yè)論文-基于FPGA的DDS信號(hào)源的設(shè)計(jì)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 目 錄TOC o 1-3 h u HYPERLINK l _Toc12311 緒論 緒論1)系統(tǒng)背景隨著科技的不斷向前,電子技術(shù)也取得了飛速的發(fā)展,大力推進(jìn)了生產(chǎn)力的步伐和社會(huì)信息化的程度。90年代后期,以高級(jí)語言描述、系統(tǒng)級(jí)仿真和綜合技術(shù)為特征的第三代EDA工具-Quartus呈現(xiàn)在我們眼前,極大地提高了數(shù)字系統(tǒng)設(shè)計(jì)的效率,使廣大數(shù)字系統(tǒng)設(shè)計(jì)師開始走向“top-down”的思維模式。設(shè)計(jì)師們擺脫了大量的具體且繁瑣的設(shè)計(jì)工作,而把精力集中于創(chuàng)造性的方案與頂層架構(gòu)上,從而縮短了產(chǎn)品的研制周期,極大地提高了設(shè)計(jì)效率。現(xiàn)場可編程門陣列(Field Programmable Gate Array 簡

2、稱FPGA)器件具有高速、高可靠性、高集成度和現(xiàn)場可編程等優(yōu)點(diǎn), 因而已應(yīng)用于不同的科技領(lǐng)域, 如數(shù)字電路設(shè)計(jì)、微處理器系統(tǒng)、DSP 、通信及ASIC 設(shè)計(jì)等 REF _Ref17240 w h 1。2)本選題的理論、實(shí)際意義信號(hào)源作為一種最常用的電子設(shè)備在通信、雷達(dá)、導(dǎo)航、測量、教學(xué)及科學(xué)研究等領(lǐng)域有著廣泛的應(yīng)用。電子技術(shù)特別是微電子技術(shù)的迅猛發(fā)展,基于DDS的任意波形信號(hào)發(fā)生器在未來將成為信號(hào)源發(fā)展的中流砥柱。市場上目前利用專用DDS芯片開發(fā)的信號(hào)源輸出頻率高、波形失真小、功能較少。相較而言,采用FPGA設(shè)計(jì)的DDS信號(hào)源呈現(xiàn)出它的特色:專用DDS控制芯片實(shí)現(xiàn)的信號(hào)源雖然制作簡單、效果不錯(cuò)

3、,但是只能產(chǎn)生固定波形的信號(hào),這就使得發(fā)展空間備縮小了。由于FPGA的現(xiàn)場可編程的特點(diǎn),所以基于FPGA的DDS信號(hào)源可在一塊FPGA芯片上實(shí)現(xiàn)信號(hào)源信號(hào)的產(chǎn)生的控制,改變存儲(chǔ)波形信息的ROM數(shù)據(jù),便可以靈活地調(diào)節(jié)任意波形的產(chǎn)生。專用DDS控制芯片實(shí)現(xiàn)的信號(hào)源對(duì)電源的要求比較高、價(jià)格昂貴,而將DDS信內(nèi)核嵌入到FPGA芯片所構(gòu)成的信號(hào)源,其系統(tǒng)成本會(huì)大大降低,并且許多復(fù)雜的功能也可以實(shí)現(xiàn)。因此使用FPGA設(shè)計(jì)的DDS信號(hào)源比較好。此外,F(xiàn)PGA芯片可現(xiàn)場編程,如果要做出非常符合要求的設(shè)計(jì),只需要根據(jù)設(shè)計(jì)需求,對(duì)系統(tǒng)進(jìn)行在線分析。3)綜述國內(nèi)外有關(guān)本選題的研究動(dòng)態(tài)和自己的見解在直接數(shù)字頻率合成D

4、DS方面,國內(nèi)外學(xué)者已研究開發(fā)了DDS集成芯片,以單片機(jī)為輔助,再外加些許模塊形成整套系統(tǒng)?,F(xiàn)代信號(hào)發(fā)生器的發(fā)展方向是既要保證信號(hào)發(fā)生器的穩(wěn)定性、頻率范圍、幅值范圍等指標(biāo),又要實(shí)現(xiàn)對(duì)輸出信號(hào)的頻率、相位和幅值的數(shù)字控制。例如:美國ADI公司采用先進(jìn)的DDS技術(shù)推出的高集成度頻率合成器AD9850配合單片機(jī)的控制可以實(shí)現(xiàn)0-40MHZ的數(shù)字可控的正弦波信號(hào)。采用直接數(shù)字頻率合成技術(shù)的直接數(shù)字頻率合成器(DDS)具有頻率分辨率高,頻率轉(zhuǎn)換速度快, 頻率穩(wěn)定度高, 相位噪聲低, 輸出信號(hào)相位連續(xù)以及良好的調(diào)制特性等特點(diǎn), 被廣泛應(yīng)用在現(xiàn)代科研、通信系統(tǒng)、電子對(duì)抗及各種電子測量技術(shù)中 REF _Ref

5、17380 w h 2。與FPGA的靈活性、快速性的完美結(jié)合將DDS技術(shù)提升到一個(gè)新的層次。DDS產(chǎn)品也正向著,小型化,超高速,高可靠性方向發(fā)展 REF _Ref17429 w h 3。1、DDS波形發(fā)生器的理論介紹1.1、DDS的基本原理與特點(diǎn)直接數(shù)字頻率合成(DDS)是一種以數(shù)字信號(hào)處理為原理,從相位的概念出發(fā)直接合成所需波形的一種全新的數(shù)字頻率合成技術(shù)。與傳統(tǒng)的頻率合成技術(shù)相比,呈現(xiàn)出的主要優(yōu)點(diǎn)是它的輸出頻率、相位和幅度能夠在MCU的控制下精確而快速的變換。并且頻率分辨率高,在頻率改變時(shí)能保持相位連續(xù),容易實(shí)現(xiàn)對(duì)信號(hào)頻率、相位的多種調(diào)制,易于功能擴(kuò)展和數(shù)字化集成等等。適應(yīng)了現(xiàn)代電子系統(tǒng)的

6、模式。DDS 具有頻率切換時(shí)間短、頻率分辨率高、相位可連續(xù)變化和輸出波形靈活等優(yōu)點(diǎn),因此,廣泛應(yīng)用于教學(xué)科研、通信、雷達(dá)、自動(dòng)控制和電子測量等領(lǐng)域 REF _Ref17540 w h 4。本節(jié)用正弦波信號(hào)來產(chǎn)生原理來敘述DDS技術(shù)。下式來描述的是一個(gè)最簡單的正弦信號(hào): (1)式(1)中的時(shí)間是在時(shí)間軸上連續(xù), 為了用數(shù)字方式實(shí)現(xiàn), 應(yīng)該進(jìn)行離散化處理。用周期為的基準(zhǔn)時(shí)鐘對(duì)信號(hào)進(jìn)行采樣, 采樣頻率,連續(xù)兩個(gè)采樣點(diǎn)之間的相位增量為: (2)將整個(gè)周期分成份, 則相位的量化單位(相位增量)。若, 代入式(2)可得。更特殊的情況是為的倍, 即可得到輸出信號(hào)的頻率: (3)M稱為頻率控制字(tuning

7、 word)。由式(3)可見,輸出信號(hào)的頻率由M決定, 且兩者呈的線性關(guān)系。若采樣頻率不變,通過控制兩次連續(xù)采樣點(diǎn)之間的相位增量(即通過頻率控制字M),即可控制離散波形序列的頻率,再經(jīng)保持和濾波,可準(zhǔn)確的恢復(fù)出此頻率的模擬信號(hào)波形。圖1.1是DDS的原理框圖基本結(jié)構(gòu)。它主要由相位累加器、相位寄存器、 加法器、正弦查找表、D A轉(zhuǎn)換器及濾波電路構(gòu)成 REF _Ref17605 w h 5 。每來一個(gè)時(shí)鐘信號(hào),相位累加器中的值便與頻率控制字M相加,得到當(dāng)前的相位值(ROM地址)。 如果記數(shù)大于 ,則自動(dòng)溢出;LUT(查找表)是一個(gè)波形幅度量化數(shù)據(jù)存儲(chǔ)器(ROM), 實(shí)現(xiàn)相位到幅度的轉(zhuǎn)換。相位累加器

8、的輸出作為LUT的地址, LUT根據(jù)相位累加器的輸出(地址)讀出幅度信號(hào), 送到D /A轉(zhuǎn)換器中轉(zhuǎn)換為模擬量, 最后通過濾波器輸出一個(gè)平滑的模擬信號(hào)。頻率控制字越大,相位累加器的輸出(ROM的地址)變化越快,從而輸出的波形頻率越高。相位累加器相位累加器(N位)LUT(ROM)低通濾波輸出D/A轉(zhuǎn)換頻率控制字時(shí)鐘信號(hào)圖1.1 DDS原理圖根據(jù)式(3),可以確定DDS的基本參數(shù): 1、輸出信號(hào)的分辨率(最小頻率): (4)此時(shí)沒每個(gè)時(shí)鐘輸出一個(gè)周期的正弦波。 2、輸出信號(hào)一個(gè)周期內(nèi)的點(diǎn)數(shù): (5)當(dāng)N比較大時(shí),對(duì)于較大范圍內(nèi)的M值, DDS系統(tǒng)都可以在一個(gè)周期內(nèi)輸出足夠點(diǎn), 保證輸出波形平滑。當(dāng)時(shí)

9、鐘源確定后, 輸出信號(hào)頻率、頻率控制字M之間應(yīng)該滿足采樣定理, 即應(yīng)至少大于的4倍。由于D/A轉(zhuǎn)換電路的轉(zhuǎn)換時(shí)間應(yīng)小于, 因此DDS系統(tǒng)的時(shí)鐘頻率、信號(hào)輸出頻率主要由D/A轉(zhuǎn)換器的性能決定。 1.2、DDS信號(hào)的優(yōu)點(diǎn)與缺點(diǎn)1.2.1、DDS的優(yōu)點(diǎn)與傳統(tǒng)的頻率合成相比,DDS技術(shù)具有如下優(yōu)點(diǎn) REF _Ref17844 w h 6:(l)輸出頻帶較寬輸出頻帶寬度為50%fs(理論值),實(shí)際帶寬仍可達(dá)到40%fs。(2)頻率轉(zhuǎn)換時(shí)間短頻率轉(zhuǎn)換時(shí)間與頻率控制字的傳輸時(shí)間一樣,DDS的轉(zhuǎn)換時(shí)間是納秒級(jí),與其他的頻率合成方法相比,要短個(gè)數(shù)量級(jí)。(3)頻率分辨率高只要時(shí)鐘fs的頻率固定,相位累加器的位數(shù)N

10、便可以決定DDS的頻率分辨率。相位累加器的位數(shù)N增大,便可獲得任意小的頻率分辨率。現(xiàn)在,大多數(shù)DDS的分辨率都是1Hz,甚至許多小于1mHz。(4)相位變化連續(xù)改變每一個(gè)時(shí)鐘周期的相位增量,便可以改變DDS輸出頻率,由于相位函數(shù)的曲線具有連續(xù)性,在改變頻率的那一瞬間其頻率才發(fā)生突變,所以保證了信號(hào)的相位連續(xù)。1.2.2、DDS的缺點(diǎn)(1)輸出帶寬范圍有限D(zhuǎn)DS受到內(nèi)部波形存儲(chǔ)器(ROM)和DAC的工作速度的限制,其最高輸出頻率很難提高。目前市場上大多數(shù)DDS芯片,工作頻率一般在幾十MHz400MHz之間。(2)輸出散雜大由于DDS采用全數(shù)字結(jié)構(gòu),不自然地引入了散雜信號(hào)。其來源主要由三個(gè):相位累

11、加器相位四舍五入誤差造成的散雜;幅值量化誤差造成的散雜和 DAC不及時(shí)性造成的散雜。2、系統(tǒng)整體框架2.1、整體框圖圖2.1 系統(tǒng)總體框圖 2.2、工作原理 如圖2.1所示,本設(shè)計(jì)以FPGA為核心,首先在FPGA中定制好ROM,并將量化的波形數(shù)據(jù)存到ROM中,然后單片機(jī)通過串口將頻率字M發(fā)給FPGA,經(jīng)相位累加器實(shí)現(xiàn)ROM地址的累加,再經(jīng)地址計(jì)數(shù)器尋址讀出波形數(shù)據(jù),控制地址計(jì)數(shù)器的時(shí)鐘頻率邊便可控制采樣的點(diǎn)數(shù),從而控制輸出波形的頻率??紤]到這些數(shù)據(jù)為純數(shù)字量,需要經(jīng)D/A轉(zhuǎn)換才能將其轉(zhuǎn)換為模擬量,再通過低通濾波器濾除階梯與噪聲方可輸出滿足要求的波形。由于本設(shè)計(jì)采用直接頻率合成(DDS)技術(shù),用

12、一片EPROM存儲(chǔ)波形數(shù)據(jù),設(shè)定頻率字便可設(shè)定波形,使得輸出波形的頻率范圍得到了拓寬,精確度顯著提高,系統(tǒng)穩(wěn)定可靠。2.3、方案比較方案一:采用模擬鎖相環(huán)實(shí)現(xiàn)模擬鎖相環(huán),作為一項(xiàng)比較成熟的技術(shù),可將基準(zhǔn)頻率倍頻、分頻得到所需的頻率,且調(diào)節(jié)精度很高、穩(wěn)定性比較好。不過也有它的不足之處,模擬鎖相環(huán)模擬電路復(fù)雜、調(diào)試不方便、成本較高、調(diào)節(jié)范圍小,輸出波形的毛刺較多等。很難得到滿意的效果。方案二:采用專用DDS集成芯片實(shí)現(xiàn)的信號(hào)發(fā)生器;專用DDS芯片內(nèi)部的波形數(shù)據(jù)存放在ROM型存儲(chǔ)器中,波形數(shù)據(jù)無法修改故而只能產(chǎn)生固定波形的信號(hào),但是由于DDS專用芯片高度集成化,無需或僅需極少的外接元件支持,便于實(shí)現(xiàn)

13、全數(shù)字化控制,使用起來非常方便 REF _Ref17942 w h 7。方案三PGA實(shí)現(xiàn)的DDS信號(hào)發(fā)生器。而基于FPGA 的DDS 信號(hào)源, 可在一片F(xiàn)PGA 芯片上實(shí)現(xiàn)信號(hào)源的信號(hào)產(chǎn)生和控制, 并且只要改變存儲(chǔ)波形信息的ROM 數(shù)據(jù), 就可以靈活地實(shí)現(xiàn)任意波形發(fā)生器 REF _Ref18036 w h 8 。也就是說波形數(shù)據(jù)能實(shí)時(shí)改變,有很高的精確度和穩(wěn)定性而且波形毛刺很少。特別是由于FPGA的主頻可以到GHZ,能實(shí)現(xiàn)較高頻率的波形,可以更方便的控制,輸出的波形頻率范圍較寬、步進(jìn)很小,外圍電路器件比較少。因此采用方案三。3、FPGA子系統(tǒng)搭建3.1、DDS內(nèi)核搭建3.1.1、相位累加器參考

14、時(shí)鐘的作用下,相位累加器進(jìn)行相位累加(相位寄存器的值加上頻率字),當(dāng)相位累加器的值累加滿時(shí)就會(huì)產(chǎn)生一次溢出,從而完成一個(gè)周期性的動(dòng)作,得到DDS合成信號(hào)的一個(gè)頻率周期,DDS輸出的信號(hào)頻率即累加器的溢出率。FPGA中的相位累加器模塊如圖3.1所示。圖3.1 相位累加器圖3.2是相位累加器仿真圖,從圖中可以看出,在時(shí)鐘的激勵(lì)下,累加器的仿真結(jié)果是正確的。圖3.2 相位累加器的仿真結(jié)果3.1.2、波形存儲(chǔ)器波形存儲(chǔ)器即在FPGA上調(diào)用個(gè)的一個(gè)ROM,所生成波形一周期采樣256點(diǎn)的數(shù)據(jù)值放在了波形存儲(chǔ)器里面,通過讀取ROM的地址值,便可以得到波形的數(shù)據(jù)。地址改變,輸出的值也會(huì)隨之變化。在同樣的時(shí)鐘周

15、期下,地址間隔的變化,生成波形的頻率也跟著變化。地址值每溢出一次,便完成了一個(gè)周期的輸出。根據(jù)抽樣定理,存儲(chǔ)最少的樣點(diǎn)數(shù),每個(gè)周期采用固定的樣點(diǎn)數(shù) REF _Ref18151 w h 9。改變波形的一個(gè)方法是改變波形存儲(chǔ)器中波形數(shù)據(jù)。波形波形存儲(chǔ)器如圖3.3所示。圖3.3 ROM模塊ROM的設(shè)計(jì)直接調(diào)用LPM中的庫生成,端口分別為:時(shí)鐘輸入端inclock,輸出數(shù)據(jù)總線datein7:0,輸入數(shù)據(jù)總線result23:16.地址總線result23:16是相位累加器輸出高8位的數(shù)據(jù).輸出數(shù)據(jù)總線datein7:0連接輸出緩沖通過FPGA的I/O口輸出,連接作為D/A轉(zhuǎn)換器的輸入端口。3.1.3

16、、頻率字寄存器頻率字寄存器的功能較簡單,即接收從單片中傳來的增量寄存器的控制字。用Verilog語言描述這個(gè)模塊的底層,然后留片在頂層上生成相應(yīng)的功能模塊。其生成的模塊圖如圖3.4所示:圖3.4頻率字寄存器3.1.4、波形選擇模塊這個(gè)模塊的功能是通過按鍵選擇三種波形,其生成的模塊圖如圖3.5所示: 圖3.5波形選擇模塊3.2、UART模塊UART串行接口,作為各種微處理芯片最常用的一種異步通信接口,只需要兩根線即可,非常節(jié)約系統(tǒng)的資源。而且FPGA的主頻較高,即使傳輸?shù)臄?shù)據(jù)位數(shù)較多也不會(huì)工作于忙碌狀態(tài),所以此處選擇串口建立FPGA與單片機(jī)之間的通信。3.2.1、UART收發(fā)時(shí)序串口的收發(fā)數(shù)據(jù)需

17、要遵循一定的時(shí)序,其時(shí)序圖如圖3.6所示,數(shù)據(jù)格式如表3.1所示。圖3.6 UART收發(fā)時(shí)序表3.1 UART數(shù)據(jù)格式名稱位數(shù)描述起始位1總是邏輯0數(shù)據(jù)位8低位在前奇偶校驗(yàn)位1奇校驗(yàn)停止位1總是邏輯1在UART接收時(shí),接收一幀數(shù)據(jù)的中間8位是有效數(shù)據(jù),開始位與停止位用于護(hù)送數(shù)據(jù);在UART發(fā)送時(shí),將發(fā)送的并行8位數(shù)據(jù)轉(zhuǎn)為串行數(shù)據(jù),并添加開始位與停止位。UART中的一幀數(shù)據(jù)為10位,空閑時(shí)均為高電平,系統(tǒng)在檢測到低電平(開始位)之后,開始逐位采集8位有效數(shù)據(jù)位(低位在前),再將停止位置為高電平即可。3.2.2、波特率模塊圖3.7 串口接收波特率模塊模塊功能說明:圖3.7 為串口接收數(shù)據(jù)的速率控制

18、模塊,當(dāng)使能信號(hào)rx_en為高電平時(shí),bps_rx模塊內(nèi)部計(jì)數(shù)器開始計(jì)數(shù),按照設(shè)定好的波特率,輸出控制數(shù)據(jù)采集的尖峰脈沖信號(hào)sel_data和有效數(shù)據(jù)位的計(jì)數(shù)值num。圖3.8 串口發(fā)送波特率模塊模塊功能說明:圖3.8 為串口發(fā)送數(shù)據(jù)的速率控制模塊,當(dāng)使能信號(hào)tx_en為高電平時(shí),bps_tx模塊內(nèi)部計(jì)數(shù)器開始計(jì)數(shù),按照設(shè)定好的波特率,輸出控制數(shù)據(jù)發(fā)送的尖峰脈沖信號(hào)sel_data和有效數(shù)據(jù)位的計(jì)數(shù)值num。3.2.3、串行接受模塊圖3.9 串口接收模塊模塊功能說明:圖3.9為串口串行數(shù)據(jù)的接收模塊,數(shù)據(jù)從端口rs232_rx輸入,在采集控制信號(hào)sel_data和有效位計(jì)數(shù)器num的控制下,進(jìn)

19、行串并轉(zhuǎn)換,從端口rx_d7:0輸出。tx_en為發(fā)送控制模塊的使能信號(hào),當(dāng)Uart_rx模塊接收數(shù)據(jù)完畢以后,置高信號(hào)tx_en啟動(dòng)數(shù)據(jù)發(fā)送,將采集到的數(shù)據(jù)rx_d7:0發(fā)送到上位機(jī)。3.2.4、串行發(fā)送模塊圖3.10 串口發(fā)送模塊模塊功能說明:圖3.10 為串口串行數(shù)據(jù)的發(fā)送模塊,并行數(shù)據(jù)從端口rx_d7:0輸入,在采集控制信號(hào)sel_data和有效位計(jì)數(shù)器num的控制下,進(jìn)行并串轉(zhuǎn)換,從端口rs232_tx輸出。3.2.5、RTL級(jí)UART當(dāng)UART各個(gè)子模塊搭建好之后,可以建立一個(gè)頂層文件分別調(diào)用各個(gè)底層模塊組成UART模塊??傮w框圖如圖3.11 所示。圖3.11 UART總體框圖4、

20、單片機(jī)子系統(tǒng)設(shè)計(jì)4.1、LCD12864模塊在本設(shè)計(jì)中,采用LCD12864漢字圖形點(diǎn)陣液晶作為顯示模塊,內(nèi)置8192個(gè)中文漢字(16x16點(diǎn)陣)、128個(gè)字符(8x16點(diǎn)陣)以及64x265點(diǎn)陣顯示RAM(GDRAM)。4.1 LCD12864硬件連接圖與單片機(jī)的借口如圖4.1所示。單片機(jī)的P2口連接LCD12864的(DB0-DB7),用與并行傳送數(shù)據(jù)與命令;P1.0-P1.2連接LCD12864的(RS R/W EN),來控制12864的狀態(tài)。4.1.1、LCD12864顯示程序設(shè)計(jì)圖4.2 LCD12864寫時(shí)序圖LCD12864寫時(shí)序如圖4.2所示,RS=H時(shí),MCU寫數(shù)據(jù)到LCD1

21、2864;RS=L時(shí),MCU寫命令到LCD12864。R/W在這里不管RS是高或低都是進(jìn)行寫操作。E引腳為使能信號(hào),E=H-L時(shí),配合R/W進(jìn)行寫數(shù)據(jù)或指令;E=H時(shí),配合R/W進(jìn)行讀數(shù)據(jù)或讀指令。程序操作時(shí)要注意放置延時(shí)函數(shù)。4.3 LCD12864讀時(shí)序圖LCD12864讀時(shí)序圖如圖4.3所示。讀時(shí)序與寫時(shí)序得原理差不多,區(qū)別是R/W在讀操作時(shí)是拉高的,與寫操作相反,其它都一樣。同樣要注意延時(shí)。4.2、4*4矩陣鍵盤模塊4.2.1、矩陣鍵盤硬件連接由于本設(shè)計(jì)中不僅需要頻率選擇鍵,更需要頻率設(shè)定鍵(0-9)。所以本設(shè)計(jì)采用4x4矩陣鍵盤。如圖4.4所示,用單片機(jī)的P0口連接A-E,采用行列反

22、轉(zhuǎn)掃描法獲取鍵值。圖4.4 矩陣鍵盤原理圖4.2.2、矩陣鍵盤掃描程序矩陣鍵盤的別名為行列式鍵盤,它是由四條行線與四條列線交叉匯聚而成。在行線和列線的每一個(gè)交叉點(diǎn)上,這樣的到16個(gè)按鍵,與獨(dú)立按鍵相比較,極大地提高了MCU的IO口利用率。在這里采用逐行掃描法讀取鍵盤值。首先第一行置低,其余三行行全部置高電平。MCU讀入四列的狀態(tài),以確定按鍵0-3值,若第一例為低,則鍵值為0。如果四列均為高電平,則將第二行置低,其余三行置高,讀出鍵值4-7。如此周而復(fù)始。這里需要注意,按鍵開關(guān)帶有一定的抖動(dòng)。所以在檢測按鍵是要檢測兩次,之間有15ms的間隔,還要判斷按鍵的抬起,當(dāng)按鍵松開之后再獲取鍵值。5、外圍

23、電路搭建5.1、D/A轉(zhuǎn)換電路5.1.1、TLC5620簡介TLC5620這款電壓輸出型D/A轉(zhuǎn)換芯片,輸入阻抗高,有四路串行8位電壓輸出。它采用單電源(+5V)供電,功耗較低,用4根串行總線便可輸入8位數(shù)據(jù),而且能兼容CMOS電平。這樣也就方便了與微處理器的連接。且MCU控制比較簡單,可用于程控電壓源、數(shù)控放大/衰減器、自動(dòng)測試裝置以及工程測試等場合,其外接的參考電壓必須保證有足夠的穩(wěn)定度,才能確保應(yīng)有的轉(zhuǎn)換精度 REF _Ref18262 w h 10。本系統(tǒng)使用的TLC5620的具體型號(hào)是塑料DIP(P)封裝TLC5620CN,它的工作溫度范圍為070。TLC5620分別有4個(gè)參考電壓,

24、從而有4種不同的模擬電壓輸出TLC5620是通過4個(gè)電阻網(wǎng)絡(luò)實(shí)現(xiàn)來實(shí)現(xiàn)4路數(shù)模轉(zhuǎn)換,每路DAC(數(shù)模轉(zhuǎn)換)都是256個(gè)獨(dú)立電阻,對(duì)應(yīng)串行輸入的256個(gè)編碼值0255。每個(gè)電阻網(wǎng)絡(luò)的一端連接到地(GND),另一端從基準(zhǔn)電壓輸入緩沖器的輸出端反饋回來。5.1.2、TLC5620模塊原理圖圖5.1 TCL5620(D/A轉(zhuǎn)換)原理圖FPGA管腳 to,location da_data,pin_86 da_clk,pin_85 da_ldac,pin_84 da_load,pin_83 5.2、二階低通濾波電路濾波電路的主要目的是消除D/A輸出的階梯波以及電路中存在的噪聲,保證波形的平滑,在這里濾波電

25、路采用二階巴特沃茲低通濾波,截止頻率 ,用multisim仿真可以得到截至頻率為6.0MHZ,200k內(nèi)波形幅度平緩。其電路如圖5.2 所示。圖5.2 二階有源低通濾波電路5.3、系統(tǒng)電源電路圖5.3 AC220V-DC5V電路原理圖如圖5.3所示電路為AC220V 輸入,輸出直流電壓+5V、輸出電流1.5A的穩(wěn)壓電源。它由電源變壓器T1,橋堆D1D4,濾波電容C1、C3,防止自激電容C2、C3和一只固定式三端穩(wěn)壓器(7805)組合而成。220V交流市電通過電源變壓器變換成交流低壓,再經(jīng)過橋式整流電路D1D4和濾波電容C1的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成直流

26、電壓不是十分穩(wěn)定(該電壓常常會(huì)因?yàn)槭须婋妷旱牟▌?dòng)或負(fù)載的變化等原因而發(fā)生變化)。此直流電壓經(jīng)過LM7805的穩(wěn)壓和C3的濾波才在穩(wěn)壓電源的輸出端輸出精度高、穩(wěn)定性好的直流輸出電壓。本穩(wěn)壓電源可作為單片機(jī)電路的電源。三單端穩(wěn)壓器這種通用的線性穩(wěn)壓電源集成電路,由于它體積小、成本低、性能好、工作可靠性高、使用簡捷方便,使其成為目前穩(wěn)壓電源中應(yīng)用最為廣泛的一種單片式集成穩(wěn)壓器件。圖5.4 DC5V-DC3.3V電路原理圖如圖5.4所示是由LM1117-3.3 搭建的5V轉(zhuǎn)3.3V電源。LM1117是一個(gè)正向低壓降穩(wěn)壓器, 內(nèi)部集成過熱保護(hù)和限流電路,具有1%的精度。用于給FPGA及其配置芯片供電???/p>

27、以提高系統(tǒng)的穩(wěn)定性,降低功耗。6、系統(tǒng)軟件流程圖圖6.1 系統(tǒng)軟件流程圖7、系統(tǒng)調(diào)試與仿真測試步驟:單片機(jī)程序是在keil 4軟件環(huán)境下編寫的,程序編譯通過后,通過串口下載線把程序下載到單片機(jī)STC15F2K61S2單片機(jī)中。把單片機(jī)串口引腳(P31)與FPGA指定配置的串口引腳連接好,然后把編譯好的.sof下載到目標(biāo)器件EP2C5Q208C8。把FPGA開發(fā)板與DA轉(zhuǎn)換模塊連接好,DA輸出端口連到示波器輸入端,直接在示波器上進(jìn)行觀察。測試記錄:1、上電后,系統(tǒng)初始化。2、按下波形切換按鍵用于顯示正弦波,頻率設(shè)為1Hz。圖7.1 LCD12864上顯示正弦波圖7.2 示波器上顯示正弦波 3、接

28、著增加頻率到1KHz,并切換波形為三角波和方波,觀察示波器顯示波形情況。圖7.3 LCD12864顯示三角波-1KHZ圖7.4 示波器顯示三角波-1.000KHZ圖7.5 LCD12864顯示方波-1KHZ圖7.6 示波器顯示方波-1.000KHZ4、繼續(xù)增加頻率,當(dāng)頻率增加到5MHz,波形才有輕微失真。圖7.7 LCD12864顯示正弦波-5.01MHZ圖7.8 示波器顯示正弦波-4.950MHZ圖7.9 LCD12864顯示方波-5.01MHZ圖7.10 示波器顯示方波-4.950MHZ8、總結(jié)與展望8.1、總結(jié)信號(hào)源是電子系統(tǒng)的重要環(huán)節(jié),現(xiàn)在雷達(dá)系統(tǒng)、通信系統(tǒng)和電子對(duì)抗系統(tǒng)對(duì)信號(hào)源提出了

29、更高的要求,因此世界各國都十分重視頻率合成技術(shù)的研究。直接數(shù)字頻率合成是繼直接模擬頻率合成技術(shù)和鎖相環(huán)頻率合成技術(shù)之后的新一代頻率合成技術(shù)。具有諸多優(yōu)點(diǎn):頻率精度高、切換速度快、頻率穩(wěn)定度高和數(shù)字化。本文在前人的基礎(chǔ)上,對(duì)DDS技術(shù)的實(shí)現(xiàn)進(jìn)行了較為深入的研究,同時(shí)進(jìn)行了基于FPGA的DDS信號(hào)源的設(shè)計(jì)。本文首先闡述了本課題的背景,分析了頻率合成技術(shù)的現(xiàn)狀,明確指出了利用FPGA實(shí)現(xiàn)DDS的意義。然后結(jié)合DDS的工作原理,對(duì)數(shù)字直接頻率合成技術(shù)進(jìn)行了研究。并引入現(xiàn)場可編程器件FPGA實(shí)現(xiàn)直接數(shù)字頻率合成的框圖搭建。為了方便控制,采用單片機(jī)作為輔助器件,負(fù)責(zé)顯示、送頻率控制字到FPGA,是整個(gè)系統(tǒng)

30、更加人性化。在系統(tǒng)的核心部分完成之后,對(duì)外圍電路的設(shè)計(jì)進(jìn)行了理論上的詳細(xì)設(shè)計(jì)并實(shí)驗(yàn)成功。8.2、展望盡管頻率合成技術(shù)已經(jīng)經(jīng)歷了大半個(gè)世紀(jì),直到現(xiàn)在,人們對(duì)它的研究任然在繼續(xù)。電子技術(shù)的法杖已經(jīng)進(jìn)入數(shù)字化時(shí)代,模擬信號(hào)數(shù)字化的方法也是目前一個(gè)非常熱門的研究課題,高速A/D、D/A器件在通信、廣播電視等領(lǐng)域的應(yīng)用也越來越廣泛。本次設(shè)計(jì)完成了系統(tǒng)的軟件設(shè)計(jì)和硬件實(shí)現(xiàn),對(duì)設(shè)計(jì)原理和測試結(jié)果進(jìn)行了一定的理論分析,在一定的頻率范圍內(nèi)設(shè)計(jì)結(jié)果與理論值基本符合。完成了預(yù)定的基本功能,由于時(shí)間倉促,還有許多需要完善和改進(jìn)的地方。在本系統(tǒng)中,用戶能方便用戶控制的波形種類有限,對(duì)于任意波形的輸出控制,要使用現(xiàn)有的F

31、PGA中的ROM資源來存儲(chǔ)波形周期數(shù)據(jù),另外還可利用內(nèi)部資源來創(chuàng)建RAM來存儲(chǔ)波形,,借助編程語言來描述,來實(shí)現(xiàn)任意波形的周期數(shù)據(jù)送入FPGA。此外,系統(tǒng)未能實(shí)現(xiàn)對(duì)信號(hào)幅值和直流偏移量得可數(shù)控調(diào)節(jié),這也是設(shè)計(jì)的不足之處。所以,本設(shè)計(jì)的各項(xiàng)功能指標(biāo)還有待完善。參考文獻(xiàn)求是科技.CPLD FPGA 應(yīng)用開發(fā)技術(shù)與工程實(shí)踐 M .北京:人民郵電出版社, 2005.郭振永, 鄧云凱, 等.線性調(diào)頻信號(hào)DDS 頻率合成源的設(shè)計(jì)與實(shí)現(xiàn) J .收發(fā)技術(shù), 2005, 3:193-194.英V.F.克羅帕.頻率合成理論、設(shè)計(jì)與應(yīng)用.北京:國防工業(yè)出版社,1979.213245Texas Instruments

32、. ADS8364 Data sheetEB/OL.2007.http: /lit/ds/symlink/ads8364.pdf.潘松, 黃繼業(yè).EDA 技術(shù)實(shí)用教程 M .北京:科學(xué)出版社, 2002 .郭麗浩.基于FPGA的直接數(shù)字頻率合成器的研究與應(yīng)用:碩士學(xué)位論文.西安.西北工業(yè)大學(xué)電路與系統(tǒng)專業(yè),2006胡力.基于DDS的掃頻信號(hào)源設(shè)計(jì)與實(shí)現(xiàn):碩士學(xué)位論文.南京:南京理工大學(xué)機(jī)械電子工程專業(yè),2006宋陽, 孫肖子, 仁愛鋒. 基于DDS 和FPGA 的虛擬智能信號(hào)源的研究 J . 數(shù)據(jù)采集與處理, 2001 , 16(專輯):124-126.APURVA N MODY,GORDON

33、 L.Synchronization for MIMOOFDM systerm C.Global Telecommunications Conference,2001.GLOBECOM01.IEEE, 2001: 509-513童詩白,華成英.模擬電子技術(shù)基礎(chǔ)(第三版).北京:高等教育出版社,2003.446449.致 謝經(jīng)過四個(gè)多月的努力奮斗,畢業(yè)設(shè)計(jì)已基本完成。掌握了DDS的基本原理、FPGA的編程方法與思維、硬件調(diào)試模塊化的方法以及單片機(jī)的運(yùn)用。由于自身經(jīng)驗(yàn)的不足,知識(shí)的缺乏,該設(shè)計(jì)還有很多地方應(yīng)該完善。在此要感謝我的同學(xué)們,在他們的幫助下順利完成了此次畢業(yè)設(shè)計(jì)。本論文是在我的導(dǎo)師包本剛

34、老師的悉心指導(dǎo)下完成的。從開題報(bào)告到完成論文,包本剛老師都是仔仔細(xì)細(xì)的查看,改正了很多不足的地方。導(dǎo)師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我巨大的幫助,他的博學(xué)多識(shí)給予我大量的指導(dǎo)。在導(dǎo)師的細(xì)心指導(dǎo)下,我不斷克服各方面的困難,最終較為順利的完成了畢業(yè)設(shè)計(jì)的工作,在此向我的指導(dǎo)老師致以深沉的敬意和誠摯的謝意!同時(shí),我要感謝學(xué)校的所有老師們,教導(dǎo)我得來不易的專業(yè)知識(shí)。還要感謝實(shí)驗(yàn)室一起學(xué)習(xí)的王震、才柏昌、袁亞杰等同學(xué),有了你們生活更有熱情,在這里我表示衷心的感謝。最后,感謝我的母校四年來對(duì)我的悉心培養(yǎng)。 附 錄1、FPGA中的DDS源碼/*正弦波ROM表*/ synopsys translate_o

35、fftimescale 1 ps / 1 ps/ synopsys translate_onmodule sin (address,clock,q);input9:0 address;input clock;output9:0 q;ifndef ALTERA_RESERVED_QIS/ synopsys translate_offendiftri1 clock;ifndef ALTERA_RESERVED_QIS/ synopsys translate_onendifwire 9:0 sub_wire0;wire 9:0 q = sub_wire09:0;altsyncramaltsyncra

36、m_component (.clock0 (clock),.address_a (address),.q_a (sub_wire0),.aclr0 (1b0),.aclr1 (1b0),.address_b (1b1),.addressstall_a (1b0),.addressstall_b (1b0),.byteena_a (1b1),.byteena_b (1b1),.clock1 (1b1),.clocken0 (1b1),.clocken1 (1b1),.clocken2 (1b1),.clocken3 (1b1),.data_a (101b1),.data_b (1b1),.ecc

37、status (),.q_b (),.rden_a (1b1),.rden_b (1b1),.wren_a (1b0),.wren_b (1b0);defparamaltsyncram_component.address_aclr_a = NONE,altsyncram_component.clock_enable_input_a = BYPASS,altsyncram_component.clock_enable_output_a = BYPASS,altsyncram_component.init_file = ./MY_DDS/sin.mif,altsyncram_ended_devic

38、e_family = Cyclone III,altsyncram_component.lpm_hint = ENABLE_RUNTIME_MOD=NO,altsyncram_component.lpm_type = altsyncram,altsyncram_component.numwords_a = 1024,altsyncram_component.operation_mode = ROM,altsyncram_component.outdata_aclr_a = NONE,altsyncram_component.outdata_reg_a = CLOCK0,altsyncram_c

39、omponent.widthad_a = 10,altsyncram_component.width_a = 10,altsyncram_component.width_byteena_a = 1;Endmodule/* 波形選擇模塊*/module boxing(address,clk,wavemode,wavevalue); input clk; input 9:0 address; input 1:0 wavemode; output 9:0 wavevalue; reg 9:0 wavevalue; wire 9:0 wavevalue1,wavevalue2,wavevalue3;

40、sin M1(address,clk,wavevalue1); fangbo M2(address,clk,wavevalue2); sanjiao M3(address,clk,wavevalue3); always(posedge clk) case(wavemode) 2b01:wavevalue= wavevalue1; 2b10:wavevalue= wavevalue2; 2b11:wavevalue= wavevalue3; endcaseEndmodule/* 相位累加器模塊*/module counter(clk,fre_word,address); input clk; o

41、utput reg 9:0 address; input 31:0 fre_word; reg31:0 phaseadder; always(posedge clk) begin phaseadder= phaseadder+ fre_word; address= phaseadder31:22; endendmodule /* 頂層控制模塊*/module DDS_hzh(clk,keyin,switchin,wavevalue,sm_db0,sm_db1,sm_db2,sm_db3,led,hexdd,DW); input clk; input 2:0 keyin; input switc

42、hin; input 4:0 DW; wire 9:0 address; output 9:0 wavevalue; wire 1:0 wavemode; wire 31:0 length;/change 32 wire 2:0 keyout; output 3:0 hexdd; output 6:0 sm_db0; output 6:0 sm_db1; output 6:0 sm_db2; output 6:0 sm_db3; output 2:0 led; key U1(clk,keyin,keyout); control U2(clk,keyout,switchin,length,wav

43、emode,DW); counter U3(clk,length,address); shumaguan U4(clk,length,sm_db0,sm_db1,sm_db2,sm_db3,led,hexdd); boxing U5(address,clk,wavemode,wavevalue);endmodule2、單片機(jī)源碼/* 12864標(biāo)準(zhǔn)字庫液晶演示 */#include #include #include #define uchar unsigned char#define uint unsigned int#define LCD_data P0 /數(shù)據(jù)口sbit LCD_RS =

44、 P27; /寄存器選擇輸入 sbit LCD_RW = P26; /液晶讀/寫控制sbit LCD_EN = P25; /液晶使能控制sbit LCD_PSB = P22; /串/并方式控制sbit LCD_RST = P24; /液晶復(fù)位端口#define delayNOP(); _nop_();_nop_();_nop_();_nop_();/*/uchar code DIS1 = 基于FPGA的DDS ;uchar code DIS2 = 信號(hào)發(fā)生器;/*/unsigned char code tab123=0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x

45、00,0 x00, 0 x02,0 x00,0 x05,0 x00,0 x08,0 x80,0 x10,0 x40, 0 x20,0 x20,0 x7F,0 xF0,0 x10,0 x40,0 x17,0 x40, 0 x15,0 x40,0 x17,0 x40,0 x10,0 x40,0 x1F,0 xC0;/* 延時(shí)函數(shù)*/void delay(int ms)unsigned char i, j; while(ms-)i = 18;j = 235;dowhile (-j); while (-i);/* 檢查LCD忙狀態(tài) */bit lcd_busy() bit result; LCD_RS

46、 = 0; LCD_RW = 1; LCD_EN = 1;P0=0 xff; delayNOP(); result = (bit)(P0&0 x80); LCD_EN = 0; return(result); /* LCD讀數(shù)據(jù) */unsigned char ReadData()unsigned char temp; while(lcd_busy();/檢測忙LCD_RS = 1; LCD_RW = 1; LCD_EN = 1; delayNOP();temp=P0;LCD_EN = 0;return temp;/* 寫指令數(shù)據(jù)到LCD RS=L,RW=L,E=高脈沖,D0-D7=指令碼*/

47、void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /* 寫顯示數(shù)據(jù)到LCD RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 */void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD

48、_EN = 1; delayNOP(); LCD_EN = 0; /* LCD初始化設(shè)定*/void lcd_init() LCD_PSB = 1; /并口方式 lcd_wcmd(0 x34); /擴(kuò)充指令操作 delay(5); lcd_wcmd(0 x30); /基本指令操作 delay(5); lcd_wcmd(0 x0C); /顯示開,開光標(biāo) delay(5); lcd_wcmd(0 x01); /清除LCD的顯示內(nèi)容 delay(5);/* 設(shè)定顯示位置 */void lcd_pos(uchar X,uchar Y) uchar pos; if (X=1) X=0 x80; else

49、 if (X=2) X=0 x90; else if (X=3) X=0 x88; else if (X=4) X=0 x98; pos = X+Y ; lcd_wcmd(pos); /顯示地址/* 閃爍函數(shù) */void lcdflag() lcd_wcmd(0 x08); /關(guān)閉顯示 delay(400); lcd_wcmd(0 x0c); /開啟顯示,一關(guān)一開就起到閃爍作用 delay(400); lcd_wcmd(0 x08); delay(400); lcd_wcmd(0 x0c); delay(400); lcd_wcmd(0 x08); delay(200); lcd_wcmd(

50、0 x0c); delay(5); /* 畫圖清屏 */void clear_lcd() uchar i,j; lcd_wcmd(0 x34); /寫數(shù)據(jù)時(shí),關(guān)閉字形顯示 打開擴(kuò)充指令 for(i=0;i32;i+) lcd_wcmd(0 x80+i); /先Y坐標(biāo)值(0-31) lcd_wcmd(0 x80); /再X坐標(biāo)值(X分為上半屏和下半屏) for(j=0;j16;j+) /再寫入兩個(gè)8位元的數(shù)據(jù) lcd_wdat(0 x00); for(i=0;i32;i+) lcd_wcmd(0 x80+i); lcd_wcmd(0 x88); for(j=0;j16;j+) lcd_wdat(

51、0 x00); lcd_wcmd(0 x36); /寫完數(shù)據(jù),開圖形顯示 delay(20); lcd_wcmd(0 x30); /寫完數(shù)據(jù),開圖形顯示 /*開機(jī)畫面*/void start_pic()lcd_init();/12864初始化lcd_pos(1,1); /設(shè)置顯示位置為第一行WriteString(DIS1,10);lcd_pos(2,2); /設(shè)置顯示位置為第一行WriteString(DIS2,10);lcd_pos(3,0); /設(shè)置顯示位置為第一行WriteString(DIS3,10);lcd_pos(4,0); /設(shè)置顯示位置為第一行WriteString(DIS4

52、,10);/*/void Dis_sjb()clr_screen(); /清屏 clear_lcd();lcd_pos(3,0); /設(shè)置顯示位置為第一行WriteString(波形:三角波,10);/* 矩陣按鍵程序*/#include STC15F2K.H#include #include juzhen.h/按鍵查表法unsigned char ScanKey(void) unsigned char Tmp,Tmp2,KeyNum=0; P3=0 x0f; if(P3!=0 x0f) Delayxms(5); if(P3!=0 x0f) Tmp=P3;/采集P3的口的狀態(tài) P3 =0 xF

53、0;/P3行線輸出為高電平,列線輸出為低電平 _nop_();_nop_();_nop_();_nop_(); Tmp2=P3; Tmp=Tmp+Tmp2; while(P3!=0 xF0);/按鍵如果按下,則一直等待 switch(Tmp&0 xF0) case 0 xE0:KeyNum=0;break; case 0 xD0:KeyNum=4;break; case 0 xB0:KeyNum=8;break; case 0 x70:KeyNum=12;break; switch(Tmp&0 x0F) case 0 x0E:KeyNum+=1;break; case 0 x0D:KeyNum

54、+=2;break; case 0 x0B:KeyNum+=3;break; case 0 x07:KeyNum+=4;break; P3|=0 x03; /此句必須,否則影響 串口輸出,因?yàn)镻3.0和P3.1為串口輸出 key_vaul=KeyNum; return KeyNum; return 0;/* 串口發(fā)送程序*/#include STC15F2K.H#include intrins.H#include string.h#define S2_S0 0 x01 /P_SW2.1/*變量定義區(qū)*/#define FOSC 18432000#define BAUD 9600#define

55、TRUE 1unsigned char TX,RX;/*函數(shù)聲明區(qū)*/void Uart_Init();void Uart1_SendString(unsigned char *buf);void SendData(unsigned char date);void Delayxms(unsigned int ms);/延時(shí) x msunsigned char Hand(unsigned char *b,unsigned char *p);/判斷是否為相同字符/* 串口初始化程序*/void Uart_Init() S2CON=0 x50; T2H=(65536 - (FOSC/4/BAUD)8

56、; T2L=(65536 - (FOSC/4/BAUD); P_SW2 &=S2_S0; AUXR|=0 x14; IE2=0 x01; EA=1; /* 串口中斷服務(wù)程序*/ void serial() interrupt 8 if(S2CON&0 x01 )/接收到串口數(shù)據(jù)S2CON &= 0 xFE;RX=1;if(S2CON&0 x02)S2CON&=0 xfd; /清除S2TI標(biāo)志位TX=0;/清忙標(biāo)志/* 串口發(fā)送單數(shù)據(jù)*/void SendData(unsigned char date)while(TX);if(!TX)S2BUF=date;TX=1;/* 串口1發(fā)送字符串(ASCII碼)*/void Uart1_SendString(unsigned char *buf)while(*buf)SendData(*buf+);/*函數(shù)名稱:Hand函數(shù)功能:匹配函數(shù)輸入:b為儲(chǔ)存字符串,p為需要搜索的字符串地址函數(shù)輸出:無*/unsigned char Hand(unsigned char *b,unsigned char *p)if(strstr(b,p)!=NULL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論