DSP学习总结

摘要:本总结介绍了数字信号技术(DSP)的基本结构,特点,发展及应用现状。通过分析与观察,寄予了DSP美好发展前景的希望。

关键字:数字信号处理器,DSP,特点,应用

1 DSP介绍

数字信号处理简称DSP,是进行数字信号处理的专用芯片,是伴随着微电子学、数字信号处理技术、计算机技术的发展而产生的新器件,是对信号和图像实现实时处理的一类高性能的CPU。所谓 “实时实现”,是指一个实际的系统能在人们听觉、视觉或按要求所允许的时间范围内对输入信号进行处理,并输出处理结果。

数字信号是利用计算机或专用的处理设备,以数值计算的方式对信号进行采集、变换、综合、估计与识别等加工处理,从而达到提取信息和方便应用的目的。数字信号处理的实现是以数字信号处理理论和计算技术为基础的。

2 结构

32位的C28xDSP整合了DSP和微控制器的最佳特性,能够在一个周期内完成32*32位的乘法累加运算。

所有的C28x芯片都含一个CPU、仿真逻辑以及内存和片内外设备的接口信号(具体结构图见有关书籍)。CPU的主要组成部分有:

程序和数据控制逻辑。该逻辑用来从程序存储器取回的一串指令。 实时和可视性的仿真逻辑。

地址寄存器算数单元(ARAU)。ARAU为从数据存储器取回的数据分配地址。 算术逻辑单元(ALU)。32位的ALU执行二进制的补码布尔运算。

预取对列和指令译码。

为程序和数据而设的地址发生器。

定点MPY/ALU。乘法器执行32位*32位的二进制补码乘法,并产生64位的计算结果。 中断处理。

3 特点

采用哈佛结构。传统的冯·诺曼结构的数据总线和指令总线是公用的,因此在高运算时在传输通道上会出拥堵现象。而采用哈佛结构的DSP 芯片片内至少有4 套总线:程序的地址总线与数据总线,数据的地址总线与数据总线。由于这种结构的数据总线和程序总线分离,从而在一个周期内同能时获取程序存储器内的指令字和数据存储器内的操作数,提高了执行速度。

多单元的并行处理技术。DSP 内部一般都集成了多个处理单元,比如ARAU(地址寄存器算术单元),MUL(硬件乘法器),ALU(算术逻辑单元),ACC (累加器),DMA 控制器等。它们可在同一个周期内并行地执行不同的任务。

采用了超流水线技术。DSP芯片的哈佛结构就是为实现流水线技术而设计的。采用流水线技术可使DSP芯片单周期完成乘法累加运算,极大地提高了运算速度。

采用硬件乘法器。数字信号处理中最基本的一个运算是乘法累加运算,也是最重要和最耗时的运算,为了提高芯片的运算速度,必须大幅度降低乘法运算的时间。于是在DSP芯片中设计了硬件乘法器,并且运算所需时间最短,仅为一个机器周期。这种单周期的硬件乘法器是DSP芯片实现高速运算的有力保证。现代高性能的DSP芯片数据字长从16位增加到32位,具有两个或更多的硬件乘法器,以便提高运算速度。

安排了JTAG接口。DSP芯片的结构非常复杂,工作速度又非常高,外部引脚也特别多,封装面积也非常小,引脚排列异常密集,对于此种情况,传统的并行仿真方式已不适合于DSP芯片。于是有关国际组织公布了JTAG接口标准。在DSP芯片内部安排JTAG接口,为DSP芯片的测试和仿真提供了很大的方便。

采用了大容量片内存储器。外部存储器一般不能适应高性能DSP核的处理速度,因此在片内设置较大容量的程序和数据存储器以减少对外部存储器的访问速度,充分发挥DSP核的高性能。

设置了特殊寻址模式。为了满足FFT积分数字信号处理的特殊要求,DSP芯片大多包含有专门的硬件地址发生器,用以实现循环寻址和位翻转寻址,并在软件上设置了相应的指令。 程序的加载引导。DSP芯片要执行的程

序一般在EPROM、FLASH存储器中。但是,该存

储器的访问速度较慢,虽然有一些高速EPROM、FLASH存储器,但价格昂贵、容量有限,而高速大容量静态RAM的价格又在不断下降。故采用程序的加载引导是一个性能价格较好的方法。DSP芯片在上电复位后,执行一段引导程序,用于从端口或外部存储器中加载程序至DSP芯片的高速RAM中运行。

设置了零消耗循环控。数字信号处理有一大特点:很多运算时间都用于执行较小循环的少量核心代码上。大部分DSP芯片具有零消耗循环控制的专门硬件,可以省去循环计数器的测试指令,提高了代码效率,减少了执行时间。

