DSP原理与应用
大作业
姓名: 潘俊涛
班级: 应电121班
学号: 120414119
2014年6月
第1部分 概述
一、DSP简介;
当德州仪器(TI)公司在1982年研发出第一款商用数字信号处理器是,谁也不会想到它竟能给世界带来如此大的变化。从移动通信到消费电子领域,从汽 的第一代数字信号处理器仅包含了55000个晶体管,4KB内存处理指令只有5MIPS(每秒百万条),经过二十余年的发展,单核数字信号处理器的处理能力已经达到9600MIPS的惊人速度,寻址能力高达1280MB。而第三代数字信号处理器则以其强大的数字信号处理能力、超低功耗和适合手持设备的超小型封装的等特点,较好的满足了新一代电子产品的要求。
二、DSP的发展;
20世纪60年代以来,随着信息技术的不断进步,数字信号处理系统也应运而生并得
到迅速的发展。80年代以前,由于方法的限制,数字信号处理技术处于理论研究阶段,还得不到广泛的应用。在此阶段,人们利用通用计算机进行数字滤波、频谱分析等算法的研究,以及数字信号处理系统的模拟和仿真。
实施数字信号处理对数字信号处理系统的处理能力提出了严格的要求,所有运算、处理都必须小于系统可接受的最大时延。典型的数字信号处理系统的基本部分:抗混叠滤波器、模/数转换器、数字信号处理、数/模转换器和抗镜像滤波器。
以下几种问为当前实用的数字信号处理系统:
1、利用X86处理器完成实时数字信号处理
2、利用通用微处理器成实时数字信号处理
3、利用可编程逻辑阵列(FPGA)进行成实时数字信号处理
4、利用数字信号处理器(DSP)实现数字信号处理
三、DSP的特点;
DSP系统的应用领域极其广泛,目前主要的应用领域如下:基本信号处理、通信、语音、图形图像、军事、仪器仪表、控制、医疗和家用电器。DSP最大的应用领域是通信,并且军事领域是高性能DSP的天地。
众所周知,微处理器的存储结构分为两大类:冯.诺伊曼结构和哈弗结构。DSP广泛使用冯.诺伊曼结构。由于冯.诺伊曼结构只有一个存储空间、一套地址总线和一套数据总线,
所以运算的时候较为浪费时间,为了提高指令执行速度,现在DSP采用程序存储空号间和数据存储空间分开的哈佛结构和多套地址、数据总线。 并且现在高性能DSP采用片内高速缓存(Cache)技术以加快其处理速度。
流水线:流水线结构将指令的执行分解为取指、译码、取操作数和执行等几个阶段。在程序运行过程中,不同指令的不同阶段在时间上是重叠的,流水线结构提高了指令执行的整体速度,有助于保证数字信号处理的实时性。
硬件乘法累加单元:DSP处理器使用专门的硬件来实现单周期乘法,并使用累加器寄存器来处理多个乘积的累加。
零开销循环:是指循环计数、条件转移等循环机制有专门硬件控制而处理器不用花费任何时间。
特殊的寻址方式、高效的特殊指令和丰富的片外内设等特点。
四、芯片性能;
DSP器件可以分为三类:第一类应用于工业控制领域,这方面要求DSP工作稳定、可靠、集成度高、成本低;第二类是大量的低成本嵌入式应用系统,成本、集成度和功耗是最重要的原因;第三类是需要用复杂的算法对大量数据进行处理的应用。
C24x系列主要用于电机控制领域,它可以为交流感应电机、直流永磁体电机和开关激励式电机等提供高效控制,为无刷电机的变速控制提供廉价且高可行性的解决方案。内核具有一个32位算数逻辑单元、一个32位累加器、一个16位*16位乘法器。
C28x系列处理器是为控制领域的高端应用而开发的系列产品。内核提升智能32位,有两个16位*16位的乘法累加器。并且C28x系列分为三个小系列,即C280x、C281x和C2833x系列,而C2833x又为用户提供了浮点处理能力。
C62x系列是TI公司第一个采用超长指令字的DSP产品,包含6个算术逻辑单元和两个16*16位乘法器,C600系列可以在一个循环中完成8次操作。
C64x系列采用C64x内核,采用增强型超长指令字结构,改进流水线结构,支持32位或64位宽度存储器访问,最高处理能力已经达到9600MIPS。
C67x和C33是TI公司的浮点数字信号处理系列,内核包括4个浮点/定点算术逻辑单元,支持单/双精度浮点运算。
C54x和C55x系列是TI公司为便携式消费电子产品推出的16位定点信号处理器。并且C55x是在C54x基础上开发的新型低功耗、高性能数字处理器,它兼容C54x代码集,乘法器变成两个,而采用最新芯片制造技术大幅度提升DSP的主频从而提高C55x系列处理器的处理能力。
五、芯片选择;
芯片选择要注意几个因素:
(1)、预算速度;
(2)、算法格式和数据宽度;
(3)、存储器;
(4)、功耗;
(5)、开发工具;
六、DSP应用系统设计流程;
有以下几步:
(1)、确定系统性能指标;
(2)、核心算法模拟和验证;
(3)、选择DSP芯片及其他系统组件;
(4)、硬件设计和调试;
(5)、软件设计和测试;
(6)、系统测试、集成。
第2部分 硬件结构
TMS320C55x数字信号处理器是在C54x的基础上发展起来的新一代低功耗、高性能数字信号处理器,其软件具有C54兼容模式,极大地节省了C54x向C55x的转化时间。
C55x系列采用了新的半导体工艺,其工作时钟大大超过了C54x系列处理器,CPU内部通过增加功能单元增强了DSP的运算能力,与C54x相比具有更高的性能和更低的功耗。这些特点使之在无线通信、便携式个人数字系统及高效率的多通道数字压缩语音电话系统中得到广泛应用。
一、CPU体系结构;
C55x有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位的数据地址总线,这些总线分别于CPU相连。总线通过存储器接口单元(M)与外部程序总线和数据总线相连,实现CPU对外部存储设备的访问。这种并行的多总线结构,可以使CPU在一个CPU周期内完成1次32位程序代码读、3次16位数据读和2次16位数据写。并且C55x根据功能的不同将CPU分为4个单元,即指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)和数据计算单元(D)。
3条读数据地址总线(BAB、CAB、DAB)与3条读数据数据总线(BB、CB、DB)配合使用,即BAB对应BB、CAB对应CB和DAB对应DB。地址总线指定 数据空间或I/O空间地址,通过数据总线将16位数据传送到CPU的各个功能单位。其中,BB只与D单元相连,用于实现从存储器到D单元乘法累加器(MAC)的数据传送。特殊的指令也可以同时使用BB、DB、和CB来读取三个操作数。
2条写数据地址总线(EAB、FAB)与2条写数据数据总线(EB、FB)配合使用,即EAB对应EB、FAB对应FB。地址总线指定数据空间或I/O空间地址,通过数据总线,将数据从CPU的功能单元传送到数据空间或I/O空间。所有数据空间地址有A单元产生。EB和FB从P单元、A单元和D单元 接受数据,对于同时向存储器写2个16位 数据的
指令要使用EB和FB,而对于完成单写操作的指令只有使用FB。
二、存储空间结构;
C55x的寻址空间为16MB,当CPU从程序空间读取程序代码时,,使用24位地址,当访问数据空间时,使用23位地址。但是访问时地址总线都传送24位地址。
数据空间被分成128个主数据页(第0页到第127页),每个主数据页的大小为64KB,指令通过7位主数据页值和16位的偏移值共同来确定数据空间的任何一个地址。在第0主数据页中,前96个地址(00 0000h-00 005Fh)为存储映射寄存器(MMR)保留,相对应在程序空间有192个地址(00 0000h-00 00BFh),这段存储器为系统保留,用户不能使用该区。在C55x 中的DSP采用字寻址来读/写数据空间的8位、16位或32位数据。
程序空间:当CPU读取指令时,程序空间才被访问。CPU采用字节寻址来读取变长的指令,指令读取要和32位偶地址对齐(地址的低两位为零)。
I/O空间:C55x中DSP的I/O空间与数据/程序空间是分开的,采用16位宽的字寻址,即为每个字分配一个16位地址,其寻址范围为64KB。且I/O空间只用来访问外设寄存器,不可用来扩展外设。
三、中断和复位;
中断引脚作为低电平有效的外部中断输入引脚,由中断使能寄存器(IER)和中断模式位来屏蔽和区分优先次序。
复位引脚低电平有效,当该信号有效时,DSP将终止任务的执行并使程序指针指向FF 8000h,当复位引脚变为高电平时,DSP从程序存储器FF 8000h的位置开始执行。
第3部分 指令系统
一、寻址方式;
寻址方式是指如何指定指令和操作数所在存储空间的地址。C55x DSP 支持三种寻址模式,可以高效、灵活的对数据空间、存储映射空间、寄存器位和I/O空间进行寻址,它们是:绝对寻址、直接寻址、间接寻址模式。
绝对寻址模式又分为三种,分别是K16绝对寻址、K23绝对寻址和I/O绝对寻址。
直接寻址模式有以下几种:数据页指针(DP)直接寻址、堆栈指针(SP)直接寻址、寄存器位直接寻址和外设数据页指针(PDP)直接寻址。其中,DP直接寻址和SP直接寻址与状态寄存器ST1-55的CPL位有关:
当CPL=0,采用DP直接寻址;当CPL=1,采用SP直接寻址;
而寄存器位寻址和PDP直接寻址与CPL无关。
间接寻址:CPU支持的间接寻址模式有AR间接寻址模式、双AR间接寻址模式、CDP间接寻址模式和系数间接寻址。利用这些模式可以进行线性或循环寻址。
二、指令系统;
指令的并行执行的特征:C55xDSP的结构特点使其在一个周期内可以并行执行两条指令。C55x支持三种类型的并行指令:单指令中内置并行方式;用户自定义的两条指令间的并行方式;内置与用户自定义混合的并行方式。
指令并行的规则:
(1)、两个指令的总长度不能超过6个字节;
(2)、在指令的执行过程中不存在操作器、地址产生单元、总线等资源冲突;
(3)、其中一条指令必须有并行使能位或两条指令符合软--双并行条件。
与此同时还有几下几种情况不能使用并行方式:
(1)、使用立即数寻址方式;
(2)、条件跳转、条件调用、中断、复位等程序控制指令;
(3)、使用下列指令或者操作修饰符:
mmap()
port()
(4)、一个单独的寄存器或存储器在一个流水线节拍被读两次; 三、汇编指令; TMS320C55x是TSM320家族中的定点数字信号处理器,可以使用两种指令集:助记符指令集和代数指令集。代数指令集中的指令类似于代数表达方式,运算关系比较清楚明了;助记符指令集与计算机汇编语言相似,采用助记符来表示指令。不过,在编程时只能使用一种指令集。TMS320C55x指令集按操作类型可分为以下6种:算术运算指令、位操作指令、扩展辅助寄存器操作指令、逻辑运算指令、程序控制指令。 (一)、算术运算指令就是对被操作数进行的加法、减法、乘法、除法等指令而进行的运算。 (二)、位操作指令支持对可操作数进行位比较、位计数、设置、扩展、抽取和状态位设置指令等操作。 (三)、扩展辅助寄存器操作指令; (四)、逻辑运算指令包括按位与/或/异或/取反、逻辑位移和循环位移。 (五)、移动指令分为以下是种类型:累加器、辅助寄存器或临时寄存器装载、存储、移动和交换;存储单元的移动及初始化;入栈和出栈;CPU寄存器装载令、存储和移动。 (六)、程序控制指令用于控制程序的流程,包括跳转指令、调用与返回指令、中断与 返回指令、重复指令等。 第4部分 软件开发及CCS集成开发环境 一、DSP软件开发设计; C55x系列处理器应用灵活、处理能力强大,为开发、使用提供了一个很好的硬件平台,要是这个平台更好的发挥作用,高效、方便的软件开发设计是不可或缺的。在数字信号处理器的软件开发中一直存在两难的选择,C/C++语言开发容易、移植性强,但效率较低,不能满足实时性要求;汇编语言效率较高,对硬件的操作更为直接,但是程序编写复杂、易读性差。移植性不好。所以在两者之间折中一下,即程序的主体框架和对实时性要求不高的部分采用C/C++语言,而算法实现则采用汇编语言,这样能够充分发挥二者的优点。 自我调度程序通常有中断程序部分、初始化部分和主循环部分,初始化部分通常完成DSP软件、硬件的初始化设置,启动系统硬件,使能DSP中断,启动DMA传送等功能。这些工作做完后,进入程序的主循环部分。主循环部分是程序的主体,将由它完成数据输入、处理和输出等工作。主循环由条件判断和处理模块组成,当满足条件,处理数据,反之,进入下一个判断条件。而中断程序通常不进行数据处理,只通过设置判断标志来影响主循环部分的运行。 并且主循环部分必须将最大时延限制在最大可能接受的时延内。 应用嵌入操作系统:在数字信号处理器中运行的操作系统必须满足系统实时性要求,操作系统的实时可分为硬实时方式和软实时方式。软实时系统有软件来进行任务的切换,而硬实时系统则按照固定时钟节拍切换任务。嵌入式实时操作系统的作用就是合理调度、分配任务的运行,使各个人物正确、及时地执行。嵌入式操作系统的核心便是操作系统内核,在任务中内核负责管理各个任务,基于优先级的内核可以分为不可剥夺型和可剥夺型 两个种类型。 程序的研发设计部分全部用的是C/C++语言和汇编语言,主要就是这两种语言的应用与编写,这里就不赘述了。 当程序编写成功之后,用汇编器和链接器产生的可执行文件采用的格式是通用目标文件格式(COFF),而采用通用目标文件格式有助于实现模块化编程,而汇编器和链接器都支持用户创建多个代码段和数据段,这也有助于灵活编程。编译器产生的可以重新定位的代码和数据叫做段。段可以分为两大类:初始化段和未初始化段。初始化段装有数据或代码,在系统加载时会将这些数据或代码载入到存储器的相应位置。 链接器对汇编器编译好的代码和数据进行连接时,所依据的是链接命令文件,即.cmd文件。在链接命令文件中定义了段命,段的起始地址,段的长度,初始化的初始值等。 C55x处理器的数字信号处理库和图像、视频处理库。这些库文件都是TI公司为了满足用户的需求,并且提高运行效率,所研发出来的技术手段。数字信号处理库主要包含以下8种类型:快速傅立叶变换;滤波与卷积;自适应滤波;相关;数学运算;三角函数;其他运算;矩阵;数字信号处理库有头文件dsplib.h,目标库55xdsp.lib,源文件库55xdsp.src和在55x_test子目录下的示例程序和链接命令文件组成。 图像、视频处理库有以下几种类型函数:压缩和解压缩、图像分析;图像滤波和格式转换。 二、对CCS的认识; TI公司的DSP集成开发环境CCS是一个在 Windows操作系统下,为开发TMS320系列DSP而设计的集成开发环境。CCS不仅包含代码生成工具,具备基本调试功能,而具备实时分析能力。它支持整个软件开发过程:从方案设计、代码生成到测试、实时分析等。 CCS的功能十分强大,他集成了代码的编辑、编译、链接和调试功能等,且支持C语言和汇编语言混合编程。 集成可视化代码编辑界面:可直接编写C语言、汇编、C语言和汇编混合、.H文件和.cmd文件等 集成代码生成工具:汇编器、优化C语言编译器、链接器等,将代码的编辑、编译、链接和调试等功能集成到一个环境中。 基本调试工具:可装入执行文件代码(.out文件)、查看寄存器窗口、存储器窗口的、反汇编窗口和变量窗口,并且支持C语言源代码级调试。 断点工具:能在调试程序的过程中,设置软件断点、硬件断点、数据空间 读/写断点、条件断点等。 探针调试工具:可用于算法仿真、数据监视等。 性能分析:可用于分析代码执行的时钟数。 实时分析和数据可视化工具:例如,数据的图形显示工具,可绘制时域/频域波形、眼图、星座图、图像等,并且拥有自动刷新功能。 GEL工具:用户利用GEL扩展语言可以编写自己的控制面板/菜单,设置GEL菜单选项,可方便直观的修改变量,配置参数等。 支持实时数据交换RTDX技术:该技术可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)的数据交换。 提供DSP/BIOS工具:增强对代码的实时分析能力,如分析代码执行的效率、调试程序执行的优先级、方便管理或使用系统资源,从而减少了开发人员对硬件资源熟悉程度的依赖性。 CCS尤为重要的特点是提供配置、构造、跟踪和分析程序的工具,并且在基本代码生成工具的基础上增加调试和实施分析功能,为使用者提供了方便、实用的开发工具,从而加速了实时、嵌入式信号处理的开发。 三、软件开发; 创建一个新文件的步鄹如下: (1)选择主菜单“File”中的“New”选项,或者单机标准工具条创建新文件,将在编辑窗口出现一个新窗口。 (2)在新窗口中输入设计程序,同时在编辑窗口标题的文件名后面会出现一个星号(*),表示该文件被修改,保存后星号自动消失。 (3)选择主菜单“file”中的“save”或“save as”选项,或者单击标准工具条上的按钮。将出现“保存为”对话框。将文件名写入对话框,并且拓展名为“.c” 。 (4)单击“保存为”对话框上的“保存”按钮,完成文件保存。 工程项目:就可以对该文件进行编译连接,生成可执行文件。 将文件编译之后会产生一个文件扩展名为.out文件。然后,打开菜单“file”中选择“load program”选项。当程序装载完毕,之后会出现一个对画框, 然后在对这个可执行文件进行测试调节。 在程序测试过程中有时需要经常对处理器进行复位处理。当程序调试完毕之后,开始运行程序。运行程序时,有以下按钮使用:Step Into、 Step Over、step out 、run to cursor 、multiple operation、 run 、halt 、animate 、run free,在检测程序运行。 在这个过程中肯定是复杂的,里面需要各种检测工具,和实时测试工具。但是在我们所学中的文件建立中没有用到,所以就先不赘述了。如果以后用到,在查资料。 第5部分 片内外设 由于我们主要学习的是C55x系列,下面便是C55x的片内外设分为主要几大类: 一、时钟与定时器 时钟与定时器包括时钟产生器、通用定时器、实时时钟以及看门狗定时器等。时钟产生器的功能是产生CPU的工作时钟,并提供CLKOUT时钟输出;通用定时器、实时时钟及看门狗定时器的功能是通过计数器为系统提供定时时钟和年、月、日、时、分、秒等时钟信号,以及监控系统正常运行的看门狗时钟,并能发出相应中断。 二、外部设备连接接口 外部设备连接接口包括外部存储器连接接口、主机接口等。外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM、SBSRAM、Flash、SRAM存储器等,外部存储器接口还可以同外部并行设备链接,这些设备包括并行A/D、D/A转换器、具有异步并行接口的专用芯片,并可以通过外部存储器接口同FPGA、CPLD等连接;主机接口主要用来为主控CPU和C55x处理器之间提供一条方便、快捷的并行连接接口,这个接口用来对DSP进行控制、程序加载、数据传输等工作。 三、信号采集 信号采集类的外设包括采集模拟信号的模/数转换器和提供数字信号输入、输出功能的通用输入/输出接口。模/数转换器为DSP提供了多通道模拟/数字转换能力,通用输入、输出接口可以完成数字信号采集,当其被设置为输出模式时,可以通过这些接口对其他设备进行控制。 四、通信接口 C55x处理器为用户提供多种类型的通信接口,包括多通道缓冲串口、IIC接口、异步串口、USB 接口以及多媒体卡/SD卡接口。多通道缓冲串口可以连接串行存储器、A/D转换器,并通过该接口实现与其他处理器的高速串行连接,多媒体卡/SD卡接口可以用来扩展SD存储卡等移动设备,IIC接口、异步串行口和USB接口为DSP通过了各种通用通信接口。 五、其他外设 其他外设包括DMA控制器,、指令流水线等,这些外设用来辅助CPU工作,提高DSP的工作效率。 下面将一些主要的外设进行详细的介绍: 一、多通道缓冲串口MCBSP 它具有以下功能特点:全双工通信;双缓冲数据寄存器,允许传送连续的数据流;独立收发时钟信号和帧信号;可用128个通道进行收发;可与工业标准的编解码器、模拟接口芯片(AICs)以及其他串行A/D、D/A芯片直接接口连接;能够向CPU发送中断,向DMA控制器发送DMA事件;可设置帧同步脉冲和时钟信号的极性;传输的字长可以是8位、12位、16位、20位、24位 、或32位;具有u律和A律压缩扩展功能;可将MCBSP引脚配置为通用输入/输出引脚。 二、DMA控制器 有以下与特点:DMA可以独立于CPU工作;有四个标准端口(port)与DARAM、SARAM、外部存储器和外设相连;一个辅助端口用于HPI和存储器之间的数据传输;具有六个通道;可以设置每个通道的优先级;每个通道的传输可以有选定事件触发;当操作完成之后,DAM控制器可向CPU发出中断。 三。主机接口(EHPI) 主机接口有两种有两种——非复用方式和复用方式。如果是复用连接方式,地址和数据则都将通过数据总线总线传递。主机接口有以下寄存器:数据寄存器(HPID)、地址寄存器(HPIA)和控制寄存器(HPIC),数据寄存器是一个16位寄存器,用来存放输入/输出的数据。 以上便是主要的一些片内外设。 第6部分 DSP应用实例 这一次查找的DSP实例应用是2012年第十期,中国电业.技术期刊《基于DSP的高性能单相逆变电源的研制与应用》。作者是江苏职业技术学院教员任英,她主要从事电子教育事业。 现在随着工业生产规模的扩大,与对工业控制精度要求的提高,从而产生了许多相对的并发性研发产品,电源控制便是其中之一。电网中的电源质量较差,要经过网下的电路整流将较差的电源逆变成质量较好的,并且数字化信号处理也在快速的发展。数字化智能交流逆变电源已成为逆变电源研发的重要方向。以DSP为核心的数字化电源在外国得到广泛的应用,而国内有关DSP数字化电源大多借鉴国外技术,在普及化、个性化等方面还有待将进一步提高。 该期刊里面主要的便是介绍一种基于DSP处理器和SVPWM控制技术的全数字化单相逆变电源。期刊里面有对基于DSP的单项逆变电源方案、主电路结构和运行模式的分析。并且成功的将SVPWM单相电压矢量空间脉宽调制控制技术引用到单相PWM逆变电源系统中,并提出SVPWM单相电压矢量空间的坐标旋转变化方法,使高精度单相逆变控制更易实现。并且,经过试验仿真有良好的互动跟踪调控均流效果。 这一片期刊中主要用的是SVPMW控制策略,以TI公司高精度、高可靠性的型号TMS3230LF2407A的DSP数据处理芯片为控制核心从而能够设计出简易并且高性能的单相逆变电源控制系统。下面的图便是单相逆变电源设计方案。 我们在学习的时候要着重的能够掌握一些比较前沿的知识点,以便我们能够快速的进入社会、融入社会。现在的工业控制基本上都是数字化处理,这是一个很好的切入点,数字化的发展肯定不会止步于此。我们可以成为它的推动者,只要我们努力。 参考文献 [1] TMS320C55x DSP CPU Reference Guide. Texas Instruments,2004 [2] TMS320C55x Technical Overview. Texas Instruments,2000. [3] 汪春梅,孙洪波,任志刚.TMS320C5000系列DSP系统设计与开发实例.北京:电子工业出版社,2004. [4] 邹彦,唐冬,宁志刚.DSP原理及应用.北京:电子工业出版社,2005. [5] 汪春梅,孙洪波,邹俊忠.TMS320C55x DSP原理及应用.北京:电子工业出版社, 2011. 因篇幅问题不能全部显示,请点此查看更多更全内容