嵌入式汽車(chē)導(dǎo)航系統(tǒng)的設(shè)計(jì)方案
車(chē)輛導(dǎo)航是一門(mén)融合了汽車(chē)、計(jì)算機(jī)、通信、交通、系統(tǒng)科學(xué)等領(lǐng)域技術(shù)的課題,一直是國(guó)內(nèi)外眾多高科技公司和高校研究的重點(diǎn)。
本文引用地址:http://m.butianyuan.cn/article/196305.htm對(duì)比而言,國(guó)內(nèi)的導(dǎo)航系統(tǒng)發(fā)展比較緩慢,在硬件制造、軟件功能、電子地圖等方面與國(guó)外都有較大差距,迄今為止,真正實(shí)用的高質(zhì)量導(dǎo)航產(chǎn)品寥寥無(wú)幾;而國(guó)外的導(dǎo)航系統(tǒng)雖然軟硬件水平先進(jìn),但受電子地圖數(shù)據(jù)庫(kù)等因素的制約,也沒(méi)有大規(guī)模進(jìn)入國(guó)內(nèi)市場(chǎng)。
近年來(lái),嵌入式系統(tǒng)憑借強(qiáng)大的功能、小巧的體積、極低的功耗等優(yōu)良特性得以突飛猛進(jìn)的發(fā)展,逐漸滲透到了生活的各個(gè)方面,為車(chē)輛導(dǎo)航系統(tǒng)的發(fā)展帶來(lái)了新的動(dòng)力。
本文介紹了一種嵌入式車(chē)輛導(dǎo)航系統(tǒng)的設(shè)計(jì)方案,采用基于X86架構(gòu)的ETX(EmbeddedTechnologyExtended)硬件平臺(tái)和VxWorks嵌入式操作系統(tǒng),在軟硬件方面都能較好的滿(mǎn)足導(dǎo)航系統(tǒng)的要求,具有良好的應(yīng)用前景。
1、車(chē)輛導(dǎo)航系統(tǒng)的組成
對(duì)各部分簡(jiǎn)要介紹如下:
路徑引導(dǎo):引導(dǎo)用戶(hù)沿著所規(guī)劃的路徑行駛;
人機(jī)接口:提供友好的界面允許用戶(hù)與系統(tǒng)進(jìn)行人機(jī)交互;
無(wú)線通訊模塊:允許用戶(hù)與監(jiān)控中心等部門(mén)實(shí)時(shí)交換信息;
電子地圖數(shù)據(jù)庫(kù):包含以預(yù)定格式存貯的數(shù)字地圖信息,是系統(tǒng)的軟件平臺(tái);
地圖匹配模塊:通過(guò)適當(dāng)?shù)钠ヅ浜妥R(shí)別過(guò)程來(lái)確定車(chē)輛在地圖上的位置;
路徑規(guī)劃:根據(jù)地圖數(shù)據(jù)庫(kù)及實(shí)時(shí)定位信息幫助駕駛員規(guī)劃路線;
定位模塊:通過(guò)GPS、慣性導(dǎo)航系統(tǒng)或移動(dòng)通信等方法對(duì)車(chē)輛進(jìn)行定位。
結(jié)合實(shí)際的軟硬件結(jié)構(gòu),本系統(tǒng)分成了四個(gè)層:最底層為硬件平臺(tái)層,包含了ETX嵌入式CPU模塊以及必要的傳感器/子模塊。
上面三層為軟件層,其中設(shè)備驅(qū)動(dòng)層在硬件平臺(tái)和操作系統(tǒng)之間充當(dāng)橋梁的作用,為上一層提供了與硬件設(shè)備無(wú)關(guān)的統(tǒng)一接口;VxWorks系統(tǒng)層提供庫(kù)函數(shù)、應(yīng)用程序接口、任務(wù)調(diào)度機(jī)制等為用戶(hù)程序提供支持;應(yīng)用軟件層是用戶(hù)自行開(kāi)發(fā)的程序,這里主要包括電子地圖和導(dǎo)航應(yīng)用程序,也是本系統(tǒng)的核心部分。下面從硬件和軟件兩方面來(lái)對(duì)系統(tǒng)進(jìn)行介紹。
2、系統(tǒng)的硬件結(jié)構(gòu)
(1)CPU模塊
車(chē)輛導(dǎo)航系統(tǒng)對(duì)硬件平臺(tái)的要求為:小型化、低功耗、接口豐富,并能適應(yīng)復(fù)雜的環(huán)境。本系統(tǒng)選用的ETX嵌入式CPU模塊能夠完全滿(mǎn)足這些要求。它采用了IntelPentiumIII處理器,使用ACPI,APM1.2電源管理減低了功耗,使系統(tǒng)無(wú)需風(fēng)扇裝置散熱。
此外它采用了VIAVT8603/VT82C686A芯片組、S3Savage4顯卡和VIA-enhanced聲卡,具有2個(gè)EIDE接口,支持UltraDMA/33,以及4個(gè)USB1.1,2個(gè)串口,1個(gè)EPP并口等。
ETX還提供了ISA總線接口和PCI總線接口,并具有看門(mén)狗,可以有效的解決死機(jī)問(wèn)題。背面的4×100pin總線定義了各種標(biāo)準(zhǔn)接口信號(hào),使用時(shí)只需在母板設(shè)計(jì)對(duì)應(yīng)的插座即可,開(kāi)發(fā)起來(lái)非常方便
(2)串口擴(kuò)展模塊
考慮到系統(tǒng)需要多個(gè)串口(與上位機(jī)通信、接收GPS信息、收發(fā)短消息、與語(yǔ)音模塊通信等),而ETX模塊只自帶了兩個(gè)串口,故采用了TL16C554進(jìn)行串口擴(kuò)展。
它內(nèi)部帶有16字節(jié)收發(fā)FIFO的通用異步收發(fā)器,具有獨(dú)立的收發(fā)控制電路控制4路標(biāo)準(zhǔn)的串行接口,通過(guò)軟件可分別設(shè)置每一路的中斷允許、波特率、數(shù)據(jù)幀格式等信息。
TL16C554與ETX的ISA總線相連,通過(guò)一片CPLD完成兩者時(shí)序的轉(zhuǎn)換。由于系統(tǒng)的中斷資源比較緊張,而且考慮到各子模塊的數(shù)據(jù)不是很頻繁,因此采用了4個(gè)擴(kuò)展串口共享中斷的方案。
(3)路徑引導(dǎo)模塊
本系統(tǒng)通過(guò)語(yǔ)音方式進(jìn)行路徑引導(dǎo),采用了安徽科大訊飛公司生產(chǎn)的XF-S3111中文語(yǔ)音合成芯片。它是利用嵌入式中文語(yǔ)音合成領(lǐng)域的最新研究成果——InterSound3.0中文語(yǔ)音合成系統(tǒng)設(shè)計(jì)的一款中文語(yǔ)音合成芯片,通過(guò)異步串口接收待合成的文本,直接合成為語(yǔ)音輸出,體積較小,使用方便,是一種完整的物美價(jià)廉的語(yǔ)音解決方案。
(4)無(wú)線通訊模塊
本系統(tǒng)的無(wú)線通訊部分采用了短消息方式,選用了深圳科靈通科技有限公司生產(chǎn)的短消息模塊DTR2000。它主要由西門(mén)子公司生產(chǎn)的工業(yè)級(jí)GSM模塊和一款高性能的處理器組成,可通過(guò)短消息功能實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳送的功能,且支持中文傳輸。其傳輸數(shù)據(jù)透明,協(xié)議簡(jiǎn)單,能夠方便的進(jìn)行模塊之間以及模塊與手機(jī)之間的通訊。
(5)其它
本系統(tǒng)采用了GPS定位方式,通過(guò)彩色LCD進(jìn)行電子地圖及定位點(diǎn)的顯示,并采用了可與ETX直接相連的CF卡作為存儲(chǔ)設(shè)備。
3、系統(tǒng)的軟件設(shè)計(jì)
由于車(chē)輛導(dǎo)航系統(tǒng)對(duì)多任務(wù)性、實(shí)時(shí)性、穩(wěn)定性的要求比較高,因此本系統(tǒng)采用了VxWorks嵌入式操作系統(tǒng)。它包括了進(jìn)程管理、存儲(chǔ)管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個(gè)部分,而且高度可裁減,只占用很小的存儲(chǔ)空間,保證了其能以較高的效率運(yùn)行于導(dǎo)航系統(tǒng)中。
VxWorks包括微內(nèi)核wind、高級(jí)的網(wǎng)絡(luò)支持、強(qiáng)有力的文件系統(tǒng)和I/O管理、C 和其他標(biāo)準(zhǔn)支持等核心功能。微內(nèi)核wind處于VxWorks操作系統(tǒng)的核心,支持所有的實(shí)時(shí)特征:快速任務(wù)切換、中斷支持、搶占式和時(shí)間片輪轉(zhuǎn)調(diào)度等,能夠很好的滿(mǎn)足導(dǎo)航系統(tǒng)對(duì)實(shí)時(shí)性和多任務(wù)的要求。
本系統(tǒng)的軟件功能分為VxWorks環(huán)境下的驅(qū)動(dòng)程序和應(yīng)用軟件兩部分。前者主要是對(duì)TL16C554驅(qū)動(dòng)的開(kāi)發(fā),而其它設(shè)備(如顯卡,網(wǎng)卡等)由于VxWorks自帶了X86的相關(guān)驅(qū)動(dòng)而不必涉及。TL16C554的驅(qū)動(dòng)開(kāi)發(fā)可參照VxWorks自帶的串行驅(qū)動(dòng)模板來(lái)進(jìn)行,這里只簡(jiǎn)單描述一下開(kāi)發(fā)步驟。
VxWorks系統(tǒng)的串行設(shè)備驅(qū)動(dòng)不是直接掛在IO系統(tǒng)中,而是由虛擬設(shè)備ttyDrv在中間充當(dāng)轉(zhuǎn)換層。因此驅(qū)動(dòng)需要根據(jù)系統(tǒng)接口實(shí)現(xiàn)驅(qū)動(dòng)并掛到ttyDrv上。
首先需要修改config.h、sysSerial.c等文件中的相關(guān)參數(shù),然后再編寫(xiě)具體的驅(qū)動(dòng)程序?qū)崿F(xiàn)設(shè)備的I/O操作,包括TL16C554的初始化函數(shù)、I/O控制函數(shù)、中斷處理函數(shù)等。
這樣,系統(tǒng)在初始化時(shí)就會(huì)將設(shè)備和驅(qū)動(dòng)程序安裝好,應(yīng)用程序就可以按照與設(shè)備無(wú)關(guān)的統(tǒng)一方式進(jìn)行I/O操作了。
應(yīng)用軟件開(kāi)發(fā)包括電子地圖和導(dǎo)航應(yīng)用程序設(shè)計(jì):
(1)電子地圖的設(shè)計(jì)
電子地圖的設(shè)計(jì)包括圖形界面和地圖數(shù)據(jù)庫(kù)兩部分。本系統(tǒng)通過(guò)VxWorks的WindML(WindRiverMultimediaLibrary)實(shí)現(xiàn)了電子地圖的圖形界面。
WindML主要是用來(lái)實(shí)現(xiàn)基本的圖形、視頻和音頻技術(shù)以及設(shè)計(jì)標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序框架,它提供了一個(gè)統(tǒng)一的圖形硬件接口以及處理輸入設(shè)備和輸入設(shè)備事件的能力。電子地圖數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)采用了Arc—Node結(jié)構(gòu)。
該結(jié)構(gòu)的基本原理是采用“以直代曲”的思想,即在允許的精度范圍內(nèi),通過(guò)加入多個(gè)節(jié)點(diǎn)將現(xiàn)實(shí)中的真實(shí)道路用一系列線段來(lái)模擬或近似表示,整個(gè)道路網(wǎng)絡(luò)就是由Arc(小段的線段)和Node(Arc的兩個(gè)端點(diǎn))組成,并具有明確的拓?fù)潢P(guān)系,可以實(shí)現(xiàn)路徑規(guī)劃。本系統(tǒng)實(shí)現(xiàn)了北京市四環(huán)以?xún)?nèi)的電子地圖,并實(shí)現(xiàn)了地圖瀏覽、地點(diǎn)查詢(xún)、路徑規(guī)劃等功能。
(2)導(dǎo)航應(yīng)用程序的設(shè)計(jì)
導(dǎo)航應(yīng)用程序包括了對(duì)電子地圖的操作、GPS定位、收發(fā)短消息、語(yǔ)音提示、人機(jī)接口等功能的實(shí)現(xiàn)。在設(shè)計(jì)中,根據(jù)VxWorks提供的良好的多任務(wù)特性,將不同的導(dǎo)航功能模塊分給了不同任務(wù)去執(zhí)行,通過(guò)任務(wù)間通信機(jī)制保證多任務(wù)的同步。其中系統(tǒng)的主任務(wù)負(fù)責(zé)實(shí)現(xiàn)硬件設(shè)備的初始化(如串口、看門(mén)狗的配置等)、電子地圖的初始化和首次顯示、發(fā)起子任務(wù)等功能。
主任務(wù)中發(fā)起了四個(gè)子任務(wù),分別負(fù)責(zé)響應(yīng)用戶(hù)的輸入、標(biāo)準(zhǔn)串口的數(shù)據(jù)輸入、ISA總線16C554的數(shù)據(jù)輸入以及實(shí)現(xiàn)路徑規(guī)劃算法。
前三個(gè)功能獨(dú)立出來(lái)是因?yàn)檫@些功能的觸發(fā)時(shí)間都是不確定的,需要單獨(dú)監(jiān)視;最后一個(gè)則因?yàn)樾枰^大的運(yùn)算量。這里只以接收串口數(shù)據(jù)的子任務(wù)為例進(jìn)行分析。
該任務(wù)需要監(jiān)視兩個(gè)串口的信息:GPS數(shù)據(jù)和從語(yǔ)音模塊返回的狀態(tài)信息。VxWorks將I/O系統(tǒng)設(shè)計(jì)成為與設(shè)備無(wú)關(guān)的接口,因此對(duì)串口的操作可以視為對(duì)文件的操作。
串口的打開(kāi),關(guān)閉和寫(xiě)操作均比較簡(jiǎn)單,而串口的讀操作采用了select函數(shù),利用其觸發(fā)機(jī)制阻塞任務(wù)。有數(shù)據(jù)到來(lái)時(shí),任務(wù)才會(huì)被激活并從串口讀取數(shù)據(jù),然后通過(guò)任務(wù)間通信機(jī)制,通知主任務(wù)進(jìn)行相應(yīng)的處理,如進(jìn)行地圖更新、輸出語(yǔ)音提示等操作。
4、結(jié)束語(yǔ)
經(jīng)過(guò)實(shí)驗(yàn),本系統(tǒng)能夠穩(wěn)定可靠的運(yùn)行。該系統(tǒng)展示了其GPS定位和路徑規(guī)劃的功能。本系統(tǒng)功能的實(shí)現(xiàn)證明了ETX平臺(tái)以及VxWorks操作系統(tǒng)的優(yōu)良性能,表明兩者的結(jié)合具有開(kāi)發(fā)簡(jiǎn)單、性能可靠等優(yōu)點(diǎn),有著良好的應(yīng)用前景。
評(píng)論