一个DSP开发者的感受

时间:2019-05-12 14:11:05下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《一个DSP开发者的感受》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《一个DSP开发者的感受》。

第一篇:一个DSP开发者的感受

一个DSP开发者的感受

我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一写自己的感受,一家之言,欢迎指教。我上研究生的第一天起根据老板的安排就开始接触DSP,那时DSP开发在国内高校刚刚开始,一台DSP开发器接近一万还是ISA总线的,我从206开始240、2407A都作过产品,对5402、2812、5471在产品方案规划制定和论证时也研究过。由于方向所限对6X、8X系列没有接触。

我发现在国内无论在公司或高校许多地方为了加快开发周期往往把一个产品开发分为硬件和软件两个相对独立部分,由不同的人完成。这在具有一定技术和管理基础的公司,由总设计师统一规划协调,分任务并行完成的情况下是可行的,也是符合现代产品开发规律的。但是在高校人员的流动很大,研究生的有效科研时间很短、基础差(许多研究生起步时对电熔、电阻、三极管的分类和选型都很困难,我也是这样过来的)更不用说系统规划设计了,况且许多老板自己也不太懂,师兄有自己的任务,他们搞明白时也毕业了。在许多高校做DSP就是找一个算法加到自己的主程序里,在板子上跑一下,基本达到效果就可以了,至于可靠性是次要的,产业化无从谈起,这已经算不错的了。

其实我觉得一个系统的完成,系统的规划是最重要的,在规划时对硬件设计的知识和认识是决定性的,它可以让你知道什么是可行的,什么是不可行的,当你同时具有软件设计能力时,就可以合理的分配系统功能,完成使用VHDL进行系统行为描述-—系统功能划分—— 系统子结构设计这样的自顶向下的设计规划流程,成为系统设计专家、项目经理,否则只是硬件工程师、软件工程师。无论作51、196、还是DSP都是这样。

下面分别谈谈我对硬件和软件设计的感受

硬件设计是系统设计的关键,国内和国外产品的差距往往是硬件设计水平高低决定的,任何软件设计思想没有可靠的物理载体都是空中楼阁,纸上谈兵。学校的研究生很多都想避开硬件设计,对于一个全新的设计与其说不屑不如说不敢。试想一下烧几个片子的压力要比跑飞几段程序的压力大的多,尤其是功率器件,一旦烧掉,弄不好火光冲天,人的自信都没了。况且改一次板周期长,经费高,还不知行不行。其实在国外实力一般的公司也是尽量避免硬件的更新设计,产品一旦定型往往通过软件升级,这是公司的发展策略,对个人而言物以希为贵,培养一个硬件设计师往往要比软件设计师时间长花费多。在设计dsp硬件时,开始设计最小系统板,系统按功能分板设计调试,注意分板电路的稳定性可能不如整板电路,要多加入抗干扰环节,分板间的引线包括电源线地线要短,尽量在10公分以内,实在不行加入光耦隔离、采用隔离电源。切记电源线、地线的干扰远比信号干扰对系统的危害大得多,又常常被人忽视。电路板工作正常的先决条件就是电源正常!当分板电路正常后再更居情况设计整板电路。在调试时发现的问题一定要找到原因解决,即使是飞线,割线,不要寄希望于下一板改了再看,除非原理性错误。每一个功能环节多准备几套方案。DSP的选型要根据系统功能而定,2000是一个功能比较全的控制器,但运算性能相对低,但目前大部分控制类、家电类包括中低层次的工业总线通信产品足够了,281X不错但太贵,而且开发技术不成熟。54XX更像一个协处理器,其实高端产品5471就很好,功能完*,但BGA封装对产品的开发有一定难度。如果没有从事过嵌入式系统开发的朋友其实可以从51看起,许多 1 思想是共通的,51很经典没有哪一款微处理器像51那样使用持久和普遍。在硬件设计时更多的精力放在外围电路设计上,外围电路设计的灵活性要比DSP本身高得多,难度大得多。建议多考虑CPLD。

软件设计上,着眼点不要仅局限于某种算法和控制策略,而是软件系统框架的制定,即操作系统的选择和实现,算法和控制策略只是其中技巧性很强的子程序和子程序间参数相互关系,建议设计软件时能具有操作系统、数据结构和编译原理方面的知识,特别是使用C。对DSP的内部硬件结构一定要掌握,特别是中断结构和流程、流水线操作,不然飞都不知道怎么飞的。在语言选择上我当时是这么给自己规定的先编20个左右的汇编程序,每个代码量超过4K,使用语句范围覆盖全部语句的60%-70%,在此基础上使用C。现在发现用C构建程序的主体框架(操作系统)比较快而其不容易出错,(我现在正在用ASM根据UCOSII的思想重写自己的操作系统)但对系统实时性影响比较大的运算算法一般采用MATLAB——C——ASM的办法仿真调试优化,这里的优化不单单是利用优化器优化,而是根据数据的特点改变运算方法,以除法为例C里的/号其实掩盖了许多技巧,当除数为常数时就可以放大倒数移位相乘移位的办法进行,精度高速度快。这些办法只有掌握了ASM语言并用ASM语言思考才会熟练应用。另外我想告诉一些作算法特别是控制算法的朋友,千万不要随意评判一个算法的优劣,在程序中程序和代码优化的程度往往影响了控制效果好坏,而不是算法本身的思想。其实在实际中往往PID甚至PI、PD就够了,神经元、模糊、小波适用于研究和写论文,模糊在实际中用的多一点,主要是小***用的比较成熟,我再恨***人,这点也服气,小***就是滑,许多物理现象搞不透,就用这法,还管用,题外话。

