您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > DSP教程3TMS320C55x的硬件结构
1嵌入式DSP软件开发第三章:TMS320C55x的硬件结构目标:本章旨在向学员介绍TMS320C55x的硬件结构:1)TMS320C55x的总体结构2)C55x的CPU结构3)CPU寄存器4)存储空间和I/O映射5)堆栈操作6)中断和复位操作2冯诺依曼和哈佛结构程序和数据存储器CPUCPU程序存储器数据存储器F1F2D1D2R1R2E流水线自动保护机制pipelineF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2EF1F2D1D2R1R2XF1F2D1D2R1R2XABCDEFG:取指令地址F2:取指令内容D1:32/16判断边界D2:取指译码R1:操作数地址R2:取操作数E:指令执行W:写内容回存储单元H独立的乘加器•在数字信号理论的学习中,我们知道在卷积、数字滤波、FFT、矩阵等一类运算中,大量的重复乘法和累加,两个变量先乘法再加法。在数字信号运算过程中,在提高其速度的时候必须提高乘加运算。怎样提高就是DSP设计的初衷;•在通用计算机中乘法使用软件实现的,会占用过若干个机器周期;•DSP有硬件乘法器,使用MAC指令(取数、乘法、累加,存储)可以在但周期内完成。独立的DMA总线和控制器•有一组或多组的独立的DMA总线。与CPU的程度和数据总线并行工作,在不影响CPU工作的情况下,DMA速度已达到800Mbyte/s。33.1TMS320C55x的总体结构C55x主要由3部分组成:CPU、存储空间和片内外设。3.1.1C55xCPU内部总线结构C55xCPU含有12组内部独立总线,即程序地址总线(PAB):1组,24位程序数据总线(PB):1组,32位;数据读地址总线(BAB、CAB、DAB):3组,24位;数据读总线(BB、CB、DB):3组,16位;数据写地址总线(EAB、FAB):2组,24位;数据写总线(EB、FB):2组,16位。43.1.2C55x的CPU组成C55x的CPU包含5个功能单元:指令缓冲单元(I单元):包括32*16位指令缓冲队列和指令译码器。主要接收程序代码并负责放入指令缓冲队列,由指令译码器来解释指令,然后再把指令流传给其他的工作单元来执行这些指令。程序流单元(P单元):包括程序地址发生器和程序控制逻辑。此单元产生所有程序空间地址,并送到PAB总线。地址-数据流单元(A单元):包括数据地址产生电路(DAGEN)、附加的16位ALU和1组寄存器。此单元产生读/写数据空间地址,并送到BAB、CAB、DAB总线。数据运算单元(D单元):包括1个40位的筒形移位寄存器、2个乘加单元、1个40位的ALU以及若干寄存器。D单元是CPU中最主要的部分,是主要的数据处理部件。存储器接口单元(M单元):是CPU和数据空间或I/O空间之间传输所有数据的中间媒介。31TMS320VC5509A通用地址和数据信号SDRAM控制信号异步存储器控制信号5图-框图McBSPI2CRTCMMC/SDMcBSPWDOGTIMERGPIOTIMERMcBSPMMC/SDDPLLUSBPLLUSBROM32KW电源控制内部存储器接口SARAM96KWDARAM32KWDMA控制器EHPIGPIOA程序流单元(Punit)地址-数据流单元(Aunit)数据运算单元(Dunit)指令缓冲单元(Iunit)C55xCPU中断控制仿真控制666227/82/4A/D7545/4732外设总线程序读地址总线PAB(24)程序读数据总线PB(32)数据读地址总线B[BAB](24)数据读数据总线B[BB](16)数据读地址总线C[CAB](24)数据读数据总线C[CB](16)数据读数据总线C[CB](16)数据读数据总线D[DB](16)数据写地址总线E[EAB](24)数据写数据总线E[EB](16)数据写数据总线E[EB](16)数据写数据总线F[FB](16)63.1.3C55x存储器配置C55x采用统一的存储空间和I/O空间,片内存储空间共有352KB,外部存储空间共有16MB。C55x的I/O空间与程序/地址空间分开。I/O空间的字地址为16位,能访问64K字地址。当CPU读写I/O空间时,在16位地址前补0来扩展成24位地址(地址总线为24位)。表3-1C55x片内存储器配置外设或存储器5501550255035506550755095510ROM(KB)RAM(KB)3232326464646412864128642563232073.1.4C55x外设配置表3-2C55x片内外设配置外设或存储器5501550255035506550755095510模数转换器(ADC)2/42/4时钟发生器APLLAPLLDPLLD&APLLD&APLLDPLLDPLL存储器直接访问控制器(DMA)11111111外部存储器接口(EMIF)主机接口(HPI)111111111111指令缓存16KB16KB24KB内部集成电路(I2C)模块111111多通道缓冲串行接口(McBSP)2333333多媒体卡/SD卡控制器2电源管理/节电(IDLE)配置1111111实时时钟(RTC)11112通用定时器看门狗定时器212121212121通用异步接收器/转换器(UARTb)11通用串行总线(USB)模块11183.1.4C55x外设配置说明:模/数转换器(ADC):用于采集电压和面板旋钮的输入值,转换为数字量。可编程数字锁相环时钟发生器:VC5509的时钟频率可达200MHz,最小机器周期为5ns。指令高速缓存(I-Cache):1个可配置的24KB存储器,可最小化对外部存储区的访问。外部存储器接口(EMIF):可以实现与各种存储器件如异步SRAM、异步EPROM、同步DARAM和同步突发SRAM的无缝连接。直接存储器访问控制器(DMA):在无CPU参与的情况下,允许数据在内部存储器、外部存储器和增强主机口(EHPI)之间传输。多通道串行缓冲口(McBSP):全双工串口。增强型主机接口(EHPI):16位并行接口,用于提供主处理器对DSP上内部存储器的访问。2个16位的通用定时/计数器,8个可配置的通用I/O引脚(GPIO)。实时时钟(RealTimeClock,RTC):提供一个时间参考,并能产生基于时间的报警来中断DSP。看门狗定时器(WatchdogTimer):可以在软件陷入循环又没有受控退出的情况下,防止系统死锁。M单元I单元P单元A单元D单元CPU总线外部程序总线写数据的数据总线EB,FB(每组16位)写数据的地址总线EAB,FAB(每组24位)图3-2C55x的CPU结构框图93.2C55x的CPU结构读数据的数据总线BB,CB,DB(每组16位)读数据的地址总线BAB,CAB,DAB(每组24位)读程序的数据总线PB(每组32位)读程序的地址总线PAB(每组24位)外部数据103.2.1存储器接口单元(M单元)M单元是一个内部数据流、指令流接口,管理所有来自CPU、数据空间或I/O空间的数据和指令,负责CPU和数据空间以及CPU和I/O空间的数据传输。M单元I单元位的程)3.2.2指令缓冲单元(I单元)每个机器周期,PB从程序空间传送32程序读数据总线PB(4字节代码序代码至I单元的指令缓冲队列;最大可以存放64个字节的待译码指令,可以执行块循环指令,具有对于分支、调用和返回指令的随机处理能力。P,元DD指令缓冲队列(64字节)队列发送到I单元的指令译码器;能够识别指令边界单译码8、16、24、A单元至P单元、A单元、单元元。图3-3I单元结构框图11接收来自I单元的立即数,并测试来自A单元或D单元的结果从而执行如下动作:和程序控制逻1.测试条件执行指令的条件是否成立,把测3.控制单一指令重复或块指令重复;3.2.3程序流单元(P单元)M单元I单元A单元D单元数据写数据总线EB,FB(每组16位数据)图3-4P单元结构框图程序地址产生逻辑:产生24位的程序空间取指的地址;产生顺序地址;数据读数据总线CB,DB(每组16位数据)也可以I单元的立即数或D单元的寄存器值作为地址程序读地址总线PAB(24位地址)程序控制逻辑:P单元程序地址产生器辑试结果送程序地址发生器;2.当中断被请求或使能时,初始化中断服务程序;P单元寄存器4.管理并行执行的指令。P单元的作用:产生程序空间地址,并加载地址到PAB;控制指令流顺序。12ALU可接收来自I单元的立即数或与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元或存储器位域;M单元数据地址产生器单元(DAGEN)A单元A单元ALUP单元据)I单元数据写地址总线数据写数据总线数据读地址总线24位地址)A单元图3-5A单元结构框图13DAGEN产生所有读写数据空间的地址;存器值;数据读数据总线CB,DB(每组16位数据)根据P单元指示,对间接寻址方式时选择使用BAB,CAB,DAB(每组线性寻址还是循环寻址。寄存器D单元寄存器进行双向通信。可完成如下动作:加法、减法、比较、布尔逻辑、符号移位、逻辑移位和绝对值计算;测试、设置、清空、求补A单元寄存器位EAB,FAB(每组24位地址)改变或转移寄存器值,循环移位寄存器值,EB,FB(每组16位数从移位器向一个A单元寄存器送特定值。D单元寄存器、A单元寄存器进行双向通信,还可接收移位器的结果;加法、减法、比较、取整、饱和、布尔逻辑以及绝对值运算在执行14图3-6D单元结构框图数据)M单元I单元D单元ALU移位器D单元接收来自I单元的立即数,与存储器、I/O空间、D单元寄存器、P单元寄存器、A单元寄存器进行双向通信;移位结果送至D实现40位累加器值最大左移31位或最大右移32位;实现16位寄存器、存储器或I/O空间数据最大左移31位或最大右移数据读数据总线BB,CB,DB(每组16位32位;实现16位立即数最大左移15位;提取或扩张位域,执行位计数;对寄存器值进行循环移位;在累加器的值存入数据空间之前,对它们进行取整/饱和处理。A单元可从I单元接收立即数,或与存储器、I/O空间、D单元寄存器、P单元寄存器P单元一条双16位算术指令时,同时进行两个算术操作;测试、设置、清除以及求D单元寄存器的补码;对寄存器的值进行移动。两个MAC可支持乘法和加/减法。在单个机器周期内,每个MAC可以进行一次17×17位小数或整数乘法运算和一次带有可选的32或40位饱和处理的40位加/减法运算。MAC的结果送累加器;数据写数据总线EB,FB(每组16位数据)MAC的操作会影响P单元状态寄存器的某些位。MACCALUshift•CPU中有很多移位器,刚才P寄存器输出到CALU中就是通过移位器进行的。移位是个重要的功能,后面也后很多的移位指令。•通用微处理器的shift,没调用一次指令移动1bit;•DSP可以在一个机器周期内左移、右移多个bit,可以用来对数字定标,只是放大或缩小,以保证精度和防止溢出;还可以用作定点和浮点数之间的转化;溢出•通用CPU中,溢出发生后,溢出标志才会置为,处理时候会有很大的风险;•DSP中巴以为输出的最高位(MSB)存放在一个位检测状态寄存器中,检测到MSB=1时,就告知下一次有可能会发生溢出,采取措施防止。DAG•A单元叫地址-数据流单元,主要功能是为数据空间分配地址。里面有一个重要的数据地址发生器,还有一个辅助D单元的ALU.•我们说了有DMA有很高的数据吞吐率需要取数,到哪儿去取数呢,因此需要地址。需要多块的速度取数就需要多块的速度给数据分配地址。所以DSP毫无例外地都有会DAG,数据地址发生器。•在通用CPU中,数据地址产生都是由ALU来完成;•在DSP中,设置了专门数据地址发生器(A单元的辅助ALU就是做这个事情),用来产生所需要的数据地址,节省了CALU的时间。外设•时钟发生器(振荡器与PLL)用于产生主频•定时器(Timer
本文标题:DSP教程3TMS320C55x的硬件结构
链接地址:https://www.777doc.com/doc-2910537 .html