电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > DSP > 详细信息
DSP:DSP器件的现场可编程技术
来源: 邢建泉   时间: 2007-9-26 16:21:36    
  DSP问世以来,以其强大的功能、合理的价格已经被设计者广泛应用。但不同于FPGA器件的是,DSP并不是为现场可编程而开发的,因此,在嵌入了DSP器件的产品中,如果需要对产品性能进行升级而需要升级程序时,往往会由于现场可编程能力缺乏,而给用户造成麻烦。本文以TI公司的54系列DSP为例,通过对DSP开发过程的分析和代码生成机理的深入研究,找到了一种对DSP器件进行现场编程的方法。

1 54x DSP的开发
     CCS集成开发环境是TI公司针对其全系列DSP开发的仿真编译器,可开发目前TI公司几乎所有类型的DSP芯片。在CCS集成开发环境下,54x DSP的开发一般分为以下几个步骤:程序编写、程序编译、COFF文件生成、仿真运行、HEX文件生成、程序存储器烧写和上机运行等,具体流程如图1所示。


  在源程序正确的情况下,可编译生成COFF(common()bject File Format)文件,其后缀为.out,可用于进行硬件仿真运行,但不能直接作为程序烧写。如果要将程序写入DSP的外部程序存储器,首先要根据.out文件生成HEX文件。

      HEX文件的生成需要调用专用的生成程序HEX500,在WIN32环境下执行HEX500*.cmd命令,生成需要的*.hex文件。按照命令文件*.cmd中的选项,可设置存储器的类型、位数、起始地址,程序的人口地址、引导方式和hex文件的格式等。下面是一段用串口对8位串行EOPROM进行引导的命令文件的例子。

123.out /*输入文件名*/
-i /*INTEL格式*/
-map 123.mxp
-o 123.hex /*输出文件名*/
-memwidth 8 /*8位存储器*/
-romwidth 8 /*输出文件为字节*/
-bcrotorg 0x0000 /*外部存储器开始地址*/
-bootorg serial /*串口装载*/
-e_main /*主程序人口*/
SECTI()NS
{.text;boot
} /*整个程序作为一段引导*/

2 HEX文件
      CCS的编译器和链接器生成COFF目标文件。COFF目标文件是二进制格式,有利于模块化编程和更高效的程序片断和目标系统存储器管理。但是大多数的编程器不接受COFF文件。可以用HEX转化程序将其转换为以下5种标准的ASCII十六进制格式:
      ◇ASCII-HEX,支持16位地址}
      ◇扩展的TeKtronix;
      ◇Intel MCS-86;
      ◇Motorola-s,支持16位、24位、32位地址;
      ◇TI Tagged,支持16位地址。

      仍然用前面的例子,命令文件生成的HEX文件片断如图2所示(用UltraEdit-32打开)。


      在命令文件中,也可以根据具体应用情况的不同规定不同的参数,例如,当使用并行存储器作为程序存储器时,则引导装载命令就要改为parallel。具体参数设置见参考文献[1]。

3 硬件编程接口
      为仿真调试的方便,54x DSP器件都具有仿真编程用的JTAG接口,其引脚定义如图3所示。


      通过JTAG口,可以与DSP建立通信联系,并通过特定的程序,控制DSP的内部单元,让DSP执行预定的操作.这是DSP实现现场可编程的硬件基础,如图4所示。


4 现场可编程的实现方法
      由于DSP的程序一般存储在外部存储器之中,因此,现场可编程的实现就是要将新程序通过DSP写入存储器。在以前,由于存储器的烧写电压普遍高于其工作电压,只能通过编程器烧写.随着技术的发展,现在许多E2PROM、Flash存储器等都可进行电擦写,擦写电压和工作电压一致,因此完全可以进行工作电压下的编程。

      对DSP进行现场编程,需要用到的器材有计算机和DSP仿真器;需要用到的软件有CCS集成开发平台、UltraEdit-32程序和DSP现场编程程序。具体操作步骤如下:
      ①在CCS集成开发环境下,将程序编译完成,并在目标板上运行通过。
      ②打开程序存储器窗口,根据程序的起始、结束地址,将整个程序代码存储为一个数据文件(dat文件)。
      ③生成hex文件。
      ④用UltraEdit-32程序打开hex文件,找出程序人口值和程序长度值以及程序开始地址值.
      ⑤调入烧写程序,并装载入系统芯片.
      ⑥将程序入口值、程序长度值、程序开始地址值填人现场编程程序中并编译通过。
      ⑦将存储的程序代码调入数据空间的适当位置(存放位置自定)。
      ⑧运行现场编程程序,通过DSP将代码写入外部程序存储器。
      以上步骤仅在编程开始时进行,一旦编程开始,就可以连续对多个器件现场编程。

      DSP现场编程程序的编制也很简单。下面的参考程序是根据前面的命令文件参数编写的,并经仿真验证通过。设定Mc·BSP2口以SPI方式引导串行E2PROM。
