DSP技术 第3章 TMS320C54x系列DSP硬件结构
DSPTMS320C54X系列芯片结构与基本特征精
TMS32QC54x 的 基本结构和特征TMS320C54X 系列有多种芯片型号,如表5.1,基本结构 相同,主要区别是片内存储器容量、片内外设、供电电压和封 装上3.1 TMS32OC54X 的基本结构4条程序/数据总线PB 、CB. DB 、EB8个辅助寄存器 2个寻•址单.元程序/数据ROA(l5〜0) D(l5 〜0)由CPU.存 储器和片内 外设组成。
V __________________程数拥RAM内部总线I 17XI7乘法器 40bitALU 40bi (加法器比较选抒中元 、丄舍入和饱和 (viterbi 加速器1 桶形移位器 指数编码器40bit 桶形 C16.31)寻址单元 4()bit || 4()bil ACCA ||ACCBIEEE 1149-1 标准测试/仿JXCPUMACALU3.2 CPU结构TMS320C54X CPU包扌舌:40位算术逻辑运算单元ALU、40位累加器A 和B、移位-16-30位的40位柿形移位器、乘法器/加法器单元、寻址单元和状态和控制寄存器。
1、算术逻辑单元ALU使用算术逻辑单元(ALU)和两个累加器(A、B)能够完成二进制的补码运算,同时,ALU还能够完成布尔运算。
算术逻辑单元的输入操作数可以來自:• 16位的立即数;•数据存储器中的16位字;•暂存器T中的16位字;•数据存储器屮读出的2个16位字;•累加器A或B中的40位数;•移位寄存器的输出。
•即町完成双16位运算(C16=l),也町进行40位运算。
2、比较选择存储单元CSSU通信领域常常用到维持比(Viterbi)算法,该算法需要完成大量的加法/比较/选择(ACS)运算。
CSSU单元支持各种Viterbi 算法,其中加法由ALU单元完成,将ST1中的C16置1,所有的双字指令都会变成双16位算术运算指令,这样ALU就可以在一个机器周期内完成两个16位数的加/减法运算,其结果分别存放在累加器的高16位和低16位屮。
TMS320C54x系列DSP概述
第一章TMS320C54x系列DSP概述1.1DSP芯片概述1.什么是DSP芯片2.DSP芯片的基本结构1.2TMS320C54x系列DSP的结构和特点1.2.1TMS320C54x系列DSP的概述1.2.2 TMS320C54x系列DSP的特点.1.2.3 TMS320C54x系列DSP的内部硬件结构1.3 总线结构1.4 CPU状态和控制寄存器1.4.1 状态寄存器ST0和ST11.4.2 处理器工作模式状态(PMST)寄存器1.5 算数逻辑单元(ALU)1.5.1 ALU的输入1.5.2 溢出处理1.5.3 进位位1.5.4 双16位模式1.6 累加器A和B1.6.1 保存累加器的内容1.6.2 累加器移位和循环操作1.6.3 饱和处理累加器内容1.6.4 专用指令1.7 桶式移位器1.8 乘法器/加法器单元1.8.1 乘法器的输入源1.8.2 乘法/加法(MAC)指令1.8.3 MAC和MAS乘法运算的饱和处理1.9 比较、选择和存储单元1.10 指数编码器第二章存储器和I/O空间操作TMS320C54x DSP存储器概述存储器空间程序存储器程序存储器的可配置性片内ROM的组织程序存储器地址映射和片内ROM内容片内ROM的代码内容和映射扩展程序存储器数据存储器数据存储器的可配置性片内RAM的组织存储器映射寄存器I/O空间及其访问第三章寻址方式和程序控制3.1立即寻址3.2绝对寻址3.2.1数据存储器地址(dmad)寻址3.2.2程序存储器地址(pmad)寻址3.2.3端口地址(PA)寻址3.2.4*(lk)寻址3.3累加器寻址3.4直接寻址3.4.1基于DP的直接寻址3.4.2基于SP的直接寻址3.5间接寻址3.5.1单操作数寻址3.5.2ARAU和地址产生操作3.5.3单操作数地址的修改1.增加/减少地址(MOD=0、1、2或3)2.偏移地址修改(MOD=12或13)3.变址地址修改(MOD=5或6)4.循环地址修改(MOD=8、9、10、11或14)5.位反向寻址(MOD=4或7)3.5.4双操作数寻址3.5.5修正(ARP)模式3.6存储器映射寄存器寻址3.7堆栈寻址3.8数据类型3.9产生程序存储器地址3.10程序计数器(PC)3.11程序控制3.11.1分支转移1. 无条件分支转移2. 条件分支转移3. 远分支转移3.11.2 调用1.无条件调用2.条件调用3.远调用3.11.3 返回1.无条件返回2.条件返回3.远返回3.11.4 条件操作1.使用多个条件2.条件执行(XC)指令3.条件存储指令3.11.5 重复单条指令3.11.6 重复一个指令快3.12 复位操作3.13 TMS320C54x DSP的中断系统3.13.1 TMS320C54x DSP中断系统概述1. 中断分类2. 处理中断的步骤3.13.2 中断标志寄存器(IFR)3.13.3 中断屏蔽存储器(IMR)3.13.4 接收中断请求3.13.5 应答中断3.13.6 执行中断服务程序(ISR)3.13.7 保存中断上下文3.13.8 中断等待时间3.13.9 中断操作流程3.13.10 重新映射中断向量地址3.13.11 中断和中断向量表3.14 节电模式3.14.1 IDLE1模式3.14.2 IDLE2模式3.14.3 IDLE3模式3.14.4 保持(Hold)模式3.14.5 其他节电性能第四章流水线4.1流水线操作4.1.1 流水线的分支转移指令1. 分支转移指令B2. 延时分支转移指令BD4.1.2 流水线中的调用指令1. 调用指令CALL和CALLD2. 中断指令INTR4.1.3 流水线中的返回指令4.1.4 流水线中的条件执行4.1.5 流水线中的条件调用和分支转移1. 条件调用2. 条件分支转移4.2 中断和流水线4.3 双访问存储器和流水线4.3.1 解决取指和读操作数之间的冲突4.3.2 解决写操作数和读双操作数之间的冲突4.3.3 解决写操作数、写操作数和读双操作数的冲突4.4 单访问存储器和流水线4.5 流水线等待4.5.1 访问存储器映射寄存器的推荐指令4.5.2 更新ARx、BK或SP-解决冲突第五章汇编程序设计应用软件开发流程和工具COFF文件概述COFF文件的基本单元-段汇编器对段的处理1.未初始化段2.初始化的段3.自定义段4.子段(Subsections)5.段程序计数器6.使用段伪指令的简单实例链接器对段的处理重新定位运行时重新定位加载程序COFF文件中的符号1.外部符号2.符号表汇编语言程序格式汇编程序格式1.标号区2.助记符指令域3.代数指令域4.注释汇编语言的数据格式1.常数2.符号表达式1.算术操作符2.表达式上溢和下溢3.有效定义的表达式4.条件表达式5.可重定位的符号和合法表达式5.3.4 内置函数5.3.5 加载值到扩展程序存储器5.4 汇编伪指令5.4.1 定义段的伪指令5.4.2 初始化常数的伪指令5.4.3 对准段程序计数器的伪指令5.4.4 格式化输出清单文件的伪指令5.4.5 引用其他文件的伪指令5.4.6 条件汇编伪指令5.4.7 汇编时符号伪指令5.4.8 混和伪指令5.4.9 常用伪指令及其语法格式5.5 程序汇编5.5.1 运行汇编程序5.5.2 条件汇编5.5.3 列表文件5.5.4 交叉引用清单5.6 程序链接5.6.1 链接器的调用5.6.2 链接器的选项5.6.3 链接器命令文件(.cmd文件)5.7 编写链接器命令文件(.cmd文件)5.7.1 MEMORY指令5.7.2 SECTIONS指令1. SECTINS指令的使用方法2. 为输出段指定地址5.7.3 MEMORY和SECTIONS指令的默认算法5.7.4 命令文件编写及链接实例1. 命令文件2. 链接文件5.8 宏定义和调用宏5.8.1 宏定义5.8.2 调用宏5.8.3 使用递归和嵌入宏第六章汇编语言指令指令集概述算数操作逻辑操作程序控制加载和存储指令6.2 指令集的符号和缩写第七章C/C++编译器概述7.1C/C++编译器命令解释程序7.2调用编译器解释命令程序7.3改变编译器的选项7.3.1常用的选项7.3.2指定文件名7.3.3修改编译器对文件名的解释7.3.4修改编译器对文件名扩展的解释和命名7.3.5指定目录7.3.6控制汇编器的选项7.4 使用环境变量改变编译器特性7.4.1 制定文件目录(C_DIR和C54X_C_DIR)7.4.2 设置默认编译器选项(C_OPTION 或C54_C_OPTION) 7.5 控制预处理器7.5.1 预定义的宏名7.5.2 #include 文件的搜索路径7.5.3 用-i选项改变#include 文件的搜索路径7.5.4 产生预处理的列表文件(-ppo选项)7.5.5 预处理后继续编译(-ppa选项)7.5.6 产生一个带注释的预处理列表文件(-ppc选项)7.5.7 产生一个具有行控制信息的预处理列表文件(-ppl选项)7.5.8 产生#include伪指令包含的文件列表(-ppi选项)7.6 使用直接插入函数展开7.6.1 直接插入内部操作数7.6.2 无保护的定义控制直接插入7.6.3 使用预处理器符号_INLINE的保护直接插入7.6.4 直接插入限制7.7 使用交互列表工具7.8 编译错误简介7.8.1 控制诊断消息7.8.2 如何使用诊断选项第八章优化C/C++代码8.1使用C编译优化器8.2使用-O3选项8.2.1 控制文件级优化(-O1n选项)8.2.2 创建优化信息文件(-On n选项)8.3 执行程序级优化8.3.1 控制程序级优化(-Op n选项)8.3.2 混和C/C++语言和汇编的优化考虑因素8.4 自动直接插入扩展(-Oi选项)8.5 使用交互列表工具8.6 访问优化代码中的别名变量8.7 调试优化得代码和优化类型8.7.1 调试优化的代码8.7.2 压缩优化的代码(-gp和-O选项)8.7.3 可执行的优化类型1. 基于重要程度的寄存器分配2. 消除别名的歧义3. 分支转移优化和控制流简化4. 数据流优化5. 表达式简化6. 函数的直接插入展开7. 循环归纳变量优化和强度降低8. 循环不变代码的移动9. 循环旋转10. 尾部合并11. 自动增量寻址12. 重复块13. 延迟、转移、调用和返回14. 算数重排、符号简化和常数合并第九章链接C/C++代码9.1调用链接器9.1.1 单步调用链接器9.1.2 作为编译的步骤调用链接器9.2 禁用链接器(-c编译器选项)9.3 控制链接过程9.3.1 链接运行时支持库9.3.2 运行时初始化9.3.3 全局对象构造器9.3.4 指定初始化类型9.3.5 指定段在存储器中的分配9.3.6 链接器命令文件实例第十章TMS320C54x C/C++语言10.1 TMS320C54x C/C++语言的特点10.1.1 TMS320C54x C语言特点1. 标志符和常数2. 数据类型3. 数据转换4. 表达式5. 声明6. 预处理器10.1.2 TMS320C54x C++语言特点10.2 数据类型10.3 关键词10.3.1 const关键词10.3.2 ioport关键词10.3.3 interrupt关键词10.3.4 near 和far关键词10.3.5 volatile关键词10.4 寄存器变量和全局寄存器变量10.4.1 寄存器变量10.4.2 全局寄存器变量1. 何时使用全局变量寄存器2. 避免破坏寄存器的值3. 禁止编译器使用AR1和AR6 10.5 Pragma伪指令1. CODE_SECTION指令2. DA TA_SECTION指令3. FUNC_CANNOT_INLINE指令4. FUNC_EXT_CALLED指令5. FUNC_IS_PURE指令6. FUNC_IS_SYSTEM指令7. FUNC_NEVER_RETURNS指令8. FUNC_NO_ASG指令9. FUNC_NO_IND_ASG指令10. IDENT指令11. INTERRUPT指令12. NO_INTERRUPT指令10.6 初始化静态和全局变量10.7 C/C++和汇编语言混和编程10.7.1 用/C++代码调用汇编语言模块10.7.2 在C语言中插入汇编语句10.7.3 在程序中访问汇编语言变量10.7.4 访问汇编语言的常数第十一章运行时环境和支持库11.1存储器模式11.1.1 段11.1.2 C系统堆栈11.1.3 分配.const到程序存储器11.1.4 动态存储器分配11.1.5 变量初始化11.1.6 为静态和全局变量分配存储器11.1.7 子段/结构体定位11.1.8 字符串常数11.2 寄存器规定11.2.1 状态寄存器的位11.2.2 寄存器变量11.3 函数结构和调用规定11.3.1 函数如何进行调用11.3.2 被调用函数如何响应11.3.3 访问变量和局部变量11.3.4 分配帧和使用32位存储器读指令11.4 中断处理11.4.1 C语言中中断的基本知识11.4.2 使用C/C++中断程序11.4.3保存中断入口点的上下文11.5 系统初始化11.5.1 变量自动初始化11.5.2 全局构造器11.5.3 初始化表11.5.4 运行时变量的自动初始化11.5.5 在加载时变量的初始化11.6 运行时支持库函数11.6.1 库11.6.2 C的I/O函数1. 低级I/O的执行2. 为C的I/O添加一个设备3. 低级函数11.6.3 头文件1. 诊断消息头文件(assert.h/cassert)2. 字符测试和转换(ctype.h cctype)3. 错误报告(error.h/cerrno)4. 扩展寻址函数(extaddr.h)5. 低级输入/输出函数(file.h)6. 限制头文件(float.h/cfloat和limits.h/climits)7. 浮点数学函数(math.h/cmath)8. 非局部转移(set jump.h/cset jump)9. 变量可变头文件(stdarg.h/cstdarg)10. 标准定义头文件(stddef.h/cstddef)11. 输入/输出函数(stdio.h/cstdio)12. 通用工具头文件(stdlib.h/cstdlib)13. 字符串函数头文件(string.h/cstring)14. 时间函数头文件(time.h/ctime)15. 异常事件的处理(exception和stdexcept)16. 动态存储器管理(new)17. 运行时类型信息(typeinfo)第十二章集成开发环境(CCS)12.1CCS2.0系统的安装和配置S2.0系统的安装2.系统配置3.运行CCS2.012.2建立工程文件1.建立一个新的工程项目文件2.向工程项目中添加文件12.3设置工程项目选项12.3.1 编译器环境参数设置1. 设置结果显示2. 具体选项的设置12.3.2 链接器环境参数设置1. 设置结果显示2. 具体选项的设置12.4 编译、链接和运行目标文件12.4.1 编译和链接12.4.2 仿真运行输出目标文件12.5 查看存储器信息12.6 查看寄存器信息1. 查看CPU寄存器2. 查看外设寄存器12.7 修改存储器和寄存器内容1. 修改存储器内容2. 修改寄存器内容3. 修改变量内容12.8 设置断点和探测点1. 设置断点2. 设置探测点12.9 图形显示12.9.1 定义探测点和输入数据12.9.2 将探测点与数据文件链接起来12.9.3 建立幅值-时间图形1. 建立图形2. 链接图形到数据源激活图形12.9.4 建立“眼(Eye)”图形1. 建立图形2. 链接图形到数据源激活图形12.9.5 建立“合成(Constellation)”图形1. 建立图形2. 链接图形到数据源激活图形第十三章应用程序开发实例13.1提高系统性能的几种方法13.1.1 有效存储器分配的建议1. 安排SARAM和DARAM的数据分配2. 对于随即访问的变量,使用直接寻址,并将他们分配到同一个128字的页面3. 为中断而保留专用的CPU资源13.1.2 存储器定位要求13.1.3 堆栈初始化13.1.4 重叠管理13.1.5 存储取之间的移动13.2 算术运算13.2.1 除法和求模运算13.2.2 正弦和余弦运算13.2.3 扩展精度运算13.2.4 浮点运算13.3 快速傅立叶变换(FFT)的DSP实现13.3.1 离散傅立叶变换(DFT)13.3.2 快速傅立叶变换(FFT)13.3.3 快速傅立叶变换的DSP实现1. 实数FFT运算序列的存储分配2. 基2实数FFT运算的算法3. 计算所求信号的功率13.4 FIR滤波器的DSP实现1. FIR滤波器实现方法2. FIR的DSP实现程序代码13.5 IIR滤波器的DSP实现1. 无限脉冲响应(IIR)滤波器结构2. 双二次IIR滤波器的实例程序13.6 自适应滤波的DSP实现13.7 CODEC应用程序的DSP实现1. 编写汇编程序2. 链接命令文件。
TMS320C54x硬件结构
第2章 TMS320C54x的硬件结构教学提示:TMS320C54x系列DSP是TI公司推出的16位定点数字信号处理器。
该系列产品包括所有以TMS320C54开头的产品,如早期的C541、C542、C543、C545、C546、C548、C549,以及近年来开发的新产品C5402、C5410和C5420等。
本章将以C5402为主,详细介绍其总线结构、中央处理单元、存储器和I/O空间以及中断系统。
片内外设与专用硬件电路将在第6章介绍。
教学要求:要求学生了解TMS320C54x的内部结构和特点,掌握总线结构、中央处理单元的组成,重点掌握存储器空间的分配及中断系统的工作原理。
2.1 TMS320C54x硬件结构框图2.1.1 TMS320C54x内部结构TMS320C54x DSP采用先进的修正哈佛结构和8总线结构,使处理器的性能大大提高。
其独立的程序和数据总线,提供了高度的并行操作,允许同时访问程序存储器和数据存储器。
例如,可以在一条指令中,同时执行3次读操作和1次写操作。
此外,还可以在数据总线与程序总线之间相互传送数据,从而使处理器具有在单个周期内同时执行算术运算、逻辑运算、移位操作、乘法累加运算及访问程序和数据存储器的强大功能。
TMS320C54x系列DSP芯片虽然产品很多,但其体系结构基本上是相同的,特别是核心CPU部分,各个型号间的差别主要是片内存储器和片内外设的配置。
图 2.1给出了TMS320C54x DSP的典型内部硬件组成框图,C54x的硬件结构基本上可分为3大块:(1) CPU 包括算术逻辑运算单元(ALU)、乘法器、累加器、移位寄存器、各种专门用途的寄存器、地址生成器及内部总线。
(2) 存储器系统包括片内的程序ROM、片内单访问的数据RAM和双访问的数据RAM、外接存储器接口。
(3) 片内外设与专用硬件电路包括片内的定时器、各种类型的串口、主机接口、片内的锁相环(PLL)时钟发生器及各种控制电路。
第3章TMS320C54XDSP寻址方式09.10
ARx包含了数据存储器地址 访问后,ARx以循环寻址方式减1 ARx包含了数据存储器地址 访问后,ARx以循环寻址方式减去 AR0 ARx包含了数据存储器地址 访问后,ARx以循环寻址方式加1 ARx包含了数据存储器地址 访问后,ARx以循环寻址方式加上 AR0 ARx加上16位长偏移量作为数据 存储器地址 访问后,ARx中内容不变 ARx加上16位长偏移量作为数据 存储器地址 访问后,ARx中内容加上16位长 偏移量 ARx以循环寻址方式加上16位长 偏移量作为数据存储器地址, 同时修改ARx中内容 以无符号16位长偏移量作为数据 存储器地址 (绝对地址)
19
单操作数 3 间接寻址 y0 a i x i a0 x0 a1 x1 a 2 x 2 a3 x3 编程举例: i 0 .mmregs .bss x, 4 .word 1, 2, 3, 4 STM #a, AR1 STM #x, AR2 LD #0, A LD *AR1+,T MAC *AR2+,A LD *AR1+,T MAC *AR2+,A LD *AR1+,T MAC *AR2+,A LD *AR1,T MAC *AR2,A …..
第一条指令表示将数据存储器中以DATA符号为地址单元中 的数据传送到由辅助寄存器ARl所指向的数据存储单元中去。 DATA代表数据存储单元的地址dmad。 第二条指令表示将程序存储器中以TABLE符号为地址单元中 的数据传送到由辅助寄存器AR2所指向的数据存储单元中去。 TABLE代表程序存储单元的地址pmad。 第三条指令表示将地址为0F2F0H的端口中的数据传送到由 辅助寄存器AR5所指向的数据存储单元中去。
17序号间址类型功能说明arxaddrarxarx包含了数据存储器地址arxaddrarxarxarx1arx包含了数据存储器地址访问后arx中地址减1arxaddrarxarxarx1arx包含了数据存储器地址访问后arx中地址加1arxaddrarx1arxarx1寻址前arx中地址加1arx0baddrarxarxbarxar0arx包含了数据存储器地址访问后arx以位倒序方式减去ar0arx0addrarxarxarxar0arx包含了数据存储器地址访问后arx中减去ar0arx0addrarxarxarxar0arx包含了数据存储器地址访问后arx中加上ar0arx0baddrarxarxbarxar0arx包含了数据存储器地址访问后arx以位倒序方式加上ar0号表示间址32位字时增减为2寻址前变址只用于写操作指令18arxaddrarxarxcircarx1arx包含了数据存储器地址访问后arx以循环寻址方式减1arx0addrarxarxcircarxar0arx包含了数据存储器地址访问后arx以循环寻址方式减去ar010arxaddrarxarxcircarx1arx包含了数据存储器地址访问后arx以循环寻址方式加111arx0addrarxarxcircarxar0arx包含了数据存储器地址访问后arx以循环寻址方式加上ar012arxlkaddrarxlkarxarxarx加上16位长偏移量作为数据存储器地址访问后arx中内容不变13arxlkaddrarxlkarxarxlkarx加上16位长偏移量作为数据存储器地址访问后arx中内容加上16位长偏移量14arxlkaddrcircarxlkarxcircarxlkarx以循环寻址方式加上16位长偏移量作为数据存储器地址同时修改arx中内容15lkaddrlk以无符号16位长偏移量作为数据存储器地址绝对地址lk不允许mmr寻址19间接寻址时
DSP应用技术教程 部分习题答案
《TMS320C54x DSP应用技术教程》部分习题答案注意:未提供的参考答案习题(因考试为开卷形式,部分在课堂讲过,部分需要自行思考归纳总结或编程),请参考PPT和书上示例,自行解答。
第1章绪论1.简述Digital Signal Processing 和Digital Signal Processor 之间的区别与联系。
答:前者指数字信号处理的理论和方法,后者则指用于数字信号处理的可编程微处理器,简称数字信号处理器。
数字信号处理器不仅具有可编程性,而且其数字运算的速度远远超过通用微处理器,是一种适合于数字信号处理的高性能微处理器。
数字信号处理器已成为数字信号处理技术和实际应用之间的桥梁,并进一步促进了数字信号处理技术的发展,也极大地拓展了数字信号处理技术的应用领域。
2.什么是DSP技术?答:DSP技术是指使用通用DSP处理器或基于DSP核的专用器件,来实现数字信号处理的方法和技术,完成有关的任务。
5.数字信号处理的实现方法有哪些?答:参见P3-4 1.1.3节。
6.DSP的结构特点有哪些?答:哈佛结构和改进的哈佛结构、多总线结构、流水线技术、多处理单元、特殊的DSP指令、指令周期短、运算精度高、硬件配置强。
7.什么是哈佛结构和冯洛伊曼结构?它们有什么区别?答:参见P5-6 1.2.2节。
8.什么是哈佛结构和冯.诺依曼结构?它们有什么区别?答:DSP处理器将程序代码和数据的存储空间分开,各空间有自己独立的地址总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,这就是哈佛结构。
以奔腾为代表的通用微处理器,其程序代码和数据共用一个公共的存储空间和单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的,这样的结构称为冯·诺伊曼结构。
采用哈佛结构,可同时取指令和取操作数,并行地进行指令和数据的处理,从而可以大大地提高运算的速度,非常适合于实时的数字信号处理。
而冯·诺伊曼结构当进行高速运算时,取指令和取操作数是分时操作的,这样很容易造成数据传输通道的瓶颈现象,其工作速度较慢。
DSP技术 第3章 TMS320C54x系列DSP硬件结构
3.处理器工作方式状态寄存器PMST
主要设定和控制处理器的工作方式和存储器的配置,反映 处理器的工作状态。PMST寄存器内容可由存储器映射寄存器 指令装载,如STM指令。
15~7 6
5
4
3
2
1
0
IPTR MP/MC OVLY AVIS DROM CLKOFF SMUL SST
中 断 向 量 指 针
一、算术逻辑运算单元
一、算术逻辑运算单元
ALU的两个输入操作数可以来自: ➢ 16位的立即数 ➢ 数据存储器中的16位字 ➢ 暂存器T中的16位字 ➢ 数据存储器中读出的2个16位字 ➢ 累加器A或B中的40位数 ➢ 移位寄存器的输出。 ALU通过指令识别输入数据。
ALU的40位输出结果送入累加器A或B。
3.1 TMS320C54x DSP的特点与基本结构
TMS320C54x(简称’C54x)是TI公司1996年推出 的新一代DSP,是为了实现低功耗、高速实时信号 处理而专门设计的数字信号处理器,采用改进的哈 佛结构,具有高度的操作灵活性和运行速度,适应 于远程通信等实时嵌入式应用的需要,现已广泛地 应用于无线电通信系统中。
1.状态寄存器0(ST0) 主要反映处理器的寻址要求和计算机的运行状态。
ST0的结构:
15 —13 12 11
10
9
8 —— 0
ST0: ARP TC C OVA OVB
DP
DTCOPAC:V:RA:用用1P进数6/:B测来位来用位据:用辅辅试保数与来标存累用来助助/存据指保控志储加来选寄寄存A令存制位器器反L择存存储中AU标。页A映L使器加器器提志/指UBAA用减指的供测。的/针RB单运针地的试0是溢。~操算。址7操否出A位作时R。作产标地7数所的。生志址间产结溢。结接生果出合寻的。形址进成时/借1的个位。
DSP原理及应用TMS320C54x片内外设及应用实例
应用领域拓展
随着数字信号处理技术的不断发展,DSP的应用领 域也在不断拓展,需要不断探索新的应用场景和市 场需求。
人才培养和生态系统建设
为了推动DSP技术的发展和应用,需要加强 人才培养和生态系统建设,建立完善的开发 环境和工具链。
06
参考文献
参考文献
1
[1] 张雄伟, 杨吉斌. 数字信号处理——原理、算 法与实现[M]. 北京: 清华大学出版社, 2011.
应用场景
在音频处理、信号测量、控制系统 等领域广泛应用。
存储器和I/O引脚
存储器和I/O引脚功能
01
TMS320C54x芯片具有外部存储器和多个I/O引脚,用于扩展外
部存储空间和连接外设。
工作原理
02
通过读写外部存储器实现数据存储,I/O引脚用于输入输出电平
信号。
应用场景
03
在数据存储、外设控制、信号采集等方面具有广泛应用。
FFT在TMS320C54x上的实现
TMS320C54x的硬件结构支持FFT运算,其乘法器和累加器运算单元可以高效地完成 FFT计算。在实现FFT时,需要注意数据的位序和存储方式。
FFT应用实例
通过FFT算法,可以分析语音、图像、雷达等信号的频谱成分,从而实现信号的频域分 析、滤波、调制解调等功能。
TMS320C54x的优势与局限性
• 丰富的外设接口:TMS320C54x系列DSP具有多种外设接口, 如串行通信接口、并行输入输出接口等,方便与外部设备进行 数据交换。
TMS320C54x的优势与局限性
价格较高
由于TMS320C54x系列DSP采用高性能的制程技术和复杂的内 部结构,导致其价格较高,增加了应用成本。
绪论《TMS320C54XDSP结构、原理及应用》
如JPEG、MC54xDSP可以用于实现各种图像识别算法,如人脸识别、手势
识别等。
在自动控制系统中的应用
控制系统建模与仿真
利用TMS320C54xDSP的高速运算能力,可以实现各 种控制系统的建模与仿真。
控制系统分析与优化
利用TMS320C54xDSP的高速运算能力,可以对控制 系统进行分析和优化,提高控制系统的性能。
音频处理
音频压缩、音频分析、音频合 成等。
控制与自动化
电机控制、智能仪表、自动控 制系统等。
TMS320C54xDSP的主要特点
高性能
采用哈佛结构,流水线作业,运算速度快。
低功耗
采用低功耗设计,适合于电池供电和便携式 设备。
定点运算
采用定点运算,无需浮点运算器,降低了成 本和功耗。
可扩展性
具有可扩展的外部存储器和I/O接口,方便 系统集成和升级。
存储器结构
1
TMS320C54xDSP具有内部和外部存储器两种类 型的存储器结构。
2
内部存储器包括程序存储器和数据存储器,用于 存储程序代码和临时数据。
3
外部存储器通过外部总线接口与DSP相连,提供 更大的存储空间。
输入/输出(I/O)接口
01
I/O接口是TMS320C54xDSP与外部设备进行通信的桥梁。
02 TMS320C54xDSP的结 构
中央处理单元(CPU)
01
CPU是TMS320C54xDSP的核心部分,负责执行指令和控制数 据流。
02
它包括算术逻辑单元(ALU)、累加器、程序计数器、指令寄
存器等组件。
CPU通过指令集架构(ISA)与外部组件进行通信,以执行各种
03
TMS320C54x系列DSP的CPU与外设——第3章存储器
TMS320C54x系列DSP的CPU与外设——第3章存储器第3章存储器本章介绍了TMS320C54x DSP存储器的构成和操作。
⼀般来说,C54x器件共有192K 16位字的存储窨,这个空间分成3个专⽤的部分:64K字程序、64K字数据和64K字I/O⼝。
在某些C54x器件中,存储器结构已经通过重叠和分页的⽅法加以改变,这样就增加了存储器空间的容量。
C54x体系结构上的并⾏特点和⽚内RAM的双存取能⼒使C54x可以在任意给定的机器周期内同时进⾏4个存储器操作:⼀条指令的读取操作、两个操作数读操作以及⼀个操作数写操作。
在⽚内存储器中操作有如下⼏个优点:Higher performance because no wait states are requiredLower cost than external memoryLower power than external memoryThe main advantage of operating from off-chip memory is the ability to access a larger memory space.3.1 存储器空间C54x DSP的存储器划分成3种独⽴可选的空间:程序、数据和I/O。
这些空间中的RAM、ROM、EPROM、EEPROM或者存储器映射的外设可以位于⽚内或⽚外。
程序存储器中包含要执⾏的指令和执⾏指令时所需的表,数据存储器空间存储指令所需的数据,I/O存储空间连接外部的存储器映射外设,也可作外部数据存储空间。
按芯⽚各类的不同,C54x的⽚内存储器有这样⼏种类型:双存取RAM(DARAM)、单存取(SARAM)、双向共享RAM和ROM。
RAM总是映射到数据空间,但也可以映射到程序空间。
ROM可以被激活并映射到程序空间,也可部分映射到数据空间。
在CPU状态寄存器中有3位影响存储器的结构。
这3位产⽣的影响因器件不同⽽不同。
TMS320C54x数字信号处理器硬件结构
在片仿真接口 ● 具有符合IEEEll49.1标准的在片仿真接口(JTAG)。 速度 ● 单周期定点指令的执行时间为25/20/15/15/10-ns(40 MIPS/50 MIPS/66 MIPS/80 MIPS/100
MIPS)。
图1 TMS320C54x DSP的内部硬件组成框图1
返回本节
保留 (DROM=1) 外部(DROM=0)
FFFFH
MP/ MC=0 (微型计算机模式)
图2 TMS320VC5402存储器分配图
0 0000H
Page 0 64K
1 0000H
1 3FFFH 1 4000H
Page1: 低16K
外部
Page1: 高48K
外部
2 0000H
2 3FFFH 2 4000H
返回首页
3 TMS320C54x的存储器分配
● 3.1 存储器空间 ● 3.2 程序存储器 ● 3.3 数据存储器 ● 3.4 I/O存储器
返回首页
3.1 存储器空间
● TMS320C54x存储器由3个独立的可选择空间组成:程序空间、数据空间和I/O空间。 ● 程序存储器空间包括程序指令和程序中所需的常数表格;数据存储器空间用于存储需要程序处理
在片外围电路(如图1所示) ● 软件可编程等待状态发生器。 ● 可编程分区转换逻辑电路。 ● 带有内部振荡器。 ● 外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。 ● 数据总线具有总线保持器特性。 ● 可编程定时器。并行主机接口(HPl)。
电源 ● 可用IDLEl、IDLE2和IDLE3指令控制功耗,以工作在省电方式。 ● 可以控制关断CLKOUT输出信号。
图1 TMS320C54x DSP的内部硬件组成框图2
TMS320C54X的硬件结构
总线
功能: 运算前数据定标 A或B进行算术或逻辑移位
A或B归一化处理
A或B—>EB之前定标
移位值三种情况(全部用二进制补
码表示):
立即数(-16—15)
ST1的ASM(5位,-16—15)
TS(6位,-16—31)
例2.4.2:
2.4.4 乘累加单元
SP(CPL=1)或DP(CPL=0)
XF:控制XF通用外部I/O引脚输出状态,
可对XF进行复位和置位
INTM:置1,关闭所有可屏蔽中断 OVM:累加器是否溢出保护,置1(要
保护)。
SXM:符号位扩展方式控制位,控制进
行无符号数运算还是带符号数运算。
C16:双精度/双16位运算方式,
举例
B, A 若A=FF FF8F F302H,
举例:NORM
B =21 0A0A 0A0AH,T= FFF9H
思考:执行后A、B及T的值?
A=00
4214 1414H B =21 0A0A 0A0AH T= FFF9H
2.4.3 40位桶形移位器
图2.4.3
输入: 输出:
ALU
2.4.7 CPU状态和控制寄存器
‘C54x有三个16位的状态和控制寄
存器
状态寄存器ST0 状态寄存器ST1 处理器工作方式状态寄存器PMST
ST0、ST1中包含各种工作条件和
工作方式的状态
PMST中包含存储器的设置状态和
其他控制信息
CPU状态和控制寄存器
ST0 ST1
PMST
数据空间:64K I/O空间:64K
片内、片外程序空间统一编址! 片内、片外数据空间统一编址!
第3章 德州仪器公司的系列DSP
C2000系列的优势:通信接口
C2000微处理器包含各种可连接至系统组件的通 信接口。
C2000系列的优势:MCU 32位架构
C28X微处理器系列经过精心优化,可提供业界最 高性能的控制解决方案,并能最大限度地加速产 品上市进程。 (1)浮点与定点微处理器; (2)处理能力高达300MIPS或600MFLOPS (3)混合的16位机32位指令集 (4)同类最高的编译器效率 (5)单周期32*32位的乘法操作 (6)整个C2000 MCU系列均实现软件兼容
0 FFFFH XPC=0
1FFFFH XPC=1
2 FFFFH XPC=2
... F FFFFH XPC=15
图2-3 C5402扩展程序存储器图
程序存储器
通过MP/MC*和OVLY位的设置,可以实现对片内 存储器(ROM、RAM)的配置,即哪些片内存 储器映象在程序存储器空间。 器件复位时,复位、中断和陷阱中断的向量映象 在地址FF80H开始的程序存储器空间。然而,复 位后这些向量可以被重新映象在程序存储器空间 任何128字页的开始。这样,可以把向量表移出 引导ROM,并重新配置其地址。
程序空间: 页0 0000H 保留(OVLY=1 ) 外部(OVLY=0) 007FH 0080H 片内DRAM: 16K (OVLY=1) 外部(OVLY=0) 007FH 0080H 0000H
程序空间: 页0 0000H 保留(OVLY=1 ) 外部(OVLY=0) 片内DRAM: 16K (OVLY=1) 外部(OVLY=0) 片外 005FH 0060H 007FH 0080H 3 FFFH 4000H
表2-1 存储器映象寄存器
名称 IMR IFR 地址 0 1 说明 中断屏蔽寄存器 中断标志寄存器
DSP教程3.TMS320C55x的硬件结构
1
第三章:TMS320C55x的硬件结构
目标:
本章旨在向学员介绍 TMS320C55x的硬件结构: 1) TMS320C55x的总体结构 2)C55x的CPU结构 3)CPU寄存器 4)存储空间和I/O映射 5)堆栈操作 6)中断和复位操作
2
冯诺依曼和哈佛结构
程序和数据存储器
RAM(KB)
32 64 64 128 128 256 320
6
3.1.4 C55x外设配置
表3-2 C55x片内外设配置
外设或存储器
5501 5502 5503 5506
5507
5509 5510
模数转换器(ADC)
2/4
2/4
时钟发生器
APLL APLL DPLL D&APLL D&APLL DPLL DPLL
I/O空间的字地址为16位,能访问64K字地址。当CPU读写 I/O空间时,在16位地址前补0来扩展成24位地址(地址总线为 24位)。
表3-1 C55x片内存储器配置
外设或存储器 5501 5502 5503 5506 5507 5509 5510
ROM(KB) 32 32 64 64 64 64 32
1
1
1
实时时钟(RTC)
1
1
1
1
通用定时器
2
2
2
2
2
2
2
看门狗定时器
1
1
1
1
1
1
通用异步接收器/转换器 (UARTb)
1
1
通用串行总线(USB)模块
1
1
1
7
3.1.4 C55x外设配置
第3章C54x的寻址方式
DP地址的范围是从0~511(29-1),将存储器分成 512页。
7位dmad范围是从0~127,每页有128个可以访 问的单元。
以DP为基准的直接寻址是由DP值确定是512页中 的哪一页,由dmad确定是该页中的哪一个单元。
SP可以指向存储器中的任意一个地址。dmad可
以指向当前页中具体的单元,从而允许访问存储器
A 立即数的数值形式:
程序存储
① 短立即数。3、5、8、9位,单字指器令;
② 长立即数。16位,双字指令。 操作码 特点:指令中含有一个固定的立即数立,即运数行速度 较快,但需占用程序存储空间,并且数值不F1能80改变。
用途:用于表示常数或对寄存器初始化。
2021/4/22
DSP技术及应用
立即数寻址
❖ AR0-AR7的内容相当灵活,可以装入立即数, 加上立即数,减去立即数,也可以从数据存 储器中装入地址,还可以作以下的变址寻址
2021/4/22
DSP技术及应用
2021/4/22
DSP技术及应用
2021/4/22
DSP技术及应用
❖ 将该AR的内容加1或减1,然后再寻址(循环 常用)。
❖ 将该AR的内容加或减AR0的内容,然后再寻 址
❖ 将该AR的内容逆向进位加或减AR0的内容, 然后再寻址
2021/4/22
DSP技术及应用
寻址方式:间接寻址
ADD *,8,A ;将当前辅助寄存 器所指的地址里的数据,左移8-bit 后加给AccA
存储器映像 :用来改变映像寄存器,但不影响DP或SP的值 寄存器寻址 堆栈寻址 :用来管理系统堆栈中的操作
2021/4/22
DSP技术及应用
第3章 TMS320C54x的指令系 统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TMS320C54x CPU主要包括:一个40位的算术逻辑单 元(ALU)、两个40位的累加器、一个桶形移位乘累加 器、16位的暂存器(TREG)、16位的状态转移寄存器 (TRN)、比较/选择/存储单元(CSSU)和指数编码器。
.
1
3.1 TMS320C54x DSP的特点与基本结构
TMS320C54x(简称’C54x)是TI公司1996年推出 的新一代DSP,是为了实现低功耗、高速实时信号 处理而专门设计的数字信号处理器,采用改进的哈 佛结构,具有高度的操作灵活性和运行速度,适应 于远程通信等实时嵌入式应用的需要,现已广泛地 应用于无线电通信系统中。
.
一、算术逻辑运算单元
.
ห้องสมุดไป่ตู้ 一、算术逻辑运算单元
ALU的两个输入操作数可以来自: ➢ 16位的立即数 ➢ 数据存储器中的16位字 ➢ 暂存器T中的16位字 ➢ 数据存储器中读出的2个16位字 ➢ 累加器A或B中的40位数 ➢ 移位寄存器的输出。 ALU通过指令识别输入数据。
ALU的40位输出结果送入累加器A或B。
2020/6/12
.
9
4.执行指令速度快
TMS320C54x DSP执行单周期定点指令时间可以为 25/20/15/12.5/10ns,对应每秒指令数分别为 40/66/100MIPS(百万条/秒)。
2020/6/12
.
10
5.电源可处于低功耗状态,可在3.3V和2.7V电压下工 作,三个低功耗方式(IDLE1、IDLE2、IDLE3)可 节省功耗,以便DSP更适合无线移动设备。
.
TMS320C54x的硬件结构图
系统 控制 接口
系统控制
PAB PB CAB CB DAB DB EAB EB
乘法 累加器
CPU
2020/6/12
PAGEN 程序地址生成器
DAGEN 数据地址生成器
程序存储器 数据存储器
串行口 并行口 定时器 计数器
中断
算术/逻辑 运算单元
比较器
.
桶形 移位器
外部 存储器
6.智能外设可以很方便地实现与外部处理器的数据通 信和对芯片的仿真与测试。
2020/6/12
.
11
3.2 TMS320C54x DSP的总线结构
TMS320C54x片内有8条16位总线,即4条程序/数 据总线和4条地址总线。PB是程序总线,CB、DB和 EB是数据总线,地址总线分别是:PAB、CAB、 DAB和EAB。
➢ AG、AH、AL、BG、BH和BL都是存储器映像寄存器(在存 储空间中占有地址),由特定的指令将其内容放到16位 数据存储器中,并从数据存储器中读出或写入32位累加 器值。
2020/6/12
.
8
3.专业的指令集可帮助快速实现复杂算法和优化编程 (1)单指令重复和块指令重复操作。 (2)块存储移动指令,用于程序和数据管理。 (3)32位长整数操作指令。 (4)同时读入2个或3个操作数的指令。 (5)能并行存储和加载的算术指令。 (6)条件存储指令。 (7)快速中断返回指令。
接口
外部 设备 接口
5
TMS320C54X DSP的主要特点
1.CPU可实现高效的数据存储能力和数据处理能力。 CPU是DSP芯片中的核心部分,是用来实现数据
信号处理运算和高速控制功能的部件。CPU的内部 包括:
(1)采用先进的多总线结构,通过1条程序总线、3条数 据总线和4条地址总线来实现。可同时访问程序区 和数据区,还可进行双操作数读操作,32位的双字 读和并行的单字数据读/写能力。
第3章 TMS320C54x系列DSP硬件结构
3.1 TMS320C54x DSP的特点与基本结构 3.2 TMS320C54x DSP的总线结构 3.3 TMS320C54x DSP的CPU结构 3.4 TMS320C54x DSP的存储器结构 3.5 TMS320C54x DSP的片内外设
2020/6/12
2020/6/12
.
2
➢ 技术指标 对于同一系列的DSP器件,各型号器件所采用的CPU是 基本相同的。TMS320C54x系列芯片中各型号器件内部 CPU结构完全相同,只是在时钟频率、工作电压、片内 存储器容量大小、外围设备和接口电路的设计上有所不 同。
.
表3.1 TMS320C54x系列DSP芯片的技术特征
(2)40位算术逻辑运算单元ALU,包括1个40位桶形移 位寄存器和2个独立的40位累加器A、B。
2020/6/12
.
6
(3)17×17位并行乘法器,与40位专用加法器相连,可 用于进行非流水线的单周期乘法-累加运算。
(4)比较、选择、存储单元(CSSU),可用于Viterbi 译码器的加法-比较-选择运算。
.
二、累加器
➢ 累加器A和B可作为ALU和乘法器/加法器单元的目的寄存 器,累加器也能输出数据到ALU或乘法器/加法器中。累 加器可分为三部分:保护位(或称前导位)、高位字和 低位字。
➢ 累加器A和B的唯一区别是累加器A 的32~16位能被用作 乘/加单元中乘法器的输入,而累加器B则不能。
➢ 累加器A和累加器B的保护位用作算术运算时的空白头, 目的是防止迭代运算中的溢出。
(5)指数编码器,是一个支持单周期指令EXP的专用硬件。 可以在一个周期内计算40位累加器数值的指数。
(6)集成Viterbi加速器,专门用于通信中 Viterbi算法。
(7)两个地址生成器,包括8个辅助寄存器和2个辅助寄 存器算术运算单元(ARAU)。
2020/6/12
.
7
2.存储器的组成 (1)192K*16位的可选择空间(64K字程序存储空间、 64K的数据存储空间和64K的I/O空间) 。 (2)片内ROM,可配置为程序/数据存储器 (3)片内双寻址RAM(DARAM) (4)部分54x含片内单寻址RAM(SARAM)
➢ 程序总线PB
➢ 3条数据总线CB、DB和EB
➢ 4条地址总线PAB、CAB、DAB和EAB
2020/6/12
.
12
表3.2 读/写访问时的总线占用说明
.
3.3 TMS320C54x的CPU结构
CPU决定了DSP的运算速度和程序效率,为了能在一 个指令周期内完成高速的算术运算,TMS320C54x CPU采 用了流水线指令执行结构和相应的并行结构设计。