论C语言开发下的DSP嵌入式系统

摘 要:嵌入式系统已随着芯片制造技术的发展在计算机应用领域占有一席之地,并成为计算机领域的一个重要的发展方向。当前,很多嵌入式系统的开发都是以数字信号处理器(DSP)为核心研发DSP嵌入式系统。而用汇编语言研发DSP系统存在着一些如开发难度大、周期长及维护性极差等问题,但若是用高级语言C语言编写的DSP应用程序,有很高的可读性和可移植性,并且易于维护及修改。从DSP嵌入式系统的发展现状、应用情况、研发技术以及发展趋势等方面对C语言开发下的DSP嵌入式系统进行了论述。

关键词:C语言;DSP;嵌入系统

中图分类号:TP301 文献标识码:A 文章编号:16727800(2012)011002602

________________________________________

作者简介:罗莎(1982-),女,北海职业学院讲师,研究方向为计算机软件。1 DSP系统国内外发展现状

自1978年AMI公司发布世界上第一个单片DSP芯片及1980年日本NEC公司推出第一块单片DSP器件以后,美国TI公司于1982年推出了第一代DSP芯片即TMS32010系列,到目前为止已研发了第六代DSP芯片——TMS320C62X/C67X、TMS320C64X等;而美国Analog Device公司也推出了一系列有自己特色的定点、浮点的DSP芯片。随着芯片生产技术的发展,DSP嵌入式系统也相应得到大力发展,无论是国际或是国内,对于DSP系统的研发都有了一定成就。

1.1 国外发展现状

最早的DSP嵌入式系统是从国外发展起来的,而且随着国外先进技术的迅速发展,国际DSP系统始终保持着良好的发展势头,尤其是以欧美为主的国际市场,发展极其迅猛。如美国的Pentek公司、DSP research公司、Motorola公司以及加拿大的Dy4公司等,都是发展规模相当大的DSP生产公司,很多DSP系统的情况都可以从这些知名公司推出的产品信息来获得。比如说Pentek公司的4293处理板,用8片TI公司生产的300MHz、有19200MIPS处理能力的TMS320C6203芯片,集成了同等数量的32M同步动态随机存储器(SDRAM),而数据吞吐为每秒600M。

上个世纪80年代以来,DSP系统随着数字信息处理技术的发展被迅速推入市场,伴随着日趋激烈的竞争,各DSP生产公司不断调整、优化发展规划,深化了DSP系统产业化进程,DSP系统进入产业化是DSP应用程序成功的一个重要标志。

1.2 国内发展现状

近些年来,随着我国信息技术产业的飞速发展,DSP嵌入式系统也有了较好的发展,并已被我国数字信号处理、数字通信、雷达以及图像处理等高科技领域广泛应用,为我国高新技术产业乃至整个国民经济发展做出了很大贡献。

目前,我国许多高校以及科研机构都在致力于DSP嵌入式系统的研发,同时取得了相当大的成就。但是,我国主要的核心处理器件几乎都是从国外进口,相较于国际先进技术水平,我国在数字信号处理理论方面以及对高速率、高性能处理器的设计和制造方面都还有很大差距。因此,我国在半导体研究领域更要投入大量的研发力度、人才及资金等,这就要求我国科研人员要有敢于拼搏、艰苦奋斗的精神和坚持不懈的毅力。

2 DSP嵌入式系统应用情况

目前,全球生产DSP的公司有80多家,而生产出来的DSP芯片也多达300多种。生产DSP的公司主要有TI公司、Lucent公司、Analog Device公司以及Motorola公司,其中TI公司以及AD公司极具代表性,被以高新技术生产领域为主的各个生产领域广泛使用。

