浅谈DSP系统常用的编程和控制方法

来源 :科技与企业 | 被引量 : 0次 | 上传用户:yljin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】本文首先对DSP程序设计和Windows应用程序设计进行了比较,从而分析了DSP程序设计的优势。主要阐述了DSP系统编程的ADSP-TS201S中LDF文件的编写、系统配置与初始化函数的编写、main函数的编写、系统配置与初始化函数的编写、main函数的编写及典型处理流程等方面。
  【关键词】DSP系统编程;main函数;LDF文件
  由于DSP在开始工作之前需要对芯片的时钟和外设进行设置,并且DSP系统通常一旦启动,便开始执行重复操作,所以DSP的程序设计和Windows应用程序设计会有一些不同,大概可归纳为以下3点:设计思想的不同,并行执行的不同,时间可预测性的不同。
  首先,在DSP的程序设计中,通常需要先对DSP和外围设备进行初始化,初始化完成后的程序为一个无限循环,在循环中判断不同的条件执行不同的任务,并通过DSP中断来处理一些特殊的情况,类似于Windows应用程序设计中的消息机制;另外目前的DSP中并没有Windows编程中的多线程,除了DMA可以和DSP运算同时进行外,其他的操作都是顺序执行的,例如在执行中断服务函数时,需打断之前的操作过程,保存之前的现场后再开始执行中断服务函数,在完成中断服务函数后再恢复现场,并顺序执行进入中断前的程序;最后,实时信号处理要求程序的执行时间是可预测的,以判断系统是否满足实时性的要求。高性能的通用处理器普遍采用了CACHE和动态分支预测技术,使得程序执行时间的预测变得很困难,而DSP的动态特性较少,可以较容易地预测程序的执行时间,且DSP中的循环操作不需要額外消耗时间,而是通过硬件来完成循环计数器的衰减和循环的跳转,这对提高含大量循环程序的数字信号处理算法的效率是很重要的。
  一个典型的DSP程序工程通常是由连接描述文件(*.ldf),头文件(*h),C语言程序文件(*.C),汇编语言程序文件(*.asm)等组成的。其中连接描述文件(*.ldf)用于描述多处理器的存储器偏移量、共享存储区域和每个处理器的储存空间;头文件(*h)主要用于函数宏定义和变量定义;C语言进行设计(*.C)、汇编语言程序文件(*asm)用于编写控制DSP运行的程序。
  在程序设计过程中,通常需要自行编写的是C语言程序文件(*.c)和汇编语言程序文件(*asm),其中大部分程序可以通过C语言进行设计,关键的子函数可以通过汇编语言来实现以提高运行效率。
  图1给出了一个雷达信号处理系统中单个DSP工作的流程。
  图中,在程序开始之前,有对DSP和外部设备的初始化,之后一旦判断到中断信号,就开始进入循环,处理接收到的雷达数字信号,处理完成将运算结果输出后便又开始检测中断信号,等待处理后续的数据。该流程是一个典型的DSP信号处理流程。
  ADSP-TS01S的编程与一般DSP的编程大同小异,下文将从系统初始化、DMA的使用和中断的使用这3个比较典型的方面对ADSP-TS201S的程序设计方法进行说明。
  根据上面的介绍,本文DSP系统编程的介绍主要包括以下几个方面:ADSP-TS201S中LDF文件的编写、系统配置与初始化函数的编写、main函数的编写、系统配置与初始化函数的编写、main函数的编写及典型处理流程等方面。
  1、ADSP-TS201S中LDF文件的编写
  LDF文件是ADSP-TS201S工程中不可缺少的一部分,它主要用于多DSP工程中多个处理器工程之间的链接描述。通常所使用的DSP工程都是一个工程对应一个处理器,因此LDF文件不需要做出修改。
  而对于建立多处理器(MP)系统,则需要使用到LDF文件。
  建立MP系统的第一步是使用链接器的多处理器功能创建一个多处理器工程和一个描述系统的LDF文件
  其中LDF文件用于描述多处理器的存储器偏移量、共享存储区和每个处理器的存储空间。在书写MP系统的LDF文件时,必须考虑以下LDF命令:
  ①MPMEMORY{ },该命令定义了每个处理器在多处理器存储空间(MMS)中的偏移量。在多处理器链接过程中,链接器使用该偏移量来链接各个处理器。
  ②MEMORY{ },该命令可定义系统中每个处理器的存储空间。
  ③PROCESSOR{ }和SECTIONS{ },利用这两个命令可定义各个处理器,并可使用存储器定义将每个处理器的输出文件放置到程序段中。
  ④SHARED- MEMORY{ },当在系统中使用了外部共享存储器时,需要使用该命令。该命令能识别共享存储器项的输出,并生成驻留在MP系统的共享存储空间中的共享存储区的可执行文件(.SM)。
  ⑤SM文件由工程文件中的源文件(.ASM,.C或.CPP)产生,该文件包含有放置于外部共享存储器中的数据变量的定义。
  ⑥LINK-AGAINST(),该命令可解析多处理器存储空间中的符号,并命令链接器检查指定的可执行文件(.DXEs and .SMs),以解析局部没有解析的变量和符号,以及在MMS(也就是系统中其他处理器的内部储存器)中定义的表达式或变量。通常在LDF文件中,必须使用LINK_GAINST 0命令。
  如果命令行中包括.SM和.DXE文件,则必须先放.SM文件,后面接着放其他.DXE文件,只有这样,链接器才能正确的解析变量。一个LDF文件中最多可以说明的处理数量是由处理器结构指定的(比如ADSP TS201最多支持8片)。应该注意的是,在同一个LDF文件中,VisualDSP++4.0尚不支持有不同结构的DSP混合使用(如ADSP-TS201S和ADSP21160混合使用)
  2、Main函数及典型处理流程
  DSP程序设计中,最核心的部分便是main函数的设计,DSP中几乎所有的信号处理工作都在main函数中完成。
  通常地,要设计一个DSP系统,第一步便是根据系统的需求去设计好DSP系统所需完成的流程图,当DSP处理流程图设计完成后时,剩下的工作便是根据流程图,设计图中每一个单元所需的子函数,并在主函数main中逐个调用这些子函数以实现流程图中的功能。
  在一个DSP系统中,一旦DSP启动,DSP的程序指针便指向main函数的起始端,从main函数开始向下顺序执行。Main函数中执行的内容通常是以子函数的形式出现。对于DSP程序,根据功能又可以分为初始化程序和中断服务程序等。
  前文所属的系统初始化函数通常只是main函数中执行的第一个子函数,初始化子函数执行完成后开始执行其他子函数。这些子函数根据所使用的编程语言又可分为使用汇编语言编写的子函数和C语言编写的子函数;在DSP程序设计时,通常将一些较关键的、算法比较复杂的、需要多次执行的程序用汇编语言来编写,以提高系统的处理效率。通常比较同样功能的C语言程序和汇编语言程序时,汇编语言程序的执行效率相比C语言程序会提高4~10倍。
