dsp总结

2024-09-19

dsp总结(精选6篇)

dsp总结 篇1

6416是定点型芯片,在项目中主要用来做下变频后数据的谱计算。FPGA中对所采数据进行下变频后通过DSP的EMIF口(64bit)传输到DSP中进行FFT运算,算完的谱数据再通过EMIF口回传至FPGA,再传至上位机进行频谱图的显示。

在这个过程中,并没有用DSP做多少事情,只是有一个FFT计算和EMIF口以及MCBSP口的数据与控制命令的传输,总体来说功能还是蛮简单的。

1、首先,FFT运算直接调用TI的C64XX的库函数就可以完成。在这个调试过程中,首先使用的是simulater环境进行软件仿真计算,根据计算出来的谱图发现结果是正确的,只是模拟数据和旋转因子在软仿真的时候耗费的时间太长(32K点)。可由MATLAB产生数据,然后导入数组,直接进行FFT验证之。

FFT消耗时间分析:在软件中可以设置观测FFT函数所消耗的时间,最后由两种结果,Total cycle 和Cpu cycle,其根据600M主频计算下来,做32K点时其耗时相差有100倍,即百毫秒与毫秒的差别,由于不确定时间应采取哪种,所以进而进行了板级实验。

在板级实验过程中,发现程序“经常偶尔”跑飞,一直也没有找到原因。最后经过多次试验用示波器检测出来的时间与用Cpu cycle计算出来的相近。此时,我们假设Cpu cycle是正确的,那换算出来的主频就只为400M。用示波器对分频时钟进行测试,发现现在CPU确实只工作在400M的主频,而不是最大600M的主频。

由此说明,芯片的配置可能有问题,并且还可以证明可以用Cpu cycle来计算程序的运行时间(当然DSP主频要确定)。

经databook查询,发现晶振的频率与其设置的主频选择有误,及用此晶振的频率,要改变外围电路配置才能达到最高频率。当然,也许maybe可能这个问题与DSP经常跑飞有关联。

改了之后发现其运行在666M的状态,超了66M,不晓得对芯片有没有影响,知道的大神可告知小弟,不胜感激...2、EMIF 与 MCBSP 的可按照自己的需要进行配置初始化。

EMIF用到了64位,在传输64位数据上纠结了很久,C语言上long即为64位,可在此只为40位。经一位大神提醒,使用long long类型搞定之,木有技术含量,发现自己基本功相当之不扎实。

dsp总结 篇2

现代DSP技术及应用

课程总结

业 班

级 学

号 学生姓名 指导教师 时 间 段 完成日期

xxx xxx xxx xxx xxx xxx xxx 摘要:本文是在学习信号处理与DSP应用课程的基础上,结合所学知识和课后查找资料,主要整理了DSP的基础知识和芯片的基本结构和特点、DSP集成开发环境CCS的工作原理、DSP系统的应用等方面的内容。

关键词:DSP 基础知识

基本结构和特点

工作原理

应用

一、DSP的相关知识

1.1、DSP的简介

DSP(Digital Signal Processing)又称的数字信号处理,它的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器(A/D)实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器(D/A)实现的。

1.2、DSP的特征和分类

信号(signal)是信息的物理体现形式,或是传递信息的函数,而信息则是信号的具体内容。

模拟信号(analog signal):指时间连续、幅度连续的信号。

数字信号(digital signal):时间和幅度上都是离散(量化)的信号。

模拟信号处理缺点:难以做到高精度,受环境影响较大,可靠性差,且不灵活等。

数字系统的优点:体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理。

1.3、DSP芯片的基本结构和特点