自从TI公司研发了第一代DSP芯片以来,其在业界始终处于领军地位,尤其是到现在为止生产到第六代DSP芯片系列,都促进了DSP系统的发展。其中以:TMS320C2000、TMS320C5000和TMS320C6000系列被我国引进并广泛投入数字信号处理领域。其中TMS320C2000系列的高性能、高效率被广泛应用于工业控制领域,该系列处理控制能力强外,还提供了方便与高性能外围器件相连的接口,其主要型号有TMS320C24X/28X系列;TMS320C5000系列性能高但功耗低,最低功耗可以达0.33mA/MHz,而最高达到900MIPS的处理速度,适用于移动、手持系统,其主要有TMS320C54X/55X系列型号;TMS320C6000系列可以说是高端DSP系统的代表,其浮点运算可达600~1 800MFLOPS、定点运算可达1 200~8 000MIPS的运算速度,其中浮点系列主要型号为TMS320C64X,是TI公司最新研发的高性能定点DSP处理器,浮点系列主要型号为TMS320C67X。

另外一个DSP生产势头良好并发展迅速的是美国AD公司,其所生产的DSP系统主要有SHARC、TigerSHARC以及Blackfin系列。其中SHARC系列被广泛应用于商用或军用雷达、声纳信号处理等领域,虽然其单片处理能力不高,但连接组成DSP阵列便能提高速率及性能;而从SHARC改进的TigerSHARC为高端DSP,其不仅处理能力极高,而且有容量极大的随机存储器(RAM),适用于软件无线电领域;至于Blackfin则是功耗低但性能高的DSP,适用于便携式的通信产品。

我国某高校研发的基于TMS320C6201的高速实时DSP处理平台,其允许输入数据的动态范围为16比特,若512点的FFT可以在59微秒内完成,若是1 024点的FFT,也可以在130微秒内完成。我国某电子技术研究所研发的DSP雷达数字信号处理通用模块用6片美国AD公司生产的ADSP21060芯片和大量可编程器件构建而成。以快速傅里叶变换(FFT)算法来看,以FFT、IFFT及复数乘法3个流水处理过程实行DSP组成的并行处理,若在33MHz的时种下,0.7毫秒就可以实现1 024点处理,而实现的单通道数据率是1MHz,双通道的并行工作率是2MHz。

3 C语言开发下DSP系统应用技术分析

TI公司DSP芯片的硬件编程主要有:用汇编语言、用C语言及用DSP/BIOS可视化编程工具。其中汇编语言程序指令不易读懂,且通用性极差,而对于底层的硬件控制,DSP/BIOS可视化编程工具又显得极为抽象难懂,相较于此二者,C语言适当平衡了二者的优缺点。首先,它作为一种高级语言,以其自上而下的模块化设计原则发挥了可移植性强、易读懂的优势,其次,它可以取代汇编语言的硬件控制能力,极细致地改写硬件寄存器数值。

本文以TI公司生产的TMS320VC33为例,介绍C语言开发下的DSP嵌入式系统在TI公司提供的与DSP芯片相匹配的软件集成开发环境Code Composer下的研发技术情况。

对TMS320VC33芯片的C语言开发,主要从以下几个步骤来实现:

(1)编辑C语言源程序。在Code Composer环境下,新建一个CSRJ.MAK工程,然后再新建一个以C语言源程序为内容的C源代码文件CSRJ.C以及一个程序设计时对TMS320VC33寄存器定义的头文件VC33.H,并将这两个文件添加到CSRJ.MAK工程。

(2)编译和链接。Code Composer环境下的汇编器及编译器建立的公共目标文件格式COFF极易于实行模块化编程,而且提高了编写程序的可读性及可移植性,使代码段以及存储器的管理更加灵活而有力,也提高了C语言程序编写的便捷性。公共目标文件格式中最小单位段在COFF目标文件中是及其重要的,它在存储器中占据着连续空间的数据块或代码。而链接器对段的处理主要是将公共目标文件中建立起的数据块以及程序块组合成可以被DSP芯片执行的COFF输出模块以及为每一个输出块指定存储地址。以下是—个TMS320VC33芯片的被命名为CSRJ.CMD的典型CMD文件:

csrj.obj /*源程序编译后对应的目标文件*/

-1Rts30.1ib /*链接Rts30.1ib库*/

-stack0x800 /*设定系统堆栈2K大小*/

