利用Google的Android作為車載虛擬儀表人機(jī)界面的軟件開發(fā)平臺。在Android系統(tǒng)框架上實現(xiàn)虛擬儀表的人機(jī)界面,闡述了如何對 Android現(xiàn)有系統(tǒng)框架進(jìn)行裁剪和調(diào)整,使系統(tǒng)更加符合車載虛擬儀表人機(jī)界面的要求,利用Android提供的組件設(shè)計虛擬儀表人機(jī)界面的各個功能邏 輯模塊,使得模塊設(shè)計更加合理.模塊之間的耦合性更小。設(shè)計了基于REAL210車載儀表人機(jī)界面,結(jié)果表明,基于Android的虛擬儀表人機(jī)界面功能 更加豐富、操作更加友好、易于升級和維護(hù),能較好地滿足用戶的需求。
車載虛擬儀表人機(jī)界面,是駕駛員獲取汽車工況數(shù)據(jù)的主要界面,便于 駕駛員實時全面地掌握汽車工作狀態(tài),有效地與汽車進(jìn)行人機(jī)交互,對保障汽車安全穩(wěn)定的行駛有著重要意義,目前普遍使用的是Windows CE和Linux操作系統(tǒng)。Windows CE操作系統(tǒng)功能穩(wěn)定,有完善的技術(shù)支持,但價格昂貴、源代碼封閉、網(wǎng)絡(luò)可利用資源較少;Linux操作系統(tǒng)的最大優(yōu)勢在于免費和開源,是車載信息顯示系 統(tǒng)的主流操作系統(tǒng),但其并不是基于移動設(shè)備開發(fā)的,不能完全滿足移動設(shè)備的需求。
Android是Google開發(fā)的一款基于開源操作 系統(tǒng)Linux的開放、開源移動平臺,對于目前主流的嵌入式平臺支持良好,Android系統(tǒng)的優(yōu)越性能己在多款移動設(shè)備上得到驗證。它包括操作系統(tǒng)用戶 界面和應(yīng)用程序而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。文中提出利用Android作為車載虛擬儀表軟件開發(fā)平臺,在Android提供的應(yīng)用 程序框架上來實現(xiàn)虛擬儀表的人機(jī)界面。
1 系統(tǒng)硬件體系
雖然Android是作為一款手機(jī)軟件平臺進(jìn)行開發(fā)的應(yīng)用程序框架和應(yīng)用程序但其本質(zhì)是一個嵌入式軟件開 發(fā)平臺。若將Android用于車載虛擬儀表系統(tǒng)的開發(fā),需要對儀表系統(tǒng)應(yīng)用的特點進(jìn)行調(diào)整,系統(tǒng)采用的硬件平臺是REAL210,CPU處理速度600 MHz~1 GHz,基于Cortex—A8架構(gòu)。系統(tǒng)中主要的硬件模塊有音頻模塊、CAN模塊、液晶顯示模塊、串口和以太網(wǎng)通信模塊,如圖1所示。
2 Android軟件系統(tǒng)的定制
由于Android最初是基于手機(jī)軟件開發(fā)平臺進(jìn)行設(shè)計的,而且其中大部分模塊都是為手機(jī)通信所設(shè)計,為節(jié)約開發(fā)板資源,需要將Android系統(tǒng)中不 必要的組件剪裁掉,保留必要的最小系統(tǒng)。因此必須對框架進(jìn)行修改,將與電話、短信等相關(guān)的模塊移除。僅留下必需的Android的核心模塊,包括 Package Manager、System Service、Input Service、Hardware SerVice和System Server等。通過修改System Server的加載過程可以去掉不需要的服務(wù)和模塊,另外還要實現(xiàn)底層硬件的驅(qū)動程序,重新交叉編譯Linux 2.6內(nèi)核,并在驅(qū)動程序?qū)崿F(xiàn)的基礎(chǔ)上封裝函數(shù)庫,以便Android的應(yīng)用程序通過JNI的方式訪問底層驅(qū)動。經(jīng)過定制和修改過的Android系統(tǒng)架 構(gòu)如圖2所示。
車載虛擬儀表人機(jī)界面的應(yīng)用程序需要進(jìn)行重新開發(fā),主要是界面模塊、CAN模塊、數(shù)據(jù)訪問模塊和告警模塊。其中CAN模塊設(shè)計成Service 的方式。數(shù)據(jù)訪問模塊設(shè)計為Content Provider。告警模塊采用的通知方式為Broadcast Receiver和Notifica。系統(tǒng)通電后,在Android的System Server中首先啟動CAN模塊,然后啟動主界面的程序。