[1] 为了快速地实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。以TMS320系列为例,其基本结构包括::(1)哈佛结构;(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期。这些特点使得TMS320系列DSP芯片可以实现快速的DSP运算,并使大部分运算(例如乘法)能够在一个指令周期内完成。由于TMS320系列DSP芯片是软件可编程器件,因此具有通用微处理器具有的方便灵活的特点。

二、DSP集成开发环境CCS的工作原理

2.1 CCS概述

CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS支持如下所示的开发周期的所有阶段。

设计概念性规划编程和编译创建工程文件、编写源程序和配置文件调试语法检查、探测点设置和日志保存等分析实时调试、统计和跟踪

在使用本教程之前,必须完成下述工作:

 安装目标板和驱动软件。按照随目标板所提供的说明书安装。如果你正在用仿真器或目标板,其驱动软件已随目标板提供,你可以按产品的安装指南逐步安装。 安装CCS.遵循安装说明书安装。如果你已有CCS仿真器和TMS320c54X代码生成工具,但没有完整的CCS,你可以按第二章和第四章所述的步骤进行安装。 运行CCS安装程序SETUP.你可以按步骤执行第二章和第四章的实验。SETUP程序允许CCS使用为目标板所安装的驱动程序。

CCS包括如下各部分:  CCS代码生成工具:参见1.2节  CCS集成开发环境(IDE):参见1.3节  DSP/BIOS插件程序和API:参见1.4节  RTDX插件、主机接口和API:参见1.5节 CCS构成及接口见图1-1。

图1-1 CCS构成及接口

2.2 代码生成工具

代码生成工具奠定了CCS所提供的开发环境的基础。图1-2是一个典型的软件开发流程图,图中阴影部分表示通常的C语言开发途径,其它部分是为了强化开发过程而设置的附加功能。

图1-2 软件开发流程

图1-2描述的工具如下:  C编译器(C compiler)产生汇编语言源代码,其细节参见TMS320C54x最优化C编译器用户指南。 汇编器(assembler)把汇编语言源文件翻译成机器语言目标文件,机器语言格式为公用目标格式(COFF),其细节参见TMS320C54x汇编语言工具用户指南。 连接器(linker)把多个目标文件组合成单个可执行目标模块。它一边创建可执行模块,一边完成重定位以及决定外部参考。连接器的输入是可重定位的目标文件和目标库文件,有关连接器的细节参见TMS320C54x最优化C编译器用户指南和汇编语言工具用户指南。 归档器(archiver)允许你把一组文件收集到一个归档文件中。归档器也允许你通过删除、替换、提取或添加文件来调整库,其细节参见TMS320C54x汇编语言工具用户指南。 助记符到代数汇编语言转换公用程序(mnimonic_to_algebric assembly translator utility)把含有助记符指令的汇编语言源文件转换成含有代数指令的汇编语言源文件,其细节参见TMS320C54x汇编语言工具用户指南。 你可以利用建库程序(library_build utility)建立满足你自己要求的“运行支持库”,其细节参见TMS320C54x最优化C编译器用户指南。 运行支持库(run_time_support libraries)它包括C编译器所支持的ANSI标准运行支持函数、编译器公用程序函数、浮点运算函数和C编译器支持的I/O函数,其细节参见TMS320C54x最优化C编译器用户指南。 十六进制转换公用程序(hex conversion utility)它把COFF目标文件转换成TI-Tagged、ASCII-hex、Intel、Motorola-S、或 Tektronix 等目标格式,可以把转换好的文件下载到EPROM编程器中,其细节参见TMS320C54x汇编语言工具用户指南。 交叉引用列表器(cross_reference lister)它用目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件,其细节参见TMS320C54x汇编语言工具用户指南。 绝对列表器(absolute lister)它输入目标文件,输出.abs文件,通过汇编.abs文件可产生含有绝对地址的列表文件。如果没有绝对列表器,这些操作将需要冗长乏味的手工操作才能完成。2.3 CCS集成开发环境

CCS集成开发环境(IDE)允许编辑、编译和调试DSP目标程序。2.3.1 编辑源程序

CCS允许编辑C源程序和汇编语言源程序,你还可以在C语句后面显示汇编指令的方式来查看C源程序。

集成编辑环境支持下述功能:  用彩色加亮关键字、注释和字符串。 以圆括弧或大括弧标记C程序块,查找匹配块或下一个圆括弧或大括弧。 在一个或多个文件中查找和替代字符串,能够实现快速搜索。 取消和重复多个动作。 获得“上下文相关”的帮助。 用户定制的键盘命令分配。2.3.2创建应用程序

应用程序通过工程文件来创建。工程文件中包括C源程序、汇编源程序、目标文件、库文件、连接命令文件和包含文件。编译、汇编和连接文件时,可以分别指定它们的选项。在CCS中,可以选择完全编译或增量编译,可以编译单个文件,也可以扫描出工程文件的全部包含文件从属树,也可以利用传统的makefiles文件编译。2.3.3 调试应用程序

CCS提供下列调试功能:  设置可选择步数的断点  在断点处自动更新窗口  查看变量  观察和编辑存储器和寄存器  观察调用堆栈  对流向目标系统或从目标系统流出的数据采用探针工具观察,并收集存储器映象  绘制选定对象的信号曲线  估算执行统计数据  观察反汇编指令和C指令

CCS提供GEL语言,它允许开发者向CCS菜单中添加功能。2.4、开发一个简单的应用程序

使用hello world实例介绍在CCS中创建、调试和测试应用程序的基本步骤;介绍CCS的主要特点,为在CCS中深入开发DSP软件奠定基础。2.4.1 创建工程文件

在本章中,将建立一个新的应用程序,它采用标准库函数来显示一条hello world 消息。

1.如果CCS安装在c:ti中,则可在c:timyprojects建立文件夹hello1。(若将CCS安装在其它位置,则在相应位置创建文件夹hello1。)

2.将c:tic5400tutorialhello1中的所有文件拷贝到上述新文件夹。3.从Windows Start菜单中选择Programs→Code Composer Studio ‘C5400→CCStudio。(或者在桌面上双击Code Composer Studio图标。)

注:CCS设置 如果第一次启动CCS时出现错误信息,首先确认是否已经安装了CCS。如果利用目标板进行开发,而不是带有CD-ROM的仿真器,则可参看与目标板一起提供的文档以设置正确的I/O端口地址。4.选择菜单项Project→New。

5.在Save New Project As窗口中选择你所建立的工作文件夹并点击Open。键入myhello作为文件名并点击Save,CCS就创建了myhello.mak的工程文件,它存储你的工程设置,并且提供对工程所使用的各种文件的引用。

2.4.2 向工程添加文件

1.选择Project→Add Files to Project,选择hello.c并点击Open。

2.选择Project→Add Files to Project,在文件类型框中选择*.asm。选择vector.asm并点击Open。该文件包含了设置跳转到该程序的C入口点的RESET中断(c_int00)所需的汇编指令。(对于更复杂的程序,可在vector.asm定义附加的中断矢量,或者,可用3.1节上所说明的DSP/BIOS来自动定义所有的中断矢量)3.选择Project→Add Files to Project,在文件类型框中选择*.cmd。选择hello.cmd并点击Open,hello.cmd包含程序段到存储器的映射。4.选择Project→Add Files to Project,进入编译库文件夹(C:tic5400cgtoolslib)。在文件类型框中选择*.o*,*.lib。选择rts.lib并点击Open,该库文件对目标系统DSP提供运行支持。

5.点击紧挨着Project、Myhello.mak、Library和Source旁边的符号+展开Project表,它称之为Project View。

注:打开Project View 如果看不到Project View,则选择View→Project。如果这时选择过Bookmarks图标,仍看不到Project View,则只须再点击Project View底部的文件图标即可。6.注意包含文件还没有在Project View中出现。在工程的创建过程中,CCS扫描文件间的依赖关系时将自动找出包含文件,因此不必人工地向工程中添加包含文件。在工程建立之后,包含文件自动出现在Project View中。如果需要从工程中删除文件,则只需在Project View中的相应文件上点击鼠标右键,并从弹出菜单中选择Remove from project即可。在编译工程文件时,CCS按下述路径顺序搜索文件:  包含源文件的目录

 编译器和汇编器选项的Include Search Path中列出的目录(从左到右) 列在C54X_C_DIR(编译器)和C54X_A_DIR(汇编器)环境变量定义中的目录(从左到右)。

2.4.3 查看源代码

1.双击Project View中的文件hello.c,可在窗口的右半部看到源代码。

2.如想使窗口更大一些,以便能够即时地看到更多的源代码,你可以选择Option→Font使窗口具有更小的字型。

/* ======== hello.c ======== */ #include #include “hello.h” #define BUFSIZE 30 struct PARMS str = { 2934, 9432, 213, 9432, &str };/** ======== main ========**/ void main(){ #ifdef FILEIO int i;char scanStr[BUFSIZE];char fileStr[BUFSIZE];size_t readSize;FILE *fptr;#endif /* write a string to stdout */ puts(“hello world!n”);#ifdef FILEIO /* clear char arrays */ for(i = 0;i < BUFSIZE;i++){ scanStr[i] = 0 /* deliberate syntax error */ fileStr[i] = 0;} /* read a string from stdin */ scanf(“%s”, scanStr);/* open a file on the host and write char array */ fptr = fopen(“file.txt”, “w”);fprintf(fptr, “%s”, scanStr);fclose(fptr);/* open a file on the host and read char array */ fptr = fopen(“file.txt”, “r”);fseek(fptr, 0L, SEEK_SET);readSize = fread(fileStr, sizeof(char), BUFSIZE, fptr);printf(“Read a %d byte char array: %s n”, readSize, fileStr);fclose(fptr);#endif } 当没有定义FILEIO时,采用标准puts()函数显示一条hello world消息,它只是一个简单程序。当定义了FILEIO后(见2.5节),该程序给出一个输入提示,并将输入字符串存放到一个文件中,然后从文件中读出该字符串,并把它输出到标准输出设备上。2.4.4编译和运行程序

CCS会自动将你所作的改变保存到工程设置中。在完成上节之后,如果你退出了CCS,则通过重新启动CCS和点击Project→Open,即可返回到你刚才停止工作处。

注:重新设置目标系统DSP 如果第一次能够启动CCS,但接下来得到CCS不能初始化目标系统DSP的出错信息则可选择Debug→Reset DSP菜单项。若还不能解决上述问题,你可能需要运行你的目标板所提供的复位程序。1.2.3.4.为了编译和运行程序,要按照以下步骤进行操作:

点击工具栏按钮或选择Project→Rebuild All,CCS重新编译、汇编和连接工程中的所有文件,有关此过程的信息显示在窗口底部的信息框中。选择File→Load Program,选择刚重新编译过的程序myhello.out(它应该在c:timyprojectshello1文件夹中,除非你把CCS安装在别的地方)并点击Open。CCS把程序加载到目标系统DSP上,并打开Dis_Assembly窗口,该窗口显示反汇编指令。(注意,CCS还会自动打开窗口底部一个 标有Stdout的区域,该区域用以显示程序送往Stdout的输出。)

点击Dis_Assembly窗口中一条汇编指令(点击指令,而不是点击指令的地址或空白区域)。按F1键。CCS将搜索有关那条指令的帮助信息。这是一种获得关于不熟悉的汇编指令的帮助信息的好方法。点击工具栏按钮或选择Debug→Run。

工具栏有些部分可能被Build窗口隐藏起来,这取决于屏幕尺寸和设置。为了看到整个 注:屏幕尺寸和设置 工具栏,请在Build窗口中点击右键并取消Allow Docking选择。当运行程序时,可在Stdout窗口中看到hello world消息。

三、DSP的应用

广义来说,数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。但很多人认为:数字信号处理主要是研究有关数字滤波技术、离散变换快速算法和谱分析方法。随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应地得到发展,其应用领域十分广泛。自从DSP 芯片诞生以来, DSP 芯片得到了飞速的发展。DSP 芯片高速发展, 一方面得益于集成电路的发展, 另一方面也得益于巨大的市场。在短短的十多年时间, DSP 芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前, DSP 芯片的价格也越来越低, 性能价格比日益提高, 具有巨大的应用潜力。DSP 芯片的应用主要有:(1)信号处理, 如: 数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。(2)通信, 如: 调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。(3)语音, 如: 语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。(4)图像/ 图形, 如: 二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。(5)军事, 如: 保密通信、雷达处理、声纳处理、导航等。(6)仪器仪表, 如: 频谱分析、函数发生、锁相环、地震处理等。(7)自动控制, 如: 引擎控制、深空、自动驾驶、机器人控制、磁盘控制。(8)医疗, 如: 助听、超声设备、诊断工具、病人监护等。(9)家用电器, 如: 高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/ 电视等。

3.1 数字滤波器

数字滤波器的实用型式很多,大略可分为有限冲激响应型和无限冲激响应型两类,可用硬件和软件两种方式实现。在硬件实现方式中,它由加法器、乘法器等单元所组成,这与电阻器、电感器和电容器所构成的模拟滤波器完全不同。数字信号处理系统很容易用数字集成电路制成,显示出体积小、稳定性高、可程控等优点。数字滤波器也可以用软件实现。软件实现方法是借助于通用数字计算机按滤波器的设计算法编出程序进行数字滤波计算。

3.2 快速傅里叶变换

1965年J.W.库利和T.W.图基首先提出离散傅里叶变换的快速算法,简称快速傅里叶变换,以FFT表示。自有了快速算法以后,离散傅里叶变换的运算次数大为减少,使数字信号处理的实现成为可能。快速傅里叶变换还可用来进行一系列有关的快速运算,如相关、褶积、功率谱等运算。快速傅里叶变换可做成专用设备,也可以通过软件实现。与快速傅里叶变换相似,其他形式的变换,如沃尔什变换、数论变换等也可有其快速算法。

3.3 谱分析

在频域中描述信号特性的一种分析方法,不仅可用于确定性信号,也可用于随机性信号。所谓确定性信号可用既定的时间函数来表示,它在任何时刻的值是确定的;随机信号则不具有这样的特性,它在某一时刻的值是随机的。因此,随机信号处理只能根据随机过程理论,利用统计方法来进行分析和处理,如经常利用均值、均方值、方差、相关函数、功率谱密度函数等统计量来描述随机过程的特征或随机信号的特性。

数字信号处理的应用领域十分广泛。就所获取信号的来源而言,有通信信号的处理,雷达信号的处理,遥感信号的处理,控制信号的处理,生物医学信号的处理,地球物理信号的处理,振动信号的处理等。若以所处理信号的特点来讲,又可分为语音信号处理,图像信号处理,一维信号处理和多维信号处理等。

3.4 处理系统

无论哪方面的应用,首先须经过信息的获取或数据的采集过程得到所需的原始信号,如果原始信号是连续信号,还须经过抽样过程使之成为离散信号,再经过模数转换得到能为数字计算机或处理器所接受的二进制数字信号。如果所收集到的数据已是离散数据,则只须经过模数转换即可得到二进制数码。数字信号处理器的功能是将从原始信号抽样转换得来的数字信号按照一定的要求,例如滤波的要求,加以适当的处理,即得到所需的数字输出信号。经过数模转换先将数字输出信号转换为离散信号,再经过保持电路将离散信号连接起来成为模拟输出信号,这样的处理系统适用于各种数字信号处理的应用,只不过专用处理器或所用软件有所不同而已。

3.5 语音信号处理

语音信号处理是信号处理中的重要分支之一。它包括的主要方面有:语音的识别,语言的理解,语音的合成,语音的增强,语音的数据压缩等。各种应用均有其特殊问题。语音识别是将待识别的语音信号的特征参数即时地提取出来,与已知的语音样本进行匹配,从而判定出待识别语音信号的音素属性。关于语音识别方法,有统计模式语音识别,结构和语句模式语音识别,利用这些方法可以得到共振峰频率、音调、嗓音、噪声等重要参数,语音理解是人和计算机用自然语言对话的理论和技术基础。语音合成的主要目的是使计算机能够讲话。为此,首先需要研究清楚在发音时语音特征参数随时间的变化规律,然后利用适当的方法模拟发音的过程,合成为语言。其他有关语言处理问题也各有其特点。语音信号处理是发展智能计算机和智能机器人的基础,是制造声码器的依据。语音信号处理是迅速发展中的一项信号处理技术。

3.6 图像信号处理

图像信号处理的应用已渗透到各个科学技术领域。譬如,图像处理技术可用于研究粒子的运动轨迹、生物细胞的结构、地貌的状态、气象云图的分析、宇宙星体的构成等。在图像处理的实际应用中,获得较大成果的有遥感图像处理技术、断层成像技术、计算机视觉技术和景物分析技术等。根据图像信号处理的应用特点,处理技术大体可分为图像增强、恢复、分割、识别、编码和重建等几个方面。这些处理技术各具特点,且正在迅速发展中。

3.7 振动信号处理

机械振动信号的分析与处理技术已应用于汽车、飞机、船只、机械设备、房屋建筑、水坝设计等方面的研究和生产中。振动信号处理的基本原理是在测试体上加一激振力,做为输入信号。在测量点上监测输出信号。输出信号与输入信号之比称为由测试体所构成的系统的传递函数(或称转移函数)。根据得到的传递函数进行所谓模态参数识别,从而计算出系统的模态刚度、模态阻尼等主要参数。这样就建立起系统的数学模型。进而可以做出结构的动态优化设计。这些工作均可利用数字处理器来进行。这种分析和处理方法一般称为模态分析。实质上它就是信号处理在振动工程中所采用的一种特殊方法。

3.8 地球物理信号处理

为了勘探地下深处所储藏的石油和天然气以及其他矿藏,通常采用地震勘探方法来探测地层结构和岩性。这种方法的基本原理是在一选定的地点施加人为的激震,如用爆炸方法产生一振动波向地下传播,遇到地层分界面即产生反射波,在距离振源一定远的地方放置一列感受器,接收到达地面的反射波的延迟时间和强度来判断地层的深度和结构。感受器所接收到的地震记录是比较复杂的,需要处理才能进行地质解释。处理的方法很多,有反褶积法,同态滤波法等,这是一个尚在努力研究的问题。3.9 生物医学信号处理

信号处理在生物医学方面主要是用来辅助生物医学基础理论的研究和用于诊断检查和监护。例如,用于细胞学、脑神经学、心血管学、遗传学等方面的基础理论研究。人的脑神经系统由约 100亿个神经细胞所组成,是一个十分复杂而庞大的信息处理系统。在这个处理系统中,信息的传输与处理是并列进行的,并具有特殊的功能,即使系统的某一部分发生障碍,其他部分仍能工作,这是计算机所做不到的。因此,关于人脑的信息处理模型的研究就成为基础理论研究的重要课题。此外,神经细胞模型的研究,染色体功能的研究等等,都可借助于信号处理的原理和技术来进行。

数字信号处理在其他方面还有多种用途,如雷达信号处理、地学信号处理等,它们虽各有其特殊要求,但所利用的基本技术大致相同。在这些方面,数字信号处理技术起着主要的作用。

3.10 DSP在车用燃料电池发动机控制器中的应用

系统结构及组成

该控制器的研制使用全新的设计思路,对外部输入及输出信号采用电隔离技术,摒弃外购工控模块的思想,利用D S P 技术,根据实际测控要求,自主开发核, OMCU模板。使原来的5 ~ 6个测控模板,减至为2 个。发动机控制器主要由信号调理板、D S P 主板构成。系统组成参见图4.1.1。

信号调理板将9

1、电路传来的各种信号进行汇总、隔离、转换成为统一的标准信号,传送给D S P 主板;再将D S P 主板发出的信号隔离、转换、调制成的各种控制信号,传送给发动机所需被控的各执行部件。

D S P 主板则将被调制好的各种信号直接进行收集、分析、判断、处理,再通过各种电路模块形成相应的控制信号,然后发送给信号调理板。经过信号调理输出,控制发动机上的各个执行部件,从而达到调整发动机工作状态的目的。

系统工作原理

车用电系统测控是将由压力传感器、温度传感器、氢气传感器、转速变送单元所传来的相关组部件的工作状态以相对统一的电信号输入至发动机核心控制器,由控制器进行信号调理、A /D 转换、判断、处理,再输出不同形式的信号,控制继电器、调节阀、电磁阀,从而达到控制发动机系统工作状态的目的。

D S P 主板

核心D S P 主板主要由C P U 电路、C A N 接口电路、数字输入/输出、继电器控制电路、模拟D /A 输出、模拟A /D 输入、R S 4 8 5 通信接口电路、J T A G 仿真器接口电路、调节阀电机隔离控制输出电路、电平转换电路、复位电路、电源供电电路1 2 部分组成。其原理框图参见图4.1.2

4、结束语

随着科学技术的发展,DSP的应用必将越来越广泛,对社会的进步将起到尤为重要的作用。短短一个学期的课程,并不能让我们完全掌握所有知识,但它激发了我们学习DSP的兴趣。只有我们在课后主动的花更多的时间去学习,才能更好的学好它,并将所学到的知识与实际结合起来,才能发挥DSP的强大功能。

参考文献 [1] 百度文库

[2] DSP入门教程//网络资源

[3] DSP原理及应用报告//网络资源

DSP实验报告 篇3

实验目的:

按照实验讲义操作步骤,打开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 实验原理

1)定点 DSP 中的数据表示方法

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

