本帖最后由 czd886 于 2023-8-7 10:32 编辑

TMS320C54x芯片是一种特殊结构的微处理器,为了快速地实现数字信号处理运算,采用了流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。
1、TMS320C54x的基本结构
TMS320C54x(简称C54x)是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。
C54x的主要优点:
① 围绕1组程序总线、3组数据总线和4组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。
② 具有高度并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。
③ 具有完善的寻址方式和高度专业化指令系统,更适应于快速算法的实现和高级语言编程的优化。
④ 模块化结构设计,使派生器件得到了更快的发展。
⑤ 采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能。  
⑥ 采用先进的静态设计技术,进一步降低了功耗,使芯片具有更强的应用能力。
image.png
各部分的功能:
① 中央处理器CPU
采用了流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。
② 内部总线结构
由一组程序总线、三组数据总线和四组地址总线组成,可在一个指令周期内产生两个数据存储地址,实现流水线并行数据处理。
③ 特殊功能寄存器
共有26个特殊功能寄存器,位于具有特殊功能的RAM区。主要用来对片内各功能模块进行管理、控制、监视。
④ 数据存储器RAM
DARAM:在一个指令周期内,可对其进行两次存取操作,即一次读出和一次写入; SARAM:在一个指令周期内,只能进行一次存取操作。
⑤ 程序存储器ROM
可由ROM和RAM配置而成,即程序空间可以定义在ROM上,也可以定义在RAM中。
当需要高速运行的程序时,可将片外ROM中的程序调入到片内RAM中,以提高程序的运行速度,降低对外部ROM的速度要求,增强系统的整体抗干扰性能。
⑥ I/O口
C54x共有两个通用I/O引脚(BIO和XF)。
BIO:主要用来监测外部设备的工作状态;
XF:用来给外部设备发送信号。
C54x芯片还配有主机接口(HPI)、同步串行口和64K字I/O空间。
HPI和串行口可以通过设置,用作通用I/O。
64K字的I/O空间可通过外加缓冲器或锁存电路,配合外部I/O读写控制时序构成片外外设的控制电路。
⑦ 串行口
不同型号的C54x芯片,所配置的串行口功能不同。可分为4种:
单通道同步串行口SP;带缓冲器单通道同步串行口BSP;并行带缓冲器多通道同步串行口McBSP;时分复用带缓冲器串行口TMD;
⑧ 主机接口HPI
HPI是一个与主机通信的并行接口,主要用于DSP与其它总线或CPU进行通信。信息可通过’C54x的片内存储器与主机进行数据交换。
不同型号的器件配置不同HPI口,可分为:8位标准HPI接口;8位增强型HPI接口;16位增强型HPI接口。
⑨ 定时器  
定时器是一个软件可编程的计数器,用来产生定时中断。可通过设置特定的状态来控制定时器的停止、恢复、复位和禁止。
⑩ 中断系统
C54x的中断系统具有硬件中断和软件中断。

image.png
2、C54x的主要特性和外部引脚            
(1)CPU
主要特点:   
采用先进的多总线结构,通过1组程序总线、3组数据总线和4组地址总线来实现。
40位算术逻辑运算单元ALU,包括1个40位桶形移位寄存器和2个独立的40位累加器。
17×17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算。
比较、选择、存储单元(CSSU),可用于Viterbi译码器的加法-比较-选择运算。
指数编码器,是一个支持单周期指令EXP的专用硬件。可以在一个周期内计算40位累加器数值的指数。
配有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。
(2)存储器
● 可访问的最大存储空间为192K×16位,即64K字的程序存储器、64K字的数据存储器以及64K字的I/O空间。
● 片内ROM,可配置为程序存储器和数据存储器。
● 片内RAM有两种类型,即双寻址RAM(DARAM)和单寻址RAM(SARAM)。
(3)指令系统
● 支持单指令重复和块指令重复操作
● 支持存储器块传送指令
● 支持32位长操作数指令
● 具有支持2操作数或3个操作数的读指令
● 具有能并行存储和并行加载的算术指令
● 支持条件存储指令及中断快速返回指令     
(4)在片外围电路  
● 具有软件可编程等待状态发生器
● 设有可编程分区转换逻辑电路
● 带有内部振荡器或外部时钟源的片内锁相环(PLL)发生器
● 支持全双工操作的串行口,可进行8位或16位串行通信
● 带4位预定标器的16位可编程定时器
● 设有与主机通信的并行接口(HPI)
● 具有外部总线判断控制,以断开外部的数据总线、地址总线和控制信号
● 数据总线具有总线保持器特性
(5)电源
● 具有多种节电模式。
可用IDLE1、IDLE2和IDLE3指令来控制芯片功耗,使CPU工作在省电方式。
● 可在软件控制下,禁止CLKOUT输出信号。
(6)速度
● 5.0V电压的器件,其速度可达到40MIPS,指令周期时间为25ns。
● 3.3V电压的器件,其速度可达到80MIPS,指令周期时间为12.5ns。
● 2.5V电压的器件,其速度可达到100MIPS,指令周期时间为10ns。
● 1.8V电压的器件,其速度可达到200MIPS,每个核的指令周期时间为10ns。   
C54x的引脚功能 :
TMS320C54x芯片采用CMOS制造工艺,整个系列的型号基本上都采用塑料或陶瓷四方扁平封装形式(TQFP)。
不同的器件型号其引脚的个数有所不同。下面 以TMS320VC5402芯片为例,介绍C54x引脚的名称及功能。
image.png
电源引脚:
C5402采用双电源供电,其引脚有:
● CVDD(16、52、68、91、125、142),
       电压为+1.8V,为CPU内核提供的专用电源;
