嵌入式操作系统在高速实时信号处理系统中的应用(3)
2012年05月29日 09:20 来源:互联网 作者:秩名 我要评论(0)
3 系统软件设计与实现
VG4软件开发主要分为操作系统的配置生成和应用程序的开发两部分。操作系统的生成主要是对BSP的配置和对VxWorks组件进行裁剪。在应用程序的开发中,为了满足实时性要求,应对任务进行合理划分,使程序达到多任务并行操作。
任务划分需要遵循以下原则:
(1)功能内聚性。对于功能联系比较紧密的各工作可以用一个任务来运行。如果用多个任务进行相互之间的消息通信,将会影响系统效率。
(2)时间紧迫性。对于实时性要求比较高的任务,以高优先级运行,以保证事件的实时响应。
(3)周期执行原则。对于一个需要周期性执行的工作,应作为一个独立的模块完成。
3.1 操作系统的配置
在嵌入式操作系统上进行开发要满足实时性和资源有限性的要求,因此与通用操作系统存在差异。在生成操作系统时剪裁不需要的组件,添加需要的组件,使系统尽量精简。操作系统及其应用程序主要运行在内存中,操作系统太大会占用很多的内存空间。应用程序运行时要对每个任务分配合适的内存。为了满足实时性,内存分配要尽可能快,因此不采用通用操作系统中复杂而完善的内存分配策略,而采用简单、快速的内存分配方案。如果系统对于实时性和可靠性的要求极高,不能容忍一点延时或者一次分配失败,最好采用静态分配方案,也就是在程序编译时所需要的内存都已经分配好了。例如,火星探测器上的嵌入式系统就必须采用静态分配方案。
雷达系统对实时性要求很高,所以本系统尽量采用静态分配方案。但是VG4内存有限,在一些子任务中也采用动态分配方案。这里VxWorks采用First Fit的内存动态分配方式,当系统需要动态分配内存时,可以保证在很短的时间内分配。但是采用这种方式容易产生大量的内存碎片,而VxWorks没有清除碎片的功能,因此对系统动态分配内存要非常小心。
根据本系统的实际情况,接口板传给VG4的信处检测结果数据量基本不变,对于这批数据可以以另一种方式存储。通过修改BSP的配置,从RAM中分配一块用户保留的存储区域。这块存储区是用户专用的,不会被系统覆盖。用户可以通过绝对地址对其进行读写。具体方法是设置RAM布局中User reserved区域,系统默认为0,设置这块RAM使之满足原始数据的大小。
3.2 应用程序的设计
应用程序运行在VxWorks操作系统上,其功能包括对系统初始化、根据输入命令对各模块进行控制及实时显示信号处理结果。存在着如下几类数据通信:VG4向定时接口板传送控制参数,读取定时接口板中存储的信处检测结果数据,响应外部中断,显示目标信息以及获得外部输入的控制信息。考虑到C语言的平台无关性和代码简介高效性,应用程序采用C语言编写。
系统划分为6个任务:(1)系统监控:启动和监控其他任务。(2)数据传输:响应VME中断,与定时接口板进行数据通信。(3)数据处理:对信处检测结果数据进行处理,扣除虚假目标并转换格式以方便显示。(4)终端显示:显示检测目标结果和系统状态信息到屏幕。(5)指令控制:响应控制开关的命令和获取惯导数据。(6)错误处理:对出现错误的任务做出响应的处理,并在终端显示。
中断服务程序响应定时VME7号中断,程序如下:

图4显示了各任务的优先级。从中可以看到中断服务程序的优先级最高,因为实时系统要及时响应外部中断信号。

指令控制任务首先获取外部开关命令和惯导数据,以消息的形式发送给数据传输任务。当中断来临时,中断服务程序马上释放同步信号量 syncSemId。数据传输任务一直等待这个信号量,当获取到这个信号量时,立即把从指令控制任务收到的消息转换成模式字写到接口板的双口RAM中,接着读取信处检测结果数据。数据处理子任务获取同步信号量syncSemId2后对收到的信处检测结果数据进行处理,这一任务最耗时。终端显示任务以消息的形式接收上一任务的处理结果,并显示处理结果及系统目前的运行状态信息。信号量广泛应用于同步和对临界资源的保护,信号量的建立如下:

系统监控任务包括初始化各任务及实时监控各任务运行是否正常。当检测到某任务运行不正常时,启动错误处理任务。错误处理任务根据情况给予相应处理,并在终端显示。当系统发生严重错误时,系统会自动重启。
本文设计的信号处理机主要应用于直升机火控系统,现已经过验收,各项指标符合要求。随着设计的改进,系统功能将进一步完善,结构会更加通用模块化,从而实现不改变整个硬件系统平台,只对程序进行相应的修改,便可应用于其他领域的信号处理系统中。
本文导航
- 第 1 页:嵌入式操作系统在高速实时信号处理系统中的应用(1)
- 第 2 页:嵌入式实时操作系统VxWorks
- 第 3 页:系统软件设计与实现
上周热点文章排行榜
上周资料下载排行榜
论坛热帖
热门博文
创新实用技术专题
热评
- LM3S9B96开发板手册及原理图
- STM32F103ZET6红牛电路图
- 高通发布全新设计DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式汉化版免费下载
- hi3515海思原版原理图
- matlab 7.0软件下载(免费破解版)
- TX-1C型单片机开发板原理图
- 三菱A500变频器原理图
- 三相IGBT全桥隔离驱动电源设计
博文
- 问什么邮箱激活不了
- 八成大学生认同先就业后择业
- 我的心路
- 为什么邮箱激活不了
- 到底有多少人在校园里浪费青春
- 你是否曾这样伤害过一个人?
- 到底有多少人在校园里浪费青春
- 小小的电阻,您真的吃透了它的用法吗
- 2012.5.12 第一个DS18B20程序
- 宁愿睡地板,也要创业做老板!




用户评论
查看全部 条评论
查看全部 条评论>>