嵌人式虛擬化實(shí)時(shí)系統(tǒng)的研究與應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著工業(yè)4.0技術(shù)的發(fā)展,工業(yè)機(jī)器人控制系統(tǒng)對(duì)工業(yè)物聯(lián)網(wǎng)、工業(yè)大數(shù)據(jù)和人工智能等重負(fù)載的新技術(shù)開(kāi)始有了應(yīng)用需求,傳統(tǒng)的工業(yè)機(jī)器人控制系統(tǒng)是基于實(shí)時(shí)操作系統(tǒng)(RTos)而設(shè)計(jì)的高度安全可靠的均衡型硬實(shí)時(shí)系統(tǒng),同時(shí)伴隨著系統(tǒng)復(fù)雜度的提高,出現(xiàn)了經(jīng)過(guò)內(nèi)核改造的實(shí)時(shí)Linux系統(tǒng)方案。但隨著系統(tǒng)負(fù)載的逐漸加重,其實(shí)時(shí)性亦逐漸下降。若將通用Linux和RTos兩者有機(jī)地結(jié)合起來(lái),既能滿足系統(tǒng)任務(wù)復(fù)雜性要求,又能兼顧系統(tǒng)實(shí)時(shí)性。
1Jai1house原理概述
與實(shí)時(shí)Linux系統(tǒng)單內(nèi)核(LinuxwithPreemptRT)改造方案不同的是,Hypervisor方案本身并不改造Linux內(nèi)核,而是利用Linux系統(tǒng)的開(kāi)放性,增加一個(gè)或多個(gè)實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)多系統(tǒng)在一個(gè)多核處理器上運(yùn)行。
Jailhouse是一個(gè)基于Hypervisor虛擬化技術(shù)的Linux靜態(tài)分區(qū)管理程序,其可以運(yùn)行裸機(jī)應(yīng)用程序或RTos應(yīng)用程序。為此,Jailhouse使用Cell單元節(jié)點(diǎn)來(lái)配置CPU和設(shè)備硬件平臺(tái)的虛擬化功能,且各個(gè)節(jié)點(diǎn)分配的資源互不干擾。
一旦Jailhouse被啟動(dòng),在Inmate空間就會(huì)運(yùn)行裸機(jī)應(yīng)用程序或RTos,也就是說(shuō)在Linux端分配了相關(guān)的硬件資源給Inmate時(shí),它完全可以獨(dú)立控制硬件且不再需要外部系統(tǒng)的支持。在TIAM5728硬件平臺(tái)上,CPU只有兩個(gè)單元節(jié)點(diǎn)Cell:RootCell和InmateCell。Jailhouse軟件框架如圖1所示。
與基于Linux的全功能虛擬機(jī)管理程序(如KVM或xen)不同,Jailhouse不支持硬件的多單元節(jié)點(diǎn)復(fù)用,其希望用戶僅分配需要安全隔離控制的外設(shè)硬件資源,這樣能保證裸機(jī)應(yīng)用程序或RTos最大限度減少因?yàn)閼?yīng)用虛擬化技術(shù)所造成的實(shí)時(shí)性損失。所有靜態(tài)分配給RootCell操作系統(tǒng)端(Linux)的硬件資源(例如內(nèi)存、CPU和外圍設(shè)備),Jailhouse不執(zhí)行任何調(diào)度。
2Jai1house工作過(guò)程
Jailhouse由三部分組成:內(nèi)核模塊、程序管理固件和相關(guān)工具,主要用來(lái)啟用管理程序、創(chuàng)建節(jié)點(diǎn)Cell和加載InmateCell的二進(jìn)制應(yīng)用程序。在AM5728CPU中有兩個(gè)ARMCortex二A15核,Linux使用sMP模式啟動(dòng)兩個(gè)核,然后Jailhouse管理程序?qū)⒂蒐inux端移至RootCell單元節(jié)點(diǎn),此時(shí)Linux端依然使用兩個(gè)ARM內(nèi)核。
在創(chuàng)建新的InmateCell單元節(jié)點(diǎn)時(shí),Jailhouse管理程序會(huì)調(diào)用cpu一own()來(lái)隔離兩個(gè)CPU核心,這會(huì)使得Linux僅在核心0上運(yùn)行,隨后再加載運(yùn)行在核心1中基于RTos的應(yīng)用程序。新的InmateCell單元節(jié)點(diǎn)將使用核心1和所分配的硬件資源。
3Jai1house硬件資源配置
根據(jù)應(yīng)用程序的使用情況來(lái)看,將外圍設(shè)備分配給InmateCell單元節(jié)點(diǎn)使用的一般原則是保持InmateCell單元節(jié)點(diǎn)擁有的外圍設(shè)備數(shù)量和資源數(shù)量盡可能少。通常,InmateCell單元節(jié)點(diǎn)會(huì)直接控制幾個(gè)與實(shí)時(shí)控制相關(guān)的外圍設(shè)備(如定時(shí)器、工業(yè)以太網(wǎng)總線的網(wǎng)口、UART和CAN等硬件接口),其余的外圍設(shè)備如UsB或顯示器,將由標(biāo)準(zhǔn)Linux驅(qū)動(dòng)程序來(lái)驅(qū)動(dòng)。
所以在Linux設(shè)備樹(shù)中,為虛擬化管理程序保留16MB的物理內(nèi)存,為InmateCell單元節(jié)點(diǎn)程序保留256MB的物理內(nèi)存,并將Timer8和Uart9分配給InmateCell單元節(jié)點(diǎn)程序。
4測(cè)試分析及實(shí)驗(yàn)結(jié)果
4.1工業(yè)機(jī)器人EtherCAT應(yīng)用程序?qū)嶒?yàn)測(cè)試條件
在基于AM5728平臺(tái)的工業(yè)機(jī)器人控制系統(tǒng)中連接清能德創(chuàng)CoolDriveA8單軸伺服驅(qū)動(dòng),執(zhí)行1ms總線周期的EtherCAT測(cè)試程序。在以下三種系統(tǒng)環(huán)境中分別在輕負(fù)載和重負(fù)載條件下進(jìn)行系統(tǒng)實(shí)時(shí)性能測(cè)試:
(1)RTos+PRUEtherCAT:
(2)JailhouseLinux+RTos+PRUEtherCAT:
(3)LinuxRT+PRUEtherCAT。
輕負(fù)載:運(yùn)行EtherCAT程序:重負(fù)載:運(yùn)行EtherCAT、網(wǎng)絡(luò)和科學(xué)計(jì)算程序。
4.2輕負(fù)載下EtherCAT應(yīng)用測(cè)試結(jié)果
由表1測(cè)試數(shù)據(jù)可知,在CPU只運(yùn)行RTos時(shí),實(shí)時(shí)性能最好,抖動(dòng)數(shù)據(jù)主要集中在3.2~6.4μs區(qū)間。在Jailhouse環(huán)境下由于使用了虛擬化技術(shù)造成了實(shí)時(shí)性能損失,但抖動(dòng)數(shù)據(jù)仍然集中在3.2~12.8μs的區(qū)間呈正態(tài)分布。而LinuxRT實(shí)時(shí)系統(tǒng)由于其是通過(guò)改造內(nèi)核的方式來(lái)達(dá)到硬實(shí)時(shí)的效果,受Linux自身調(diào)度機(jī)制影響,實(shí)時(shí)性呈現(xiàn)不規(guī)則狀況且實(shí)時(shí)性最差。
4.3重負(fù)載下EtherCAT應(yīng)用測(cè)試結(jié)果
如表2所示,在系統(tǒng)施加了重負(fù)載的情況下,三種系統(tǒng)環(huán)境實(shí)時(shí)性均受到了影響,其中RTosonly和LinuxRT受影響更為嚴(yán)重,最大延遲分別增加了127%和96.7%。但JailhouseRTos由于為雙系統(tǒng)獨(dú)立運(yùn)行,在虛擬化技術(shù)的作用之下,實(shí)時(shí)性并未受到過(guò)大影響。
綜上所述,嵌入式虛擬化實(shí)時(shí)系統(tǒng)非常適合用于復(fù)雜的控制系統(tǒng)中。
5結(jié)語(yǔ)
本文通過(guò)研究基于Hypervisor虛擬化技術(shù)的Jailhouse原理,使用虛擬化技術(shù)實(shí)現(xiàn)多操作系統(tǒng)同時(shí)運(yùn)行在多核處理器上,并將其應(yīng)用于工業(yè)機(jī)器人控制系統(tǒng)。通過(guò)測(cè)試實(shí)驗(yàn)得到使用虛擬化技術(shù)前后系統(tǒng)實(shí)時(shí)性延遲抖動(dòng)數(shù)據(jù)的對(duì)比,測(cè)試結(jié)果說(shuō)明在系統(tǒng)負(fù)載越重的情況下嵌入式虛擬化實(shí)時(shí)系統(tǒng)性能越優(yōu)異,證明工業(yè)機(jī)器人控制器應(yīng)用該方案具備基礎(chǔ)條件和研究的可行性。