DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 217|回复: 0
打印 上一主题 下一主题

多TigerSHARC ADSP

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 20:10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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



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




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






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

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-21 23:25 , 耗时 0.093856 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表