DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 298|回复: 0
打印 上一主题 下一主题

TMS320VC5402系统设计中应注意的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 20:14:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘要:数字信号处理器(DSP)芯片以其强大的运算处理能力在通信、电子、图像处理等领域得到了广泛的应用。文章从系统硬件电路设计、关键外设(多通道缓冲串口,DMA,HPI)的设置及软件编程三个主要方面阐述了TMS320VC5402在开发设计中应注意的几个关键问题,并给出了相应的处理办法。
关键词:数字信号处理器 ; 多通道缓冲串口 ; DMA ;主机接口 ;引导装载
1 引言
TMS320VC5402(以下简称C5402)是德州仪器公司推出的性价比极高的16位定点数字信号处理器(DSP),它的工作时钟可以高达 100MHz,非常适合于高速的数据传输和处理。C5402的接口电源为3.3V,内核电源为1.8V,输入输出的逻辑电平复杂。电路设计的时候一般会遇到输入输出引脚的逻辑电平兼容、外围扩展电路时序、DSP多余引脚的处理等问题,这些最基本问题的妥善解决是设计一个性能优良的DSP应用系统的前提条件。C5402提供了许多增强型外设,在实际系统中应合理设置,以充分利用硬件资源。DSP采用改进的哈佛结构,应用流水线操作,增强了处理器的数据处理能力,但同时给设计者带来了高频干扰和流水线冲突等诸多问题。如何提高DSP的信号处理能力,充分利用DSP的资源是每个设计者应考虑的问题。本文总结了作者在实际开发中遇到的问题和一些心得体会,希望对DSP开发人员有一点启发和帮助。
2 硬件设计中应注意的问题
2.1 接口电平兼容性问题
C5402的接口电源为3.3V,其输入、输出引脚的电压的绝对范围-0.3~+4.5V,除了少数引脚以外,其输入电平是与TTL逻辑电平兼容的,因此 C5402的输入引脚仅能与3.3V的CMOS电路连接,不能5V的TTL电路、CMOS电路连接。5V TTL/CMOS电路的输出信号要经过电平转换后才能送给C5402。由于C5402的输出信号与TTL逻辑电平兼容,因此可以直接送给5V TTL电路或者输入电平与TTL电平兼容的3.3V CMOS和5V CMOS电路。为了简化电路的设计,在设计中应尽可能选择3.3V CMOS器件。但是,整个系统中很难保证都使用3.3V的CMOS器件,对所有与C5402不兼容的信号要进行电平转换,可以采用TI公司的高速总线收发器74LVT16245来完成。
2.2 DSP多余引脚的处理
DSP数据总线的最高位(D15)最好与扩展器件数据总线的最高位连接,这样做的目的是避免符号位错误扩展,而多于的数据总线可以悬空,也可以接上拉或下拉电阻。同时将/IACK、EMU0、EMU1、tdI、HOLD、CLKMD1、CLKMD2、CLKMD3和MP/MC等系统独立工作时的闲置引脚和硬件时钟设置引脚接上拉电阻。上拉电阻较多时,通常选用排阻来完成,排阻集成了电源引脚VCC和电阻,相对体积小、连接简单。在调试阶段的设计中 CLKMD1、CLKMD2、CLKMD3和MP/MC可以设有跳线,选择是否与地相连来调节硬件时钟和微处理器/微计算机模式。
2.3 调试中问题
在DSP开发设计中,经常会遇到DSP芯片发热问题。若芯片发热,首先检查一下DSP的供电是否正常。若DSP芯片和电源芯片都发热,这时可能是电路中有短路的情况,或者是在访问外设总线上有冲突,导致DSP的输出电流过大。解决问题的方法是用跳线将芯片的使能端接地或高电平,依次不使能外部芯片,从而找到哪个外设有总线冲突。笔者在一实际应用系统中用到了CPLD作为逻辑控制器件,在调试电路过程中,上电后发现DSP芯片发热,经检查发现上电后CPLD 的使用引脚没定义,CPLD状态不定和SRAM同时访问了总线。在CPLD的应用中,若 CPLD中烧路过程序,则与DSP连接的脚在程序中都必须有定义。
2.4 DSP与慢速外设通信
C5402的处理速度非常快,通过软件可编程等待状态发生器(SWSSR)和软件等待控制器(SWSM)可以将外部总线周期扩展到14个机器周期,以使 C5402与慢速外部设备接口。复位时SWSSR=7FFFH,设置最长的等待周期,SWCR中的SWSM位为1时,等待周期数为2倍的SWWSR设置值。当C5402与需要多于14个等待周期的外部设备进行数据交换时,通过软件设置的等待时间不能满足,这时要又到C5402的READY引脚,当外设准备好后,通过READY引脚告知C5402可以继续进行通信。
3 主要外设的应用
3.1 多通道缓冲串口
C5402 提供两个高速、全双工、多通道缓冲串行口。两个缓冲串口可以同时接收和发送数据,中断类型设为接收到数据或发送数据产生中断。
串口设置的主要关键时序
(1)在保持RRST,XRST,FRST各位为0的前提下配置好各寄存器,等待至少两个CLKR/X时钟周期以确保DSP内部的同步。
(2)可以向DXR装载数据或使能DMA。
(3)使能GRST(GRST=1)(如果使用内部时钟)。
(4)使能RRST或XRST,注意此时要保证SPCR仅此一位发生改变。
(5)使能FRST(如果需要DSP内部产生帧同步)。
(6)等待两个CLKR/X时钟周期。
C5402的配置十分灵活,可以设置不同位数传送;A率和 率压缩;高低位传送的先后次序;中断源的设置等。有些设置不一定固定,关键是在实际应用中配合好各种情况。
3.2 DMA
在不是要求数据同步的系统中,C5402工作在DMA可以不占用CPU资源的情况下,实现DSP存储器间数据的自由传送。C5402有6个可独立编程的 DMA通道,每个DMA通道受各自的5个16位寄存器控制: DMSRC、DMDST、DMCtr、DMSFC、DMMCR。此外,DMA的6个通道还受通道优先级和使能控制寄存器DMPREC控制。在这个寄存器中相应的DPRC位置1选择相应的通道为高优先级,相应的DE位置1选通相应的通道为使能通道并开始工作。
注意设置DMA模式工作时,在程序的开始要先不使能DMA中断优先级,否则会产生程序混乱。若要求不同通道同时接收数据,各通道的参数可以单独设置,但是通道优先级要同时设,若分别设置通道优先级则只能接收其中一路信号。
3.3 主机接口HPI
C5402的HPI主机接口是由一个8位数据总线和用于设置和控制接口的控制信号组成。由于C5402的控制功能不是非常强大,往往需另加一片单片机或CPLD对系统的逻辑进行实时控制,此时C5402作为从机。HPI很容易与各种主机相连,需要很少、甚至不需要外加逻辑。HPI口的数据传输由两部分组成:内部传输和外部传输。内部传送在HPI口寄存器和片内RAM之间进行,外部传送在主机和HPI口寄存器之间进行。主机访问HPI时,首先初始化HPIC寄存器,然后初始化HPIA寄存器,再从HPID寄存器中读出或写入数据。一般在 C5402的初始化程序中对HPIC进行初始化后就无需再对HPIC进行操作了,其余工作由主机完成。主机可通过HPIC的DSPINT来中断 C5402,而C5402通过HPIC的HINT位发送中断请求到主机。C5402的主机接口工作在HPI模式时HPIENA必须置高,HPIENA为低则HPI口作为一般I/O口用。C5402与AT89C51的硬件连线如图1