最后我想说的是,当我们面对市场要求时,产品往往考虑的是可靠性、性能、价格而不是你用的什么芯片,在满足性能的基础上结构越简单就越可靠,芯片越通用价格就越低,能用51就不用196,能用2407就不用2812,除非把芯片本身作买点利用高成本赢取高利润。无论2000还是5000、6000系列都有市场前景,关键是要做深做透

获取知识的方法、处理项目的能力是相通的,具体的说就是不要把目光盯在做硬件还是做软件上,用ASM还是C,要勤动手打好基础,提高自己对系统总体设计的能力,从系统的眼光看问题。为什么都是做DSP的有的毕业拿3000,有的5000、8000,除了运气和关系外,重要的是你对事物的认识深度和高度。我一直都记住这句话:有前途的人做什么都有前途,没前途的人做什么都没前途。

第二篇:基于DSP开关电源

基于DSP的开关电源

摘要

本文以TMs320LF2407A为控制核心,介绍了一种基于DSP的大功率开关电源的设计方案。该电源采用半桥式逆变电路拓扑结构,应用脉宽调制和软件PID调节技术实现了电压的稳定输出。最后,给出了试验结果。试验表明,该电源具有良好的性能,完全满足技术规定要求。关键字:DSP;开关电源;PID调节

ABSTRACT In this paper,setting TMs320LF2407A as the control center, it describes a DSP-based high-power switching power source design.The power supply uses a half-bridge inverter circuit topology, applications and software PID regulator pulse width modulation technology to achieve a stable output voltage.Finally, the experimental results was given.The experimental results show that the power supply has a good performance, fully meeting the technical requirements.Key Words: DSP;Switching power supply;PID

0 引 言

信息时代离不开电子设备,随着电子技术的高速发展,电子设备的种类与日俱增,与人们的工作、生活的关系也日益密切。任何电子设备又都离不开可靠的供电电源,它们对电源供电质量的要求也越来越高。

目前,开关电源以具有小型、轻量和高效的特点而被广泛应用于电子设备中,是当今电子信息产业飞速发展不可缺少的一种电源。与之相应,在微电子技术发展的带动下,DSP芯片的发展日新月异,因此基于DSP芯片的开关电源拥有着广阔的前景,也是开关电源今后的发展趋势。电源的总体方案设计

本文所设计的开关电源的基本组成原理框图如图1所示,主要由功率主电路、DSP控制回路以及其它辅助电路组成。

开关电源的主要优点在“高频”上。通常滤波电感、电容和变压器在电源装置的体积和重量中占很大比例。从“电路”和“电机学”的有关知识可知,提高开关频率可以减小滤波器的参数,并使变压器小型化,从而有效地降低电源装置的体积和重量。以带有铁芯的变压器为例,分析如下:

图1.开关电源基本原理

设铁芯中的磁通按正弦规律变化,即φ= φMsinωt,则:

eLWdWcostEMcost dt(1)式中,EM= ωWφ M=2πfWφM,在正弦情况下,EM=√2E,φM=BMS,故:

E2fWM4.44fWBMS 2(2)式中,f为铁芯电路的电源频率;W 为铁芯电路线圈匝数;BM为铁芯的磁感应强度;S为铁芯线圈截面积。

从公式可以看出电源频率越高,铁芯截面积可以设计得越小,如果能把频率从50 Hz提高到50 kHz,即提高了一千倍,则变压器所需截面积可以缩小一千倍,这样可以大大减小电源的体积。

综合电源的体积、开关损耗以及系统抗干扰能力等多方面因素的考虑,本开关电源的开关频率设定为30 kHZ。系统的硬件设计 2.1 功率主电路

本电源功率主回路采用“AC-DC-AC—DC”变换的结构,主要由输入电网EMI滤波器、输人整流滤波电路、高频逆变电路、高频变压器、输出整流滤波电路等几部分组成,如图2所示。

图2.功率主电路原理图

图3.功军主回路的电压波形变化

本开关电源采用半桥式功率逆变电路。如图2所示,输入市电经EMI滤波器滤波,大大减少了交流电源输入的电磁干扰,并同时防止开关电源产生的谐波串扰到输入电源端。再经过桥式整流电路、滤波电路变成直流电压加在P、N两点问。P、N之间接人一个小容量、高耐压的无感电容,起到高频滤波的作用。半桥式功率变换电路与全桥式功率变换电路类似,只是其中两个功率开关器件改由两个容量相等的电容CA1和CA2代替。在实际应用中为了提高电容的容量以及耐压程度,CA1和CA2往往采用的是由多个等值电容并联组成的电容组。C A1、CA2 的容量选值应在电源体积和重量允许的条件下尽可能的大,以减小输出电压的纹波系数和低频振荡。CA1 和CA2 在这里同时起到了静态时分压的作用,使Ua =Uin/2。

