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