示一个小数。当它表示一个整数时,其最低位(D0)表示20,D1 位表示21,次高位(D14)表示214。

2)实现 16 位定点加法

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

ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加 法),而ADDM 专用于立即数的加法。

3)实现 16 位定点减法

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

4)实现 16 位定点整数乘法

在C54X 中提供了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器 中。乘数在C54X 的乘法指令很灵活,可以是T 寄存器、立即数、存贮单元和A 或B 寄存器的高16 位。

5)实现 16 位定点小数乘法

在 C54X 中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。C54X 中提供了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。但注意 整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT 清除。两个小数(16 位)相乘后结果为32 位,如果精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可 得到16 位的结果。

6)实现 16 位定点整数除法

在 C54X 中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法 来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于 除以常数特别适用。另一种方法是使用SUBC 指令,重复16 次减法完成除法运算。

7)实现 16 位定点小数除法

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

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

2.3 实验内容

本实验需要使用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存 贮器显示窗口观察结果。

1)编写实验程序代码

2)用 ccs simulator 调试运行并观察结

2.4 实验结果

1、加法结果

2、乘法结果

3、减法结果

4、除2.5 思考题(0.5、0.25)实验三 C54X的浮点数的算术运

一、实验目的

1)练习TMS320C54X 汇编程序的编写与调试方法,重点练习C54X 程序流程控制的方法。2)学习并掌握应用 TMS320C54X 来进行浮点数的各种算术运算的算法实现。

