·操作速率达100MIPS;
·具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线;
·40位算术逻辑单元(ALU),包含一个40位桶形移位器和两个40位累加器;
·一个17×17乘法器和一个40位专用加法器,答应16位带/不带符号的乘法;
·整合维特比加速器,用于进步维特比编译码的速度;
·单周期正规化及指数译码;
·8个辅佐寄存器及一个软件栈,答应运用业界最先进的定点DSP C言语编译器;
·数据/程序寻址空间1M×16bit,内置4K×16bit ROM和16K×16bit RAM;
·内置可编程等候状况发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串行口、一个8位并行与外部处理器通讯的HPI口、2个16位定时器以及6通道DMA控制器;
·低功耗,作业电源有3V和1.8V(内核),特别合适电池供电设备.
由此可见,与TMS32054X系列的其它芯片比较,C5402以其独有的高性能、低功耗和低价格特性,使得一推出就遭到业界用户的欢迎.但它的内部结构和片内掩模的引导装载(Bootloader)程序与C54X系列的其它DSP处理器[2]有较大的差异,而它的运用目标又大多是要求能脱机运转,如机顶盒(STB)、个人数字助理(PDA)和数字无线通讯等内嵌式体系.为此,本文安身咱们的实践经验,简略介绍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,其具体内容见表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,61h ;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 POETR 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
电路没有给出.
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 DPTE,#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,08H,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还可作为“协助理器”运用,然后极大进步了体系的灵活性和实用性.具有宽广的运用远景.