為了滿足智能網(wǎng)聯(lián)汽車多源信息早期集成的要求,提出了智能化設(shè)備的概念與模型,識(shí)別出智能化設(shè)備的重要特征:具備解釋性語(yǔ)言的開(kāi)放接口。針對(duì)這一特征并根據(jù)實(shí)時(shí)性及安全性的要求,對(duì)車載嵌入式設(shè)備的早期集成給出了三種解決方案:Web CGI 方案、Java 方案和分布式方案。針對(duì)分布式解決方案,從軟件工程的角度,提出了利用高抽象級(jí)別的 RMI 來(lái)解決嵌入式設(shè)備互聯(lián)的方法,采用 CORBA 構(gòu)件互聯(lián)協(xié)議,以智能手機(jī)控制媒體播放設(shè)備的原型實(shí)現(xiàn)來(lái)進(jìn)行平臺(tái)中間件的驗(yàn)證。
隨著汽車技術(shù)從機(jī)械化到“三電化”的發(fā)展,以智能化網(wǎng)聯(lián)化為重要特征的駕駛自動(dòng)化系統(tǒng)(Driving Automation System)的開(kāi)發(fā)毫無(wú)疑問(wèn)地成為汽車產(chǎn)業(yè)發(fā)展的重要方向。產(chǎn)品開(kāi)發(fā)要適應(yīng)市場(chǎng)的需要,產(chǎn)品需求要符合用戶需求特征。從計(jì)算機(jī)行業(yè)的大型機(jī)到個(gè)人計(jì)算機(jī)再到消費(fèi)電子的發(fā)展歷程來(lái)看,智能網(wǎng)聯(lián)汽車以消費(fèi)電子和共享服務(wù)為特征的功能需求多樣化和用戶體驗(yàn)個(gè)性化將成為整車廠產(chǎn)品研發(fā)的關(guān)注點(diǎn)。
另一方面,自動(dòng)駕駛的主動(dòng)安全系統(tǒng),感知和監(jiān)視車輛內(nèi)外狀態(tài)環(huán)境,識(shí)別周邊事物及對(duì)車輛、占有物和道路使用者的潛在危險(xiǎn),通過(guò)駕駛員告警、車輛系統(tǒng)調(diào)整、和車輛子系統(tǒng)主動(dòng)控制等手段,自動(dòng)介入而幫助避免或減輕碰撞。其中, 通過(guò)對(duì)目標(biāo)和事件的感知、識(shí)別、分類和預(yù)判來(lái)監(jiān)視駕駛環(huán)境,及對(duì)目標(biāo)及事件反應(yīng)與執(zhí)行,均需要將大量的傳感器集成在汽車電子電器系統(tǒng)上,大量的單片機(jī)及 ECU(Electronic Control Unit )等復(fù)雜設(shè)備都迫切需要智能互聯(lián),以滿足 HMI ( Human Machine Interface )、 MMI(Machine to Machine Interface)操作的便利性、復(fù)雜性以及智能地駕駛員信息傳達(dá)和部件間信息傳遞的要求。
汽車研發(fā)將以系統(tǒng)研發(fā)平臺(tái)化技術(shù)、零部件快速集成與驗(yàn)證技術(shù)為支撐點(diǎn),以快速迭代的生產(chǎn)模式為方向進(jìn)行變革。而平臺(tái)開(kāi)發(fā)的中間件技術(shù)以及基礎(chǔ)軟件設(shè)計(jì)規(guī)范及接口的定義,必將成為各整車廠引領(lǐng)本次變革的制高點(diǎn)和必須掌握的核心技術(shù)。
1系統(tǒng)設(shè)計(jì)目標(biāo)與要求
平臺(tái)中間件的設(shè)計(jì)與開(kāi)發(fā)須達(dá)成以下目標(biāo)。
1)支持零部件靈活部署
2)支持零部件快速集成
3)支持產(chǎn)品早期驗(yàn)證
4)支持快速迭代的生產(chǎn)模型
根據(jù) HMI 架構(gòu)平臺(tái)設(shè)計(jì)目標(biāo),平臺(tái)中間件的設(shè)計(jì)要達(dá)到以下目標(biāo)。
1)支持HMI架構(gòu)上顯示與功能邏輯的分離;
2)形成企業(yè)標(biāo)準(zhǔn)的車載應(yīng)用邏輯開(kāi)放接口規(guī)范(Profile);
3)靈活配置 HMI功能;
4)快速切換 HMI風(fēng)格;
5)支持迭代開(kāi)發(fā),縮短 HMI新功能開(kāi)發(fā)周期;
6)縮短 HMI與 Tier1&2集成開(kāi)發(fā)時(shí)間,整車開(kāi)發(fā)周期由通常兩年半降低為一年半;
7)減少信息源部署的物理制約,支持 TBox及多傳感器信息源與 HU 的快速集成;
8)減少顯示屏幕部署的物理制約,支持儀表、中控屏、副駕屏、前視鏡、后視鏡及后排娛樂(lè)屏快速開(kāi)發(fā)。
智能網(wǎng)聯(lián)汽車電子電器系統(tǒng)構(gòu)成如圖1 所示,其中的平臺(tái)中間件部分在整車系統(tǒng)集成中占有中心位置。
圖 1 系統(tǒng)構(gòu)成概念圖
基于以太網(wǎng)總線的智能網(wǎng)聯(lián)系統(tǒng)零部件部署拓?fù)浣Y(jié)構(gòu)如圖 2 所示。
圖 2 零部件部署拓?fù)鋱D
2設(shè)計(jì)方案
為了便于設(shè)備執(zhí)行機(jī)構(gòu)與外界的交互,HMI 界面及模塊間交互語(yǔ)言一般采用解釋性的高級(jí)語(yǔ)言。交互語(yǔ)言為解釋性語(yǔ)言的設(shè)備我們稱之為智能化設(shè)備(SmartDevice)。從概念上圖3中的設(shè)備智能化模型應(yīng)包括腳本語(yǔ)言、解釋引擎和執(zhí)行機(jī)構(gòu)三部分。
圖 3 設(shè)備智能化模型
對(duì)原始嵌入式系統(tǒng)設(shè)備的智能化,至少要滿足以下幾方面要求。
1)系統(tǒng)的安全性。對(duì)原生系統(tǒng)的安全性影響最小。汽車 ECU等原生系統(tǒng)對(duì)安全性要求很高,不能因?yàn)樘摂M化后的外圍設(shè)備功能邏輯程序執(zhí)行的崩潰而影響原生系統(tǒng)的工作。
2)交互的便利性。采用解釋性高級(jí)語(yǔ)言對(duì)被虛擬化的外圍設(shè)備編程進(jìn)行交互,以滿足對(duì)目標(biāo)設(shè)備操作的功能邏輯不斷變化的要求。
3)部署的自適性。智能 HMI與原生嵌入式系統(tǒng)能有靈活的連接和部署。
HMI操作的實(shí)時(shí)性。對(duì)操作實(shí)時(shí)性的要求,根據(jù)用戶體驗(yàn)及應(yīng)用模塊之間調(diào)用的時(shí)間要求,應(yīng)有適當(dāng)?shù)闹笜?biāo)。如果要求在幾十毫秒級(jí)別,在設(shè)計(jì)上能有更多的方案可供選擇。兼顧系統(tǒng)的實(shí)時(shí)性和可用性綜合考慮,智能網(wǎng)聯(lián)汽車應(yīng)用系統(tǒng)架構(gòu)設(shè)計(jì)采用實(shí)時(shí)性相對(duì) IPC(Inter ProcessCommunication)和 RPC(Remote Process Call) 較 低 的 RMI(Remote MethodInvoke)。圖4的進(jìn)程間通信抽象度模型(IPCParadigms)表示,越往頂層抽象度越高,可用性越好,而實(shí)時(shí)性越差。
圖 4 進(jìn)程間通信模型
2.1Web方案
智能網(wǎng)聯(lián)汽車應(yīng)用系統(tǒng)的嵌入式設(shè)備智能化的 Web 方案如圖 5 所示。執(zhí)行設(shè)備使用 Web 的 CGI(Common GatewayInterface)和外部進(jìn)行交互。訪問(wèn)端使用XHTML 語(yǔ)言及AJAX 技術(shù), 利用 JavaScript 解釋引擎來(lái)訪問(wèn)執(zhí)行機(jī)構(gòu)。執(zhí)行機(jī)構(gòu)內(nèi)嵌 Web 服務(wù)前端,在其中部署 CGI,用 C 語(yǔ)言或 PHP、Python 等解釋引擎來(lái)解釋前端過(guò)來(lái)的指令,并調(diào)用執(zhí)行機(jī)構(gòu)的服務(wù)。
圖 5 嵌入式設(shè)備智能化 Web 方案
2.2 Java方案
智能網(wǎng)聯(lián)汽車應(yīng)用系統(tǒng)的嵌入式設(shè)備智能化的 Java 方案如圖 6 所示。HMI 采用 JAVA 語(yǔ)言,在 Java 虛擬機(jī)空間解釋執(zhí)行。解釋后的代碼與設(shè)備的 Native 空間交互,進(jìn)行對(duì)設(shè)備的操作。
圖 6 嵌入式設(shè)備智能化 JAVA 方案
2.3 分布式方案
考慮到智能網(wǎng)聯(lián)汽車電子電器體系架構(gòu)的可擴(kuò)展性及零部件的冗余性,兼顧消息通信的實(shí)時(shí)性,采用多主機(jī)分布式體系架構(gòu)設(shè)計(jì)方案如圖7所示。該方案把原生系統(tǒng)作為智能設(shè)備的附屬設(shè)備(AccessaryUtilities),HMI和執(zhí)行機(jī)構(gòu)采用分布式架構(gòu),分別部署在兩臺(tái)主機(jī)的不同系統(tǒng)中。雙系統(tǒng)在 TCP Socket 或 BlueTooth Socket 上進(jìn)行遠(yuǎn)程方法調(diào)用(RMI)。
圖 7 嵌入式設(shè)備分布式方案
3原型驗(yàn)證
采用Android 智能手機(jī)與嵌入式設(shè)備互聯(lián), 把智能手機(jī)作為 HMI,嵌入式設(shè)備作為執(zhí)行設(shè)備。兩系統(tǒng)的連接采用 WIFI 或 BlueTooth 進(jìn)行無(wú)線連接??紤]到雙系統(tǒng)間通信的實(shí)時(shí)性,和兩個(gè)系統(tǒng)平臺(tái)不一致性,選用了CORBA(Common Object Request Broker Architecture)作為 RMI 通信協(xié)議。CORBA 組件天生為實(shí)現(xiàn)平臺(tái)無(wú)關(guān)和透明傳輸而生,故采用 CORBA 這類跨平臺(tái)組件是上佳的選擇。
實(shí)現(xiàn)的原型是在 Linux 和 Android 兩個(gè)操作系統(tǒng)平臺(tái)上部署一個(gè)媒體播放的分布式應(yīng)用程序。其中,Android 系統(tǒng)上的 APP 提供用戶操作界面及應(yīng)用功能邏輯,Linux 系統(tǒng)上的 Service 實(shí)現(xiàn)媒體解碼和媒體播放的執(zhí)行機(jī)構(gòu)。
3.1執(zhí)行機(jī)構(gòu)設(shè)計(jì)
執(zhí)行機(jī)構(gòu)側(cè)的 Linux 系統(tǒng)和 Android 系統(tǒng)交互需要滿足以下條件。
1)Linux和 Android同時(shí)部署相同版本omniORB(AT&T)支持庫(kù)。為避免數(shù)據(jù)原語(yǔ)可能的不一致性,特地同時(shí)為 Linux 和 Android移植了 ominORB相同版本。本方案采用 omniORB4.2.0版本。
2)Linux和 Android能通過(guò) TCP/IP彼此可訪問(wèn)。Linux和 Android能彼此通過(guò)TCP/IP“看”到對(duì)方,在它們上可部署omniNamesCORBA對(duì)象尋址服務(wù)。這樣, 通過(guò)對(duì)象名字能訪問(wèn)對(duì)象實(shí)體,而不用 關(guān)心對(duì)象實(shí)體在部署在哪里。
omniORB 對(duì) Linux 平臺(tái)支持很好,Linux 側(cè)omniORB 的移植相對(duì)容易,移植要點(diǎn)如下。
1)交叉編譯
因?yàn)榫幾g過(guò)程對(duì)omniORB IDL 編譯工具的依賴, 需要先編譯出“ omniidl ”, “omkdepend” , “omnicpp”三個(gè)程序build-host 的版本。具體操作方式是先用cmake 生成修改 Makefile 文件,然后修改目錄“src/tool”中的 Makefile 文件,把其中的編譯器更換為 build-host 版本。
2)交叉編譯器的選擇
交叉編譯選擇 GCC。ARM平臺(tái)有很多Linux移植版,編譯時(shí)需要參照處理器指令集類型和 Linux用戶層支持庫(kù)進(jìn)行選擇。本次原型驗(yàn)證采用 TIDRA7xx的
Linux 平臺(tái)配型的“arm-linux-gnueabihf” 工具鏈。
3)omniORB運(yùn)行時(shí)環(huán)境
生成的 omniORB 運(yùn)行庫(kù)若非直接安裝到系統(tǒng)的“LIB”路徑,則需要在運(yùn)行omniNames 前把 omniORB 的 lib 路徑加入到“LD_LIBRARY_PATH”環(huán)境變量中。
圖 8 嵌入式設(shè)備智能化設(shè)計(jì)
如圖 8 所示,執(zhí)行機(jī)構(gòu)的 Linux 服務(wù)程序是一個(gè)媒體播放器。選用開(kāi)源媒體播放框架FFmpeg(http://ffmpeg.org/)作為解碼器,然后又選用了mplayer(http://www.mplayerhq.hu/)作為播放器的 shell,ALSA 作為聲音通道。執(zhí)行機(jī)構(gòu)執(zhí)行過(guò)程,是 omniORB 封裝著拿到 IPlaylist和IMediaPlayer 對(duì)象,IPlaylist 和 IMediaPlayer 與媒體播放器實(shí)體進(jìn)行交互。
3.2 HMI設(shè)計(jì)
HMI 側(cè)的 omniORB 的移植基本和 Linux 側(cè)的相同,但需要注意的是omniORB官方不支持Android平臺(tái)。而 Android原生 bionic庫(kù)只實(shí)現(xiàn)了 POXICstandardClibrary的子集(bionic相對(duì)POXIC標(biāo)準(zhǔn)缺少了大約 200條函數(shù)實(shí)現(xiàn)),這樣omniORB對(duì) Android 的支持有限。在移植過(guò)程中僅遭遇到數(shù)條需要補(bǔ)充的 C函數(shù)。Android版本 的 toolchain 選 用 Android NDK的 API level-19,指令集設(shè)置為“-march=armv7-a”。HMI APP 是一個(gè)Android 應(yīng)用程序,結(jié)構(gòu)如圖 9 所示。
圖 9 智能化設(shè)備 HMI 設(shè)計(jì)
下面是用CORBA IDL 語(yǔ)言定義的遠(yuǎn)程調(diào)用接口。
module MediaPlayer
{
interface IMediaPlayerListener { void onSeekComplete(in longmsec);
};
interface IMediaPlayer { void pause();
void seekTo(in long msec); void start();
void stop(); voidforward();
void backward();
void settOnSeekCompleteListener(in IMediaPlayerListener listener);
};
};
4 性能評(píng)測(cè)
本次試驗(yàn)評(píng)測(cè)了高通的面向 IoT 的 AllJoyn 方案和本次omniORB 方案的RMI 通信延時(shí)和資源占用情況。本次的測(cè)試環(huán)境和測(cè)試方案如下。
1)測(cè)試環(huán)境:Intel(R) Xeon(R) CPUE3-1226
2) 測(cè)試計(jì)時(shí)已去除 STDIO 操作;
3)測(cè)試兩類 API:一類是只單向發(fā)送,另一類是帶 callback;
表中顯示的使用 nanosecond單位計(jì)時(shí), 每次測(cè)試數(shù)據(jù)是調(diào)用測(cè)試 API1000次的結(jié)果。
5 結(jié) 論
經(jīng)測(cè)試驗(yàn)證,這種雙主機(jī)雙系統(tǒng)之間的 RMI調(diào)用時(shí)延不超過(guò) 1ms,服務(wù)啟動(dòng)時(shí)間不超 5ms,完全滿足車機(jī)操作實(shí)時(shí)性及服務(wù)快速加載的要求。系統(tǒng)穩(wěn)定,可靠性、擴(kuò)展性強(qiáng),在汽車電子電器架構(gòu)智能駕駛應(yīng)用領(lǐng)域及 Telematics 都有廣泛應(yīng)用前景。另外,本方案全部采用開(kāi)源代碼進(jìn)行開(kāi)發(fā),開(kāi)發(fā)周期短,見(jiàn)效快,能較好地滿足商業(yè)軟件對(duì)軟件開(kāi)發(fā)周期及成本的要求。
參考文獻(xiàn)
[1] AT&T. omniORB : Free CORBA ORB[CP/OL]. http://www.omniorb-support.com
[2] 朱賽春. 嵌入式通信總線的體系結(jié)構(gòu)設(shè)計(jì)與原形實(shí)現(xiàn)[D]. 南開(kāi)大學(xué),2005:10-11
[3] J. Weber. Automotive Development Processes: Processes for Successful Customer Oriented Vehicle Development[M]. New York: Springer, 2009.
[4] E. Hanawalt and W. Rouse. Car wars: Factors underlying the success or failure of new car programs[J]. Systems Engineering, 2010, 13(4).
[5] B. Broekman and E. Notenboom. Testing Embedded Software[M]. Boston: Addison-Wesley, 2003.
[6] A. Sangiovanni-Vincentelli and M. Di Natale. Embedded system design for automotive applications[J]. Computer, 2007, 40(10): 42–51.
[7] A. Abdallah, E. M. Feron, G. Hellestrand, and M. Wolf. Hardware/software codesign of aerospace and automotive systems[J]. Proceedings of the IEEE, 2010, 98(4): 584–602.
[8] M. S. Fisher. Software verification & validation: An engineering & scientific approach[M]. New York: Springer, 2007
-
自動(dòng)駕駛
+關(guān)注
關(guān)注
781文章
13449瀏覽量
165268 -
智能網(wǎng)聯(lián)汽車
+關(guān)注
關(guān)注
9文章
975瀏覽量
30991
原文標(biāo)題:智能網(wǎng)聯(lián)汽車多源信息集成平臺(tái)技術(shù)研究
文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論