当前位置:文档之家› TMS320VC5402主机接口引导方案的设计

TMS320VC5402主机接口引导方案的设计

郑州轻工业学院

DSP课程设计

题目TMS320VC5402主机接口引导方案的设计

学生姓名

专业班级

学号

院(系)

指导教师

完成时间

课程设计任务书

题目 TMS320VC5402主机接口引导方案的设计

专业、班级学号姓名

主要内容、基本要求、主要参考资料等:

1、参考课本及C54X Applications Guide.pdf 中关于BootLoader的内容。

2、设计TMS320VC5402的HOST引导方案。要求将用户代码存放于符合HOST

接口标准的主机中,处理器启动后能正常进入用户程序。

3、设计相关硬件电路,要求支持HOST接口引导,具备外扩程序存储空间、外

扩数据存储空间、外扩IO存储空间。

4、要求编写引导完成后的用户初始化代码。

5、完成电路设计,说明引导过程,在CCS5000上验证程序。设计完成后要求

每人上交一份课程设计说明书,说明书要求包含有课程设计任务书,各文件的说明,各文件里关键语句的说明。说明书要求字迹工整、叙述清楚。

6、发挥部分,如时间可行,增加设计成为一个完整的项目(附加附加一个简单

例程、一个命令文件和一个向量表文件)。并验证结果。

7、时间:二周。

完成期限:2015.01.12---2015.01.23

指导教师签名:

课程负责人签名:

2015 年 01 月 12 日

TMS320VC5402主机接口引导方案的设计

摘要

本文主要介绍了DSP TMS320VC5402芯片的主机接口引导装载的实现方案。在此设计中用户程序代码存放在主机中,DSP处理器上电后能通过主机接口将程序引导入DSP的程序存储区,正常进入用户程序代码。Bootlooader(引导装载程序)是在出厂前固化在DSP芯片内ROM中的一段程序代码,其主要功能是在上电或复位时将用户程序从外部加载至程序存储器(片内RAM或扩展的RAM)中,以便实现高速运行。因此,用这种方法可以以较低成本实现高速运行。不同型号的DSP,其Bootlooader也不同。

关键词DSP /主机接口引导/TMS320VC5402/处理器

TMS320VC5402 HOST INTERFACE DESIGN

OF THE BOOT

ABSTRACT

This article mainly introduced the DSP TMS320VC5402 chip boot loading the implementation scheme of the host interface. In the design of the user program code in the host, after power on the DSP processor can pass the host interface will lead into the application of DSP program storage area, normal to enter the user code. Bootlooader is stabilized before they go out in the DSP chip ROM a program code, and its main function is in the power or reset to the user program from the external load to program memory (RAM) on chip RAM or extend, in order to achieve high speed running. Therefore, in this way can realize high speed running at a relatively low cost. Different types of DSP and its Bootlooader is different also.

Keywords DSP,host interface,guide the TMS320VC5402,disposer

目录

中文摘要.................................................I 英文摘要................................................II 1 TMS320VC5402简介 .. (1)

1.1 芯片介绍 (1)

1.2 几种引导装载方法 (3)

2 系统硬件电路设计 (4)

2.1 HPI自举加载的过程 (4)

3 系统的软件设计 (9)

3.1 用户初始化程序 (9)

3.2 主机通过HPI引导程序到目标DSP (11)

结束语 (13)

致谢 (14)

参考文献 (15)

(附录) (16)

TMS320VC5402主机接口引导方案的设计

1 TMS320VC5402简介

1.1 芯片介绍

TMS320VC5402如图1.1所示

TMS320VC5402(以下简称C5402)是德州仪器公司(TI)1999年10月推出的性价比极高的定点数字信号处理器(DSP)。

5402是采用了高级的改进哈佛结构用8条总线达到最大的处理能力,其独立的程序空间和数据空间允许同时对程序指令和数据进行访问,提供了高度的并行性。例如可在一个周期内完成2读操作和1个写操作。数据可在数据空间和程序空间之间进行传送。这种并行结构强大的集算术,逻辑和位操作,可以在一台机器周期执行的操作。此外,5402通过控制机制来管理中断,重复操作和函数调用。C5402主要特点如下:

