第五章(3) TMS320C5x芯片的外部接口
讲稿TMS320C55x DSP 硬件部分

江苏技术师范学院 电气信息工程学院
TMS320VC5509A 功能概述
江苏技术师范学院 电气信息工程学院
TMS320VC5509A 功能概述
江苏技术师范学院 电气信息工程学院
CPU的结构
江苏技术师范学院 电气信息工程学院
指令集结构与实现要点
• C55x的指令集具有高度并行的结构,从而可以提高代 码的密度,降低每个运算所要求的周期数。
TMS320C55x DSP 硬件部分
江苏技术师范学院 电气信息工程学院
议题
• TMS320C55x 概述 • CPU的结构 • CPU寄存器 • 存储器和I/O空间 • 堆栈操作 • 中断和复位操作 • 寻址模式 • 片上外设
江苏技术师范学院 电气信息工程学院
TMS320C55x 概述
江苏技术师范学院 电气信息工程学院
TI DSP 被前8位 数码相机制造商 中的7个所选用
TI DSP 占VoIP 网关市场的80%
TI DSP 被前10位 无线基站制造商 中的8个所选用
TI DSP 占IP电话 设计的80%
江苏技术师范学院 电气信息工程学院
C55x 性能和优点
性能
32×16-bit指令缓冲队列 两个17 ×17-bit的MAC单元 1个40-bit的ALU 1个40-bit的桶形移位器 1个16-bit的ALU 4个40-bit的累加器 12组独立的总线 用户配置的IDLE域
优点
缓冲可变长度的指令,实现高效的块循环操作 单周期内执行两次MAC操作 执行高精度的算术和逻辑运算 可以将40-bit的结果左移32-bit,或右移32-bit 与主ALU并行,执行简单的算术运算 保持计算结果,降低对存储器传输的要求 并行地为各计算单元提供指令及操作码 改善低活动性时的电源管理
第5章TMS320C54x的引脚功能、流水线结构和外部总线结构

4.流水线延时 TMS320C54x流水线允许CPU多条指令同 时访问CPU资源。由于CPU的资源是有限的, 因此当一个CPU资源同时被一个以上流水线级 访问时,就会发生冲突。有些冲突可以由CPU 通过延迟寻址的方法自动消除,但有些冲突是 不能防止的,需要由程序重新安排指令顺序, 或者插入NOP(空操作)指令加以解决。
DS 、 PS 、IS :数据、程序和 I/O 空间选择信号。 MSTRB 、 IOSTRB :外部存储器、I/O 空间选通信号。
READY、R/ W :数据准备好及读写信号。 HOLD 、 HOLDA :保持输入信号、保持响应信号。
MSC :微状态完成信号。
IAQ
:指令获取信号。
第5章
TMS320C54x的引脚功能、流水线结构和外部总线结构
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 DV DD V SS V SS CV DD D15 A14 D13 D12 D11 D10 D9 D8 D7 D6 DV DD
V 1 SS A10 2 A11 3 A12 4 A13 5 A14 6 A15 7 CV 8 DD V 9 SS V 10 SS SV 11 DD READY 12 PS 13 DS 14 IS 15 R/W 16 MSTRB 17 IOSTRB 18 MSC 19 XF 20 HOLDA 21 IAQ 22 HOLD 23 BIO 24 MP/MC 25
第5章
TMS320C54x的引脚功能、流水线结构和外部总线结构
第5章
TMS320C54x的引脚功能、流水线结构和外部总线结构
第5章
TMS320C54xMS320C54x的引脚功能、流水线结构和外部总线结构
6.串口信号 CLKR0、CLKR1:接收时钟。 CLKX0、CLKX1:发送时钟。 DR0、DR1:串行口数据接收端。 DX0、DX1:串行口数据发送端。 FSR0、FSR1:用于接收输入的帧同步脉冲。 FSX0、FSX1:用于发送的帧同步脉冲。
TMS320C55x的硬件结构-20140923

