基于DSP的正弦波信號發生器設計_第1頁
基于DSP的正弦波信號發生器設計_第2頁
基于DSP的正弦波信號發生器設計_第3頁
基于DSP的正弦波信號發生器設計_第4頁
基于DSP的正弦波信號發生器設計_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE1目錄TOC\o"1-1"\h\z\u第1章緒論 11DSP簡介 1第2章總體方案的分析和設計 2 22.2 2第3章硬件設計 33.1組成 33.2部分 43.4人機接口部分 5第4章軟件設計 64.1流程圖 64.2正弦信號發生器程序清單 7第5章總結 12參考文獻 12第1章緒論1DSP簡介數字信號處理(DigitalSignalProcessing,簡稱DSP)是一門涉及許多學科而又廣泛應用于許多領域的新興學科。20世紀60年代以來,隨著計算機和信息技術的飛速發展,數字信號處理技術應運而生并得到迅速的發展。數字信號處理是一種通過使用數學技巧執行轉換或提取信息,來處理現實信號的方法,這些信號由數字序列表示。在過去的二十多年時間里,信號處理已經在通信等領域得到極為廣泛的應用。圖一是數字信號處理系統的簡化框圖。此系統先將模擬信號轉換為數字信號,經數字信號處理后,再轉換成模擬信號輸出。其中抗混疊濾波器的作用是將輸入信號x(t)中高于折疊頻率的分量濾除,以防止信號頻譜的混疊。隨后,信號經采樣和A/D轉換后,變成數字信號x(n)。數字信號處理器對x(n)進行處理,得到輸出數字信號y(n),經D/A轉換器變成模擬信號。此信號經低通濾波器,濾除不需要的高頻分量,最后輸出平滑的模擬信號y(t)。抗混疊抗混疊濾波器A/D數字信號處理器D/A低通濾波器x(n)y(n)x(t)y(t)圖1.1數字信號處理系統簡化框圖數字信號處理是以眾多學科為理論基礎的,它所涉及的范圍極其廣泛。例如,在數學領域,微積分、概率統計、隨機過程、數值分析等都是數字信號處理的基本工具,與網絡理論、信號與系統、控制論、通信理論、故障診斷等也密切相關。近來新興的一些學科,如人工智能、模式識別、神經網絡等,都與數字信號處理密不可分。可以說,數字信號處理是把許多經典的理論體系作為自己的理論基礎,同時又使自己成為一系列新興學科的理論基礎。到5V左右,以供后級模擬電路濾波使用。這一部分電路由兩個芯片組成。一片用三態緩沖器,由于PWM口的輸出為3.3V的TTL電平,這樣,在設計時就應當選用輸入具有5V的TTL輸入,CMOS輸出電平的轉換芯片(如TI公司的74HCT04);另一片則可選用TOSHIBA公司出品的光電耦合器6N137;輸出端連接的5V精密穩壓電源可選用BURR-BROWN公司生產的REF02型精密穩壓電源,以輸出標準的5V電壓。

