基于ETX與VxWorks的嵌入式車輛導(dǎo)航系統(tǒng)的設(shè)計(jì)
(4)無線通訊模塊
本系統(tǒng)的無線通訊部分采用了短消息方式,選用了深圳科靈通科技有限公司生產(chǎn)的短消息模塊DTR2000。它主要由西門子公司生產(chǎn)的工業(yè)級GSM模塊和一款高性能的處理器組成,可通過短消息功能實(shí)現(xiàn)無線數(shù)據(jù)傳送的功能,且支持中文傳輸。其傳輸數(shù)據(jù)透明,協(xié)議簡單,能夠方便的進(jìn)行模塊之間以及模塊與手機(jī)之間的通訊。
(5)其它
本系統(tǒng)采用了GPS定位方式,通過彩色LCD進(jìn)行電子地圖及定位點(diǎn)的顯示,并采用了可與ETX直接相連的CF卡作為存儲設(shè)備。
4 系統(tǒng)的軟件設(shè)計(jì)
由于車輛導(dǎo)航系統(tǒng)對多任務(wù)性、實(shí)時性、穩(wěn)定性的要求比較高,因此本系統(tǒng)采用了VxWorks嵌入式操作系統(tǒng)。它包括了進(jìn)程管理、存儲管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個部分,而且高度可裁減,只占用很小的存儲空間,保證了其能以較高的效率運(yùn)行于導(dǎo)航系統(tǒng)中。VxWorks包括微內(nèi)核wind、高級的網(wǎng)絡(luò)支持、強(qiáng)有力的文件系統(tǒng)和I/O管理、C++和其他標(biāo)準(zhǔn)支持等核心功能。微內(nèi)核wind處于VxWorks操作系統(tǒng)的核心,支持所有的實(shí)時特征:快速任務(wù)切換、中斷支持、搶占式和時間片輪轉(zhuǎn)調(diào)度等,能夠很好的滿足導(dǎo)航系統(tǒng)對實(shí)時性和多任務(wù)的要求。
本系統(tǒng)的軟件功能框圖如圖-3所示,分為VxWorks環(huán)境下的驅(qū)動程序和應(yīng)用軟件兩部分。前者主要是對TL16C554驅(qū)動的開發(fā),而其它設(shè)備(如顯卡,網(wǎng)卡等)由于VxWorks自帶了X86的相關(guān)驅(qū)動而不必涉及。TL16C554的驅(qū)動開發(fā)可參照VxWorks自帶的串行驅(qū)動模板來進(jìn)行,這里只簡單描述一下開發(fā)步驟。VxWorks系統(tǒng)的串行設(shè)備驅(qū)動不是直接掛在IO系統(tǒng)中,而是由虛擬設(shè)備ttyDrv在中間充當(dāng)轉(zhuǎn)換層。因此驅(qū)動需要根據(jù)系統(tǒng)接口實(shí)現(xiàn)驅(qū)動并掛到ttyDrv上。首先需要修改config.h、sysSerial.c等文件中的相關(guān)參數(shù),然后再編寫具體的驅(qū)動程序?qū)崿F(xiàn)設(shè)備的 I/O操作,包括TL16C554的初始化函數(shù)、I/O控制函數(shù)、中斷處理函數(shù)等。這樣,系統(tǒng)在初始化時就會將設(shè)備和驅(qū)動程序安裝好,應(yīng)用程序就可以按照與設(shè)備無關(guān)的統(tǒng)一方式進(jìn)行I/O操作了。
應(yīng)用軟件的開發(fā)包括電子地圖和導(dǎo)航應(yīng)用程序設(shè)計(jì)兩部分的設(shè)計(jì):
(1)電子地圖的設(shè)計(jì)
電子地圖的設(shè)計(jì)包括圖形界面和地圖數(shù)據(jù)庫兩部分。本系統(tǒng)通過VxWorks的WindML(Wind River Multimedia Library)實(shí)現(xiàn)了電子地圖的圖形界面。WindML主要是用來實(shí)現(xiàn)基本的圖形、視頻和音頻技術(shù)以及設(shè)計(jì)標(biāo)準(zhǔn)設(shè)備驅(qū)動程序框架,它提供了一個統(tǒng)一的圖形硬件接口以及處理輸入設(shè)備和輸入設(shè)備事件的能力。電子地圖數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)采用了Arc—Node結(jié)構(gòu)。該結(jié)構(gòu)的基本原理是采用“以直代曲”的思想,即在允許的精度范圍內(nèi),通過加入多個節(jié)點(diǎn)將現(xiàn)實(shí)中的真實(shí)道路用一系列線段來模擬或近似表示,整個道路網(wǎng)絡(luò)就是由Arc(小段的線段)和Node(Arc的兩個端點(diǎn))組成,并具有明確的拓?fù)潢P(guān)系,可以實(shí)現(xiàn)路徑規(guī)劃。本系統(tǒng)實(shí)現(xiàn)了北京市四環(huán)以內(nèi)的電子地圖,并實(shí)現(xiàn)了地圖瀏覽、地點(diǎn)查詢、路徑規(guī)劃等功能。
(2)導(dǎo)航應(yīng)用程序的設(shè)計(jì)
導(dǎo)航應(yīng)用程序包括了對電子地圖的操作、GPS定位、收發(fā)短消息、語音提示、人機(jī)接口等功能的實(shí)現(xiàn)。在設(shè)計(jì)中,根據(jù)VxWorks提供的良好的多任務(wù)特性,將不同的導(dǎo)航功能模塊分給了不同任務(wù)去執(zhí)行,通過任務(wù)間通信機(jī)制保證多任務(wù)的同步。其中系統(tǒng)的主任務(wù)負(fù)責(zé)實(shí)現(xiàn)硬件設(shè)備的初始化(如串口、看門狗的配置等)、電子地圖的初始化和首次顯示、發(fā)起子任務(wù)等功能,其流程圖可如圖-4所示。
主任務(wù)中發(fā)起了四個子任務(wù),分別負(fù)責(zé)響應(yīng)用戶的輸入、標(biāo)準(zhǔn)串口的數(shù)據(jù)輸入、ISA總線16C554的數(shù)據(jù)輸入以及實(shí)現(xiàn)路徑規(guī)劃算法。前三個功能獨(dú)立出來是因?yàn)檫@些功能的觸發(fā)時間都是不確定的,需要單獨(dú)監(jiān)視;最后一個則因?yàn)樾枰^大的運(yùn)算量。這里只以接收串口數(shù)據(jù)的子任務(wù)為例進(jìn)行分析。該任務(wù)需要監(jiān)視兩個串口的信息:GPS數(shù)據(jù)和從語音模塊返回的狀態(tài)信息。VxWorks將I/O系統(tǒng)設(shè)計(jì)成為與設(shè)備無關(guān)的接口,因此對串口的操作可以視為對文件的操作。串口的打開,關(guān)閉和寫操作均比較簡單,而串口的讀操作采用了select函數(shù),利用其觸發(fā)機(jī)制阻塞任務(wù)。有數(shù)據(jù)到來時,任務(wù)才會被激活并從串口讀取數(shù)據(jù),然后通過任務(wù)間通信機(jī)制,通知主任務(wù)進(jìn)行相應(yīng)的處理,如進(jìn)行地圖更新、輸出語音提示等操作。
5 結(jié)束語
經(jīng)過實(shí)驗(yàn),本系統(tǒng)能夠穩(wěn)定可靠的運(yùn)行。系統(tǒng)的實(shí)驗(yàn)結(jié)果可如圖-5所示,展示了其GPS定位和路徑規(guī)劃的功能。本系統(tǒng)功能的實(shí)現(xiàn)證明了ETX平臺以及VxWorks操作系統(tǒng)的優(yōu)良性能,表明兩者的結(jié)合具有開發(fā)簡單、性能可靠等優(yōu)點(diǎn),有著良好的應(yīng)用前景。
參 考 文 獻(xiàn)
[1] 張其善等. 智能車輛定位導(dǎo)航系統(tǒng)及應(yīng)用. 北京:科學(xué)出版社,2002
[2] 探矽工作室. 嵌入式系統(tǒng)開發(fā)圣經(jīng). 北京:中國鐵道出版社,2003
[3] 陳智育等. VxWorks程序開發(fā)實(shí)踐. 北京:人民郵電出版社,2004
[4] 何江水等. VxWorks漢字的顯示支持. 微計(jì)算機(jī)信息,2005年第五期
評論