其他文献
【摘 要】随着钢铁企业快速的发展,企业敷设电缆所占的比重正逐渐增加,而采用电缆随道输送电力的情况也很普及。电力隧道内的电缆多为密集敷设,且均为6kV及以上的高压输电电缆。如何加强电力随道内电力电缆线路的安全运行与管理,延长电缆的正常使用寿命,已经成为各大钢铁企业安全稳定生产的一个重大课题。木文结合生产实际,对电力隧道内电缆线路的日常安全运行维护管理进行了探讨,并针对存在的一些问题做出了分析,提出了
【摘  要】文章简要概述了职业技能大赛的特点和现状,在此基础上重点分析职业技能大赛对职业院校学生,职业院校,职业院校教师,企业的影响力,也简单涉及对教育管理部门,行业主管部门或组织机构的影响力,论述了职业技能大赛对职业教育发展的推动作用。最后提出了对职业技能大赛的一点愿望。  【关键词】职业技能;教育  1、职业技能大赛的现状  迄今为止全国职业院校技能大赛已经连续举办五届,除了全国职业院校技能大
随着电力系统网架结构不断扩大和电压等级不断升高,对继电保护全方位的功能要求越来越高,断路器失灵保护作为一种近后备保护方式得到普遍应用。断路器失灵保护的误动或拒动,
今天,校园里异常热闹。操场上,人头攒动,孩子们排着整齐的队伍,望着主席台。台上,主持人宣读着获奖人员名单:“请获奖的家长委员上台领奖!”  “家长委员是谁?”“家长委员是干什么的呀?”人群里传出阵阵议论声。  “下面让我们用热烈的掌声请出今天的颁奖嘉宾!”在噼里啪啦的掌声中,只见一群身着校服、系着红领巾的孩子走上了主席台。  “主持人是不是弄错了,到底谁给谁颁奖啊?”台下的议论声又开始了。  主持
本文通过化工产业安全管理工作分析,针对安全意识、制度管理、现场隐患排查、规范操作行为、务实班组建设、加强施工管理、总结管理经验提出了建议和措施,对相关化工企业安全管
环保非政府组织是一种第三种社会组织,是以保护全球环境或特定环境或解决特定环境问题为目标开展活动的环境保护团体。在我国,环保非政府组织尚处于初级阶段,还存在着诸如独立性
数概念是从现实世界的有关量的关系中直接或间接地逐步抽象出来的,是数学中最基本的概念。有效的数概念教学不仅要让学生“知其然”,而且“知其所以然”。下面,我以“分数的初步认识”教学为例,谈谈教师教学中如何进行有效引领,使学生主动构建所学知识。  在情境感知中引入分数概念  “分数的初步认识”是在学生已经掌握整数相关知识的基础上进行教学的,主要是让学生理解几分之一的真正含义。对于小学生而言,分数是除整数
【正】由青海送变电工程公司承建的国家重点工程皖电东送至上海特高压示范工程17B标段最后一基基础K15号经过各方共同努力,近日开始全面施工。由于受±800 kV向上、锦苏
广西融水县文得矿区扬子准地台、华南加里东褶皱带及桂西印支褶皱带间的过渡区,区域位于华南准地台九万大山穹褶南部次级三防复式背斜。区域地层为一套深海相复理石砂泥岩及镁
704班,是我今年新接手的一个班。小家伙们倒都很听话,但恰恰是太“听话”——不爱发言、不爱展示,使得本该趣味盎然的生物课显得异常沉闷。  那天,课正上到“神经系统的组成”一节。讲到神经元的结构时,我突然发现李冬似乎在想心事。于是,我依照平日里的做法趁势请“将”:“有请李冬上台!”李冬一愣,学生们也屏住了呼吸,都以为我要惩罚他。其实,我点他到台上,只是想请他讲述神经元的模式图。一时间,李冬有点胆怯和