基于DSP设计正弦信号发生器

合集下载

基于DSP的正弦信号发生器的设计

基于DSP的正弦信号发生器的设计

软件设计
正弦波子程序流程图 :
软件设计
调幅和调相流程图: 调幅和调相流程图:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
结论
文中分析了正弦波的产生原理,并给出了硬 件电路和软件编写流程;设计了一个更好的 实现人机对话的正弦波信号发生器,给出了 显示和键盘的接口电路。该设计改进了传统 的需要用软件界面来输入幅值和频率值的方 法,更方便的实现调节输出波形的幅值和频 率值。
正弦波信号发生的数字实现 产生正弦波的方法有两种:
查表法。 优点:处理速度快;调频调相容易。 不足:要得到较高的精度,存储空间足够大以存放 查找表。 适用:对精度要求不高的场合。 泰勒级数展开法。 优点:需要的存储单元很少;精度高;展开的级数 越多,失真度就越小;调频调相易。 不足:处理速度慢。
正弦波信号发生的数字实现
硬件设计
DSP与LCD显示和键盘连接电路: DSP与LCD显示和键盘连接电路: 显示和键盘连接电路
硬件设计
键盘电路:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
软件设计
主程序流程图: 主程序流程图:
设计采用采用模块化思路来编写,包括主程序、 设计采用采用模块化思路来编写,包括主程序、正 采用模块化思路来编写 弦波产生程序、调幅和调相子程序等功能子程序。 弦波产生程序、调幅和调相子程序等功能子程序。
性差,波形精度不够高且用较多硬件等。
正弦波信号发生器的几种实现方法比较
基于DSP的正弦波信号发生器:
组成:DSP处理芯片、 D/A转换器等。 优点:可程控调幅、调频,调节精度高,实

基于Matlab_DSP Builder的正弦信号发生器设计

基于Matlab_DSP Builder的正弦信号发生器设计

基于Matlab/DSP Builder的正弦信号发生器设计引言近年来随着通信技术的不断发展,信号的正确传输显得日益重要,也就是说要有一个可靠的能产生稳定确信号的发生器,基于Matlab/DSP Builder的正弦信号发生器是利用Matlab/DSP Builder的模块进行的模快化设计,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了、易懂、易学。

使硬件在软件的控制下协调运作。

DSP Builder可以帮助设计者完成基于FPGA的DSP系统设计设计,除了图形化的系统建模外,还可以完成及大部分的设计过程和仿真,直至将设计文件下载到DSP开发板上。

此次实验的目的就是将两者的优势有机的结合在一起,利用DSP的优势开发正弦信号发生器。

在设计中主要采用DSP Builder库中的模块进行系统的模型设计,然后再进行Simulink仿真。

1.设计思想1.1 DSP Builder特点DSP Builder系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL(硬件实现)两个领域的设计工具连接起来,最大程度的发挥了两种工具的优势。

DSP Builder依赖于MathWorks公司的数学分析工具Matlab/Simulink,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compilder把Matlab/Simulink的设计文件(.mdl)转换成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制和编译的tcl脚本。

而对后者的处理可以用Quartus II来实现。

1.2 QuartusII特点QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并且为Altera DSP开发包进行系统模型设计提供了集成综合环境。

QuartusII完全支持VHDL的设计流程,其内部嵌有VHDL逻辑综合器。

正弦发生器的DSP实现

正弦发生器的DSP实现

正弦发生器的DSP实现摘要DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。

DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法电子技能、机械、电声、水声及生物等领域可能经常要用到正弦波,而一般它都由数字集成电路或分立元件构成的信号发生器产生,这里介绍一种用DSP实现的正弦信号发生器,其调幅、调频功能均由软件实现,而且有较好的可扩展性、稳定性,与计算机接口方便。

用DSP设计的正弦信号发生器电路基本,调节方便,误差在万分之一以内,产生的波形失真度较小,而且还有进一步拓展功能,如产生三角波信号、方波信号、直流信号、调制信号等,从而使其能运用到更加广泛的领域中。

