基于DSP的便携式雷达系统
DSP平台的信号处理机一般只是整个系统的一个专用于信号处理算法的子部分,不需要控制太多的外设,而且为了满足实时信号处理,尽量采用前后台式的线性程序结构。
本设计的信号处理机是希望以他为主体构成一个完整的便携式雷达系统,除了信号处理的任务之外,采样、显示、通信等多种任务也必须由他来完成,需要满足实时多任务的要求,所以必须使用嵌入式实时操作系统。本文主要介绍了为什么使用实时操作系统以及基于DSP/BIOSⅡ实时操作系统的总体软件设计思想和方案。
1、总体硬件方案设计
本信号处理机以TMS320C5509作为整个系统的核心,由于考虑到图像的缓存需要较大的存储空间,所以扩展了三星公司的16 Mb的SDRAM——KM416S1020C作 为扩展存储器。整个系统的工作流程是由控制器和D/A提供给前端采样头所需的信号,并启动A/D对采样头传来的模拟信号进行采样,DSP接收之后做相应的信号处理,根据键盘的设定将图像按照一定的要求显示到彩色图形液晶上,并通过USB接口将数据传送到PC机存储以便做进一步的处理和显示。总体硬件框图如图1所示。
TMS320C5509数字信号处理器是德州仪器公司(TI)TMS320C5000系列中新推出的一种,极大降低了功耗,达到了每个MIPS只需0.05 mW的水平,与市场上的主流产品TMS320C54x相比,功耗降低了6倍。TMS320C5509的内核是从TMS320C54x上发展而来的,所以可以完全兼容现在市场主流的TMS320C54x系列处理器的指令,既保护了用户在软件方面的投资,又使得熟悉TMS320C54x编程的软件人员几乎不用再学习就可以编写他的软件。同时,TMS320C5509中还集成了大量诸如AD,USB控制器之类的片内外设,使其成为了一款具有SOC(片上系统)性质处理器,用户只需外加很少的辅助器件就可以构成一个较完整的DSP系统。从以上特点可以看出,TMS320C5509非常适合于应用在便携式系统中。
2、实时操作系统DSP/BIOSⅡ的简介
TI公司的DSP/BIOSⅡ是一种专门为TI公司的TMS320系列DSP芯片设计的嵌入式实时多任务操作系统。主要由5个部分组成:
(1)线程和调度(Procedure and Scheduling)
DSP/BIOSⅡ提供了4种不同的执行线程,包括HWI(硬中断任务)、SWI(软中断任务)和TSK(任务)等,每一类线程又具有不同的执行、挂起、休眠等特性。DSP/BIOSⅡ支持基于静态优先级的调度方法,又可以通过修改内核提供抢先式多任务服务。
(2)硬件抽象(Hardware Abstraction)
他提供了PIP和SIO两种数据传输模式,可以方便DSP与外设之间的数据交换。Pipe(数据管道)使用了较少的内存,并且传输的速度快、效率高。SIO(流)对内存有了更高的抽象,便于创建设备驱动程序更加结构化的方法。
(3)资源管理(Resoure Management)
利用DSP/BIOSⅡ的逻辑接口可以对特定的硬件部分进行访问和配置。DSP/BIOSⅡ不仅可以通过其设置工具来定义内存映射、中断向量表而且还可以设置定时器、串行口等硬件设备。
(4)通信和同步(Communication and Synchronization)
DSP/BIOSⅡ支持旗语(Semaphores)、邮箱(Mailbox)和数据队列(Queue)等多种内部线程通信和同步的方式。旗语是最主要的同步方式,可以使任务通过旗语来运行和挂起,还可以用互斥旗语来管理缓冲区和设备。
(5)实时分析(Real-Time Analysis)
实时分析工具能够让开发者在程序执行期间对DSP进行交互和诊断。DSP/BIOSⅡ不仅提供了常用的日志(LOG),STS,TRC模块,还提供了CPU负载图(CPULoad Graph)、执行图(Execution Graph)等多种更方便的调试和观察工具。实时操作系统的软件结构设计#e#3、基于DSP/BIOSⅡ实时操作系统的软件结构设计
使用DSP/BIOSⅡ来做项目的第一步就是模块划分,即把项目所要完成的功能拆分成几个相对独立的线程来完成(可以认为线程在运行时是独占DSP的),根据线程中使用硬件资源的情况考虑用什么类型的线程来完成。一般来说,用到硬中断的任务放到HWI来完成,用到定时器的任务可以放到PRD(周期任务)中完成。然后是确定线程之间的关系,根据他来设定各个线程的优先级,以及用 什么方式通讯和交换数据。旗语是最便于使用的通讯方式。
探地雷达信号处理机的信号处理过程:A/D每采来一列数据之后给DSP发一个硬中断信号,每接收到一列数据之后,DSP对这列数据分别进行平均滤波和自适应滤波,同时进行列计数;当列计数到达一帧时,对这一帧图像信号进行小波去噪处理和脉冲压缩,最后根据键盘的设定把图像显示到图形液晶上,并通过USB接口送到PC主机,以便下一步的处理。
根据以上的执行过程,整个软件分解为12个独立的任务,其中列中断、USB数据传送这2个模块是
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)