这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 实时操作系统DSP/BIOS在DSP开发中的应用

共1条 1/1 1 跳转至

实时操作系统DSP/BIOS在DSP开发中的应用

助工
2014-08-20 19:48:39     打赏

摘  要:本文介绍了实时操作系统DSP/BIOS在DSP开发中的应用。首先简述了DSP应用的一般模型,并说明了实时操作系统在DSP外设管理,实时性能分析,程序总体流程控制中的应用。 
关键词: 实时操作系统;DSP/BIOS;DSP;信号采集与处理


引  言:
  信号采集与处理系统的一般结构是前端模数转换部分将现实世界的模拟信息经过采样量化,转换成数字量后送入数字信号处理系统做具体的算法处理。可以发现,不同应用领域中的信号采集和处理系统的实现结构都是相似的,区别主要在于模数部分采样频率要求不同,以及具体应用的算法差异。所以在当前的技术条件下,实现通用的高速信号采集与数据处理系统结构,有着广泛的工程应用前景。


硬件模型 
  根据TI公司提供的对比数据,价格仅5美元的TMS320VC5402芯片实时信号处理能力相当于主频为700MHz的奔腾III处理器。为了充分利用DSP在嵌入式实时处理中的强大能力,针对不同的应用,设计了通用的信号采集处理系统。本系统硬件结构如图1。适用于采样率低于500KHz的系统,运算能力100MIPS ,有64KB节程序空间,64KB数据空间。 
系统的各个模块的功能和工作原理如下所述:采用VC5402的多通道同步串口(MCBSP)控制ADC/DAC,采样频率一般低于500KHz的系统,高于500KHz的串行ADC/DAC很少,如果需要很高的采样率就需要用并行ADC/DAC,并且作为I/O或者数据空间设备访问。


  54X系列DSP的同步串口MCBSP包括时钟信号线,数据信号线,帧信号线。由于MCBSP比一般的串口标准应用更灵活,传输数据率更高。采用MCBSP控制串行模数转换器的原理如图2所示。


  DSP通过MCBSP接口控制串行ADC,当芯片18引脚片选信号有效时,MCBSP以BSPCLKR0为基准时钟给串行ADC的输入DIN引脚输入控制指令ADDIN,指示串行ADC采样CH0~CH7中指定通道的信号。串行ADC一旦完成了采样保持与转换,即给MCBSP的帧信号引脚(BSPFSR0)发出有效信号,MCBSP根据帧信号指示开始采集串行ADC DOUT引脚串行输出的数字量数据。


  通过MCBSP控制串行ADC采集数据具有设计简捷和软件实现方便的优点。可以利用DSP的DMA控制器操作MCBSP的数据发送与接收,使得对DSP的运算资源占用率降到最小。



图1 VC5402全系统结构框图


 



图2  串行ADC与DSP的MCBSP连接图


 


DSP/BIOS 实时操作系统介绍 
  TI公司的DSP开发软件包括集成开发系统(CCS), 实时操作系统(DSP/BIOS),第三方算法库标准(eXpressDSP)。下面重点介绍DSP/BIOS。


  对于不同的系统应用需要采用定制信号处理算法。使用实时操作系统开发DSP算法,方便快捷,程序思路清晰,便于代码调试和重用,但是目前国内的DSP实际应用中,开发者往往被DSP/BIOS表面上的繁琐迷惑,对繁多的实时操作系统文档望而却步,仍然采用与早期单片机开发一样的手工汇编或者C代码编译的开发方式,将DSP/BIOS的强大的开发和管理能力搁置,实在是一件很可惜的事情。作者从所做的项目中总结使用经验,帮助大家了解如何利用DSP/BIOS开发TI公司的DSP系统。下文首先简短介绍DSP/BIOS的基本情况,然后以常见的应用开发为例具体说明DSP/BIOS的使用。


  DSP/BIOS是一个用户可剪裁的实时操作系统,主要由三部分组成:多线程实时内核;实时分析工具;芯片支持库。利用实时操作系统开发程序,可以方便快速的开发复杂的DSP程序。操作系统维护调度多线程的运行,只需将定制的数字信号算法作为一个线程嵌入系统即可;芯片支持库帮助管理外设资源,复杂的外设寄存器初始化可以利用直接图形工具配置;实时分析工具可以帮助分析算法实时运行情况。


    DSP/BIOS以模块化方式提供给用户对线程、中断、定时器、内存资源、所有外设资源的管理能力都可以根据需要剪裁。实际应用中需要的定制算法作为一个线程插入DSP/BIOS的调度队列,由DSP/BIOS进行调度。