在本电源的设计中,采用IGBT来作为功率开关器件。它既具有MOSFET的通断速度快、输入阻抗高、驱动电路简单及驱动功率小等优点,又具有GTR的容量大和阻断电压高的优点。

在IGBT的集射极间并接RC吸收网络,降低开关应力,减小IGBT关断产生的尖峰电压;并联二极管DQ实现续流的作用。二次整流采用全波整流电路,通过后续的LC滤波电路,消除高频纹波,减小输出直流电压的低频振荡。LC滤波电路中的电容由多个高耐压、大容量的电容并联组成,以提高电源的可靠性,使输出直流电压更加平稳。2.2 控制电路

控制电路部分实际上是一个实时检测和控制系统,包括对开关电源输出端电压、电流和IGBT温度的检测,对收集信息的分析和运算处理,对电源工作参数的设置和显示等。其控制过程主要是通过采集开关电源的相关参数,送入DSP芯片进行预定的分析和计算,得出相应的控制数据,通过改变输出PWM波的占空比,送到逆变桥开关器件的控制端,从而控制输出电压和电流。

控制电路主要包括DSP控制器最小系统、驱动电路、辅助电源电路、采样电路和保护电路。

(1)DSP控制器最小系统

DSP控制器是其中控制电路的核心采用TMS32OLF2407A DSP芯片,它是美国TEXAS INSTU—MENTS(TI)公司的最新成员。TMS30LF2407A基于C2xLP内核,和以前C2xx系列成员相比,该芯片具有处理性能更好(30MIPS)、外设集成度更高、程序存储器更大、A/D转换速度更快等特点,是电机数字化控制的升级产品,特别适用于电机以及逆变器的控制。DSP控制器最小系统包括时钟电路、复位电路以及键盘显示电路。时钟电路通过15 MHz的外接晶振提供;复位电路直接通过开关按键复位;由4×4的矩阵式键盘和SPRT12864M LCD构成了电源系统的人机交换界面。

(2)驱动放大电路

IGBT的驱动电路采用脉冲变压器和TC4422组成,其电路原理图如图4所示:

图4.IGBT驱动电路原理图

由于TMS320LF2407A的驱动功率较小,不能胜任驱动开关管稳定工作的要求,因此需要加上驱动放大电路,以增大驱动电流功率,提高电源系统的可靠性。如图4所示,采用两片TCA422组成驱动放大电路。

TC4421/4422是Microchip公司生产的9A高速MOsFET/IGBT驱动器,其中TC4421是反向输出,TC4422是同向输出,输出级均为图腾柱结构。

TC4421/4422具有以下特点:

①输出峰值电流大:9 A;

② 电源范围宽:4.5 V~18 V;

③连续输出电流大:最大2 A;

④快速的上升时间和下降时间:30 ns(负载4700pF),180 ns(负载47000 pF);

⑤传输延迟时间短:30 ns(典型);

⑥供电电流小:逻辑“1”输入~200μA(典型),逻辑“0”输入~55 μA(典型);

⑦输出阻抗低:1.4 Ω(典型);

⑧闭锁保护:可承受1.5 A的输出反向电流;

⑨输入端可承受高达5 V的反向电压;

⑩能够由TTL或CMOS电平(3 V~18 V)直接驱动,并且输人端采用有300 mV滞回的施密特触发电路。

当TMS320LF2407A输出的PWM1为高电平,PWM2为低电平时,经过TCA422驱动放大后输出,在脉冲变压器一次侧所流过的电流从PWMA流向PWMB,如图4中箭头所示,电压方向为上正下负。

根据变压器的同名端和接线方式,则开关管Q1的栅极电压为正,Q2的栅极电压为负。因此,此时是驱动QM1导通。反之若是PWM1为高电平,PWM2为低电平时,则是驱动Q2导通。四只二极管DQ1 ~DQ2的作用是消除反电动势对TCA422的影响。

(3)辅助电源电路

本开关电源电路设计过程中所需要的几路工作电源如下:

① TMS320LF2407 DSP所需电源:I/O 电源(3.3 V),PLL(PHSAELOCKED LOOP)电源(3.3 V),FIASH编程电压(5 V),模拟电路电源电压(3.3 V);②TCA422芯片所需电源:电源端电压范围4.5~18 V(选择15 V);③采样电路中所用运算放大器的工作电源为15 V。

因此,整个控制电路需要提供15 V、5 V和3.3 V三种制式的电压。设计中选用深圳安时捷公司的HAw 5-220524 AC/DC模块将220 V、50 Hz的交流电转换成24 V直流电,然后采用三端稳压器7815和7805获得15 V和5 V的电压。TMS320LF2407A所需的3.3 V由5 V通过TPS7333QD电压芯片得到。(4)采样电路

电压采样电路由三端稳压器TL431和光电耦合器PC817之问的配合来构成。电路设计如图5所示,TL431与PC817一次侧的LED串联,TL431阴极流过的电流就是LED的电流。输出电压Ud经分压网络后到参考电压UR与TL431中的2.5 V基准电压Uref进行比较,在阴极上形成误差电压,使LED的工作电流 If发生变化,再通过光耦将变化的电流信号转换为电压信号送人LF2407A的ADCIN00引脚。

