版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章TMS320C54x的硬件结构
知识要点:引脚功能、内外部总线结构、CPU结构、内部存储器结构、片内外设电路、系统控制等。2.1C54x的基本结构TMS320C54x是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要。TMS320C54x具有的主要优点如下:①围绕1组程序总线、3组数据总线和4组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。②具有高度并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。③具有完善的寻址方式和高度专业化指令系统,更适应于快速算法的实现和高级语言编程的优化。④模块化结构设计,使派生器件得到了更快的发展。⑤采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能。⑥采用先进的静态设计技术,进一步降低了功耗,提高芯片性能TMS320C54x系列DSP芯片内部结构由10部分组成如下图所示。各部分功能如下:①中央处理器(CPU)它是DSP芯片的核心。采用流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。②内部总线结构有8组16位总线,可在一个指令周期内产生两个数据存储地址,实现流水线并行数据处理。③特殊功能寄存器’C54x系列有26个特殊功能寄存器,用来对片内各功能模块进行管理、控制、监视。它们位于具有特殊功能的RAM区。④数据存储器RAM⑴双寻址RAM:在一个指令周期内,可对其进行两次存取操作,一次读出和一次写入。⑵单寻址RAM:在一个指令周期内,只能进行一次存取操作。⑤程序存储器ROM不同的’C54x器件ROM的容量配置不同。程序存储器可由ROM和RAM配置而成。⑥I/O口(扩展功能)’C54x系列芯片只有两个通用I/O引脚。BIO主要用来监视外部设备工作状态,XF用来发信号给外部设备。配有HPI和同步串行口和64K字I/O空间,HPI和同步串行口可以通过配置,用作通用I/O使用。⑦串行口串行口功能不同,可分为4种:单通道同步串行口SP、带缓冲器单通道同步串行口BSP、并行带缓冲器多通道同步串行口McBSP及时分多通道带缓冲器串行口TMD。⑧主机接口HPIHPI是一个与主机通信的并行接口,主要用于DSP与其他总线或CPU进行通信。信息可通过’C54x的片内存储器与主机进行数据交换。分为8位标准HPI接口、8位增强型HPI接口、16位增强型HPI接口。⑨定时器定时器是一个软件可编程的计数器,用来产生定时中断。可通过设置特定的状态来控制定时器的停止、恢复、复位和禁止。⑩中断系统’C54x的中断系统具有硬件中断和软件中断。硬件中断:由外围设备信号引起的中断。分为:片外外设引起的硬件中断、片内外设所引起的硬件中断。软件中断:由程序指令(INTR、TRAP和RESET)所引起的中断。中断管理的优先级为11~16个固定级,有4种工作方式。2.2C54x的主要特性和外部引脚
2.2.1C54x的主要特性1.CPU①采用先进的多总线结构②40位算术逻辑运算单元ALU③17×17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算④比较、选择、存储单元,可用于Viterbi译码器的加法-比较-选择运算⑤指数编码器,单周期内计算40位累加器的指数⑥有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元2.存储器①可访问最大存储空间为64千字的程序存储器、64千字的数据存储器和64千字的I/O空间②片内ROM,可配置为程序存储器和数据存储器③片内RAM两种类型,即DARAM和SARAM3.指令系统①支持单指令重复和块指令重复操作②支持存储器块传送指令③支持32位长操作数指令④支持2操作数或3操作数的读指令⑤具有能并行存储和并行加载的算术指令⑥支持条件存储指令及中断快速返回指令4.在片外围电路①具有软件可编程等待状态发生器②设有可编程分区转换逻辑电路③有片内锁相环(PLL)发生器④支持全双工操作的串行口,可进行8位或16位串行通信⑤带4位预定标器的16位可编程定时器⑥设有与主机通信的并行接口(HPI)⑦具有外部总线判断控制,以断开外部总线信号⑧数据总线具有总线保持器特性5.电源①具有多种节电模式,可用IDLE1~3控制功耗②可在软件控制下,禁止CLKOUT输出信号6.片内仿真接口①具有符合IEEE1149.1标准的片内仿真接口7.速度①5.0V电压器件,速度40MIPS,指令周期25ns②3.0V电压器件,速度80MIPS,指令周期12.5ns③2.5V电压器件,速度100MIPS,指令周期10ns④1.8V电压器件,速度200MIPS,指令周期10ns2.2.2C54x的引脚功能
’C5402共有144个引脚,引脚分布如下图。按其功能可分为电源引脚、时钟引脚、控制引脚、地址和数据引脚、串行口引脚、主机接口引脚、通用I/O引脚和测试引脚八个部分。
①电源引脚
’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),接地②时钟引脚
’C5402的时钟发生器由内部振荡器和锁相环PLL构成,引脚功能如表2.2.1所示
③控制引脚控制引脚用来产生和接收外部器件的各种信号,引脚功能如表2.2.2所示。④地址和数据引脚
’C5402芯片共有20个地址引脚,可寻址1兆字的外部程序空间、64K字外部数据空间和64K字的片外I/O空间在保持方式或EMU1/OFF为低电平时,A15~A0呈高阻状态。A19~A16用于扩展程序存储器寻址。’C5402芯片共有16条数据引脚,用于在处理器、外部数据存储器、程序存储器和I/O器件之间进行16为数据并行传输。在下列情况下,D15~D0将呈现高阻状态当没有输出时;当RS有效时;当HOLD有效时;当EMU1/OFF为低电平时。⑤串行口引脚
’C5402器件有两个McBSP串行口,引脚功能如表2.2.3所示表2.2.3串行口引脚功能⑥主机接口(HPI)引脚
HPI接口是一个8位并行口,用来与主设备或主处理器接口,实现DSP与主设备或主处理器间的通信。引脚功能如表2.2.4所示。
⑦通用I/O引脚’C5402有2个通用的I/O引脚,分别为:
·XF(27),外部标志输出信号,用于发送信号给外部设备
·BIO(31),控制分支转移的输入信号,用来检测外部设备状态。当BIO=0时,执行条件转移指令。
⑧测试引脚其引脚有:
·TCK·TDI·TDO·TMS·TRST·EMU0·EMU1/OFF2.3C54x的内部总线结构TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。8组总线分为1组程序总线、3组数据总线和4组地址总线。①程序总线程序总线PB主要用来传送取自程序存储器的指令代码和立即操作数。②数据总线在’C54x内部结构中,3条数据总线(CB、DB和EB)分别与不同的功能单元相连接。CB和DB总线用来传送从数据存储器读出的数据,而EB用来传送写入存储器的数据。③地址总线’C54x的地址总线共有4组,分别为PAB、CAB、DAB和EAB,主要用来提供执行指令所需的地址。’C54x可以利用辅助寄存器算术运算单元,在一个周期内产生两个数据存储器的地址。’C54x还为片内通信提供了片内双向总线,用于寻址片内外围电路。下表列出了各种寻址方式所用到的总线情况:表2.3.1列出了各种寻址方式所用到的总线情况。2.4C54x的中央处理器中央处理器CPU是DSP器件的核心部件,它的性能直接关系到DSP器件的性能。’C54x的CPU采用了流水线指令执行结构和相应的并行结构设计,使其能在一个指令周期内,高速地完成多项算术运算。CPU基本组成如下:·40位算术逻辑运算单元(ALU)·2个40位累加器(ACCA、ACCB)·1个支持16~31位移位的桶形移位寄存器·乘法器-加法器单元(MAC)·比较、选择和存储单元(CSSU)·指数编码器·CPU状态和控制寄存器2.4.1算术逻辑运算单元(ALU)’C54x使用40为的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。功能框图如图2.4.1所示。
图2.4.1ALU的功能框图’C54x的大多数算术逻辑运算指令都是单周期指令,其运算结果通常自动送入目的累加器A或B。但在执行存储器到存储器的算术逻辑运算指令时(如ADDM等),其运算结构则存入指令指定的目的存储器。①ALU的输入和输出根据输入源的不同,ALU采用不同的输入方式。⑴ALU的X输入源⑵ALU的Y输入源⑶ALU输入数据的预处理⑷ALU的输出②溢出处理ALU的饱和逻辑可以对运算结果进行溢出处理。当发生溢出时,将运算结果调整为最大正数(正向溢出)或最小负数(负向溢出)。这种功能对滤波器计算非常有用。当运算结果发生溢出时:⑴若OVM=0,则对ALU的运算结果不进行任何调整,直接送入累加器。⑵若OVM=1,则需对ALU的运行结果进行调整。当正向溢出时,将32位最大正数007FFFFFFFH装入累加器;当负向溢出时,将32位最小负数FF80000000H装入累加器。⑶状态寄存器ST0中与目标累加器相关的溢出标志OVA/OVB被置1。③进位位CALU有一个与运算结果有关的进位位C,位于ST0的11位。进位位C受大多数ALU操作指令的影响,包括算术操作、循环操作和移位操作。进位位C的功能:1.用来指明是否有进位发生;2.用来支持扩展精度的算术运算;3.可作为分支转移、调用、返回和条件操作的执行条件。进位位C仅用于算术操作的溢出管理。④双16位算术运算若要将ST1中的C16置位,则ALU进行双16位算术运算,即在一个机器周期内完成两个16位数的算术运算,进行两次16位加法或两次16位减法运算。双16位算术运算对于Viterbi加法/比较/选择操作特别有用。⑤其他控制位TC—测试/控制标志,位于ST0的12位;ZA/ZB—累加器结果为0标志位2.4.2累加器A和B’C54x芯片有两个独立的40位累加器A和B,可作为ALU或MAC得目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。在执行并行指令和一些特殊指令时,两个累加器中的一个用于装载数据,而另一个用于完成运算。累加器A和B之间的惟一区别是累加器A的32~16位能被用作乘法-累加单元中的乘法器输入,而累加器B不能。累加器A和B都可以分为三部分,如图2.4.2所示。
使用STH、STL、STLM和SACCD等指令或并行存储指令,可将累加器的内容存放到数据存储器中。在存储过程中,有时需要对累加器的内容进行移位操作。若右移时,AG和BG中的各数据位分别移至AH和BH;左移时,AL和BL中的各数据分别移至AH和BH,而AL和BL的低位添0。图2.4.2累加器A和B的结构
[例2.4.1]假设累加器A=FF01234567H,分别执行带移位的STH和STL指令后,数据存储单元T中的结果如下:STHA,8,T;A内容左移8位后,AH存入T中,T=2345H,A的内容不变STHA,-8,T;A内容右移8位后,AH存入T中,T=FF01H,A的内容不变STLA,8,T;A内容左移8位后,AH存入T中,T=6700H,A的内容不变STLA,-8,T;A内容右移8位后,AH存入T中,T=2345H,A的内容不变
2.4.3桶形移位寄存器TMS320C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标。它能将输入数据进行0~31位的左移和0~16位的右移。所移动的位数可由ST1中的ASM或被指定的暂存器T决定。桶形移位寄存器由多路选择器MUX、符号控制SC、移位寄存器和写选择电路MSW/LSW等构成,功能框图如图2.4.3所示。
①桶形移位寄存器的输入40位桶形移位寄存器的输入数据为以下数据中的任何一个:图2.4.3桶形移位寄存器的功能
⑴取自DB数据总线的16位输入数据;⑵取自DB和CB扩展数据总线的32位输入数据;⑶来自累加器A或B的40位输入数据。②桶形移位寄存器的输出桶形移位寄存器的输出接至:⑴算术逻辑运算单元ALU的一个输入端;⑵经写选择电路输出至EB总线③桶形移位寄存器的功能主要是为输入的数据定标,功能:⑴在进行ALU运算之前,对输入数据进行数据定标;⑵对累加器中的内容进行算术或逻辑移位;⑶对累加器进行归一化处理;⑷在累加器的内容存入数据存储器之前,对存储数据进行定标。④桶形移位寄存器的操作⑴完成操作数的符号位扩展根据SXM位控制操作数进行带符号位/不带符号位扩展。⑵完成操作数的移位根据指令中的移位数控制操作数的移位。移位数全部用二进制补码表示,正值时完成左移,负值时完成右移。移位数有三种形式:立即数,取值范围:-16~15;状态寄存器ST1中的移位方式位ASM,共计5位,取值范围:-16~15;数据暂存器T中的低6位数值,取值范围:-16~31;这种移位操作能使CPU完成数据的定标、位提取、扩展算术和溢出保护等操作。【例2.4.2】对累加器A执行不同的移位操作。
ADD A,-4,B; 累加器A右移4位后加到累加器B中。ADD A,ASM,B;累加器A按ASM规定的移位数移位后加到累加器BNORM A;按T寄存器中的数值对累加器归一化2.4.4乘法-累加单元(MAC)’C54x的乘法-累加单元MAC是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器等几部分组成,功能框图如图2.4.4所示。
图2.4.4MAC功能框图MAC单元可在一个流水线周期内完成1次乘法运算和1次加法运算。MAC单元包含一个17×17位硬件乘法器,可完成有符号数和无符号数的乘法运算。乘法器的XM输入数据来自T寄存器、累加器A的32~16位以及由DB总线提供的数据存储器操作数;YM输入的数据可以取自累加器A的32~16位、由DB总线和CB总线提供的数据存储器操作数以及由PB总线传送过来的程序存储器操作数。MAC单元的乘法器能进行有符号数、无符号数以及有符号数与无符号数的乘法运算。根据操作数的不同情况进行以下处理:①若是两个有符号数相乘,则在进行乘法运算之前,先对两个16位乘数进行符号位扩展,形成17位有符号数后再进行相乘。②若是两个无符号数相乘,则在两个16位乘数的最高位前面添加“0”,扩展为17位乘数后再进行乘运算。③若是有符号数与无符号数相乘,则有符号数在最高位前添加1个符号位,其值由最高位决定,而无符号数在最高位前面添加“0”,然后两个操作数相乘2.4.5比较、选择和存储单元(CSSU)
’C54x的比较、选择和存储单元是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择操作。功能框图如图2.4.5所示。图2.4.5比较、选择和存储单元功能框图CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。工作过程如下:①比较电路COMP将累加器A或B的高阶位与低阶位进行比较;②比较结果分别送入状态转移寄存器TRN和状态寄存器TC位中,记录比较结果以便程序调试;③比较结果送入写选择电路,选择较大的数据;④将选择的数据通过总线EB存入指定的存储单元。图2.4.AViterbi算法示意图2.4.6指数编码器(EXP)在数字信号处理中,为了提高计算精度,常采用数值的浮点表示法,即把一个数值分为指数部分和尾数部分。指数部分为数值的阶次,尾数部分为数值的有效值。指数编码器如图2.4.6所示。累加器A累加器BT寄存器EXP图2.4.6指数编码器
指数编码器它是一个用于支持指数运算指令的专用硬件,可以在单周期内执行EXP指令,求累加器中数的指数值。该指数值以二进制补码形式存入T寄存器中,范围为8~31位。
有了指数编码器,可以使用EXP和NORM指令对累加器的数值进行归一化处理。【例2.4.3】完成对累加器A的归一化处理EXP A;(多余符号位-8)→T寄存器ST T,EXPONENT;将保存在T寄存器中的指数存入指定的数据存储器中NORM A;对累加器A进行归一化处理,即A按T中的内容移位2.4.7CPU状态和控制寄存器’C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为:状态寄存器0(ST0);状态寄存器1(ST1);处理器工作方式状态寄存器(PMST)。ST0和ST1中包含各种工作条件和工作方式的状态,PMST中包含存储器的设置状态和其他控制信息。由于这些寄存器都是存储器映像寄存器,因此可以进行如下操作:将它们快速地存放到数据存储器;由数据存储器对它们进行加载;用子程序或中断服务程序保存和恢复处理器的状态①状态寄存器0(ST0)ST0主要用于反映处理器的寻址要求和计算的中间运行状态,结构图如图2.4.7所示。ARPTCCOVAOVBDPST015~1312111098~0图2.4.7状态寄存器0状态寄存器ST0各状态位的功能见表2.4.1。表2.4.1状态寄存器ST0各状态位的功能②状态寄存器1(ST1)ST1主要用于反映处理器的寻址要求、设置计算的初始状态、I/O及中断控制,其各位的定义如图2.4.8所示。ASMST1BRAFCPLXFHMINTMOOVMSXMC16FRCTCMPT151413121110987654~0图2.4.8状态寄存器1ASM状态寄存器ST1各状态位的功能见表2.4.2。表2.4.2状态寄存器ST1各状态位的功能③处理器工作方式状态寄存器(PMST)PMST主要用来设置和控制处理器的工作方式,反映处理器的工作状态,结构如图2.4.9所示。
IPTRMP/MCOVLYAVISDROMCLKOFFSMULSSTPMST15~76543210图2.4.9处理器工作方式状态寄存器PMSTPMST寄存器各状态位的功能见表2.4.3表2.4.3PMST寄存器各状态位的功能2.5C54x的存储空间结构TMS320C54x共有192千字的可寻址存储空间。这192千字的存储空间分成3个独立的可选择空间,分别为:64千字的程序存储空间64千字的数据存储空间64千字的I/O空间’C54x芯片都包括内部随机存储器和只读存储器。内部RAM又分为单寻址RAM和双寻址RAM。双寻址RAM在同一个周期内,CPU可对DARAM进行读和写操作。单寻址RAM在同一个周期内,只能进行一次读或写操作。’C54x的并行结构和内部RAM的双寻址能力,可使CPU在任何一个给定的机器周期内同时执行4次存储器操作,包括1次取指、2次读操作数和1次写操作数。与外部存储器相比,内部存储器有以下优点:不需要插入等待状态;成本低;功耗小。在C54想x系列芯片中,不同型号的芯片其内部存储器的配置有所不同。表2.5.1列出了各种C54x内部内部存储器的配置。表2.5.1各种C54x内部内部存储器的配置2.5.1存储空间结构’C54x所有内部和外部程序存储器及内部和外部数据存储器分别统一编址。内部RAM总是映射到数据存储空间,但也可映射到程序存储空间。根据用户的设置,ROM可以灵活地映射到程序存储空间,同时也可以部分地映射到数据存储空间。从图2.5.1可以看出,’C54x的存储器结构与处理器工作方式状态寄存器(PMST)的设置有关,用户可以通过PMST的3个控制位(MP/MC、OVLY和DROM)来配置存储器空间。存储器配置结构如图2.5.1所示。图2.5.1C5402存储器配置结构2.5.2程序存储空间程序存储空间用来存放要执行的指令和执行中所需的系数表。’C5402共有20条地址线,可寻址1MB外部程序存储器。内部ROM和DARAM可通过软件映射到程序空间。①程序存储空间的配置程序存储空间的配置程序存储空间可通过PMST寄存器的MP/MC和OVLY控制位来设置内部存储器的映射地址。MP/MC控制位用来决定程序存储空间是否使用内部存储器。
MP/MC工作方式
0
1微型计算机模式微处理器模式OVLY=1,片内RAM映像到程序和数据存储空间;OVLY=0,片内RAM只映像在数据存储空间②程序存储空间的分页扩展在TMS320C54x系列芯片中,有些芯片采用分页扩展的方法,使程序存储空间可扩展到1MB~8MB,如TMS320V5409和TMS320VC5416可扩展到8MB,而TMS320VC5402只有20条外部程序地址总线,其程序空间只能扩展到1MB。从图2.5.2可以看出,在第1~15页中,每一页分为两部分,低32K字和高32K字。如果MP/MC=0,内部ROM只能在第0页寻址,不能映射到程序空间的其他页。图2.5.2C5402扩展程序存储空间结构如果OVLY=1,程序存储空间使用内部RAM。此时,不论XPC为何值,扩展程序存储空间的所有低32KB(x0000H~x7FFFH)都被映射到内部RAM(0000H~7FFFH)中。扩展程序存储器的页号由XPC寄存器设定,XPC映射到数据存储器的001EH单元。硬件复位时,XPC被置0。③内部ROM
’C5402有4KB的内部ROM。当MP/MC=0,这4KB的ROM被映射到程序空间的地址范围F000H~FFFFH,其中高2KBROM中的内容由TI公司定义,如图2.5.3。这2KB程序存储空间包含如下内容:图2.5.3C5402内部ROM的内容引导程序256μ律扩展表256A律扩展表256字正弦函数值查找表中断向量表
处理器复位时,复位、中断及陷阱向量被映射到程序空间的FF80H。复位后,这些向量可以被重新映射到程序存储空间的任何一页开头。2.5.3数据存储空间数据存储空间用来存放执行指令所使用的数据,包括需要处理的数据或数据处理的中间结果。
①数据存储空间的配置’C54x数据存储空间共有64KB,采用片内和片外存储器统一编址。若DROM=0,内部ROM不映射到数据空间;若DROM=1,部分内部ROM映射到数据存储空间,并且当MP/MC=0时,内部ROM同时映射到数据空间和程序空间。每次复位时,处理器将对DROM位清零。图2.5.4为TMS320VC5402数据存储空间的结构。当DROM=0时,F000H~FEFFH定义为外部ROM,FF00~FFFFH为外部数据存储空间,此时数据存储空间不使用内部ROM;
当DROM=1时,F000~FEFFH定义内部ROM,FF00~FFFFH保留。②存储器映像寄存器在’C54x的数据存储空间中,前80H个单元包含的CPU寄存器和片内外设寄存器。这些寄存器全部映射到数据存储空间,所以也称做存储器映像寄存器MMR。
采用寄存器映射的方法,可以简化CPU和片内外设的访问方式。’C5402的CPU寄存器共有27个,映射到数据存储空间的地址为:0x0000H~0x001FH。主要用于程序的运算处理和寻访方式的选择及设定。CPU访问这些寄存器时,不需要插入等待时间。表2.5.2列出了27个CPU寄存器的名称和地址。
片内外设寄存器映射在数据存储空间的20H~5FH,主要用来控制片内外设电路的状态,可作为外设电路的数据存储器。包括串行口通信控制寄存器组、定时器定时控制寄存器组、时钟周期设定寄存器组。对它们寻址需要2个机器周期。片内外设寄存器存在于一个专用的外设总线结构中,它可以发送数据至外设总线或者从外设中接受数据。设置或清除寄存器的控制位可以激活、屏蔽或者重新配置外设状态。表2.5.3列出了TMS320C549的片内外设寄存器。
2.5.4I/O空间’C54x提供了一个具有64K的I/O空间,主要用于对片外设备的访问。可以用指令PORTR和PORTW对I/O空间寻址。所用到的总线除数据和地址总线,还要用到IOTRB、IS、R/W控制线。2.6C54x的片内外设电路片内外设主要包括:通用I/O引脚;定时器;时钟发生器;串行通信接口;主机接口HPI;软件可编程等待状态发生器;可编程分区转换逻辑。①通用I/O引脚每一种’C54x芯片提供了两个通用的I/O引脚:BIO和XF。
BIO为分支转移控制输入引脚,用来监控外部设备的运行状态。在实时控制系统中,对时间严格的循环程序中,可以用BIO引脚代替中断与外设连接,查询引脚状态,避免中断引起的失控。XF位外部标志输出引脚,主要用于程序向外设传输标志信息。可通过对状态寄存器ST1中的XF位的置位或复位,使该引脚输出高电平或低电平,从而控制外设。例如: SSBX XF;置位XF引脚 RSBX XF;复位XF引脚②定时器TMS320C54x的定时器是一个带有4位预分频器的16位减法器。这个减法计数器每来1个时钟周期自动减1,当计数器减到0时产生定时中断。通过编程设置特定状态可使定时器停止、恢复运行、复位或禁止。’C54x的定时器是一个可软件编程的计数器,包括以下3个存储器映像寄存器:定时设定寄存器TM,它是16位减法计数器定时周期寄存器PRD,16位寄存器(定时常数)定时控制寄存器TCR,包括分频系数TDDR,预标定计数器PSC、控制位TRB和TSS等。定时中断的周期:CLKOUTC×(TDDR+1)×(PRD+1)
其中:CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。
若要关闭定时器,只要将TCR的TSS位置1,就能切断时钟输入,定时器停止工作。③时钟发生器时钟发生器为CPU提供时钟信号,由内部振荡器和锁相环(PLL)电路两部分组成。可通过内部的晶振或外部的时钟源驱动。④主机接口HPI主要用于DSP与其他总线或主处理机进行通信。HPI接口通过HPI控制器、地址寄存器、数据锁存器和HPI内存块实现与主机通信。主要特点如下:接口所需要的外部硬件比较少;HPI单元允许芯片直接利用一个或两个数据选通信号;有一个独立的或复用的地址总线一个独立的或复用的数据总线与微控制单元MCU连接;主机和DSP可独立地对HPI接口操作;主机和DSP握手可通过中断方式完成;主机可通过HPI直接访问CPU的存储空间,包括存储器映像寄存器;主机可通过HPI接口装载DSP的应用程序、接收DSP运行结果或诊断DSP运行状态。⑤串行通信接口’C54x内部有高速的、全双工串行通信接口,可以和其他串行器件直接接口。分类如下:同步串行口SP缓冲同步串行口BSP时分多路同步串行口TDM多通道缓冲串行口McBSP⑥软件可编程等待状态发生器它能把外部总线周期扩展到最多14个机器周期,这样可以方便地与慢速的外部存储器和I/O设备接口。它不需要任何外部硬件,只由软件完成。
⑦可编程分区转换逻辑当访问过程跨越程序或数据存储器边界时,可编程分区转换逻辑会自动插入一个周期。
当存储过程由程序转向数据存储器时,也会插入一个周期。
这一附加周期可以使存储器在其他器件驱动总线之前允许存储器释放总线,避免总线竞争。2.7C54x的系统控制
TMS320C54x芯片的系统控制是由程序计数器(PC)、硬件堆栈、PC相关的硬件、外部复位信号、中断、状态寄存器和循环计数器(RC)等组成。2.7.1程序地址的产生’C54x的程序存储器用来存放应用程序的代码、系数表和立即数。CPU取指操作时,首先由程序地址生成器(PAGEN)产生地址,再将地址加载到程序地址总线PAB,由PAB寻址存放程序存储器中的指令、系数表和立即数。①程序存储器地址生成器PAGEN它通常是由程序计数器PC、重复计数器RC、块重复计数器BRC、块重复起始地址寄存器RSA,块重复结束地址寄存器REA等5个寄存器组成。组成框图如图2.7.1所示。
程序地址生成器PAGEN程序计数器PC重复操作寄存器重复计数器PC块重复计数器BRC块重复起始地址寄存器RSA块重复结束地址寄存器REA②程序计数器’C54x的程序计数器PC是一个16位计数器,用来保存某个内部或外部程序存储器的地址。这个地址就是即将取指的某条指令、即将访问的某个16位立即操作数或系数表在程序存储器中的地址。对PC加载有以下几种方法:当进行复位操作时,用地址FF80H加载PC;当程序是顺序执行时,则PC被增量加载,即PC=PC+1;当分支转移发生时,用紧跟在分支转移指令后面的16位立即数加载PC。若由累加器分支转移,则用累加器的低阶位内容加载PC;当执行块重复指令时,若PC+1等于块重复结束地址REA+1,则用块重复起始地址RSA加载PC;当执行子程序调用时,将PC+2的值压入堆栈,然后调用指令下一个长立即数加载至PC。若是累加器调用子程序,则保护现场后,用累加器的低阶位内容加载PC。当执行返回指令时,将压入堆栈的值从栈顶取出,加载到PC,回到原来的程序处继续执行;当进行硬件中断或软件中断时,将PC值压入堆栈,并将适当的中断向量地址加载PC;当执行中断返回时,将压入堆栈的值从栈顶取出,加载到PC,继续执行被中断的程序。2.7.2流水线操作流水线操作是DSP芯片不同于一般单片机的主要硬件工作机制。流水线操作可以减少指令的执行时间,提高DSP的运行速度,增强DSP的处理能力。流水线操作是指各条指令以机器周期为单位,工作原理:将指令分成几个子操作,每个子操作有不同的操作阶段完成。①流水线操作概念’C54x的流水线操作是由6个操作阶段或操作周期组成。流水线结构如图2.7.2所示。P(预取指)F(取指)D(译码)A(寻址)R(读数)X(执行)T1T2T3T4T5T6图2.7.2流水线结构示意图一条指令分为预取指、取指、译码、寻址、读数和执行6个操作阶段。各操作功能如下:预取指P:在T1机器周期内,CPU将PC中的内容加载到程序地址总线PAB,找到指令代码的存储单元。取指F:在T2机器周期内,CPU从选中的程序存储单元中,取出指令代码加载到程序总线PB。译码D:在T3机器周期内,CPU将PB中的指令代码加载到指令译码器IR,并对IR中的内容进行译码,产生执行指令所需要的一系列控制信号。寻址A:即寻址操作数。读数R:CPU在T5机器周期内,将读出的数据1和数据2分别加载到数据总线DB和CB中。执行X:在T6机器周期内,CPU按照操作码要求执行指令,并将写数据3加载到EB中,写入指定的存储单元。在’C54x的流水线操作中,存储器的存取操作要占用两个阶段。第1阶段,用存储单元的地址加载地址总线;第2阶段,对存储单元进行读/写操作。各种情况如下:①取指(单周期)加载PAB从PB读预取指P取指F译码D寻址A读数R执行/写数X②执行读单操作指令例如:LD*AR1,A ;单周期指令,读单操作数加载DAB从DB读预取指P取指F译码D寻址A读数R执行/写数X③执行读双操作数指令例如:MAC*AR2+,*AR3,A ;单周期指令,读双操作数加载DAB和CAB从DB和CB读预取指P取指F译码D寻址A读数R执行/写数X④执行写单操作数指令例如:STHA,*AR1; 单周期指令,写单操作数预取指P取指F译码D寻址A读数R执行/写数X加载EAB写至EB⑤执行写双操作数指令例如:DSTA,*AR1; 双周期指令,写两个操作数加载EAB写至EB加载EAB写至EB预取指P取指F译码D寻址A读数R执行/写数X预取指P取指F译码D寻址A读数R执行/写数X⑥执行读单操作数和写单操作数指令例如:STA,*AR2||LD*AR3,B;单周期并行加载存储指令,读单操作数和写单操作数预取指P取指F译码D寻址A读数R执行/写数X加载DAB写至EB从DB读出并加载EAB②分支转移流水线操作根据是否使用延时指令,分为无延时分支转移和延时分支转移。无延时分支转移例如:无延时分支转移程序地址指令代码注释a1,a2Bb1;4机器周期,两字的无延时转移指令a3i3;任意单周期,单字指令a4i4;任意单周期,单字指令…...b1j1对应流水线工作情况如图2.7.3所示。PAB=a1PB=BIR=BB预取指取指译码寻址读数执行PAB=a2PB=b1IR=b1b1预取指取指译码寻址读数执行PAB=a3PB=i3预取指取指译码寻址读数执行PAB=a4PB=i4预取指取指译码寻址读数执行PAB=b1PB=j1IR=j1j1预取指取指译码寻址读数执行12345678910Bb1流水线刷新流水线刷新j1图2.7.3无延时分支转移指令流水线周期1:将分支转移指令地址a1加载至PAB;周期2、3:取出转移指令的两个指令字;周期4、5:对i3和i4指令取指;周期6、7:分支转移指令的两个字进入执行阶段;周期8、9:由于i3和i4指令不被执行,因此在周期8和9中,转移指令的执行阶段无任何操作,这两个周期会被消耗掉;周期10:执行j1指令。延迟分支转移延迟分支转移指令允许其后面的两个单周期指令(i3和i4)执行完毕,因此采用延迟分支转移指令可以节省2个机器周期。例如:延时分支转移程序地址指令代码注释a1,a2BDb1;4机器周期,两字的延时转移a3i3;任意单周期,单字指令a4i4;任意单周期,单字指令…...对应流水线工作情况如图2.7.4所示。
PAB=a1PB=BIR=BDBD预取指取指译码寻址读数执行PAB=a2PB=b1IR=b1b1预取指取指译码寻址读数执行PAB=a3PB=i3IR=i3i3预取指取指译码寻址读数执行PAB=a4PB=i4IR=i4i4预取指取指译码寻址读数执行PAB=b1PB=j1IR=j1j1预取指取指译码寻址读数执行BDb1i3i4j1图2.7.4延时分支转移指令流水线12345678910周期6、7:执行延迟分支转移指令,需2个周期;周期8、9:执行i3和i4指令,需2个周期。
【例2.7.1】分别用分支转移指令B和BD编写程序如下,试分析各程序所需要的周期。
利用分支转移指令B编程LD @x,AADD@x,ASTLA,@sLD@s,TMPY@z,ASTLA,@rBnext利用分支转移指令BD编程LD @x,AADD@y,ASTLA,@sLD@s,TBDnextMPY@z,ASTLA,@r采用具有延时指令功能的指令,只要合理安排前后指令的顺序,可以节省机器周期。具有延迟功能的指令如表2.7.1
表2.7.1具有延迟功能的指令③条件执行的流水线操作’C54x只有一条条件执行指令,且为单字单周期指令。条件执行指令格式:XC n,cond[,cond[,cond]]功能:执行指令时,先判断给定条件cond是否满足。若满足,则连续执行紧随其后的n条指令;若不满足,则连续执行n条NOP指令例如:采用条件执行指令的程序如下地址 指令代码 注释a1 i1a2 i2a3 XCn,conda4 i4a5 i5任意单周期,单字指令任意单周期,单字指令单周期,单字指令任意单周期,单字指令任意单周期,单字指令对应流水框图如图2.7.5所示。周期3:XC指令地址a3加载到PAB;周期4:对XC指令取指;周期5:对XC指令寻址,求解XC条件。若满足条件,i4和i5进入译码并执行;若不满足,执行空操作。④存储器的流水操作’C54x片内存储器分为双寻址存储器和单寻址存储器。⑴双寻址存储器的流水线操作’C54x的内部双寻址存储器DARAM分成若干独立的块,CPU可在单个周期内对其访问2次,如:在单个周期内允许同时访问不同的DARAM块;CPU同时处理两条指令访问不同的存储块;处于流水线不同阶段的两条指令,可以同时访问同一个存储块。上述三种存储器的操作,均不会发生时序冲突,因为两次访问分别发生在机器周期的前半周期和后半周期。例如:当执行下列程序发生时序冲突时,CPU能对取指自动延迟一个周期。LD *AR2+,A;AR2指向程序驻留的DARAMi2 ;假定i2指令不访问DARAMi3 ;假定i3指令不访问DARAMi4当第1条指令读操作数,i4指令正在取指,故发生时序冲突。此时,CPU对i4的取指延迟一个周期来解决时序冲突。对应流水线工作图如图2.7.7所示。⑵单寻址存储器的流水线操作’C54x的单寻址存储器包括单寻址读写存储器SARAM、单寻址只读存储器ROM和DROM。这两类存储器在流水线中的操作基本相同,只是ROM和DROM不能进行写操作。
对于单寻址存储器,当指令有两个存储器操作数进行读或写时,若两个操作数指向同一个单寻址存储块,则在流水线上会发生时序冲突。在这种情况下,CPU先在原来的周期上执行一次寻址操作,并将另一次寻址操作自动地延迟一个周期。如:MAC *AR2+,*AR3+%,A,B在这条指令中,若AR2和AR3指向同一单寻址存储器块,则该指令需要两个时钟周期。
⑤流水线的等待周期’C54x的流水线结构,允许多条指令同时利用CPU的内部资源。由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。⑴流水线冲突可能产生未保护性流水线冲突的硬件资源:·辅助寄存器 ·重复块长度寄存器·堆栈指针 ·暂存器·状态寄存器 ·块重复计数器·存储器映像累加器·处理器工作方式寄存器对上述的存储器映像寄存器,如果在流水线中同时对它们进行寻址,就有可能发生未保护性流水冲突。冲突分析情况如图2.7.8所示。TMS320C54xC语言程序不会产生冲突汇编语言程序CALU运算不会产生冲突MMR寄存器写操作早安排写操作不会发生冲突其他MMR写操作要用等待周期表图2.7.8流水线冲突分析示意图⑵等待周期表当指令对MMR、ST0、ST1和PMST等硬件资源进行写操作时,有可能造成流水线冲突。解决的办法是在写操作指令的后面插入若干条NOP指令。等待周期表给出了对MMR以及控制字段进行写操作的各种指令所需插入的等待周期数。为了避免流水线冲突,可根据等待周期表来选择插入的NOP指令的数量。流水线等待周期表如表2.7.3所示。见P572.7.3系统的复位TMS320C54x芯片设有复位输入引脚RS。
当引脚上的电平发生变化时,程序将从指定的存储地址FF80H单元开始执行。
当时钟电路工作后,只要在RS引脚上出现2个周期以上的低电平,芯片内部所有寄存器都被初始化复位。
若RS保持低电平,则芯片始终处于复位状态。只有到高电平时,才可以从FF80H执行。当芯片处于复位期间,处理器进行如下操作:将工作方式寄存器PMST中的中断向量指针IPTR置成1FFH,MP/MC位置成与MP/MC引脚相同的状态;状态寄存器ST0=1800H;将状态寄存器ST1中的中断方式位INTM置1,关闭所有可屏蔽中断;使程序计数器PC=FF80H;使扩展程序计数器XPC=0000H;使中断标志寄存器IFR=0000H;使数据总线处于高阻状态;控制吸纳均处于无效状态;将地址总线置为FF80H;使IACK引脚产生中断响应信号;产生同步复位信号,对外围电路初始化;将下列状态位置为初值:ARP=0 CLKOFF=0 HM=0 SXM=1ASM=0 CMPT=0 INTM=1 TC=1AVIS=0 CPL=0 OVA=0 XF=1BRAF=0 DP=0 OVB=0C=1 DROM=0 OVLY=0C16=0 FRCT=0 OVM=0如果MP/MC=0,程序从片内ROM开始执行,否则,从片外程序存储器开始执行。2.7.4中断操作中断系统是为计算机系统提供实时操作、多任务和多进程操作的关键部件。
’C54x的中断系统既支持软件中断,也支持硬件中断。
软件中断是由程序指令产生的中断;硬件中断是由外围设备信号产生的中断。当同时多个硬件中断出现时,’C54x将按照中断优先级别的高低对它们进行中断响应,其中1为最高优先级。VC5402中断源和中断优先级见表2.7.4。P60
’C54x中断可分为两大类:①可屏蔽中断。可用软件设置来屏蔽或开放的中断。②非屏蔽中断。这些中断都是不能屏蔽的中断。2.7.5省电和保持方式’C54x有多种省电工作方式,可以使CPU暂时处于休眠状态。此时,CPU进入暂停工作状态,功耗减小,但保持CPU中的内容。表2.7.5列出了4种省电工作方式:用指令IDLE1、IDLE2、IDLE3进入3种省电工作方式,保持方式是另一种省电工作方式。2.8C54x的外部总线’C54x与外部存储器以及I/O设备相连,能对64K的数据存储空间,64K的程序存储空间,以及64K的I/O空间寻址。独立的空间选择信号DS、PS和IS允许进行物理上分开的空间选择。2.8.1外部总线接口①外部总线的组成’C54x的外部总线由数据总线、地址总线以及一组控制信号所组成,可以用来寻址’C54x的外部存储器和I/O口。表2.8.1列出了’C54x的主要外部总线接口信号。
表2.8.1主要外部总线接口信号外部接口总线是一组并行接口。它有两个互相独立,且相互排斥的选通信号MSTRB和IOSTRB。
READY与片内软件可编程等待状态发生器允许CPU与不同速度的存储器以及I/O设备进行数据交换。HOLD信号可以使’C54x工作在保持方式,将外部总线控制权交给外部控制器,直接控制程序存储空间、数据存储空间和I/O之间的数据交换。CPU寻址片内存储器时,外部数据总线处于高阻状态,地址总线以及存储器选择信号(PS、DS、IS)保持以前状态。此外信号MSTRB、IOSTRB、R/W、IAQ、MSC保持无效状态。②外部总线的优先级别’C54x的处理器共有8组16位片内总线,8组总线包括1组程序总线PB,3组数据总线CB、DB、EB以及4组地址总线PAB、CAB、DAB、EAB。由于采用流水线结构,CPU可以同时对这些总线进行存取操作。但是,对于外部总线,CPU在每个机器周期内只能对它们寻址一次,否则,将会产生流水冲突。对于这种外部总线上的流水线冲突,CPU可根据流水线操作的优先级别自动解决。外部总线操作优先级别如图2.8.1所示。图2.8.1外部总线操作优先级别从图可以看出,在一个机器周期内,若CPU对外部总线进行一次取指操作,两次读操作和一次写操作时,外部总线优先级别为数据寻址比程序存储器取指具有较高的优先权。在所有的CPU数据寻址完成之后,才能够程序存储器取指操作。2.8.2外部总线等待状态控制’C54x片内有两个控制CPU等待状态的部件:软件可编程等待状态发生器和可编程分区转换逻辑电路。这两个部件用来控制外部总线工作,分别受两个存储器映像寄存器—软件等待状态寄存器和可编程分区转换逻辑寄存器控制。①软件可编程等待状态发生器软件可编程等待状态发生器可以通过编程来延长总线的等待周期,最多可达到7~14个机器周期。⑴软件等待状态寄存器SWWSR软件可编程等待状态发生器受16位软件等待状态寄存器SWWSR的控制,它是一个存储映像寄存器,其数据空间的地址为0028H’C54x的外部扩展空间和数据空间分别由两个32K的存储块组成,I/O空间由64K组成。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度健康养生类产品包装设计合同3篇
- 二零二五版租赁房屋租赁合同网络安全保障协议4篇
- 2025年度集装箱装卸运输操作规范合同
- 二零二五年度民间个人借款合同金融创新服务细则
- 二零二五版农业保险代理服务合同范本8篇
- 2025年度房产抵押经营性贷款合同样本
- 2025年南京住建部房屋租赁合同规范版
- 课题申报参考:面向微生物组中介效应的群落水平关联检验方法研究
- 课题申报参考:美式“小多边主义”冲击下中国伙伴关系的升级与转型研究
- 2025年木材销售企业库存管理服务合同
- 汽车修理厂管理方案
- 人教版小学数学一年级上册小学生口算天天练
- 九年级上册-备战2024年中考历史总复习核心考点与重难点练习(统部编版)
- 三年级数学添括号去括号加减简便计算练习400道及答案
- 苏教版五年级上册数学简便计算300题及答案
- 澳洲牛肉行业分析
- 老客户的开发与技巧课件
- 计算机江苏对口单招文化综合理论试卷
- 成人学士学位英语单词(史上全面)
- KAPPA-实施方法课件
- GB/T 13813-2023煤矿用金属材料摩擦火花安全性试验方法和判定规则
评论
0/150
提交评论