网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> ADI DSP >> TigerSHARC >> 文章正文
  [组图]多TigerSHARC ADSP-TS101S系统的程序引导设计及实现         ★★★ 【字体:
多TigerSHARC ADSP-TS101S系统的程序引导设计及实现
作者:陈寿基,…    文章来源:现代电子技术    点击数:    更新时间:2007-1-1    

陈寿基,罗勇江,刘书明

(西安电子科技大学电子工程学院 陕西西安 710071

     :介绍了一种利用单片EPROM进行多片TigerSHARC ADSPTS101S系统程序引导方式的设计和实现。
   
关键词
TigerSHARCADSPTS101S;链路口;程序引导


   
有的系统构成灵活、可编程、运算速度快、数据处理和通信能力强以及适用面广的特点,使其广泛应用在通信、航空航天、医疗仪器、工业控制等领域中。美国ADI公司在推出以SHARC系列为代表的高性能浮点DSP处理芯片后,再推出了更高浮点处理能力的TigerSHARC系列的DSP处理芯片,以满足巨大数据量运算和数据通信中对DSP的要求.ADSP-TS101STigerSHARC系列DSP中的一款,具有工作频率高、强大的浮点运算能力、高速度数据吞吐以及大容量的片内存储器的特点,非常适合在雷达、声纳、软件无线电等领域全数字化处理中进行巨大的运算量和数据通信。
  DSP芯片的程序引导是DSP系统的重要环节,如果程序不能正常引导、加载,那么整个DSP系统将不能正常工作。本文在这里详细介绍一种利用单片EPROM进行多片TigerSHARCADSPTS101S系统程序引导的设计和实现。
1 ADSP-TS101S
引导
    ADSP-TS101S复位后,可以通过4种方式进行程序引导来启动DSPEPROM引导、外部ADSP-TS101S或主机引导、链路口引导、不进行程序引导而直接从外部存储器运行程序。
  默认为EPROM引导模式,根据外部管脚BMS的状态来决定是否从EPROM进行引导。EPROM引导复位后,DMA通道0从外部8 bEPROM0地址开始拷贝256 B的引导码,之后进行相应的程序引导。
   
在其他引导方式下ADSP-TS101S不执行引导程序,而是被动等待诸如DMA请求,链路输入,其他主处理器或主机传送或中断事件。复位后,4个接收链路DMA通道均被初始化,可以传送256 B到内部存储区0255,并在结束后产生中断(与外部断口DMA相同)。相应的DMA中断指向地址0。总线上任何主DSP或主机都可以对内部存储器和寄存器进行不同的写操作来引导TS101S。复位后TS101SSYSCON寄存器初始化为32 b总线。若系统使用64 b总线,则应首先初始化SYSCON寄存器。主DSP或主机可以将引导程序直接写入存储器。完成这一过程后,程序初始地址被写入VIRPT中断向量寄存器。主DSP或主机可使用的另一技术是向AutoDMA写操作。默认情况下,所有的AutoDMA通道初始化,可以以正常字方式传送256 B到内存地址0255,并在结束后引发中断。主DSP或主机也可以初始化DMA通道,将大小不限的程序块读入存储器。他可通过写入SYSCONSDRCON(若需要),然后写TCB,最后写中断向量表条目来完成。
2
ADSP-TS101S系统的程序引导的硬件设计
    由于ADSP-TS101S4种程序引导方式,在用多片ADSP-TS101S构成多处理器系统时,每片ADSP-TS101S的程序引导也就有多种引导方式。
  如果每片ADSP-TS101S都采用EPROM方式引导的话,那么如果只采用1EPROM引导的话,就需要外加1个总线仲裁的器件,这增加了系统的复杂度;但如果给每片ADSP-TS101S都配置1EPROM,那显然也不太合适,因为那样的话会使系统的电路板上的器件显的比较冗余,而且也不经济。
   
既然每片均采用EPROM进行程序引导不合适的话,而每片ADSP-TS101S又有多种程序引导方式,那么就可以采用EPROM引导方式和其他引导方式配合使用来实现多ADSP-TS101S的程序引导。采用EPROM引导方式与其他ADSP-TS101S引导或主机(HOST)引导方式相结合的话,这种方法缺乏通用性,因为如果在该系统之外并没有其他的ADSPTS101S,也没有主机(HOST)的话,那么这种方法显然就不能使用的。
  比较之下,采用EPROM引导方式和链路口引导方式相结合使最合适的方法。因为采用这种方法只需要一片较大容量的EPROM,并且不需要外界帮助和增加器件就可以进行多ADSP-TS101S系统的程序引导,而且多ADSP-TS101S之间通过链路口相连,系统的连接比较简单。
  采用EPROM引导和链路口引导方式相结合的方法进行多ADSP-TS101S的程序引导的硬件上的设计非常简便,第1片(与EPROM相连)ADSP-TS101S按照正常的EPROM引导方式与EPROM相连,另外第1ADSP-TS101S还将一个链路口与第2ADSP-TS101S的某个链路口相连,第1ADSP-TS101S的一个FLAG引脚连接到第2ADSP-TS101SIRQ引脚,同样,第2ADSP-TS101S也将一个链路口与第3ADSP-TS101S的某个链路口相连,并将一个FLAG引脚与第3ADSP-TS101SIRQ引脚相连,以此类推来连接第4片、第5ADSP-TS101S。由于ADSP-TS101S4个链路口,每个都可以进行链路口引导,所以具体采用哪些链路口相连,可以根据实际系统需要来灵活设计。图1是多ADSRTS101S系统的硬件原理图。


  
    

采用EPROM程序引导方式和链路口程序引导方式相结合进行多ADSP-TS101S程序引导的过程如下:首先,让第1片(与EPROM相连的)ADSP-TS101S通过EPROM程序引导方式进行程序引导;在第1ADSP-TS101S程序引导完毕后,第1ADSP-TS101S再从EPROM中读出第2ADSP-TS101S的程序,然后再通过链路口,采用链路口程序引导方式引导第2ADSP-TS101S;第等待第2ADSP-TS101S引导完毕后,第1ADSP-TS101SEPROM中读取第3ADSP-TS101S的程序,并且将第3ADSP-TS101S的程序通过链路口DMA方式发送到第2ADSP-TS101S中,第2ADSP-TS101S在接收到第3ADSP-TS101S的程序后,同样采用链路口程序引导方式,引导第3ADSP-TS101S;以此类推,就可以将所有的ADSP-TS101S引导。如图2所示。

  

采用这种结构的多ADSP-TS101S系统,要求将每片ADSP-TS101S的程序分开放置在EPROM的不同地址段中。第1AADSP-TS101S的程序存放在EPROM中从地址0开始的第一段地址中,第2ADSP-TS101S存放在接着第一段的地址后面的第二段地址空间中,第3ADSP-TS101S的程序存放在第三段中。
   
以此类推,不同的ADSP-TS101S的程序存放在相应地址中。但要求第1ADSP-TS101S的程序必须从EPROM的地址0开始存放,剩下的每片ADSP-TS101S的程序存放的段的起始地址必须是16的倍数。这是因为ADSP-TS101S链路口每次传输必须是传输4 B(每个字为32 b),而EPROM8 b的,所以每次将读取128 b的程序代码,也就是EPROM16个地址的数据。
3
 多ADSP-TS101S系统的程序引导软件设计
    由于采用EPROM和链路口引导相结合的方法进行多ADSP-TS101S的程序引导,所以除了最后一片ADSP-TS101S外,均要在每片ADSPTS101S程序的最开始添加链路口引导程序。
   
由于在生成ADSP-TS101S加载文件时,ADSP-TS101S的开发软件Visual DSP++会根据不同的引导类型,在用户的程序前添加相应的程序引导码,引导码中有ADSP-TS101S初始化的程序、用户程序长度等信息,只有在ADSPTS101S运行了相应的引导码后才能继续引导用户程序,不论是EPROM引导码还是链路口引导码均为256 B(每个字为32 b)。
   
下面以一个由3ADSP-TS101S构成的多ADSP-TS101S系统,来说明多ADSP-TS101S系统的软件设计。
   
对于第1ADSP-TS101S来说,他是通过EPROM进行程序引导的,所以只要按照EPROM程序引导的方式进行程序引导即可,但由于第1ADSP-TS101S要通过链路口来对第2和第3ADSP-TS101S进行程序引导,所以在进行第1ADSP-TS101S程序编写时,需要在程序的最开始添加给后面所有ADSP-TS101S的引导程序。而每片ADSP-TS101S的程序都由引导码和用户程序构成,所以在第1ADSP-TS101S给第2和第3ADSP-TS101S引导程序中应将引导码和用户程序分形传输。第1ADSP-TS101S程序流程图如图3所示,过程如下:
   
1)第1ADSP-TS101S关闭所有中断、所有链路口和所有DMA通道,进行初始化;
   
