数据监测模块的实时性分析与设计
更新映射区中的静态数据。当用户触摸屏按键方式完成对某一测点的静态数据进行操作后,应用系统立即唤醒任务TMapStaticData,来更新在映射区中对应于此测点静态数据。
.
此实时数据监测模块任务调度策略实现了多个不同优先级的任务与TMapDynamicData任务间的通信。比如,LCD的主界面显示任务Tmain_Board,详细显示界面任务Tcheck_Board以及巡检界面任务Tcheck_system都与TMapDynamicData进行任务间的通信。模块必须优先处理LCD通过TComputerCom任务修改某一测点的静态数据,同步更新各个监测点的静态数据的情况。此任务通信过程不仅包含触发事件的通知,还要考虑任务间相应数据的传递。因此必须通过消息邮箱、消息队列或者事件标志组方式来实现此数据传递的情况。经进一步分析得出,由于负责映射静态数据的TMapStaticData任务优先级高,模块设计中采用了消息邮箱方式来处理其他任务与此任务间的通信过程。模块设计任务逻辑关系如图3所示。
表2 部分任务划分与优先级分配


图3 模块设计任务逻辑关系
笔者认为,在开发基于多任务的嵌入式项目时,为使整个模块的设计具有结构化、模块化、标准化的特点,也便于将来模块实现的维护与升级,应该尽量简化各个任务间的逻辑关系,体现各个任务功能的独立性和完整性。每个任务实现一个或若干个功能,但必须成为一个单独的模块。任务间的调度策略主要通过延时以及信号量、消息邮箱、消息队列来完成。
3.3 程序实现
基于μC/OS-II嵌入式实时操作系统处理并发任务,该实时数据监测模块软件设计部分伪代码如下:
void Tstart(void * pdata) {
while(1) {
创建TMapStaticData 通信任务;
创建TMapDynamicData 通信任务;
创建LCD的TMain_Board主界面显示任务;
创建LCD的Tcheck_Board测点数据详细显示界面任务;
创建LCD的Tcheck_system测点数据显示巡检任务;
};
}
结语
基于μC/OS-II的旋转机械监视实时数据监测模块利用了μC/OS-II能够稳定、安全处理并发多任务这一特点,并按所述调度策略协调多任务运行,提高了模块程序的运行效率。该模块一直稳定运行,体现出较高的实时性和可靠性,取得了较好的实际效果。
参考文献
[1] Labrosse Jean J. 嵌入式实时操作系μC/OS-II[M]. 邵贝贝,译. 第2版. 北京:北京航空航天大学出版社,2003.
[2] 陈赜. ARM嵌入式技术实践教程[M]. 北京:北京航空航天大学出版社,2005.
[3] MODBUS over serial line specification and implementation guide[OL]. www.modus.org.
[4] 周立功,等. ARM微控制器基础与实战[M]. 北京:北京航空航天大学出版社,2003.
- 采用模块化仪器,对新兴音频和视频应用进行测试(02-19)
- PXI射频模块仪表在手机生产测试上的应用(06-23)
- 基于NI数采模块的测井数据采集控制系统设计(11-18)
- Multicom(多无线模块)产品无线测试的挑战(11-26)
- 霍尼韦尔基于NI PXI模块化仪器和LabVIEW实现自定义的功能电路测试系统(04-11)
- 利用LabVIEW 数据记录和监控模块对大型造纸厂的纸浆生产进行仿真与控制(07-18)