·操作速率达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处理器有较大的差异,而它的应用对象又大多是要求能脱机运行,如机顶盒(STB)、个人数字助理(PDA)和数字无线通信等内嵌式系统。

表1.1 HPI-8和标准HPI的主要差别

C5402的HPI-8接口的最大特点是它允许主机访问DSP的整个片内空间。HPI-8的使用是通过对HPIA、HPIC和HPID三个寄存器赋值实现的。HPIA是地址寄存器,HPIC是控制寄存器,而HPID是数据寄存器。简单地说,HOST通过外部引脚HCNTL0和HCNTL1选中不同的寄存器,则当前发送8位数据就到该寄存器。在使用上,由于HPIC是16位寄存器,而HPI-8是8位的数据宽度,所以HOST向HPIC写数据时,需要发送两个一样的8位数据。而地址寄存器HPIA选择后,直接向它写数据就可以了,但是要注意MSB和LSB的顺序。另外,HPIA具有自动增长的功能,在每写入一个数据前和每写入一个数据后,HPIA会自动加1。这样,如果

使能了该功能,只需设定一次HPIA即可实现连续数据块的写入和读出。数据寄存器HPLD,严格就应该叫做数据缓冲寄存器,因为最终数据是要写到片内RAM的。只是在实现上,数据首先从HOST发到HPID中,然后根据HPIA指定的地址,HPID 中的数据再写到片内RAM的地址中。不过对用户而言,该过程是透明的。

1.2 几种引导装载方法

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

上电复位后,C5402检测其MP/MC引脚,如果MP/MC=“0”则进入Bootloa der程序。进入Bootloader后,如有INT2请求中断,则进入HPI引导方式,特别的当INT2标志位被激活时,VC5402会忽略除HPI引导模式外的其他任何引导方式。当INT2没有被激活时,则使用INT3标志位检测串行EEPROM引导模式,引导程序默认引导表通过McBSP1与8位EEPROM连接,通过读取EEPROM地址0 000h上的关键字作为引导表开头。当INT3未被置位时,将会检测并行引导模式,并行引导模式的引导表可以被放在数据空间4000h-FFFFh空间内,引导程序通过读取I/O空间FFFF地址上的关键字决定引导表在数据空间的起始位置,引导表中应该包含8位或16位引导方式。如果I\O空间中没有关键字,将会读取数据空间FFFFh上的值作为引导表的起始地址,当没有可用值时,将会检测引导模式。在串行和I/O口模式中,引导程序使XF引脚置0表示准备好接受数据,在I/O引导模式中,主机通过使VC5402 BIO引脚置0作为响应。引导模式选择如图1-2-1

图1.2 引导方式选择流程图

2系统硬件电路设计

2.1 HPI自举加载的过程

C5402包含4K字的片内ROM,该ROM的一部分用于存储自举加载器代码。PMST寄存器的MP/MC位在复位时被采样,它的值部分地可以决定C5402存储器的映射。如果MP/MC设置为0,则C5402被置于微计算机模式,并且自举加载器复位时就开始启动。ROM中的自举加载器被定位被定为到程序存储器地址0xF800。

C5402在复位后执行它的自举加载器。执行开始时,自举加载器开始查询不同的资源,用来确定使用哪种自举模式。自举加载器使用各种控制信号(包括中断信号、BIO、和XF引脚)以及片内存储器的数据,来配置和控制自举过

程。如果没有发现有效的自举模式,则自举加载器持续循环,检查每种模式,直到选择了一种自举加载模式。

有两种方法为HPI自举有效的加载器提供信号,即中断和数据存储器位置0x007F。自举加载器检查IFR寄存器的中断2标志位(INT2)是否为1。如果在INT2引脚产生中断信号,则选择了HPI模式。自举加载器也会清除0x007F 单元,并且把0x007F用作一个软件标志以显示HPI自举加载是否已经完成。判断流程如图2-1