图5.电压采样电路原理图

由于TMS320LF2407A的工作电压为3.3 V,因此输入DSP的模拟信号也不能超过3.3 V。为防止输入信号电压过高造成A/D输入通道的硬件损坏,我们对每一路A/D通道设计了保护电路,如图5所示,Cu2,CU3 起滤波作用,可以将系统不需要的高频和低频噪声滤除掉,提高系统信号处理的精度和稳定性。

另外,采用稳压管限制输入电压幅值,同时输入电压通过二极管与3.3 V电源相连,以吸收瞬间的电压尖峰。

当电压超过3.3 V时,二极管导通,电压尖峰的能量被与电源并联的众多滤波电容和去耦电容吸收。并联电阻Ru4的目的是给TL431提供偏置电流,保证TL431至少有1 mA的电流流过。Cu1 和RU3作为反馈网络的补偿元件,用以优化系统的频率特性。

电流采样的原理与电压采样类似,只是在电路中要通过电流传感器将电流信号转换为电压信号,然后再进行采集。

(5)保护电路

为保证系统中功率转换电路及逆变电路能安全可靠工作,TMs320LF2407A提供了PDPINTA,各种故障信号经或门CD4075B综合后,经光电隔离、反相及电平转换后输入到PDPINTA引脚,有任何故障时,CD4075B输出高电平,PDPINTA引脚相应被拉为低电平,此时DSP所有PWM输出管脚全部呈现高阻状态,即封锁PWM输出。整个过程不需要程序干预,由硬件实现。这对实现各种故障信号的快速处理非常有用。在故障发生后,只有在人为干预消除故障,重启系统后才能继续工作。系统的软件实现

为了构建DSP控制器软件框架,使程序易于编写、查错、测试、维护、修改、更新和扩充,在软件设计中采用了模块化设计,将整个软件划分为初始化模块、ADC信号采集模块、PID运算处理模块、PWM波生成模块、液晶显示模块以及按键扫描模块。各模块间的流程如图6所示。

图6.功能模块流程图

3.1 初始化模块

系统初始化子程序是系统上电后首先执行的一段代码,其功能是保证主程序能够按照预定的方式正确执行。系统的初始化包括所有DSP的基本输入输出单元的初始设置、LCD初始化和外扩单元的检测等。

3.2 ADC采样模块

TMS320LF2407A芯片内部集成了10位精度的带内置采样/保持的模数转换模块(ADC)。根据系统的技术要求,10位ADC的精度可以满足电压的分辨率、电流的分辨率的控制要求,因此本设计直接利用DSP芯片内部集成的ADC就可满足控制精度。另外,该10位ADC是高速ADC,最小转换时间可达到500 ns,也满足控制对采样周期要求。

ADC采样模块首先对ADC进行初始化,确定ADC通道的级联方式,采样时间窗口预定标,转换时钟预定标等。然后启动ADC采样,定义三个数组依次存放电压、电流和温度的采样结果,对每一个信号采样8次,经过移位还原后存储到相应的数组中,共得到3组数据。如果预定的ADC中断发生,则转人中断服务程序,对采样的数据进行分析、处理和传输。以电压采样为例,其具体的流程图如图7所示。

图7.程序流程图

3.3 PID运算模块

本系统借助DSP强大的运算功能,通过编程实现了软件PID调节。由于本系统软件中采用的是增量式PID算法,因此需要得到控制量的增量△un,式(3)为增量式PID算法的离散化形式:

unKp(enen1)KienKd[en2en1en2]

(3)

开关电源在进入稳态后,偏差是很小的。如果偏差e在一个很小的范围内波动,控制器对这样微小的偏差计算后,将会输出一个微小的控制量,使输出的控制值在一个很小的范围内,不断改变自己的方向,频繁动作,发生振荡,这既影响输出控制器,也对负载不利。

为了避免控制动作过于频繁,消除由于频繁动作所引起的系统振荡,在PID算法的设计中设定了一个输出允许带eo。当采集到的偏差|en|≤eo时,不改变控制量,使充电过程能够稳定地进行;只有当|en| >eo 时才对输出控制量进行调节。PID控制模块的程序流程如图8所示:

图8.PID运算程序流程图

TMS320LF2407A内部包括两个事件管理器模块EVA和EVB,每个事件管理器模块包括通用定时器GP、比较单元、捕获单元以及正交编码脉冲电路。通过TMS320LF2407A事件管理模块中的比较单元可以产生带死区的PWM波,与PWM 波产生相关的寄存器有:比较寄存器CMPRx、定时器周期寄存器Tx—PR、定时器控制寄存器TxCON、定时器增/减计数器TxCNT、比较控制寄存器COMCONA/B、死区控制寄存器DBTCONA/B。

PWM波的生成需对TMS320LF2407A的事件管理模块中的寄存器进行配置。由于选用的是PWM1/2,因此配置事件管理寄存器组A,根据需要生成带死区PWM波的设置步骤为:

(1)设置并装载比较方式寄存器ACTRA,即设置PWM波的输出方式;