关键字:DSP芯片,正弦信号发生器, TMS320C5402, 流程图一、DSP芯片DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。

DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。

1.DSP芯片主要特点根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:(1)在一个指令周期内可完成一次乘法和一次加法。

(2)程序和数据空间分开,可以同时访问指令和数据。

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。

(4)具有低开销或无开销循环及跳转的硬件支持。

(5)快速的中断处理和硬件I/O支持。

(6)具有在单周期内操作的多个硬件地址产生器。

(7)可以并行执行多个操作。

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

2.DSP芯片的分类DSP芯片可以按照下列三种方式进行分类。

(1)按基础特性分这是根据DSP芯片的工作时钟和指令类型来分类的。

如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。

正弦波信号发生器的DSP设计

正弦波信号发生器的DSP设计

正弦波信号发生器的DSP设计摘要:数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。

DSP芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。

本文介绍了正弦信号产生的典型算法,并结合数字振荡器原理,应用迭代法编程完成了TMS320VC5402 DSP 正弦波信号发生器的设计。

关键词:DSP;正弦振荡;信号发生器正弦信号发生器能输出一个幅度可调、频率可调的正弦信号,特别是低频正弦信号发生器在科学研究及生产实践中均有着广泛应用。

目前,常用的信号发生器绝大部分是由模拟电路构成的。

当这种模拟信号发生器用于低频信号输出时,往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大。

而由数字电路构成的低频信号发生器,虽然其低频性能好,但体积较大,价格较贵。

而借助DSP芯片的运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的任意一种信号发生器速度更快,且实现更加简便。

1正弦波信号的产生方式1.1采样回放法通过对已有的标准正弦信号源进行采样得到数据后直接回放或进行变频变幅处理后回放。

该方法的关键在于合理设计高性能的硬件电路,尽量避免信号处理过程中的波形失真,来确保采样数据的精准性。

同时在数字域处理时,数据的回归点数必须满足Nyquist定理,以免频谱混迭情况的发生。

1.2查表法5402的片内ROM中存有256字的正弦及余弦数据表,可以通过程序直接调用该表中的数据,由D/A回放出正弦波。

通过MATLAB模拟仿真自己生成的正弦数据表,不但可以解决频率单一的问题,还可以增加精度,并改善系统的兼容性。

1.3泰勒级数展开法任一角度的正弦及余弦波都可以展开成泰勒级数,取前五项的近似公式为:其中:α为角度值,ω为其对应的弧度值。

通过变换的α值,且利用弧度与频率之间的关系很容易实现变频处理。

1.4数字正弦振荡器数字正弦波振荡器的系统函数可表示为:对应的是在单位圆上有复共轭极点的二阶振荡器,共扼极点为:P1,2=e±jω0,其离散时域脉冲单位冲击响应响应:h(n)=Asin[(n+1)ω0]·u(n)实际应用中对于给定的冲激信号所产生的正弦信号对应的差分方程为:如果系统无阻尼且稳定,我们不对系统加入冲击信号,改变y(-2)的起始值,从而使系统满足起始条件。

DSP课程设计正弦信号发生器的设计(精)

DSP课程设计正弦信号发生器的设计(精)

太原理工大学 DSP课程设计设计题目:正弦信号发生器的设计班级:电信0801班姓名:凌天一、设计目的1、通过实验掌握DSP的软件开发过程2、学会运用汇编语言进行程序设计3、学会用CCS仿真模拟DSP芯片,通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。

二、设计原理本实验产生正弦波的方法是泰勒级数展开法。

泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。

求一个角度的正弦值取泰勒级数的前5项,得近似计算式:x3x5x7x9sin(x)=x-+-+3!5!7!9!2222xxxx =x1-1-1-1-(三、总体方案设计 2⨯3(4⨯5(6⨯7(8⨯9))))本实验是基于CCS开发环境的。

CCS是TI公司推出的为开发TMS320系列DSP 软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。

它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。

通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。

总体思想是:正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。

整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。

四、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。

基于DSP的正弦信号发生器

基于DSP的正弦信号发生器

基于DSP的正弦信号发生器1.正弦信号在各种科学和工程领域中广泛应用,如通信系统、音频处理、医学诊断等。