如果中断2信号用于激活HPI自举模式,有两种方式可以用来获取中断2引脚上的输入信号,我们采用将主机中断(HINT)与INT2中断直接相连。2.2系统硬件电路设计

2.2.1 系统组成框图

图2.1 系统组成框图

此系统包含DSP处理器、时钟复位及电容去耦等辅助电路、外扩的程序存储器、外扩的数据存储器、外扩的IO空间(即模数转换电路)、HPI接口电路、主机控制模块。是一个完整的DSP开发系统。

2.2.2 HPI与主机连接模块

主机设备DSP

图2.3 HPI与主机设备之间的连接框图

8位数据总线(HD0~HD7)与主机之间交换信息。因为C54xDSP的16位字的结构,所以主机与DSP之间数据传输必须包含两个连续的字节。专用的HBIL引脚信号确定传输的是第一个还是第二个字节。HPI控制寄存器HPIC的BOB位决定第一个或第二个字节放置在16位字的高8位,而主机不必破坏两个字节的访问顺序。如果字节的传输顺序被破坏,则数据可能会丢失,产生不可预测的结果。

两个控制输入表示那个HPI寄存器被访问,并且表示对寄存器进行那种访问。这两个输入与HBIL一起由主机地址总线位驱动。使用HCNTL0/1输入,主机可以指定对三个HPI寄存器的访问:HPI控制寄存器、HPI地址寄存器或HPI数据寄存器。HPIA寄存器也可以使用自动增寻址方式访问HPIA寄存器。

自动增特性为连续的字单元的读写提供了方便。在自动增模式下,一次数据读会使HPIA在数据读操作后增加1,而一个数据写操作会使HPIA操作前预先增加1。

通过写HPIC,主机可以中断C54x DSP,并且HINT输出可以被C54x DSP 用来中断主机。主机通过写HPIC来应答中断并清除HINT。

两个数据选通信号、读写选通信号和地址选通信号,可以使HPI与各种工业标准主机设备进行连接。

HPI准备引脚(HRDY)允许为准备输入的主机插入等待状态,这样可以调

整主机对HPI的访问速度。当HRDY直接用于来自C54x CPU,则它不必满足主机时序要求,该信号可以使用外部逻辑实现重新同步。

图2.4 主机接口配置

在使用时用短路冒将2、3短路,使INT2与HINT2直接相连,用来激活HPI自举模式。

2.2.3 存储空间扩展

图2.5 扩展的程序存储空间

图2.6 扩展存储空间的逻辑电路

图2.7 扩展的数据存储空间

由于C5402的片上资源有限,需要外扩数据存储器和程序存储器。IS61LV6416为64K的RAM。与DSP的连接电路如上图。

2.2.4 电源供电模块

图2.8 电源电路

该系统采用TPS73HD318电源芯片供电,将5V电源转换成3.3V和1.8V双电源,每路电源的最大输出电流为750mA,并且提供两个宽度为200ms的低电平复位脉冲。

3 系统的软件设计

3.1 用户初始化程序

.c-mode

.mmregs

CONST-COPY .set 1

.sect “.boot”

.global –c-int00

.global –main,-exit,-STACK-SIZE

-stack: .usect“.stack”,0 ;定义堆栈

-c-int00

****堆栈初始化****

STM #-stack,SP ;栈底-->SP

ADDM #(-STACK-SIZE-1),*(SP) ;SP+栈长度=>栈顶-->SP ANDM #0fffeh, *(SP) ;让SP为偶地址

SSBX SXM ;STM置位

LD#cinit,A

****寄存器初始化****

SSBX CPL ;打开编译模式位

RSBX OVM ;清除溢出位

LD #0,ARP

RSBX C16

RSBX CMPT

RSBX FRCT

SSBX XF

****变量区初始化****

stm #0x3a00,arl

st #0,*arl+

st #0,*arl+

st #0,*arl

****常量区初始化*****

-const-init

STM #03a24h,AR2 ;常量区.const运行地址->AR2

RPT #05fh