设置了多种外设和接口。为了加强DSP芯片的通用性,DSP芯片上增加了许多外设。例如:多路DMA通道、外部主机接口、外部存储器接口、芯片间高速接口、外部中断、串行口、定时器、可编程锁相环、A/D转换器和JTAG接口等。

4 发展及应用现状

数字信号处理(DSP)技术已经在我们的生活中扮演一个不可或缺的角色。DSP的核心是算法与实现,越来越多的人正在认识、熟悉和使用它。因此,合理地评价DSP的优缺点,及时了解DSP的现状以及发展趋势,正确使用DSP芯片,才有可能真正发挥出DSP的作用。

在近20多年时间里,DSP芯片的应用已经从军事、航空航天领域扩大到信号处理、通信、雷达、消费等许多领域。主要应用有:信号处理、通信、语音、图形、图像、军事、仪器仪表、自动控制、医疗、家用电器等。

5 前景与展望

随着DSP芯片性能的不断改善,用它来作为实时处理已成为当今和未来发展的热点之

一。随着生产技术的改进和产量的增大,它已成为当前产量和销售量增长幅度最大的电子产品之一。DSP广泛应用于军事、通信、语音、图像、仪器、工作站、控制及诸多的电子设备中。例如,雷达、导航与制导、全球定位、语音和图像鉴别、高速调制解调器、多媒体以及通用的数字信号处理产品。近年来,DSP 给铁路也带来了巨大的技术革新,铁路的设备尤其是铁路信号系统已从分立模拟系统经过集成化、计算机化发展到数字信号处理时代。例如,地面移频自动闭塞系统中现已大量应用了16位定点DSP产品如TMS320C25、TMS320C2XX系列等,由之建立的系统的工作精度、稳定度都很高、铁路上SJ型数字化通用式机车信号的大量推广

也得益于DSP带来的突出优点。用DSP技术的优点有:①可以程序控制,同一个硬件配置可以设计各种软件来执行多种多样的信号处理任务。②稳定性好,抗干扰性能强。③重复性好,易于批量化生产,而模拟器件很难控制。④易于实现多种智能算法。

目前,外国的许多跨国公司已经涉足我国的DSP行业,我国的DSP应用已有了相当的基础,许多企业都在从事数字信号处理系统及相关产品的开发与应用。从应用范围来说,数字信号处理器市场前景看好。DSP不仅成为手机、个人数字助理等快速增长产品中的关键元件,而且它正在向数码相机和电机控制等领域挺进。随着DSP芯片技术的不断发展,向多功能化、高性能化、低功耗化放向发展,DSP日益进入人们的生活,DSP在我国会有良好的应用前景。

参考文献

[1] 彭启棕.DSP技术[M].成都:电子科技大学出版社,1997

[2] FIEDLER R. Beyond instruction level parallelism-newtrend in programmable DSP machines. Development

of Data and Communications Technology ChemnitzUniversity of Technology, May 20xx.

[3] 胡广书.数字信号处理[M].北京:清华大学出版社,20xx

[4] 张雄伟,陈亮,辉编著.DSP芯片的原理与开发应用[M].北京:电子工业出版 社,20xx

[5] Michale J Bass,Clayton M Christensen.The Future of the Miroprocessor Business[J]IEEE SPECTRUM,20xx

[6] 陈是知,姜蕊辉.TMS320F2812原理与开发实践[M].中国电力出版,20xx

 

第二篇:dsp 学习总结

一 Bios的启动过程

DSP/BIOS的启动过程包括以下几步:

* 初始化DSP:复位中断向量指向c_int00地址,DSP/BIOS程序从入口点c_int00开始运行。对C6000,初试化堆栈指针(B15)和全局页指针(B14)分别指向堆栈底部与.bss段的开始,控制寄存器AMR、IER和CSR也被初始化; * 用.cinit段中的记录来初始化.bss段;

* 调用BIOS_init初始化DSP/BIOS模块:BIOS_init执行基本的模块初始化,然后调用MOD_init宏分别初始化每个用到的模块;

* 处理.pinit表:.pinit表包含了初始化函数的指针;

* 调用应用程序main函数:在所有DSP/BIOS模块初始化之后,调用main函数。由图2可以看到,本程序在main函数中添加了必要的初始化代码。Main函数初始化之后CPU的控制权交给DSP/BIOS。需注意,main函数中一定不能存在无限循环,否则整个DSP/BIOS程序将瘫痪;