数据写总线 EAB,FAB EB,FB
3
表2-4 地址总线和数据总线的功能
总 线 PAB PB CAB、 DAB CB、DB BAB 宽 度 24 位 32 位 每组 24 位 每组 16 位 24 位 功 能 读程序的地址总线,每次从程序空间读时,传输 24 位地址 读程序的数据总线,从程序存储器传送 4 字节(32 位)的程序代码给 CPU 这两组读数据的地址总线,都传输 24 位地址。DAB 在数据空间或 I/O 空间每读一次时传送一个地址,CAB 在两次读操作里送第二个地址 这两组读数据的数据总线, 都传输 16 位的数值给 CPU。 DB 从数据空间 或 I/O 空间读数据。CB 在读长类型数据或读两次数据时送第二个值 这组读数据的地址总线,在读系数时传输 24 位地址。许多用间接寻址 模式来读系数的指令,都要使用 BAB 总线来查询系数值 这组读数据的数据总线,从内存传送一个 16 位数据值到 CPU。 BB 不和外存连接。BB 传送的数据,由 BAB 完成寻址某些专门的指令, BB 16 位 在一个周期里用间接寻址方式,使用 BB、CB 和 DB 来提供 3 个 16 位 的操作数。经由 BB 获取的操作数,必须存放在一组存储器里,区别于 CB 和 DB 可以访问的存储器组 EAB、FAB EB、FB 每组 24 位 每组 16 位 这两组写数据的地址总线,每组传输 24 位地址。EAB 在向数据空间或 I/O 空间写时传送地址。FAB 在双数据写时,传送第二个地址 这两组写数据的数据总线,每组都从 CPU 读 16 位数据。EB 把数据送 到数据空间或 I/O 空间。 FB 在写长类型数据或双数据写时传送第二个值
Program Bus
E Data Read Buses (B,C,D) A M I PU IU AU DU F D
TMS320C55xDSP教材习题答案

第一章1.简述典型实时数字信号处理系统组成部分。
答:包括:抗混叠滤波器(Anti-aliasing filter)、模数转换器ADC(Analog-to-Digital Converter)、数字信号处理、数模转换器DAC(Digital-to-Analog Converter)和抗镜像滤波器(Anti-image filter) 。
2.简述X86处理器完成实时数字信号处理的优缺点。
答:利用X86处理器完成实时数字信号处理。
特点是处理器选择范围宽,主板及外设资源丰富,有多种操作系统可供选择,开发、调试较为方便;缺点是数字信号处理能力不强,硬件组成较为复杂,系统体积、重量较大,功耗较高,抗环境影响能力较弱。
3.简述数字信号处理器的主要特点。
答:(1)存储器采用哈佛或者改进的哈佛结构;(2)内部采用了多级流水;(3)具有硬件乘法累加单元;(4)可以实现零开销循环;(5)采用了特殊的寻址方式;(6)高效的特殊指令;(7)具有丰富的片内外设。
4.给出存储器的两种主要结构,并分析其区别。
答:存储器结构分为两大类:冯·诺依曼结构和哈佛结构。
冯·诺依曼结构的特点是只有一个存储器空间、一套地址总线和一套数据总线;指令、数据都存放在这个存储器空间中,统一分配地址,所以处理器必须分时访问程序和数据空间。
哈佛结构程序存储器空间和数据存储器空间分开,具有多套地址、数据总线,哈佛结构是并行体系结构,程序和数据存于不同的存储器空间,每个存储器空间独立编址、独立访问。
5.简述选择数字信号处理器所需要考虑的因素。
答:应考虑运算速度、算法格式和数据宽度、存储器类型、功耗和开发工具。
6.给出数字信号处理器的运算速度指标,并给出其具体含义。
答:常见的运算速度指标有如下几种:(1)指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;指令周期通常以ns(纳秒)为单位。
例如,运行在200MHz的TMS320VC5510的指令周期为5ns。
第5章 TMS320C54x的引脚功能、流水线结构和外部总线结构