图1 AT89C51与C5402的HPI接口图
4 软件设计应注意的问题
4.1 流水线冲突
流水先冲突是 DSP特有的问题,对编程的代码和时间的效率影响较大,编译器发现不了这些问题。如果C5402系统的源程序是用C语言编写的,经过编译后生成的代码是没有流水线冲突问题的;如果是汇编语言程序,凡是CALU操作,或者是先在初始化期间就对MMR进行设置也不会产生流水线冲突。然而在某些MMR写操作中,如对MMR、ST0、ST1、PMST等硬件资源进行连续操作时,有可能造成流水线冲突。解决流水线冲突很简单,只需加上几个指令或NOP空操作指令便可以。
4.2 中断源的处理
C5402的中断分为可屏蔽中断和不可屏蔽中断。对于软件中断和不可屏蔽中断,CPU立即响应,对于硬件中断必须满足三个条件:出现多个中断时,此中断的优先级最高,ST1中的INTM位为0,允许中断;IMR中的相应位为1,开放此中断。设置好与中断有关的寄存器后要设置中断向量表,必须保证中断向量表的位置与处理器模式状态寄存器PMST中的中断向量指针IPtr相对应,使IPtr的9位地址指向128字的中断向量所在的程序页。中断向量的地址是把中断矢量号(0~31)左移两位再加上PMST的中断指针产生的。同时,中断向量表要严格按照C5402规定的格式编写,否则,不能正确地产生需要的中断结果。
直接寻址中CPL位的作用及FRCT小数模式位的使用
CPL位控制是SP还是DP作为操作指针来进行直接寻址。当CPL=0时,使用页指针DP;当CPL=1时,使用堆栈指SP。在使用DP指针时应注意在所有的程序中都初始化DP.因为复位不能初始化DP,并且上电时,DP是不确定的。使用DP指针直接寻址,在DP指针的数据页内,具有128字的寻址能力。在初始化特殊寄存器IFR、IMR,DP值应设置为零,操作完成后再根据实际情况设置DP值。编程过程中尽量不要改动DP值,应尽可能合理地在各功能模块间分配这些单元。
FRCT是小数模式位,若为小数应设为1,若为整数运算应设为0。小数运算产生的冗余符号位如Q15 Q15=Q30,形如00.xxxx。通过设置FRCT=1,计算结果自动向左移一位将冗余符号位去掉。
4.4程序装载问题
C5402为脱机运行提供了五中种启动装载模式:HPI端口启动模式、标准串口启动模式、I/O启动模式、串口EEPROM启动模式和并行启动模式。对于 C5402为核心的独立系统中,并行引导装载模式最为常用。因为前三种装载模式只适用于由其它处理器为C5402提供运行代码的多处理器系统中。串口 EEPROM虽然适用于以C5402为核心的独立系统中,但是它只支持价格偏高的SPI端口的EEPROM。并口启动模式可以采用EPROM,而且并行 EPROM和FLASH种类很多,价格较低,适合市场开发。但是并口启动装载模式的程序代码不能超过32K,若程序超过了32K,还得重新编写 bootload程序作为程序装载内核。
由于C5402的工作频率可高达100MHz,虽然在C5402在RESET时自动插入了7个软件延时,但这只能满足速度不低于70ns的EPROM接口,一般的EPROM无法可靠工作。为了解决速度匹配问题,可以利用硬件和软件两种方式设置倍频。在系统加电时将C5402倍频选择为2,即 CLKMD1、CLKMD2、CLKMD3分别设置为1、0、0,DSP工作在40MHz,等加载完成后再通过软件将C5402的工作频率调高到 100MHz。实践证明这种方法是可行而且可靠。
5 结语语
本文在总结作者从事DSP系统开发的基础上,讨论了C5402开发设计中经常会遇到的问题,并给出了解决办法。当然,在实际操作中还会有很多其它问题和相应的处理技巧,只能在开发设计中体会。仅希望通过此文可以对大家的DSP开发设计有所帮助。
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-3 20:22 , 耗时 0.082854 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表