版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TMS320VC5402主机接口引导方案的设计郑州轻工业学院课程设计说明书题目:TMS320VC5402主机接口引导方案的设计姓 名: 姜之妍 院 (系): 电气信息工程学院 专业班级: 电信11-2班 学 号: 541101030212 指导教师: 成 绩: 时间: 2015 年 1 月 18 日至 2015 年 1 月 20 日课 程 设 计 任 务 书题目 TMS320VC5402主机接口引导方案的设计 专业、班级 电信112 学号 姓名 主要内容、基本要求、主要参考资料等:1、 参考课本及C54X Applications Guide.pdf 中关于BootLoader的内容。2、 设
2、计TMS320VC5402的HOST引导方案。要求将用户代码存放于符合HOST接口标准的主机中,处理器启动后能正常进入用户程序。3、 设计相关硬件电路,要求支持HOST接口引导,具备外扩程序存储空间、外扩数据存储空间、外扩IO存储空间。4、 要求编写引导完成后的用户初始化代码。5、 完成电路设计,说明引导过程,在CCS5000上验证程序。设计完成后要求每人上交一份课程设计说明书,说明书要求包含有课程设计任务书,各文件的说明,各文件里关键语句的说明。说明书要求字迹工整、叙述清楚。6、 发挥部分,如时间可行,增加设计成为一个完整的项目(附加附加一个简单例程、一个命令文件和一个向量表文件)。并验证结
3、果。7、 时间:一周。完 成 期 限: 2015.01.12-2015.01.23 指导教师签名: 石 军 课程负责人签名: 胡智宏 2015 年 1 月 12 日目录1 概述51.1 DSP概述51.2 TMS320VC5402芯片介绍51.3 主机接口BOOTLOAD的工作原理61.4 主机接口加载引导方式72C5402主机接口的解决方案93硬件电路设计103.1 HPI自举加载的过程103.2 系统设计框图113.3 HPI与主机连接模块123.4 电源供电模块143.5 存储空间扩展154 系统的软件实现174.1 创建启动代码174.2 主机对HPI接口的操作184.3 主机通过HP
4、I引导程序到目标DSP194.4 目标DSP开始执行所下载的代码204.5 用户初始化程序205 总结23参考文献24附录25TMS320VC5402主机接口引导方案的设计摘 要本课程设计主要介绍了DSP TMS320VC5402芯片的主机接口引导装载的实现方案。在此设计中用户程序代码存放在主机中,DSP处理器上电后能通过主机接口将程序引导入DSP的程序存储区,正常进入用户程序代码,不仅提高了处理速度 ,而且大大地减少了硬件设计的复杂度和开销。同时给出了相应的硬件电路,对各部分电路进行了说明,并且编写了引导完成后的硬件电路初始化代码。关键词:DSP 主机接口引导TMS320VC54021 概述
5、1.1 DSP概述 随着信息技术革命的深入和计算机技术的飞速发展,数字信号处理技术已经逐渐发展为一门主流技术。在这个过程中,DSP的功能日益强大,技术不断升级,它的普及和应用已成为不可逆转的潮流。TI公司生产的TMS320VC5402是一种基于哈佛结构的固点DSP,有高度的操作灵活性,且最高频率可达100MHz,它已广泛地应用于通信、数字图像、语音、雷达、控制等领域。BOOT LOADED是开发DSP应用系统的最后一个必要环节,也是很重要的环节之一。TMS320VC5402是一款内部只有16K×16位RAM和4K×16位掩膜ROM的定点DSP芯片。而且掩膜ROM不对用户开放
6、,因此用户程序必须固化在外部存储器中、上电复位时,片内ROM中的BOOT LOADER小程序将固化在外部存储器中的用户程序搬移到片内RAM程序区,并将程序指针移到执行程序的第一行处。1.2 TMS320VC5402芯片介绍TMS320VC5402是德州仪器公司(TI)1999年10月推出的性价比极高(目标价格仅为5美元)的定点数字信号处理器(DSP)。C5402主要特点如下: 操作速率达100MIPS;具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线;40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器;一个17×17乘法器和一个40位专用加法器
7、,允许16位带/不带符号的乘法;整合维特比加速器,用于提高维特比编译码的速度;单周期正规化及指数译码;8个辅助寄存器及一个软件栈,允许使用业界最先进的定点DSP C语言编译器;数据/程序寻址空间1M×16bit,内置4K×16bit ROM和16K×16bit RAM;内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串行口、一个8位并行与外部处理器通信的HPI口、2个16位定时器以及6通道DMA控制器;低功耗,工作电源有3V和1.8V(内核),特别适合电池供电设备。由此可见,与TMS32054X系列的其它芯片相比,C5402以其独有的高性能、低
8、功耗和低价格特性,使得一推出就受到业内用户的欢迎。但它的内部结构和片内掩模的引导装载(Bootloader)程序与C54X系列的其它DSP处理器有较大的差异,而它的应用对象又大多是要求能脱机运行,如机顶盒(STB)、个人数字助理(PDA)和数字无线通信等内嵌式系统。C5402的HPI8接口的最大特点是它允许主机访问DSP的整个片内空间。HPI-8的使用是通过对HPIA、HPIC和HPID三个寄存器赋值实现的。HPIA是地址寄存器,HPIC是控制寄存器,而HPID是数据寄存器。简单地说,HOST通过外部引脚HCNTL0和HCNTL1选中不同的寄存器,则当前发送8位数据就到该寄存器。在使用上,由于
9、HPIC是16位寄存器,而HPI-8是8位的数据宽度,所以HOST向HPIC写数据时,需要发送两个一样的8位数据。而地址寄存器HPIA选择后,直接向它写数据就可以了,但是要注意MSB和LSB的顺序。另外,HPIA具有自动增长的功能,在每写入一个数据前和每写入一个数据后,HPIA会自动加1。这样,如果使能了该功能,只需设定一次HPIA即可实现连续数据块的写入和读出。数据寄存器HPLD,严格就应该叫做数据缓冲寄存器,因为最终数据是要写到片内RAM的。只是在实现上,数据首先从HOST发到HPID中,然后根据HPIA指定的地址,HPID中的数据再写到片内RAM的地址中。1.3 主机接口BOOTLOAD
10、的工作原理众所周知,通用单片机的程序是把单片机放入专用的烧写器中,先将程序烧入EEPROM中,然后将单片机装入功能板上工作。DSP为了增加软件下载的灵活性,将这个EEPROM等存储器放置到片外,由一片或几片FLASH来代替。DSP的内部ROM固化了一个称为BOOT的程序,在DSP上电硬复位后(MP/MC=0),DSP自动执行这个BOOT程序,将外部FLASH的程序读入DSP内部的高速RAM程序区中。所以,所谓的Boot Loader就是DSP上电后自动将固化在FLASH中的程序读入到DSP的片内RAM或片外RAM映射成的存储区间的一个过程。按照BOOT时程序由外部FLASH等存储器进入到DSP
11、片上RAM的通道不同分为多种BOOT LOADER的模式,包括并行I/O口BOOTLOAD、串行口BOOTLOAD、HPI BOOTLOAD、外部并行BOOTLOAD、WARM BOOTLOAD,并支持8位、16位及多块程序BOOTLOAD。这些不同的BOOTLOAD方式可以满足用户不同的应用场合。在上电复位后,DSP只有处于微计算机状态,即MP/MC为零时才能进入加载引导过程。在TMS320C54X芯片内部ROM的0F800h0FC00h中固化了一段加载引导程序,其作用是先根据相关控制信号的不同状态来确定采用何种加载引导方式,然后将代码从外部加载到程序区,最后再将程序入口地址赋给程序指针。在
12、这段程序的开始,还应对CPU状态寄存器进行初始化设置,包括屏蔽中断、内部DARAM映射到程序/数据区、程序/数据区读写加7个等待周期等设置。1.4 主机接口加载引导方式主机接口是TI公司DSP的特色之一,即DSP作为协处理器将片内DARAM共享以便让其他智能器件(比如单片机或另外的DSP)作为主机访问,从而提供一种方便快捷的通讯联系方式。在主机接口引导方式下,首先将代码通过主机接口下载到DSP片内存储器中,然后,DSP再从数据区007FH提供的地址开始执行程序。一般在DSP芯片复位后,首先判断是否选择主机接口引导方式。具体方式是加载引导程序先将数据区007Fh清零并发出主机中断,然后检测中断标
13、志寄存器(LFR)中的外部中断2(INT2),此时若有INT2发生,则认为主机接口引导方式被唯一选中并进入该引导方式。否则,加载引导程序还会检查其它引导方式,包括主机方式。为了适时地触发INT2外部中断,可以将主机中断(HINT)和外部中断2(INT2)直接连在一起,或者在DSP复位30个时钟周期内触发一个有效的外部中断(INT2)。进入主机接口引导方式后,主机就可以向DSP加载代码,直到加载结束,同时在DSP数据区的007Fh写入DSP程序开始执行位置 。而加载引导程序则一直监测007Fh的数据是否有改变,如果数据发生非零改变,则结束加载引导,同时将程序指针设为该非零值以作为程序起始地址。2
14、C5402主机接口的解决方案解决主机与目标系统的数据交换是一个非常复杂的问题,传统的方式是采用DMA(Direct Memory Access)或全局存储器(Global Memory)完成多机系统中的数据共享。在DMA方式下,读写共享人存必须要求其它处理器处于停止工作的状态,所以DMA共享存储器的方式往往不为人所用。全局存储器是多个处理器共享的存储器。在使用全局存储器的应用系统中,DSP的地址空间被分成局部块(Local Section)和全局块(Global Section)。局部块用于完成处理器自己的工作,而全局块则用来完成与其它处理器的通信工作。在TMS320C5x器件中,使用全局存储
15、器分配寄存器Greg完成对全局内存的管理工作。Greg指定部分DSP内存为全局内存。比如,TMS320C5x器件能够分配全局数据内存空间,并通过BR(Bus Request)和hcs控制信号实现与该内存的通信。当需要寻址全局内存空间时,BR和hcs信号变低电平。于是外部逻辑进行全局内存控制权的裁决,裁决的结果将通过选通信号通知某个TMS320C5x,从而使该DSP现在就拥有对全局内存的控制权。显然,使用全局内存的方式来完成多DSP的共享数据通信是非常方便的。但是,应用系统往往由单片机作为主机,DSP作为目标系统构成。由于当前使用最多的单片机往往是8位机,使用16位机的共享内存完成主机与DSP的
16、数据交换不是处理太复杂就是资源利用不充分。为了解决DSP与低档8位主机的数据交换问题,TI公司在TMS320C54x系列中使用了HPI接口。HPI将以往一些需片外实现的功能集成在片内,简化了与主机的连接,同时主机可以达到很高访问速度。该HPI端口在TI TMS320C6x系列的器件中也得到了保持,且功能有所增强。3硬件电路设计3.1 HPI自举加载的过程C5402包含4K字的片内ROM,该ROM的一部分用于存储自举加载器代码。PMST寄存器的MP/MC位在复位时被采样,它的值部分地可以决定C5402存储器的映射。如果MP/MC设置为0,则C5402被置于微计算机模式,并且自举加载器复位时就开始
17、启动。ROM中的自举加载器被定位被定为到程序存储器地址0xF800。C5402在复位后执行它的自举加载器。执行开始时,自举加载器开始查询不同的资源,用来确定使用哪种自举模式。自举加载器使用各种控制信号(包括中断信号、BIO、和XF引脚)以及片内存储器的数据,来配置和控制自举过程。如果没有发现有效的自举模式,则自举加载器持续循环,检查每种模式,直到选择了一种自举加载模式。有两种方法为HPI自举有效的加载器提供信号,即中断和数据存储器位置0x007F。自举加载器检查IFR寄存器的中断2标志位(INT2)是否为1。如果在INT2引脚产生中断信号,则选择了HPI模式。自举加载器也会清除0x007F单元
18、,并且把0x007F用作一个软件标志以显示HPI自举加载是否已经完成。如果中断2信号用于激活HPI自举模式,有两种方式可以用来获取中断2引脚上的输入信号,我们采用将主机中断(HINT)与INT2中断直接相连。3.2 系统设计框图图1 系统框图此系统包含DSP处理器、时钟复位及电容去耦等辅助电路、外扩的程序存储器、外扩的数据存储器、外扩的IO空间(即模数转换电路)、HPI接口电路、主机控制模块。是一个完整的DSP开发系统。系统框图中的程序存储器用1兆位的AT29LV1024实现,AT29LV1024作为DSP的外部程序存储器,地址总线和数据总线接至DSP的外部总线,片选信号接至DSP的外部程序存
19、储器的片选信号,编程写信号接至DSP的读/写信号,而输出使能信号接地。系统框图中的数据存储器和I/O存储器均由ICSI64LV16实现,它是一种高速的数据存储器,其容量为64K*16,分别有16位地址线和数据线,控制线包括片选信号、写允许信号、读选通信号、高位字节选通信号和低位字节选通信号。电源电压3.3V,与C54x外设电压相同。3.3 HPI与主机连接模块 图2 HPI与主机设备之间的连接框图8位数据总线(HD0HD7)与主机之间交换信息。因为C54xDSP的16位字的结构,所以主机与DSP之间数据传输必须包含两个连续的字节。专用的HBIL引脚信号确定传输的是第一个还是第二个字节。HPI控
20、制寄存器HPIC的BOB位决定第一个或第二个字节放置在16位字的高8位,而主机不必破坏两个字节的访问顺序。如果字节的传输顺序被破坏,则数据可能会丢失,产生不可预测的结果。两个控制输入表示那个HPI寄存器被访问,并且表示对寄存器进行那种访问。这两个输入与HBIL一起由主机地址总线位驱动。使用HCNTL0/1输入,主机可以指定对三个HPI寄存器的访问:HPI控制寄存器、HPI地址寄存器或HPI数据寄存器。HPIA寄存器也可以使用自动增寻址方式访问HPIA寄存器。自动增特性为连续的字单元的读写提供了方便。在自动增模式下,一次数据读会使HPIA在数据读操作后增加1,而一个数据写操作会使HPIA操作前预
21、先增加1。通过写HPIC,主机可以中断C54x DSP,并且HINT输出可以被C54x DSP用来中断主机。主机通过写HPIC来应答中断并清除HINT。两个数据选通信号、读写选通信号和地址选通信号,可以使HPI与各种工业标准主机设备进行连接。HPI准备引脚(HRDY)允许为准备输入的主机插入等待状态,这样可以调整主机对HPI的访问速度。当HRDY直接用于来自C54x CPU,则它不必满足主机时序要求,该信号可以使用外部逻辑实现重新同步。图3 主机接口配置在使用时用短路将2、3短路,使INT2与HINT2直接相连,用来激活HPI自举模式。3.4 电源供电模块 图4 电源电路该系统采用TPS73H
22、D318电源芯片供电,将5V电源转换成3.3V和1.8V双电源,每路电源的最大输出电流为750mA,并且提供两个宽度为200ms的低电平复位脉冲。3.5 存储空间扩展图5 扩展的程序存储空间 图6 扩展存储空间的逻辑电路 图7 扩展的数据存储空间由于C5402的片上资源有限,需要外扩数据存储器和程序存储器。IS61LV6416为64K的RAM。与DSP的连接电路如图。4 系统的软件实现4.1 创建启动代码 实现TMS320C54x HPI引导模式的第一步是生成HPI引导的DSP代码,并把它与主处理器应用程序合并在一起,使DSP应用程序可以和主处理器应用程序一起远程下载。为了简化,采用
23、下列方案:把DSP应用程序转换成头文件中的数组,并和主处理器应用程序一起编译连接。具体实现分为两步:1)利用转换工具HEX6x把COFF文件转换成ASCII-Hex格式十六进制文件;2)利用自编工具hex2aray.exe将ASCII-Hex格式的文件转换成包含数组的头文件。(1)利用转换工具HEX6x把COFF文件转换成ASCII-Hex格式十六进制文件利用转换工具HEX6x把COFF文件转换成十六进制文件,使用转换工具HEX6x需要一个.cmd文件说明具体的转换格式,如下面文件hexcom.cmd所示:HEX6x把COFF文件test.out转换成两个ASCII-Hex格式的文件:一个是代
24、码段,包含在文件test.a00中;另一个是初始化的数据段,包含在文件test.a10中。在DOS命令行中执行hex6x hexcom.cmd将产生test.a00和test.a10两个文件。文件hexcom.cmd:.objecttest.out-a-byte-image-memwidth 16-romwidth 16-order MROMS/* Size of the internal pgm memory */PGM: org = 0x00000000, length = 0x10000/* Size of the internal data memory */DATA: org = 0
25、x80000000, length = 0x10000(2)利用工具hex2aray.exe生成头文件然后利用hex2aray.exe将两个ASCII-Hex格式的文件:test.a00和test.a10分别转换成两个个包含数组的头文件:code.h和init.h。工具hex2aray.exe为自编工具。在DOS命令行中分别执行hex2aray i test.a00 o code.h和hex2aray i test.a10 o init.h两条命令将产生两个头文件code.h和init.h。在文件hexcom.cmd中的选项:- a,指示HEX6x按ASCII-Hex格式转换文件。文件开始是A
26、SCII STX 字符 (ctrl-B, 02h),结束是ASCII ETX 字符 (ctrl-C, 03h);$AXXXX,代表地址;其余为代码。转换后的头文件格式如下:constcharcode=0x12,0x18,0x01,0x00,0x28,0x00,0x00,0x00,0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
27、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
28、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,; 4.2 主机对HPI接口的操作 TMS320C54x提供了三个16位寄存器:HPIC、HPIA、HPID和16位数据线与主处理器通信。主处理器通过HPIC、HPIA、HPID和16位数据线来与TMS320C54x进行数据交换,数据交换的过程如下:(1)首先初始化HPIC;(2)然后把地址写到HPIA;(3)最后通过HPID读或写数据。4.3 主机通过HPI引导程序到目标DS
29、P一个程序由初始化区和非初始化区两部分组成,主机处理器必须根据.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 HW
30、OB=1,1st halfword transferred is least significant */* HCNTRL1 HCNTRL0 HHWIL */ptr_hpi0 = 0x0001; /* 1st halfword 0 0 0 */ptr_hpi1 = 0x0001; /* 2nd halfword 0 0 1 */* Write destination address to HPIA, 1st halfword is least significant */* HCNTRL1 HCNTRL0 HHWIL */ptr_hpi2 = (int)(dest_add & 0x0f
31、fff); /* 0 1 0 */ptr_hpi3 = (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_hpi4 = (int) *source+; /* 1 0 0 */ptr_hpi5 = (int) *s
32、ource+; /* 1 0 1 */4.4 目标DSP开始执行所下载的代码 主机通过HPI下载代码段和数据段到目标DSP以后,那么目标DSP就需要执行所下载的代码了。通过写HPIC寄存器的DSPINT位为1让DSP退出复位状态后,DSP就开始从地址0执行所下载的代码了。具体实现代码为:/* Write HPIC with DSPINT=1 */* HCNTRL1 HCNTRL0 HHWIL */* 1st halfword 0 0 0 */* 2nd halfword 0 0 1 */ptr_hpi0 = 0x0002; /* 1st halfword */ptr_hpi1 = 0
33、x0002; /* 2nd halfword */4.5 用户初始化程序.c-mode.mmregsCONST-COPY .set 1.sect “.boot”.global c-int00.global main,-exit,-STACK-SIZE-stack: .usect“.stack”,0 ;定义堆栈-c-int00*堆栈初始化*STM #-stack,SP ;栈底->SPADDM #(-STACK-SIZE-1),*(SP) ;SP+栈长度=>栈顶->SPANDM #0fffeh, *(SP) ;让SP为偶地址SSBX SXM ;STM置位LD#cinit,A*寄存
34、器初始化*SSBX CPL ;打开编译模式位RSBX OVM ;清除溢出位LD #0,ARPRSBX C16RSBX CMPTRSBX FRCTSSBX XF*变量区初始化*stm #0x3a00,arlst #0,*arl+st #0,*arl+st #0,*arl*常量区初始化*-const-initSTM #03a24h,AR2 ;常量区.const运行地址->AR2RPT #05fhMVPD #0f000h,*AR2+ ;将.const由flash拷贝到RAM区*程序初始化*STM #0cc0h,AR2 ;程序段.text运行地址->AR2RPT #300hMVPD #0f000h,*AR2+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饮食公关活动策划方案(3篇)
- 东营海关优化营销方案(3篇)
- 物联网安全防护服务合同协议2026
- 战略联盟2026年度执行协议
- 年度产品推广项目合作协议
- 民办非企业内部培训协议2026版
- pst装车台施工方案(3篇)
- 中考播音广播应急预案(3篇)
- 全城轰动的营销方案(3篇)
- 养老案例大赛活动方案策划(3篇)
- 2025届上海市长宁区高三一模英语试题(含答案)
- 变电运维专业知识竞赛考试题库
- 生物医学信号处理
- 《烙铁培训资料》课件
- 人教版三年级上册《生命.生态.安全》全册教案(及计划)
- 历史文化名城保护与发展研究
- 小区广告位招租模板(五篇)
- 初三开学第一课主题班会ppt
- (完整版)支气管哮喘入院记录首次病程记录及出院记录
- 教师口语表达训练
- 学校三年一体化教学管理方案
评论
0/150
提交评论