DSP/BIOS 实时操作系统应用 
DSP/BIOS实时操作系统的图形配置界面包括: 
* 全局设置(System)—包括内存端设置、锁相环设置、中断向量入口设置等; 
* 调试工具(Instrumentation)—记录器(LOG)可以提供调试信息,但是特别针对实时操作优化; 
* 操作系统调度工具(Scheduling)—包括定时器、周期器、硬件中断管理、软件中断管理、任务调度、系统空载任务函数; 
* 同步机制(Synchronization) 
—提供一般操作系统都具有的信号灯、邮箱、队列、锁四个工具; 
* 主机交互接口(Input/Output) 
—提供DSP实时运行时与主机通过仿真口和CCS交互数据的机制; 
* 芯片支持库(Chip Support Library)—针对不同的DSP芯片帮助配置DSP的外设资源,最常用的有DMA、MCBSP的配置。


  前面已经提到,采用DSP/BIOS的CSL可以帮助开发者快速开发管理外设的程序。举例来说,原本对于MCBSP的控制需要配置引脚定义、中断源定义、发送数据格式、发送数据长度、接收数据格式、接收数据长度、收发频率发生器控制等多个寄存器,繁琐而且容易发生错误。但是如果采用CSL控制MCBSP的开发将会大大加快程序开发与调试。


  将DSP/BIOS操作系统根据自己的需要剪裁完毕,形成配置文件,然后在此基础上将自定义的算法与控制程序作为线程插入任务循环。编译载入DSP开始执行后,DSP首先进行初始化,然后从MAIN()函数跳入任务循环队列,按照优先级执行队列中的任务。DSP外部的设备(如UART、ADC等)可以通过中断打断任务,DSP/BIOS根据硬件中断管理(HWI)中的设置调用相应的中断服务程序处理中断。这就是DSP/BIOS开发与执行的大致流程。


  为了验证算法实时性,用快速傅立叶变换为例说明。用定时器调度做1024点FFT运算,每秒调用1000次FFT。利用DSP/BIOS的实时分析工具时FFT实时运行只占用DSP运算资源不到20%。1024点FFT需要25716个指令周期,453个程序空间字,1517个数据空间字。足以说明DSP系统的强大的实时信号处理能力。



图3 信号采集与压缩算法流程


由DSP/BIOS的实际系统开发的完整程序实例如下所述: 
  利用前面所述的硬件系统采集外部信号源数据,采样频率10KHz,MCBSP控制串行ADC,DMA控制器将MCBSP中数据送入DSP数据空间,DSP利用行程编码算法实时压缩采集到的数据。DSP/BIOS程序流程图如图3。 
  使用的ADC的精度为12位,而DSP中数据空间为16位宽,为此设计的行程编码压缩算法的思想是,比较前后数据,利用闲置的4位数字存储相邻的数据。图3中可以看出,程序从MAIN()函数出来后进入DSP/BIOS的任务调度队列无限循环,键盘中断和DMA结束中断使得任务调度队列调度相应的中断处理函数。定时器中断定期给ADC发送控制字,以此控制ADC的采样频率和工作模式。键盘中断指示本次DMA操作结束后进行压缩,DMA结束中断处理程序,调用压缩算法对DMA结束后采集到的数据进行压缩。


DSP/BIOS实时操作 系统学习步骤 
上面的几个例子分别说明了DSP/BIOS的图像开发环境,实时分析工具,调度流程。DSP/BIOS的学习步骤可简单总结为: 
1. 了解DSP/BIOS术语,工作机制; 
2.  用CSL管理DMA,MCBSP,TIMER,编写试验程序。以上程序都可以基于DSP片内资源,这样可以防止硬件设计的错误,专注于软件的学习与开发; 
3 . 进一步了解DSP/BIOS占用空间的优化,以及DSP/BIOS中不同部分占用DSP运算资源的情况,以此为基础优化自己的程序。 
通过我们的介绍,希望广大DSP开发人员能够早日认识到DSP/BIOS在DSP 开发应用中的优越性能,尽快掌握这一开发工具,更好的应用到工程实践中去。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]