基于WindowsCE的車載電腦系統(tǒng)人機(jī)界面的實(shí)現(xiàn)
介紹了基于Windows CE的車載電腦系統(tǒng)人機(jī)界面的設(shè)計(jì)及其實(shí)現(xiàn),著重論述了虛擬儀表界面和混合動(dòng)力界面的設(shè)計(jì)過程與實(shí)現(xiàn)技術(shù),并給出車載電腦系統(tǒng)人機(jī)界面的實(shí)現(xiàn)結(jié)果。
1引言
當(dāng)前我國(guó)的汽車工業(yè)正處于一個(gè)突飛猛進(jìn)的發(fā)展時(shí)期,汽車工業(yè)已成為我國(guó)國(guó)民經(jīng)濟(jì)發(fā)展的重要支柱產(chǎn)業(yè)之一。汽車電子在汽車產(chǎn)業(yè)中的地位也越來越重要,汽車電子的數(shù)字化、信息化、網(wǎng)絡(luò)化是21世紀(jì)消費(fèi)類汽車電子產(chǎn)品技術(shù)發(fā)展的必然趨勢(shì)。但車載電腦系統(tǒng)在汽車中的應(yīng)用目前還處于探索階段,缺乏整合信息及網(wǎng)絡(luò)技術(shù)的比較實(shí)用的應(yīng)用模型。而Windows CE是一個(gè)搶先式多任務(wù)并具有強(qiáng)大通信能力的32位的嵌入式操作系統(tǒng),良好的圖形用戶界面提供基本的繪圖引擎、窗口管理、界面的事件機(jī)制等。將Window CE操作系統(tǒng)嵌入到車載電腦系統(tǒng)中,使得系統(tǒng)中人機(jī)界面實(shí)現(xiàn)簡(jiǎn)單,而且直觀,方便駕駛員與汽車之間進(jìn)行信息的交互。
2 Windows CE操作系統(tǒng)簡(jiǎn)介
Microsoft Windows CE是一個(gè)多平臺(tái)、多任務(wù)、多線程、可裁減的32位嵌入式操作系統(tǒng)。它具有強(qiáng)大的通信能力,是微軟專門為信息設(shè)備、移動(dòng)應(yīng)用、消費(fèi)類電子產(chǎn)品、嵌入式應(yīng)用等非PC領(lǐng)域設(shè)計(jì)的全新戰(zhàn)略性操作系統(tǒng)產(chǎn)品。它只需500KB的RAM就可以把系統(tǒng)全部裝下。最新版的Windows CE內(nèi)核只需200KB的運(yùn)行空間。Windows CE主要包括內(nèi)核、持久存儲(chǔ)、圖形和多媒體、進(jìn)程間通信、通信服務(wù)、安全服務(wù)、用戶界面服務(wù)、Internet服務(wù)和本地化支持等模塊。Windows CE在可裁減性、可移植性以及實(shí)時(shí)性等方面都有獨(dú)特的優(yōu)勢(shì)。
Windows CE的主要特征為:
⑴具有模塊化的可裁減內(nèi)核結(jié)構(gòu)。
⑵適應(yīng)小型系統(tǒng),為低成本弱計(jì)算能力系統(tǒng)提供簡(jiǎn)介、高效、完善的控制手段。
⑶遵循Windows平臺(tái)的應(yīng)用開發(fā)規(guī)范,提供Win32 API等。
⑷靈活的內(nèi)存訪問機(jī)制,可以使系統(tǒng)中不同類型的應(yīng)用程序充分地使用RAM、ROM和閃存,并有選擇地有效利用處理器提供地虛存、保護(hù)等功能。
⑸高效地任務(wù)管理調(diào)度機(jī)制,具有256級(jí)優(yōu)先級(jí)和動(dòng)態(tài)優(yōu)先級(jí)搶占式調(diào)度地功能。
⑹支持實(shí)時(shí)應(yīng)用。
⑺提供高級(jí)電源管理功能。
3車載系統(tǒng)人機(jī)界面的設(shè)計(jì)
在車載系統(tǒng)人機(jī)界面的顯示和控制中,我們采用液晶屏和觸摸屏相結(jié)合的方式。這樣就大大減小了系統(tǒng)在車中占有的空間。利用液晶屏實(shí)現(xiàn)車內(nèi)各種信息的顯示、菜單操作、圖形顯示及觸摸屏控制,為車載系統(tǒng)提供良好的人機(jī)界面。
人機(jī)界面設(shè)計(jì)成四個(gè)主要的界面:虛擬儀表界面、故障診斷界面、混合動(dòng)力界面和視頻顯示界面。
虛擬儀表界面主要顯示車速、水溫、油位、油壓、輪速、電壓等車內(nèi)的各種信號(hào)。并且利用輪速信號(hào)計(jì)算出里程數(shù)進(jìn)行顯示。這樣駕駛員能夠準(zhǔn)確了解到車運(yùn)行過程中的各種基本信息,能夠?qū)Ω鞣N即將出現(xiàn)的情況作出及時(shí)的判斷。
故障診斷界面主要顯示的是車內(nèi)各種部件的工作狀態(tài),以使駕駛員及時(shí)發(fā)現(xiàn)車輛行駛中的異?,F(xiàn)象,排除發(fā)生危險(xiǎn)的各種故障,這樣對(duì)駕駛員的行車安全有非常大的幫助。
混合動(dòng)力界面主要是利用動(dòng)畫來顯示每個(gè)時(shí)刻車內(nèi)能量流動(dòng)的各種狀態(tài),包括純電池能量狀態(tài)、純?nèi)加湍芰繝顟B(tài)和混和能量狀態(tài)。
視頻顯示界面只要是實(shí)時(shí)顯示從攝像頭傳送過來的畫面,主要應(yīng)用在倒車的時(shí)候。
界面設(shè)計(jì)中有一個(gè)默認(rèn)的啟動(dòng)界面及幾個(gè)相關(guān)的顯示界面用于動(dòng)態(tài)顯示采集的數(shù)據(jù),界面是通過窗口上的控制按鈕產(chǎn)生相應(yīng)的消息進(jìn)行切換;控制按鈕可以是屏幕上虛擬按鈕或?qū)嶋H外設(shè)的按鍵或其他能使系統(tǒng)產(chǎn)生相應(yīng)消息切換的裝置。啟動(dòng)LOGO界面在顯示一段時(shí)間后自動(dòng)進(jìn)入到其中一個(gè)特定的顯示界面。顯示界面中要顯示數(shù)據(jù)通過串口對(duì)車內(nèi)信號(hào)進(jìn)行接收,程序接收采用線程方式,接收程序作為線程獨(dú)立工作,并在取得相應(yīng)的數(shù)據(jù)后產(chǎn)生相應(yīng)的消息,由不同的消息去觸發(fā)人機(jī)界面的不同區(qū)域更新顯示數(shù)據(jù)。圖1為開機(jī)后的界面顯示的切換。
圖1 人機(jī)界面顯示切換
在虛擬儀表界面中為了更加形象的模擬運(yùn)行中車速和輪速指針的擺動(dòng)情況,我們對(duì)指針的顯示采用阻尼的方式進(jìn)行動(dòng)態(tài)的顯示,對(duì)要顯示的數(shù)據(jù)進(jìn)行了適當(dāng)?shù)奶幚?,達(dá)到加速或減速時(shí)指針開始快速擺動(dòng)然后緩慢到達(dá)終點(diǎn)的效果。數(shù)據(jù)的顯示大致分成兩類,加速和減速,分別對(duì)應(yīng)于圖2中曲線的L1,L2。L1是加速曲線,其起點(diǎn)不一定是在零點(diǎn),在加速過程中其函數(shù)可對(duì)采集來的數(shù)據(jù)進(jìn)行處理,使其在開始階段上升速度較快,在儀表上表現(xiàn)為指針擺動(dòng)較快,當(dāng)快要到達(dá)加速的終點(diǎn)時(shí)加入適當(dāng)?shù)淖枘峒把訒r(shí)系數(shù),使指針擺動(dòng)的速度變緩并逐漸停留在終點(diǎn)位置。同樣在減速時(shí)在靠近減速起點(diǎn)階段下降速度稍微快些,快到終點(diǎn)時(shí)下降速度變緩,逐漸趨向與終點(diǎn)速度,虛擬表盤的指針表現(xiàn)為快速下降然后緩慢穩(wěn)定在終點(diǎn)上。
圖2儀表阻尼顯示原理圖
4車載系統(tǒng)人機(jī)界面的實(shí)現(xiàn)
車載電腦系統(tǒng)人機(jī)界面的開發(fā)環(huán)境采用微軟提供的eVC4.0,開發(fā)系統(tǒng)處理器采用Intel的XScale PXA255,SDK我們采用Platform Builer4.2裁減定制而成。由于在eVC中,并沒有多文檔框架,而我們要顯示多個(gè)不同的界面,所以我們采用單文檔的形式顯示多個(gè)不同的窗體來進(jìn)行窗體的切換。我們創(chuàng)建一個(gè)基于CFormView的單文檔應(yīng)用程序,再添加幾個(gè)窗體和與之對(duì)應(yīng)的基于CFormView的新視類,然后通過在主框架類里添加控制代碼和菜單控制實(shí)現(xiàn)這兩個(gè)窗體的動(dòng)態(tài)切換。這種方法避免了普通WINDOWS窗口界面上的多余的工具條、菜單、文本框等內(nèi)容,完全符合人機(jī)操作界面的要求。
圖3混合動(dòng)力界面采用了動(dòng)畫的顯示方法。其關(guān)鍵就是在內(nèi)存中創(chuàng)建一個(gè)與顯示動(dòng)畫的窗口區(qū)域一樣大的位圖,先用GDI函數(shù)繪制位圖,然后在適當(dāng)?shù)臅r(shí)候從內(nèi)存中顯示出來。因?yàn)槲粓D已經(jīng)繪制好,不像平時(shí)編程一樣邊繪制邊顯示,所以,顯示一幀圖形時(shí),減少了閃爍,從而實(shí)現(xiàn)平滑動(dòng)畫;并且,圖形是從內(nèi)存中直接顯示到當(dāng)前窗體,所以速度也很快,從而實(shí)現(xiàn)高速動(dòng)畫。我們首先建立一個(gè)新類CPowerBitmap,利用CreateCompatibleBitmap()函數(shù)在內(nèi)存中建立一個(gè)與顯示界面相同大小的區(qū)域,然后在內(nèi)存的這個(gè)區(qū)域中畫出要顯示的圖形,最后通過BitBlt()在屏幕上進(jìn)行顯示。利用OnTimer()函數(shù)定時(shí)一定的時(shí)間對(duì)不同位置的箭頭進(jìn)行顯示,這樣就實(shí)現(xiàn)了箭頭的動(dòng)態(tài)移動(dòng)。而且利用OnTimer()函數(shù)在不同位置顯示時(shí),必須先將原來顯示的圖形去掉,然在新的位置上畫出圖形。
在圖4虛擬儀表顯示界面中輪速和車速的顯示是用表盤+指針的形式進(jìn)行顯示。油壓、水溫和里程用Edit box的形式顯示。油位和電壓用進(jìn)度條顯示。為了避免在顯示時(shí)的輪速和車速表盤的閃爍問題,我們只實(shí)時(shí)的刷新車速和輪速的指針。采用的方法是如果要顯示的數(shù)據(jù)與原來數(shù)據(jù)相同,指針不變。否則我們先用底色將原來的指針覆蓋,然后在新的位置畫出指針。
故障診斷界面的顯示如圖5所示,左側(cè)顯示出車內(nèi)故障的大體位置,然后在右側(cè)顯示出出現(xiàn)故障的部件、位置及其故障名稱。這樣有利于故障的排除與維修。
圖3混合動(dòng)力界面
圖4 虛擬儀表界面
圖5 故障診斷界面
4結(jié)束語
人機(jī)界面作為人與汽車信息交互的樞紐的因素,必須將車內(nèi)信息實(shí)時(shí)、準(zhǔn)確而且容易識(shí)別的方式傳遞給駕駛員,才能達(dá)到人與汽車的最佳配合。而基于Windows CE操作系統(tǒng)制作的人機(jī)界面能夠很好的滿足車載系統(tǒng)的要求,它將在車載系統(tǒng)中應(yīng)用越來越廣泛。
參考文獻(xiàn)
[1]Douglas Boling.Microsoft Windows CE程序設(shè)計(jì)[M].北京:北京大學(xué)出版社,1999年.
[2]傅曦.嵌入式系統(tǒng)Windows CE開發(fā)技巧與實(shí)例[M].北京:化學(xué)工業(yè)出版社,2004年.
[3]羅仕鑒.人機(jī)界面設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2002年.
[4]陳章龍.嵌入式技術(shù)與系統(tǒng)-Intel XScale結(jié)構(gòu)與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2004年.