系統中的減法電路的主要作用是把0-10V直流脈動信號的轉換成-5~+5V的正弦交流信號,并使其電壓增益為1。設計使可利用差分式電路來實現其功能,為了簡化電路,可以選用較為常用的AD公司的AD524,并將AD524接成電壓跟隨器的形式,同時適當的選取電阻以滿足要求,此外,為了使產生的正弦波信號具有2-5mA的驅動能力,可選用AD624來構成末級的信號放大電路。AD624是高精度低噪聲儀用放大器,若外接一只增益電阻,即可得到1-1000之間的任意增益值,其誤差小于1%。由于AD624的建立時間只有15μs,所以它非常適宜在高速數據采集系統中使用。3.4人機接口部分3.4.1驅動器設計位驅動器電路由兩片集成電路組成,即由位驅動的CMOS芯片和將TTL電平轉換成CMOS電平的電平轉換芯片組成,電平轉換芯片可以和輸出通道的電平轉換芯片共用一片74HCT244(本部分使用4路,輸出通道使用3路),其主要作用是對DSP輸出的3.3VTTL電平與5VCMOS電平進行匹配,從而帶動具有CMOS電平的位驅動器,根據動態掃描顯示的要求,位驅動器需要選用每路輸出吸收電流都要大于200mA的芯片,因此,本設計選用了TI公司的74LS06來做LED的大電流驅動器件。3.4.2鍵盤設計本系統選用四個獨立式按鍵,分別接入PF3-PF6口,并使用四個220Ω上拉電阻接VCC。所謂獨立式,就是將每一個獨立鍵按一對一地直接接到I/O輸入線上,而在讀鍵值時,直接讀I/O口,每一個鍵的狀態通過讀入鍵值的一位(二進制位)來反應,所以這種方式也稱為一維直讀方式,這種方式的查鍵軟件比較簡單,但占用I/O線較多,一般在鍵的數量較少時采用,不過,由于DSP芯片有足夠的I/O接口可供使用,因而可大大方便設計,設計時可以充分利用這一特點來連接硬件,至于按鍵的削抖動措施,則可在軟件中完成。第4章軟件設計4.1流程圖本系統軟件可以按照模塊化設計思想來編寫,包括主程序、常數計算程序、占空比計算程序和相應的一些功能子程序,主程序用于調用各功能子程序、初始化變量、查詢鍵盤、判斷顯示數據是否需要刷新、同時判斷一個脈沖是否完成發送等工作,具體方案見圖4.1所示的流程圖。主程序中的循環子程序開始主程序中的循環子程序開始判斷20ms是否到?判斷0.1s是否到?刷新顯示輸出寄存器,奇次顯示頻率,偶次頻率,偶次顯示幅值判斷脈沖發出標志寄存器=1?清脈沖發出標志寄存器,調計算占空比程序返回判斷是否在延時程序中調用本程序圖4.1主程序流程圖在程序中,應在第N-1個脈沖周期里計算占空比,并在第N個脈沖周期里輸出波形,這就要求在設計時要在一個脈沖周期內完成計算,如果選用20MHz的晶振,那么,在一倍頻下,執行一條執行只需50ns,若輸出400Hz的正弦波,即每一個周期(即2.5ms)要輸出200個脈沖,這樣,也就是說,一個脈沖需要12.5μs(相當于12500/50=250條指令)。而執行一個占空比的計算程序只需要幾十條指令,這種算法從軟件開銷上考慮是可以實現的。4.2正弦信號發生器程序清單;ThisfunctiongeneratesthesinewaveofangleusingtheTaylorseriesexpansion;sin(theta)=x(1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9))));cos(theta)=1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9)));sin(2*theta)=2*sin(theta)*cos(theta).title"sin.asm".mmregs.def_c_int00.refsinx,d_xs,d_sinx,cosx,d_xc,d_cosxsin_x:.usect"sin_x",360STACK:.usect"STACK",10k_theta.set286PA0.set0_c_int00.textSTM#STACK+10,SPSTMk_theta,AR0STM0,AR1STM#sin_x,AR6STM#90,BRCRPTBloop1-1LDMAR1,ALD#d_xs,DPSTLA,@d_xsSTLA,@d_xcCALLsinxCALLcosxLD#d_sinx,DPLD@d_sinx,16,AMPYA@d_cosxSTHB,1,*AR6+MAR*AR1+0loop1:STM#sin_x+89,AR7STM#88,BRCRPTBloop2-1LD*AR7-,ASTLA,*AR6+loop2:STM#179,BRCSTM#sin_x,AR7RPTBloop3-1LD*AR7+,ANEGASTLA,*AR6+loop3:STM#sin_x,AR6STM#1,AR0STM#360,bkloop4:PORTW*AR6+0%,PA0Bloop4sinx:.defd_xs,d_sinx.datatable_s.word01c7h.word030bh.word0666h.word1556hd_coef_s.usect"coef_s",4d_xs.usect"sin_vars",1d_squr_xs.usect"sin_vars",1d_temp_s.usect"sin_vars",1d_sinx.usect"sin_vars",1c_l_s.usect"sin_vars",1.textSSBXFRCTSTM#d_coef_s,AR5RPT#3MVPD#table_s,*AR5+STM#d_coef_s,AR3STM#d_xs,AR2STM#c_l_s,AR4ST#7FFFh,c_l_sSQUR*AR2+,ASTA,*AR2||LD*AR4,BMASR*AR2+,*AR3+,B,AMPYAASTHA,*AR2MASR*AR2-,*AR3+,B,AMPYA*AR2+STB,*AR2||LD*AR4,BMASR*AR2-,*AR3+,B,AMPYA*AR2+STB,*AR2||LD*AR4,BMASR*AR2-,*AR3+,B,AMPYAd_xsSTHB,d_sinxRETcosx:.defd_xc,d_cosxd_coef_c.usect"coef_c",4.datatable_c.word0249h.word0444h.word0aabh.word4000hd_xc.usect"cos_vars",1d_squr_xc.usect"cos_vars",1d_temp_c.usect"cos_vars",1d_cosx.usect"cos_vars",1c_l_c.usect"cos_vars",1.textSSBXFRCTSTM#d_coef_c,AR5RPT#3MVPD#table_c,*AR5+STM#d_coef_c,AR3STM#d_xc,AR2STM#c_l_c,AR4ST#7FFFh,c_l_cSQUR*AR2+,ASTA,*AR2||LD*AR4,BMASR*AR2+,*AR3+,B,AMPYAASTHA,*AR2MASR*AR2-,*AR3+,B,AMPYA*AR2+STB,*AR2||LD*AR4,BMASR*AR2-,*AR3+,B,ASFTAA,-1,ANEGAMPYA*AR2+MAR*AR2+RETDADD*AR4,16,BSTHB,*AR2RET.endMEMORY{PAGE0:EPROM:org=0E000h,len=1000hVECS:org=0FF80h,len=0080hPAGE1:SPRAM:org=0060h,len=0020hDARAM1:org=0080h,len=0010hDARAM2:org=0090h,len=0010hDARAM3:org=0200h,len=0200h}SECTIONS{.text:>EPROMPAGE0.data:>EPROMPAGE0STACK:>SPRAMPAGE1sin_vars:>DARAM1PAGE1coef_s:>DARA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論