(2)设置T1CON寄存器,设定定时器1工作模式,使能比较操作;

(3)设置并装载定时器1周期寄存器T1PR,即规定PWM 波形的周期;

(4)定义CMPR1寄存器,它决定了输出PWM 波的占空比,CMPR1中的值是通过计算采样值而得到的;

(5)设置比较控制寄存器COMCONA,使能PD—PINTA 中断;

(6)设置并装载死区寄存器DBTCONA,即设置死区时间。

图9.带死区PWM波的生成原理

3.5 键盘扫描及LCD显示模块

按键扫描执行模块的作用是判断用户的输入,对不同的输入做出相应的响应。本开关电源设计采用16个压电式按键组成的矩阵式键盘构成系统的输入界面。16个按键的矩阵式键盘需要DSP的8个I/O口,这里选用IOPA0~IOPA3作为行线,IOPF0~IOPF3作为列线。由于TMS320LF2407A都是复用的I/O口,因此需要对MCRA和MCRC寄存器进行设置使上述8个I/O口作为一般I/O端口使用。按键扫描执行模块采用的是中断扫描的方式,只有在键盘有键按下时才会通过外部引脚产生中断申请,DSP相应中断,进人中断服务程序进行键盘扫描并作相应的处理。

LCD显示模块需要DSP提供11个I/O口进行控制,包括8位数据线和3位控制线,数据线选用IOPB0~IOPB7,控制线选用IOPFO IOPF2,通过对PBDATDIR和PFDATDIR寄存器的设置实现DSP与LCD的数据传输,实时显示开关电源的运行状态。结论

本文介绍的基于DSP的大功率高频开关电源,充分发挥了DSP强大功能,可以对开关电源进行多方面控制,并且能够简化器件,降低成本,减少功耗,提高设备的可靠性。

参考文献

[1]何希才.新型开关电源的设计与应用[J].北京:科学出版社,2001 [2]刘和平,严利平,张学锋等.TMS320LF240xDSP结构、原理及应用[J].北京:航空航天大学出版社,2002 [3] 陈伟,马金平,杜志江,李永利.基于DSP的PWM型开关电源的设计[J].微计算机信息,2006,12(5):238-240 [4]周志敏,周纪海.开关电源实用技术——设计与应用[J].北京:人民邮电出版社,2003 [5] 毛晓波.交流采样技术及其DSP实现方法.微计算机信息[J].2005,11(5):36-39

第三篇:dsp作业

.c图

实验二

#define UINT unsigned int UINT i,*p,*n;void main(void){

p=(UINT *)0x0300;

for(i=0;i<20;i++)

{

if(*p==0x8888)

n=p;

p++;

} }.cmd图

MEMORY {

PAGE 0: PROG:

origin = 1a00h, length = 2580h

vectors: origin = 3f80h, length = 80h

PAGE 1: DATA:

origin = 0200h, length = 1800h }

SECTIONS {

.text

> PROG PAGE 0

.cinit > PROG PAGE 0

//.switch > PROG PAGE 0

vect

> vectors PAGE 0

.data

> DATA PAGE 1

.bss

> DATA PAGE 1

.const > DATA PAGE 1

.sysmem > DATA PAGE 1

.stack > DATA PAGE 1 } xf高低电平等时间循环变化截图如下所示:

找出由地址0x0300~0x0320中存储数据为0x8888的地址截图如下所示:

心得体会:

经过这次实验,理解了对地址0x0300~0x0320中存储数据为0x8888的寻找和设置。

第四篇:关于dsp心得体会

关于dsp心得体会

篇一:dsp实验报告心得体会

TMS320F2812x DSP原理及应用技术实验心得体会

1.设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。

2.在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型号去添加。

3.不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。设置好的配置中只能有一项。

4.CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。但是一般无法构造DSP中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。

5.这次实验采用软件仿真,不需要打开电源箱的电源。

6.在软件仿真工作时,无需连接板卡和仿真器等硬件。

7.执行write_buffer一行时。如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。

8.把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。

9.在实验时,显示图形出现问题,不能显示,后来在Graph Title 把Input的大写改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。

10.在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.OUT文件进行重新加载,因为此时.OUT文件已经改变了。如果不重新加载,那么修改执行程序后,其结果将不会改变。

11.再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察结果。

12.通过这次实验,对TMS320F2812x DSP软件仿真及调试有了初步的了解与认识,因为做实验的时候都是按照实验指导书按部就班的,与真正的理解和掌握还是有些距离的。但是这也为我们日后运用这些知识打下了基础,我觉得实验中遇到的问题,不要急于问老师或者同学,先自己想办法分析原因,想办法解决,这样对自身的提高更多吧。通过做实验,把学习的知识利用起来,也对这门课程更加有兴趣了。

组员:叶孝璐 冯焕芬 郑玮仪 庞露露

20xx年4月10号

篇二:DSP实验报告+心得体会

龙 岩 学 院

实 验 报 告

班 级 07电本(1)班 学号 2007050344 姓 名 杨宝辉 同组人 独立 实验日期 2010-5-18 室温 大气压 成 绩

基础实验

一、实验目的二、实验设备

三、实验原理

浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理1.一台装有CCS软件的计算机; 2.DSP实验箱的TMS320F2812主控板; 3.DSP硬件仿真器。1.掌握CCS实验环境的使用; 2.掌握用C语言编写DSP程序的方法。中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。

四、实验步骤

1.打开CCS 并熟悉其界面;

2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;

3. 把X0 , Y0 和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令);

4. 选择view->graph->time/frequency…。设置对话框中的参数: 其中“Start Address”

设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”,设置好后观察信号序列的波形(sin函数,如图);

5. 单击运行;

6. 观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;

7. 修改输入序列的长度或初始值,重复上述过程。

五、实验心得体会

通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。

从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

附录实验程序:

#include “math.h”

#include “stdio.h”

#define N 100

#define pi 3.14159

float sin_value[100];

float X0,Y0,Z0;

void main(void)

{

int i;for(i=0;i担保埃眨樱?仿真器驱动程序的安装以及相应的配置流程也有了一定的了解。仿真环境的配置,到工程的建立,文件的加载,到程序的仿真,与目标板的链接与调试,整个过程在摸索中逐渐熟悉。对已有程序进行修改,重复相应的过程也能实现预定的功能,在短短的时间里能掌握这些基本就差不多了,由于有的需要配置的文件的缺失,无法完成对相应工程的配置设置,所以采用的参考例程里的程序,完成整个过程,这也是一个学习的过程。做项目不是一个人的事,每个成员都应积极的参与,为整个项目的完成提供保障,团队的协作,尽可能的去发挥每个成员的专长,在整个项目的完成都能有所收获,这才应该是做项目的真正目的,加强同学之间的交流,用心付出,共同享受带给大家的成功的喜悦。相关课程的学习只是个基础,在此基础之上对相应的硬件与软件结合,切实去体验一个芯片所能实现的各种功能,去发现所学的知识会在哪些方面用到,是如何应用,有怎样可以改进的方法,更深层次去掌握跟其他相关课程的交叉点,提升学习能力,从近期来看,可以为我们将要开始的毕业设计做准备,当做是一次练手,争取出色完成毕业设计,为四年的大学交出一份完美的答卷。从长远看,为自己以后的工作也在一定程度的奠定基础,学习能力强了,自己就能比较快的接受新知识,更能适应社会对人的要求。

相信团队的力量,同时也要提高个人解决问题的能力,让自己在团队中发挥的作用,将个人融入团队中,才能让自己有更大的收获。好好珍惜每次锻炼学习的机会,不断提升自己,不断超越自己,成就人生美好的梦想!

专业班级:微电子学

姓 名

学 号:

[关于dsp心得体会]

第五篇:DSP实验报告

实验0 实验设备安装才CCS调试环境 实验目的:

按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。实验步骤:

以演示实验一为例:

1. 使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源;

2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStartsinewave”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out;

3. 打开源文件exer3.asm,在注释行“set breakpoint in CCS!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示;

4. 点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框

5. 双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示;

6. 点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察

7. 点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:

心得体会:

通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。实验二 基本算数运算

2.1 实验目的和要求

加、减、乘、除是数字信号处理中最基本的算术运算。DSP 中提供了大量的指令来

实现这些功能。本实验学习使用定点DSP 实现16 位定点加、减、乘、除运算的基本方法

和编程技巧。本实验的演示文件为exer1.out。

2.2 实验原理 定点 DSP 中的数据表示方法

C54X 是16 位的定点DSP。一个16 位的二进制数既可以表示一个整数,也可以表

示一个小数。当它表示一个整数时,其最低位(D0)表示20,D1 位表示21,次高位(D14)表示214。实现 16 位定点加法

C54X 中提供了多条用于加法的指令,如ADD,ADDC,ADDM 和ADDS。其中

ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加

法),而ADDM 专用于立即数的加法。实现 16 位定点减法

C54X 中提供了多条用于减法的指令,如SUB,SUBB,SUBC 和SUBS。其中SUBS 用于无符号数的减法运算,SUBB 用于带进位的减法运算(如32 位扩展精度的减法),而SUBC 为移位减,DSP 中的除法就是用该指令来实现的。实现 16 位定点整数乘法

在C54X 中提供了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器

中。乘数在C54X 的乘法指令很灵活,可以是T 寄存器、立即数、存贮单元和A 或B 寄存器的高16 位。实现 16 位定点小数乘法

在 C54X 中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。C54X 中提供了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。但注意

整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT 清除。两个小数(16 位)

相乘后结果为32 位,如果精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可

得到16 位的结果。6 实现 16 位定点整数除法

在 C54X 中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法

来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于

除以常数特别适用。另一种方法是使用SUBC 指令,重复16 次减法完成除法运算。实现 16 位定点小数除法

在 C54X 中实现16 位的小数除法与前面的整数除法基本一致,也是使用循环的

SUBC 指令来完成。但有两点需要注意:第一,小数除法的结果一定是小数(小于1),所以被除数一定小于除数。

2.3 实验内容

本实验需要使用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存 贮器显示窗口观察结果。1 编写实验程序代码 用 ccs simulator 调试运行并观察结

2.4 实验结果

1、加法结果

2、乘法结果

3、减法结果

4、除

2.5 思考题(0.5、0.25)

实验三 C54X的浮点数的算术运

一、实验目的 练习TMS320C54X 汇编程序的编写与调试方法,重点练习C54X 程序流程控制的方法。学习并掌握应用 TMS320C54X 来进行浮点数的各种算术运算的算法实现。练习并掌握 TMS320C54X 的汇编语言的汇编指令系统的使用方法,重点练习具有C54X 特点的一些在功能上有所扩展的特殊指令,并了解这些指令在进行算术运算或各种控制时所带来的方便。练习并掌握用 CCS 调试程序的一些基本操作。二.实验原理 1 浮点数的表示方法

在定点运算中,小数点是在一个特定的固定位置。例如,如果一个 32-bit 的数把小数点放在最高有效位(也就是符号位)之后,那么就只有分数(绝对值小于1)才能被显示。在定点运

算系统中,虽然在硬件上实现简单,但是表示的操作数的动态范围要受到限制。3 浮点数运算的步骤

程序代码分成四个 ASM 文件输入,通过编译生成.obj 文件,连接生成.out 文件后就可以在DES320PP-U 实验系统上调试运行(先要创建一个工程文件,然后加入四个工程文件,并且一起编译,连接。因为每个文件都对下一个文件作了引用)。步骤如下:

a.首先启动 setup CCS C5000,在其中设置目前需要的CCS 的工作状态为C54xxsimulator,保存这一设置并退出。然后再启动CCS 实验系统软件CCS C5000。

b.在下拉菜单中选择“File”->“Load Program”以装入所要调试的程序fc.out,这时,在反汇编窗口中能看到程序的源代码。

c.在下拉菜单中选择“View”->“CPU Registers”->“CPU Register”,可以看见在CCS 界面下部份会出现CPU 中的相关寄存器;选择“View”->“Memory…”,在弹出的“Memory Window Options”窗口中选择要观察的区域为数据区,地址开始为0x80h,然后就可以看见出现一个Data Memory 窗口,其中显示了从0x80h 开始的.bss 区。

d.在反汇编窗口中需要观察的地方设置断点:在这条指令处双击将其点为红色即可。比如在加法程序中有指令nop 的位置都可以加一个断点。

e.在下拉菜单中选择“调试”——“连续运行”(或直接点击“运行程序”按钮)运行浮点数程序。如果编写程序时在计算完毕后遇到一个断点,那么程序到此会自动停止。

f.当示范程序在第一个断点处停下来时,此时就可以看见程序初始化后的情况:被加数12.0 以浮点数的格式放在内存区0x08a-0x08b 中,其值为4140h 和0000h。加数12.0 放在内存区0x08c-0x08d 中,其值也为4140h 和0000h。

g.再点击“运行程序”按钮,之后程序会在下一个断点处停下来,这时可以看见被加数被格式转换后的变量op1hm、op1lm 和op1se 的值在内存区0x084-0x086 中,分别为00c0h、0000h 和0082h。同样加数被格式转换后的变量op2se、op2hm 和op2lm的值在内存区0x087-0x089 中,分别为0082h、00c0h 和0000h。

h.再点击“运行程序”按钮,程序停下来时就可以观察到在存储器窗口中表示结果的变量rlthm、rltlm、rltsign 和rltexp 的值在内存区0x080-0x083 中,其值分别为0040h、0000h、0180h 和0083h。

i.这时可以看到 A 寄存器中的值为AH=41c0h,AL=0000h 这就是最后的以浮点数的格式表示的结果值24(=12+12)。加法运算到此结束。

j.继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的13.0 与12.0 进行减法运算的结果:AH=3f80h,AL=0000h。这是用浮点数格式表示的数1(=13-12)。减法运算的程序到此结束。

k.继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的12.0 与12.0 进行乘法运算的结果:AH=4310h,AL=0000h。这是用浮点数格式表示的数144(=12*12)。乘法运算的程序到此结束。

l.继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的12.0 与4.0 进行除法运算的结果:AH=4040h,AL=0000h。这是用浮点数格式表示的数3(=12/4)。至此加、减、乘、除四种运算都运行完毕。

m.如果程序运行不正确,请检查源程序是否有误,必要时可以在源程序中多插入断点语句。程序在执行到断点语句时自动暂停,此时可以通过检查各个寄存器中的值以及内存单元中的值来判断程序执行是否正确。

三.在 CCS 的C54xx simulator 上调试观察实验结果

浮点加法断点一:

浮点加法断点二:

浮点加法断点三:

浮点减法

浮点数乘法

浮点数除法

四 心得体会

通过学习C54X的浮点数的算术运算,以及实验结果的观察,使我了解了浮点数运算的原理,学习并掌握用TMS320C54X来进行浮点数的各种算术运算的算法实现。实验四用定时器实现数字振荡器

实验四 用定时器实现数字振荡器

4.1 实验目的

在数字信号处理中,会经常使用到正弦/余弦信号。通常的方法是将某个频率的正弦/余弦值预先计算出来后制成一个表,DSP 工作时仅作查表运算即可。在本实验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。本实验除了学习数字振荡器的DSP 实现原理外,同时还学习C54X 定时器使用以及中断服务程序编写。另外,在本实验中我们将使用汇编语言和C 语言分别完成源程序的编写。

4.2

本实验利用定时器产生一个 2kHz 的正弦信号。定时器被设置成每25uS 产生一次中断(等效于采样速率为40K)。利用该中断,在中断服务程序中用叠代算法计算出一个SIN值,并利用CCS 的图形显示功能查看波形。

4.3 实验原理 数字振荡器原理

sinkωT,其

z 变换为

H(z=

其中,A=2cosωT, B=-1, C=sinωT。设初始条件为0,求出上式的反Z 变换得:

y[k]=Ay[k-1]+By[k-2]+Cx[k-1] 2 C54X 的定时器操作

C54X 的片内定时器利用CLKOUT 时钟计数,用户使用三个寄存器(TIM,PRD,TCR)来控制定时器,参见表4-1。在表4-2 中列出了定时器控制寄存器的各个比特位的具体定义。‘VC5402 的另一个定时器(定时器1)的控制寄存器分别为:0x30

TIM1),0x31(PRD1),0x32(TCR1)。C54X 中断的使用

C54X 中用户可以通过中断屏蔽寄存器 IMR 来决定开放或关闭一个中断请求。图 4-1 给出了 C5402 的 IMR 寄存器的各个比特位的定义。

图 4-1 ‘C5402 的IMR 寄存器

其中,表示HPI 接口中断,INT3-INT0 为外部引脚产生的中断,TXINT 和TRINT 为TDM 串口的发送和接收中断,BXINT0 和BRINT0 BSP 串口的发送和接收中断,14

为定时器 0 中断。在中断屏蔽寄存器 IMR 中,1 表示允许 CPU 响应对应的中断,0 表示禁止。当然要 CPU 响应中断,INTM 还应该为 0(允许所有的中断)。

本实验的初始化程序读取中断向量表的启始地址,然后设置的高

DSP 能正确响应中断,代码如下:

ld #0,dp ;设置DP 页指针 ssbx intm ;关闭所有中断

ld #vector, a ;读出中断向(地址vector 在中断向量表程序中定义)

and #0FF80h, a ;保留高9 位(IPTR)andm #007Fh, pmst ;保留PMST 的低7 位 or pmst, a ;

stlm a, pmst ;设置PMST(其中包括IPTR)

4.4 实验内容

C54X 汇编语言或C 语言实现数字振荡器,并通过CCS 提供的图形显示窗口观察出信号波形以及频谱。实验分下面几步完成: 根据确定数字振荡器的频率,确定系数。2 启动 CCS,新建工程文件。

选择 Project 菜单中的Options 选项,或使用鼠标右键单击工程文件名(如sinewave.pjt)并选择build options 项来修改或添加编译、连接中使用的参数。选择Linker Output Filename”栏中写入输出OUT 文件的名字,如sine.out,你还可以设置生成的MAP 文件名。4 完成编译、连接,正确生成OUT 文件。5 选 View→Graph→

5…打开图形显示设置窗口。在汇编源程序的中断服务程序(_tint)中的“nop”语句处设置断点。用右键单击图形显示窗口,并选择“Proporties”项以便修改显示属性。清除所有断点,关闭除波形显示窗口外的所有窗口,并关闭工程文件。完成编译、连接,正确生成OUT 文件。

10打开 C 源程序(timer.c)窗口,在中断服务程序(函数tint()的“con_buf=0

Start Address ”改为 buf ;“ Acquisition Buffer Size ”改为“ Display Data Size 128,“DSP DataType”为“32-bit floating point”

11选择 Debug→Animate,运行程序,观察输出波形。

下载一个DSP开发者的感受word格式文档
下载一个DSP开发者的感受.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    DSP课程设计

    TMS320C54x与PC通信系统的设计(单号) 一、设计目的 本次课程设计的目的是为了进一步提高学生的自我开发能力,培养学生的查阅资料,独立分析问题、解决问题以及实际动手的能力。也......

    DSP实验报告

    实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演......

    dsp报告

    目 录 第一章、基本算术运算 ..................................... 1 1.1、实验目的和要求 ................................... 1 1.2、实验原理 ...........................

    DSP大作业

    无限冲激响应滤波器(IIR)算法 姓名:张晓 指导老师:陈恩庆 专业名称:通信 学号:20102460434 2014年3月18日 无限冲激响应滤波器(IIR)算法 摘要:21世纪是数字化的时代,随着信息处理技......

    dsp学习心得

    一. 我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一写自己的感受,一家之言,欢迎指教。我上研究生的第一天起根据老板的安排就开......

    DSP学习心得

    数字信号处理—DSP课程学习的认识 今年学习了DSP这门课程后,有了一些自己的认识和见解,并且体会到了它强大的功能和作用,它不但在高端的技术领域有很重要的地位,如通信、雷达、......

    DSP简介

    DSP简介 1. 什么是DSP芯片DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提......

    《资本主义:一个爱情故事》感受

    这不是一个爱情故事 ——看《资本主义:一个爱情故事》有感 我们热爱歌颂爱情,热爱歌颂美好的事物,看着有了爱情的男人女人走到一起,繁衍生息,这是人类最朴素最绚烂的情感,这是爱情......