版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程回顾DSP应用技术DSP基本概念DSP的硬件结构DSP的软件结构应用系统设计DSP的概念DSP的分类DSP的特点DSP的发展TMS320C54x系列 DSP各部件工作原理软件体系指令系统编程方法汇编语言、C语言设计流程开发调试开发工具第1页,共189页。第1章 DSP及其应用概述 什么是DSP DSP的特点DSP的分类TMS320系列DSP第2页,共189页。Digital Signal Processing 数字信号处理Digital Signal Processor 数字信号处理器一、DSP的含义第3页,共189页。二、可编程DSP芯片的特点1.采用数据总线和程序总线分离的哈佛结构或改
2、进的哈佛结构;2.片内多总线结构;3.采用流水线技术;4.配有专用的硬件乘法-累加器;5.具有特殊的DSP指令;6.快速的指令周期;7.带有DMA通道和串口、中断处理器、定时控制器、软硬件等待 功能等;8.支持多处理器结构;9.节电管理和低功耗。第4页,共189页。二、TMS320系列DSP芯片的特点1改进的哈佛结构采用双存储空间和数条总线,即一条程序总线和多 条数据总线。允许程序空间和数据空间之间相互传 送数据,可以同时访问指令和数据。比传统处理器 的冯诺依曼结构具有更高的数据处理能力和指令执 行速度。第5页,共189页。2多总线结构 可以同时进行取指令和多个数据存取操作,并由辅 助寄存器自
3、动增减地址进行寻址,使CPU在一个机 器周期内可多次对数据空间和程序空间进行访问, 解决传统芯片的总线冲突问题,大大提高系统的速 度和效率。如:TMS320C54x系列内部有P、C、D、E四组总线,每组总线中都有地址总线和数据总线, 这样在1个机器周期内可完成如下操作: 从程序存储器中取1条指令; 从数据存储器中读2个操作数; 向数据存储器写1个操作数。第6页,共189页。DSP芯片广泛采用流水线,使取指、译码、取操作数和 执行等操作可以重叠执行,即实现多条指令的并行执 行。从而在不提高时钟频率的条件下减少每条指令的执 行时间。C54x的流水线操作由6个操作阶段(周期)组成,预取 指、取指、译
4、码、寻址、读操作数、执行彼此相互独 立。在任何1个机器周期内,可以有1-6条不同的指令同 时工作,每条指令可在不同的周期内工作在不同的操作 阶段。3流水线操作第7页,共189页。DSP芯片都配有专用的硬件乘法-累加器,可在1个周期内完成一次乘法和一次加法操作。乘法速度越快,DSP的性能越高。4专用的硬件乘法-累加器5特殊的DSP指令完成特殊功能的指令。C54x系列共计15条,如FTRS和 DELAY指令等。第8页,共189页。6. 快速的指令周期 哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令及继承电路的优化设计,目前TMS320系列处理器的指令周期已经达到了20ns以下,有的甚至达
5、到了几个ns,这使得DSP芯片能够实时实现许多DSP应用。第9页,共189页。3种分类方式:1按基础特性分2按数据格式分3按用途分静态DSP芯片:工作时钟一致性DSP芯片:指令类型三、DSP芯片的种类定点DSP芯片:定点格式浮点DSP芯片:浮点格式通用型DSP芯片专用型DSP芯片TMS320C54xDSP属于16位通用、定点、一致性芯片。 第10页,共189页。四、TMS320系列DSP芯片 TI公司的通用型DSP芯片可归纳为四大系列,即 C6000(C64x/C62x/C67x)系列 主要用于高性能复杂的通信系统; C5000(C5x/C54x/C55x/OMAP5910)系列 主要用于低功
6、耗、便携的无线通信终端产品; C2000(C2x/C2xx)系列 主要用于数字控制系统。C3x第一代浮点DSP系列第11页,共189页。五、DSP芯片的选择 1运算速度:最重要的性能指标 2价格 3运算精度 4硬件资源 5开发工具 6功耗 7其它因素 第12页,共189页。x(t)抗混叠滤波器A/D转换器x(n)y(n)y(t)数字信号处理器D/A转换器低通滤波器六、DSP典型系统第13页,共189页。第2章 C54x DSP硬件结构 基本结构 内核结构和原理 片内外设 节电模式 外部总线 流水线第14页,共189页。 TMS320C54x是TI公司为实现低功耗、高速实时信号处理而专门设 计的
7、16位定点DSP芯片; 采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应 于远程通信等实时嵌入式应用的需要; 现广泛应用于无线通信系统,如数字蜂窝通信、无线数据通信、 调制解调器等领域。 1. C54x的基本结构第15页,共189页。 C54x DSP系列芯片种类很多,但结构基本相同; 围绕1组程序总线、3组数据总线和4组地址总线而建立的改进的 哈佛结构; 主要由中央处理器CPU、内部总线控制、特殊功能寄存器、数据 存储器RAM、程序存储器ROM、I/O接口扩展功能、串行口、主机 通信接口HPI、定时器、中断系统等部分组成; 不同型号的C54x DSP芯片CPU结构与功能完全相同,其差
8、异主要 体现在存储器容量、片内外设、供电电压、速度以及封装上。第16页,共189页。TMS320C54x DSP的引脚: C54x芯片采用CMOS制造工艺,采用塑料或陶瓷四方扁平封装; 生产型号不同引脚个数也不同; VC5402共有144个引脚,按功能可分为电源引脚、时钟引脚、控 制引脚、地址和数据引脚、串行口引脚、主机接口引脚、通用 I/O引脚和测试引脚8个部分。第17页,共189页。2. C54x内核的结构和原理一、C54x的内部总线结构 片内3套8组16位总线:1组程序总线(PB)和3组数据总线(CB、 DB、EB)以及对应的4组地址总线(PAB、CAB、DAB,EAB(4套总 线可同时
9、操作);第18页,共189页。 CB、DB是与读操作相关的数据总线,用来传送从数据存储器读出的 数据; EB是与写操作相关的数据总线,用来传送写入数据存储器的数据。 3组数据总线分别与不同的功能单元相连接。将CPU、PAGEN、 DAGEN、片内外设、数据存储器等连接在一起; PB主要用来传送取自程序存储器的指令代码和立即操作数; 4组地址总线主要用来提供执行指令所需的地址。第19页,共189页。C54x读/写操作占用总线情况读/写方式地址总线程序总线数据总线PABCABDABEABPBCBDBEB程序读程序写单数据读双数据读32位长数据读(hw)(lw)(hw)(lw)单数据写数据读/数据写
10、双数据读/系数读外设读外设写第20页,共189页。2. C54x内核的结构和原理二、优化的CPU结构 采用先进的多总线结构实现,由控制部件和运算部件组成; 1个40位算术逻辑单元ALU,包括1个40位的桶形移位器和2个独 立的40位累加器(ACCA和ACCB); 1个1717位并行乘法器,与1个40位专用加法器相连,可用于 进行非流水线的单周期乘法-累加(MAC)运算; 比较、选择、存储单元(CSSU),用于提高维特比编译码的 速度; 指数编码器,是支持单周期指令EXP的专用硬件,可在一个周 期内计算40位累加器数值的指数; CPU状态和控制寄存器。第21页,共189页。图3 ALU的功能框图
11、ALU输入数据的预处理:1.数据存储器操作数在低16位时,则当SXM=0,高24位用0填充;SXM=1,高24位扩展为符号符号扩展第22页,共189页。图3 ALU的功能框图ALU输入数据的预处理:2.数据存储器操作数在高16位时,则当SXM=0,39-32位和15-0位用0填充;SXM=1,39-32位扩展为符号,15-0位用0填充第23页,共189页。图3 ALU的功能框图ALU的输出为40位运算结果。除存储器操作指令(ADDM、ANDM、ORM、XORM)外,ALU的运算结果通常都被送到累加器A和B。第24页,共189页。溢出处理 若OVM=0,对运算结果不进行任何调整,直接送累加器;
12、若OVM=1,饱和逻辑使能,根据溢出方向,累加器加载最大正32 位值(00 7FFF FFFFH)或最小负32位值(FF 8000 0000H)。 当发生溢出时,与目标累加器相关的溢出标志位OVA或OVB被 置1,直到复位或执行溢出条件指令。 通过使结果保持为最大值或最小值,ALU的饱和逻辑可防止结 果产生溢出。第25页,共189页。图3 ALU的功能框图40位的累加器ACCA和ACCB存放从ALU或乘累加单元输出的数据,也能输出到ALU或乘法器/加法器中。累加器第26页,共189页。1.累加器ACCA和ACCB是CPU内核中最繁忙的寄存器,ALU要进行的大 部分运算都要通过累加器A或B进行中
13、转。2.累加器ACCA和ACCB都可以分为3部分,保护位、高阶位、低阶位。 保护位用于防止迭代运算中产生的溢出。AG、BG、AH、BH、AL和 BL都是存储器映射寄存器(MMR),可使用寄存器寻址的方式进行 操作。ACCA的3216位可用作乘累加单元的一个输入。第27页,共189页。例:假设累加器A=0FF 4321 1234H,观察数据存储单元TEMP中内容的变化情况。 STH A, 8,TEMP ;T=2112HSTH A,-8,TEMP; T=FF43HSTL A, 8, TEMP; T=3400H STL A,-8, TEMP; T=2112H第28页,共189页。例:STH B,8,
14、*AR7 第29页,共189页。 MAC单元包括1个17位17位的乘法器和1个40位的专用 加法器。 MAC单元具有强大的乘累加功能,在一个流水线周期内 可以完成1次乘法运算和1次加法运算。乘累加单元第30页,共189页。ST0反映寻址要求和运行中间状态ST1反映寻址要求、计算的初始设置、I/O及中断控制PMST主要设定并控制处理器的工作方式,反映其工作状态。CPU状态和控制寄存器第31页,共189页。1.通过设置PMST中的MP/MC=0,可以使能或禁止内ROM。 2.通过设置PMST中的DROM=1,可以将部分片内ROM 映射到数据存储空间。 3.通过设置PMST中的OVLY=1,可以将片
15、内DARAM映射 到程序存储空间。PMST与存储器配置有关:第32页,共189页。2. C54x内核的结构和原理三、存储空间 C54x DSP的存储空间可达192 K字,分为3个独立的可选择空间: 64 K字的数据存储空间 64 K字的程序存储空间 64 K字的I/O空间用于存放执行指令所使用的数据,包括需要程序处理的数据或数据处理的中间结果;用来存放要执行的指令以及指令执行中所需的常数表格;用于对片外设备的访问,也可用于扩展外部数据存储空间。 第33页,共189页。 程序存储器ROM C54x的程序存储器可由ROM和RAM配置而成,即程序空间可定义在 ROM上,也可定义在RAM中; 当需要高
16、速运行程序时,可将片外ROM中的程序调入片内RAM, 以提高程序的运行速度,降低对外部ROM的速度要求,增强系统 的整体抗干扰性; 不同型号的C54x,其ROM的容量配置不同。第34页,共189页。 VC5402有20根地址线,可寻址1兆字的外部程序空间。分成16页, 每页64千字。图2 VC5402扩展程序存储空间结构图第35页,共189页。图3 片内ROM程序存储器映射(高2 K字的地址) VC5402有4k字的内部ROM。当MP/MC=0,这4k字被映射到程序空 间地址范围为F000H-FFFFH,其中高2k字ROM中的内容由TI公司定义。第36页,共189页。 当处理器复位时,复位和中
17、断向量被映射到起始地址为 FF80H的程序空间。 在C54x DSP的片内ROM中,128字被保留用于器件的测 试。 写到片内ROM并且在片内ROM执行的应用程序代码必 须保留128字(FF00HFF7FH)。第37页,共189页。 数据存储器RAM 有两种片内数据存储器; 双访问/双寻址RAM(DARAM):在一个指令周期内,可对 其进行2次存取操作,1次读出和1次写入; 单访问/单寻址RAM(SARAM):在一个指令周期内,只能 进行1次存取操作,1次读或写; 不同型号的C54x,其DARAM和SARAM的容量和存取速度不 同。第38页,共189页。 低1k字的数据空间包括存储器映射的CP
18、U寄存器、存储器映射外设寄存器、32位的暂存寄存器和896字的DARAM(0080H03FFH)。 这些寄存器驻留在数据页第0页(数据地址0000h007Fh)。包栝: 26个CPU寄存器(0000H001FH),访问不需要插入等待周期; 外设寄存器(0020H005F)用于控制外围电路的状态,可作为外设 的数据存储器,具有专用的外设总线结构。 暂存存储器RAM块(0060H007FH),包括32个字的DARAM,用 于存储变量,避免对大RAM块进行分段。 从0080H开始,按每80H个存储单元为一个数据块,将DARAM分成若 干数据块,便于CPU并行操作,提高芯片的高速处理能力。第39页,共
19、189页。具有64k字的I/O空间,主要用于对片外设备的访问;利用I/O空间可以扩展外部存储器;使用两条指令PORTR和PORTW对I/O空间寻址,无须通过累加器, 直接与存储单元互传数据。 访问I/O是对I/O映射的器件进行访问,而不是访问存储器。 I/O空间第40页,共189页。3. C54x的片内外设 定时器 C54x具有一个带4位预分频器的16位定时电路; 是软件可编程减法计数器,用来产生定时中断; 可由专门状态位编程实现停止、重启动、复位和禁止; 在每个CLKOUT周期,定时/计数器减少1;每次减少到0则产生一个 定时中断;第41页,共189页。 为CPU提供时钟信号,由内部振荡器和
20、锁相环(PLL)电路组成, 可通过内部晶振或外部时钟源驱动。 PLL具有频率放大和信号提纯功能,利用PLL的特性,可以锁定时钟 发生器的振荡频率,为系统提供高稳定的时钟频率。 PLL能使时钟电源乘上一个特定的系数,得到一个比内部 CPU时钟频 率低的时钟源。 时钟发生器第42页,共189页。 主机通信接口(HPI) HPI提供与主机设备或主处理器接口的并行端口,用于DSP与其他 总线或CPU进行通信; 通过片内存储器实现C54x器件与主机进行数据交换; 不同型号的器件HPI配置不同; 可分为8位标准HPI接口、8位/16位增强型HPI接口。 HPI具有两种工作方式:共用访问模式和仅主机访问模式
21、 C5402、C5410带有HPI-8,C5420为HPI-16。标准8位HPI增强型8位HPI只允许访问片内RAM指定的2k字允许对整个片内RAM进行访问在HOM方式,仅能主机寻址HPI存储器主机与C54x都能访问HPI存储器在HOM方式,允许主机的异步访问主机访问总是与C54x的时钟同步第43页,共189页。SP标准同步串行口。高速、全双工串口,可与编码器、A/D转换器等 串行设备直接通信。 BSP缓冲同步串口。增强型全双工和双缓冲同步串口,工作在CLKOUT 频率。在SP基础上增加一个自动缓冲单元 (ABU),允许串口直接 读写内存,实现与CPU的并行操作。 TDM时分多路同步串口。增强
22、的同步串口,允许数据分时多路转 换,可配置为同步串口SP方式和TDM方式,应用于多处理器。 McBSP多通道带缓冲同步串行口。高速、双向、通道数多、数据格式 范围宽等特点。可与其它C54x器件、编程器或串口器件通信。 McBSP以标准串口为基础,并进行了很多功能扩展。 C5402带有2个多通道缓冲串行口McBSP 串行口:不同型号的器件配置的串口功能不同第44页,共189页。 C54x有多种省电方式,可使CPU暂停工作处于休眠状态,以减小功耗,但保持CPU中的内容。 当省电方式结束后,CPU可以继续正常工作。 C54x有4种省电方式:闲置方式1、2、3和保持方式。 省电方式的实现: 执行IDL
23、E1、IDLE2和IDLE3三条指令; 使外部信号HOLD=0,状态位HM=1。4.C54x的节电方式 外部总线关断:关片内外设接口时钟。 主时钟关断:用指令禁止CLKOUT信号输出。其他省电方式:第45页,共189页。操作/特性 IDLE1 IDLE2 IDLE3 HOLD CPU处于暂停工作状态 CPU时钟停止工作 外围电路时钟停止工作 锁相环(PLL)停止工作 外部地址线处于高阻状态 外部数据线处于高阻状态 外部控制信号线处于高阻状态因其他原因结束省电工作方式 HOLD变为高电平 内部可屏蔽硬件中断 外部可屏蔽硬件中断 NMI RS区别:第46页,共189页。 包括数据总线、地址总线以及
24、一组控制信号组成,可以用来 寻址片外存储器和I/O口。 外部总线优先级: 数据存取的优先级高于程序的读取。1)外部总线的组成 5.C54x的外部总线 第47页,共189页。信号5416548105409、1654025420说 明A0Ai150220220190170地址总线D0D15150150150150150数据总线PS程序空间片选DS数据空间片选ISI/O空间片选MSTRB外部存储器选通IOSTRBI/O空间选通R/W读/写信号READY数据准备完成HOLD保持请求HOLDA保持响应MSC微状态完成IAQ中断请求IACK中断响应第48页,共189页。2)软件可编程等待状态发生器SWWS
25、R 软件可编程等待状态发生器可通过编程来延长总线的等待周期,最多可达到714个机器周期。 若外部器件要求插入的等待周期大于714个时,可以利用硬READY线来实现。 当所有的外部器件都配置在0等待状态时,加到等待状态发生器的内部时钟将被关断,器件工作在省电状态。 第49页,共189页。例如: STM #349B,SWWSR 349BH=0011 0100 1001 1011 SWWSR=0 011 010 010 011 011 I/O空间:3个等待状态;数据空间:2个等待状态;程序空间:3个等待状态。复位时,SWWSR=7FFFH,程序、数据和I/O空间都被插入7个等待状态 第50页,共18
26、9页。 流水线操作:各条指令以机器周期为单位,相差一个时间周期而 连续并行工作。 操作原理:将指令分成几个子操作,每个子操作由不同的操作阶段 完成。 每隔一个机器周期,每个操作阶段就可以进入一条新指令。 在同一个机器周期内,在不同的操作阶段可以处理多条指令,相当 于并行执行了多条指令。6.C54x的流水线操作 C54x DSP有一个6级深度的指令流水线。第51页,共189页。 C54x DSP的流水线操作由6个操作阶段或操作周期组成。 这6个操作阶段彼此相互独立,可并行操作,允许指令的重叠执行。 在任何一个机器周期内,可以有16条不同的指令同时工作,每条指 令可在不同的周期内工作在不同的操作阶
27、段。 图1 DSP流水线操作示意图预取指 取指 译码 寻址 读数 执行预取指 取指 译码 寻址 读数 执行预取指 取指 译码 寻址 读数 执行预取指 取指 译码 寻址 读数 执行预取指 取指 译码 寻址 读数 执行预取指 取指 译码 寻址 读数 执行第52页,共189页。6级流水线结构介绍图2 流水线的6个阶段中的各个操作第53页,共189页。 1. 程序预取指P: 在T1机器周期内,CPU将PC中的内容(即下一条要执 行指令的地址)加载到程序地址总线PAB,找到指令代码的存储单元。 这6级流水线结构的功能如下:图2 流水线的6个阶段中的各个操作第54页,共189页。 2. 取指F: 在T2机
28、器周期内,CPU从选中的程序存储单元中,取出指 令代码加载到程序总线PB;从PB上取指令字并装入指令寄存器IR。 P、F完成了一条指令的取指。 这6级流水线结构的功能如下:图2 流水线的6个阶段中的各个操作第55页,共189页。 3. 译码D: 在T3机器周期内,对指令寄存器IR的内容译码,确定所操 作的存储器的类型、数据地址产生单元DAGEN和CPU的控制信号。 此过程产生执行指令所需要的一系列控制信号。 这6级流水线结构的功能如下:图2 流水线的6个阶段中的各个操作第56页,共189页。 4. 寻址A: 即寻址操作数。在T4机器周期内,根据指令的不同,CPU 将数据1和数据2(如果有)的读
29、地址分别加载到DAB和CAB,并对辅 助寄存器和堆栈指针进行修正。 此过程是2阶段操作数读顺序的第一阶段,给出的是读的地址。 这6级流水线结构的功能如下:图2 流水线的6个阶段中的各个操作第57页,共189页。 5. 读数R: 在T5机器周期内,CPU将从数据总线DB和CB上读入该读 操作数。如果是并行操作指令,则将数据3的写地址加载到EAB上。 此过程是2阶段操作数读顺序的第二阶段,同时是2阶段操作数写顺 序的开始。D、A、R完成了数据读入。 这6级流水线结构的功能如下:图2 流水线的6个阶段中的各个操作第58页,共189页。 6. 执行X:在T6机器周期内,CPU按照操作码要求执行指令,并
30、将写数 据3加载到EB,写入指定的存储单元,完成操作数写序列。 指令在本阶段中被执行。R、X完成了数据写。 这6级流水线结构的功能如下:图2 流水线的6个阶段中的各个操作第59页,共189页。如CPU访问DARAM会发生时序冲突的情况: 同时从同一存储块中取指令和读操作数; 同时对同一存储块进行写操作和读第2操作数。 C54x的流水线结构,允许多条指令同时利用CPU的内部资源。由于CPU资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序(流水线)冲突。 解决办法: 由CPU通过延时自动解决; 通过程序解决,如重新安排指令或插入NOP指令。 流水线冲突:第60页,共189页。第3
31、章 C54x DSP中断系统 中断定义中断分类中断标志寄存器和中断屏蔽寄存器中断响应过程重新映射中断向量地址第61页,共189页。 中断系统是DSP应用系统实现实时操作和多任务多进程操作的关键部分。 C54x的中断系统根据芯片型号的不同,提供了2430个硬件及软件中断源,分为1117个中断优先级,可实现多层任务嵌套。第62页,共189页。中断:CPU正处理某件事情(执行程序)时,外部发生了某一事件并向CPU发信号请求去处理,CPU暂时中断当前工作,转去处理这一事件(进入中断服务程序),处理完再回来继续原来的工作。实现这种功能的部件称为中断系统。产生中断的请求源称为中断源。一、定义1. C54x
32、中断定义第63页,共189页。硬件和软件驱动都可以使C54x 产生中断。 硬件中断是由外围设备信号产生的中断,有两种形式: 受外部中断信号(A/D、D/A及其他处理器)触发的外部硬件中断 由片内外设电路(定时器、串行口、HPI等)引起的内部硬件中断 软件中断一般由程序指令(INTR、TRAP、RESET等)引起。二、硬件中断和软件中断第64页,共189页。三、中断优先级软件中断不分优先级。硬件中断有优先级,当多个硬件中断同时触发时,C54x按照它们的优先级顺序进行处理,优先级较高的中断会被先处理(1表示最高优先级) 。在一个实际DSP应用中,不同的中断可能在任何时间或相同时间发生,因此,对DS
33、P来说,必须划分中断的优先级,ISR按照这个次序执行。故通常对每个中断类型设置一个中断优先级。VC5402有30个中断源和16个中断优先级,RS优先级最高。第65页,共189页。表1 VC5402的30个中断和16个优先级第66页,共189页。表1 VC5402中断和优先级(续)第67页,共189页。 C54x 的中断分两类:可屏蔽中断和不可屏蔽中断 可屏蔽中断:可通过软件设置来屏蔽或使能。 可屏蔽中断受ST1寄存器中全局中断屏蔽位INTM和中断屏蔽寄存器 IMR中相应位的影响。 当INTM=0时,IMR中某位为1,则开放相应中断。 C54x最多可以支持16个用户可屏蔽中断(SINT15SIN
34、T0)。 有的处理器只用了其中的一部分,如VC5402只有13个可屏蔽中断。 有些中断又有两个名称,因为这些中断可以通过软件或硬件进行初 始化。2. C54x中断分类第68页,共189页。INT3INT0(外部中断)BRINT0/1、BXINT0/1(串行口中断)TINT0、TINT1(定时器中断)DMAC4、DMAC5(DMA中断)HPINT(HPI中断) C54x 的中断可分两类:可屏蔽中断和不可屏蔽中断VC5402的13个硬件可屏蔽中断:第69页,共189页。 非屏蔽中断:这些中断是不能够屏蔽的。 C54x对这一类中断总是响应,并从主程序转移到中断服务程序。 包括所有的软件中断和两个外部
35、硬件中断RS(复位)和NMI(非屏蔽 中断),可通过硬件控制也可通过软件控制。 RS对C54x所有操作方式产生影响。 NMI中断不会对C54x的任何操作方式产生影响。但其中断响应时,所 有其他中断将被禁止。一般,它被分给时间关键的中断资源。第70页,共189页。表1 VC5402中断和优先级非屏蔽中断第71页,共189页。表1 VC5402中断和优先级(续)可屏蔽中断第72页,共189页。3.IFR 和IMR C54x中断系统设置两个中断寄存器:中断标志寄存器IFR和中断 屏蔽寄存器IMR。都是存储器映射的CPU寄存器。1. 中断标志寄存器IFR对各硬件中断进行标志,当一个中断出现时,IFR中
36、的相应的中断标志位置1,直到被CPU识别为止。2. 中断屏蔽寄存器IMR主要用来使能或禁用除RS和NMI外的硬件中断。若ST1中INTM=0,IMR中某位置1,就能开放相应的中断。第73页,共189页。4.中断响应过程 C54x的中断控制主要是屏蔽某些中断,避免其他中断对当前运行 程序的干扰,以及防止同级中断之间的响应竞争。 中断处理过程可分三个阶段: 1. 中断请求 2. 中断响应 3. 执行中断服务程序ISR第74页,共189页。 一个中断由硬件器件或者软件指令请求。 如果请求的中断是可屏蔽中断,则不管该中断是否被处理器应答, IFR寄存器中相应的中断标志位都被置1。当请求的中断响应后,该
37、 标志位自动被清除。(1)硬件中断请求 外部硬件中断,由外部中断口的信号发出请求; 内部硬件中断,由片内外设的信号发出中断请求。1. 接收中断请求(2)软件中断请求 软件中断由如下程序指令发出中断请求: INTR K ; TRAP K; RESET 第75页,共189页。 软件中断和不可屏蔽中断会立即被响应。 对于可屏蔽中断,要满足三个条件才能被CPU响应: 当前中断优先级最高(同时出现多个中断时) INTM位为0 ,即全局中断开放 IMR中相应位为1 ,即该中断开放 满足上述条件后,CPU响应中断,终止当前正在进行的操作; INTR指令会强制PC转到相应的中断向量地址,取出中断服务 程序地址
38、; CPU在取到软件向量的第一个字后会发出中断响应信号/IACK (中断应答),对可屏蔽中断,/IACK会清除IFR中相应的中断 标志位。2. 中断响应第76页,共189页。当中断响应后,CPU会进行如下操作:保存现场,将程序计数器PC的值压入堆栈。远程返回指令 FRETE可以用于从ISR返回。(2) 将中断向量的地址加载到PC(3) 从中断向量所指向的地址开始取指(4) 执行分支转移指令,进入用户自定义的中断服务程序(5) 执行ISR直到出现返回指令(6) 从堆栈中弹出返回地址到PC中(7) 继续执行主程序。3. 执行中断服务程序ISR第77页,共189页。5.重新映射中断向量地址 中断向量
39、地址由PMST寄存器中的IPTR(9位中断向量地址指针) 和 左移两位后的中断向量号K(031,左移两位后再变成7位)组成。 复位时,IPTR所有的位被置1(IPTR=1FFH),并按此值将复位向 量映射到程序存储器。故硬件复位后总是从FF80H开始执行程序。 加载除1FFH之外的值到IPTR后,中断向量可以映射到其他地址。 DSP中提供的中断是以中断向量表的形式出现的。第78页,共189页。图2 中断向量地址的产生示例例: INT0的中断向量号K为16第79页,共189页。第4章 C54x DSP的软件体系 汇编语言源程序的格式汇编指令寻址方式公共目标文件格式汇编语言程序设计 CCS开发调试
40、工具第80页,共189页。 助记符指令语法格式label: mnemonic operand list ;comment标号区: 助记符区 操作数区 ;注释区 代数指令语法格式标号区: 指令 ;注释区一、汇编语言源文件格式助记符(指令)一定不能从第一列开始,否则视为标号。所有语句必须以标号、空格、*或 ;开头。用作标号的符号在程序中表示地址。第81页,共189页。助记符指令语法格式:标号区: 助记符 操作数 ;注释区SYM1 .set 2 ;符号SYM1=2start: LD # SYM1,AR1 ;将2装入AR1 .word 016H ;初始化字( 016H ) RET ;返回代数指令语法格
41、式:标号区: 指令 ;注释区SYM1 .set 2 ;符号SYM1=2start: AR1= #SYM1 ;将2装入AR1 .word 016H ;初始化字( 016H )第82页,共189页。算数运算指令逻辑运算指令程序控制指令装载和存储(数据传送)指令TMS320C54x的指令系统共有129条基本指令,由于操作数的寻址方式不同,又可派生至205条指令。按功能分为如下几类:二、汇编指令第83页,共189页。表4-2 指令系统中的符号和缩写第84页,共189页。第85页,共189页。第86页,共189页。第87页,共189页。第88页,共189页。表4-3-1 加法指令 算术运算指令第89页,
42、共189页。表4-3-2 减法指令算术运算指令第90页,共189页。算术运算指令表4-3-3 减法指令(续)第91页,共189页。表4-3-4 乘法指令算术运算指令第92页,共189页。表4-3-5 乘加和乘减指令 算术运算指令第93页,共189页。算术运算指令表4-3-5 乘加和乘减指令(续) 第94页,共189页。表4-3-6 双精度(32位操作数)指令算术运算指令第95页,共189页。表4-3-7 专用指令算术运算指令第96页,共189页。表4-4-1 与逻辑运算指令逻辑运算指令第97页,共189页。表4-4-2 或逻辑运算指令逻辑运算指令第98页,共189页。表4-4-3 异或逻辑运算
43、指令逻辑运算指令第99页,共189页。表4-4-4 移位逻辑运算指令逻辑运算指令第100页,共189页。表4-4-5 测试指令逻辑运算指令第101页,共189页。表4-5-1 分支转移指令程序控制指令第102页,共189页。表4-5-2 子程序调用指令程序控制指令第103页,共189页。表4-5-3 中断指令程序控制指令第104页,共189页。表4-5-4 返回指令程序控制指令第105页,共189页。表4-5-5 重复指令程序控制指令第106页,共189页。表4-5-6 堆栈操作指令程序控制指令第107页,共189页。表4-5-7 混合程序控制指令程序控制指令第108页,共189页。表4-6-
44、1 加载指令加载和存储指令第109页,共189页。表4-6-2 存储指令加载和存储指令第110页,共189页。表4-5-3 条件存储指令加载和存储指令第111页,共189页。表4-6-4 并行加载和存储指令加载和存储指令第112页,共189页。表4-6-5 并行加载和乘法指令加载和存储指令第113页,共189页。表4-6-6 并行存储和加/减法指令加载和存储指令第114页,共189页。表4-6-7 并行存储和乘法指令加载和存储指令第115页,共189页。表4-6-8 混合加载和存储指令(数据块传送指令)加载和存储指令第116页,共189页。 C54x有7种基本的数据寻址方式: 立即寻址 绝对寻
45、址 累加器寻址 直接寻址 间接寻址 MMR寄存器 寻址 堆栈寻址:指令提供一个操作数:指令提供一个操作数地址:以累加器内容为地址访问程序空间某单元:寻址地址为DP或SP加上指令提供的偏移量:利用辅助寄存器访问存储器:用来改变MMR寄存器:用来管理系统堆栈中的操作第117页,共189页。寻址方式用 途举 例指令含义立即寻址主要用于初始化LD #10,A立即数10 A绝对寻址用16位地址寻址存储单元STL A,*(y)将AL内容存入y所在的存储单元累加器寻址累加器中的内容作为地址READA x将A的内容作为地址读程序存储器,并存入x存储单元直接寻址利用DP指针和SP指针寻址LD x,A(DP+x的
46、低7位地址) A间接寻址辅助寄存器作为地址指针LD *AR1,A(AR1) A存储器映射寄存器寻址快速寻址MMRLDM ST1,B(ST1) B堆栈寻址压入/弹出RAM和MMRPSHM AG(SP)-1 SP,(AG) (SP)第118页,共189页。部分寻址缩略语 缩略语 含 义Smem16位单寻址操作数Xmem16位双寻址操作数,用于双操作数或部分单操作数指令,从DB数据总线上读取Ymem16位双寻址操作数,用于双操作数指令,从CB数据总线上读取dmad16位立即数:数据存储器地址(065 535)pmad16位立即数:程序存储器地址(065 535)PA16位立即数:I/O口地址(065
47、 535)src源累加器(A或B)dst目的累加器(A或B)lk16位长立即数第119页,共189页。指令中含有一个固定的立即数 LD #0,ARP ;ARP=2(#k3) LD #3,ASM ;ASM=3(#k5) LD #50,DP ;DP=50(#k9) LD #1234,A ;A=1234(#lk) STM #FFFFh,IMR ;IMR=FFFFh(#lk)立即数寻址示例第120页,共189页。绝对寻址示例指令中含有所要寻找的操作数的16位存储单元地址数据存储器地址(dmad)寻址: MVDK Smem, dmad MVDM dmad, MMR MVKD dmad, Smem MVM
48、D MMR, dmad程序存储器地址(pmad)寻址: MACD Smem, pmad, src MACP Smem, pmad, src MVDP Smem, pmad MVPD pmad, Smem端口地址(PA)寻址 PORTR PA, Smem PORTW Smem, PA*(lk)寻址适用于支持单数据存储器操作数的指令 第121页,共189页。1. MVDK Smem,dmad 功能描述:把一个单数据存储器操作数Smem的内容复制到一个通过dmad(地址在EAB地址寄存器EAR中)寻址的数据存储器单元。可以循环执行该指令来转移数据存储器中的连续字。数据存储器地址(dmad)寻址第12
49、2页,共189页。例4.32 MVDK DAT10,8000H Data Memory 第123页,共189页。2. MVKD dmad, Smem功能描述:把数据从一数据存储器单元转移到另一个数据存储器单元中。源数据存储器单元由一个16 bit立即数dmad寻址,然后转移到Smem中。循环执行该指令可以转移数据存储器中的连续字(使用间接寻址)。第124页,共189页。例4.36 MVKD 1000H,*+AR5 Data Memory 第125页,共189页。 1. MACD Smem,pmad,src 功能描述:一个单数据存储器值Smem与一个程序存储器值pmad相乘,乘积和源累加器src
50、的值相加,结果存放在src中。另外,还把数据存储器值Smem装入到T寄存器和紧接着Smem地址的数据单元中去。该指令受FRCT和OVM的影响,并影响到OVsrc。程序存储器地址(pmad)寻址第126页,共189页。Program Memory 例4.75 MACD *AR3,COEFFS,A 第127页,共189页。2. MVDP Smem,pmad功能描述:把严格的16 bit单数据存储器操作数Smem复制到一个由16 bit立即数pmad寻址的程序存储器单元中。通过循环执行该指令可以把数据存储器中的连续字(使用间接寻址)转移到由16 bit立即数寻址的连续的程序存储器空间中。第128页,
51、共189页。例4.35 MVDP DAT0,0FE00H Data Memory Program Memory 第129页,共189页。端口地址(PA)寻址1. PORTRPA,Smem ;(PA)Smem功能描述:从一个外部I/O口PA(地址为16 bit立即数)把一个16 bit数读入到指定的数据存储器单元Smem中。2. PORTW Smem,PA ;(Smem)PA功能描述:把指定的数据存储器单元Smem中的16 bit数写到外部I/O口PA中去。第130页,共189页。例4.41 PORTR 05H,INDAT ;INDAT .equ 60H I/O Memory Data Memo
52、ry 第131页,共189页。例4.42 PORTW OUTDAT,05H ;OUTDAT .equ 07H I/O Memory Data Memory 0007H 7FFA 7FFA 0087H 第132页,共189页。 例如,把数据空间中地址为BUFFER单元中的数据传送到累加器A,指令可写为: LD *(BUFFER),A 采用一个符号或是一个特定的值来指明数据空间的地址。适用于所有支持单数据存储器操作数的指令。长立即数 *(Ik)寻址第133页,共189页。累加器寻址示例 将累加器的内容作为地址去访问程序存储单元,即将累加器中的内容作为地址,用来对存放数据的程序存储器寻址。 用于完成
53、程序存储空间与数据存储空间之间的数据传输。第134页,共189页。READA Smem功能:把累加器A所确定的程序存储器单元中的一个字,传送到单数据存储器(Smem)操作数所确定的数据存储器单元中。2. WRITA Smem功能:把Smem操作数所确定的数据单元中的一个字,传送到累加器A所确定的程序存储器单元中去。第135页,共189页。Program Memory Data Memory 例4.43 READA DAT6 第136页,共189页。例4.44 WRITA DAT5 Program Memory Data Memory 第137页,共189页。直接寻址示例指令中只含有数据存储器的
54、低7位地址(偏移地址dmad);利用数据指针DP和堆栈指针SP寻址。所要寻址的数据存储器16位地址是由基地址和偏移地址构成。CPL=0时,数据存储器16位地址由DP和偏移地址dmad构成;CPL=1时,数据存储器16位地址由SP加偏移地址dmad构成。直接寻址标识: 变量前加,如x; 在偏移量前加,如5。 第138页,共189页。例:RSBX CPL ;基地址为DP LD #3,DP ;设置当前页面为3 LD x,A ;将x值加载到累加器A LD #4,DP ;设置当前页面为4,y所在的页面 ADD y,A ;将y值加到累加器A第139页,共189页。例4.7 LD *AR4,DP Data
55、Memory 间接寻址示例根据辅助寄存器(AR0AR7)给出的16位地址进行寻址第140页,共189页。例4.6 LD *AR3+,TData Memory 第141页,共189页。例4.48 ADDC *+AR2(5), A Data Memory ;(Smem)+(src)+(C)srcADDC Smem,src第142页,共189页。存储器映像寄存器寻址示例 LDM MMR,dst ;将MMR加载到累加器 MVDM dmad,MMR ;数据存储器向MMR传送数据 MVMD MMR,dmad ;MMR向指定地址传送数据 MVMM MMRx,MMRy ;MMRx向MMRy传送数据 POPM
56、MMR ;将数据从栈顶弹至MMR PSHM MMR ;将MMR数据压入堆栈 STLM src,MMR ;累加器低位存入MMR STM #lk,MMR ;长立即数lk存入MMR主要用于修改存储器映像寄存器的内容 第143页,共189页。1. LDM MMR,dst 功能描述:把存储器映射寄存器MMR中的值装入到目的累加器dst中。不管DP的当前值或ARx的高9位的值是多少,都把有效地址的高9位清0,以指定为在数据页0中。例4.12 LDM AR4,A 第144页,共189页。2. STLM src,MMR ;(src(15-0)MMR功能描述:把源累加器src的低端(150位)存放到存储器映射寄
57、存器MMR中。无论DP的当前值或ARx的高9位是多少,都对有效地址的高9位清0。指令允许src存放在数据第0页中的任何一个存储器单元中而不必修改状态寄存器ST0中的DP域。 例4.23 STLM A,BRC 第145页,共189页。堆栈寻址示例利用SP指针,按照先进后出的原则进行寻址 PSHD Smem ;将Smem中的数据压入堆栈 PSHM MMR ;将MMR中的数据压入堆栈 POPD Smem ;将数据从栈顶弹至Smem中 POPM MMR ;将数据从栈顶弹至MMR中第146页,共189页。例4.169 POPD DAT10 Data Memory 1. POPD Smem ; (TOS)
58、Smem,(SP)+1SP功能描述:把由SP寻址的数据存储器单元的内容转移到由Smem确定的数据存储器单元中。然后SP执行加1操作。第147页,共189页。Data Memory 例4.170 POPM AR5 2. POPM MMR ; (TOS)MMR,(SP)+1SP功能描述:把由SP寻址的数据存储器单元的内容转移到指定的存储器映射寄存器MMR中。然后SP执行加1操作。第148页,共189页。例4.171 PSHD *AR3+ Data Memory 3. PSHD Smem ;(SP)-1SP,(Smem)TOS功能描述:SP执行减1操作后,把存储器单元Smem的内容压入堆栈指针SP指
59、向的数据存储器单元中去。第149页,共189页。例4.155 INTR 3 Data Memory 4. 中断指令(压栈)INTR k ;(SP)-1SP,(PC)+1TOS,中断向量PC, 1INTM该指令影响INTM和IFR第150页,共189页。例4.160 RET Data Memory 5. RETD ;(TOS)PC,(SP)+1SP功能描述(出栈):把栈顶TOS单元中的16 bit数据弹入到程序指针PC中,堆栈指针SP加1。第151页,共189页。Data Memory 例4.150 CALA A 6. 子程序调用指令(压栈)CALAD src非延迟调用:(SP) -1SP,(P
60、C)+1TOS, (src(15-0)PC延迟调用:(SP) -1SP,(PC)+3TOS,(src(15-0)PC第152页,共189页。例:计算 ,主要程序如下: .bss x, 10 ;为变量分配11个字的空间 .bss y, 1 STM #x,AR1 ;设置数据段的首地址 STM #9,AR2 ;AR2作为循环计数器,初值为9,执行10次加法 LD #0,A ;累加器清0loop:ADD *AR1+,A ;累加运算,并修改地址 BANZ loop, *AR2- ;若计数值不为0,则循环,并计数值减1 ;若计数值为0,则结束循环 STL A,y ;累加和存入y中循环操作程序BANZ举例第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省临安市高三生物上册期末考试测试卷(含答案)
- 2026年黑龙江省铁力市高一化学上册期末考试模拟检测卷含答案(夺分金卷)
- 2026年吉林省和龙市高三生物上册期末考试测试卷及答案
- 2026年江苏省如皋市高三生物上册期末考试自测卷(含答案)
- 2026年山东省肥城市高三物理下册期末考试模拟测试卷及答案
- 2026年辽宁省凤城市高三物理下册期末考试模拟考试卷及参考答案
- 2026年山东省新泰市高三生物上册期末考试模拟卷含答案
- 2026年安徽省巢湖市高三生物上册期末考试检测卷(含答案)
- 2026年陕西省兴平市高一化学上册期末考试模拟测试卷(突破训练)附答案
- 2026年江苏省靖江市高三生物下册期末考试模拟测试卷(含答案)
- 2026年湖南工业职业技术学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 中国膝骨关节炎关节腔注射治疗专家共识(2026版)解读
- 山东省2027综合评价招生《综合素质测评》模拟试卷C卷
- 孕产妇脓毒症的高危因素与早期识别
- 智慧工地项目数据台账管理手册
- 电子档案和档案数字化副本移交接收规范
- 围手术期高血糖患者营养支持治疗管理专家共识(2025版)
- 《成人住院患者跌倒风险评估及预防》(T-CNAS 09-2020)团体标准解读与临床实施规范
- 2025中华护理学会团体标准-成人吞咽障碍患者口服给药护理
- 2026年江苏消防文员考试试题及答案
- 临床科学防治颈椎病守护颈部健康关键策略
评论
0/150
提交评论