打印

DSP芯片的原理和开发应用 --1

[复制链接]
1203|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qaz098xsw|  楼主 | 2017-8-4 12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP芯片的原理和开发应用

DSP芯片的基本结构和特征
1.1  引    言 可编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的 ,DSP芯片一般都具有程序和数据分开的总线结构、流水线操作功能、单周期完成乘法的 硬件乘法器以及一套适合数字信号处理的指令集。本章将首先介绍DSP芯片的基本结构, 然后介绍TI公司的各种DSP芯片的特征,最后简要介绍其他公司的DSP芯片的特点。
1.2  DSP芯片的基本结构 为了快速地实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。下面以TM S320系列为例介绍DSP芯片的基本结构。TMS320系列DSP芯片的基本结构包括:
(1)哈佛结构;(2)流水线操作;(3)专用的 硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期。
这些特点使得TMS320系列DSP芯片可以实现快速的DSP运算,并使大部分运算(例如乘法 )能够在一个指令周期内完成。由于TMS320系列DSP芯片是软件可编程器件,因此具有通 用微处理器具有的方便灵活的特点。下面分别介绍这些特点是如何在TMS320系列DSP芯片 中应用并使得芯片的功能得到加强的。
1.1.1  哈佛结构 哈佛结构是不同于传统的冯·诺曼(Von Neuman)结构的并行体系结构,其主要特点是 将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的 存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序 总线和数据总线两条总线,从而使数据的吞吐率提高了一倍。而冯·诺曼结构则是将指 令、数据、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是 指令、数据还是地址。取指令和取数据都访问同一存储器,数据吞吐率低。 在哈佛结构中,由于程序和数据存储器在两个分开的空间中,因此取指和执行能完全重 叠运行。为了进一步提高运行速度和灵活性,TMS320系列DSP芯片在基本哈佛结构的基础 上作了改进,一是允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了 芯片的灵活性;二是指令存储在高速缓冲器(Cache)中,当执行此指令时,不需要再从 存储器中读取指令,节约了一个指令周期的时间。如TMS320C30具有64个字的Cache。
1.1.2  流水线 与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处 理能力。TMS320系列处理器的流水线深度从2~6级不等。第一代TMS320处理器采用二级流 水线,第二代采用三级流水线,而第三代则采用四级流水线。也就是说,处理器可以并 行处理2~6条指令,每条指令处于流水线上的不同阶段。 ??扛鲋噶畲τ诓煌?慕锥巍  例如,在第N个指令取指时,前一个指令即第N-1个指令正在译码,而第N-2个指令则正在 执行。一般来说,流水线对用户是透明的。
1.1.3  专用的硬件乘法器 在一般形式的FIR滤波器中,乘法是DSP的重要组成部分。对每个滤波器抽头,必须做一 次乘法和一次加法。乘法速度越快,DSP处理器的性能就越高。在通用的微处理器中,乘 法指令是由一系列加法来实现的,故需许多个指令周期来完成。相比而言,DSP芯片的特 征就是有一个专用的硬件乘法器。在TMS320系列中,由于具有专用的硬件乘法器,乘法 可在一个指令周期内完成。从最早的TMS32010实现FIR的每个抽头算法可以看出,滤波器 每个抽头需要一条乘法指令MPY:LT          ;装乘数到T寄存器DMOV        ;在存储器中移动数据以实现延迟MPY         ;相乘APAC        ;将乘法结果加到ACC中 其他三条指令用来将乘数装入到乘法器电路( LT),移动数据(DMOV)以及将乘法结果 (存在乘积寄存器P中)加到ACC中(APAC)。因此,若采用256抽头的FIR滤波器,这四 条指令必须重复执行256次,且256次乘法必须在一个抽样间隔内完成。在典型的通用微 处理器中,每个抽头需要30 ~ 40个指令周期,而TMS32010只需4条指令。如果采用特殊 的DSP指令或采用 TMS320C54X等新一代的DSP芯片,可进一步降低FIR抽头的计算时间。
1.1.4  特殊的DSP指令DSP芯片的另一个特征是采用特殊的指令。1.1.3节中介绍的DMOV就是一个特殊的DSP指令 ,它完成数据移位功能。在数字信号处理中,延迟操作非常重要,这个延迟就是由DMOV来实现的。TMS32010中的另一个特殊指令是LTD,它在一个指令周期内完成LT、DMOV和A PAC三条指令。LTD和MPY指令可以将FIR滤波器抽头计算从4条指令降为2条指令。在第二 代处理器中,如TMS320C25,增加了2条更特殊的指令,即RPT和MACD指令,采用这2条特 殊指令,可以进一步将每个抽头的运算指令数从2条降为1条:RPTK    255     ;重复执行下条指令256次MACD            ;LT, DMOV, MPY 及 APAC
1.1.5  快速的指令周期 哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计 ,可使DSP芯片的指令周期在200ns 以下。TMS320系列处理器的指令周期已经从第一代的200ns降低至现在的20ns 以下。快速的指令周期使得DSP芯片能够实时实现许多DSP应用 。
1.3  TI定点DSP芯片 自1982年TI推出第一个定点DSP芯片TMS32010以来,TI的定点DSP芯片已经经历了TMS320 C1X、TMS320C2X/C2XX、TMS320C5X 、TMS320C54X、TMS320C62X等几代产品,产品的性能 价格比不断提高,应用越来越广泛。下面分别介绍这些芯片的主要特征。
1.3.1  TMS320C1X 1.3.1.1  基本特点 第一代TMS320系列DSP芯片包括:TMS32010、TMS32011、TMS320C10、 TMS320C15/E15和TMS320C17/E17。其中,TMS32010和TMS32011采用2.4mm的 NMOS 工艺,而其他几种则采用1.8mm  CMOS工艺。这些芯片的典型工作频率为20MHz。TMS320第一代DSP芯片的主要特 点如下: * 指令周期:160ns/200ns/280ns * 片内RAM:144字/256字(TMS320C15/E15/C17/E17)* 片内ROM:1.5K字/4K字(TMS320C15/C17)* 4K字片内程序EPROM(TMS320E15/E17)* 4K字外部全速存储器扩展* 并行乘法器:乘积为32位* 桶形移位器:将数据从存储器移到ALU * 并行移位器* 允许文本交换的4×12位堆栈* 两个间接寻址的辅助寄存器* 双通道串行口(TMS32011,TMS320C17/E17)* 片内压扩硬件(TMS32011,TMS320C17/E17)* 协处理器接口(TMS320C17/E17)* 器件封装:40脚双列直插(DIP)/44脚塑封(PLCC)1.3.1.2  TMS320C10 TMS320 DSP芯片的第一代产品是基于TMS32010和它的CMOS版本TMS320C10的结构。TMS32 010于1982年推出,是第一个能够达到 5 个MIPS的微处理器。TMS32010采用改进的哈佛结构,即程序和数据空间相互独立。程序存储器可在片内(1. 5K字)或片外(4K字)。片内数据RAM为144字。有四个基本的算术单元:算术逻辑单元 (ALU)、累加器(ACC)、乘法器和移位器。
(1) ALU:32位数据操作的通用算术逻辑单元。ALU可进行加、减和逻辑运算;
(2) ACC:累加器存储ALU的输出,也是ALU的一个输入。它采用32位字长操作,分高16位 和低16位两部分。处理器提供高16位和低16位的专门指令:SACH(高16位)和SACL(低16位);
(3) 乘法器:16×16位并行乘法器由三个单元组成:T寄存器、P寄存器和乘法器阵列。T寄存器存储被乘数,P寄存器存储32位乘积。为了使用乘法器,被乘数首先必须从数据RAM中装入到T寄存器,可用LT、LTA和LTD指令。然后执行MPY(乘)或MPYK(乘立即数) 指令。乘和累加器操作可用LTA、LTD和MPY、MPYK指令在两个指令周期内完成;
(4) 移位器:有两个移位器可用于数据移位。一个是桶形移位器,另一个是并行移位器 。桶形移位器又称定标移位器。当数据存储器的数据送入累加器或与累加器中的数据进 行运算时,先通过这个移位器进行0~16位左移,然后再进行运算。并行移位器即输出移 位器,其作用是将累加器中的数据左移0、1或4位后再送入数据存储器中,以实现小数运 算或小数乘积的调整。 在TMS32010/C10基础上又派生了多个处理器,它们可提供不同的处理器速度、存储器扩 展和各种I/O集成。2.3.1.3  TMS320C1X的其他芯片1.TMS320C15/E15 TMS320C15/E15与TMS32010的代码和管脚全兼容,提供256字的片内RAM和4K字的片内ROM(C15)或EPROM(E15)。TMS320C15的指令周期有200ns和160ns(TMS320C15-25)两种 。
2.TMS320C17/E17 TMS320C17/E17是一个专用的微处理器。它有4K字的片内程序ROM(C17)或EPROM(E17) ,一个全双工串行通信的双通道串行口,片内硬件压扩器(m律/A律),一个用于串行通 信的串行口定时器,及一个协处理器接口。协处理器接口可以在处理器和4/8/16位微处 理器之间提供直接接口。TMS320C17/E17与TMS32010目标代码兼容,且可用相同的开发工 具。该处理器是基于TMS320C10的CPU内核,外加片内的外设存储器和I/O模块。TMS320C 17/E17可认为是半定制的DSP芯片。
1.3.2  TMS320C2X第二代TMS320 DSP芯片包括TMS32020、TMS320C25/E25、TMS320C26及TMS320C28。在这些 芯片中,TMS32020是一个过渡的产品,其指令周期为200ns,与TMS32010相当,而其硬件 结构则与TMS320C25一致。在第二代DSP芯片中,TMS320C25是一个典型的代表,其他芯片 都是由TMS320C25派生出来的。其中TMS320E25将内部4K字的ROM改为EPROM;TMS320C26去 掉了内部的4K字ROM,而将片内RAM增加到1.5K字;TMS320C28则将内部ROM增加到8K字。 由于TMS320C25的典型性,下面就讨论TMS320C25的基本特征和结构。
1.3.2.1  TMS320C25的基本特征* 指令周期: TMS320C25:100ns,TMS320C25-33:120ns,TMS320C25-50:80ns * 片内掩膜ROM:4K 字* 片内RAM:544字,分B0、B1和B2三块* 程序和数据空间均为64K字* 具有8级硬件堆栈、8个辅助寄存器* 具有全静态双缓冲串行口,可与许多串行器件直接接口* 与低速片外存储器通信的等待状态插入* 采用HOLD操作的DMA * FFT变换用的比特反转寻址* 扩展精度算术和自适应滤波支持* 从外部存储器全速执行的MAC/MACD指令* 具有在多处理器之间进行同步的能力,支持多处理器共享存储器* 1.8μm CMOS工艺,68脚PGA或PLCC封装
1.3.2.2  TMS320C25的结构TMS320C25是第二代TMS320中与TMS32020管脚全兼容的CMOS版本,但指令执行速度是TMS 32020的2倍,且增加了硬件和软件资源。指令集是TMS32010和TMS32020的超集,在源代 码级与它们兼容。此外,在代码级与TMS32020兼容,因此,TMS32020的程序可不用修改 直接在TMS320C25上运行。100ns的指令周期可提供较强的运算能力。由于大部分指令在一个指令周期内执行,处理 器在1秒内可执行1000万条指令(10MIPS)。运算能力的增加主要得益于乘累加指令(M AC)和带数据移位的乘累加指令(MACD)、具有专用算术单元的8个辅助寄存器、适合于 自适应滤波和扩展精度运算的指令集支持、比特反转寻址、快速的I/O支持等。 指令集中提供在两个存储空间中进行数据移动的指令。在外部,程序和数据存储空间在 同一总线上复用,从而使得在尽量减少芯片引脚的情况下最大程度地扩大两个空间的地 址范围。在内部,TMS320C25结构通过保持程序和数据总线结构分离以使指令全速执行来 获得最大的处理能力。 芯片内部的程序执行采用三级流水线形式。流水线对用户来说是透明的。但是,在某些 情况下流水线可能被打断(如跳转指令),在这种情况下,指令执行时间要考虑流水线 必须清空和重新填充。两块大的片内RAM在系统设计时提供了很大的灵活性,其中一块既 可配置为程序存储器也可配置为数据存储器。片外64K字的数据空间可直接寻址,从而使DSP算法实现更为方便。片内4K字的掩膜ROM可用来降低系统成本,若程序不超过4K字, 可使TMS320C25不用扩展片外程序存储器。剩下的64K字程序空间在片外,大量的程序可 在片外存储器中全速运行。程序也可从片外慢速EPROM中装入到片内高速RAM中全速运行 。此外,还有硬件定时器、串行口和数据块搬移功能。 下面介绍TMS320C25的存储器分配、中央算术逻辑单元(CALU)、硬件乘法器、控制操作 、串行口和I/O接口。
1.存储器分配TMS320C25具有4K字的片内程序ROM和544字的片内RAM。RAM分为三块:B0、B1、B2。其中 ,B0块(256字)既可配置为数据存储器(用CNFD指令),也可配置为程序存储器(用C NFP指令)。其余288字(B1和B2块)只能是数据存储器。544字的片内RAM可使C25能处理512字的数据阵列,如可进行256点复数FFT运算,且尚有32字用作中间结果的暂存。TMS 320C25提供片外可直接寻址的程序和数据空间各64K字。 寄存器组包含8个辅助寄存器(AR0~AR7),它们可用作数据存储器的间接寻址和暂存, 从而增加芯片的灵活性和效率。这些寄存器既可用指令直接寻址,也可用3比特的辅助寄 存器指针(ARP)间接寻址。辅助寄存器和ARP既可从数据存储器装数,也可装入立即 。寄存器的内容也可存入数据存储器中。辅助寄存器组与辅助寄存器算术单元(ARAU) 相连接,用ARAU访问信息表无需CALU参与地址操作,这样可让CALU进行其他操作。
2.中央算术逻辑单元CALU包含一个16位的定标移位器(Scaling),一个16×16位的并行乘法器,一个32位的 累加器和一个32位的算术逻辑单元(ALU)。移位器根据指令要求提供0到16位的数据左 移。累加器和乘法器输出端的移位器适合于数值的归一化、比特提取、扩展精度算术和 溢出保护。 典型的ALU指令实现包含以下三步:(1) 数据在数据总线上从RAM中获取;(2) 数据移交给完成算术运算的定标移位器和ALU;(3) 结果送回累加器。32位累加器可分为2个16位以进行数据存储:SACH(高16位)和ACCL(低16位)。累加器 有一个进位位可方便加法和减法的多精度运算。
3.硬件乘法器TMS320C25具有一个16×16位的硬件乘法器,它能在一个指令周期内计算一个32位乘积。 有两个寄存器与乘法器相关:①16位暂存寄存器TR,用于保存乘法器的一个操作数;② 32位乘积寄存器PR,用于保存乘积。 乘积寄存器的输出可左移1位或4位,这对于实现小数算术运算或调整小数乘积很有用。PR的输出也可右移6位,这样可连续执行128次乘/加而无溢出。无符号乘(MPYU)指令可 方便扩展精度乘法。
4.I/O接口I/O空间由16个输入口和16个输出口组成。这些口可提供全16位并行I/O接口。输入(IN)和输出(OUT)操作典型的是2个周期,但若用重复指令,可变成单周期指令。I/O器 件映射到I/O地址空间,其方式与存储器映射方式相同。与不同速度的存储器或I/O器件 接口采用READY线完成。TMS320C25也支持外部程序/数据存储器的DMA,其他处理器通过置HOLD\ 为低后可完全控 制TMS320C25的外部存储器,使C25将其地址、数据和控制线呈高阻状态。外部处理器和C25的通信可通过中断来完成。TMS320C25芯片提供两种DMA方式,一种是加上HOLD后停止 执行;另一种是C25继续执行,但执行是在片内ROM和RAM中进行,这可大大提高性能。
1.3.2.3  TMS320C25的软件TMS320C25的指令总共有133条,其中97条是单周期指令。在另外36条指令中,21条包括 跳转、调用、返回等,这些指令需重新装入程序计数器,使执行流水线中断。另外7条指 令是双字和长立即数指令。剩下的8条指令(IN,OUT,BLKD,BLKP,TBLR,TBLW,MAC,MACD)支持I/O操作、存储器之间的数据交换或提供处理器内部额外的并行操作,而且这8条指令与重复计数器配合使用时可成为单周期指令。这主要利用了处理器的并行机制, 使得复杂的计算可用很少的几条指令来完成。 由于大多数指令用单16位字编码,故可在一个周期内完成。存储器寻址方式有三种:直 接寻址、间接寻址和立即数寻址。直接寻址和间接寻址都用来访问数据存储器,立即 寻址利用由程序计数器确定的存储器内容。 使用直接寻址方式时,指令字的7位和9位数据存储器页指针(DP)构成16位的数据存储 器地址。其中,每页长128字,共有512页,故可寻址64K的数据空间。间接寻址借助于8个辅助寄存器(AR0~AR7)。其中的比特反转寻址可大大提高 FFT运算的I/O效率。其中,OP表示某种运算,NARP表示新的ARP。TMS320C25的寻址方式 寻址方式    操    作OP A    直接寻址OP *(,NARP)   间接寻址;AR不变OP *+(,NARP)  间接寻址;当前AR加1 OP *-(,NARP)  间接寻址;当前AR减1 OP *0+(,NARP) 间接寻址;AR0加到当前AR OP *0-(,NARP) 间接寻址;当前AR减去AR0 OP *BR0+(,NARP)   间接寻址;AR0加到AR()OP *BR0-(,NARP)   间接寻址;当前AR减去AR0()1.3.3  TMS320C5X TMS320C5X是TI公司的第五代产品,是继TMS320C1X和TMS320C2X之后的第三代定点DSP处 理器。它的核心中央处理器(CPU)以TMS320C25的核心CPU为基础,增强型结构大幅度地 提高了整体性能。TMS320C5X工作速度是TMS320C25的2倍以上,对于TMS320C1X和TMS320 C2X具有源代码向上兼容特性。这种兼容性保留了过去开发的软件,便于系统升级到更高 性能的DSP系统。TMS320C5X系列有TMS320C50/C51/C52/C53等多种产品,它们的主要区别 是片内RAM、ROM等资源的多少,如TMS320C50内部具有10K字RAM和2K字ROM,其中2K字RO M已经固化了引导程序;TMS320C51内部具有2K字RAM和8K字ROM;TMS320C52内部具有1K字RAM和4K字ROM,减少了一个串行口;TMS320C53内部则有4K字RAM和16K字ROM。芯片的其 他性能则是完全相同的。下面以TMS320C50为例介绍TMS320C5X DSP 芯片。

