转载几篇不错的文章

来源:互联网 发布:windows 10 s 编辑:程序博客网 时间:2024/05/18 10:06

TMS320VC5402芯片的并口启动装载方案

 

                                    易飞  赵洪信


                         西安开元微电子科技有限公司 (西安 710043)

 

  【摘要】介绍如何用通用并行EPROM芯片与TMS320VC5402芯片接口,实现并口启动装载。给出了此方案的硬件电路图、电路原理及相关源代码,叙述了如何将5402编译器生成的输出文件转换成可以写入EPROM的文件格式及写入时的注意事项。

关键词:启动装载 速度匹配 工作频率

   
   对于DSP应用系统来说性价比是关键,在众多的DSP厂家和芯片型号中,德州仪器(
TI)公司的TMS32 0VC5402芯片(以下简称5402)就是一款性价比很好的DSP芯片。该芯片每秒钟可处理1亿次指令,千片的公开报价为5.98美元,现在有几种流行的MP3随身听和手机就采用了该款DSP芯片。

   在设计以5402为核心的独立系统时,必须解决5402的启动装载问题。TI公司技术文档中有专门介绍5402启动装载的文章,但对并口启动装载方案没有作充分的说明,本文就是对此的一个补充。那么,什么是5402的启动装载呢?启动装载就是在系统启动时将5402的运行程序从外部媒体装载到其内部SRAM或扩展的SRAM中,从而使系统能够按照预定的程序运行的过程。为什么5402必须要有启动装载呢?因为54 02芯片内部没有提供FLASH或EPROM空间来保存它的运行程序,所以,要让5402系统独立运行,就必须从外部装载程序。

   5402提供了五种启动装载的方式:HPI端口启动模式、标准串口启动模式、I/O启动模式、串EEPROM启动模式和并口启动模式。我们认为并口启动装载方案是以5402为核心的独立系统的最佳方案。因为前三种方式适用于多处理器系统中由其它处理器为5402提供运行代码的情况,无法适应以5402为核心的独立系统的要求,后两种方法都可以用在以5402为核心的独立系统上,但串口EEPROM启动模式中只支持SPI端口的EEPROM,这种EEPROM市场上较少见,价格偏高,而并口启动模式可以采用多种型号的并行EPR OM、并行EEPROM和并行FLASH(以下用EPROM代表),其可选器件种类较多,能够选择价格较低的型号与5402这种低价位的DSP芯片搭配,因而充分体现系统的性价比优势。

   5402的并行启动装载方案的关键是:解决5402与EPROM的速度匹配问题。

   5402一般要求在100M的工作频率下,才能达到每秒种处理1亿次指令的性能,而并口装载100M的频率(速度为10ns)几乎是所有的EPROM都无法承受的,因此5402提供了装载时的总线时钟延时功能。该延时功能最多能延时7倍,就是只能与速度高于或等于70ns的EPROM和FLASH接口,但能满足这一要求的EPROM和FLASH价格很高。

   为解决该问题,需利用5402的另外一个特性,即5402的工作频率可以小于或等于100M,并能用硬件和软件两种方式设定。因此,我们可以在硬件电路中设定5402刚加电时的工作频率很低(比如为5M),利用这个频率来和EPROM接口。然后,在所装载程序的开始部分,用软件设定的方法将工作频率更改为100M,使5402达到最大的工作效率。

   下面具体讲述硬件和软件的实现方法。

1 5402并行启动装载方案的硬件原理

    5402芯片采用10M的晶振。图1为电路连接图,图中用一个8位宽的容量为32K的EPROM(27C256)与5402接口。

1.1 硬件设定工作频率

   我们将5402的CLKMD1~3三个脚都连到高电平上,这样5402芯片开始加电时的工作频率被硬件设定为二分频,即5M,在这种频率下进行的启动装载几乎可以和所有速度指标的EPROM接口。

1.2 XF的作用

   图1中EPROM被映射到5402的数据区(有效地址为8000H~FFFFH),这样将占用5402的数据区空间。为了让5402在启动代码装载完后仍能使用这段数据区空间,必须让EPROM在程序装载后让出总线。此时将5402的通用输出脚XF的倒相接到EPROM的片选脚(CE)上,就可以实现这一功能。其工作原理为:在5402刚加电时XF为高电平,这时EPROM片选将软件程序装载到5402的SRAM中,然后在程序的开始部分将XF置低,使EPROM不工作让出占用的数据空间。
1.3 采用16位的EPROM
   如采用16位的EPPOM,只需对接好高8位数据位,其它同图1。

                              

