999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Xenomai的嵌入式數控系統實時性研究*

2011-10-18 14:32:48曹玉華游有鵬
制造技術與機床 2011年6期
關鍵詞:嵌入式系統

曹玉華 游有鵬

(南京航空航天大學機電學院,江蘇南京210016)

新一代數控系統的模塊化、集成化、小型化要求,使得嵌入式數控系統成為一個重要的發展和研究方向。所謂的嵌入式系統是以應用為中心,軟硬件可裁減的,適用于對功能、可靠性、成本、體積、功耗等綜合性能嚴格要求的計算機系統,而嵌入式數控系統則兼備了嵌入式技術和數控技術的優勢。一種典型的嵌入式數控系統是以“嵌入式處理器+運動控制器”的結構形式。嵌入式處理器完成對整個系統總體控制,是數控系統軟件運行的平臺;運動控制器完成對機床的直接控制,并接收機床的反饋信息。

隨著數控系統功能的日益強大以及高性能嵌入式處理器的不斷推出,對系統所需的任務管理平臺和底層驅動平臺的要求逐漸提高,這就使得將操作系統引入到嵌入式系統中成為必然的趨勢。利用操作系統不但可以提高嵌入式系統的穩定性,同時也能夠充分發揮32位CPU的多任務處理能力。嵌入式數控系統的應用決定了其很高的實時性要求,采用了操作系統的嵌入式數控系統,系統的實時性主要取決于處理器和操作系統本身。目前,嵌入式處理器的運算速度通常都能達到百兆級以上,處理器對于嵌入式系統實時性要求的限制很小,因此整個嵌入式數控系統的實時性很大程度上取決于操作系統。所以,選擇和構建一種合適的實時操作系統就成為開發嵌入式數控系統的關鍵環節。本文選擇Linux系統作為嵌入式數控系統的操作系統,并在此基礎上研究其實時性。

1 Linux+Xenomai構架的實時性改造

1.1 數控系統實時性要求

所謂實時,就是一個特定任務的執行時間必須是確定的,可預測的,并且在任何情況下都能保證任務的時限(最大執行時間限制)。嵌入式數控系統是一個典型的強實時性系統,系統要求具有可確定性,即可確保條件出現到由此引起的動作開始(或者結束)的時間在一個準確的時段內[1]。在數控系統中,條件是由指令(如急停,G代碼的軸進給要求等)或是機床的狀態(如超程等)引起的。在機床運行時,需要滿足時間約束的情況主要是和系統安全(如對突發事件的反應等)以及切削精度有關。比如數控機床的進給控制系統,在規定時間進給系統必須達到預定的位置,否則無法保證加工零件的精度甚至無法完成加工。數控系統中的插補運算和位置控制等軌跡控制功能都是實時性很強的任務。以FANUC 7M系統為例,插補周期設置為8 ms,位置反饋采樣周期為4 ms,當前的高速高精度控制甚至已經把采樣周期和插補周期減小到1 ms以下,因此其運行必須滿足最后期限的限制。為了達到快速響應和及時運算處理的實時性要求,在嵌入式數控系統軟件模塊設計時需充分考慮數控系統的實時性要求,合理規劃不同實時性要求的軟件模塊。而軟件模塊的設計與嵌入式操作系統的性能極度相關,因此一個實時性能優秀的操作系統對整個嵌入式數控系統開發至關重要。

1.2 現有Linux系統的不足

Linux以其開源、可裁剪、易移植、多架構支持、穩定等特性使得它在嵌入式系統中得到了廣泛應用。然而Linux在設計之初沒有對實時性進行考慮,標準Linux有幾個機制嚴重地影響了實時性[2]。

(1)內核限制。在Linux 2.4和以前的版本,內核是不可搶占的,緊急任務必須等到當前任務執行完成后,或者當前任務因需要等待某些條件滿足而主動讓出CPU才能被考慮執行,從而造成很嚴重的搶占延遲。在Linux 2.6中,雖然內核已經可以搶占,但內核中仍有大量的不可搶占區域。

(2)自旋鎖(spinlock)。自旋鎖是對共享資源的一種同步機制,用來解決共享資源沖突的問題,但是在保持自旋鎖期間搶占將失效,這意味搶占延遲非常不確定。

