摘 要:首先分析車載導(dǎo)航設(shè)備的核心功能,說明低成本實現(xiàn)方案的可行性。在此基礎(chǔ)上,給出低成本車載導(dǎo)航設(shè)備的硬件框架,并對關(guān)鍵部件進(jìn)行功能闡述。而后從導(dǎo)航原理、嵌入式GIS、圖形開發(fā)、編碼規(guī)范、程序運行、內(nèi)存使用幾個方面論述設(shè)備的軟件系統(tǒng)。接著,通過實驗證明該低成本車載導(dǎo)航設(shè)備較好地實現(xiàn)了車載導(dǎo)航設(shè)備的核心功能。最后,通過與高檔車載導(dǎo)航設(shè)備的成本對比,體現(xiàn)了該設(shè)備的成本低。
關(guān)鍵詞:車載導(dǎo)航設(shè)備;全球定位系統(tǒng);低成本;嵌入式地理信息系統(tǒng);編碼規(guī)范
中圖法分類號:TP39文獻(xiàn)標(biāo)識碼:A
文章編號:1001—3695(2007)02—0249—03
自從1995年GPS (Global Positioning System)第一次進(jìn)入民用市場,在其后的十年內(nèi)取得了前所未有的發(fā)展,并成功地運用于航空、航海、車輛導(dǎo)航等諸多領(lǐng)域[1]。各國車載導(dǎo)航設(shè)備的相繼推出有利地證明了GPS在車輛導(dǎo)航領(lǐng)域的成功運用。中國衛(wèi)通作為中國六大基礎(chǔ)電信運營商之一,率先殺入GPS領(lǐng)域,在2005年推出自主研發(fā)的GPS車載導(dǎo)航設(shè)備。該產(chǎn)品集衛(wèi)星定位、地理信息系統(tǒng)、多媒體電腦于一體,提供包括實時位置確定、地圖信息查詢、路徑規(guī)劃、語音引導(dǎo)、MP3播放、行程回放等功能[2]。然而產(chǎn)品的硬件結(jié)構(gòu)追求大而全,采用高檔的主控MCU,使用硬盤作為數(shù)據(jù)存儲載體,支持所有常用的類PC外設(shè);軟件采用付費的微軟WinCE或同類型的嵌入式操作系統(tǒng)。硬件和軟件兩方面走高端路線導(dǎo)致產(chǎn)品成本過高,在一定程度上阻礙了車載導(dǎo)航設(shè)備大眾化的發(fā)展進(jìn)程。
上述車載導(dǎo)航設(shè)備成本過高的主要原因是:在產(chǎn)品設(shè)計思路中過多地考慮多媒體因素、地圖顯示的圖形圖像因素、大容量地圖存儲因素、導(dǎo)航計算速度因素,一味地從硬件方面尋找解決方案,而忽視了軟硬件綜合解決方案的研究。
車載導(dǎo)航設(shè)備的核心功能,主要包括導(dǎo)航計算、地圖顯示、地圖存儲、語音報讀、GPS信號接收處理、無線通信等。而多媒體集成、大容量電子地圖信息并不是使用者最關(guān)心的主要問題。基于這種分析,可將多媒體集成設(shè)計為一個可選部件,在車載導(dǎo)航設(shè)備上留有軟硬件集成接口,從而簡化車載導(dǎo)航設(shè)備的硬件結(jié)構(gòu),降低其軟件配置。地圖的顯示與存儲和導(dǎo)航計算速度等問題,通過軟硬件綜合考慮可以得到合理解決。這種思路使得開發(fā)低成本的車載導(dǎo)航設(shè)備成為可能。
本文以滿足車載導(dǎo)航設(shè)備核心功能為出發(fā)點,綜合考慮軟硬件解決方法,研究實現(xiàn)了一種低成本的車載導(dǎo)航設(shè)備。
1 硬件框架
本文提出的低成本車載導(dǎo)航設(shè)備的硬件框架如圖1所示。圖1中給出了設(shè)備印刷電路板上的各重要功能器件及其與主控MCU (微處理器)的連接,以及各外圍配套組件與板上功能器件的連接。
(1)MCU。導(dǎo)航設(shè)備板上有兩塊MCU芯片,一塊是主控芯片,另一塊是防盜器控制芯片Atmel Mega8[3]。
主控芯片即設(shè)備硬件框架中處于中央的MCU,它與其他的功能器件和防盜器控制芯片相連。這里的主控MCU采用專門設(shè)計的TMLH918,主頻60MHz,實際工作頻率30MHz。
主控MCU與Mega8采用DSA(Data Strobe Acknowledge)三線協(xié)議[4]通信,兩者之間每交換1bit數(shù)據(jù)都進(jìn)行一次完整的握手認(rèn)證過程,保證了信息交換的高完整性和高可靠性。不僅如此,兩塊控制芯片之間進(jìn)行全雙工的信息交換,即兩者都有權(quán)發(fā)送或接收數(shù)據(jù)。
Mega8控制防盜器完成對車輛斷油、斷電等操作,同時也將車輛的防盜狀態(tài)傳送給主控MCU,由主控MCU控制GSM模塊通過無線網(wǎng)絡(luò)將信息傳送至車主或授權(quán)用戶的手機(jī)中。
(2)GPS。GPS由美國發(fā)射的24顆衛(wèi)星組成,其中每相鄰三顆衛(wèi)星組合準(zhǔn)確定位一個位置。GPS信號的接收由專門的接收芯片完成。導(dǎo)航設(shè)備板上的GPS信號接收芯片采用HiMARK公司的RX3650[5,6],實現(xiàn)在低成本、低功耗的條件下高效接收GPS信號,并轉(zhuǎn)換為標(biāo)準(zhǔn)的NMEA—0183格式信息,以SGPRMC開頭。
(3)語音。語音報讀采用美國Winbond電子的WTS701芯片[7],實現(xiàn)TTS (Text-To-Speech)處理。首先將文本信息通過WTS701芯片轉(zhuǎn)換為語音信號,而后經(jīng)功率放大器LM4863 (Am)放大[8],最后通過揚聲器(Speaker)進(jìn)行報讀。(4)存儲。設(shè)備板上的存儲器分為四類,即地圖存儲器(NANDFlash)、程序運行存儲器(NORFlash)、用戶數(shù)據(jù)存儲器(E2PROM)和動態(tài)隨機(jī)存儲器(SDRAM)。NANDFlash采用三星公司的產(chǎn)品,支持32MB,64MB,128MB,256MB四種存儲容量[9—12];NORFlash采用Fujitsu的MBM29LV400BC[13],容量為512KB;E2PROM采用Atmel的AT25080,容量為8KB[14],通過I2C總線[15]與主控MCU相連,當(dāng)需要進(jìn)行車輛行駛記錄時使用鐵電存儲器(FRAM)代替E2PROM,因為其具有更高的存取速度、更安全的數(shù)據(jù)保護(hù)、更長的掉電數(shù)據(jù)保存時間(十年以上)和更低的讀寫功耗;SDRAM采用三星公司的K4S641632H,容量為8MB[16]。
(5)視頻。MCU通過VGA(Video Graphics Array)進(jìn)行視頻輸出,輸出分為兩路,一路輸出數(shù)字信號,在LCD(Liquid Crystal Display)上顯示圖像;另一路獲取VGA處理的數(shù)字視頻信號后通過DAC(Digital-to-Analog Converter)轉(zhuǎn)換為模擬視頻信號,在模擬顯示終端如電視機(jī)上顯示圖像。這里支持兩種視頻輸出,主要目的是便于在大屏幕電視機(jī)上顯示一些調(diào)試信息,最終產(chǎn)品全部采用LCD作為顯示終端。
(6)通信。導(dǎo)航設(shè)備板上的通信方式分為兩種,即RDS (Radio Data System)和SMS (Short Message Service)。FM調(diào)頻信號經(jīng)RDS處理后,轉(zhuǎn)換為數(shù)字信息,由MCU控制顯示在LCD上。GSM (Global System for Mobile Communications)模塊通過短信息與車主或授權(quán)用戶通信,接收控制命令或反饋車輛當(dāng)前狀況。
(7)Reset。為了防止主控MCU在工作時進(jìn)入死鎖狀態(tài),設(shè)備板上使用看門狗(Watchdog)[17]定時監(jiān)控主控MCU,當(dāng)發(fā)現(xiàn)其處于死鎖狀態(tài)時,對主控MCU進(jìn)行Reset。
(8)遙控。使用者可以通過遙控器將控制指令碼經(jīng)IR傳給主控MCU,而后主控MCU根據(jù)指令碼執(zhí)行相應(yīng)的操作。
2 軟件關(guān)鍵技術(shù)
車載導(dǎo)航設(shè)備的軟件系統(tǒng)主體上由嵌入式操作系統(tǒng)、各硬件器件驅(qū)動程序和應(yīng)用系統(tǒng)三部分組成。本文提出的低成本車載導(dǎo)航設(shè)備使用主控MCU配套的一個文件系統(tǒng)作為底層操作系統(tǒng),設(shè)備板上各器件的驅(qū)動程序由廠家提供,應(yīng)用系統(tǒng)自主開發(fā)。針對應(yīng)用系統(tǒng)開發(fā)中出現(xiàn)的各類問題,結(jié)合本設(shè)備的硬件配置,從導(dǎo)航原理、嵌入式GIS、圖形開發(fā)、編碼規(guī)范、程序運行、內(nèi)存使用六個方面加以重點闡述。
(1)導(dǎo)航原理。導(dǎo)航是車載導(dǎo)航設(shè)備必須提供的基本功能,也是最為核心的功能。導(dǎo)航方式包括距離最短路徑、時間最短路徑、路況最佳路徑、實時暢通路徑、經(jīng)濟(jì)最優(yōu)路徑等。其中,路況最佳路徑指道路狀況最好的一條行車路線,實時暢通路徑指根據(jù)實時交通信息計算出的當(dāng)前時刻暢通的一條行車路線,經(jīng)濟(jì)最優(yōu)路徑指總體交通花費最低的一條行車路線。
距離最短路徑由圖論中的Dijkstra算法或運籌學(xué)中的動態(tài)規(guī)劃方法計算所得[18],在實際處理中還衍生出帶約束條件的最短路徑算法[19]。其他幾種導(dǎo)航方式不涉及經(jīng)典的數(shù)學(xué)算法,由統(tǒng)計數(shù)據(jù)和存儲數(shù)據(jù)運算得出。
(2)嵌入式GIS。嵌入式GIS不同于普通GIS,主要區(qū)別在于電子地圖的存儲格式。包含相同信息量的前提條件下,存儲格式的不同,直接導(dǎo)致地圖尺寸的巨大差異。
本文實現(xiàn)的車載導(dǎo)航設(shè)備使用NANDFlash存儲數(shù)字地圖,標(biāo)準(zhǔn)容量為128MB,保存中國各主要省份的地圖。目前支持兩種格式的地圖,即自制電子地圖和國家標(biāo)準(zhǔn)電子地圖。
自制地圖由實地采集的地理數(shù)據(jù)通過專門的加工軟件制作而成。相比國家標(biāo)準(zhǔn)電子地圖,自制電子地圖具有信息量豐富、實時性強、可控性高、尺寸小的特點,但缺乏權(quán)威導(dǎo)向性。考慮到自制電子地圖與國家電子地圖的優(yōu)勢互補,筆者實現(xiàn)了兩者之間的相互轉(zhuǎn)換。
(3)圖形開發(fā)。由于本文實現(xiàn)的車載導(dǎo)航設(shè)備的軟件系統(tǒng)為一個文件系統(tǒng),并非具備強大圖形處理能力的嵌入式操作系統(tǒng),如WinCE,因而筆者開發(fā)了一套基本圖元庫,包括點、線、三角形、圓形、矩形及各種不規(guī)則圖形。此外還將16點陣、24點陣、32點陣這三種典型的字庫加入到應(yīng)用系統(tǒng)中,支持所有的ASCII碼和常用的兩萬多個漢字。
圖形顯示分為兩個圖層,即Graph層和OSD(On Screen Display)層,又稱為地圖層和導(dǎo)航層。汽車導(dǎo)航器和導(dǎo)航牽引線在導(dǎo)航層,其他各種圖形都在地圖層。地圖層的分辨率為704×576,支持16位真彩色,導(dǎo)航層的分辨率為352×288,支持黑白兩種顏色。
(4)編碼規(guī)范。嵌入式程序與普通PC程序或服務(wù)器程序在諸多方面存在較大的不同,這主要歸因于嵌入式硬件設(shè)備的功能約束。嵌入式硬件設(shè)備的功能約束主要來自于DRAM(動態(tài)隨機(jī)訪問存儲器)、SRAM(靜態(tài)隨機(jī)訪問存儲器)、編譯器限制的語法規(guī)范、ROM(只讀存儲器)、NANDFlash和E2PROM(電擦除可編程只讀存儲器)等。DRAM和SRAM分為片內(nèi)和片外兩種,一些控制芯片遵循SoC(System on Chip)設(shè)計規(guī)范,在芯片內(nèi)部包含DRAM和SRAM;當(dāng)芯片內(nèi)的DRAM和SRAM不能滿足系統(tǒng)需要時,則在設(shè)備板上添加片外DRAM和SRAM。編譯器限制的語法規(guī)范涉及到諸多方面,如無符號整數(shù)取邏輯非不被支持,這種規(guī)范依具體的編譯器不同而不同,應(yīng)具體問題具體分析。ROM中存放二進(jìn)制目標(biāo)代碼,代碼中包含了一定尺寸的常量數(shù)據(jù),ROM的存儲空間尺寸決定部分常量數(shù)據(jù)的存放問題,在ROM中存放常量數(shù)據(jù)可以提高程序運行效率,但必須協(xié)調(diào)好常量數(shù)據(jù)尺寸與ROM存儲空間尺寸之間的矛盾問題。NANDFlash的讀寫速度較慢,且數(shù)據(jù)分塊存儲,以塊為單位更新數(shù)據(jù),因此宜將地圖類的大尺寸整塊更新數(shù)據(jù)存儲在NANDFlash中。E2PROM存儲空間小,但讀寫速度快,擦寫方式靈活,支持隨機(jī)擦寫,且支持掉電保護(hù),缺點是一旦器件損壞無法恢復(fù)保存數(shù)據(jù)。
本文實現(xiàn)車載導(dǎo)航設(shè)備中的編碼問題充分考慮了上述各個方面的功能約束,針對設(shè)備板的實際約束進(jìn)行規(guī)范的編碼。如由于沒有外部SRAM,而主控芯片的片內(nèi)SRAM僅24KB,導(dǎo)致可用的堆棧空間很小,因此程序中函數(shù)多無形式參數(shù),無返回值,用運行時內(nèi)存全局變量代替;ROM的存儲空間尺寸為512KB,而編譯后的系統(tǒng)二進(jìn)制目標(biāo)代碼尺寸為384KB,考慮到為ROM留有一定的擴(kuò)展空間,并未將常用2萬多個漢字的拼音庫常量加入到代碼中,而是存儲在NANDFlash中,系統(tǒng)運行時將拼音庫常量調(diào)入外部DRAM中使用;將一些用戶設(shè)置信息存儲在E2PROM中,可以快速完成用戶信息的讀取與設(shè)置工作。
(5)程序運行。嵌入式系統(tǒng)的程序運行方式大體上分為三種,即獨立型、主從型和并列型。獨立型指由主控MCU直接通過數(shù)據(jù)總線和地址總線控制程序存儲器中的程序運行,或控制片內(nèi)Flash中的程序運行;主從型指從設(shè)備程序運行受主控程序的控制,一般主控程序驅(qū)動各硬件器件工作,引導(dǎo)受控程序啟動運行;并列型指設(shè)備板上同時有兩個或多個程序運行,各個程序之間無相互控制的關(guān)系。
本文實現(xiàn)的車載導(dǎo)航設(shè)備板上有兩塊MCU,相應(yīng)地有兩個運行程序。主控MCU的程序存儲在NORFlash中,并在NORFlash中運行。Mega8的程序存儲在芯片內(nèi)的Flash 中,在片內(nèi)運行。兩個運行程序是主從關(guān)系,主控MCU的程序控制Mega8的程序運行。由于未使用大型的嵌入式操作系統(tǒng),如Linux,WinCE等,程序并未移到外部DRAM中運行以提高運行速度。
(6)內(nèi)存使用。嵌入式系統(tǒng)的內(nèi)存使用與普通PC程序相比,可控性大為提高,同時也帶來了較大的編程復(fù)雜性。
嵌入式系統(tǒng)的內(nèi)存由開發(fā)者統(tǒng)一使用,內(nèi)存中的每個存儲單元,都被嚴(yán)格控制,即使是運行如 Linux,WinCE這類大型的操作系統(tǒng),運行時的內(nèi)存分配也是由開發(fā)者通過程序事先進(jìn)行處理,而不是由操作系統(tǒng)自行分配。
本文實現(xiàn)的車載導(dǎo)航設(shè)備配備8MB的外部DRAM,用來存放主程序中使用的所有運行時變量和緩沖區(qū)。這些變量和緩沖區(qū)控制程序流程、標(biāo)志函數(shù)執(zhí)行結(jié)果、控制導(dǎo)航菜單設(shè)置、執(zhí)行函數(shù)間的值傳遞、完成函數(shù)調(diào)度等。所有內(nèi)存中的運行時變量和緩沖區(qū)由程序統(tǒng)一分配唯一的地址空間。
綜合上述硬件框架和軟件關(guān)鍵技術(shù)的闡述,本文實現(xiàn)的車載導(dǎo)航設(shè)備完全滿足車載導(dǎo)航設(shè)備核心功能的要求。
3 設(shè)備實驗
本文實現(xiàn)的車載導(dǎo)航設(shè)備配備廣東省的電子地圖,在廣州、深圳等地進(jìn)行了實際行車試驗。實驗結(jié)果表明,即使在廣州這種交通狀況極其復(fù)雜的環(huán)境下,導(dǎo)航設(shè)備仍然較好地完成了應(yīng)具備的核心功能。行車過程中,地圖顯示與行車路線始終保持吻合,能進(jìn)行正確的目的地導(dǎo)航,伴隨配套的語音報讀,且無線通信正常。
4 低成本
表1給出了高檔車載導(dǎo)航設(shè)備與本文實現(xiàn)的車載導(dǎo)航設(shè)備之間的主要價格對比。從總價上看,本文實現(xiàn)設(shè)備的成本低是毋庸質(zhì)疑的。而高檔設(shè)備與本文設(shè)備的主要不同之處,體現(xiàn)在地圖存儲介質(zhì)、主控MCU、嵌入式操作系統(tǒng)三個方面。高檔設(shè)備使用硬盤作為地圖存儲介質(zhì),而本文設(shè)備使用NANDFlash作為地圖存儲介質(zhì),兩種存儲介質(zhì)的價格差異很大。表1中的數(shù)據(jù)分別代表20GB—40GB的硬盤價格和1GB的NANDFlash價格。高檔設(shè)備多采用主流ARM9之類的MCU,而本文設(shè)備采用專用的TMLH918,導(dǎo)致如表1所示的價格差異。高檔設(shè)備為了獲得豐富的圖形開發(fā)基礎(chǔ)和快速的軟件開發(fā)環(huán)境,多采用WinCE之類的付費嵌入式操作系統(tǒng),每出售一臺設(shè)備需要支付64元左右的操作系統(tǒng)使用費,而本文設(shè)備采用MCU配套的文件系統(tǒng),省去了此項費用。此外,高檔設(shè)備為了增強產(chǎn)品的娛樂性,集成了大量的多媒體功能,如對MP3,MPEG—4的支持,這也使得硬件成本和軟件開發(fā)費用大為增加。
5 總結(jié)
在GPS蓬勃發(fā)展的當(dāng)今時代,各類基于GPS的產(chǎn)品應(yīng)運而生,其中典型的當(dāng)屬車載導(dǎo)航設(shè)備。然而,導(dǎo)航產(chǎn)品的高檔路線限制了它的大眾化發(fā)展進(jìn)程。本文在綜合考慮軟硬件解決方法的基礎(chǔ)上,研究實現(xiàn)了一種低成本的車載導(dǎo)航設(shè)備,為解決導(dǎo)航產(chǎn)品大眾化發(fā)展困難的問題提供一種切實可行的思路。下一步的工作重點在于,通過用戶的使用反饋,不斷完善本設(shè)備的硬件框架和軟件系統(tǒng),在保持低成本特色的前提下進(jìn)行產(chǎn)品升級,修正目前產(chǎn)品中存在的問題,沿著“使用—改進(jìn)—再使用—再改進(jìn)”的正確路線使產(chǎn)品最終達(dá)到穩(wěn)定,為用戶提供最優(yōu)質(zhì)的服務(wù)。
本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。