.text
…… ;McBSP2口SPI初始化,主动方式
STM #1000H,ARl;从1000H开始10个字为程序
;代码前的数据
ST #08AAH,* ARl+ ;引导头
ST #0018H,* ARl+
ST #O003H,* ARl+
ST #0800H,* ARl+
ST #D010H,* ARl+ ;不重要
ST #000lH,* ARl+
ST #0C428H,* ARl+ ;主程序人口为1C428H
ST #2340H,* ARl+ ;程序代码总字数2340H
ST #000lH,* ARI+
ST #0C000H,* ARl+;程序开始地址1C000H
STM #(1000H+0AH+2340H),ARl
ST #O,* ARl;最后放结束标志#0000H
STM #O,ADDRESS ;地址寄存器清零
STM #1000H,AR2 ;程序代码开始地址
STM #(0AH+2340H+1),BRC
RPTB LOOP ;写循环
LDM ADDRESS,A
SFTL A,-8
AND #OOFFH,A
OR #0200H,A
STLM A,AR3 ;写指令+地址高位
LDM ADDRESS,A
SFTL A,8
AND #OFF00H,A
LD * AR2,B 

SFTL B.-8 
AND #0FFH,B 
ADD B.A 
STLM A,AR4 ;地址低位+数据字节
LDM ADDRESS.A 
ADD #1.A
STLM A,ADDRESS ;E2PROM地址+1 
CALL WRITE ;写E2PROM子程序 
LDM ADDRESS,A 
SFTL A,-8 
AND #00FFH,A 
OR #0200H,A
STLM A,AR3 ;写指令+地址高位 
LDM ADDRESS,A 
SFTL A,8 
AND #0FFOOH,A 
LD *AR2+.B;程序代码地址+1 
AND #0FFH,B 
ADD B.A 
STLM A,AR4 ;地址低位+数据字节 
LDM ADDRESS,A
ADD #1,A
STLM A,ADDRESS ;EOPROM地址+1
CALL WRITE;写EOPROM子程序
LOOP:NOP
.end


结 语
      本文介绍的DSP现场可编程方法,经实际应用效果良好,其方便灵活的特点增强了现场处理问题的能力。由于其完全由软件实现,因此这种方法同样也适用于其他品牌的DSP产品。

相关信息
发表评论
打印本页 关闭本页
FPGA助力高端存储器接口设计
    高性能系统设计师在满足关键时序余量的同时要力争获得更高性能,而存储器接口设计则是一项艰巨挑战。双倍数据速率SDRAM和4倍数据速率SDRAM都采用源同步接口来把数据和时钟(或选通脉冲)由发射器传送到接收器。接收器接口内部利用时钟来锁存数据,此举可消除接口控制问题(例如在存储器和FPGA间的信号传递时间),但也为设计师带来了必须解决的新挑战。   关键问题之一就是如...
>>详细内容
赛灵思SPARTAN-3A系列FPGA又添低功耗器件
    赛灵思公司(Xilinx)日前宣布其XtremeDSP信号处理解决方案产品系列新增功耗优化的Spartan-3A DSP器件。这个目前业已投入量产的FPGA新器件,为低成本且低功耗FPGA领域的应用如军事通信战术无线电系统、无线接入点和便携式医疗设备等,提供了高性能的数字信号处理(DSP)能力。   与标准器件产品相比,Spartan-3A DSP低功耗(LP)器件的静态功耗降低了50%,而在待机模式下静态功耗的降低...
>>详细内容
ARM推出首款专门针对FPGA优化的处理器Cortex-M1
    ARM公司日前发布了第一款专门针对FPGA应用而优化的ARM Cortex-M1处理器。ARM Cortex-M1处理器扩展了ARM Cortex处理器系列,可帮助OEM厂商在一个通用架构下对不同性能需求进行标准化。Actel作为一家核心合作伙伴已与ARM紧密合作,并成为首个获得授权可为其FPGA客户提供Cortex-M1处理器的公司。   2007年4月2日至5日在美国加利福尼亚州圣何塞举行的嵌入式系统大会(Embedded System...
>>详细内容
莱迪思推出业界首个真正的90纳米非易失FPGA器件
    莱迪思半导体公司日前公布了其第三代非易失FPGA器件,LatticeXP2系列。LatticeXP2具有增强的性能,双倍增加的逻辑容量达40K查找表(LUT)、性能改进了25%、还加入了专用DSP块,而每个功能的价格减少达50%。对1.2伏加工工艺的功耗进行了优化,静态功耗减少了33%。设计使用了业界最先进的非易失FPGA工艺,莱迪思与代工伙伴富士通合作开发了90纳米嵌入式闪存工艺,LatticeXP2具有“瞬时...
>>详细内容
利用FPGA实现基于RU算法编码器(LDPC编码器)的设计
  引言   低密度奇偶校验(Low Density Parity Check Code,LDPC)码是一类具有稀疏校验矩阵的线性分组码,不仅有逼近Shannon限的良好性能,而且译码复杂度较低, 结构灵活,是近年信道编码领域的研究热点,目前已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。LDPC码已成为第四代通信系统(4G)强有力的竞争者,而基于LDPC码的编码方案已经被下一代卫星数字视频广播标准D...
>>详细内容
从FPGA实现的角度对大约束度Viterbi译码器中路径存储单元的设计
  1 引言   Viterbi译码算法是一种最大似然译码算法,目前广泛应用于各种数据传输系统,特别是卫星通信和移动通信系统中。近年来随着FPGA技术的迅速发展,使得基于FPGA实现Viterbi译码的算法成为研究的热点。   由于Viterbi译码器的复杂性随约束长度k成指数增加,大约束度不但使Viterbi译码器硬件复杂度大为增加,同时也限制了译码速度。而其中以加比选(Add Compareselect,ACS)运算...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com