3)练习并掌握 TMS320C54X 的汇编语言的汇编指令系统的使用方法,重点练习具有C54X 特点的一些在功能上有所扩展的特殊指令,并了解这些指令在进行算术运算或各种控制时所带来的方便。

4)练习并掌握用 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 实验原理

1)数字振荡器原理

设一个传递函数为正弦序列 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)。

3)C54X 中断的使用

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

图 4-1 ‘C5402 的IMR 寄存器

其中,HPINT 表示HPI 接口中断,INT3-INT0 为外部引脚产生的中断,TXINT 和TRINT 为TDM 串口的发送和接收中断,BXINT0 和BRINT0 为BSP 串口的发送和接收中断,TINT0 为定时器0 中断。在中断屏蔽寄存器IMR 中,1 表示允许CPU 响应对应的中断,0 表示禁止。当然要CPU 响应中断,ST1 寄存器中的INTM 还应该为0(允许所有的中断)。

本实验的初始化程序读取中断向量表的启始地址,然后设置PMST 的高9 位,以便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 提供的图形显示窗口观察出信号波形以及频谱。实验分下面几步完成:

1)根据确定数字振荡器的频率,确定系数。2)启动 CCS,新建工程文件。

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

4)完成编译、连接,正确生成OUT 文件。

5)选 View→Graph→Time/Frequency„打开图形显示设置窗口。6)在汇编源程序的中断服务程序(_tint)中的“nop”语句处设置断点。7)用右键单击图形显示窗口,并选择“Proporties”项以便修改显示属性。8)清除所有断点,关闭除波形显示窗口外的所有窗口,并关闭工程文件。9)完成编译、连接,正确生成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”

