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