(3)時間粒度。時間粒度是指操作系統所能提供的最小時間間隔。時間粒度越小,系統開銷越大。時間粒度越大,進程的響應延遲越大。Linux的時鐘中斷的周期設為10 ms,這足以滿足一般Linux進程對于時間粒度的要求,但對于高性能要求的嵌入式數控系統(如插補周期只有幾毫秒甚至更小的情況),則時間粒度過大。

(4)調度算法和調度點。在Linux 2.4及以前的版本,所有的CPU共享一個任務鏈表,任何時刻只能有一個調度器運行。搶占延遲很大程度上取決于當前系統的任務數,具有非常大的不確定性和不可預測性。此外,即使內核是可搶占的,也不是在任何地方可以發生調度。

綜上可見,Linux任務調度和中斷處理的延遲較大,幾乎不能滿足嵌入式數控系統實時任務的要求,因此必須對Linux內核進行實時改造。

1.3 基于Xenomai的實時性改造

針對Linux實時性不足的問題,目前的實時改造方案都基于兩種原理[3]:(1)對Linux內核進行實時改造。即直接修改Linux內核的數據結構、調度方式以及中斷方式(主要是定時器中斷)。這種實時改造后的系統實時性較好,但是改造工作量大,并可能會造成系統的不穩定。典型代表有Kurt-Linux;(2)對Linux內核的外部實時擴展,即所謂雙內核的辦法。具體是在Linux內核和硬件之間加入一個硬件抽象層(HardwareAbstractLayer,HAL),系統所有的硬件中斷由這個抽象層控制。新創建一個內核專門用來調度實時進程,而普通進程通過原來的Linux內核進行調度。采用此方法的最大好處在于對Linux的內核改動很小,而且原Linux上的設備驅動程序和應用程序都能順利在此實時系統上運行。典型代表有RTLinux、RTAI和Xenomai。

本文采用基于第二種改造原理的Xenomai進行實時化改造。Xenomai是一個自由軟件項目,它可以提供工業級的RTOS的性能,完全遵守GNU/Linux自由軟件協議,與其他實時性改造項目相比,Xenomai更關注可擴展、輕便和可維護性,代碼的移植工作量較小,尤其適合嵌入式系統的改造與移植。Linux+Xenomai基本構架如圖1所示[4]。

Xenomai是充分利用Adeos原理來實現的,圖中Adeos實現的功能主要包括中斷管道機制(I-Pipe)、域調度模塊功能和域管理模塊功能,它可以將硬件中斷定向到指定的域[5]。Linux內核和Xenomai分別作為Adeos中的一個域存在。Linux內核負責非實時任務的調度,而Xenomai采用不同于Linux的精度更高的定時中斷來調度實時任務,實現更小的調度延時。另外,Xenomai域的優先級高于Linux域,每當中斷到來,Adeos會先將中斷交給Xenomai處理,如果Xenomai沒有需要處理的中斷,才會將中斷交給Linux內核處理,保證了Xenomai的中斷響應和任務調度的實時性。作為和Linux核同等地位的Xenomai,除了提供最基本的Native API,還提供與傳統的工業級實時操作系統(包括 VxWorks、pSOS+、VRTX和 uITRON)相同功能的API(RTOS skins),這樣可以讓這些操作系統下的應用程序只需極少的改動,就能方便地移植到GNU/Linux環境中,并能保持良好的實時性。

基于Linux+Xenomai構架的嵌入式系統構造了從用戶空間到內核空間的實時開發環境,為嵌入式數控系統軟件模塊的合理規劃提供強有力的保證。

2 Linux+Xenomai構架下CNC軟件模塊規劃

嵌入式數控系統的另一個顯著特點是多任務性,在上文構建的Linux+Xenomai實時構架的基礎上,充分考慮數控系統不同模塊的實時性能,合理規劃數控系統的軟件模塊,也具有非常重要的意義。遵循不同模塊的實時性要求以及模塊規劃需符合軟件工程學的科學原理且易于擴展和維護的原則[6]。本文對數控系統軟件模塊的規劃如圖2所示。

根據任務的實時性強弱,將嵌入式數控系統軟件結構層次分為:非實時層和實時層,兩個層次的應用軟件都涉及到用戶空間和內核空間。