* 调用BIOS_start启动DSP/BIOS:BIOS_start函数是由配置工具产生的,包含在programcfg.s62文件中,它负责使能DSP/BIOS模块并为每个用到的模块调用MOD_startup宏使其开始工作。

在这些工作完成之后,DSP/BIOS调用IDL_loop引导程序进入DSP/BIOS空闲循环,此时硬件和软件中断可以抢先空闲循环的执行,主机也可以和目标系统之间开始数据传输。

二 硬件中断向量表的配置

1. 编写中断服务例程

在.c源文件中编写ISR函数c_intXX,用于中断处理,如:

interrupt void c_intXX (void)

{

…;

}

注:对于硬件中断而言,XX = 00~15。

2.初始化中断向量表,并在内存段中的中断向量表中配置好对应的中断向量

首先是把中断向量表定位到某一内存段中,我们可以在cmd文件中配置中断向量表的内存映射,如:

MEMORY

{

VECTORS: org = 00000000h, len = 00000400h

L2SRAM: org = 00000400h, len = 00100000h

SDRAM: org = 80000000h, len = 10000000h

}

SECTIONS

{

.vecs :> VECTORS

.data :> L2SRAM

.text :> L2SRAM

.switch :> L2SRAM

.stack :> L2SRAM

.bss :> L2SRAM

.cinit :> L2SRAM

.far :> L2SRAM

.cio :> L2SRAM

.const :> L2SRAM

.sysmem :> SDRAM

.tables :> L2SRAM

}

.vectors 中断向量表所在的段;

.text 程序代码所在的段;

.satext 非标准段,放置线性汇编程序代码;

.bss 非初始化变量段

.cinit 程序初始化段,经常放置一些没有用const说明的带初值变量的初始化值。 .const 使用const声明的变量和数组

.far 不可使用DP指针而必须使用全地址访问的变量所在的段,与far关键字和编译选项有关

.stack 系统栈使用的段

.cio printf等输入输出函数使用的缓冲区所在的段

.switch 程序中switch语句的跳转地址表

.system 系统堆,内存的动态开辟即使用这个段

然后建立一个.asm文件,用以配置中断向量表中的中断向量,我们需要声明一些全局变量,以便其他源文件可以引用这些变量或者引用其他源文件的变量,如:

.global _vectors

.global _c_int00

.global _vector1

.global _vector2

.global _vector3

.global _vector4

.global _vector5

.global _vector6

.global _vector7

.global _c_int08 ; 对应main()函数的c_int08中断服务例程(假设处理的是EDMA中断)

.global _vector9

.global _vector10

.global _vector11

.global _vector12

.global _vector13

.global _vector14

.global _vector15

因为引用了rts的_c_int00中断,即RESET中断,因此需要引入这个符号: .ref _c_int00

为了把中断服务例程的地址,即中断向量插入到中断向量表中,可以定义一个宏: VEC_ENTRY .macro addr

STW B0,*--B15

MVKL addr,B0

MVKH addr,B0

B B0

LDW *B15++,B0

NOP 2

NOP

NOP

.endm

为了初始化中断向量表中的中断向量,可以定义一个虚拟的中断向量:

_vec_dummy:

B B3

NOP 5

接下来就可以配置中断向量表了:

.sect “.vecs”

.align 1024

_vectors:

_vector0: VEC_ENTRY _c_int00 ;RESET中断

_vector1: VEC_ENTRY _vec_dummy ;NMI不可屏蔽中断

_vector2: VEC_ENTRY _vec_dummy ;保留中断1

_vector3: VEC_ENTRY _vec_dummy ;保留中断2

_vector4: VEC_ENTRY _vec_dummy ;外部中断INT4

_vector5: VEC_ENTRY _vec_dummy ;外部中断INT5

_vector6: VEC_ENTRY _vec_dummy ;外部中断INT6

_vector7: VEC_ENTRY _vec_dummy ;外部中断INT7

_vector8: VEC_ENTRY _c_int08 ; EDMA控制器中断EDMAINT,对应于c_int08 ISR _vector9: VEC_ENTRY _vec_dummy;JTAGRTDX中断

_vector10: VEC_ENTRY _vec_dummy;EMIF_SDRAM_Timer中断

_vector11: VEC_ENTRY _vec_dummy;McBSP_0_Receive中断

_vector12: VEC_ENTRY _vec_dummy;McBSP_1_Transmit中断

_vector13: VEC_ENTRY _vec_dummy;Host_Port_Host_to_DSP中断

_vector14: VEC_ENTRY _vec_dummy;Timer0中断

_vector15: VEC_ENTRY _vec_dummy;Timer1中断

