隨著汽車智能化程度的不斷加深,車載平臺(tái)既要提供良好人機(jī)交互服務(wù)[1],又要具備良好的實(shí)時(shí)控制的能力。傳統(tǒng)的車載平臺(tái)無(wú)法滿足消費(fèi)者對(duì)智能控制的要求,因此需要在車載環(huán)境中引入嵌入式虛擬化的技術(shù),使面向控制的實(shí)時(shí)操作系統(tǒng)和支持復(fù)雜人機(jī)交互接口的非實(shí)時(shí)嵌入式系統(tǒng)能夠同時(shí)運(yùn)行在同一硬件環(huán)境中。本文分析了目前市場(chǎng)上主流的嵌入式虛擬化產(chǎn)品及相關(guān)的技術(shù),提出了一種基于分區(qū)機(jī)制的高效智能車載平臺(tái)的實(shí)現(xiàn)方法,在多核處理器的硬件環(huán)境下,實(shí)現(xiàn)了汽車控制與信息系統(tǒng)的融合,并在OMAP4430硬件平臺(tái)上對(duì)其功能進(jìn)行了驗(yàn)證。
概述
隨著計(jì)算機(jī)網(wǎng)絡(luò)、人工智能等技術(shù)在汽車電子領(lǐng)域中的廣泛應(yīng)用,人、車、網(wǎng)絡(luò)三者逐漸緊密地融合在了一起,同時(shí)車載系統(tǒng)逐漸向汽車控制系統(tǒng)滲透。高度集成化的智能控制和信息交互的需求給車載平臺(tái)的設(shè)計(jì)實(shí)現(xiàn)帶來(lái)了新的問(wèn)題和挑戰(zhàn)。傳統(tǒng)的車用嵌入式實(shí)時(shí)操作系統(tǒng)主要面向控制領(lǐng)域,對(duì)圖形界面、人機(jī)交互等的支持較差,而電子產(chǎn)品中使用的主流復(fù)雜嵌入式操作系統(tǒng)如WindowsCE、Android等不能夠滿足車用控制系統(tǒng)實(shí)時(shí)性、準(zhǔn)確性、穩(wěn)定性的性能要求。
高性能的多核處理器為大計(jì)算量的應(yīng)用提供了硬件基礎(chǔ),提高了資源的利用率[2]。嵌入式虛擬化技術(shù)[3]允許多個(gè)操作系統(tǒng)運(yùn)行在同一物理硬件平臺(tái)上,從而滿足了車載平臺(tái)實(shí)時(shí)控制與人機(jī)交互的需求。因此,本文在多核處理器的硬件環(huán)境下,提出了了一種融合人機(jī)交互和實(shí)時(shí)控制的智能車載平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)方法。
相關(guān)工作
過(guò)去十年來(lái),虛擬化技術(shù)發(fā)展迅速,其應(yīng)用領(lǐng)域逐漸由桌面系統(tǒng)擴(kuò)展至嵌入式系統(tǒng)中。下面對(duì)兩款主流的嵌入式虛擬機(jī)系統(tǒng)及相關(guān)技術(shù)進(jìn)行分析。
PikeOS
PikeOS是一款基于微內(nèi)核核架構(gòu)、面向安全關(guān)鍵領(lǐng)域的商用非開(kāi)源嵌入式實(shí)時(shí)操作系統(tǒng)和虛擬化平臺(tái)[4]。近年來(lái),PikeOS逐漸地應(yīng)用于汽車電子等領(lǐng)域中。例如由德國(guó)OPENSYSNERGY公司針對(duì)車內(nèi)前部單元組、儀表板、連通性盒子和駕駛員輔助系統(tǒng)開(kāi)發(fā)的COQOS系統(tǒng),就是基于PikeOS實(shí)現(xiàn)的一個(gè)高度可伸縮軟件框架[5]。
在PikeOS架構(gòu)中實(shí)現(xiàn)了一種兼容MILS架構(gòu)[6]的分離式內(nèi)核,它為不同設(shè)計(jì)目標(biāo)和安全級(jí)別的操作系統(tǒng)提供了分區(qū)的環(huán)境。這種分區(qū)機(jī)制被廣泛應(yīng)用在航空電子等高安全性需求的嵌入式領(lǐng)域中[7]。它通過(guò)對(duì)各種資源進(jìn)行分區(qū),從而達(dá)到相互隔離的目的,有效地防止了一個(gè)系統(tǒng)的錯(cuò)誤向其他系統(tǒng)中傳播。
OKL4
OKL4是一個(gè)基于L4微內(nèi)核架構(gòu)的開(kāi)源虛擬機(jī)監(jiān)控器[8]。OKL4針對(duì)于嵌入式虛擬化領(lǐng)域的發(fā)展趨勢(shì)提出了具有虛擬化功能的微內(nèi)核Microvisor,主要應(yīng)用在智能手機(jī)系統(tǒng)中[9]。
OKL4繼承了L4系列微內(nèi)核的特點(diǎn),對(duì)地址空間、線程、進(jìn)程間通信進(jìn)行了抽象,實(shí)現(xiàn)了安全單元的分區(qū),使得運(yùn)行其上的虛擬機(jī)及其他應(yīng)用、驅(qū)動(dòng)程序分別運(yùn)行在各自的隔離分區(qū)中,并通過(guò)一種相對(duì)高效的IPC(Inter-Processor Communication)進(jìn)行通信[10]。OKL4采用的這種半虛擬化的技術(shù)需要其客戶機(jī)操作系統(tǒng)能夠完全運(yùn)行在OKL4 Microvisor上,因此需要對(duì)操作系統(tǒng)內(nèi)核進(jìn)行修改,提供其對(duì)OKL4半虛擬化的支持,如OK:Linux、OK:Android、OK:Windows等[10]。
上述兩款嵌入式虛擬化系統(tǒng)的實(shí)現(xiàn)都相對(duì)復(fù)雜,對(duì)硬件的性能要求較高。
平臺(tái)設(shè)計(jì)
系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本文綜合考慮了成本、性能需求以及系統(tǒng)實(shí)現(xiàn)的復(fù)雜程度,提出了一種基于分區(qū)機(jī)制的多操作系統(tǒng)并行處理方法。在多核處理器的硬件平臺(tái)上,基于嵌入式虛擬化技術(shù)中的分區(qū)機(jī)制將軟件平臺(tái)隔離為不同計(jì)算區(qū)域。在每個(gè)物理的處理器上部署一個(gè)嵌入式操作系統(tǒng),其結(jié)構(gòu)圖如圖1所示。其中,Android OS負(fù)責(zé)處理非實(shí)時(shí)的人機(jī)交互應(yīng)用,SmartOSEK OS[11]負(fù)責(zé)處理實(shí)時(shí)控制應(yīng)用。本文在系統(tǒng)設(shè)計(jì)上采用有效的分區(qū)機(jī)制使二者相互隔離。