非實時層主要包括:任務管理部分、人機交互部分和PLC管理部分。其中任務管理模塊是本層的核心,負責調度其他模塊,對非實時層和實時層之間的數據傳遞進行管理。人機交互模塊提供與用戶交互相關的功能,主要包括人機界面、文件管理、參數管理、狀態顯示、圖形仿真等功能。PLC管理和譯碼模塊則負責將PLC文件譯碼并提供給實時層。非實時層對實時性基本沒有要求,可采用普通的Linux任務調度。實時層主要包括:譯碼、刀補、速度預處理、插補、手動、軟PLC執行模塊、位控和狀態檢測等模塊。這部分對實時性要求較高,所以采用Xenomai進行實時的任務調度。實時層的實現涉及用戶和內核空間。運動控制部分的刀補、速度預處理、插補等模塊運算復雜,對實時要求相對較低,基本不與硬件交互,可以在實時層的用戶空間運行;而狀態檢測、位置控制等運算相對少,對實時要求最高,并且需要與硬件交互,另外軟PLC運行模塊也需要直接與硬件進行交互,所以將它們規劃在實時層的內核空間。

非實時和實時層中的任務模塊以進程或線程的形式獨立并發的運行,各層、各模塊之間通過通信協作來實現數控功能。

3 Linux+Xenomai架構的實時性測試

Linux實時化改造完成后,需要對其做一定的測試來確定系統是否符合實際應用的實時性要求。本文的硬件平臺是研華PCM-3350/PC104卡,PC104是一種基于PC/104總線規范的嵌入式板卡,與傳統PC系統兼容,它不僅基本具備普通PC系統的一切功能,還具有小尺寸、低功耗、開放的和高可靠性的工業規范等優點。在PC104上移植安裝經裁剪過的嵌入式Linux內核,將Xenomai作為目標內核的一部分進行編譯安裝,使其成為一個與Linux無縫結合的實時子系統。基本測試環境:處理器主頻300 MHz,128 M內存,Linux內核版本為2.6.20,Xenomai版本為2.4.8。

3.1 定時器抖動的測量

定時器抖動是系統實時性的一個重要指標,它能夠很好地反映系統周期性執行任務時間上的準確性。其測試原理是創建一個周期線程,測量實際的和期望的周期結束時間之間的偏差[7]。定時器抖動的概念如圖3所示。周期線程從T1時刻開始運行,并在該周期預期時間結束后,在T2時刻重新開始運行。但實際情況是在T3時刻線程才開始新的周期。T3時刻和T2時刻之間的時間間隔就是所謂的定時器抖動。

基于此原理,使用周期性的線程,在每次線程運行開始,將上一次讀取的時間存放到一個變量中,再讀取當前的時間。然后將當前時間和存放到變量中的時間求差,得到線程實際的周期,再減去期望的定時周期時間,得到一個定時器的抖動值。編程中使用posix標準提供的clock_gettime函數獲取當前時間,其時間讀取精度達10個納秒級。測試程序利用Xenomai的N-ative API進行編寫,使用Xenomai實時內核的調度,調度采用Xenomai的定時器,因此完全可以測試Xenomai的實時性。關鍵代碼如下:

線程周期為5 ms,程序每1 s打印一次平均抖動、最大最小抖動和當前抖動。在Linux+Xenomai構架下,將測試程序編譯為內核模塊,使用insmod工具將模塊加入Linux內核后運行。采用同樣的原理,測試未經Xenomai實時改造的2.6.20版的Linux內核,在條件相同時,測試結果如表1。可以看出,在Linux+Xenomai構架下定時器抖動的絕大部分集中在10 μs以內,極少出現的抖動峰值不超過100 μs。而在未經實時化改造的平臺下,100 μs以上的抖動出現頻率較高,而且抖動峰值可以超過1 ms。測試表明,經實時化改造后的系統實時性有了很大提高。

表1 定時器抖動對比 μs

3.2 實時任務調度及內核定時器中斷的測量

Xenomai安裝成功后,在目錄/usr/xenomai/bin/下提供了一系列實時性能測試程序,其中測試程序latency可以用來測試內核層、用戶層的實時任務調度延遲以及內核定時器中斷延遲。下面在重載情況下對內核層實時任務的調度延遲和定時器中斷延遲進行測試。測試采樣周期150 μs,在測試目錄下輸入:

在后臺模擬重載情況,此時 CPU使用率接近100%。再輸入:

對內核實時任務調度延遲進行測試。測試結束后再輸入:

對定時器中斷延遲進行測試。測試界面如圖4。

測試時間5 min,提取10 000個采樣點,作出平均延時時間直方圖如圖5、6所示。可見,在重載情況下,內核層實時任務調度延遲和定時器中斷延遲是非常小的,絕大部分集中在10 μs以下。內核層任務調度平均延遲不超過10 μs,定時器中斷平均延遲不超過6 μs。測試表明,基于Xenomai的系統實時性能非常好。