DSP放异彩 篇4

DSP放异彩

DSP(数字信号处理器)近几年闪亮市场,卖点十足.它是半导体工业中增长最快的市场.据SIA统计,世界半导体工业增长了18.9%,达1490亿美元.其中,许多部门包括微处理器和存储器增长迅速,尤其是DSP,在无线通信应用的牵引下,更获得傲人成长,比上年飚升26%,达44亿美元.

作 者:金中  作者单位: 刊 名:电子产品世界  ISTIC英文刊名:ELECTRONIC ENGINEERING & PRODUCT WORLD 年,卷(期): “”(7) 分类号:F4 关键词: 

DSP期末复习资料 篇5

第二章TMS320C55x的硬件结构C55x主要由3个部分组成:CPU 存储空间和片内外设

CPU包含5个功能单元:指令缓冲单元(I单元)程序流单元(P单元)

地址-数据流单元(A单元)数据运算单元(D单元)和存储器接口单元(M单元)

I单元包括32*16位指令缓冲队列和指令译码器。此单元主要接收程序代码并负

责放入指令缓冲队列,由指令译码器来解释指令,然后再把指令流传给其他的工

作单元来执行这些指令

P单元包括程序地址发生器和程序控制逻辑,此单元产生所有程序空间地址,并送到PAB总线 A单元包括数据地址产生电路 附加的16位ALU和一组寄存器,此单元产生读/写

