本篇我想討論一下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平臺應該是你最好的選擇!
共0條 [查看全部] 網友評論