本篇我想讨论一下Windows Embedded嵌入式系统的软肋——“实时性”。就在Windows Embedded这个系列博文的前两篇刊登之后反响很大,很多控友都来跟我讨论Windows Embedded在工控行业是否真具备优良的嵌入式开发平台特性,但是对此指出最多的就是质疑Windows Embedded的实时性。
关于嵌入式系统的实时性,不是大家边缘模糊认为地那种越快越好。实时性最主要是在规定的时间内完成规定的内容,也就是说只要是任务时间规定的情况下越慢越好,也就是越稳定CPU的闲置时间越多。从嵌入式系统实时性来说,分为硬实时和准实时。硬实时是指从内核针对实时系统设计发展而来,从驱动到接口再到内存访问都是为内核系统而设计;准实时是指内核不是实时系统而是针对实时系统需求而独立剪裁和封装设计而成。硬实时系统的代表就是风河vXworks这种系统,主要是针对航天、军工等需要极其苛刻的实时性系统来满足系统需求。例如飞机上的黑匣子用于记录飞机故障一瞬间的飞机故障数据。准实时系统的代表就是微软Windows Embedded,主要是用于工业自动化中的过程控制方面。其实硬实时和准实时主要区别在于任务调度的测略,硬实时主要是采用单一比率调度算法(RMS)和最早期限优先算法(EDF)结合方式,而准实时是采用抢占式和时间片混合方式。
控友就是一直在问我微软的Windows Embedded到底性能如何?是不是真可以满足用户的实时性要求?那我就在这里给大家介绍一下微软的实时性(数据参考南京大学一个测试表)。
首先介绍实时性的几个关键性指标:
1、系统调用平均运行时间
即系统调用效率,是指内核执行常用的系统调用所需的平均时间。
2、任务切换时间
任务切换时间是指事件引发切换后,从当前任务停止运行、保存运行状态(CPU寄存器内容),到装入下一个将要运行的任务状态、开始运行的时间间隔,如图1所示。
3、任务抢占时间
任务抢占时间是高优先级的任务从正在运行的低优先级任务中获得系统控制权所消耗的时间,如图2所示。
4、信号量混洗时间
信号量混洗时间指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟,如图3所示。
5、中断响应时间
中断响应时间是指从中断发生到开始执行用户的中断服务程序代码来处理该中断的时间。
测试平台:
下面列出的是平台中主要的硬件型号与种类。
◇ CPU:XScale (400 Hz)。
◇ 时钟:HT1381。
◇ ROM:1 MB AMD。
◇ SDRAM:64 MB。
◇ Flash:32 MB。
测试结果:
系统调用时间 ms
|
任务切换时间 ms
|
任务抢占时间 ms
|
信号量混洗时间 ms
|
中断响应时间 ms
|
|
Window CE
|
4.54
|
52.70
|
64.48
|
60.29
|
2.80
|
通过上面测试结果可以得知,Windows Embedded的实时性参数,如果用户采用高性能的硬件体系实时性能会大幅提高,也就是说只要你所设计的系统可以接受这样的参数就不用再担心了,我个人为这样的嵌入式平台非常适合开发过程控制产品,例如:温度控制器,巡检仪,HMI,PAC,DCS,智能阀门等。
我想我讲到这里控友门该明白嵌入式系统的实时性是从何而来又该如何有效地设计和应用了吧!物尽其用,因地制宜其实最适用嵌入式平台的选用,如果你要开发频谱仪最好选用vXworks这样的系统,如果你要开发常规的工业控制产品Windows Embedded平台应该是你最好的选择!