2)启动外部总线DMA,将第2ADSP-TS101S的引导码通过DMA的方式从EPROM中读取第第1ADSP-TS101S的数据存储区;


   

3)将第2ADSP-TS101S的引导码以每次4B的方式放入到链路口缓冲中,但要等链路口将上次的数据传输完后,才能再向链路口缓冲中放4 B。另外还可以每次只从EPROM中读取4 B(每字32 b),然后再将这4个字程序放入链路口缓冲,然后再从09EPPROM读取4 B,循环下去,直到引导码传输完毕。这种方法可以大大节省第1ADSP-TS101S为第2ADSP-TS101S进行程序引导而使用的存储空间。这里需注意的一点是必须将代码放入链路口缓冲,而不可以启动链路口DMA来传输程序代码,否则的话将导致引导错误;
   
4)直到将256 B的引导码传输完毕后,第1ADSP-TS101S应等待一段较长的时间。增加这个等待时间是必不可少的,因为要等到第2ADSPTS101S运行引导码后,才能继续传输第2ADSPTS101S的用户程序部分;
  (5)启动外部总线DMA,将第3ADSP-TS101S的引导码和用户程序通过DMA的方式从EPROM中读取到第1ADSP-TS101S的数据存储区;
  (6)通过FLAG端口向第2ADSP-TS101S发送中断请求,通知第2ADSP-TS101S准备接收从第1ADSP-TS101S发送的第3ADSP-TS101S的引导码和用户程序;
  (7)将第3ADSP-TS101S的引导码和用户程序通过链路口DMA方式传送到第2ADSPTS101S
  (8)等待一段时间后,开始运行第1ADSPTS101S的用户程序。
  第2ADSP-TS101S引导第3ADSP-TS101S的程序的流程图如图3所示,过程如下:
   