因此,制作一个能够生成正弦信号的设备是非常必要的。

传统的方法是使用模拟电路,但这种方法需要用到很多电子元器件,难以控制和调整。

同时,传统的模拟电路还容易受到电磁干扰、温度等环境因素的影响,导致输出的信号失真。

因此,数字信号处理(DSP)技术逐渐成为生成正弦波信号的常见方法,能够实现高精度、低失真的输出。

2. 设计概述本文介绍一种基于DSP的正弦信号发生器的设计。

该设计采用TMS320C5505数字信号处理芯片和信号解调电路,通过软件和硬件设计,实现了一个高精度、低失真的正弦信号发生器。

2.1 硬件设计本设计采用了TMS320C5505数字信号处理器集成电路作为主控芯片。

该芯片具有低功耗、高性能、灵活性和易于开发等优点。

除此之外,还需要电源模块、时钟模块、信号解调模块等。

2.2 软件设计本设计采用了C语言进行程序设计。

使用Code Composer Studio作为开发环境,将程序编译后烧录到芯片中。

代码的主要实现过程为:1.生成一个只包含一周期正弦波形的信号2.将该信号送入DA(Digital to Analog)转换器,使其变为模拟信号3.经过信号解调器后输出到外部接口信号的生成采用的是Taylor级数展开,可以实现高精度的波形生成。

信号解调电路主要是由低通滤波器、防干扰电路和放大电路等模块组成。

3. 实验结果经过实验测试,本设计输出的正弦波信号的频率可以在0~10kHz范围内任意设定。

信号的失真率小于0.1%。

同时,本设计还支持正弦波的相位调节和幅度调节等功能。

通过外部的控制,可以实现信号的精准控制和调节。

4.本文介绍了一种基于DSP的正弦信号发生器的设计,通过使用数字信号处理技术,实现了高精度、低失真的正弦波信号的生成。

该设计具有灵活性和可扩展性,可以为各种科学和工程领域提供高精度的正弦信号源。

基于DSP的正弦波信号发生器(汇编语言)

基于DSP的正弦波信号发生器(汇编语言)

正弦波信号发生器一、实验目的1.了解用泰勒级数展开法计算角度正弦值和余弦值;2.了解产生正弦信号的方法;3.熟悉使用汇编语言编写较复杂的程序;4.熟悉在CCS 环境下计算角度正弦值和余弦值及产生正弦波的方法;二、实验原理泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。

正弦函数和余弦函数可以展开成泰勒级数,其表达式:递推公式: sin()2cos()sin[(1)]sin[(2)]cos()2cos()sin[(1)]cos[(2)]nx x n x n x nx x n x n x =---=--- 由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x )、sin(n -1)x 、sin(n -2)x 和cos(n -2)x 。

用这种方法求少数点还可以,如产生连续正弦波、余弦波,则积累误差太大,不可取。

下面主要用泰勒级数展开法求正弦和余弦值,以及产生正弦波的方法。

三、实验内容与步骤1.用泰勒级数展开法计算sin(x)的值;(1)在 CCS 中新建项目:sinx.pjt ,建立文件sinx.asm 、vectors.asm 和sinx.cmd 。

并将此三个文件加入到项目中。

