基于RTAI的嵌入式Linux硬实时性能的研究与实现
rtai_sched_module模块主要实现一个实时的任务调度,调度器基于优先级且为可抢占式的;rtai_fifos_module是管道先入先出模块,负责实时应用与Linux应用之间的通讯;rtai_shm_module模块实现共享内存的通讯方式;rtai_lxrt_module允许在用户空间使用RTAI的系统服务和调度期。
3 嵌入式Linux的实时性实验测试与分析
3.1 电能质量监控实验平台
电能质量问题在电能的生产以及消费单位越来越得到关注,这就要求有更加先进的电能质量监测、控制装置与其配套。在线式电能质量监测设备更多的投入了使用,这些设备大多采用嵌入式的系统结构,在恶劣的条件下完成现场数据采集、运算、控制以及通讯等一系列的任务。这些任务必须满足严格的时序关系,并且需要有很高的响应速度,因此对于系统实时性提出了很高的要求。一个典型的基于嵌入式Linux的在线式电能质量监控器硬件结构框图如图2所示:
图2 在线式电能质量监控系统结构图
Fig2 Architecture of an online power quality monitoring and control system
实验平台选用Freescale的MCF5249嵌入式微处理器完成了一套如图2所示的在线式电能质量监控系统,微处理器内部工作频率为120Mhz,性能达125 Dhrystone 2.1 MIPS,外配4M FLASH和8M SDRAM存储器。软件方面,成功移植RTAI-uClinux双内核系统至此硬件平台,并且针对实际应用对系统的实时性进行了测试和分析。
3.2 时间分辨率测试
电能质量监控系统需要周期性的对A/D转换芯片进行采样,并且某些实时性较强的控制算法要求核心任务被重新调度的周期很短,因此系统对周期性实时任务的支持非常重要。
进行实验如下:分别在uClinux和RTAI-uClinux下利用定时函数设计周期性的高优先级任务,每一周期切换一次I/O口的电平,找出各自可分辨的稳定的最小任务周期。
在处理器中等负荷条件下,实验结果如表1所示:
操作系统 | 方波最小周期 | 任务的最小周期约 |
uClinux | 40.002 ms | 20 ms |
RTAI/uClinux双内核 | 110.19 us | 55 us |
表1 时间分辨率实验结果分析表
Table1 Analysis of the time resolution experiment
例如,在RTAI-uClinux系统中在不同的定时周期下的实验波形图如图3图4所示。当定时周期较大时系统稳定运行,而过小的定时周期(50us)会使系统运行变得不稳定。
评论