基于嵌入式Linux系統(tǒng)的導(dǎo)航軟件設(shè)計思路
掃描二維碼
隨時隨地手機(jī)看文章
1 引言
隨著汽車等各種車輛交通工具的普及,車輛導(dǎo)航設(shè)備的需求也變得日益旺盛。作為車載設(shè)備。不僅要有可靠的性能,而且需要具有便攜、低功耗和低價格等特點。而采用基于ARM微處理器的嵌入式系統(tǒng)與GPS模塊相配合的GPS導(dǎo)航終端機(jī)的設(shè)計方案,可以很好的滿足這一系統(tǒng)需求。為此,本文介紹了一種利用ARM9開發(fā)板和GPS模塊實現(xiàn)GPS導(dǎo)航功能的終端機(jī)的軟硬件結(jié)構(gòu)和設(shè)計方法。
2 GPS導(dǎo)航系統(tǒng)結(jié)構(gòu)
本文所介紹的GPS全球定位導(dǎo)航系統(tǒng)按功能可分為嵌入式主控模塊、GPS模塊、顯示模塊、擴(kuò)展模塊及供電模塊等五大部分。
嵌入式主控模塊基于S3C2440處理器,主要負(fù)責(zé)對GPS導(dǎo)航模塊數(shù)據(jù)的響應(yīng)、處理和控制。在硬件上,主控模塊就是一個嵌入式開發(fā)板,包括觸摸LCD接口電路、SD卡接口電路、FLASH、SDRAM等。而在軟件上,主控模塊上應(yīng)當(dāng)運(yùn)行嵌入式Linux系統(tǒng)。而嵌入式Linux操作系統(tǒng)的主要作用是管理程序模塊進(jìn)程并調(diào)度進(jìn)程等。
GPS模塊主要用于接收導(dǎo)航衛(wèi)星數(shù)據(jù),并以特定的格式發(fā)送給主控模塊。顯示模塊可選用3.5寸TFT帶觸摸屏LCD,主要用于與用戶進(jìn)行交互。擴(kuò)展模塊主要指的是SD卡。供電模塊主要為系統(tǒng)正常工作提供電源。圖1所示是該系統(tǒng)的結(jié)構(gòu)圖。
3 GPS數(shù)據(jù)的提取
GR-87型GPS模塊的輸出語句遵循NMEA-0183標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)的語句都是以“$”開始,以
[!--empirenews.page--]
4 導(dǎo)航地圖的實現(xiàn)
在獲得了經(jīng)緯度等定位信息之后,還需要將它們直觀的顯示在電子地圖或其它顯示媒體上,這樣才能真正起到導(dǎo)航的作用。要想將其準(zhǔn)確的顯示在電子地圖上,就需要用一定的算法進(jìn)行轉(zhuǎn)化,即地圖匹配算法。
一般來說,地圖匹配的基本思路是通過車輛的GPS軌跡與地圖上矢量化的路段對象進(jìn)行匹配,從而尋找當(dāng)前所行進(jìn)的道路,并將當(dāng)前的GPS定位點投影到道路上。
地圖匹配的關(guān)鍵是確定匹配點,設(shè)計時可以用投影法來尋找匹配點。投影法的基本思路是依據(jù)點到直線的距離來確定最小的值為投影的匹配點,并用最鄰近法進(jìn)行處理,然后通過設(shè)置閾值來濾掉錯誤匹配點,得到初步結(jié)果,從而完成點到線的匹配。
具體的實現(xiàn)方法是先預(yù)處理道路層,再將道路轉(zhuǎn)換為折線段,找到當(dāng)前道路,然后把當(dāng)前定位點投影到道路上,再找到離定位點最近的公路圖層中的一條線段,之后再計算得到點到線上距離最短的點,最后查找各層中在誤差范圍之內(nèi)的道路。
其算法的基本流程代碼如下:
導(dǎo)航地圖的實現(xiàn)可以采用嵌入式圖形界面工具Qt embedded來實現(xiàn)。該圖形界面為人機(jī)交互界面,用戶可以通過屏幕來了解導(dǎo)航信息,也可以直接操作觸摸屏來操作系統(tǒng),如地圖的縮放、查看定位信息等。
5 結(jié)束語
由于ARM處理器具有低功耗、高性能等特點,因此可以廣泛用于各種便攜式電子產(chǎn)品中。本設(shè)計在現(xiàn)有的電子產(chǎn)品基礎(chǔ)上,通過外接GPS模塊來擴(kuò)展GPS導(dǎo)航功能,可為用戶在節(jié)省費(fèi)用的同時又不損失太多的便攜性。為此,作者希望使用ARM開發(fā)板和GPS模塊相結(jié)合來實現(xiàn)GPS導(dǎo)航功能的方法,可以為智能設(shè)備擴(kuò)展GPS功能提供一個參考。