2  5402并行启动装载方案的软件代码

   为配合硬件电路,要用软件来控制XF并更改5402的工作频率。代码如下:

   RSBX XF;控制XF, 将其电平置为低.,关闭EPROM,让出数据区空间。

   STM #0,58h ;将CLKMD寄存器(数据空间地址为58H)置为0, 即为二分频状态,此时倍频电路不工作 。

   waitpll: ;如下循环判断是为了等待5402二分频状态设置成功

   LDM 58h,A  ;读入CLKMD的值到累加器A中。

   AND #1,A ;取CLKMD的值中最低位.。

   BC waitpll,ANEQ ;如最低位为1则跳转到waitpll继续等待, 为0则退出循环。
   STM #97ffh,58h ;将CLKMD寄存器写为97FFH,即设置为10倍频状态,则其相应的
工作频率更改为100M 。
RPT #100 ;循环执行100次空语句, 等待5402的工作频率稳定在100M。
   nop

3 将软件正确写到EPROM中

   5402的软件编译后需要写入EPROM中。5402软件编译后生成扩展名为out的输出文件,这种文件格式不能直接写入EPROM中,必须经过格式的转换,而且写入时也要注意一些问题。

3.1 文件格式的转换

   绝大多数EPROM或FLASH的烧写器都支持hex格式的文件,这里就介绍将out文件转成hex文件的方法。在转换过程中,要用到5402编译环境中的hex500.exe工具。

   首先,要建立一个保存转换选项的文件,一般存为扩展名cmd。转换选项须根据具体情况修改,否则转换的文件无法正常使用。例如我们保存了一个名为rom.cmd的文件,文件的内容和说明如下:

                main.out

            -e 0080h

            -i

            -memwidth 8

            -boot

            -bootorg PARALLEL

            -o main.hex 
说明:main.out是输入文件名,即5402软件编译生成的out格式文件的名字。

 -e选项是程序的中断向量表的入口点,在这个例子中我们的软件的向量表放到了数据空间的0080H的位置。

 -i选项决定输出文件的格式为hex格式。

 -memwidth选项使用了EPROM的位宽度,如果是8位的ERPOM则为8,如果是16位的EPROM则为16。

 -boot选项用来说明将out文件中的所有程序段都转成hex格式。

 -bootorg选项说明输出的文件是为并行的EPROM提供的,要由hex500.exe加入并行的一些控制信息。
   -o选项后面是输出文件的文件名。

   然后,直接在DOS下写入如下一行命令,调用hex500.exe实现格式的转换:hex500 rom.cmd

3.2  烧写EPROM时要注意的问题

   转换生成的hex文件在由烧写器的烧写软件读入时,一定要计算好文件的放置位置。5402的并行启动装载方式要求8位的EPROM在数据空间的FFFFH和FFFEH中要放入程序代码的起始地址(地址高位放FFFEH中,地址低位放在FFFFH中),16位的EOPROM要在FFFFH中放入代码起始地址。

   例如:用一个32K*8bit的EPROM作为5402的启动装载媒体,将它映射到5402数据空间的8000H-FFFFH之间。如果我们将程序代码对齐该EPROM的起始位置烧写,那么程序代码的起始地址应为8000H,因此我们还要在EPROM中的FFFEH位置烧入80H,在FFFFH位置烧入00H数据。这样才能保证程序顺利装载。

 
TMS320VC5402的HPI与51单片机的接口设计作者:    时间:2007-10-08    来源:         引言

TMS320VC5402是TI公司推出的性价比极高的定点数字信号处理器(DSP)。它具有先进的多总线结构(三条16位数据存储器总线和一条程序存储器总线);其数据/程序寻址空间为1 M×16 bit: 内置4 k×16 bitP/DROM和16 k×16 bit-DARAM;此外,该DSP内含两个多通道缓冲串行口,一个8位并行与外部处理器通信的HPI口,2个16位定时器以及6通道DMA控制器;具有低功耗,适合电池供电设备等特点[1]。

51系列单片机是一种很经典的单片机。20多年来一直久盛不衰。而且Intel通过授权5l内核,目前已出现了很多第三方生产的51系列产品。这些产品一般都具有较高的时钟频率和较大的存储空间,而且还能运行嵌入式操作系统。因而极大地提高了单片机的性能,扩大了它的应用范围。

1 TMS320VC5402的主机接口(HPI)

HPI(主机接口)是主机与TMS320VC5402进行数据交换的8 bit并行数据口。该接口在
TMS320VC5402芯片上,内部有数据寄存器(HPID),控制寄存器(HPIC)及地址寄存器(HPIA)。HPI口可用8 bit数据线传输16 bit的数据,并可通过设置控制寄存器的相关位来控制高8位和低8位传输。HPI有两种工作方式:一种是主机独占模式 (HOM); 另一种是主机和TMS320VC5402共享模式(SAM)。其中SAM是通用方式,二者都可寻址HPI存储器(DARAM)。当二者产生冲突时,主机具有较高的优先权,而在TMS320VC5402插人一个等周期。通过HPI传输的数据率是每5个CLKOUT时钟周期传输1字节。HMS320VC5402芯片中HPI8的内部结构逻辑如图1所示[2]。