相关帖子

沙发
aspoke| | 2017-8-7 17:06 | 只看该作者
介绍的TMS320C5X DSP 芯片呢?

使用特权

评论回复
板凳
232321122| | 2017-8-7 17:08 | 只看该作者
DSP的资料呢?

使用特权

评论回复
地板
ghuca| | 2017-8-7 17:08 | 只看该作者
TI的DSP还是以6000的最多。

使用特权

评论回复
5
htmlme| | 2017-8-7 17:09 | 只看该作者
C2000的dsp有介绍吗

使用特权

评论回复
6
soodesyt| | 2017-8-7 17:10 | 只看该作者
没有实质性的资料。

使用特权

评论回复
7
mnynt121| | 2017-8-7 17:10 | 只看该作者
运算速度还是靠的内部结构。

使用特权

评论回复
8
plsbackup| | 2017-8-7 17:11 | 只看该作者
TMS320C50的资料呢?

使用特权

评论回复
9
kmzuaz| | 2017-8-7 17:11 | 只看该作者
坐等楼主分享其他的一些资料了。

使用特权

评论回复
10
qiufengsd| | 2017-8-7 17:12 | 只看该作者
不知道运行的效果怎么样

使用特权

评论回复
11
aspoke| | 2017-8-7 17:12 | 只看该作者
多多分享一些相关的软硬件设计和应用。

使用特权

评论回复
12
232321122| | 2017-8-7 17:12 | 只看该作者
可以讲解一些ccs的应用设计。

使用特权

评论回复
13
ghuca| | 2017-8-7 17:12 | 只看该作者
这个在论坛很多的资料可以查看。

使用特权

评论回复
14
htmlme| | 2017-8-7 17:12 | 只看该作者
最近想做电机控制方面的设计。

使用特权

评论回复
15
soodesyt| | 2017-8-7 17:12 | 只看该作者
怎么才能实现dsp的快速开发设计。

使用特权

评论回复
16
mnynt121| | 2017-8-7 17:12 | 只看该作者
现在的m4内核的产品,运算速度也在不断提高。

使用特权

评论回复
17
plsbackup| | 2017-8-7 17:13 | 只看该作者
能不能提供一下TMS320C5509的资料?

使用特权

评论回复
18
kmzuaz| | 2017-8-7 17:13 | 只看该作者
架构介绍没有用,主要还是看软硬件的设计。

使用特权

评论回复
19
qiufengsd| | 2017-8-7 17:13 | 只看该作者
DSP还是做数字信号处理的较多,控制还是选择单片机。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

632

主题

842

帖子

3

粉丝