微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于RTAI的嵌入式Linux硬实时性能的研究与实现

基于RTAI的嵌入式Linux硬实时性能的研究与实现

时间:05-17 来源:互联网 点击:

rtai_module是一个核心模块,RTHAL在这一模块里实现,完成对硬件的接管。以关硬件中断行为为例说明,Linux系统中原有的关中断函数#define _cli_asm_volatile_(“cli”:::”memory”)直接通过汇编语言对硬件进行操作,而在rtai_module模块中,Linux中的关中断函数被替换为执行{processor[hard_cpu_id()].intr_flag = 0;}。可见,Linux关中断的执行只是改变了RTAI中的中断标志位,并没有直接对硬件进行操作。

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)会使系统运行变得不稳定。


图3 定时周期大于100微妙时的试验波形图

Fig3 Oscillogram of the system output when cycle > 100us

图4 定时周期小于50微妙时的试验波形图

Fig4 Oscillogram of the system output when cycle 50us


从实验结果可以看出,uClinux操作系统难以完成周期小于20ms以下的周期性任务,因此对于周期性的A/D采样以及高实时控制很难实现,经过改造后的RTAI/uClinux双内核结构时间分辨率低于100us,完全可以满足电能质量控制器在A/D采样等方面的实时性周期任务。

3.3 中断响应速度测试

中断的响应速度是实时控制系统的重要指标,例如在A/D采样和计算完成后,系统需要控制进程尽快地被调度执行,以执行正确的控制策略。对于一个支持硬实时任务的系统来说,除了测试系统的平均响应速度外,还需要测试系统在最差情况下的响应速度以及处理器的负荷状况对系统响应速度的影响。

设计实验如下:利用一个外部的DSP帮助测量系统的中断响应速度。DSP2407在启动内部定时器后,将MCF5249 的一个I/O引脚状态改变,MCF5249内部的高优先级进程在引脚状态改变并且被重新调度后,立即将DSP2407的指定I/O引脚置高,DSP2407在其指定的I/O引脚被置高后停止定时器。利用DSP2407的定时器可以精确的计算出从MCF5249引脚状态改变至MCF5249 内部进程响应之间的时间间隔,从而确定MCF5249内部进程的响应速度。改变MCF5249处理器的负荷,重复实验,在每种情况下重复实验过程1000 次,找出不同情况下系统响应的平均速度以及最慢响应速度。

操作系统

处理器负荷轻

处理器负荷较重

平均响应时间

最慢响应时间

平均响应时间

最慢响应时间

uClinux

120us

12ms

221ms

795ms

RTAI/uClinux

25us

27us

27us

30us

表2 响应速度实验结果分析表

Table2 Analysis of response speed experiment

从实验结果可以看出,在处理

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top