Download presentation
Presentation is loading. Please wait.
1
DSP 及应用 徐朝胜 博客:
2
参考书目 数字信号处理技术及其应用 机械 DSP应用系统设计实践指南 北航出版社 DSP芯片的原理与开发应用(第2版)
TMS320LF240x DSP应用程序设计教程 TMS320LF240x DSP C语言开发应用
3
第0章 绪论
4
为什么要学习dsp 学校 社会 科研
5
电子信息 学校介绍 其他介绍 电子信息是一门应用计算机等现代化技术进行电子信息控制和信息处理的学科,主要研究信息的获取与处理,电子设备与信息系统的设计、开发、应用和集成。现在,电子信息已经涵盖了社会的诸多方面,像电话交换局里怎么处理各种电话信号,手机是怎样传递我们的声音甚至图像的,我们周围的网络怎样传递数据,甚至信息化时代军队的信息传递中如何保密等都要涉及电子信息工程的应用技术。我们可以通过一些基础知识的学习认识这些东西,并能够应用更先进的技术进行新产品的研究和开发。
6
电子信息专业主要学习的知识 电子信息专业主要是学习基本电路知识,并掌握用计算机等处理信息的方法。首先要有扎实的数学知识,对物理学的要求也很高,并且主要是电学方面;要学习许多电路知识、电子技术、信号与系统、计算机控制原理、通信原理等基本课程。学习电子信息工程自己还要动手设计、连接一些电路并结合计算机进行实验,对动手操作和使用工具的要求也是比较高的。譬如自己连接传感器的电路,用计算机设置小的通信系统,还会参观一些大公司的电子和信息处理设备,理解手机信号、有线电视是如何传输的等,并能有机会在老师指导下参与大的工程设计。学习电子信息,要喜欢钻研思考,善于开动脑筋发现问题。
7
课程 数字电子技术,模拟电子技术 信号与线性系统,MATLAB,电磁场与电磁波 PROTEL电路设计,数字系统设计与PLD应用
微机原理与接口技术,通信电子线路,单片机 信息论与编码,数字信号处理,综合电子系统设计 通信原理,数字通信技术,DSP,计算机网络原理
8
就业 随着社会信息化的深入,各行业大都需要电子信息专业人才,而且薪金很高。学生毕业后可以从事电子设备和信息系统的设计、应用开发以及技术管理等。比如,做电子工程师,设计开发一些电子、通信器件;做软件工程师,设计开发与硬件相关的各种软件;做项目主管,策划一些大的系统,这对经验、知识要求很高;还可以继续进修成为教师,从事科研工作等. Dsp就业
9
公司要求 职位描述: 1. 根据已有的理论算法,结合不同的应用,配合项目经理设计技术方案和完成 项目开发工作; 2. DSP软件设计和调试; 3. 已有的算法DSP移植。 任职要求: 1. 电子工程、信息工程、计算机及相关专业本科以上学历; 2. 有较好的数字信号处理理论基础,熟悉各种常用算法; 3. 熟悉语音/音频信号处理技术; 4. 有较好的dsp仿真和开发经验; 5. 熟练运用c/c++、汇编语言编程; 6. 能够熟练阅读专业英文文献; 7. 学习能力强、能承受一定的工作压力、具备较强的团队合作精神。
10
职位描述: 1. 配合公司新产品的软硬件开发 2. 面向客户的技术支持和服务工作 职位要求: 1
职位描述: 1. 配合公司新产品的软硬件开发 2. 面向客户的技术支持和服务工作 职位要求: 1. 自动化控制,电子或相关专业本科以上毕业。 2. 熟悉单片机或DSP的开发和应用,有扎实的理论基础。 3. 对PROTEL能熟练运用,具有硬件设计,布板相关方面的经验 。 4. 掌握C/C++,ASM语言和工具。 5. 1年以上软硬件开发工作经验尤佳,没有实践经验的应届毕业生需具备很强的学习能力。 6. 具有高度的责任心,有团队合作精神,能适应公司的工作计划安排。
11
如何学习dsp 1、TI DSP的选型 主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。 DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额。 TI公司现在主推四大系列DSP 1)C5000系列(定点、低功耗):C54X,C54XX,C55X 相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。处理速度在80MIPS--400MIPS之间。C54XX和C55XX一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。两个系列的数字IO都只有两条。
12
TI DSP的选型 2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX ,C28x该系列芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOG、CAN总线/PWM发生器、数字IO脚等。是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。 3)C6000系列:C62XX,C67XX,C64X 该系列以高性能著称,最适合宽带网络和数字影像应用。32bit,其中:C62XX和C64X是定点系列,C67XX是浮点系列。该系列提供EMIF扩展存储器接口。该系列只提供BGA封装,只能制作多层PCB。且功耗较大。同为浮点系列的C3X中的VC33现在虽非主流产品,但也仍在广泛使用,但其速度较低,最高在150MIPS。
13
TI DSP的选型 4)OMAP系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。 其他系列的DSP曾经有过风光,但现在都非TI主推产品了,除了C3X系列外,其他基本处于淘汰阶段,如:C3X的浮点系列(C30,C31,C32),C2X和C5X系列(C20,C25,C50),每个系列的DSP都有其主要应用领域。
14
2、设计中如何得到技术参考资料以及如何得到相关源码
原则是碰到问题就去 1)在TI网站的搜索中用keyword搜索资料,主要要注意的就是Application Notes,user guides 比如不知道怎样进行VC5402的McBSP编程,搜McBSP和VC5402。如果不知道如何设计VC5402和TLV320AIC23的接口以及编程,搜TLV320AIC23和VC5402;这样可以搜到一堆的资料,这些资料一般均有PDF文档说明和相应的源程序包提供,download后做少许改动即可 2)版上发问 3)google搜 4)再不济,找技术支持,碰运气了
15
3、如何看待TI DSP庞杂的技术文档 新手进行DSP开发学习之时,常常感觉技术文档太多,哪本都有用,哪本都想看,无从下手。 此时原则是只看入门必须的、只看和芯片相关的。根据经验,如下的资料必看不可: 1)讲述DSP的CPU,memory,program memory addressing,data memory addressing的资料都需要看、外设资源的资料可以只看自己用到的部分; 2)C和汇编的编程指南需要看 3)汇编指令和C语言的运行时间支持库、DSPLIB等资料需要看 其他的如:Applications Guide,Optimizing CC++ Compiler User's Guide,Assembly Language Tools User's Guide等资料留待入门之后再去看体会会更深一些。
16
4、如何高效开始TI DSP的硬件开发 1)根据应用领域选择TI推荐的DSP类型
2)参考选定的DSP之EVM板,DSK等原理图,完成DSP最小系统的搭建(包括外扩内存空间、电源复位系统、各控制信号管脚的连接、JTAG口的连接等); 3)根据具体应用需要,选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的电路可以从TI网站得到。外围电路与DSP的接口可参看EVM或DSK,以及所选外围电路芯片的典型接口设计原理图;最好外围电路芯片也选择TI的,这样的话不管硬件接口有现成原理图、很多连DSP与其接口的基本控制源码都有。 4)地址译码、IO扩展等用CPLD或者FPGA来做,将DSP的地址线、数据线、控制信号线如IS/PS/DS等都引进去有利于调试
17
5、如何高效开始TI DSP的软件开发 如果你不是纯做算法,而是在一个目标版上进行开发,需要使用DSP的片上外设,需要控制片外接口电路,那么建议在写程序前先好好将这个目标版的电路设计搞清楚。最重要的是程序、数据、I/O空间的译码。 不管是否纯做算法还是软硬结合,DSP的CPU,memory,program memory addressing, data mem, addressing的资料都需要看.
18
1)看CCS的使用指南 2)明白CMD文件的编写 3)明白中断向量表文件的编写,并定位在正确的地方 4)运行一个纯simulator的程序,了解CCS的各个操作 5)到TI网站下相关的源码,参考源码的结构进行编程 6)不论是C编程还是ASM编程,模块化是必须的
19
6、选择C还是选择ASM进行编程 记住一条原则,TI的工程师在不断改进CCS的C程序优化编译器,现在C优化的效率可达到手工汇编的90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM还是有优势,比如G.729编解码。但是针对一般的应用开发,C是最好的选择。新手编程则选择C和汇编混合编程更有利一些
20
7、选择什么仿真器 一般来说,买个并口的EPP就够了,价格便宜又稳定
21
8、关于TI 54X系列DSP的bootloader过程
请详细阅读TI文档SPRA618A、SPRA571,这些文档对boot的机制进行了详细说明同时说明了利用hex500将*.out文件转化为*.hex文件时,需要编写的cmd文件的写法。
22
展望 随着DSP器件的发展,DSP系统开发的主要工作已经转向软件开发,软件开发将占据约80%的工作量,必须引起足够的重视。另外,在目前的现状条件下,算法是我们核心知识产权的主要体现,也是产品竞争力的主要因素。因此在最后,仍然强调:算法是DSP应用的核心。
23
体会 学习dsp :1有硬件 . 2 调程序 . 程序的设计与调试在dsp的开发中占很多的时间.在我看来,如果不是对DSP的硬件很熟的话,即使你调出一大堆程序, 你都不能对DSP有很深的了解,所以建议想对DSP有所造诣的同志们 最好有空看看DSP的硬件,包括路径,流水线,存储器分配等等。 这是我最深的体会。硬件来学指令是很好的方法, 只要硬件结构熟悉了, 为什么这样用指令就是很容易理解的一件事.(例子: 单片机)
24
面试题目 1、说说定点DSP和浮点DSP的定义(或者说出他们的区别)(信威dsp软件面试题
4、请写出【-8,7】的二进制补码,和二进制偏置码。用Q15表示出0.5和-0.5.(信威 dsp软件面试题) 5、DSP的结构(哈佛结构);(未知)
25
三种新型TMS320 DSP系列的特点 1.TMS320C2000——作控制用的最佳DSP,可以替代老的’C1X和’C2X。现在有趋势
集中在以下两个方向上: ---- (1)’C20X 16位定点DSP,速度为20MIPS,主要用途是电话、数字相机、售货机 等,其中:’F206带有闪速存储器,售价从5~17美元。 ---- (2)’C24X 16位定点DSP,速度为20MIPS,用作数字马达控制、工业自动化、电力转换系统、空调等,售价从4~18美元。 2.TMS320C5000——低功耗高性能DSP,16位定点,速度40~200MIPS。主要用途是 有线和无线通信、IP、便携式信息系统、寻呼机、助听器等。价格5~75美元。 目前’C5000系列中又有三种新成员,一种是’C5402,这是廉价型的DSP,目标价 格是每片5美元(50K批量),速度保持100MIPS,片内存储空间稍小一些,RAM为16K、ROM为4K。主要应用对象是无线Modem、新一代PDA、网络电话和其它电话系统以及消费类 电子产品。
26
第二种是’C5420,它拥有两个DSP核,速度达到200MIPS,200K片内RAM,功耗0
第二种是’C5420,它拥有两个DSP核,速度达到200MIPS,200K片内RAM,功耗0.32mA/MIPS,200MIPS全速工作时不超过120mW,为业内功耗最低的DSP。’C5420是当今集 成度最高的定点DSP,适合于做多通道基站、服务器、Modem和电话系统等要求高性能、 低功耗、小尺寸的场合。 第三种是’C5416,它是TI公司0.15μm器件中的第一款,速度为160MIPS,有三个多通道缓冲串行口(McBSPs),能够直接与T1或E1线路联接,不需要外部逻辑电路,有 128K片内RAM。应用对象是VoIP、通信服务器、PBX(专用小交换机)和计算机电话系统等。 3. TMS320C6000——这是TI公司1997年2月推向市场的高性能DSP,综合了目前DSP的 所有优点,具有最佳的性价比和低功耗。’C6000系列中又分成定点和浮点两类。 ---- (1)’C62XX 16位定点DSP,速度为1200~2000MIPS,用于无线基站、ADSL Mode m、网络系统、中心局交换机、数字音频广播设备等,价格为21~224美元。
27
---- (2)’C67XX 32位浮点DSP,速度为1Gflops,用于基站数字波束形成、医学图像 处理、语音识别、3-D图形等,价格109~233美元。
---- C6000在向两个方向发展,一是追求更高的性能,二是在保持高性能的同时向廉价 型发展。前者如定点’C6202可以达到2000MIPS的速度,后者如定点’C6211只有25美元 、浮点的’C6711仅售20美元。 ---- 在老的TI DSP系列中,浮点’C30还是TI公司主推的产品,因此它的售价不像其它老系列每年都要提升。TI公司还在对这个型号作性能改进和制造廉价型,如新近推出的 ’C33采用0.18μm制造工艺,有1M RAM,速度为120Mflops,为老产品的两倍,而价格仅 5美元。速度更高的150Mflops为8美元。’C33与其它’C3X器件代码兼容,所以用户可以 保护其软件环境,在他们换用新器件时还可以减少开发时间
28
dsp的项目主要分成以下三类 1. 语音编码及其相关产品 在所有的通信系统中,语音通信仍然是最基本的通信方式,也是应用最普遍的。
2. Hi-Fi音频压缩及相关产品 最近几年VCD、DVD、MD、DAB、DVB等数字音视频产 品万紫千红,在这些数字化新家电中,DSP最起作用的地方是Hi-Fi的音频处理. 3. 图象压缩及相关产品 完成用’C542实现的脱机的便携式彩色静止图像传输系统 ,分辨率有576×480、352×288(CIF)、176×144(QCIF)等可选择,发送端图像压缩 终端如一般的Modem大小,可通过Modem在PSTN(公共交换电话网)上拨号传输图像,也 可通过无线Modem在CDPD分组无线数据网中传输,适用于远程监控、彩色文件传送.
29
数字信号处理的实现方法: 在通用的计算机上用软件实现; 在通用的计算机上加上专用的加速处理机; 用通用的单片机实现,适合不太复杂的现场控制; 用通用的可编程DSP芯片实现; 用专用的DSP芯片实现。
30
0.2 DSP主要特点: 哈佛结构 多总线结构 流水线结构 多处理单元 特殊的DSP指令 指令周期短 运算精度高 硬件配置强
31
定点DSP:使用的是小数点位置固定的有符号数或无符号数。
点的位置随着具体数据的不同进行浮动。 各自的特点:定点器件在硬件结构上比浮点器件简单,具有价 格低、速度快;浮点器件精度高,不需要定标和考虑有限字长 效应,但其成本高、功耗高,速度较慢,适合于数据动态范围 和精度较高的特殊场合。 TI公司的定点系列:C1x,C2x,C2xx, C5x,C54x,C62x 浮点系列:C3x,C4x,C67x 多处理器: C8x 不同系列的DSP的CPU结构不同,性能和价格也不同 同一系列的DSP的CPU完全相同,只是片内存储器和外设的配 置不同 DSP的代码兼容:代码可以不加修改或只作很少修改可以在其 它DSP上执行。TI公司的DSP是向下兼容的,如C1x和C2x的代码 可以不修改在C5x上运行,定点C62x代码可以在浮点C67x上运行。 管脚兼容:C62x与C67x的某些片种之间保持管脚兼容.
32
DSP的性能指标: MIPS: 每秒百万条指令 MOPS: 每秒百万次操作 MFLOPS :每秒百万次浮点操作 MBPS: 每秒百万位
33
0.3 DSP芯片的现状、应用 现状:C54x速度范围 MIPS,C55x320—400MIPS。6000系列的定点 MIPS,浮点从600—1800MFLOPS。 精度:8,16,24,32。 内核电压:1.5/1.6伏。 温度范围:-40—100度。
34
DSP芯片的应用: 信号处理 通信 语音 图象 军事 医学 控制 汽车控制 家电
35
各系列DSP芯片性能比较: 16位 TMS320C20x 主要规格: 主要应用范围 : 数字相机 操作速度为20至40MIPS 销售点终端
保安系统 伺服控制系统 雷达检测器 调制解调器 操作速度为20至40MIPS
36
16位 TMS320C24x 主要规格 : 主要应用范围: 不间断电源 操作速度为20MIPS 数字马达控制 电源逆变器 备有4个掉电模式
打印机及复印机 操作速度为20MIPS 备有4个掉电模式
37
32位 TMS320C3x 主要规格 : 主要应用范围: 操作速度可高达60MFLOPS 高效的C语言引擎 数字音响系统 激光打印机、复印机
电视会议 工业自动化及机器人
38
32 位 TMS320C4x 主要规格: 主要应用范围: 操作速度可高达60MFLOPS 增强的运算能力 增强的通信能力 高速通信
虚拟、真实模拟器 雷达/声纳/图象处理系统 三维图象
39
16位 TMS320C5x 主要规格: 主要应用范围: 操作速度可高达50MIPS 蜂窝式/无绳电话 高速调制解调器 个人通信系统
声音/语音处理
40
16位 TMS320C54x 主要规格: 主要应用范围: 操作速度可高达100MIPS 数字蜂窝式通信 数字无绳通信 个人通信系统
无线数据通信 声音/语音处理
41
32位 TMS320C62x/67x 主要规格: 主要应用范围:
合用调制解调器 数字用户环路系统 无线基站 交换机 数字成像 三维图象等 语音识别 1600MIPS/1GFLOPS 两枚32位定时器
42
多CPU的 TMS320C8x 主要规格: 主要应用范围:
32位数据/64位指令 80/82系列:4/2枚CPU 电视会议 视像电话 高速电信系统 多媒体工作站
43
第1章 TMS320C54x的结构原理
44
1.1 C54x的优点: 增强(改进)的哈佛结构(程序空间和数据空间相互传送数据) 高效的硬件逻辑 高效的指令集 模块化的结构设计
高级的IC工艺 新的静态设计技术
45
CPU: 8总线结构。 40位的算术逻辑单元ALU。 40位的桶形移位寄存器(-16~30)。 2个独立的40位累加器(a-b)。
17×17位乘法器,40位加法器。 比较选择和存储单元CSSU。 指数译码器。 程序和数据地址发生器。 16位暂存器T。 ….
46
执行单周期定点指令时间为:25/20/15/12ns(40/50/66/80MIPS)
TQFP:Thin Quad Flatpack 扁平四方形状 BGA:Ball Grid Array 圆栅极排列
47
TMS320C54x组成框图:
48
1.3总线结构 C54x体系由8条16位总线组成: 1)程序总线PB:传送从程序存储器取的指令码和立即 操作数。
2)三条数据总线CB、DB、EB:CB和DB从数据存 储器读取操作数,EB把操作数写到存储器中。 3)四条地址总线PAB、CAB、DAB、EAB:负责装 载指令执行所需要的地址。
50
1.4 内部存储空间: 存储空间(192K字),其中: 程序存储空间(64K字) 数据存储空间(64K字) I/O空间(64K字)
51
C54X中,内部存贮器的形式有DARAM、SARAM和ROM三种,RAM(包括DARAM和SARAM)总是安排到数据存贮空间,也可以构成程序存贮空间;ROM一般构成程序存贮空间,也可部分地安排到数据存贮空间。所谓双寻址RAM(DARAM)就是每个机器周期内可以进行两次存取操作的RAM存贮器,而单寻址RAM(SARAM)就是每个机器期间内只能进行一次存取操作的RAM存贮器 . 随机存储器RAM(Random Access Memory)RAM和ROM(Read Only Memory的全名为唯读记忆体)相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM就不会。2~8M的RAM对于一般应用程序的运行已经足够.
52
Ram: daram---Dual-access RAM can be accessed twice in one clock cycle using a single port. DARAM is faster than SARAM since it can be accessed twice. You can read in the first half of the cycle and write in the second half for example. 26个影象到数据存储空间的cpu寄存器和外围电路寄存器
54
C54x有3个设置位用以配置片内存储器: 1)MP/MC=0,片内ROM映射在程序空间 MP/MC=1,片内ROM不映射在程序空间
2)OVLY=1,片内RAM分别映射在程序空间和数据空间 OVLY=0,片内RAM只映射在数据空间 3)DROM=1,则片内ROM的一部分映射在程序空间和数 据空间 DROM=0,则片内DARAM的使用取决于MP/MC位
55
541存储器:
56
注意几点: 1 存储空间192k的分配 2 图形的错误-> 如何看图 ? 3 3个状态位 ,对地址映射的影响 4 为什么有外部字眼?(统一编址和51系列的区别内外部的编只不一样.51有片选信号) 5如果程序大->扩展rom?ram?(541-m all is 33k.实际程序?),看不同的系列,有的就需要扩展,有的不许要. 6 理解地址的分配的原因? 为什么从上到下的分配?(5的原因) 7 ff80-ffff用计算器计算(128)
57
当MP/MC=0:ROM存储器 片内ROM影射在程序存储空间,地址从9000h~ FF7Fh,共28K。 1400h~8FFFh为外部ROM,FF80h~FFFFh为中断 向量。 当OVLY=0时,0000h~13FFh为外部ROM, 当OVLY=1时,0000h~007Fh为保留位, 0080h~13FFh为片内DARAM。
58
当MP/MC=1:ROM存储器 片内ROM不影射在程序存储空间。 1400h~FF7Fh为外部ROM,FF80h~FFFFh为中断 向量。 当OVLY=0时,0000h~13FFh为外部ROM, 当OVLY=1时,0000h~007Fh为保留位, 0080h~13FFh为片内DARAM。
59
RAM存储器: 0000h~005Fh:存储器映射寄存器 0060h~007Fh:暂存器RAM 0080h~13FFh:片内DARAM,5K。 1400h~DFFFh为外部RAM。 当DROM=0:E000h~FFFFh为外部, 当DROM=1:E000h~FEEEh为片内ROM, FF00h~FFFFh保留位。
60
程序存储空间: MP/MC和OVLY位决定了片上ROM的配置。 MP/MC和OVLY位由PMST中的5,6位决定。
片上ROM的组织:为了提高性能,将ROM分成几 个块,使用块的方式可以使CPU同时访问不同的块。 下图为片上ROM块的组织形式。
62
扩展程序存储器:548/549/5402/5410/5420可以使用页扩展的方式访问到8M的程序空间。为了实现这个方式,这些芯片提供了一些增强的性能:
23条地址线(5402有20条地址线、5420有18条地址线) 额外的存储器映射寄存器,扩展程序计数器(XPC) 六条额外的指令用于寻址扩展的程序存储空间
63
扩展程序存储器示意图
64
为了方便地用软件切换页地址,C548、C549、C5410、
C5402和C5420提供了六条指令用于改变XPC的值: FB[D] 远跳转。 FBACC[D] 远跳转到累加器 A或 B指定的地址。 FCALA[D] 远调用累加器 A或 B指定的子程序。 FCALL[D] 远调用。 FRET[D] 远返回。 FRETE[D] 远返回且中断允许。 指令举例:
65
数据存储空间: 片内RAM分为DARAM和SARAM,由OVLY和DROM 决定配置。
片上RAM同样按块的方式组织(如:541共5个1K块, 542共5个2K块), DARAM:CPU可以在一个周期内对同一块访问两次。 SARAM:CPU在一个周期内对同一块只能访问一次。
66
片上RAM 块组织:
68
数据存储器映像寄存器: 在64KRAM中从0000~007Fh,第0页为数据存储器 映像寄存器:其中:
0000~0020h的32字为存储器映像CPU寄存器, 0020~005Fh的64字为片内外设寄存器, 0060~007Fh的32字为RAM块。 CPU存储器影射寄存器共26个,见下表: 附录 : 视频: 电子科技大学DSP技术 《电子科技大学DSP技术》 资料 → 其他资料 VeryCD → 下载.htm 内容介绍
70
中断寄存器(IMR、IFR): 寄存器(ST0、ST1): 中断屏蔽寄存器(IMR)可以在需要的时候禁止或
可以指定当前的中断状态。 寄存器(ST0、ST1): 状态寄存器(ST0和ST1)包含 C54x的不同的状 态和模式。ST0包括了算术运算和位操作使用的状 态位(OVA、OVB、C和TC)以及DP字段和ARP字 段。ST1反映了处理器和指令执行所依赖的模式和 状态。
71
累加器(A、B): C54x包含两个40位的累加器:累加器A和B。每个累加器都分割成累加器低字(15~0)、累加器高字(31~16)和累加器保护位(39~32)三个部分映射到数据存储器中。 临时寄存器(T): 临时寄存器有许多用法。例如: (1) 用作乘法器的一个操作数以执行乘/加指令。 (2) 在ADD、LD和SUB指令处理移位操作中用作动态的移位计数器。 (3) 在BITT指令中用作保留动态位的地址。 (4) 在加/比较/存储操作中用作DADST和DSADT的跳转路径。 此外,EXP指令还把计算后的指数保存在临时寄存器中,而NORM指令使用临时寄存器的值归一化累加器中的操作数。
72
转换寄存器(TRN): 16位的转换寄存器(TRN)在维特比算法中作为新的数据的存储路径。CMPS指令用累加器高字和累加器低字的比较结果更新TRN寄存器。 辅助寄存器(AR0~AR7): 堆栈指针寄存器(SP): 循环缓冲区大小寄存器(BK): 块重复寄存器(BRC、RSA和REA): 处理器模式状态寄存器(PMST): 扩展程序计数器(XPC):
73
程序存储空间用于装载程序代码和常数表; 数据存储空间存储程序指令使用的临时变量或程序处理后的结果 I/O空间用来与外部设备连接,有两条指令用于访问I/O空间,PORTR,PORTW,举例:
74
1.5 中央处理单元(CPU) 算术逻辑运算单元ALU 累加器 桶形移位寄存器 乘法器/加法器 CCS 指数编码器 CPU状态和控制寄存器
75
1.5.1 算术逻辑运算单元ALU: S(移位寄存器) X: DB(数据总线) ALU的输入 累加器A或B Y: 数据总线CB T寄存器
1)若OVM(溢出模式位)等于0时,溢出结果直接存入 目的累加器 2)当OVM=1时,上溢时,置00 7FFF FFFFh;下溢时,置 FF h 3)把OVA或OVB置1
76
ALU功能框图:
77
1.5.2 累加器A或B 40位:低位,高位,保护位 保护位用作数据计算时的数据位余量(溢出)
AG、AH、AL、BG、BH、BL都是存储器映像寄存器,可以被访问 A与B的不同是A的高位可以作为乘法器的一个输入
78
累加器A和B可分为三部分: AG AH AL BG BH BL 39~32 31~16 15~0 累加器A 保护位 高阶位 低阶位
39~ ~ ~0 累加器A AG AH AL 保护位 高阶位 低阶位 39~ ~ ~0 累加器B BG BH BL 保护位 高阶位 低阶位
79
累加器内容的保存:可以利用STH,STL, STLM,SACCD指令对累加器内容进行保存。 如:
设A=FF h STH A,8,TEMP;TEMP=2112h STH A,-8,TEMP;TEMP=FF43h STL A,8,TEMP;TEMP=3400h STL A,-8,TEMP;TEMP=2112h Sim54xw.exe介绍与应用
80
1.5.3 桶形移位寄存器: DB(16位) DB和CB(32位) A(40位) B(40位) 输入 ALU的一个输入端 EB总线 输出
或累加器内容 2、对累加器内容算术或逻辑移位 3、对累加器归一化 4、在将累加器的值存入数据存储器前定标 功能:
81
桶形移位寄存器:
82
桶形移位寄存器的移位作用: 1、指令操作数中的立即数为移位数,范围为-16~15: ADD A,-4,B;累加器A的内容右移四位后加到B中
SFTL A,+8;累加器逻辑左移8位 2、用ASM的值代表范围-16至15的移位,可用LD加载 ADD A,ASM,B;累加器移位ASM所指定的位数后加到B中 3、T寄存器中的低6位,可以指定-16至31位范围的移位数
83
1.4.4 乘法器/加法器单元 17*17位乘法器与40位加法器相连 在一个流水线状态周期内完成一次乘累加(MAC)运算
乘法器能够执行无符号、有符号、混合运算 乘法器输入:T,D,A,C,P 乘法器输出:加法器 加法器输出:A或B
84
乘法器/加法器单元:
85
T寄存器 DB总线 A的32~16位 XM 乘法器的输入: (17*17) DB总线 CB总线 PB总线 A的32~16位 YM Adder的XA Adder(40) 乘法器输出 A或B或0 YA
86
ST1中6位为小数方式位,当FRCT=1时,乘法器输出左移一位.
乘法举例 例3-77:MPY DAT13,A;来自数据总线和T寄存器,在 加法器中和YA的0相加送到A中。 例:MPY #0FFFE,A;来自T寄存器和PB总线,结果送到 A中。
87
一个dsp程序员应具备的素质 1 在定点dsp中,能熟练用q格式
2 能编写大量符合ti公司规范的代码程序,虽然不可将规范看得太死 很多小公司没有软件规范,即便一些大公司,其指定的规范也是与简单,可以看看 3 能熟练运用c语言,从51-〉dsp,arm等,这是个嵌入式编程泛c语言化的时代。程序员最好能熟练知道些面向对象语言,灵活吸收其小规模程序的思想与技巧。 4 好的嵌入式c语言,不是精通多冲指针的人,应该能根据器件的特点,大约能够算出c语言可能对应的汇编指令和时间性能,并能编写汇编函数来加快代码。 5 专业知识,专家之所以成为专家,是因为他对研究的具体对象了然于胸 6 如果上述的条件都还不具备,不要灰心,只要具备下面一点就够了。
88
保持良好的学习心态,不断的学习能带来成长感
几点找工作的经验: 1、学校BBS上JOB版的精华区,仔细阅读前辈整理的招工作总结的帖子。了解各个公司的性质,应该如何去准备(硬件研发招聘的潜规则是不要女生 )。 2、同时给自己做个职业规划,确定自己将来的发展方向,不浪费时间盲目投简历。 3、胆大,敢于霸王笔、霸王面, 4、自信,相信自己的实力,坚持到最后一刻
89
专门为Viterbi(维特比)算法设计的 进行加法/比较/选择运算的硬件单元。
1.5.5 比较、选择和存储单元: 专门为Viterbi(维特比)算法设计的 进行加法/比较/选择运算的硬件单元。 其硬件结构见下页
90
比较,选择和存储单元(CSSU) 比较、选择和存储单元(CSSU)完成累加器的高位字和低位字之间的最大值比较,即选择累加器中较大的字并存储在数据存储器中,不改变状态寄存器ST0中的测试/控制位和传送寄存器(TRN)的值。同时,CSSU利用优化的片内硬件促进Viterbi型蝶形运算。
91
1.5.6指数编码器 指数编码器用于支持单周期指令EXP的专用硬件。在EXP指令中,累加器中的指数值能以二进制补码的形式存储在T寄存器中,范围为bit-8至31。指数值定义为前面的冗余位数减8的差值,即累加器中为消除非有效符号位所需移动的位数。当累加器中的值超过了32bits,该操作将产生负值。(订标,归一化). .
92
例子
94
1.5.7CPU状态和控制寄存器 三个状态和控制寄存器ST0,ST1,PMST ST0,ST1包含各种工作条件和工作方式的状态
95
状态寄存器ST0的结构: ARP TC C OVA OVB DP 15~13 12 11 10 9 8~0 状态寄存器ST1的结构: 1
15~ ~0 ARP TC C OVA OVB DP 状态寄存器ST1的结构: 1 ~0 BRAF CPL XF HM INTM OVM SXM C16 FRCT CMPT ASM 处理器模式状态寄存器(PMST)结构如下: 15~ IPTR MP/MC OVLY AVIS DROM CLKOFF SMUL SST
Similar presentations