图5-3 6条指令的流水线的操作
第5 章
TMS320C54x的引脚功能、流水线结构和外部总线结构
’C54x存储器操作情况: ① 执行读单操作数指令
例如:LD
预取指P 加载 PAB
*AR1,A
译码D
;单周期指令,读单操作数
取指F
寻址A
读数R
执行/写数
通过PB 通过IR 读取指令 指令译码
读地址 通过DB 加载DAB 读出数据
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
第5 章
TMS320C54x的引脚功能、流水线结构和外部总线结构
第5 章
TMS320C54x的引脚功能、流水线结构和外部总线结构
TMS320C5402引脚:
第5 章
TMS320C54x的引脚功能、流水线结构和外部总线结构
② 执行读双操作数指令 例如:MAC *AR2+,*AR3,A
;单周期指令, 读双操作数 读数R 执行/写数
预取指P 加载 PAB
取指F
译码D
寻址A
通过PB 通过IR 读取指令 指令译码
读地址 通过 加载DAB DB和CB 和CAB 读出数据
LD *AR2 +,A LD *AR2+,A ;AR2指向相同的 DARAM 块 例如:当执行下列程序发生时序冲突时, CPU i2 i2 ;假定i2指令不访问 i3 DARAM 能对取指自动延迟一个周期。
内部振荡器到外部晶振的输出引脚。
第5 章
TMS320C54x的引脚功能、流水线结构和外部总线结构
5.主机接口(HPI)信号(TMS320C542/545/548等具有)
第5章 TMS320C55x的片内集成外设开发及测试

C55x外设完成的功能包括采集原始数据、输出 处理结果,还可以通过外设来控制外部其他设备的 工作状态。 C55x的片内外设分为如下几类。 1.时钟与定时器 2.外部设备连接接口 3.信号采集 4.通信接口 5.其他外设
2013年7月13日 TMS320C55x DSP原理及应用 1
1.时钟与定时器 时钟与定时器包括时钟产生器、通用定时器、实时时钟 以及看门狗定时器等。时钟产生器的功能是产生CPU的工作 时钟,并提供CLKOUT时钟输出;通用定时器、实时时钟及 看门狗定时器的功能是通过计数器为系统提供定时时钟和年 、月、日、时、分、秒等时钟信号,以及监控系统正常运行 的看门狗时钟,并能发出相应中断。
3.失锁
锁相环对输入时钟跟踪锁定之后,由于其他原因使其 输出时钟发生偏移,即失锁。出现失锁现象后,PLL的动 作由时钟模式寄存器中的IOB确定
2013年7月13日
TMS320C55x DSP原理及应用
16
第5章 TMS320C55x的片内集成外设开发及测试
5.2.5
使用方法及实例
调用时钟发生器库函数首先要在头文件中包含csl_pll.h文件,接下 来介绍利用库函数配置时钟发生器的方法。 首先要声明PLL配置结构,具体声明如下: PLL_Config Config_PLL = { 1, /*iai 休眠后重新锁相 */ 1, /*iob 失锁后进入旁路模式并重新锁相 */ 6, /*pllmult CLKIN * pllmult = DSP主时钟*/ 0 /*div CLKOUT= DSP主时钟/(div+1) */ }; 之后运行配置函数: PLL_config(&Config_PLL); 也可以通过函数设置PLL频率: PLL_setFreq(6, 1); 通过PLL_setFreq函数可以复位PLL锁相环,并改变倍频和分频数 从而得到所需的频率。
第2章 TMS320C55x的硬件结构