3. 在C程序中指定定义的中断向量表,并且启用CPU中断功能

在C程序中,用CSL的IRQ模块来设置中断比较方便,在设置之前,需要外部链接上面的asm程序的中断向量表符号:

extern far void vectors();//之所以为vectors,因为C编译器编译后自动改名其为_vectors 引用了中断向量表之后,就可以设置中断了:

IRQ_setVecs(vectors); //指向asm中定义的中断向量表

IRQ_nmiEnable();

IRQ_globalEnable();

IRQ_map(IRQ_EVT_EDMAINT, 8); //映射事件到指定的物理中断号

IRQ_reset(IRQ_EVT_EDMAINT);

4.启动中断源,如EDMA控制器的中断

至此,中断服务例程c_int8就可以为EDMAINT中断服务了,其它硬件中断向量的配置同理。

5. IRQ使用注意:

不可在IRQ_globalDisable之后调用IRQ_clear,否则中断将设置失败。

 

第三篇:学生个人总结(学习、生活、工作:成绩、不足、计划)3000余字

汇报人:

年月日

个人总结

悠悠六载,转瞬已往,抚今追昔,感慨万千,值此机会,总结自我,也希望领导老师能够更多了解自己。下面,我就从学习、工作、生活三个方面介绍一下自己过去六年的成绩、不足及未来计划。

一、学习方面:成绩优异,逐步上升。

三百六十行,行行出状元,要想成为一行的状元,就必须务本——做好自己的本职工作。作为一名学生,学习文化知识便是自己必须认真对待的本职事务。回顾过往六年余的学习状况,整体上是令人满意的。本科期间,从大二开始,班级综合成绩约在班级前十名,获得过????奖学金多次。自????年x月进入华中师范大学读书以来,连续三年都荣获一等学业奖学金,其中考研成绩位列班级第,第一学年综合成绩班级第,第二学年综合成绩班级第。

俗话讲实践是检验真理的标准,倡导学以致用。作为一名中文系学生,我的“实践”主要集中在科研活动及文章写作方面。本科期间,我既有幸参加了仵 教授所主导的省部级科研项目”( 参见h /index.html)并负责整理编写????。读研之后更是荣幸参加了---教授主导的《----》编撰工作。此外,本科读书期间,我还参加两届大学生科研立项活动并分获三等奖和二等奖。我的科研能力与成果得到了相关刊物的认可,自2年以来,我在《--》、《---学》、《--》、《--》、-等刊物发表论文多篇。

当然,作为一个有志青年,不能因为取得一点点成绩就沾沾自喜,而是应该看到自身的不足与缺点以获得更大的成功。从学习成绩上来看,我在2学年即大一时期学习成绩一般,未能获得奖学金,而在2学年即研二阶段,虽然综合成绩排名班级第二,但仅以考试成绩而论则要稍逊。

综而言之,从2年入读大学至今,我的学习成绩从大一开始快速提升并一直保持着优异的学习成绩,但在研二阶段因过多从事校内外实践以致成绩略有下降。对于即将走向教师岗位的自己,角色虽然转变了。但是干好本职工作的的决心要坚决保持。之前是多读书勤学习以积累知识成为一个对社会有用的人,今后将多读书勤学习以教书育人为人师表。同时,认真汲取过往六年学习生活中的经验教训,争取在工作之后,认真遵从领导安排,向同事学习请教,探索一条行之

有效的教学工作之路,从一开始就在较高水平上完成教学工作并做到逐年提高,坚决杜绝水平回落及工作质量下降的情况发生。

二、工作方面:成绩显著,兼有挫折。

马克思讲人是社会关系的总和。学生的社会关系主要集中为教师与同学两大方面,相应地,从事学生工作担任学生干部是协调处理两大社会关系的集中体现。总的来讲,在过往的六年学校生涯中,我大部分时间都担任过学生干部且取得一定成绩,赢得老师的信任与同学们的厚爱。

以本科期间为例,我因性格热情随和,做事热情主动,被同学们选为班长。在一年任期内,除做好班级日常工作之外,还组织班集体聚餐、旅游。同时兼任院学生会科技实践部干事,协助校院开展大学生三下乡实践与大学生科研立项活动。--。从2年秋进入华中师范大学学习以来,我担任过党支部宣传委员、党支部副书记、学生会文艺部部长共三个主要职务,工作期间积极努力,取得一系列成绩,被评为优秀研究生干部。

除学校学生工作之外,我还从事相关社会实践活动。2年夏,我曾组织----工作组前往家乡支教。2年秋以来,我在《----》报社做实习记者、编辑,在谋面教育机构担任---教师。