MVPD #0f000h,*AR2+ ;将.const由flash拷贝到RAM区

****程序初始化****

STM #0cc0h,AR2 ;程序段.text运行地址->AR2

RPT #300h

MVPD #0f000h,*AR2+ ;将.text由flash拷贝到RAM区

****中断向量表初始化****

STM #080h,AR2 ;中断向量表.vector运行地址->AR2 RPT #07fh

MVPD #0ff80h,*AR2+ ;将.vector由flash拷贝到RAM区

CALL -main ;转入主程序入口

CALL -exit ;转入结束程序入口

RET

.end

3.2 主机通过HPI引导程序到目标DSP

一个程序由初始化区和非初始化区两部分组成,主机处理器必须根据.cmd 命令文件把这两个区装载到DSP正确的地址。下面这段代码就是将代码段和数据段两部分分别下载到指定地址(即程序RAM和数据RAM)。它主要是从*source 中读出32位长的数据,然后通过HPI将此数据写到DSP的dest_add地址(即程序RAM和数据RAM)中。*source中的数据就是DSP的启动代码段和数据段中的数据。

void C6x_write_section(int *ptr_hpi, short *source, int dest_add, int length)

{

int i;

/* Write HPIC with HWOB=1,1st halfword transferred is least significant */

/* HCNTRL1 HCNTRL0 HHWIL */

ptr_hpi[0] = 0x0001; /* 1st halfword 0 0 0 */

ptr_hpi[1] = 0x0001; /* 2nd halfword 0 0 1 */

/* Write destination address to HPIA, 1st halfword is least significant */

/* HCNTRL1 HCNTRL0 HHWIL */

ptr_hpi[2] = (int)(dest_add & 0x0ffff); /* 0 1 0 */

ptr_hpi[3] = (int)((dest_add>>16)&0x0ffff);/* 0 1 1 */

for(i=0 ; i < length ; i++)

{

/* Write source_word to HPID with address post-increment */

/* 1st half-word transferred is least significant */ /* HCNTRL1 HCNTRL0 HHWIL */

ptr_hpi[4] = (int) *source++; /* 1 0 0 */

ptr_hpi[5] = (int) *source++; /* 1 0 1 */

}

结束语

经过这段时间的课程设计,我学到了不少知识。在此期间我们也失落过,也曾一度热情高涨。从最初查找资料到阅读翻译文档进行总结,因为对引导不是太熟悉,需要重新阅读学习,虽然是英文文档,但是静下心来都可以都统,结合课堂上老师讲解的内容,对Bootloader有了更清楚的认识。

团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!

通过这次课程设计,加强了我们动手、思考和解决问题的能力。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

致谢

大四的这次课程设计,无论在知识还是能力方面,我从中受益匪浅,使我们真正地学会了如何正确地使用各种电子元器件,并在完成之后,进行验证设计是否合格,并一步一步地检测调试直至测试程序能够正常运行,各种功能得以实现。同时九人一组,也增强了我们的团队协作能力,是我们认识到团队精神是成功的必不可缺的法宝。

在此我要向帮助我的指导老师耿鑫耿老师表示衷心的感谢!课程设计中,有不懂的地方您总能不厌其烦、和蔼可亲地讲解,让我感受到您们的敬业和对学生们的关爱。同时要感谢同学们的帮助!他们的帮助让我的这次课程设计进行的相当顺利,并从中获益颇多。

最后再次感谢胡老师的悉心指导!使我掌握到了焊接设计、调试等方面的本领,并再次感谢帮助过我的同学,使我感到了他们的对人无私帮助的温暖。

参考文献

[1] 邹彦,DSP原理及应用,电子工业出版社,2005年1月

[2] 姚福安,电子电路设计与实践,山东科学技术出版社,2001年10月

[3] 赵红怡,DSP技术与应用实例,电子工业出版社,2003

[4] 康华光,电子技术基础,高教出版社,2003

[5] 刘益成,TMS320C54x DSP应用程序设计与开发,北京航空航天大学出版社,2002

相关主题
文本预览
相关文档 最新文档