******************************************************* 用泰勒级数开展开式计算一个角度的正弦值 **sin(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9))))*******************************************************.title "sinx.asm".mmregs .def startSTACK: .usect "STACK",10start: STM #STACK+10,SPLD #d_x,DPST #6487H,d_x ;x-->d_x CALLsin_start end:B end sin_start:35792222sin()3!5!7!9! 111123456789(((())))x x x x x x x x x x x =-+-+=----⨯⨯⨯⨯24682222cos()12!4!6!8! 11112345678((()))x x x x x x x x x =-+-+=----⨯⨯⨯.def sin_startd_coeff .usect "coeff",4.datatable: .word 01C7H ;c1=1/(8*9).word 030BH ;c2=1/(6*7).word 0666H ;c3=1/(4*5).word 1556H ;c4=1/(2*3)d_x .usect "sin_vars",1d_squr_x .usect "sin_vars",1d_temp .usect "sin_vars",1d_sinx .usect "sin_vars",1c_1 .usect "sin_vars",1.textSSBX FRCTSTM #d_coeff,AR5RPT #3MVPD #table,*AR5+STM #d_coeff,AR3STM #d_x,AR2STM #c_1,AR4ST #7FFFH,c_1SQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72),T=x^2(1-x^2/72)MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_x ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RET.end*******************************************************中断向量文件vectors.asm******************************************************.title "vectors.asm".ref start.sect ".vectors"B start.end*******************************************************链接命令文件******************************************************vectors.objsinx.obj-O sinx.out-m sinx.map-estartMEMORY{PAGE 0:EPROM: org=0090H,len=0F70HVECS: org=0080H,len=0010HPAGE 1:SPRAM: org=1000H,len=1000HDARAM: org=2000H,len=2000H}SECTIONS{.text :>EPROM PAGE 0.data :>EPROM PAGE 0STACK :>SPRAM PAGE 1sin_vars :>DARAM PAGE 1coeff :>DARAM PAGE 1.vectors :>VECS PAGE 0}(2)编译、链接项目文件sinx.pjt。

基于DSP控制的正弦波和三角波发生器的设计毕业论文 精品

基于DSP控制的正弦波和三角波发生器的设计毕业论文 精品

毕业设计题目名称基于DSP控制的正弦波和三角波发生器的设计学院电气信息工程学院专业/班级自动化09102学生学号指导教师(职称)葛延津(教授)严海领(助教)摘要信号发生器发展到今天,在电子测试、电子设计、模拟仿真、通信工程中,扮演着一个相当重要的角色,有着相当广泛的应用,极大加快了电子测试与设计工作中的效率,在电子技术和信号仿真应用中已发挥了巨大的作用。

本文主要介绍了以TMS320VC5402 DSP为主的信号发生器的设计情况。

这是一个以DSP为核心来实现信号发生器的系统,该系统具有结构简单灵活,抗干扰能力强、产生频率较高、应用广泛等特点。

该系统的组成核心TMS320VC5402 DSP芯片是TI公司生产的16位定点处理芯片,它有运算速度快、具有可编程特性、接口灵活和外围电路丰富等特点。

选择该芯片作为设计信号发生器的核心芯片,能够提高信号发生器所产生信号的频率,使信号发生器有更加广泛的应用。

本设计的硬件部分是有该DSP芯片和D/A转换芯片TLC7528组成,DSP芯片用于产生各种波形,D/A转换芯片用于把数字信号转换为模拟信号。

在以上硬件的基础上,通过软件编程来实现三角波、正弦波等波形。

关键词:DSP;D/A转换器;信号发生器;波形AbstractSignal generator to today, in the electronic testing, electronic design, simulation, communications engineering, plays a very important role, has a very wide range of applications, greatly accelerate the efficiency of the electronic test and design work in the electronics technology and signal simulation applications has played a huge role. This paper describes the design to TMS320VC5402 DSP-based signal generator. This is a core DSP signal generator system, the system structure is simple and flexible, anti-interference ability, resulting in a higher frequency, widely used features.The System is comprised core TMS320VC5402 DSP chip is produced by TI 16-bit fixed-point processing chip, computing speed, programmable features, flexible interface and peripheral circuits rich features. Select the chip to chip as the core of the design of the signal generator, it is possible to improve the signal generator to produce the signal frequency, the signal generator has a broader application. The design of the hardware part is composed of the DSP chip and the D / A converter chip TLC7528 DSP chip for generating various waveforms, D / A converter chip used to convert digital signals to analog signals. On the basis of the above hardware, by software programming to achieve the waveform of the triangular wave, sine wave, etc..Keywords: DSP; D / A converter; signal generator; waveform目录第一章绪论.................................................... - 1 -1.1选题的背景............................................. - 1 -1.2选题的目的及意义....................................... - 1 - 第二章整体方案................................................ - 2 - 第三章硬件系统设计............................................ - 3 -3.1 系统的组成及实现功能................................... - 3 -3.2 硬件系统设计思想....................................... - 3 -3.3 硬件电路方案及电路原理设计 ............................ - 3 -3.4 相关电路介绍........................................... - 4 -3.4.1 核心电路芯片TMS320VC5402...................... - 4 -3.4.2 D/A 转换器TLC7528............................. - 10 -3.4.3 电源电路和晶振电路 ............................. - 14 - 第四章软件系统设计........................................... - 17 -4.1 ICETEK—B2.0说明............................. - 17 -4.2 三角波的设计方案..................................... - 18 - 4.3 正弦波的设计方案...................................... - 21 - 4.4 软件系统.............................................. - 25 - 第五章总结展望............................................... - 28 - 结束语........................................................ - 29 -致谢......................................................... - 30 - 参考文献...................................................... - 31 - 附录......................................................... - 32 -第一章绪论1.1选题的背景信号发生器,主要作为激励信号或仿真信号,广泛应用于电子设计、生物医疗、环保、机械运动、新型材料等各个领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于DSP设计正弦信号发生器一.设计目的设计一个基于DSP的正弦信号发生器二.设计内容利用基于CCS开发环境中的C54X汇编语言来实现正弦信号发生装置。