2013年6月24日
TMS320C55x DSP原理及应用
12
第2章
TMS320C55x的硬件结构
A单元包括的寄存器有以下几种类型。 (1)数据页寄存器:包括数据页寄存器(DPH,DP)和 接口数据页寄存器(PDP); (2)指针:包括系数数据指针寄存器(CDPH,CDP)、 栈指针寄存器(SPH,SP,SSP)和8个辅助寄存器( XAR0~XAR7); (3)循环缓冲寄存器:包括循环缓冲大小寄存器(BK03 ,BK47,BKC)、循环缓冲起始地址寄存器(BSA01, BSA23,BSA45,BSA67,BSAC); (4)临时寄存器:包括临时寄存器(T0~T3)。
TMS320C55x的硬件结构
第二阶段是指执行流水线,这部分的功能是对指令进行 解码,完成数据的存取和计算。
流水线的第二阶段(执行流水线)
2013年6月24日
TMS320C55x DSP原理及应用
19
第2章
TMS320C55x的硬件结构
流水线第二分段各阶段的执行情况
流水线节拍 D 内 容 从指令缓冲队列中读6个字节的指令 对一个指令对或一个单指令进行解码 给对应的CPU功能单元分配指令 读取STx_中55种与数据地址产生相关的位 读取STx_中55种与数据地址产生相关的位 给对应的CPU功能单元分配指令 对一个指令对或一个单指令进行解码 从指令缓冲队列中读6个字节的指令 ST1_55(CPL) ST2_55(ARnLC) ST2_55(ARMS) ST2_55(CDPLC)
AD
读/修改与数据地址产生有关的寄存器 例如:− *ARx+(T0)中的ARx和T0 − BK03(如果AR2LC = 1) − SP (pushes和 pops过程中) − SSP, 在 32位栈模式中与对SP的操作一致 在A单元的ALU中完成操作,例如: − 使用AADD 指令进行算术运算 − 用SWAP指令交换A单元中的寄存器 − 向A单元的寄存器写入常量(BKxx,BSAxx, BRCx, CSR,等) 在条件分支指令中ARx 如果不等于0,ARx-1
TMS320C54x的引脚功能流水线结构和外部总线结构

