实时操作系统在雷达信号处理中的应用
语是最便于使用的通讯方式。
探地雷达信号处理机的信号处理过程:A/D每采来一列数据之后给DSP发一个硬中断信号,每接收到一列数据之后,DSP对这列数据分别进行平均滤波和自适应滤波,同时进行列计数;当列计数到达一帧时,对这一帧图像信号进行小波去噪处理和脉冲压缩,最后根据键盘的设定把图像显示到图形液晶上,并通过USB接口送到PC主机,以便下一步的处理。
根据以上的执行过程,整个软件分解为12个独立的任务,其中列中断、USB数据传送这2个模块是HWI(硬中断)类型的任务,键盘模块属于PRD(周期性)任务(完成对键盘定期扫描),其余模块是SWI(软中断)类型的任务。初始化任务完成对DSP的初始设定后就删除;列中断任务负责给DSP发送列数据来临信息,触发列平均、列自适应任务,完成对一列数据的去噪处理;列计数模块完成对列中断的计数,当到达一帧时,发送帧中断,触发一系列针对帧的数据处理任务;整个软件系统的执行流程如图2所示。
DSP/BIOSⅡ作为一种商用的操作系统,提供给便于使用的图形配置界面。使用图形界面可以帮助开发者快速开发程序,不必写繁琐的初始化程序,而可以用图形界面配置后让编译器自动生成。比如对于串行口(MCBSP)的设置就需要配置中断源、数据格式、收发频率等十几个寄存器,麻烦而且容易出错,但是如果使用图形界面来设置,一切就容易多了。图形配置界面不仅可以完成对硬件资源的设置,还可以对任务、信号量进行初始化,完成了他,也就完成了使用DSP/BIOSⅡ的第二步工作。完成各个线程程序的编写之后,编译并载入DSP中运行。DSP首先初始化,然后从MAIN()函数跳入任务循环队列,按照优先级执行队列中的任务,而任务一般都是无限循环的,只被特定的信号量挂起。
DSP/BIOSⅡ提供了强大的分析调试工具。除了常用的方法之外,CPU负载图和执行图是两种非常有效的方法。CPU负载图提供的是目标CPU的负载曲线。CPU负载的定义是除去执行最低优先级任务以外的时间量。最低优先级任务是只在其他线程都不运行时才执行的任务。因此,CPU负载图包括从目标向主机传送数据和执行附加后台任务所需的时间。在执行图中,可以看到各个线程的活动方式。图形中还包括了信号量的活动,周期性函数标记(tick)和时钟模块标记。执行图能从整体上看到项目所有线程的活动状态。根据调试得到的信息可以评估线程的执行情况和CPU的负荷情况,配合其他调试工具,修改设计直到完成项目的功能需要。
CPU负载图反映的是软件系统所需要的性能和CPU实际最大性能的比值,像PC机上性能统计图,如果所需的性能大于DSP的实际性能,就必须修改设计、优化算法、加快时钟频率,甚至更换性能更高的DSP芯片。
执行图显示了各个任务执行过程中的细节信息,对于嵌入式应用而言,实时性是非常重要甚至是必须满足的条件,操作系统按很小的间隔进行调度就是力图保证系统响应的实时性。但是在实际中,如果任务分配不好,使得任务不能在调度间隔内完成,就会影响整个系统的实时性,这时,必须对任务划分作合理的修改。比如本系统中对一列数据的去噪处理,原先是等到一帧数据来到后再做的,仿真中发现这样使得一帧间隔内所要执行的任务过多,DSP无法完成,所以将数据的预处理改到每一列去做,保证系统的实时性。
4、DSP/BIOSⅡ操作系统使用中要注意的问题
(1)很好地使用DSP/BIOSⅡ的关键在于很好地理解操作系统,这有点像算法理论和应用算法的关系。操作系统凝聚了软件领域几十年发展中的精华,有很多概念和结构是需要很深入的理解和思考的,所以,初学者一定得反复看看一些专门讲操作系统的书籍。
(2)任务必须写成下面2种形式之一。
在DSP/BIOSⅡ开发环境里没有要求显示调用OSTaskDel(),这是因为开发环境自动做了处理,实际原理都是一样的。
5、结束语
本文对探地雷达信号处理机的硬件结构和软件设计都做了介绍,重点介绍了如何在项目应用中使用DSP/BIOSⅡ实时嵌入式操作系统。实时嵌入式操作系统在国外得到广泛的应用,已成为嵌入式系统设计中必不可少的一部分,但是在国内高校,以DSP为核心的嵌入式平台中,嵌入式操作系统的应用很有限。所以快速利用这方面的最新技术,提高嵌入式系统开发的层次和深度是刻不容缓的。
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 实时系统中混合任务集的动态电压调节算法(06-18)
- 嵌入式实时操作系统设计探讨(10-15)