4 結語

隨著現代數控技術的發展要求,采用高性能的嵌入式處理器和實時操作系統構建嵌入式工業控制系統平臺已經成為一種發展趨勢。Linux+Xenomai實時化方案,結合了Linux強大的多任務能力與Xenomai良好的實時性和可移植性特點,簡單方便,代碼改動量小,是開發嵌入式數控系統比較理想的軟件平臺。經過實際的實時性測試表明,基于Xenomai的Linux實時化改造,其性能完全可以滿足數控加工對系統的高實時性要求。本文對嵌入式數控系統實時性研究也為下一步數控系統的開發奠定了基礎。

[1]劉淼,王田苗,魏洪興,等.基于uCOS-Ⅱ的嵌入式數控系統實時性分析[J].計算機工程,2006,32(22):222-226.

[2]楊燚.Linux實時技術與典型實析.http://www.ibm.com/developerworks/cn/linux/l-lrt/part1,2010,4.

[3]阮鴻芳,鐘家騏.Linux與硬實時擴展系統—RTAI的分析與研究[J].嵌入式操作系統應用,2007,23(2):44-45.

[4]Barbalace A,Luchetta A,Manduchi G,et al.Performance comparison of VxWorks,Linux,RTAI and Xenomai in a hard real-time application[J].IEEE Transactions On Nuclear Science,2008,55(1):435-439.

[5]Xenomai API.http://www.xenomai.org/documentation/trunk/html/api/,2010,4.

[6]劉曉梅.基于RTLinux的開放式數控系統的研究[D].大連:大連理工大學,2005.

[7]陳路遠.嵌入式Linux實時化及其測試方法的研究[D].哈爾濱:哈爾濱工程大學,2006.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 19国产精品麻豆免费观看| 亚洲精品国产精品乱码不卞| av一区二区三区在线观看| 国产精品内射视频| 青青青草国产| 午夜国产大片免费观看| 91无码人妻精品一区| 久久99这里精品8国产| 久久精品国产亚洲AV忘忧草18| 2021精品国产自在现线看| 免费人成网站在线高清| 免费人成黄页在线观看国产| 911亚洲精品| 日韩av高清无码一区二区三区| 六月婷婷精品视频在线观看| 呦视频在线一区二区三区| 亚洲,国产,日韩,综合一区| AV无码无在线观看免费| 久久性妇女精品免费| 青青国产成人免费精品视频| 国产欧美日韩18| 91啪在线| 99视频国产精品| 免费国产好深啊好涨好硬视频| 亚洲午夜综合网| 亚洲综合一区国产精品| 久久精品无码专区免费| 最新亚洲人成网站在线观看| 波多野结衣视频一区二区| 午夜a级毛片| 免费毛片视频| 亚洲中字无码AV电影在线观看| 国产福利拍拍拍| 国产午夜福利片在线观看| 深夜福利视频一区二区| 国产自在线播放| 婷婷午夜影院| 亚洲国产看片基地久久1024| 国产成人精彩在线视频50| 看看一级毛片| 国产色婷婷视频在线观看| 正在播放久久| 97久久人人超碰国产精品| 国产 在线视频无码| 性69交片免费看| 欧美国产在线看| 成人无码区免费视频网站蜜臀| 亚洲国产黄色| 亚洲精品在线观看91| 大陆国产精品视频| 国产一区三区二区中文在线| 日韩一级二级三级| 亚洲乱码视频| 国产91全国探花系列在线播放| 国模视频一区二区| 中文字幕人成人乱码亚洲电影| 久久久精品国产亚洲AV日韩| 国产91小视频在线观看| 久草国产在线观看| 婷婷激情亚洲| 国产精品无码翘臀在线看纯欲| 日韩欧美国产三级| 黄色网页在线播放| 亚洲国产精品人久久电影| 国产尤物jk自慰制服喷水| 亚洲 成人国产| 伊人蕉久影院| 国产区在线看| 五月天综合婷婷| 国产日本欧美在线观看| 国产专区综合另类日韩一区| 99激情网| 国产人人射| 综合久久五月天| 国产精品欧美激情| 中文成人无码国产亚洲| 一级毛片在线播放| 国产一在线观看| 免费中文字幕一级毛片| 亚洲精品国产日韩无码AV永久免费网 | 亚洲视频黄| 亚洲国产精品VA在线看黑人|