

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于CPLD的信號發(fā)生器設計 </p><p> 摘 要:本文給出了一種采用CPLD作為主控器的信號發(fā)生器設計方案。由于采用EDA技術進行設計,該方案具有工作速度快,硬件體積小,可靠性高等優(yōu)點。</p><p> 關鍵詞:信號發(fā)生器;VHDL ;EDA ;CPLD </p><p><b> 1 引言</b>&
2、lt;/p><p> 隨著社會的發(fā)展,人們對生活的要求也逐步提高,也越來越希望在各個方面都有很大的提高,尤其是在信號方面,信號發(fā)生器作為提供測試用電信號的儀器必不可少。傳統(tǒng)信號發(fā)生器要用模擬器件來實現(xiàn),后來出現(xiàn)了用數(shù)字電路來設計的方案,例如采用單片機等。EDA技術的出現(xiàn)與可編程器件的應用改變了數(shù)字電路的設計方法。采用可編程器件進行項目開發(fā)具有費用低、開發(fā)時間短的特點,有利于新產品占領市場。本文給出了一種采用CPLD
3、作為主控部件的信號發(fā)生器設計方案,在設計輸入時采用VHDL進行描述,再連入外圍電路與CPLD構建起整個系統(tǒng)。</p><p><b> 2 系統(tǒng)設計</b></p><p><b> 2.1 設計要求</b></p><p> 信號發(fā)生器能夠產生正弦波、方波、三角波,并可通過開關選擇輸出波形。</p>
4、<p> 2.2 設計思路 </p><p> 根據(jù)設計要求,智能信號發(fā)生器由4部分組成,既電源模塊、時鐘信號發(fā)生器、主控器、D/A轉換模塊,系統(tǒng)結構如圖1所示。晶體振蕩器產生穩(wěn)定度很高的時鐘信號,在時鐘信號的作用下,主控器產生頻率可變的波形數(shù)據(jù)信號,經數(shù)/摸轉換電路最終輸出所需要的波形。</p><p> 圖1 系統(tǒng)結構框圖 </p><p&g
5、t;<b> 2.3 模塊設計</b></p><p> 2.3.1 主控器設計</p><p> 在主控器內部也共有四個模塊,既三角波模塊,正弦波模塊,方波模塊和一個控制模塊,通過編程可以分別設計這四個模塊。</p><p> 圖3 CPLD內部控制原理圖</p><p> 2.3.1.1 三角波模塊
6、 </p><p> 三角波模塊是在設計時置一變量作為工作狀態(tài)標志,在此變量全為0時,當檢測到時鐘的上升沿時進行加同一個數(shù)操作,全為0時,進行減同一個數(shù)操作。由于A/D轉換采用12位的ADC7545芯片,且設64個時鐘為一個三角波周期,輸出每次加/減8。設計程序如下:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD
7、_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY delta IS</p><p> PORT(clk,reset:IN STD_LOGIC;</p><p> q: OUT STD_LOGIC_VECTOR(7 DOWNT
8、O 0));</p><p> END delta ;</p><p> ARCHITECTURE behave OF delta IS</p><p><b> BEGIN</b></p><p> PROCESS(clk,reset)</p><p> VARIABLE
9、tmp: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> VARIABLE a: STD_LOGIC;</p><p><b> BEGIN</b></p><p> IF reset=’0’THEN</p><p> tmp:=”00000000”;</p>&l
10、t;p> ELSIF clk’EVENT AND clk=’1’THEN</p><p> IF a=’0’ THEN</p><p> IF tmp=”11111110”THEN</p><p> tmp:=”11111111”;</p><p><b> a:=’1’;</b></p&
11、gt;<p><b> ELSE</b></p><p> tmp:=tmp+1; -------- 遞增運算</p><p><b> END IF;</b></p><p><b> ELSE</b></p><p>
12、 IF tmp=”00000001”THEN</p><p> tmp:=”00000000”;</p><p><b> a:=’0’; </b></p><p><b> ELSE</b></p><p> tmp:=tmp-1; --------
13、-遞減運算</p><p><b> END IF;</b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> q<=tmp;</b></p>
14、<p> END PROCESS;</p><p> END behave;</p><p> 2.3.1.2 正弦波模塊 </p><p> 正弦波模塊是對一個正弦波周期分為64個采樣點,然后量化為8位2進制數(shù)據(jù),最大值為255,最小值為0,由此得到正弦波表,經D/A轉換得到波形。設計程序為:</p><p>
15、LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY sin IS</p><p> PORT(clk,clr:IN STD_LOGIC;</p&
16、gt;<p> d: OUT INTEGER RANGE 0 TO 255);</p><p><b> END sin;</b></p><p> ARCHITECTURE behave OF sin IS</p><p><b> BEGIN</b></p><
17、p> PROCESS(clk,clr)</p><p> VARIABLE tmp: INTEGER RANGE 0 TO 63;</p><p><b> BEGIN</b></p><p> IF clr=’0’THEN</p><p><b> D<=0;</b>
18、;</p><p> ELSIF clk’EVENT AND clk=’1’THEN</p><p> IF tmp=63 THEN ---------一個周期取64點</p><p><b> tmp:=0;</b></p><p><b>
19、 ELSE</b></p><p> tmp:=tmp+1;</p><p><b> END IF;</b></p><p> CASE tmp IS ----查表輸出</p><p> WHEN 00=>d<=255;
20、WHEN 01=>d<=254; </p><p> WHEN 02=>d<=252; WHEN 03=>d<=249; </p><p> WHEN 04=>d<=245; WHEN 05=>d<=239; </p><p> WHEN 06=>d<=233; W
21、HEN 07=>d<=225;</p><p> WHEN 08=>d<=217; WHEN 09=>d<=207; </p><p> WHEN 10=>d<=197; WHEN 11=>d<=186; </p><p> WHEN 12=>d<=174; WHE
22、N 13=>d<=162; </p><p> WHEN 14=>d<=150; WHEN 15=>d<=137; </p><p> WHEN 16=>d<=124; WHEN 17=>d<=112; </p><p> WHEN 18=>d<=99; WHEN
23、 19=>d<=87; </p><p> WHEN 20=>d<=75; WHEN 21=>d<=64; </p><p> WHEN 22=>d<=53; WHEN 23=>d<=43; </p><p> WHEN 24=>d<=34; WHEN 25=&
24、gt;d<=26; </p><p> WHEN 26=>d<=19; WHEN 27=>d<=13;</p><p> WHEN 28=>d<=8; WHEN 29=>d<=4; </p><p> WHEN 30=>d<=1; WHEN 31=>d<=0;
25、 </p><p> WHEN 32=>d<=0; WHEN 33=>d<=1; </p><p> WHEN 34=>d<=4; WHEN 35=>d<=8; </p><p> WHEN 36=>d<=13; WHEN 37=>d<=19; </p>
26、<p> WHEN 38=>d<=26; WHEN 39=>d<=34; </p><p> WHEN 40=>d<=43; WHEN 41=>d<=53; </p><p> WHEN 42=>d<=64; WHEN 43=>d<=75; </p><p
27、> WHEN 44=>d<=87; WHEN 45=>d<=99; </p><p> WHEN 46=>d<=112; WHEN 47=>d<=124;</p><p> WHEN 48=>d<=137; WHEN 49=>d<=150; </p><p>
28、 WHEN 50=>d<=162; WHEN 51=>d<=174; </p><p> WHEN 52=>d<=186; WHEN 53=>d<=197; </p><p> WHEN 54=>d<=207; WHEN 55=>d<=217; </p><p>
29、 WHEN 56=>d<=225; WHEN 57=>d<=233; </p><p> WHEN 58=>d<=239; WHEN 59=>d<=245; </p><p> WHEN 60=>d<=249; WHEN 61=>d<=252; </p><p>
30、WHEN 62=>d<=254; WHEN 63=>d<=255; </p><p><b> END CASE;</b></p><p> END IF;</p><p> END PROCESS;</p><p> END behave;</p>&l
31、t;p><b> 方波模塊 </b></p><p> 方波模塊設計是交替送出全0和全1,并以32個延時實現(xiàn),64個時鐘為一個周期。設計程序為:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY
32、square IS</p><p> PORT(clk,clr:IN STD_LOGIC;</p><p> q: OUT INTEGER RANGE 0 TO 255);</p><p> END square;</p><p> ARCHITECTURE behave OF square IS </p
33、><p> SIGNAL a:BIT;</p><p><b> BEGIN</b></p><p> PROCESS(clk,clr)</p><p> VARIABLE cnt: INTEGER ;</p><p><b> BEGIN</b></p
34、><p> IF clr=’0’ THEN </p><p><b> a<=’0’;</b></p><p> ELSIF clk’EVENT AND clk=’1’THEN </p><p> IF cnt<63 THEN</p><p> cnt:=cnt
35、+1;</p><p><b> ELSE</b></p><p><b> Cnt:=0;</b></p><p> a<=NOT a ;</p><p><b> END IF;</b></p><p><b> END
36、 IF;</b></p><p> END PROCESS;</p><p> PROCESS(clk,a)</p><p><b> BEGIN</b></p><p> IF clk’EVENT AND clk=’1’THEN </p><p> IF a
37、=’1’ THEN</p><p><b> q<=255;</b></p><p><b> ELSE</b></p><p><b> q <=0;</b></p><p><b> END IF;</b></p>
38、<p><b> END IF;</b></p><p> END PROCESS;</p><p> END behave; </p><p> 2.3.1.4 控制模塊</p><p> 控制模塊是通過SEL0和SEL1來選擇波形,并且用reset作為清零開關結束上一次的波形選擇。通過
39、q0—q7輸出。設計程序為:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY ch61a IS</p><p> PORT(sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0);</p>
40、<p> d0,d1,d2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); </p><p> q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); </p><p> END ch61a;</p><p> ARCHITECTURE behave OF ch61a IS <
41、;/p><p> PROCESS(sel)</p><p><b> BEGIN </b></p><p> CASE sel IS</p><p> WHEN “00”=>q<=d0; -----------三角波形出</p><p> WHEN
42、 “01”=>q<=d1; ------------正弦波輸出 </p><p> WHEN “10”=>q<=d2; -----------方波形輸出 </p><p> WHEN OTHERS=>NULL;</p><p> END CASE;</p&
43、gt;<p> END PROCESS;</p><p> END behave;</p><p> 2.3.2 D/A轉換模塊 </p><p> 圖4 D/A轉換電路</p><p> 電路中,AD7545將波形數(shù)據(jù)轉換為模擬信號;LF353進行信號濾波和整形。</p><p&g
44、t; 2.3.3 晶振電路模塊 </p><p><b> 圖5 晶振電路</b></p><p> 在此電路中,通過12M的石英晶體和電容及74LS04來產生12MHz的頻率電路。</p><p> 2.3.4 電源模塊</p><p><b> 圖6 電源原理圖</b><
45、;/p><p> 在此電路中,220V電壓經變壓器到整流橋能產生直流電壓,再通過電容濾波,通過7805和7905來產生穩(wěn)定的+5V和-5V電壓。</p><p><b> 2.4 設計驗證</b></p><p> 圖7 三角波仿真圖</p><p><b> 圖8 正弦波仿真</b><
46、;/p><p><b> 圖9 方波仿真圖</b></p><p> 2.5 印制電路板設計 </p><p> 圖10 系統(tǒng)原理圖</p><p> 圖11 PCB板圖</p><p><b> 圖12 3D圖</b></p><p>
47、;<b> 3 結束語</b></p><p> 本文介紹了一種基于CPLD的信號器的設計方案,用VHDL語言來設計主控器部分,并用D/A轉換將數(shù)字信號轉換成模擬信號用示波器顯示出波形。主控器部分采用MAX+PLUS II進行仿真,仿真結果驗證了設計的正確性。</p><p><b> 致 謝</b></p><p&
48、gt; 在作者設計的過程中,指導老師**給予了大力支持,陳老師認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和深厚的理論水平使作者受益匪淺。在此表示感謝!</p><p><b> 參考文獻</b></p><p> [1] 李國洪,沈明山.可編程器件EDA技術與實踐[M]. 北京:機械工業(yè)出版社,2004</p><p> [2] 王金明.Ver
49、ilog HDL程序設計教程[M]. 北京:人民郵電出版社,2004</p><p> [3] 潘松、黃繼業(yè).EDA技術實用教程[M]. 北京:科學出版社,2002</p><p> [4] 徐惠民,安德寧. 數(shù)字邏輯設計與VHDL描述[M]. 北京: 機械工業(yè)出版社, 2002</p><p> [5] 杜建國. Verilog HDL 硬件描述語言[M].
50、 北京:國防工業(yè)出版社, 2004.1</p><p> [6] 廖裕平,陸瑞強. 數(shù)字電路設計—使用MAX+plus II[M]. 北京:清華大學出版社,2001</p><p> Signal Generator Design Based on CPLD</p><p> Name: Liu Zhiyi Student Number:200440602
51、115 </p><p> Abstract: This article gives a signal generator design using CPLD as the main controller. As a result of using EDA technique, the design proposal has many advantages such as of fast working spe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設計--信號發(fā)生器
- eda課程設計-簡易信號發(fā)生器
- eda課程設計--dds信號發(fā)生器
- eda課程設計——基于dds的正弦信號發(fā)生器設計
- eda課程設計--基于fpga的dds信號發(fā)生器設計
- eda課程設計---函數(shù)信號發(fā)生器的設計
- eda設計實驗課程設計-函數(shù)信號發(fā)生器
- 基于vhdl語言信號發(fā)生器的設計--eda課程設計
- eda課程設計-多功能波形信號發(fā)生器
- eda音樂發(fā)生器課程設計
- eda課程設計報告---正弦函數(shù)信號發(fā)生器的設計
- 信號發(fā)生器課程設計----函數(shù)信號發(fā)生器
- eda課程設計--任意波形發(fā)生器
- 信號發(fā)生器課程設計報告--函數(shù)信號發(fā)生器的設計
- 信號發(fā)生器課程設計---函數(shù)發(fā)生器的設計
- eda課程設計報告--音樂發(fā)生器設計
- 函數(shù)信號發(fā)生器課程設計--基于labview的函數(shù)信號發(fā)生器的設計
- 課程設計--信號發(fā)生器設計
- eda信號發(fā)生器的課程設計說明書
- eda課程設計報告--樂曲發(fā)生器
評論
0/150
提交評論