数据空间地址,并送到BAB CAB DAB总线

D单元包括1个40位的简形移位寄存器 2个乘法单元 1个40位的ALU以及若干

寄存器 D单元是CPU的最主要组成部分,是主要的数据处理部件

M单元是CPU和数据空间或I/O空间之间传输所有数据的中间媒介C55x的两种封装179脚BGA封装144脚PGE LQFP封装电源引脚

CVDD:数字电源 +1.6v 为cpu内核提供电源

DVDD:数字电源 +3.3v 为I/O引脚提供电源

USBVDD:数字电源 +3.3v 为USB模块的I/O引脚提供电源

USBPLLVDD:数字电源 +1.6v 为USB PLL提供电源

RDVDD:数字电源 +3.3v 为RTC模块的I/O引脚提供电源

RCVDD:数字电源 +1.6v 为RTC模块提供电源

VSS:数字地

AVDD:模拟电源 为10位的A/D模块提供电源

AVSS:模拟地 10位A/D内核部分接地引脚

ADVSS:模拟数字地 10位A/D模拟的数字部分接地引脚

USBPLLVSS:数字地 用于USB PLLC55x包含4个40位累加器每个累加器分为低字 高字和8个保护位MPNMC为

MPNMC=0 微计算机模式 使能片上ROM 可以在程序空间寻址

MPNMC=1 微处理器模式 禁止片上ROM 不映射在程序空间里C55x的存储(数据/程序)空间采用统一编址的访问方法,当CPU读取程序代码时

使用24位的地址访问相关的字节 而CPU读/写数据时 使用23位的地址访问相关的16位字,这两种情况下地址总线均为24位字节B8位字W16位 长字(LW)32位DSP处理中断的一般步骤

1接收中断请求响应中断请求准备进入中断服务子系统执行中断服务子系统

可屏蔽中断能用软件关闭或开放 都是硬件中断

不可屏蔽中断cpu接到一个不可屏蔽中断的请求时 立刻无条件响应 并很快跳转到相

应的中断服务子程序 软件中断都是不可屏蔽中断

第三章指令系统三种寻址方式

绝对寻址方式:通过在指令中指定一个常数地址完成寻址

直接寻址方式 :使用地址偏移量寻址

间接寻址方式:使用指针完成寻址直接寻址方式

DP直接寻址该方式用DPH与DP合并的扩展数据页指针寻址存储空间和存储映射寄存器SP直接寻址该方式用SPH和SP合并的扩展堆栈指针寻址存储空间中的堆栈

寄存器直接寻址该模式用偏移地址指定一个位地址,用于寻址寄存器中的一个相邻的两个位 3 计算偏移地址的方法

访问空间偏移地址(Doffser)的计算描述

数据空间Doffset=(Daddr-.dp)&7FHDaddr是一个16位的局部地址 dp指DP的值 &与操作

存储器映射寄存器Doffset=Daddr&7FHDaddr是一个16位的局部地址&是与操作 需要使用mmap()指令初始化和寻址一个循环缓冲区

MOV#3,BK03;设置循环缓冲区大小为N=3

BESTAR1LC;使用AR1循环寻址

AMOV#010000h,XAR1;循环缓冲区位于主数据页页01

MOV#0A20h,BSA01;循环缓冲区首地址为010A20h

MOV#0000h,AR1;初始化AR1

MOV*AR1+,ACO;ACO=(010A20h)AR1=0001h

MOV*AR1+,ACO;ACO=(010A21h)AR1=0002h