1ADSP-TS101S关闭所有中断、所有链路口和所有DMA通道,进行初始化完毕后,等待第1ADSP-TS101S中断请求;
   
2)响应第1ADSP-TS101S的中断,启动链路口DMA,准备接收第3ADSP-TS101S的引导码和用户程序;
   
3)采用第1ADSP-TS101S引导第2ADSP-TS101S的方法一样,引导第3ADSP-TS101S
   
4)等待一段时间后,运行第2ADSP-TS101S的用户程序。
  由于最后一片ADSPTS101S不再需要引导后面的ADSP-TS101S,所以最后1片的ADSP-TS101S的程序中不需要添加引导后面ADSP-TS101S的程序。
   
每片ADSP-TS101S再给后面的ADSP-TS101S进行程序引导时,都需要事先计算出后面的ADSPTS101S程序的长度,在进行用户程序传输时,需要用到这个数值,如果这个数值计算错误的话也将引起ADSP-TS101S程序引导错误。
   
由于第1ADSP-TS101S采用EPROM引导方式,所以生成的EPROM烧写文件类型应选为十六进制(HEX)的PROM型,而剩下的ADSP-TS101S由于采用的是链路口引导方式,所以他们生成的EPROM烧写文件类型应为二进制(Binary)的链路口型。如果生成的EPROM烧写文件类型错误,那么将不能进行引导ADSP-TS101S
4
  
  本文详细地介绍了利用EPROM引导和链路口引导方式相结合的方法实现单片EPROM引导多片ADSPTS101S的设计和实现方法,并且采用该方法实现多ADSP-TS101S的程序引导,可以降低系统的硬件复杂度,而且不依靠外界就可以实现系统的自举。

参考文献

1] TigerSHARCDSPhardware specification part # ADSP-TS101S.Analog Decives Inc,March 2002
2] TigerSHARCDSPInstruction set specification Part # ADSP-TS101S.Analog Decives Inc,March 2002
3] 刘书明,罗军辉.ADSPSHARC系列DSP应用系统设计[M].北京:电子工业出版社,2003
4] 苏涛,吴顺君,等.高性能DSP与高速实时信号处理[M

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    ADSP TigerSHARC中利用查找表…
    Static Superscalar Design:…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号