HPI通信主要是通过对HPIA、HPIC和HPID3个寄存器赋值来实现的。简单地说,HOST通过外部引脚HCNTL0和HCNTLl选中不同的寄存器后,就将当前8位数据发送到该寄存器中了。由于HPIC是16位寄存器,而HPI口总是传送8位数据宽度,所以用HOST向HPIC写数据时,需要发送两个一样的8位数据。对TMS320VC5402来说,仅低8位有意义。当地址寄存器HPIA选择后,直接向它写数据就可以了,但是要注意MSB和LSB的顺序。另外,HPIA具有自动增长的特性,即在每写入一个数据前和每读一个数据后HPIA都会自动加1。这样,如果使用了该功能,只需设定一次HPIA即可实现连续数据块的写入和读出,只是在实现时,数据应首先从主机发到HPID中,然后再根据HPIA指定的地址把HPID中的数据再写到片内RAM的地址中。

2 DSP与单片机的通信

由于本系统具有主从式双CPU结构,因此,DSP从处理器和单片机主处理器之间的数据通信是必不可少的。它们之间的通信接口设计是整个系统的一个关键。对于DSP和单片机的具体连接方案,考虑到不论是接串口还是接I/O口都要占用DSP的硬件资源,同时软件开销也非常大。而TMS320VC5402提供有HPI接口,可专用于DSP和主机之间的通信,因此DSP在通过HPI口和主机通信的过程中完全没有硬件和软件开销,而是由DSP自身的硬件来协调冲突,因从而不会打断DSP正常程序的运行。在HPI通信方式下,DSP的片内存储器对外界是完全透明的,可由主机通过访问HPI的地址和数据寄存器来完成对DSP片内存储器的读写。本系统采取DSP的HPI口和单片机的P0口相连来作为数据传输口从而实现两者的交互。

2.1 DSP和单片机的硬件接口设计

本设计选取ATMEL公司的AT89C51单片机作为主机,并以I/O接口方式连接DSP和AT89C51,设计时使用了AT89C51的两个通用I/O端口P0和P2,其硬件接口原理图如2所示。图中将AT89C51的端口P0和HPI的8位数据线HD0一~HD8相连作为数据传输通道,P20~P24设置为输出以控制HPI口的操作。其中P2.0和P2.1分别连接HCNTL0和HCNTLl以实现对HPIC、HPIA和HPID寄存器的访问,P2.2连接字节识别信号HBIL可控制读写数据是属16位字的第一字节还是第二字节,P2.4作为读写控制选通信号连接HR/W,P2.7与HCS相连,而连接HDS1作为数据选通信号来锁存有效的HCNTL0/1,HBIL和HR/W信号。 INT0作为输入与HPI口的主机中断信号HINT相连。ALE与HAS相连,WR和HDS2相连。由HPI接口的原理可知,在HCNTL0/1、HBIL和HR/W信号有效之后,设置HDS1为低电平可实现读写的数据选通,从而完成AT89C51对DSPHPI口的读写操作。在数据交换过程中,AT89C51向HPI发送数据可通过置TMS320VC5402的HPI控制寄存器HPIC中的DSPINT位为1来中断5402。AT89C51接收来自HPI的数据时则可用查询方式。当TMS320VC5402DSP准备发送数据时,置/HINT信号为低。当AT89C51查询到INT0为低时,系统将调用接收数据子程序来实现数据的接收。

TMS320VC5402 DSP的外部I/O引脚用的是3.3 V逻辑电平,而AT89C51单片机用的是5 V逻辑电平,两者之间存在电平差异而不能直接相连,故采用74LVC16245进行接口隔离同时还可增强DSP的总线驱动能力。

 

2.2 通过HPI接口读取数据的软件设计

在硬件搭建好后,接下来便是软件功能模块的设计工作。本系统主机程序主要完成HPI寄存器的选择、时序的构建和数据读/写等。可根据DSP HPI接口的工作时序置HPIENA引脚为高电平,使能DSP进入HPI工作模式,然后设置TMS320VC5402的HPIC寄存器和HPIA寄存器,使其工作在能够配合8 bit HPI Bootloader状态下。
AT89C51的部分汇编源程序所完成的功能包括初始化串口、初始化HPI接口、从串口接收命令字(包括16,bit地址和8,bit数据)、通过HPI接口读取DSP的相应内部存储器,并发送到串口、以及等待接收下一次的命令等,其具体汇编程序代码如下:


3 结束语

DSP与单片机之间有许多连接方式, (例如利用双口RAM或者通过串口),但是它们都要占用DSP的处理时间,这在要求苛刻的场合可能会影响到系统的实时性。而HPI接口则通过DSP片内的DMA控制器来访问片内存储器,它不需要DSP的干预。可以说,HPI接口是DSP的一个"后门",单片机通过这个"后门"可以访问到DSP的片内存储器。只有当HPI接口和DSP同时对同一地址进行访问时,由于HPI具有访问优先权,这时DSP的执行大会被延迟一个周期,而这种情况对系统实时性的影响是非常小的。

标签:  TMS320VC5402  HPI  DSP