MOV*AR1+,ACO;ACO=(010A22h)AR1=0000hPDP直接寻址该模式使用PDP和一个偏移地址寻址I/O空间

MOV*AR1+,ACO;ACO=(010A20h)AR1=0001h加法指令举例

(1)ADD*AR3+,T0,T1;AR3间接寻址得到的内容与T0的内容相加,结果装入T1,并将AR3增1

寄存器执行前寄存器执行后

AR30302AR30303

T03300T03300

T10T12200

CARRY0CARRY1

数据存储器数据存储器

0302EF000302EF00

(2)ADD *AR1〈〈T0,AC1,AC0;将由AR1寻址得到的内容右移T0位与AC1相加,结果装入AC0

寄存器执行前寄存器执行后

AC000 0000 0000AC000 2330 0000

AC100 2300 0000AC100 2300 0000

T0000CT0000C

AR10200AR10200

SXMD0SXMD0

M400M400

ACOV00ACOV00

CARRY0CARRY1

数据存储器数据存储器

***0

6条件减法指令举例

SUBC*AR1,AC0,AC1;如果(ACO-(*AR1)〈〈#15)〉=0,则AC1=(AC0-(*AR1)〈〈#15)〈〈#1+1 否则AC1=AC0〈〈#1寄存器执行前寄存器执行后

AC023 4300 0000AC023 4300 0000

AC100 0000 0000AC146 8400 0001

AR10300AR10300

SXMD0SXMD0

ACOV00ACOV01

CARRY0CARRY1

数据存储器数据存储器

***0入栈和出栈指令举例

(1)POP AC0,AC1;AC0(15-0)=(SP)AC1(15-0)=(SP+1)

(36-16)不变 SP=SP+2

执行前执行后

AC000 4500 0000AC001 4500 4890

AC1F7 5678 9432AC0F7 5678 2300

SP0300SP0302

数据存储器数据存储器

***0

***0

(2)PSH AR0,AC1;SP=SP-2(SP)=AR0(SP+1)=AC1(15-0)

执行前执行后

AC00300AC00300

AC103 5644 F800AC003 5644 F800

SP0300SP02FE

数据存储器数据存储器

02FE000002FE0300存储单元间的移动及初始化指令举例

(1)DELAY *AR1+;*(AR1+1)=*(AR1)AR1=AR1+1

执行前执行后

AR10200AR10201

数据存储器数据存储器

***0

02010D8002013400

***0

(2)MOV *CDP,*(#0500h);将(*CDP)存入0500h处

执行前执行后

*CDP3400*CDP3400

***0

第四章TMS320C55x汇编语言编程C55x的软件开发环境有集成开发环境和非集成开发环境两种C/C++编译器:用来将C/C++语言源程序(.c.cpp)自动编译

成C55x的汇编语言源程序.asm汇编器:用来将汇编语言源文件.asm

汇编成机器语言COFF目标文件.obj

链接器:将汇编生成的 可重新定位的COFF目标模版.obj组合成一个可执行的COFF目标模版.out段是COFF文件的基本单元 段是一个占据存储器里连续地址的代码或数据块

COFF目标文件的3个默认段

.text段:通常包含可执行代码

.data段:通常包含初始化数据

.bss段 :通常给未初始化的变量保留存储空间链接器对段的处理有两个主要任务,其一是将一个或多个COF

F目标文件.obj中的各种段作为链接器的输入段,经链接后在一

个可执行的COFF模块.out中建立各个输出段。其二是为各个输出段

选定存储器地址(MEMORY SECTIONS)外部符号是指在一个模块中定义 而在另一个模块中引用的符号

它可以用伪指令.def.ref.global来定义

.def在当前模块中定义 并可在别的模块中引用的符号

.ref在当前模块中引用 但在别的模块中定义的符号

.global可以是上面的任何一种情况(1).asg伪指令的使用

.asg AR0,FP:帧指针

.asg *AR1+,Ind:间接地址

.asg”””string”:””,string :串

.asg”a,b,c”,parms:参数

(2).eval伪指令的使用

.asg 1,counter;把1赋值给counter

.loop 100;循环100次

.word counter;给counter分配16位存储空间

.eval counter+1,counter;counter表达式替换符号

.endloop;1自加了100次助记符指令源语句的每一行通常包含4个部分:标号区 助记符区 操作数区 注释区 8 汇编程序中的符号用于标号 常数和替代字符。由字母 数字以及下划线和美元符号 等组成。符号名最长可达200个字符。第一位不能是数字并且符号中不能有空格

第五章 集成开发环境CCS有两种工作模式

软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主 要用于前期算法实现和调试(simulator)

硬件仿真器模式:可以实时运行在DSP芯片上,与硬件开发板相组合在线编程和 调试应用程序(emulator)所建工程文件夹中包含:

包含include文件夹 包含了以.h为扩展名的文件 即c语言文件中的头文件

目标库函数Libraries文件夹 存放以.lib为扩展名的库文件

源程序Source文件夹包含所有扩展名为.c和.asm的源文件

链接命令文件 以.cmd为扩展名直接显示在工程项目文件下

子工程Dependent Projects文件夹

DSP/BIOS配置文件(DSP/BIOS configuration)文件夹

生成(Generated Files)文件夹断点的作用是暂停程序的运行,以便观察程序的状态,检查或修正变量,查看调用的堆栈存储器和寄存器的内容等

第六章C/C++语言程序设计C/C++语言的基本特点:

语言简洁 紧凑,使用方便 灵活

运算符丰富,表达式类型多样化

数据结构类型丰富

具有结构化的控制语句

语法限制不太严格,程序设计自由度大

允许访问物理地址,能进行位操作 能实现汇编语言的大部分功能,能直接对硬件进行操作 2 编译源代码的模式如下

Normal ANSI模式(默认)

K&R C模式

宽松ANSI模式

严格ANSI 模式编译器包括剖析器 优化器和代码产生器编译器的基本优化选项 –o0 –o1 –o2 –o3 –oi(P206)

5P213

6.优化C代码主要方法

生成高效循环代码高效地实用MAC硬件使用本征函数混合使用C代码和汇编语言代码的主要方法有

(1)使用几个独立的汇编代码模块,并将它们与编译了的C模块进行链接,最常用方法

(2)在C源代码中使用汇编语言变量和常数

(3)将汇编语言程序直接嵌入C源代码中

(4)在C源代码中使用本征函数直接调用汇编语言语句

第七章应用程序设计数的定标:由程序员来确定一个数的小数点处于16位中的哪一位

溢 出:算术运算结果超出寄存器所能表达的最大数就会出现溢出溢出的处理方法:饱和 输入定标 固定定标和动态定标常用信号处理算法中的定标方法

DSP课程设计教学大纲 篇6

课程类别:必修 课程性质:集中实践环节 先修课程:数字信号处理、DSP原理与应用

教 材:《DSP系统设计与实现》,电子工业出版社,雷勇,2004年

一、课程性质与任务

DSP课程设计是数字信号处理和DSP原理与应用课程的后续实践环节。通过本课程设计,帮助学生进一步领会和深化课堂上学到的有关数字信号处理的基本概念、基本原理以及基本的数字信号处理操作,进一步理解DSP芯片的硬件实现机理及其内部结构特点,掌握DSP系统的开发流程和基本编程方法,实践工程的调试方法和仿真方法。通过DSP课程设计,加强学生的实际动手能力、分析问题与解决问题能力, 培养学生创新意识,为毕业后从事DSP系统设计方面的工作打下坚实的实践基础。

二、课程教学的基本要求:

作为电子信息工程、通信工程专业本科生的必修实践环节,DSP课程设计要求学生有较扎实的理论基础。进入课程设计前要认真复习数字信号处理和DSP原理与应用课程中的相关部分。课程设计采用课堂讲述、自学、分组实践相结合的方式,通过分析典型的例子,使学生熟悉并掌握DSP的开发流程和基本的编程方法。课程设计要求2—3人组成课设小组,在指定范围内选定题目,每组选一题,题目应侧重一个DSP芯片的具体应用方面。题目选定后,在教师的指导下,学生理解设计原理,分析重要电路单元,计算必要的参数并在此基础上编写程序,最后,在课程设计结束时独立写出理论分析完善、文理通顺、字迹工整的课程设计报告并上交软件程序。教师可根据作品的难易程度、参数指标、编程水平等进行评分。

三、课程内容及教学要求:

学生可从下列题目中任选一个作为DSP课程设计题目。

(一)C54x串口通信及A/D、D/A接口

教学要求:本题目要求学生了解AD50芯片的工作原理,理解C54x串口的工作过程,重点掌握多通道缓冲串口(McBSP)的使用,并在教师的指导下编写程序,实现C54x与AD50之间的数据传输。

重点:1.McBSP的初始化

2.C54x与AD50的硬件接口电路

3.通过McBSP实现DSP芯片与AD50之间的数据交换 难点:程序的编写与调试

(二)设计FIR数字滤波器

教学要求:复习FIR数字滤波器的设计方法,根据题目给出的技术指标,选择合适的窗函数及阶数,进一步得到系数表,实现满足一定技术指标的低通数字滤波器。

重点:1.FIR数字滤波器的设计原理 2.编程实现数字滤波器 难点:窗函数的选择与阶数的确定

(三)设计IIR数字滤波器

教学要求:复习IIR数字滤波器的设计原理,以巴特沃斯模拟滤波器为基础,通过双线性变换法设计IIR数字滤波器,课题要求学生根据给出的技术指标确定巴特沃斯滤波器阶数,求出3dB截止频率,进一步得到数字滤波器极点和零点,并在教师指导下编写程序,完成数字滤波功能。

重点:1.IIR滤波器的设计原理 2.计算滤波器相关参数 3.编程实现IIR滤波器

难点:对设计原理的理解,程序的设计与调试

(四)快速傅立叶变换的DSP实现

教学要求:复习FFT原理,深刻理解C54x辅助寄存器的使用及位倒序寻址等技巧,在教师指导下编程实现数字信号的快速傅立叶变换。

重点:1.快速傅立叶变换原理 2.C54x的位倒序寻址方式 难点:多级蝶形运算的实现

(五)正弦波信号发生器

教学要求:本题目要求学生复习正弦函数和余弦函数的泰勒级数展开式,掌握C54x系列DSP芯片的编程方法,在教师的指导下用C54x芯片产生频率、相位、幅值可变的正弦波。

重点:1.产生正弦波的算法 2.汇编语言程序的具体实现 难点:正弦波的具体编程实现

四、考核方式

1.课程设计报告占50% 2.设计程序的实际工作情况、难易程度和技术指标等,占总成绩的50%

五、课程的主要参考书

1、《DSP原理及应用》,电子工业出版社,邹彦,第1版,2006;

2、《DSP集成开发与应用实例》,电子工业出版社,张雄伟,第1版,2002;

制定人: 何静

审定:

批准:

上一篇:定额法与标准成本法之比较毕业论文下一篇:很伤感的爱情散文随笔