8.IEEE 1149.1测试引脚
5.2 流 水 线 结 构
1.流水线概述 指令流水线包括执行指令时发生的一系列总线操 作。TMS320C54x的流水线有6个独立的阶段:程序预 取指、取指、指令译码、寻址、读和执行指令。由于 这6个阶段是独立的,因此这些操作有可能重叠。在任 意给定的周期里,可能有1~6条不同的指令是激活的 ,每一条指令都处于不同的阶段。图5-2说明了对于单 字、单周期指令,在没有等待状态情况下6级流水线的 操作。
图5-1 TMS320C541的引脚图
4.振荡器及定时信号 CLKOUT、TOUT:主时钟输出信号、定时器输出 信号。
CLKMD1~CLKMD3:3个外部/内部时钟工作方式 输入信号,可以预置DSP的时钟比。
X2/CLKIN、X1:晶振到内部振荡器的输入引脚、 内部振荡器到外部晶振的输出引脚。
4.流水线延时
TMS320C54x流水线允许CPU多条指令同时访问 CPU资源。由于CPU的资源是有限的,因此当一个 CPU资源同时被一个以上流水线级访问时,就会发生 冲突。有些冲突可以由CPU通过延迟寻址的方法自动 消除,但有些冲突是不能防止的,需要由程序重新安 排指令顺序,或者插入NOP(空操作)指令加以解决。
地址总线(A0~A15)和控制总线(11条)组成(参见5.1节) 。其中,TMS320C548、TMS320C549具有23条地址总 线。外部总线对外部存储器的访问最快只能达到每周 期进行一次寻址。下面介绍控制信号的功能。
5.3.2 外部总线控制性能
● 允许处于流水线不同级上的两条指令同时访问同一 个存储器块。
表5-1 访问DARAM块
操作类型 利用PAB/PB取指 利用DAB/DB读取第一个数据 利用CAB/CB读取第二个数据 利用EAB/EB写数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C541 存 储 器 映射图:
存储空间
程序存储器
数据存储器 I/O空间
程序存储器:
程序储存器的最大地址空间为64K。 片内的ROM、DARAM、SARAM都可以通 过软件映射到程序空间。 这些片内储存器映射到程序空间后,程序地 址发生器(program address generation unit) 将程序地址总线连接到这些存储器的 地址线上。
非屏蔽中断 :
ห้องสมุดไป่ตู้
C54x DSP 任何时候都响应这种类型的中断并 执行中断服务程序 C54x DSP 非屏蔽中断包括所有的软件中断和 两个外部的硬件中断 RS (reset)和 NMI。 (RS 和 NMI 也可以通过软件控制) RS 是系统复位中断,可以影响全部 C54x DSP 操作模式的非屏蔽中断,将处理器预置到 一个已知状态。 NMI 一般用于系统严重错误时,向CPU发出告 警。如电源系统告警等。
外部接口(续1)
外部接口包括:
系统复位 系统控制接口 两个串行通讯接口 数据、地址总线接口 外部中断接口 外部DMA控制接口 通用I/O 定时器输出 HPI接口(C542)
外部总线接口
介绍外部总线操作、存储器控制和I/O通道。 TMS320C54 DSP的外部总线操作包括软件等待、 块切换逻辑和保持逻辑。 外部总线 外部总线控制 Hold mode 外部存储器 存储空间
软件等待状态寄存器:
等待状态发生器和外部程序空间的连接工作方式图:
等待状态发生器和外部程序空间的工作方式:
当CPU收到一个外部程序空间地址时,由译码器对地址 译码,根据译码结果将寄存器SWWSR中对应的数值装入 计数器,如果数值不为零,发送一个等待信号到CPU, 等待状态计数器开始工作; 当计数器为减为0时,并且外部的准备就绪信号 (READY)为高平时,等待信号(WAIT)变为高电平, 等待结束。 在系统复位后,SWWSR 中的数据位全部置1, (SWWSR = 7FFFh),对外部总线的等待周期设置为最大。这个 特点保证系统初始化时,CPU能与外部存储器以较慢的 速度进行通讯。
片内 ROM 的结构 :
片内的ROM是按照块结构组织的,这样可以提高 程序的执行效率。例如,程序可以在一个ROM块 中取指令的同时,还可以同时读取另外一个ROM 块中的数据。 不同器件的块结构是不同的,一般的块分为2K、 4K、8K。对于2K-ROM 的芯片,块结构为2K;对于 4K-ROM 和 28K-ROM 的器件,一般块结构为4K; 对于16K-ROM 和 48K-ROM 的器件,一般块结构为 8K。
以下情况 DSP 将自动插入一个额外的机器周期:
_块之间操作。 _ PS-DS置1。
下图表明了在存储器块切换时插入了等待周期:
下图在程序读操作和数据读操作之间插入了额外的等待周期:
Hold Mode
信号 HOLD 和 HOLDA 允许外部设备控制处理器 的总线。 HOLDA信号变为低电平时,处理器认可HOLD方式。 当 C54X DSP 进入hold 模式,它的外部地址总 线、数据总线和控制信号线变为高阻态。 HOLD 模式 (HM) 的状态位在 ST1 寄存器 当 HM = 1,C54X DSP处于正常的操作模式。
数据存储器 :
C54的数据储存器最大为 64K×16-bit;数据储存器 包括片内(on-chip)储存器和片外(off-chip)储存 器。部分的C54X的DSP片内的ROM可以通过软件设 置PMST寄存器中的DROM位映射到数据区。 为了提高程序的执行效率,片内的 RAM 被划分为多 个块。例如,你可以在一个周期内执行两个数据的读 操作和一个数据的写操作。下图为C541片内 RAM 的 块结构,5K的片内RAM分为5个块,每个块为1K。
外部总线关闭时(EXIO = 1)各个端口的状态:
块切换逻辑
EXIO 和 BH 位是对外部地址和程序总线的控制位,在正常 操作模式下设置为0(正常读写状态)。如果不使用外部总 线,为了降低系统的功耗,应将 EXIO 和 BH 设置为 1。 当EXIO置1时,对外部总线的操作将失效。如写状态寄存器 ST1 的HM位,或写PMST中的OVLY位等。 C54 DSP 有一个内部寄存器保存最后一次操作(读或写) 的MSBs ,如果当前的地址高位与其不符,则选通信号 MSTRB保持一个时钟周期的无效状态,即插入一个时钟周期, 同时更新此内部寄存器。 如果在一个块内重复操作,则不插入额外的等待周期。当 BNKCMP全清0时,将不进行地址比较和插入额外的等待周期 的操作 。
等待状态发生器
软件可编程的等待状态发生器可以扩展外部的总线周期到7个 机器周期,可以方便的支持C54x DSP与速度较慢的外部设备连 接。 如果等待时间大于7个机器周期,可以使用硬件的 READY 连线。 如果全部外部设备都是零等待配置,连接到等待状态发生器的 内部时钟将关闭。关闭这些时钟可以降低设备的功耗。 软件可编程的等待状态发生器是由16-bit的软件等待寄存器 (SWWSR)控制的,内存映射地址在数据空间的0028H。 程序和数据空间是各自的两个32K-word块组成,I/O空间是由 1个64K-word块组成,每个块在SWWSR中对应 3bit 的位置
块切换逻辑
可编程的块切换逻辑允许C54X DSP 在存储器 块之间切换而不需要额外的等待周期。 可编程的块切换逻辑在内部的程序或数据空间 跨越存储器块边界时,自动插入一个等待周期。 块切换是通过块切换控制寄存器(BSCR)定义 的,内存映射地址是 0029H。
块切换控制寄存器(BSCR)
BNKCMP 、比较的位与块尺寸的关系.
当CPU指向内部存储器时,数据总线被自动置为 高阻态。但地址总线和存储器选择信号(PS, DS,IS)仍保持原状态。MSTRB, IOSTRB, R/W, IAQ, 和 MSC 信号保持激活状态。 当 PMST中的 AVIS( address visibility mode bit)置1时,内部的程序地址指向外部 总线,并且 IAQ 为激活状态。当CPU 指向外部 的数据或I/O空间时,外部的地址线被清0。当 CPU 指向内部存储器且 AVIS 置1时,外部的地 址线也被清0。
外部总线控制(External Bus Control)
C54的外部总线是由两个单元控制:等待状态发生 器(wait-state generator)和块切换逻辑 ( bank-switching logic)。 对这两个单元的控制是通过两个寄存器软件等待寄 存器(software wait-state register — SWWSR) 和 块切换控制寄存器(bank-switching control register — BSCR)实现。 等待状态发生器(Wait-State Generator) 块切换逻辑Bank-Switching Logic
思考题:利用 I/O 空间进行人机接口的 设计:用TMS320C541的I/O空间,设计 一组16个键盘输入,和对应键的指示灯 输出,画出电路框图(或原理图)。
系统中断 :
中断可以由硬件驱动产生,也可以由软件 产生。 中断信号使DSP处理器暂停主程序的执行, 转向中断服务程序。
C54x DSP 支持硬件中断和软件中断: 软件中断必须在执行的程序中说明 ( INTR、TRAP、RESET) 硬件中断由外部或内部的硬件输入端口 上的信号触发。 当多个硬件中断被同时触发时,处理器 按照中断的优先级别,首先响应高优先 级的中断。
Hold Mode
当 HM = 0,如果处理器没有执行外部部存储器 操作,就进入 HOLD 模式。 进入 HOLD 模式后,处理器内部的操作将继续执 行,而外部设备对外部总线的操作也可以执行。 系统操作具有最大的灵活性。 进入HOLD模式后,如果程序需要对外部总线进行 操作,进程就被中止。只有当HOLD信号变为无效 后,处理器才可以获得对外部总线的控制权,继 续执行程序。
I/O 空间
C54的DSP处理器提供了64K的外部 I/O 空 间,地址为 (0000h–FFFFh) 。 两条指令 PORTR 和 PORTW 是可以执行 I/O空间的数据读写。 I/O 空间主要用于外部的人机接口界面,如 键盘输入,指示灯输出等 ,也可以用于程 序或数据地址的扩展。
程序储存器的配置
MP/MC 和 OVLY 位表示使用了哪些片内的程序存储器。 系统复位,MP/MC管脚的当前状态逻辑电平写入PMST寄存 器的 MP/MC 位,指示处理器是否使用片内ROM。 MP/MC = 1,器件定义为微处理器模式,屏蔽了片内的 ROM ; MP/MC = 0,器件定义为微机模式,片内ROM 有效。 MP/MC 管脚只有在系统复位时是有效的。可以通过软件设 置PMST寄存器中的MP/MC位,屏蔽或使能片内ROM。
中断优先级别表:
中断分类:
所有C54x DSP 的中断分两类:
可屏蔽中断(maskable interrupts) 非屏蔽中断:(Nonmaskable interrupts — NMI)
可屏蔽中断 :
DSP 支持 16 个用户可屏蔽中断(SINT15– SINT0)。对于不同型号的DSP,只可能用到 16个中断中的一部分。 C541 使用了其中的 9 个中断: INT3 到 INT0 RINT0、XINT0、RINT1、和 XINT1 (串口中断) TINT (定时器中断)