DSP并行I/O引导装载方法研究

时间:2011-06-20

  摘 要: 介绍title="TMS320VC5402">TMS320VC5402 DSP芯片的性能,着重分析它的片内ROM结构及并行I/O引导装载程序,并给出利用8031单片机实现8位并行I/O引导装载的方法。实践证明,该方法具有很大的灵活性和实用性。

  TMS320VC5402是TI公司C54x系列定点DSP芯片中的新产品它集中了此系列早期产品的优点,并提供了许多新的功能,开发和使用更加方便。C5402具有灵活的指令系统和操作性能,它可选择助记符指令或算术指令作为编程指令,同时支持汇编语言和C语言的单独或混合编程。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAM用作程序和数据存储,其可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。C5402由于其高性能价格而成为当前语言和静态图象处理和主流产品。C5402主要特点如下:

  ·操作速率达100MIPS;

  ·具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线;

  ·40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器;

  ·一个17×17乘法器和一个40位专用加法器,允许16位带/不带符号的乘法;

  ·整合维特比加速器,用于提高维特比编译码的速度;

  ·单周期正规化及指数译码;

  ·8个辅助寄存器及一个软件栈,允许使用业界的定点DSP C语言编译器;

  ·数据/程序寻址空间1M×16bit,内置4K×16bit ROM和16K×16bit RAM;

  ·低功耗,工作电源有3V和1.8V(内核),特别适合电池供电设备。

  由此可见,与TMS32054X系列的其它芯片相比,C5402以其独有的高性能、低功耗和低价格特性,使得一推出就受到业内用户的欢迎。本文立足我们的实践经验,简单介绍C5402 Bootloader程序分析和实现方法,并较为详细地介绍并行I/O Bootloader方法。

  1 几种引导装载方法

  C5402片内掩模的Bootloader用于在上电复位时把用户程序从外部引导到高速RAM中,以保证其全速运行。C5402提供了如下四种Bootloader方法:8位或16位并行EPROM方法、8位或16位并行I/O方法、8位或16位串行口方法和处理器通信口(主端口)HPI方法。

  上电复位后,C5402检测其MP/MC引脚,如果MP/MC=“0”则进入Bootloader程序。进入Bootloader后,如有INT2请求中断,则进入HPI引导方式,否则则读入端口地址为0FFFFH的I/O端的引导方式选择字(Boot Routine Selection、 BRS)。当BRS=XXXX00时,进入I/O或串行口引导方式;如BRS=XXXX1000时,进入8位I/O引导方式;BRS=XXXX1100时,进入16位I/O引导方式,否则则进入串行口引导方式。当BRS=XXXX01时,进入8位EPROM引导方式,BRS=XXXX10时,进入16位EPROM引导方式。

  2 C5402片内ROM结构及并行I/O引导装载程序分析

  C5402提供了4K×16bit 的掩模ROM,ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。其具体内容见表1。C5402上电复位后,如果MP/MC=“0”则从F800h地址开始运行Bootloader程序。在进入8位并行I/O引导程序以前,C5402与外部I/O要进行一系列的通信联络,其程序框图如图1所示。

  以下是8位并行I/O引导程序片段下:

  行号 源程序 注 解

  END ;读入用户代码结束并转执行用户程序

  1 CALL (21) ;调用读数据子程序

  2 STL B、61h ;B的内容→61H单元

  3 CALL (21) ;调用读数据子程序

  4 STL B、 62h ;B的内容→62H单元

  5 CALL (21) ;调用读数据子程序

  6 BC (END)、 BEQ ;B=0时结束

  7 SUB #01h、0、B、B ;B-1→B

  8 STLM B、BRC ;B→BRC

  9 CALL (21) ;调用读数据子程序

  10 STL B、 68h ;B的内容→68H单元

  11 CALL (21) ;调用读数据子程序

  12 ADD 68h、16、B、B ;68H移位后加B→B

  13 LD B、0、A ;B→A

  14 RPTD (20)-1 ;循环15-19

  15 CALL (21) ;调用读数据子程序

  16 SSBX XF ;XF=1

  17 BC (17)、BIO ;BIO=0则等待

  18 WRITA B ;把B的内容写到*A

  19 ADD #01h、0、A、A ;A+1→A

  20 B (5) ;跳转到标号为5

  21 SSBX XF ;XF=1

  22 BC (22)、BIO ;BIO=0则等待

  23 RXBX XF ;XF=0

  24 BC (24)、NBIO ;BIO=1则等待

  25 PORTR 0000h、 B ;读0地址端口→B

  26 SFTL B、8、B ;B左移8位→B

  27 SSBX XF ;XF=1

  28 BC (28)、 BIO ;BIO=0则等待

  29 RXBX XF ;XF=0

  30 BC (30)、 NBIO ;BIO=1则等待

  31 PORTR 0000h、68h ;读0地址端口→68

  32 ANDM 000ffh、68h ;逻辑与

  33 OR 68h、 B ;逻辑或后→B

  34 RET ;返回

  在上述程序中,END标号给出I/O读入操作结束后所转移的入口地址,之后转到61H和62H给出的入口地址执行用户程序。第1~4行读入入口地址;第5?触8行读入数据块长度;第9~13行读入数据块首地址;第14~20行读入数据块。为了更好地了解这段程序的工作过程及其原理,图2给出了8位并行I/O Bootloader程序流程图。第21~34行为读数据子程序,在该程序中,利用了XF和BIO信号与外部I/O进行握手联络,其信号时序如图3所示。

  3 C5402并行I/O引导装载方法的实现

  3.1 硬件电路分析

  为了满足C5402 DSP 8位并行I/O Bootloader引导程序的时序要求,本文利用8031单片机作智能I/O部件,图4为C5402与8031的连接电路图。在图中,U3为TMS320VC5402DSP,U?为8031单片机,U1、U2均为SN74AHC245,单片机系统中的EPROM电路没有给出。

  这里运用DSP有这样几点好处,微处理器是低成本的,主要执行智能定向控制任务的通用处理器能很好执行智能控制任务,但是数字信号处理功能很差。而DSP的功能正好与之相反。在许多应用中均需要同时具有智能控制和数字信号处理两种功能,如数字蜂窝电话就需要监测和声音处理功能。因此,把DSP和微处理器结合起来,用单一芯片的处理器实现这两种功能,将加速个人通信机、智能电话、无线网络产品的开发,同时简化设计,减小PCB体积,降低功耗和整个系统的成本。

  U1、U2的DIR引脚接地,数据传输方向为B→A。U2的B7~B4和B2~B0接地,B3接DVDD(3.3V),/CE端接系统复位信号,保证了在上电复位期间U2给C5402提供00001000B数据,使其进入8位并行I/O引导模式,而当复位信号无效后,U2的/CE=“1”片选信号无效而脱离系统。U1的作用是数据缓冲兼作电平转换器,U1的VCCD端接4.3V,其作用是将8031输出的TTL电平转换成5402能接受的CMOS电平;U1的/CE断接8031的P3.3(/INT)脚,在系统复位直到执行CLR P3.3之前都保持高电平,在此期间U1无效,保证了U2正常供给5402所需的数据。8031的P3.0(RXD)、P3.1(TXD)作为握手信号,分别与C5402的/BIO和XF相连。JP3、JP4可供用户跳线选择C5402的系统时钟以及选择C5402的运行模式。

  3.2 程序设计

  根据以上分析,本文设计了如下8031汇编程序。首先使U1的/CE有效,然后等待C5402的XF为低电平,XF=“0”后,使8031的P3.1=“0”即BIO=“0”C5402进入等待数据状态。在数据送到数据总线之后,使BIO=“1”通知C5402读取I/O端口数据。程序中,UC定义的代码前面22个字节是与C5402的联络码,从第23个字节开始才是用户程序代码。

  CLR P3.3 ;使U1(AHC245)CE=0

  W1: JB P3.0、W1 ;XF=1等待

  CLR P3.1 ;使BIO=0

  MOV R4、#00H ;初始化变址寄存器

  W2: JNB P3.0、W2 ;XF=0等待

  MOV DPTR、#UC ;指向用户代码首地址

  MOV A、R4 ;变址送A

  MOVC A、@A+DPTR ;取用户代码

  MOV P1、A ;送到数据总线

  SETB P3.1 ;使BIO=1

  W3: JB P3.0、W3 ;XF=1等待

  CLR P3.1 ;使BIO=0

  INC R4 ;指向下一代码

  CJNE R4、#0FFH、W2 ;未完重来

  UC: DB 08H、0AAH、00H、00H

  DB 00H、00H、00H、00H

  DB 00H、80H、00H、25H

  DB 00H、00H、00H、80H

  DB 0F4H、95H、0E9H、27H

  DB 0F3H、10H ;以上为与C5402的联络码用户程序代码

  TMS320VC5402 DSP是C54X家族乃至TI的DSP家族的成员,正以其极高的性价比被越来越多的用户所接受。本文利用廉价、通用的8031单片机实现C5402 8位并行I/O Bootloader功能,一方面,可以很好地解决快速DSP与慢速I/O(EPROM)之间的数据传输问题,另一方面,C5402 Bootloader成功后,8031还可作为“协助理器”使用,从而极大提高了系统的灵活性和实用性。具有广阔的应用前景,非常受买家喜欢,具有很大的利润。


  
上一篇:CRC在TMS320C64x+DSP上的高效实现
下一篇:关于BTS系统中开环和闭环MIMO的应用研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料