[资料分享] DSP学习(3)TMS320VC5402原理和应用

Aguilera   2019-10-6 19:01 楼主

第三章 TMS320VC5402原理和应用

I.TMS320C5402的主要特征:
1:CPU结构;
1) 先进的多总线结构,一个程序总线,三个数据总线, 四个地址总线。
2) 40-BIT的算术逻辑单元(ALU),包括一个40-BIT的桶形移位器和两个独立的40-BIT累加器(ACC)。
3) 17×17-BIT并行乘法器,耦合至一个专用的加法器,作非流水的单周期乘法/累加运算(MAC)。
4) 比较,选择,存储单元(CSSU),供Viterbi运算作加法/比较选择。
5) 指数编码器,在单周期内计算一个40-BIT累加器值的指数。
6) 两个地址发生器,包括8个辅助寄存器和两个辅助寄存器算术单元。
2:指令集;
1) 单指令循环和块循环操作;
2) 块存储器搬移指令,更便于程序和数据管理;
3) 32-BIT长操作数指令;
4) 同时读取2操作数和3操作数指令;
5) 算术指令带并行存储和并行装入;
6) 条件存储指令;
7) 快速中断返回;
3:片内外设;
1) 软件可编程等待状态发生器;
2) 软件可编程存储体切换;
3) 片内锁相环(PLL)时钟发生器,内部振荡器或外部时钟;
4) 外部总线断开控制,以禁止外部数据总线,地址总线和控制总线;
5) 数据总线可以挂起;
6) 可程控定时器;
4:存储器;
192K字×16-bit可寻址空间(64K字程序,64K字数据,64字I/O)。加上外部存储器,数据程序存储空间扩充到1M*16bit,片内置4K*16bit P/D ROM和16K*16bit DARAM。
5:电源;
1) 用节电模式的IDLE1,IDLE2,IDLE3作功耗控制。
2) 可以禁止CLKOUT信号。
6:仿真;
IEEE1149.1边界扫描逻辑与片内扫描逻辑接口。
7:速度;
单周期10ns执行时间,定点指令(5/10/20/40/100MIPS)可选择。
II.总线结构;
C5402的总线结构由8条主要的16位总线组成(4条程序/数据线,4条地址线):
· 程序总线(PB) 从程序存储区传输指令代码和立即操作数。
· 三条数据总线(CB,DB,EB) 连接内部的不同部分,诸如CPU,数据地址发生逻辑单元,程序地址发生逻辑单元,片内外围设备。
· 四条地址线(PAB,CAB,DAB,EAB),传送执行指令所需的地址。
利用两个辅助寄存器算术单元(ARAU0,ARAU1),C5402能够在一个时钟周期内产生两个数据存储器地址。PB 能够将数据操作数存储至程序空间(例如系数表),以提供乘法器和加法器作乘法和累加运算,或者存储至数据空间的目标寄存器,以提供作数据移位指令(例如MVPD和READA)。这种能力,结合读双操作数的特征,支持单周期三操作数指令(如FIRS)的执行。
C5402 DSP同时具有片内的双向总线,以访问片内外围设备,该总线通过CPU界面内的总线交换器与DB和EB连接起来。通过该总线的访问需要二至三个读或写的周期,具体时间取决于外设的结构。
III.中央处理单元(CPU);
40位的算术逻辑单元ALU,C54X以40位的算术逻辑单元和两个40位的累加器(A和B)执行算术指令,ALU同时也能够执行布尔操作。两个40位的累加器,累加器A和B存储ALU和乘法/加法模块的输出。它们可以给ALU提供第二次的输入,累加器A可以作为乘法/加法器的输入。
串行移位器:C5402的串行移位器具有40位的输入,与累加器或者是数据存储区(通过CB或DB)连接在一起,它由40位的输出,连至ALU或数据存储区(通过EB)。串行移位器可以对输入数据进行0到31位的左移和0到16位的右移。
17×17位的乘法器:快速的片内乘法器允许C5402高效执行诸如卷积,相关和滤波操作。另外,乘法器和ALU一起可以在一个指令周期中执行乘法累加(MAC)运算及并行ALU运算。
比较,选择,和存储单元(CSSU):比较,选择,和存储单元(CSSU)执行比较累加器高位和低位的大小的操作,允许状态寄存器ST0中的检测/控制位TC和传输寄存器(TRN)保持它们的传输记录,并且选择累加器中较大的字存入数据存储区。
IV.存储器结构;
其存储器为哈佛型,分为三个独立的寻址空间;程序,数据,I/O口。它总共提供了
192K word的地址范围,并可通过增强外设接口扩充。C5402的芯片上有16K的DARAM和
4K的P/D ROM。所有的存储空间又分为多个8K大小的块,支持分页寻址处理,这使得在对其中一个块操作时,可同时对另一个块进行操作,增加了处理速度。
1. 片内存储器;
片内ROM的结构(地址为:F800h--FFFFh):引导装入程序、256-word的μ律扩展表,256-word的A律扩展表,256-word的sin查找表和中断矢量表。
片内DARAM的结构(地址为:0060h—3FFFh):分为两个8K的块。
以下的CPU和外设存储映射在第0页(0000h–007Fh)。
· CPU存储器存储映射(0000h--000Fh)
该部分包括:中断屏蔽寄存器,中断标量寄存器,状态寄存器ST0和ST1,累加器A和B,暂存器T,辅助寄存器AR0-AR7,堆栈指针SP,块循环的地址和计数器寄存器,处理器模式寄存器PMST等有关CPU操作和状态的寄存器,不需要等待状态法生,就可以读写以上26个寄存器。
· 外设存储器存储映射(0060h--003Fh)
该部分控制外设的工作,通过映射表的寄存器与外设间发送和接收数据,可以设置控制寄存器的bit位能灵活的配置外设,对之进行使能,初始化等操作。
· 程序和数据存储空间(0060h—3FFFh)
由PMST中OVLY来控制片内RAM被设置为程序或数据空间。OVLY=0时,片内RAM为数据空间。OVLY=1时,RAM可设为数据和程序空间,具体的数据和程序空间的分配由.cmd文件指定,可以在.map文件中看出。
软件可编程等待状态发生器:使外部总线周期延伸至7个机器周期,以便与片外的慢速存储器或I/O设备接口。当无任何外部硬件时,等待状态发生器不工作。对于片外存储器的存取,软件可编程等待状态发生器(SWWSR)可指定0—7个等待状态,这既适用于每个程序/数字存储器,也适用于I/O空间。
可编程存储器转换逻辑:当访问过程跨越程序或数据存储器边界时,可编程存储器转换逻辑会自动插入一个周期。当存储过程由程序存储器转向数据存储器时,也会插入一个周期。这一附加周期通过在其他器件开始驱动总线之前允许存储器释放总线,以避免总线竞争。转换的存储体的大小由存储体转换寄存器(BSCR)确定。
2.寻址模式
· 单操作数寻址,单操作数地址修改;
· ARAU和地址产生操作;
两个辅助寄存器运算单元ARAU0和ARAU1对辅助寄存器的 内容(16比特无符号数)进行操作,通过预先改变辅助寄存器的值,可得到所需的地址。
C5402 DSP有七种基本的寻址方式:
1:立即数寻址:
1) 短立即数寻址 长度可以是3、5、8、9比特。
2) 16比特立即数寻址,使用哪种结构取决于使用哪种指令。
2:绝对寻址:
1) dmad(数据存储区寻址),在数据空间定义寄存器标号,就可进行对该标号指向的存储器进行读写操作。
2) pmad(程序存储区寻址) 。
3) PA (端口寻址) 寻址 ,直接读写端口。
4) *(lk)寻址,是无须改变DP 或 SP ,就可以对数据空间的任何地址进行寻址,但不能用于RPT 和 RPTZ指令。
3: 直接寻址:
对指令编码时,低7位用于地址;结合数据指针DP和堆栈指针SP可以确定存储地址。在C5402中,用一个数据页寄存器(DP)来指定正在使用的存储区。在任何时候,在512个可选页的任意一页上,有128个存储单元可以用来做直接寻址。这128个存储单元只需要7位来寻址,这就使单周期操作成为可能。 由于DP 是可编程寄存器,因此在整个存储映射区内,一次有128个地址可以被访问。在直接寻址中,指令的低7比特是数据存储器地址(dma),Dma是相对于DP所指的地址页,或SP 所指的地址的偏移量(1-127)。特别地CPL=0,dma是相对于DP的偏移。DP将数据存储器分为512页(0-511),每一页有128字,实际的地址由DP和dma结合而成。
4.: 间接寻址:
间接寻址对于访问在存储区内的表,数组或其它有序集合来说是一种高效的,功能极强的方式。间接寻址的指令不是在指令中表达,而是位于辅助寄存器AR中。AR的使用具有不少优点。首先,AR是16位的寄存器,这样无需借助于数据页寄存器便可以定位整个数据存储映射区的任意单元。另外,在读过操作数后,AR可自动增加或减少,这就为以后的操作有指定了一个新的起点。这个特点使循环操作可更快速,更容易执行。
在直接用*ARX1=*ARX2指令时,要使用同样挂在总线上的两个ARX。
5:存储映象寄存器寻址:
由于MMR(存储映象寄存器)是数据存储区的一部分,因此能够用访问其它数据存储区,相同的访问方法,借助直接或间接寻址,对它们写或读。还存在另外一种访问MMR的方法,称为存储-映射寻址。由于MMR都位于0页面,MMR寻址指令仅对第0页操作,因此若用直接寻址,将忽略(并不改变)DP 的值。若用间接寻址,则仅用当前AR的低7位即可。
6.:堆栈寻址:
从系统堆栈中增加和删除元素。在执行直接,间接,存储器映象寄存器的寻址指令时,数据地址发生逻辑(DAGEN)计算数据存储区操作数的地址。
7: 累加器寻址:
累加器寻址将累加器作为地址来使用(通常是低16位)。这种寻址方式是将程序存储器作为数据来寻址。
有两种指令使用这种模式寻址:READA Smem和WRITA Smem。
V. 流水线操作:
一条指令的流水结构由执行指令的一系列顺序操作组成。C5402具有6级深度流水线:预取指,解码,访问,读写,执行。每一级均有一个独立的操作发生。由于这些操作都是独立的,在任一给定的周期中都可能有6指令处于激活状态,每条指令处于执行的不同阶段。
典型情况下,流水线被一系列的指令集填充,每一条指令处于6个阶段中的一个。当程序计数器PC发生不连续的情况时,比如分支,调用,返回等等,一个或更多的流水线的阶段暂时不被使用。
对于较高阶段的设计者,要考虑流水线中的冲突和时延,*插入一定的NOP指令来解决。在C6000的开发过程中,采用新的线性汇编指令集可以不用考虑流水线的竞争。
VI. C5402的片内外设及HPI端口:
1.可编程段转换逻辑
可编程段转换逻辑能够在跨段访问程序或数据存储器是自动插入一个周期。当访问从程序存储区跨越到数据存储区时也要插入一个周期。这个多余的周期通过允许存储设备在它们的设备驱动总线之前释放,来解决总线的冲突。段转换中的段的大小由段转换控制寄存器(BSCR)来决定。
2.主机端口界面(HPI)
HPI是主机与C5402进行数据交换的8-bit并行数据口。该接口在C5402芯片上,内部有HPI数据寄存器,控制寄存器。HPI是用8-bit的数据线传输16-bit的数据,可通过设置控制寄存器的相关位控制高8位(signifiecant)和低8位的传输。HPI有两种工作方式:一种是主机独占模式(HOM);另一种是主机和C5402共享模式(SAM)。SAM是通用的方式,二者都可访问HPI数据存储器。在二者产生冲突时,主机有较高的优先权,而5402插入一个等周期。HPI传输数据率是每5个CLKOUT周期传输1byte。C5402的HPI是改良的增强型。
3.硬件时钟
C5402具有一个有4路的16位的时间发生电路。在每一个CLKOUT周期,定时器计数器减1。每当计数器减至0,定时器中断产生了。定时器可以被中止,重起,复位,或者置为失效,这些都取决于具体的状态位。时钟发生器由一个外部的振荡器和一个锁相环(PLL)电路组成。时钟发生器可以被一个用内部振荡器的钻石共鸣器来内部驱动,也可以用时钟源来外部驱动。PLL电路可以通过将时钟源与具体的因数相乘来产生一个内部CPU时钟,体现在DSK上是运算速度可通过dip选择5/10/40/100MIPS。
4.串行口
C5402支持两个多通道缓冲串行口,用自动缓冲单元增强并用完全的CLKOUT速率计时的同步的串行口。它完全双向及双缓冲以提供灵活的数据流长度。自动缓冲单元支持高速传输,减少了中断服务的耗费。引脚FSX和FSR上的帧同步脉冲分别初始化标准串行口的发送和接收操作。串行口通过3个存储器映象寄存器(SPC、DXR、DRR)和两个其它寄存器(RSR、XSR)进行操作。
5.中断:C5402的中断分为硬件中断和软件中断两种:
1) 软件中断:需要程序指令(INTR,TRAP,或RESET):
2) 硬件中断:需要物理器件发出外部请求,分为两种情况:
· 外部中断端口引发外部中断。
· 芯片内外围设备信号引发外部中断。
当不同硬件中断同时引发时,按其优先级先后响应。
VII. IEEE标准 1149。1 检测逻辑;
IEEE标准 1149.1 检测逻辑电路仅用于模拟和检测目的。该逻辑为界面器件提供边界检查。同时,它也可以象执行器件内的操作一样用于检测管脚的连续性。IEEE标准1149.1检测逻辑区别于访问所有片内资源的内部逻辑检测电路,通过JTAG接口提供于XDS50X EVM板的连接。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复