MEMORY /*命令规定系统的存储器配置*/

{STACKRAM: origin=0x00807000,1ength=0x00001000 /*内部RAM*/

RAM: origin=0x00800000,1ength=0x00007000 /*内部RAM*/

VECTORS:origin=0x00809fcl,length=0x63 /*中断向量表区间*/}

SECTIONS /*SECTIONS命令规定程序中段的具体分配分配方法*/

{.text:{}>RAM /*系统程序存放位置*/

.cinit:{}>RAM /*初始化表存放位置*/

.bss:{}>RAM /*未初始化数据存放位置*/

.stack:{}>STACKRAM /*堆栈存放位置*/

vectors:{}>VECTORS /*中断向量表存放位置*/}

(3)在线仿真。连接仿真器与目标板。打开Option菜单下的Program Load选项,将所有选项全选,若要编译或载入链接生成的CSRJ.OUT文件,单击界面上Rebuild All按钮即可,而单击界面上的Run按钮,则为仿真运行。

(4)固化程序。TMS320VC33芯片要存储固化程序,通常是外挂FLASH或EPROM,也就是说,固化程序前要按照外挂的具体要求,把CSRJ.OUT文件转换为相应的格式,然后将其写入FLASH或EPROM。

4 DPS系统发展趋势

首先,目前生产的DSP主要基于精简指令集(RISC)结构,具有功耗低性能高并且尺寸小的优点,将MPU核、DSP核、专用处理单元以及外围电路单元并存储单元汇集在一个芯片上,向着集成DSP方向发展是未来DSP系统的一个发展趋势;其次,会在高性能处理器占主要地位的为单指令多数据流(SIMD)和多通道结构、超长指令字结构(VLIM)、多流水标量结构以及可并行的超级哈佛结构;并且,为使DSP系统在各个生产、生活领域更方便应用,进一步降低功耗和尺寸,提高速率及性能,尤其是便携式手持系统方面的应用,更应在保证性能的基础上注重减小尺寸;最后,可与可编程器件形结合,DSP系统在实际应用时经常需要借助其他器件,比起单独的DSP系统应用,能够更好地提高工作速率。

5 结语

综上所述,数字信号处理(DSP)系统在科学技术与社会经济发展中起着不可替代的作用,DSP处理器不仅速率快、性能高,而且功耗低、尺寸小,被许多高新技术产业广泛认可并大规模投入应用。而相较于汇编语言编写的DSP应用程序,用高级C语言研发的DSP嵌入式系统可移植性高、可读性强,并且易于修改及维护。因此,以高级C语言编写的DSP应用程序有很大的可开发性,是以后DSP系统的重要发展方向,对高新技术产业乃至于整个国民经济建设的发展有极大的促进作用。

参考文献:

[1] 周华.DSP嵌入式系统下的C语言开发[J].中国高新技术企业,2010(8).

[2] 李从宇,王宝光.嵌入式DSP系统C语言硬件编程技术[J].测控技术,2007(4).

[3] 苏延川.基于ADSP-TS101的嵌入式系统混合编程及优化方法[J].现代电子技术,2009(20).

[4] 胡世锋,张海涛.用C语言实现DSP程序设计的新方法[J].河北北方学院学报,2009(3).

[5] 张晓林,路程,崔迎炜.DSP技术的应用现状和发展[J].测控技术,2004(21).

[6] 顾颖.浅谈如何借鉴MISRA规范减少DSP程序设计的隐患[J].信息化研究,2009(10).

[7] 常丹华,贺树猛.基于DSP的嵌入式视频监测系统的设计与实现[J].电子技术,2009(3).

[8] 肖宛昂,曾为民.如何用C语言开发DSP嵌入式系统[J].单片机与嵌入式系统应用,2003(1).

[9] 欧峰,魏世民,郭磊.基于QT/E的ARM/DSP嵌入式系统的直流电机监控界面的设计与实现[J].电子技术,2011(6).

(责任编辑:杜能钢)

推荐访问:嵌入式系统 语言 开发 DSP