dsp心得体会范文教学教材Word文档下载推荐.docx
《dsp心得体会范文教学教材Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《dsp心得体会范文教学教材Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序与数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取值、译码和执行等操作可以同时进行。
世界上第一个单片DSP芯片应当是1978年AMI公司发布的S2811,1979年美国INTEL
公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。
这两种芯片内部都没有现代DSP芯片所必须有的单周期乘法器。
1980年,日本NEC公司推出的uPD7720是第一个具有乘法器的商用DSP芯片。
当前,美国德州公司(TI),Motorola公司,模拟器件公司(AD),NEC公司,AT&
T公司是DSP芯片主要生产商。
选择合适的DSP芯片,是设计DSP应用系统的一个非常重要的环节。
一般来说,要综合考虑如下因素:
(1),DSP芯片的运算速度;
(2),DSP芯片的价格;
(3),DSP芯片的硬件资源;
4),DSP芯片的运算精度;
(5),DSP芯片的开发工具;
(6),DSP芯片的功耗等等。
二,DSP芯片的基本结构。
TI公司的TMS320系列芯片的基本结构包括:
(1)哈佛结构。
哈佛结构是一种并行体系结构,主要特点是将程序和数
据存储在
不同的存储空间中,独立编址,独立访问。
由于设立了程序总线和数据总线两条总线,从而使数据的吞吐量提高了一倍。
为了进一步提高芯片性能,TMS320系列芯片允许数据存放在程序存储器中,并被算术运算指令直接使用;
还把指令存储在高速缓冲器(Cache)中,减少从存储器中读取指令需要的时间。
(2)流水线。
DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。
以三级流水线为例,取指,译码和执行操作可以独立的处理,在第N个指令取指时,前一个(N-1)个正在译码,而第N-2个指令则正在执行。
(3)专用的硬件乘法器。
TMS320系列芯片中,有专门的硬件乘法器,乘法可以在一个周期内完成。
(4)特殊的DSP指令。
比如LTD这条指令在一个指令周期内可以完成LT、DMOV和APAC三条指令。
(5)快速的指令周期。
DSP芯片的指令周期可以在200ns以下。
TMS320系列芯片的指令周期已经降到了20ns以下。
可以满足很多DSP应用的要求。
(三)开发工具。
可编程DSP芯片的开发需要一整套完整的软硬件开发工具。
通常开发工具可以分为代码生成工具和代码调试工具两类。
代码生成工具是将用C或汇编语言编写的DSP程序编译汇编并链接成成可执行的DSP程序。
代码调试程序是将DSP程序及系统进行调试,使之能达到设计目标。
就软件开发而言,用DSP芯片的汇编语言编写程序是一件比较繁杂的事情。
因为不同公司不同类型的芯片的汇编语言都不尽相同。
基于以上原因,各个公司都相继推出了高级语言(如C语言)编译器,使得DSP芯片的软件可以通过高级语言编写而成。
TI的优化C编译器能够产生可与手工编写的汇编语言相比的汇编语言程序,提供了简单的C执行时环境的程序接口,使得关键的DSP算法可用汇编语言实现建立了一定规模的工具库来方便使用。
在C编译器中还提供了一个所谓的外壳程序(Shell),可以使C程序的编译、汇编和链接三个过程一次完成。
(四)关于TMS320C54X定点DSP芯片的设计使用。
TMS320C54X定点DSP芯片具有很高的性价比,体积小,功耗低,功能强,已在通信等许多领域得到广泛的应用。
该系列芯片大部分采用低电压供电方式,可以降低功耗,其电源分为两种,内核电源(CVdd)电源和I/O电源(DVdd)。
与3.3V的供电相比,2.5V的内核电源可以降低44%的功耗;
而I/O电源3.3V可以直接与外部低压器件接口,无需额外的电平转换电路。
但是,由于现在很多外围芯片的工作电压都是5V,如EPROM、SRAM、模数转换芯片等,因此就要特别注意不同IC之间电平的转换。
例如5V的TTL和3.3v的TTL器件之间只要耐压允许,电平可以通用;
而5V的CMOS被3.3v的TTL驱动时,要加双电压(一边是3.3V供电,一边是5V供电)的驱动器。
TMS320C54X系列芯片有丰富的内部快速存储器,也可以扩展外部存储器。
一般需要扩展EPROM/PROM,扩展时也要注意电平转换的问题。
采用Flash存储器存储程序和固定数据是一种比较好的选择。
进行软件设计时,要注意以下一些问题:
(1)流水线冲突。
TMS320C54X采用了深度为6级的流水线操作,因此流水线冲突不可避免。
一般在冲突发生时,由DSP自动插入延迟解决问题。
但有些情况下DSP无法自动解决问题,需要程序员通过调整程序语句的次序或在程序中插入一定数量的NOP来解决。
如果在调试程序中不能得到正确的结果,而又找不到程序错误时,就应该想到是否发生了流水线冲突,解决方法是在合适的位置插入一至几个NOP指令。
(2)编译模式选择。
在ST1状态寄存器中,有1位编译器模式控制位CPL。
用于指示在相对直接寻址中采用哪种指针。
为0是使用页指针DP,为1时采用堆栈指针SP。
注意模式切换时可能引起流水线冲突。
(3)指令对存储器的要求。
有些指令是对存储器是有特殊要求的,使用时要注意。
此外,在软件编程时还有一些技巧。
比如要充分利用片内存储器,节省程序运行时从片外存储器读入程序或数据的时间;
利用程序寻址空间,可以方便的寻址和执行更大规模的程序;
利用两个内部累加器,可以有效的提高编程效率;
利用ALU的分裂操作模式和CSSU单元可以加快运算速度;
利用自动溢出保护功能和利用条件存储指令等等。
TMS320C54X系列芯片一般都在片内设置有BOOT程序,主要作用是在开机时将用户程序从外部装入到程序存储器。
用户需要使用BOOT时,需要将DSP设置为微计算机工作方式。
除此之外,通过学习我还了解了如何用MATLAB进行DSP设计模拟,其他一些DSP芯片的大致结构和性能,以及具体的DSP应用开发方面的知识。
在教员的悉心教导下,经过我的认真学习,对DSP应用方面的知识有了一个整体的了解,虽然还没有利用DSP芯片做过实际的东西,但我通过对该课的学习,为以后可能的设计应用打下了一定基础。
对于数字信号处理课程最初的料想是在学长和以前的任课老师那里听来的,据说这门课是跟随着信号系统的步伐,而且难度比较的大。
而至于滤波器就更加简单,只是根据频域的图像告诉我们,可以通过相乘得到这样的一部分我们所需要的频段。
对于连续型号我们可以很简单的从图像中看出来,那么数字信号呢?
我们知道现实中模拟信号的传输是很麻烦的,而我们现在广泛采取的就是数字信号,那么同样的问题数字信号也是怎么解决的吗?
答案是显然的。
那么既然不一样,我们可以做出数/模——模/数之间的转换是不是就可以了?
转换之后,会不会添加或者减少了一些东西呢?
数字滤波器到底是怎么做出来的呢?
实际的滤波器肯定不可能就是一个门函数,那么物理可实现的滤波器又是怎么样设计出来的呢?
还有关于调制解调严格的相干条件,如果频率有出路该怎么办,如果是倍频或是半频又该怎么办呢?
因为牵涉到离散的问题,原来很清晰的连续函数不再完全适用,那么我们应该怎么在信号系统后承接好数字信号处理这门课呢?
应该说这些问题是我在信号系统之后一直想的,也是在学习数字信号处理之前应该思考的。
让我释然的是李老师在第一节课时对这门课程作解释时的一句话,我到现在仍然记忆犹新。
她说:
很多学生看到这么多公式就感到害怕,但实际上我们不是要求大家单纯的去算这些式子。
我们不是数学课,我们的要求其实是希望大家能够理解这些式子背后的物理含义。
很多式子从数学推理上学很难,但是用物理的方法很简单的一看就明白了。
而我们这门课大家就要学会从物理模型的角度去思考,很多问题就很容易就理解了。
从物理模型的角度去理解记忆这些公式,这是我对老师话的总结。
在后续的课程中我也是这么做的。
但是我对这门课的心得还要再加上两句话:
(1)拓展从信号系统中学到的知识,比较它与这门课的异同。
(2)从物理模型的角度去理解记忆这些公式,或者是从自己的角度去理解,不要拘泥于老师和课本上的条条框框
(3)重视matlab仿真实验,从图像中去加深理解。
对于这三句话我会在下面作解释。
首先,对于信号系统与数字信号处理的关系,只要是学过这两门课程的人都看的出来。
我前面说过,在学习的开始就有人有意无意的提醒我这两门课程的关系。
有先入为主的概念,几乎每个人在学习数字信号系统的时候都会有意无意的去比较这两门课程。
显然这是温故而知新,对这门课程是有帮助的。
但是这种被动的比较,帮助很小,我们应该学会主动的去罗列他们的不同之处。
比如说第三章Z变换、Z变换收敛域、Z反变换、Z变换的性质,虽然是离散的,在表示方式上与连续的有所不同,但是变换的实质是差不多的,所以很多性质往往可以与傅里叶变换性质一起记忆,甚至许多性质公式完全可以从傅里叶变换的性质中互推得到。
又比如采样中,采样定理的原理是一样的,但是如连续时间信号的离散时间处理,或者离散时间信号的连续时间处理,将会导致一些不同,这归根结底在于离散信号与连续信号不同之处。
这些异同之处加以理解,甚至反过来,回头再看以前的课本,你会发现很多地方又加深了理解,以前的有些疑问也释然了。
或许有人认为以前的课程已经结束了,过去的问题懂不懂无所谓。
实际上,很多以前的东西是现在学习的基础,基础扎实了,在以后有可能就因为这个道理,触类旁通反而解决了后续的问题。
如此看来,不单单是信号系统,我们甚至可以与其他一些并行的课程一起理解,比如自动控制原理中的零极点图,和最小相位系统是一致的理论;
通信原理中也有调制解调和编码的东西甚至滤波器的设计,虽然主要是考虑信噪比的计算,但是基本原理是一样的。
尽管这种比较可能对做题上没有什么很大的影响,但是了解整个过程,了解整个系统是怎么运作的就对整个系统由了深刻的理解。
这样在物理模型层面上,就更明白这是为什么了。
这就为老师所说的,从物理模型的角度去理解记忆这些公式打下了基础。
有很多章节,他的基础都是前几章的公式,或是正对后面章节实现的定义。
刚开始看的时候,觉得没有道理,而且很简单的问题偏偏要用数学表达式去表示,很显然的推论,用数学语言描述之后就看不太明白了。
那么既然如此,我们也没必要一定要把那些数学表示方法背下来,完全可以通过其物理的现象去理解它。
本来,你用什么语言去写,也不过是描述他罢了,没有必要舍本逐末,只要理解就好。
比如全通系统,