文章分类

当前位置:首页>技术文章>TMS320VC5402 DSP的并行I_O引导装载方法研究

TMS320VC5402 DSP的并行I_O引导装载方法研究

TMS320VC5402(以下简称 C5402)是德州仪器公司(TI)1999 年 10 月推出的性价比极高(目标价格仅为 5 美元)的定点数字信号处理器(DSP)。C5402 主要特点如下[1]:·操作速率达 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→B8 STLM B,BRC;B→BRC9 CALL ?(21);调用读数据子程序10 STL B, 68h;B 的内容→68H 单元11 CALL ?(21);调用读数据子程序12 ADD 68h,16,B,B;68H 移位后加 B→B13 LD B,0,A;B→A14 RPTD

(20)-1; 循环 15-19 15 CALL ?(21);调用读数据子程序16 SSBX XF;XF=117 BC ?

(17),BIO;BIO=0 则等待18 WRITA B;把 B 的内容写到*A19 ADD #01h,0,A,A;A+1→A20 B ?

(5);跳转到标号为 5 21 SSBX XF;XF=122 BC ?(22),BIO;BIO=0 则等待23 RXBX XF;XF=024 BC ?(24),NBIO;BIO=1 则等待25 POETR 0000h,B;读 0 地址端口→B26 SFTL B,8,B;B 左移 8 位→B27 SSBX XF;XF=128 BC ?(28),BIO;BIO=0 则等待29 RXBX XF;XF=030 BC ?

(30),NBIO;BIO=1 则等待31 PORTR 0000h,68h;读 0 地址端口→6832 ANDM 000ffh,68h;逻辑与33 OR 68h,B;逻辑或后→B34 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=0W1: 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=1W3: 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 还可作为“协助理器”使用,从而极大提高了系统的灵活性和实用性。具有广阔的应用前景。


© 星光电子技术工作室 2021 All Rights Reserved.
如有任何问题和建议、业务及合作,请联系手机/微信:13713820066