相对学习方面的不足而言,工作方面的不足与缺憾较大,可称之为个人成长过程中的小挫折。大学期间的学生工作主要集中于学年即大一期间,因未能协调好工作与学习的关系,我从大二开始将主要精力放在了学习与科研上面,仅于后来担任徒具虚名的心理委员一职。并且在担任班长与学生会干事期间,因个人工作思路、视野等原因,工作质量一般,成绩平平,无突出表现。进入研究生期间,初担任宣传委员,后因表现突出当选党支部副书记并被任命为文艺部副部长,同时兼任报社记者编辑与教师,身兼四职,分身乏术,因此,在文艺部相关工作与报社方面表现较平凡。

综而言之,从本科到硕士,在协调本职工作与校内外实践方面的能力得到了大幅度提高。但大学期间从热衷于校内外实践到热衷于学习科研,有做事未能善始善终的嫌疑,缺乏迎难而上的气概,这一点尤其值得自己警醒与深思。硕士期间兼职过多,有贪多之嫌,未能量力而行将各项工作都做到尽善尽美,这一点也应该进行自我批评。因此,工作之后,我将认真总结过往经验并向领导及同事多多请教如何更好的协调各项工作的技巧。同时,坚持两点原则:第一,做事有始有终,务必受学校之托,忠学校之事,不遗余力完成学校交给的各项任务,不打退堂鼓。第二,凡事量力而行,不贪多不求快,在自己能力之内兢兢业业。

三、生活方面:自信乐观,人格渐趋完善。

“先做人,后做事”,是很多人都听过的一句俗语。各行各业都有自己的要求,但追根究底,还是“做人”二字。回顾过往六年多的学习生活,我给自己的评价是“自信乐观,人格渐趋完善”。

我的自信乐观生活态度,可以明确追溯至年夏。在这年高考之前,我从来没有想过自己能读重点大学。首先,自己是农村娃,各种学习条件欠缺。其次是自己学习成绩差,中考成绩还不足分。第三,自己所读高中教学质量一般,少有升读重点大学者。然而,经过高中阶段的奋勇努力,我取得了难得的好成绩,考上了重点大学。自此,我意识到“努力”是取得成绩的不二法门,在目标切实可行的前提下,经过自己的努力与拼搏,获得成功就是时间早晚的问题。也因此,拥有了强烈的自信心并能乐观的生活学习,不因家庭贫困而羞愧,也不因一时的失败而一蹶不振。

至于明确意识到要完善自己的人格,则要从---年夏说起。这一年,我将要开始自己的研究生学习生活,我认真总结过往的人生经历与得失成败,切身感受到“先做人,后做事”的正确性,决心克服自己性格上的缺点,逐步完善自我人格。经过一个暑假的思量,我将“99999999999”作为自己的座右铭。前八字是自己处事的准则,后八字是自己修养的方向。经过两年多的努力,我结实了更多的朋友,也结交了更多志同道合的挚友。同时,亲朋好友也都夸我比以前更加成熟稳重,更给人一种信赖感。

相对而言,为人处事的原则就如硬币的正反面,有利必有弊。大学期间,自信乐观的心态固然使我具有一种无所畏惧的勇气,但也有时也显得鲁莽自负,不知天高地厚。读研期间待人以诚与人为善,努力提高自身修养,但有时候身边的好友也说我做事缺乏主见,甘心做“老好人”。

综而言之,大学期间自信乐观略显过头,读研期间则做了一定修正。从总体上看,自己一直都是自信乐观积极向上,并且能及时改造自我,完善人格。当然,这一切都是基于学生身份。因此,走向工作岗位之后,我决心要保持青年人乐观积极自信的态度勇往直前,但要以更加成熟的态度审视之。最重要的是要与领导、同事协调好关系,争取营造积极、向上的工作氛围,凡事以学校利益为重,在大是大非面前将学校利益放在首位。

总而言之,过往六年有余的学校生活中,以学生的标准来衡量自己,我在各个方面都取得了一定成绩,算是比较优秀;但是以社会人的标准衡量自己的话则还有很多欠缺。因此,总的来说,我给未来的自己制定几条工作原则:第一,以单位大局利益为重。第二,认真完成学校交给自己的各项任务。第三,做好本职

教学工作,赢得学校及学生的赞赏。第四,协调好与领导、同事关系,务必保证融洽、和谐氛围。第五,自信乐观、成熟知性的对待每一件事。

我的个人总结汇报完毕,请领导及老师多多指教。

总结人:

年月日

相关推荐