收藏 分销(赏)

DSP技术教案-重庆科创学院.doc

上传人:s4****5z 文档编号:8691029 上传时间:2025-02-26 格式:DOC 页数:61 大小:1.53MB
下载 相关 举报
DSP技术教案-重庆科创学院.doc_第1页
第1页 / 共61页
DSP技术教案-重庆科创学院.doc_第2页
第2页 / 共61页
点击查看更多>>
资源描述
重庆科创学院教师授课 教案 课程名称 DSP技术 课程性质 专业课 授课对象 授课时数 教学日期 重庆科创职业学院 机电工程学院电信教研室 年 月 日 第1章 绪 论 Ⅰ.教学目的: 学习DSP技术的内涵、发展的两个领域及实现方法,学习可编程DSP芯片的结构特点、分类及其应用情况。, Ⅱ.教学要求: ① 了解DSP技术的内涵, DSP芯片的发展及趋势、DSP的应用领域; ② 掌握DSP芯片的分类、结构特点; ③ 熟悉DSP应用系统设计过程。 Ⅲ.教学重点: ① DSP技术的内涵 ② DSP的应用领域 ③ DSP芯片的分类、结构特点 Ⅳ.教学难点: ① DSP芯片的结构 ②DSP应用系统设计过程 Ⅴ.教学方法: 课堂讲授 Ⅵ.教学内容: 1.1 概 述 1.1.1 DSP与DSP技术 Digital Signal Processing——指数字信号处理的理论和方法。 Digital Signal Processor(DSP)——指用于进行数字信号处理的可编程微处理器。 Digital Signal Process ——指DSP技术,即采用通用的或专用的DSP处理器完成数字信号处理的方法与技术。 1.1.2 DSP技术发展的两个领域 1.数字信号处理的理论和方法的发展 数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。 2.DSP处理器性能的提高 DSP技术的发展在上述两方面是互相促进的,理论和算法的研究推动了应用,而应用的需求又促进了理论的发展。 1.1.3 数字信号处理的实现方法 (1) 在通用型计算机上用软件实现。 (2) 在通用型计算机系统中加上专用的加速处理器实现。 (3) 在通用型单片机(如MCS-51、MCS-96系列等)上实现。 (4) 用通用型可编程DSP芯片实现。 (5) 用专用型DSP芯片实现。 本课程主要讨论数字信号处理的软硬件实现方法,即利用数字信号处理器(DSP芯片),通过配置硬件和编程,实现所要求的数字信号处理任务。 1.1.4 DSP系统的特点 (1) 精度高、抗干扰能力强,稳定性好。 (2) 编程方便、易于实现复杂算法(含自适应算法)。 (3) 可程控。 (4) 接口简单、方便。 (5) 集成方便。 1.2 可编程DSP芯片 1.2.1 DSP芯片的结构特点 1. 改进的哈佛结构 为了提高信号处理的效率,在哈佛结构的基础上,又加以改进,使得程序代码和数据存储空间之间也可以进行数据的传送,称为改进的哈佛结构。 2. 多总线结构 许多DSP芯片内部都采用多总线结构,这样可以保证在一个机器周期内可以多次访问程序空间和数据空间。对DSP来说,内部总线是十分重要的资源,总线越多,可以完成的功能就越复杂。 3. 流水线技术(pipeline) DSP处理器所采用的将程序存储空间和数据存储空间的地址与数据总线分开的哈佛结构,为采用流水线技术提供了很大的方便。 4. 多处理单元 DSP内部一般都包括多个处理单元,它们可以在一个指令周期内同时进行运算。DSP的这种多处理单元结构,特别适用于大量乘加操作的矩阵运算、滤波、FFT、Viterbi译码等。 5. 特殊的DSP指令 为了更好地满足数字信号处理应用的需要,在DSP的指令系统中,设计了一些特殊的DSP指令。如, FIRS和LMS指令,专门用于系数对称的FIR滤波器和LMS算法。 6. 指令周期短 随着集成电路工艺的发展,DSP广泛采用亚微米CMOS制造工艺,其运行速度越来越快。TMS320C54其运行速度可达100MIPS。TMS320C6203的时钟为300MHz,运行速度达到2400MIPS。 7. 运算精度高 早期DSP的字长为8位,后来逐步提高到16位、24位、32位。为防止运算过程中溢出,有的累加器达到40位。 8. 丰富的外设 新一代DSP片内具有主机接口(HPI),直接存储器访问控制器(DMAC),外部存储器扩展口,串行通信口,中断处理器,定时器,锁相环时钟产生器以及实现在片仿真符合IEEE 1149.1标准的测绘访问口,更易于完成系统设计。 9. 功耗低 许多DSP芯片都可以工作在省电方式,使系统功耗降低。DSP芯片只有0.1W,可用电池供电。 DSP是一种特殊的微处理器,不仅具有可编程性,而且其实时运行速度远远超过通用微处理器。其特殊的内部结构、强大的信息处理能力及较高的运行速度,是DSP最重要的特点。DSP芯片的上述特点,使其在各个领域得到越来越广泛的应用。 1.2.2 DSP芯片的分类 1. 按数据格式分类 定点DSP:在定点DSP中,数据采用定点方式表示。它有两种基本表示方法:整数表示方法和小数表示方法。数据以定点格式工作的DSP芯片称为定点DSP芯片,该芯片简单、成本较低。 浮点DSP:在浮点DSP中,浮点数在运算中,表示数的范围由于其指数可自动调节,因此可避免数的规格化和溢出等问题。但浮点DSP一般比定点DSP复杂,成本也较高。 2. 按用途分类 通用型DSP芯片:一般指可以用指令编程的DSP芯片,适合普通的DSP应用。 专用型DSP芯片:是为特定的DSP运算而设计,适合特殊的运算,如数字滤波、卷积和FFT等。 1.2.3 DSP芯片的发展及趋势 1. DSP芯片的发展历程 第一代:(1978年)世界上第一片单片DSP芯片AMI公司的S2811。 第二代:(20世纪80年代中期)基于CMOS工艺的DSP应运而生,其存储容量和运算速度都得到成倍提高,成为语音处理及图像处理技术的基础。 第三代:(20世纪80年代后期) DSP芯片运算速度进一步提高,应用范围逐步扩大到通信和计算机领域。 第四代、第五代:(20世纪90年代)相继出现,第五代产品与第四代相比,系统集成度更高,将DSP芯核及外围元件综合集成在单一芯片上。这种集成度极高的DSP芯片不仅在通信、计算机领域大显身手,而且逐渐渗透到人们的日常消费领域。 TI公司自1982年成功推出第一代DSP芯片TMS32010及其系列产品后,现已推出目前速度最快的第六代DSP芯片TMS320C62x/C67x。 2. 国内DSP的发展 我国DSP产品主要来自海外。国内引入的主流产品有TMS320F2407(电机控制)、TMS320C5409(信息处理)、TMS320C6201(图像处理)等。 对DSP的发展,与国外相比,我国在硬件、软件上还有很大的差距,还有很长一段路要走。 1.2.4 DSP芯片的应用 常见的典型应用如下: (1) 通用数字信号处理:数字滤波、卷积、相关、FFT、自适应滤波、谱分析等。 (2) 语音识别与处理:语音识别、合成、矢量编码、语音鉴别和语音信箱等。 (3) 图形/图像处理:二维/三维图形变换处理、模式识别、图像鉴别、电子地图等。 (4) 仪器仪表:暂态分析、函数发生、波形产生、石油/地质勘探、地震预测与处理等。 (5) 自动控制:磁盘/光盘伺服控制、机器人控制、发动机控制和引擎控制等。 (6) 医学工程:助听器、X射线扫描、心电图/脑电图、病员监护和超声设备等。 (7) 家用电器:数字电视、高清晰度电视(HDTV)、高保真音响、数字电 话等。 (8) 通信:纠错编/译码、自适应均衡、分集接收、数字调制/解调、软件无线电等。 (9) 计算机:阵列处理器、图形加速器、工作站和多媒体计算机等。 (10) 军事:雷达与声呐信号处理、导航、制导、保密通信、全球定位、电子对抗、等。 1.3 TMS320系列DSP概述 TI公司常用的DSP芯片可以归纳为三大系列: TMS320C2000系列——包括TMS320C2xx/C24x/C28x等; TMS320C5000系列——包括TMS320C54x/C55x; TMS320C6000系列——包括TMS320C62x/C67x/C64x。 1.3.1 TMS320C2000系列简介 TMS320C2000系列DSP控制器,具有很好的性能,集成了Flash存储器、高速A/D转换器以及可靠的CAN模块,主要应用于数字化的控制。 C28x是到目前为止用于数字控制领域性能最好的DSP芯片。 TMS320C2000系列DSP芯片价格低,具有较高的性能和适用于控制领域的功能。因此在工业自动化、电动机控制、家用电器和消费电子等领域得到广泛应用。 1.3.2 TMS320C5000系列简介 TMS320C5000系列DSP芯片目前包括了TMS320C54x和TMS320C55x两大类。 C54x是16位定点DSP,适应远程通信等实时嵌入式应用的需要。 C55x是C5000系列DSP中的子系列,是从C54x发展起来的, C55x非常适合个人的和便携式的应用,以及数字通信设施的应用。 1.3.3 TMS320C6000系列简介 TMS320C6000系列是TI公司从1997年开始推出的最新的DSP系列。采用TI的专利技术VeloiTI和新的超长指令字结构,使该系列DSP的性能达到很高的水平。 C6000所采用的类似于RISC的指令集,以及流水技术的使用,可以使许多指令得以并行运行。C6000系列现在已经推出了C62x/C67x/C64x等3个子系列。 C6000系列DSP广泛地应用在数字通信和图像处理领域。 1.4 DSP系统设计概要 1.4.1 DSP系统设计过程 1. 算法研究与优化 这一阶段主要是根据设计任务确定系统的技术指标。 2. DSP芯片及外围芯片的确定 根据算法的运算速度、运算精度和存储要求等参数选择DSP芯片及外围芯片。 3. 软硬件设计阶段 (1) 按照选定的算法和DSP芯片对系统的各项功能是用软件实现还是硬件实现进行初步分工。 (2) 根据系统技术指标要求着手进行硬件设计,完成DSP芯片外围电路和其他电路的设计。 (3) 根据系统技术指标要求和所确定的硬件编写相应的DSP汇编程序,完成软件设计。 4. 硬件和软件调试阶段 硬件调试一般采用硬件仿真器进行,软件调试一般借助DSP开发工具进行。 5. 系统集成与测试阶段 系统的软件和硬件分别调试完成后,就可以将软件脱离开发系统而直接在应用系统上运行,评估是否完成设计目标。 1.4.2 DSP芯片的选择 1. DSP芯片的运算速度 2. DSP芯片的运算精度 3. 片内硬件资源 4. DSP芯片的功耗 5. DSP芯片的开发工具 6. DSP芯片的价格 7. 其他因素 1.4.3 DSP应用系统的开发工具 1. 代码生成工具 2. 软仿真器(simulator) 3.硬仿真器(emulator) 4. 集成开发环境CCS(Code Composer Studio) 5. DSK系列评估工具及标准评估模块(EVM) Ⅷ.参考资料: 《DSP技术及应用》 北京大学出版社 吴冬梅编 Ⅸ.作业: 教材:1.5习题与思考题 1,2,3,6,7 Ⅹ.本章小结: 本章首先介绍DSP技术的内涵、发展的两个领域及实现方法,其次介绍可编程DSP芯片的结构特点、分类及其应用情况,最后概括地介绍了DSP系统的设计过程。 第2章 TMS320C54x的硬件结构 Ⅰ.教学目的: 学习C54x的内部结构和总线结构的特点,学习C54x中央处理单元的组成及存储器空间的分配,学习C54x中断系统的工作原理。 Ⅱ.教学要求: ① 了解TMS320C54x的内部结构和特点; ② 掌握总线结构、中央处理单元的组成; ③ 重点掌握存储器空间的分配及中断系统的工作原理。 Ⅲ.教学重点: ① TMS320C54x的总线结构、中央处理单元的组成; ② TMS320C54x的存储器空间的分配; ③ TMS320C54x的中断系统。 Ⅳ.教学难点: ① C54x的中央处理单元的组成 ② C54x的中断系统 Ⅴ.教学方法: 课堂讲授 Ⅵ.教学内容: 2.1 TMS320C54x硬件结构框图 2.1.1 TMS320C54x内部结构 (1) 中央处理器 CPU (2) 存储器系统 (3) 片内外设与专用硬件电路 2.1.2 TMS320C54x主要特性 1. CPU部分 (1) 先进的多总线结构(1条程序总线、3条数据总线和4条地址总线)。 (2) 40位算术逻辑运算单元(ALU)。 (3) 1717位并行乘法器,与40位专用加法器相连。 (4) 比较、选择、存储单元(CSSU),用于加法/比较选择。 (5) 指数编码器,可以在单个周期内计算40位累加器中数值的指数。 (6) 双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。 2. 存储器系统 (1) 具有192 K字可寻址存储空间:64 K字程序存储空间、数据存储空间及I/O空间。 (2) 片内双寻址 RAM(DARAM)。 (3) 片内单寻址RAM(SARAM)。 3. 片内外设 (1) 软件可编程等待状态发生器。 (2) 可编程分区转换逻辑电路。 (3) 带有内部振荡器或用外部时钟源的片内钡相环(PLL)时钟发生器。 (4) 四种串口。 (5) 8位或16位主机接口(HPI)。 (6) 外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。 (7) 数据总线具有总线保持特性。 (8) 可编程的定时器。 2.2 总 线 结 构 C54x DSP片内有8条16位的总线,即4条程序/数据总线和4条地址总线。 (1) 程序总线(PB)。传送取自程序存储器的指令代码和立即操作数。 (2) 数据总线(CB、DB和EB)。将内部各单元连接在一起。其中,CB和DB传送读自数据存储器的操作数,EB传送写到存储器的数据。 (3) 4个地址总线(PAB、CAB、DAB和EAB)传送执行指令所需的地址。 2.3 中央处理单元(CPU) C54x DSP的并行结构设计特点,使其能在一条指令周期内,高速地完成算术运算。其CPU的基本组成如下: (1) 40位算术逻辑运算单元(ALU); (2) 2个40位累加器; (3) -16~30位的桶形移位寄存器; (4) 乘法器/加法器单元; (5) 16位暂存器(T) ; (6) CPU状态和控制寄存器; (7) 比较、选择和存储单元(CSSU); (8) 指数编码器。 2.3.1 CPU状态和控制寄存器 C54x DSP有三个状态和控制寄存器: (1) 状态寄存器0(ST0); (2) 状态寄存器1(ST1); (3) 处理器工作模式状态寄存器(PMST)。 2.3.2 算术逻辑单元(ALU) ALU执行算术和逻辑操作功能,大多数算术逻辑运算指令都是单周期指令。一个运算操作在ALU执行之后,运算所得结果一般被送到目的累加器(A或B)中。 2.3.3 累加器A和B 累加器A和B都可以配置成乘法器/加法器或ALU的目的寄存器。累加器A和B分为3部分,如图所示。 2.3.4 桶形移位器 (1) 在ALU运算前,对来自数据存储器的操作数或者累加器的值进行预定标; (2) 执行累加器的值的一个逻辑或算术运算; (3) 对累加器的值进行归一化处理; (4) 对存储到数据存储器之前的累加器的值进行定标。 2.3.5 乘法器/加法器单元 C54x DSP的CPU有一个17×17位硬件乘法器,它与一个40位专用加法器相连。乘法器/加法器单元可以在一个流水线状态周期内完成一次乘法累加(MAC)运算。 2.3.6 比较、选择和存储单元 C54x DSP的CPU的比较、选择和存储单元(CSSU)是专门为Viterbi算法设计的进行加法/比较/选择(ACS)运算的硬件单元。 2.3.7 指数编码器 指数编码器是一个专用硬件,它可以在单个周期内执行EXP指令,求得累加器中数的指数值,并以2的补码形式(~31)存放到T寄存器中,累加器的指数值=冗余符号位。 2.4 存储器和I/O空间 2.4.1 存储空间的分配 C54x DSP的存储器空间可以分成 3个可单独选择的空间,即程序、数据和I/O空间。这3个空间的总地址范围为 192 K字(C548除外)。 2.4.2 程序存储器 多数C54x DSP的外部程序存储器可寻址64 K字的存储空间。它们的片内ROM、双寻址RAM(DRAM)以及单寻址RAM(SARAM),都可以通过软件映像到程序空间。 2.4.3 数据存储器 C54x DSP的数据存储器容量最多达64K字。除了单寻址和双寻址RAM(SRAM和DRAM)外,C54x 还可以通过软件将片内ROM映像到数据存储空间。 2.4.4 I/O空间 C54x DSP I/O存储器空间为 64 K 的地址空间(0000h~FFFFh),并且都在片外。可以用两条指令(输入指令PORTR和输出指令PORTW)对I/O空间寻址。 2.5 中 断 系 统 2.5.1 中断系统概述 1. 中断分类 (1) 第一类可屏蔽中断:可以用软件来屏蔽或开放的硬件和软件中断。C54x最多可以支持16个用户可屏蔽中断(SINT15~SINT0)。 (2) 第二类是非屏蔽中断:中断是不能够屏蔽的,C54x对这一类中断总是响应。C54x DSP的非屏蔽中断包括所有的软件中断,以及两个外部硬件中断:(复位)和。 2. 中断处理步骤 (1) 接受中断请求。 (2) 应答中断。 (3) 执行中断服务程序(ISR)。 2.5.2 中断标志寄存器(IFR)和中断屏蔽寄存器(IMR) 1.C5402 DSP的中断标志寄存器(IFR) 2.C5402 DSP 的中断屏蔽寄存器(IMR) 2.5.3 接收、应答及处理中断 1. 接收中断请求 (1) 硬件中断请求。硬件中断有外部和内部两种。 (2) 软件中断请求。软件中断都是由程序中的指令INTR、TRAP和 RESET产生的。 2. 应答中断 硬件或软件中断发送了一个中断请求后,CPU必须决定是否应答中断请求。软件中断和非屏蔽硬件中断会立刻被应答,但屏蔽中断仅仅在条件被满足后才被应答。 3. 执行中断服务程序(ISR) (1) 将PC值(返回地址)存到数据存储器堆栈的栈顶; (2) 将中断向量的地址加载到PC; (3) 在中断向量地址上取指; (4) 执行分支转移指令,转至中断服务程序; (5) 执行中断服务程序; (6) 中断返回,从堆栈弹出返回地址加到PC中; (7) 继续执行被中断了的程序。 4. 保存中断上下文 在执行中断服务程序前,必须将某些寄存器保存到堆栈(保护现场)。程序执行完毕准备返回时,应当以相反的次序恢复这些寄存器(恢复现场)。 2.5.4 中断操作流程 一旦将一个中断传给CPU,CPU会按特定的方式进行操作。 2.5.5 重新安排中断向量地址 在C54x DSP中,中断向量地址是由PMST寄存器中的IPTR(中断向量指针9位)和左移2位后的中断向量序号(中断向量序号为0~31,左移2位后变成7位)所组成。 例如,如果的中断向量号为 16(10h),左移 2位后变成 40h,若IPTR=0001h,那么中断向量地址为 00C0h,中断向量地址产生过程如图2.22所示。 复位时,IPTR位全置1(IPTR=1FFh),并按此值将复位向量映像到程序存储器的511页空间。所以,硬件复位后总是从0FF80h开始执行程序。 Ⅷ.参考资料: 《DSP技术及应用》 北京大学出版社 吴冬梅编 Ⅸ.作业: 教材:2.6 习题与思考题 1,2 Ⅹ.本章小结: 本章以C5402为主,详细介绍了其总线结构、中央处理单元、存储器和I/O空间以及中断系统。片内外设与专用硬件电路将在第6章介绍。 第3章 TMS320C54x指令系统 Ⅰ.教学目的: 学习C54x DSP的寻址方式和汇编语言指令。 Ⅱ.教学要求: ① 了解汇编源程序的书写格式; ② 掌握指令的7种寻址方式,尤其是间接寻址方式; ③ 重点掌握算术运算、逻辑运算、程序控制、存储和装入4种基本类型的汇编语言指令 Ⅲ.教学重点: ① C54x的7种寻址方式; ② C54x的4种基本类型的汇编语言指令。 Ⅳ.教学难点: ① C54x的间接寻址方式 ② C54x的算术运算、存储和装入类指令。 Ⅴ.教学方法: 课堂讲授理论知识,实验练习指令的操作。 Ⅵ.教学内容摘要: 3.1 汇编源程序格式 汇编语言语句格式可以包含4个部分:标号域、指令域、操作数域和注释域。格式如下: [标号] [:] 指令 [操作数列表] [;注释] 其中[ ]内的部分是可选项。每个域必须由1个或多个空格分开,制表符等效于空格。 例如:begin: LD #40, AR1 ;将立即数40传送给辅助寄存器ARl 3.2 指令集符号与意义(略) 3.3 寻 址 方 式 指令的寻址方式是指当CPU执行指令时,寻找指令所指定的参与运算的操作数的方法。C54x共有7种有效的数据寻址方式。 3.3.1 立即寻址 立即寻址,是在指令中已经包含有执行指令所需要的操作数。 例如: LD #10H,A ;立即数10→A累加器 RPT #99 ;将紧跟在此条语句后面的语句重复执行99+1次 3.3.2 绝对寻址 绝对寻址,是在指令中包含有所要寻址的存储单元的16位地址。可利用16位地址寻址存储器或I/O端口。 1. 数据存储器寻址 数据存储器(dmad)寻址是用一个符号或一个数来确定数据空间中的一个地址。 例如:MVKD,DATA,*AR5 2. 程序存储器寻址 程序存储器(pmad)寻址是用一个符号或一个数来确定程序存储器中的一个地址。 例如:MVPD,TABLE,*AR7- 3. I/O端口寻址 端口(PA)寻址是用一个符号或一个16位数来确定I/O空间存储器中的一个地址,实现对I/O设备的读和写。 例如:PORTR,FIFO,*AR5 ;从端口FIFO读数据→(AR5) PORTW,*AR2,BOFO ;将(AR2)→写入BOFO端口 4. *(lk)寻址 *(lk)寻址是用一个符号或一个常数来确定数据存储器中的一个地址。适用于支持单数据存储器操作数的指令。 例如:LD *(BUFFER),A 3.3.3 累加器寻址 累加器寻址是用累加器中的数作为地址来读写程序存储器。 READA Smem WRITA Smem 3.3.4 直接寻址 直接寻址,是在指令中包含有数据存储器地址(dmad)的低7位,由这7位作为偏移地址值,与基地址值(数据页指针DP或堆栈指针SP)一道构成16位数据存储器地址。 例如:ADD SAMPLE,B 3.3.5 间接寻址 按照辅助寄存器的内容寻址数据存储器。在间接寻址中,64K字数据空间任何一个单元都可以通过一个辅助寄存器中的16位地址进行访问。 1. 单操作数间接寻址 单操作数寻址是一条指令中,只有一个存储器操作数(即从存储器中只存取一个操作数)。 例如:LD *AR2+,A ;(AR2)→A,AR2=AR2+1 1) 循环寻址 循环寻址用%表示,其辅助寄存器使用规则与其他寻址方式相同。但需要在存储器中设置循环缓冲区。循环缓冲区是一个滑动窗口,包含着最近的数据。如果有新的数据到来,它将覆盖最早的数据。 循环缓冲器的主要参数包括。 l 长度计数器(BK):定义了循环缓冲区的大小R(R<2N =。 l 有效基地址(EFB):定义了缓冲区的起始地址,即ARx低N位设为0后的值。 l 尾地址(EOB):定义了缓冲区的尾部地址。 l 缓冲区索引(index):当前ARx的低N位。 l 步长(Step):一次加到辅助寄存器或从辅助寄存器中减去的值。 使用循环寻址时,必须遵循以下3个原则: (1) 循环缓冲区的长度R小于2N,且地址从一个低N位为0的地址开始: (2) 步长小于或等于循环缓冲区的长度; (3) 所使用的辅助寄存器必须指向缓冲区单元。 2) 位倒序寻址 间接寻址的ARx中的内容与AR0中内容以位倒序的方式相加产生ARx中的新内容,即进位是从左到右,而不是从右到左。 位倒序寻址主要应用于FFT运算,可以提高FFT算法的执行速度和使用存储器的效率。 2. 双操作数间接寻址 双操作数寻址用在完成两个读或一个读且一个写的指令中。 3.3.6 存储器映射寄存器寻址 存储器映射寄存器(MMR)寻址用来修改存储器映射寄存器而不影响当前数据页指针(DP)或堆栈指针(SP)的值。存储器映射寄存器寻址既可以在直接寻址中使用,也可以在间接寻址中使用。 3.3.7 堆栈寻址 堆栈寻址,是利用堆栈指针来寻址。堆栈遵循先进后出的原则,SP始终指向堆栈中所存放的最后一个数据。C54x的堆栈是从高地址向低地址方向生长,并用一个16位存储器映像寄存器——堆栈指针(SP)来管理堆栈。 3.4 指 令 系 统 3.4.1 算术运算指令 算术运算指令分为6小类。 l 加法指令(ADD); l 减法指令(SUB); l 乘法指令(MPY); l 乘加指令(MAC)和乘减指令(MAS); l 双数/双精度指令(DADD、DSUB); l 特殊操作指令(ABDST、SQDST)。 【例3.1】 ADD *AR3+, 14, A;将AR3所指的数据存储单元内容,左移14位与A相加,结果放A中,AR3加1。 【例3.2】 MPY 13,A; T*Smem →A, Smem所在的单数据存储器地址为13(0Dh) 【例3.3】 MAC *AR5+,A ;A+(AR5)*T→A, AR5= AR5+1 【例3.4】 DADD *AR3+, A, B 3.4.2 逻辑指令 逻辑指令分为5小类。 l 与指令(AND); l 或指令(OR); l 异或指令(XOR); l 移位指令(ROL); l 测试指令(BITF)。 【例3.6】 AND *AR3+,A 【例3.8】 CMPM *AR4+, 0404h 3.4.3 程序控制指令 程序控制指令分为7小类。 l 分支指令(B,BC); l 调用指令(CALL); l 返回指令(RET); l 中断指令(INTR,TRAP); l 重复指令(RPT); l 堆栈操作指令(FRAME,POP); l 其他程序控制指令(IDLE,NOP)。 【例3.9】 BANZ[D] pmad,Sind 若当前辅助寄存器ARx不为0,则pmad值赋给PC,否则PC值加2。若为延迟方式,此时紧跟该指令的两条单字指令或一条双字指令先被取出执行,然后程序再跳转。该指令不能被循环执行。 如: BANZ 2000h, *AR3- 【例3.12】 INTR K 首先将PC值压入栈顶,然后将由K所确定的中断向量赋给PC,执行该中断服务子程序。中断标志寄存器(IFR)对应位清零且INTM=1。该指令允许用户使用应用软件来执行任何中断服务子程序。注意中断屏蔽寄存器(IMR)不会影响INTR指令,并且不管INTM取值如何,INTR指令都能执行。该指令不能循环执行。例如: INTR 3 3.4.4 存储和装入指令 存储和装入指令有8小类。 l 存储指令(ST); l 装入指令(LD); l 条件存储指令(CMPS); l 并行装入和存储指令(LD||ST); l 并行读取和乘法指令(LD||MAC); l 并行存储和乘法指令(ST||MAC); l 并行存储和加减指令(ST ||ADD,ST ||SUB); l 其他存储和装入指令(MVDD,PORTW,READA)。 Ⅷ.参考资料: 《DSP技术及应用》 北京大学出版社 吴冬梅编 Ⅸ.作业: 教材:3.5 习题与思考题 1,2,3,4 Ⅹ.本章小结: C54x指令系统适用于所有具有相同CPU内核的C54x DSP,尽管这些DSP的型号可能不同。本章介绍了C54x DSP的七种寻址方式、四类汇编语言指令。 第4章 TMS320C54x的软件开发 Ⅰ.教学目的: 学习TMS320C54x的汇编伪指令、COFF格式(公共目标文件格式)、C54x的汇编源程序的汇编和链接过程,学习TMS320C54x汇编语言程序设计的基本方法及软件开发过程。 Ⅱ.教学要求: ① 了解TMS320C54x的软件开发过程,了解汇编伪指令和宏指令; ② 掌握常用的汇编伪指令、汇编源程序的汇编和链接过程; ③ 重点掌握COFF格式。掌握程序的控制和转移、数据块传送、算术运算3类程序的基本设计方法 Ⅲ.教学重点: ① C54x的常用汇编伪指令; ② C54x算术运算、数据块传送、控制和转移类程序的设计方法。 Ⅳ.教学难点: ① C54x的常用汇编伪指令; ② C54x的控制和转移类程序的设计方法。 Ⅴ.教学方法: 课堂讲授理论知识,实验练习程序设计。 Ⅵ.教学内容摘要: 4.1 TMS320C54x软件开发过程 开发过程的目的是产生一个可以由C54x目标系统执行的模块。一个或多个汇编语言源程序经过汇编和链接,生成COFF格式(公共目标文件格式)的可执行文件,再通过软件仿真程序或硬件在线仿真器的调试,最后将程序加载到用户的应用系统。 4.2 汇编语言程序的编写方法 4.2.1 汇编语言源程序举例 【例4.1】 汇编语言程序编写方法举例。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * example. asm y=al* xl+a2 * x2+a3 * x3+a4 * x4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * .title “example.asm” .mmregs STACK .usect “STACK”, 10H ;allocate space for stack .bss a, 4 ;allocate 9 word for variants .bss x, 4 .bss y, 1 .def start .data table: .word 1, 2, 3, 4 ;data follows… .word 8, 6, 4, 2 .text ;code follows… start: STM #0, SWWSR ;adds no wait states STM #STACK+10H,SP ;set stack pointer STM #a, AR1 ;AR1 point to a RPT #7 ;move 8 values MVPD table, *AR1+ ;from program memory into data memory CALL SUM ;call SUM subroutine end: B end SUM: STM #a, AR3 ;The subroutine implement STM #x, AR4 ;multiply-- accumulate RPTZ A, #3 MAC *AR3+, *AR4+, A STL A, @y RET .end 4.2.2 汇编语言常量 C54x汇编器支持7种类型的常量:二进制整数、八进制整数、十进制整数、十六进制整数、字符常量、汇编时常量和浮点数常量。 4.2.3 汇编源程序中的字符串 字符串(character strings)是包括在双引号内的一串字符,若双引号为字符串的一部分,则需要用两个连续的双引号。 4.2.4 汇编源程序中的符号 符号可用于标号、常量和替代其他字符。符号名最多可为32位字符数字串(A~Z、a~z、0~9、_和$),第一位不能是数字,字符间不能有空格。 用做标号(lable)的符号在程序地址中作为符号地址和程序的位置有关。 DSP内部的寄存器名和$等都是汇编器已预先定义的全局符号。 4.2.5 汇编源程序中的表达式 表达式是由运算符隔开的常量、符号或常量和符号序列。表达式值的有效范围从-32768~32767。有3个主要因素影响表达式的运算顺序:圆括号、优先级、同级运算顺序。 4.3 汇编伪指令和宏指令 4.3.1 汇编伪指令 汇编伪指令用以形成常数和变量,当用它控制汇编和链接过程时,可以不占存储空间。C54x汇编器共有64条汇编伪指令,根据它们的功能,可以将汇编伪指令分成8类: l 对各种段进行定义的伪指令; l 对常数(数据和存储器)进行初始化的伪指令; l 调整SPC(段寄存器)的指令; l 输出列表文件格式伪指令; l 引用其他文件的伪指令; l 控制条件汇编的伪指令; l 在汇编时定义符号的伪指令; l 执行其他功能的伪指令。 1. 段定义伪指令 .bss 为未初始化的变量保留空间; .data 通常包含了初始化的数据; .sect 定义已初始化的带命名段,并将紧接着的代码或数据存入该段; .text 该段包含了可执行的代码; .usect 在一个未初始化的有命名的段中为变量保留空间。 2. 常数初始化伪指令 .int和.word 把一个或多个16位数存放到当前段的连续字中。.int为无符号整型量,.word为带符号整型量。 .byte 把一个或多个8位的值放入当前段的连续字中。该指令类似于.word,不同之处在于.word中的每个值的宽度限制为16位。 .float和.xfloat 计算以IEEE格式表示的单精度(32位)浮点数,并存放在当前段的连续字中,高位先存。.float能自动按域的边界排列,.xfloat不能。 3. 段程序计数器(SPC)定位指令 .align 使SPC对准1字(16位)~128字的边界,这保证了紧接着该指令的代码从一个整字或页的边界开始。 4. 输出列表格式伪指令 .
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服