三.设计原理一般情况,产生正弦波的方法有两种:查表法和泰勒级数展开法。

查表法是使用比较普遍的方法,优点是处理速度快,调频调相容易,精度高,但需要的存储器容量很大。

泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。

本文采用了泰勒级数展开法。

一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:式中:x为θ的弧度值,x=2πf/fs(fs是采样频率;f是所要发生的信号频率。

正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。

整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。

三.总体方案设计本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。

通过计算一个角度的正弦值和余弦值程序可实现正弦波,其步骤如下:1.利用sinx和cosx子程序,计算0°~45°(间隔为0.5°)的正弦和余弦值2.利用sin(2x)=2sin(x)cos(x)公式,计算0°~90°的正弦值(间隔为1°)3.通过复制,获得0°~359°的正弦值4.将0°~359°的正弦值重复从PA口输出,便可得到正弦波四.软件操作DSP 集成开发环境 CCS是 Code Composer Studio 的缩写,即代码设计工作室。

它是 TI 公司推出的集成可视化 DSP 软件开发工具。

DSP CCS 内部集成了以下软件工具:◆ DSP 代码产生工具(包括 DSP 的 C 编译器、汇编优化器、汇编器和链接器)◆ CCS 集成开发环境(包括编辑、建立和调试 DSP 目标程序)◆ 实时基础软件 DSP/BIOS (必须具有硬件开发板)◆ RTDX、主机接口和 API(必须具有硬件开发板)在 CCS 下,用户可以对软件进行编辑、编译、调试、代码性能测试(profile)和项目管理等工作。

CCS 可以提供如下功能:◆ 设置断点◆ 在断点处自动修改窗口◆ 观察变量◆ 观察和编辑存储器和寄存器◆ 利用测试点使数据流在目标系统和文件之间流动◆ 观察调用堆栈◆ 观察图形信号◆ 代码性能测试(profiling)◆ 观察反汇编和 C 指令执行◆ 提供 GEL (通用扩展语言)语言。

此语言能增加一个函数或功能到 CCS 菜单中来完成用户自己设定的任务,是扩展 CCS 功能的专用语言。

使用 CCS,可以加速 DSP 的开发进程,是 DSP 开发应用的得力助手。

这里以 C54x DSP 的 CCS 3.1 为例介绍正弦波的产生。

利用 CCS 集成开发环境,用户可以在一个开发环境下完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节。

1.创建工程(project)文件选择Project→New,在“Project”文本框中键入将要创建的工程项目名,本例工程项目名为“sin”选择Project→Add Files to Project,将 sine.asm文件自动添加到Project→Source 中。

用同样的方法将 sine.cmd 文件添加到对应的目录中。

3.构建工程,工程所需文件编辑完成后,可以对该工程进行编译链接,产生可执行文件,为调试做准备。

选择Project→Build,系统提示没有出错信息后,系统自动生成一个可执行文件,sine.out 文件。

4.载入可执行文件选择File→Load Program 载入编译链接好的可执行文件sine.out 5.运行程序选择Debug→Run运行,可以通过查看内存表等方法,看到程序运行的结果。

6.观察数据和图形选择View→Graph→Time/Frequence调整输出图形参数五.源程序正弦波源程序sin.asm.title "sin.asm".mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosx sin_x: .usect "sin_x",360STACK: .usect "STACK",10k_theta .set 286PA0 .set 0start:.textSTM #STACK+10,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LDM AR1,ALD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sinxCALL cosxLD #d_sinx,DPLD @d_sinx,16,AMPYA @d_cosxSTH B,1,*AR6+MAR *AR1+0loop1: STM #sin_x+89,AR7STM #88,BRC RPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRCSTM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6STM #1,AR0STM #360,BKloop4: PORTW *AR6+0%,PA0sinx:.def d_xs,d_sinx.datatable_s .word 01C7H.word 030BH.word 0666H.word 1556Hd_coef_s .usect "coef_s",4d_xs .usect "sin_vars",1 d_squr_xs .usect "sin_vars",1 d_temp_s .usect "sin_vars",1 d_sinx .usect "sin_vars",1 d_1_s .usect "sin_vars",1 .textSSBX FRCT STM #d_coef_s,AR5 RPT #3 MVPD #table_s,*AR5+ STM #d_coef_s,AR3 STM #d_xs,AR2 STM #d_1_s,AR4 ST #7FFFH,d_1_s SQUR *AR2+,A ST A,*AR2 ||LD *AR4,B MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2 MASR *AR2-,*AR3+,B,A MPYA *AR2+ St B,*AR2MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 ||LD *AR4,B MASR *AR2-,*AR3+,B,A MPYA d_xs STH B,d_sinx RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c", 4.datatable_c .word 0249H.word 0444H.word 0AABH.word 4000Hd_xc .usect "cos_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_1_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5RPT #3MVPD #table_c,*AR5+STM #d_coef_c,AR3 STM #d_xc,AR2 STM #c_1_c,AR4 ST #7FFFH,c_1_c SQUR *AR2+,A||LD *AR4,B MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2 MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 ||LD *AR4,B MASR *AR2-,*AR3+,B,A SFTA A,-1,ANEG AMPYA *AR2+MAR *AR2+RETDADD *AR4,16,BSTH B,*AR2RET.end正弦波程序链接命令文件sin.cmd-x.\Debug\vectors.obj-x.\Debug\sin.obj-o sin.out-m sin.map-e startMEMORY{PAGE 0: EPROM: org=0E00H,len=1000H VECS: org=0FF80H,len=0080HDARAM1: org=0080H, len=0010HDARAM2: org=0090H, len=0010HDARAM3: org=0200H, len=0200H}SECTIONS{.text :>EPROM PAGE 0.data :>EPROM PAGE 0STACK :>SPRAM PAGE 1sin_vars :>DARAM1 PAGE 1coef_s :>DARAM1 PAGE 1cos_vars :>DARAM2 PAGE 1coef_c :>DARAM2 PAGE 1sin_x : align(512){} > DARAM3 PAGE 1.vectors :>VECS PAGE 0}六.实验结果及分析将程序装载到DSP目标芯片中,波形实现结果可以在CCS图形显示界面直观地表示出来输出结果显示,在CCS图形观察窗口得到了频率稳定,信号干扰小,波形失真度较小的正弦信号;七.设计总结通过这次基于DSP的正弦信号发生器的设计,使我明白了要完成一个产品是相当不容易的,哪怕是一个小小的正弦波发生器,尤其是编写代码的时候,稍微的马虎就会把大小写打错,导致程序最后错误不断。

通过设计也锻炼了我解决困难的能力,比如说最后总是有一个警告error: system error, can't open file 'vectors.obj' for input:No such file or directory最后通过百度找到了答案,要在cmd文件中的vectors.obj前面添加-x.\Debug\代码才可以正常运行。

相关文档
最新文档