一種嵌入式車載導(dǎo)航信息系統(tǒng)研究
車載導(dǎo)航電子地圖一般采用小液晶顯示屏顯示。為了實(shí)現(xiàn)導(dǎo)航,顯示的畫面內(nèi)容應(yīng)盡可能簡(jiǎn)單明了,所以矢量圖形將數(shù)據(jù)分層組織,在圖形元素的基類中設(shè)有表示元素所處圖層的信息。除了將元素分類為不同的顯示圖層,簡(jiǎn)化顯示內(nèi)容,基類還可設(shè)置該元素是否顯示標(biāo)志位,這樣可提高顯示速度,節(jié)省資源。例如。在同一圖層元素,如果有些元素不在當(dāng)前顯示窗口,可以不進(jìn)行與顯示有關(guān)的后臺(tái)操作(坐標(biāo)變換等)。DPtoVP和VPtoDP方法是實(shí)際坐標(biāo)(地理坐標(biāo))和圖形坐標(biāo)相轉(zhuǎn)換。通過矢量化得到的圖形元素的位置數(shù)據(jù)一般是某種坐標(biāo)系下的坐標(biāo)值,而本系統(tǒng)用戶可見的顯示坐標(biāo)范圍為從(0,0)至(640,480),所以需進(jìn)行坐標(biāo)變換。每個(gè)圖形元素都需Draw(繪制)方法,但不同元素的繪制方法各不相同,為了方便Draw方法使用,在基類中將Draw定義為純虛函數(shù),在子類中重載時(shí)再具體賦以不同繪制內(nèi)容。
2.2 矢量圖形系統(tǒng)優(yōu)化
嵌入式車載導(dǎo)航系統(tǒng)硬件平臺(tái)一般采用低功耗設(shè)計(jì),運(yùn)算能力有限。但導(dǎo)航電子地圖顯示畫面往往含有大量圖形元素,圖形顯示一次需花費(fèi)大量時(shí)間。如果采用每次全部繪制所有電子地圖內(nèi)容并直接輸出到畫面,則會(huì)導(dǎo)致畫面刷新慢和重繪閃爍明顯。因此需優(yōu)化矢量圖形的繪制方法。
2.2.1 提高圖形的顯示速度
一般繪圖方法是繪制所有圖形元素,而這樣嚴(yán)重影響繪圖速度。為了加快繪圖速度,在顯示一個(gè)圖形元素前,先判斷該圖形元素是否在當(dāng)前視圖屏幕中,如果不在,則無需繪制,從而節(jié)省繪制時(shí)間州。而判斷一個(gè)圖形元素是否在當(dāng)前視圖屏幕.需計(jì)算判斷圖形元素與當(dāng)前視圖屏幕矩形是否相交,但此方法需大量計(jì)算,影響顯示速度。采用的判斷圖形元素是否需要繪制的方法應(yīng)允許不太嚴(yán)密,但要計(jì)算簡(jiǎn)單。在每次重繪圖形元素前,首先判斷元素是否顯示,并只繪制所需部分。這樣就大大加快繪圖速度,并能滿足導(dǎo)航電子地圖系統(tǒng)顯示要求。
2.2.2 解決畫面閃爍問題
窗口圖形繪制包括:上次繪制、本次擦除、本次重繪。其中本次擦除操作是必須的。如果重繪時(shí)未清除原來繪制圖形,將導(dǎo)致新圖形和原圖形相疊加。而在新圖形繪制出前,在極短時(shí)間內(nèi)屏幕顯示一個(gè)空的矩形區(qū)域,圖形重繪完成后,窗口顯示區(qū)才開始有內(nèi)容顯示。所以擦除屏幕會(huì)出現(xiàn)閃爍,這與圖形復(fù)雜程度無關(guān)。采用雙緩存機(jī)制解決重繪閃爍。雙緩存就是在內(nèi)存中新開辟一個(gè)緩沖區(qū),原來的顯示緩沖區(qū)作為前臺(tái)緩沖區(qū).新開辟的緩沖區(qū)作為后臺(tái)緩沖區(qū)。如圖3所示,繪圖時(shí)先把輸出內(nèi)容寫入后臺(tái)緩沖區(qū),繪圖完成后再把屏幕的當(dāng)前顯示緩沖區(qū)切換到這個(gè)包含新內(nèi)容的緩沖區(qū)。一旦把屏幕顯示緩沖指向后臺(tái)緩沖區(qū),下一幀的輸出內(nèi)容就可寫入原緩沖區(qū),再通過屏幕顯示。因?yàn)槭欠浅R?guī)整的內(nèi)存拷貝,所以前后臺(tái)的緩沖區(qū)切換速度非常快,幾乎看不到圖形的擦除過程。因此使用雙緩沖區(qū)取代單緩沖區(qū)可成功隱藏繪圖過程.避免閃爍。
3 導(dǎo)航數(shù)據(jù)庫管理系統(tǒng)設(shè)計(jì)
所謂數(shù)據(jù)庫即格式化(結(jié)構(gòu)化)的文件,用戶完全可自行設(shè)計(jì)所需格式文件,并提供操作函數(shù)。這里使用.dbf文件格式。因?yàn)樵摳袷奖槐姸鄶?shù)據(jù)庫管理系統(tǒng)接受,處理方便。這樣實(shí)現(xiàn)的數(shù)據(jù)管理系統(tǒng)是一種平面文件數(shù)據(jù)庫。這種數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單經(jīng)濟(jì),開發(fā)周期短,但速度較慢。實(shí)踐表明,車載導(dǎo)航系統(tǒng)采用這種方法完全可以滿足要求。
本文使用16進(jìn)制閱讀工具h(yuǎn)ex32.exe分析dbf文件結(jié)構(gòu)。經(jīng)分析dbf文件具有以下特征:文件由文件結(jié)構(gòu)說明區(qū)和文件數(shù)據(jù)區(qū)構(gòu)成;文件的結(jié)束標(biāo)志為lAH。文件數(shù)據(jù)區(qū)存放記錄(類似表格的一行),每條記錄是等長的;每條記錄以20H開始,按字段順序存放,沒有字段分隔符,也沒有記錄終止符;若刪除該記錄,則記錄的第1個(gè)字節(jié)標(biāo)記為2AH。文件結(jié)構(gòu)說明區(qū)包括數(shù)據(jù)庫參數(shù)區(qū)和記錄結(jié)構(gòu)區(qū)。文件的前32個(gè)字節(jié)為數(shù)據(jù)庫參數(shù)區(qū)。記錄結(jié)構(gòu)區(qū)包括各個(gè)字段參數(shù),其中每個(gè)字段占32個(gè)字節(jié)。本系統(tǒng)基本表的組織形式與dhf文件組織形式相同。
數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)的主要函數(shù)與普通關(guān)系數(shù)據(jù)庫接口類似,選擇使用必要的函數(shù)可以實(shí)現(xiàn)車載導(dǎo)航所需的基本操作。實(shí)現(xiàn)通用數(shù)據(jù)庫所支持的全部操作,系統(tǒng)具備較豐富的操作功能。用戶還可開發(fā)實(shí)現(xiàn)特定功能的其他操作,作為系統(tǒng)擴(kuò)展。
4 結(jié)束語
針對(duì)嵌入式車載導(dǎo)航信息系統(tǒng)體系結(jié)構(gòu)進(jìn)行研究,并重點(diǎn)討論導(dǎo)航電子地圖的實(shí)現(xiàn)。利用GIS組件實(shí)現(xiàn)導(dǎo)航電子地圖和導(dǎo)航數(shù)據(jù)庫的傳統(tǒng)方發(fā)法,以EVC(嵌入式VC)為開發(fā)工具,設(shè)計(jì)了電子地圖矢量圖形系統(tǒng),并自主設(shè)計(jì)能滿足車載導(dǎo)航需要的基于文件系統(tǒng)的導(dǎo)航數(shù)據(jù)庫管理系統(tǒng)。實(shí)踐表明,本文建立的導(dǎo)航電子地圖系統(tǒng)具有較強(qiáng)的靈活性和可擴(kuò)展性,能方便移植于不同的軟硬件平臺(tái),運(yùn)行可靠,適合嵌入式系統(tǒng)應(yīng)用,有一定的應(yīng)用和推廣價(jià)值。
評(píng)論