● DVDD(4、33、56、75、112、130),
       电压为+3.3V,为各I/O引脚提供的电源;
● VSS(3、14、34、40、50、57、70、76、93、
       106、111、128),接地。
时钟引脚:

image.png
控制引脚:
image.png
image.png
地址和数据引脚:
’C5402芯片共有20个地址引脚和16条数据引脚 。
地址引脚用来寻址外部程序空间、外部数据空间和片外I/O空间。
地址引脚A19~A0:可寻址1M字的外部程序空间;64K字外部数据空间;64K字片外I/O空间。
数据引脚:用于在处理器、外部数据存储器、程序存储器和I/O器件之间进行16位数据并行传输。数据引脚D15~D0:组成16位外部数据总线。
串行口引脚:C5402器件有两个McBSP串行口,共有12个外部引脚。
image.png
image.png
主机接口HPI引脚:
’C5402的HPI接口是一个8位并行口,用来与主设备或主处理器接口,实现DSP与主设备或主处理器间的通信。

image.png
通用I/O引脚:
’C5402芯片都有2个通用的I/O引脚,分别为:   
XF:外部标志输出信号,用来给外部设备发送信号。通过编程设置,控制外设工作。  BIO:控制分支转移输入信号,用来监测外设的工作状态。  

测试引脚:
image.png
3、C54x的内部总线结构
TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。
(1)程序总线PB
主要用来传送取自程序存储器的指令代码和立即操作数。
PB总线既可以将程序空间的操作数据(如系数表)送至数据空间的目标地址中,以实现数据移动,也可以将程序空间的操作数据传送乘法器和加法器中,以便执行乘法-累加操作。
(2)数据总线CB 、DB和EB
3条数据总线分别与不同功能的内部单元相连接。如:CPU、程序地址产生逻辑PAGEN、数据地址产生逻辑 DAGEN、片内外设和数据存储器等。
CB和DB用来传送从数据存储器读出的数据;
EB用来传送写入存储器的数据。
(3)地址总线PAB、CAB、DAB和EAB
用来提供执行指令所需的地址。

image.png
4、C54x的中央处理器CPU
CPU是DSP器件的核心部件,它的性能直接关系到DSP器件的性能。
C54x的CPU采用了流水线指令执行结构和相应的并行结构设计,使其能在一个指令周期内,高速地完成多项算术运算。  
CPU包括下列基本部件:
  ① 40位算术逻辑运算单元ALU;
  ② 2个40位的累加器A和B;
  ③ 支持-16~31位移位范围的桶形移位寄存器;
  ④ 能完成乘法-加法运算的乘法累加器MAC;
  ⑤ 16位暂存器T;
  ⑥ 16位转移寄存器TRN;
  ⑦ 比较、选择、存储单元CSSU;
  ⑧ 指数译码器;
  ⑨ CPU状态和控制寄存器。

算术逻辑运算单元ALU:
’C54x使用40位的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。
’C54x的大多数算术逻辑运算指令都是单周期指令,其运算结果通常自动送入目的累加器A或B。但在执行存储器到存储器的算术逻辑运算指令时(如ADDM、ANDM、ORM和XORM),其运算结果则存入指令指定的目的存储器。

image.png
根据输入源的不同,ALU采用不同的输入方式。
(1) ALU的X输入源
   ① 来自桶形移位寄存器输出的操作数;
   ② 来自数据总线DB中的操作数。
(2) ALU的Y输入源
   ① 来自累加器A中的数据;
   ② 来自累加器B中的数据;
   ③ 来自数据总线CB中的操作数;
   ④ 来自T寄存器中的操作数。

image.png
溢出处理(溢出处理为OVM):
image.png
进位位C:
image.png
双16位算术运算 :
若要将ST1中的C16置位,则ALU进行双16位算术运算,即在一个机器周期内完成两个16位数的算术运算,进行两次16位加法或两次16位减法运算。
其他控制位 :
除SXM、OVM、C、C16、OVA、OVB外,ALU还有两个控制位。
TC——测试/控制标志,位于ST0的12位;
ZA/ZB——累加器结果为0标志位。
累加器A和B:
C54x芯片有两个独立的40位累加器A和B,可以作为ALU或MAC的目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。
在执行并行指令(LD||MAC)和一些特殊指令(MIN和MAX)时,两个累加器中的一个用于装载数据,而另一个用于完成运算。

image.png