嵌入式GPS導(dǎo)航系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著科技化的角度持續(xù)加快,迫使有越來(lái)越多的人必須在緊湊的時(shí)間及地點(diǎn)進(jìn)行工作,而當(dāng)城市化的速度不斷地膨脹后,不僅導(dǎo)致交通網(wǎng)絡(luò)日益復(fù)雜,人們必要的移動(dòng)性也有越來(lái)越頻繁的趨勢(shì)。
使得每個(gè)人對(duì)空間信息有了更多的依賴(lài),使得人們對(duì)于「我身處在何方?」、「前往的目的地?」、「如何前往?」等問(wèn)題,存在著前所未有的需求性。因此,以嵌入式系統(tǒng)為主要平臺(tái)的數(shù)碼地理整合性應(yīng)用與其因應(yīng)方案,也就是手持式、車(chē)載GPS全球衛(wèi)星導(dǎo)航系統(tǒng),便可解決對(duì)此人們急迫的需求性。
圖說(shuō):附加功能仍持續(xù)呈現(xiàn)高度擴(kuò)張,過(guò)去車(chē)用導(dǎo)航系統(tǒng)中不需要AM/FM收音機(jī)、DVD/VCD影音系統(tǒng)、CD/MP3播放器,又或者兼具語(yǔ)音導(dǎo)航的音效系統(tǒng)、擁有存放地圖的存儲(chǔ)器等諸多功能性。
嵌入式GPS導(dǎo)航系統(tǒng) 體現(xiàn)最佳化導(dǎo)航系統(tǒng)
今日GPS衛(wèi)星導(dǎo)航定位的應(yīng)用已愈來(lái)愈普及,但大多數(shù)人對(duì)它的認(rèn)識(shí)仍限定在行車(chē)導(dǎo)航的用途之上,不過(guò)針對(duì)廣泛的應(yīng)用市場(chǎng),車(chē)載式GPS的應(yīng)用只是開(kāi)端而已,其實(shí)它在國(guó)防、地理信息和建筑工程等領(lǐng)域已是不可或缺的重要技術(shù),而下一步,GPS將走入每個(gè)人的生活,成為人手一支的GPS手機(jī)或手持導(dǎo)航設(shè)備(PND)。
這可以由嵌入式GPS導(dǎo)航系統(tǒng)的核心技術(shù)來(lái)看,以三星ARM9系列中的16/32位RISC處理器S3C2410A芯片為例,該芯片強(qiáng)大的實(shí)時(shí)處理能力和豐富的外圍界面非常適合嵌入式系統(tǒng)的開(kāi)發(fā),而該系統(tǒng)就是基于該芯片的這些特點(diǎn)而設(shè)計(jì)的。該系統(tǒng)以S3C2410A微處理器為核心,與2片32M的SDRAM(HY57V561620CT)和64M的NAND Flash(K9F1208U0B)整合為最小的一套系統(tǒng);另外,就是在系統(tǒng)外部加裝可用于收GPS信號(hào)的GPS模塊,用于顯示的液晶面板,以及UDA1341TS的語(yǔ)音芯片系統(tǒng)。
建立系統(tǒng)平臺(tái)完善架構(gòu) 兼容性是主要目標(biāo)
主要來(lái)說(shuō),其系統(tǒng)平臺(tái)架構(gòu)的建立,可細(xì)分為2個(gè)主要部分,也就是主控的計(jì)算機(jī)主機(jī)的操作系統(tǒng)的選擇和交叉編輯設(shè)備與工具鏈的建立。在計(jì)算機(jī)的主機(jī)上,其操作系統(tǒng)可以有多種選擇,包括:安裝Linux發(fā)行版、在Windows下使用虛擬機(jī)或者使用Cygwin。由于現(xiàn)今Microsoft Windows統(tǒng)領(lǐng)著全球超過(guò)半數(shù)的計(jì)算機(jī)系統(tǒng),而許多開(kāi)發(fā)者開(kāi)始使用虛擬機(jī)等手段來(lái)實(shí)現(xiàn)在Windows平臺(tái)下進(jìn)行嵌入式Linux的開(kāi)發(fā),但這些方法都會(huì)或多或少地帶來(lái)些兼容性問(wèn)題。開(kāi)發(fā)嵌入式Linux最好的選擇便是在計(jì)算機(jī)主機(jī)上安裝Linux發(fā)行版,因?yàn)檫@樣與Windows毫無(wú)關(guān)聯(lián),可占有系統(tǒng)全部資源,擁有系統(tǒng)最高性能和最佳的兼容性。
其次,就是在建立交叉式編輯設(shè)備的工具鏈方面,必須注意一點(diǎn)就是在計(jì)算機(jī)運(yùn)行系統(tǒng)的選擇?,F(xiàn)在可供選擇的運(yùn)行系統(tǒng)有g(shù)libc、uClibc以及newlib等。glibc是由GNU項(xiàng)目提供的標(biāo)準(zhǔn)系統(tǒng),因?yàn)橹饕轻槍?duì)計(jì)算機(jī)而應(yīng)用設(shè)計(jì),主體架構(gòu)較為巨大,不過(guò)卻能供應(yīng)最佳的兼容性。如果一般的嵌入式開(kāi)發(fā)可選用uClibc,而uClibc原本就是uCLinux開(kāi)發(fā)過(guò)程中的一個(gè)C語(yǔ)言庫(kù),現(xiàn)已經(jīng)獨(dú)立于uCLinux項(xiàng)目并且進(jìn)一步完善。它對(duì)glibc的大部分函數(shù)進(jìn)行了重寫(xiě),并且目標(biāo)就定位于嵌入式,所以其相對(duì)glibc而言要小巧很多。此外由于它的函數(shù)與glibc保持一致,這樣很多原本基于glibc開(kāi)發(fā)的軟件基本不需要更改,便能使uClibc在編輯的過(guò)程中獲得最佳化,使得在嵌入式系統(tǒng)上占用的存儲(chǔ)器和磁盤(pán)空間更少,不過(guò)由于不是標(biāo)準(zhǔn)的運(yùn)行系統(tǒng),因此uClibc擁有著一定的兼容性問(wèn)題。
圖說(shuō):使用在不同設(shè)備上的GPS導(dǎo)航設(shè)備,比方說(shuō),手持式導(dǎo)航設(shè)備或者是汽車(chē)上所嵌入式的GPS導(dǎo)航架構(gòu),這都是要選擇適當(dāng)?shù)挠布軜?gòu)之前,必須要先行確認(rèn)的使用范疇及定位方向。(www.u-blox.com)
GPS導(dǎo)航應(yīng)用軟件 關(guān)乎導(dǎo)航系統(tǒng)優(yōu)劣
基本上,軟件功能也是決定導(dǎo)航系統(tǒng)好壞的重要關(guān)鍵之一;首先是操作系統(tǒng)的選擇,由于是車(chē)載嵌入式系統(tǒng),車(chē)廠(chǎng)對(duì)內(nèi)裝設(shè)備的可靠性要求遠(yuǎn)高于消費(fèi)性或家用等設(shè)備系統(tǒng),而作為導(dǎo)航系統(tǒng)的計(jì)算機(jī)主要機(jī)體的操作系統(tǒng),以及分別使用buildroot和crosstool建立兩條采用不同的運(yùn)行系統(tǒng)的交叉編輯設(shè)備工具鏈。由于系統(tǒng)開(kāi)發(fā)需要使用U-Boot的TFTP功能下載Linux內(nèi)核,以及Linux的NFS網(wǎng)絡(luò)文件系統(tǒng),所以首先需要對(duì)Fedora Core 5設(shè)置TFTP,以及NFS,而后需要設(shè)置一個(gè)接口通信軟件與開(kāi)發(fā)平臺(tái)上進(jìn)行互動(dòng)之用,因此,在選擇上可采用Kermit通訊協(xié)定,進(jìn)行資料的傳輸。使用2不同運(yùn)行系統(tǒng)的交叉編輯器工具鏈的主要原因在于,導(dǎo)航應(yīng)用程序使用uClibc有兼容性問(wèn)題,所以不得不采用glibc,而為了減少占用資源,而U-Boot、Linux內(nèi)核和Busybox仍然采用的是uClibc。
在系統(tǒng)平臺(tái)建立之后,Linux操作系統(tǒng)提供了底層的操作,包括:文件系統(tǒng)的管理、存儲(chǔ)器分配以及基本快閃存儲(chǔ)器的燒錄讀取,但并沒(méi)有提供最佳的的顯示界面,而再同一時(shí)間為了體現(xiàn)出地理數(shù)據(jù)的顯示與導(dǎo)航功能,就需要在操作系統(tǒng)上放入圖形用戶(hù)界面支持系統(tǒng)和地理信息開(kāi)發(fā)平臺(tái)。
整個(gè)軟件系統(tǒng)依靠響應(yīng)不同窗口或者控制元件所發(fā)出的訊息,進(jìn)行一部體現(xiàn)出各式各樣的導(dǎo)航系統(tǒng)功能,再透主窗口建立后注冊(cè)mGIS控件,可以較為方便的實(shí)現(xiàn)一些常用的地圖操作。主窗口建立后,將會(huì)創(chuàng)建許多用于子窗口,包括:用于顯示地圖經(jīng)緯度信息、時(shí)間。最后,在速度的靜態(tài)功能上,則可用于實(shí)現(xiàn)快速便捷操作的工具欄,用于實(shí)現(xiàn)GPS功能關(guān)閉和地圖數(shù)據(jù)加載的菜單欄。
圖說(shuō):手持式GPS系統(tǒng)電路結(jié)構(gòu)圖。GPS的應(yīng)用范圍十分廣泛,也必然有其市場(chǎng)的賣(mài)點(diǎn),但要將GPS做到手機(jī)當(dāng)中,仍有不少瓶頸需要突破。手機(jī)的GPS應(yīng)用與車(chē)載導(dǎo)航差異甚大,前者要求在行走的環(huán)境中能獲得精準(zhǔn)的定位信息,而手機(jī)用戶(hù)又經(jīng)常會(huì)處于收訊不良的室內(nèi)或巷弄當(dāng)中。(www.Edom.com)
「Find My Way」是GPS衛(wèi)星導(dǎo)航的終極目標(biāo)
Find My Way嵌入式移動(dòng)地圖導(dǎo)航系統(tǒng)經(jīng)過(guò)最初設(shè)計(jì)、實(shí)現(xiàn)及應(yīng)用檢驗(yàn),已經(jīng)具備基本的功能,可初步滿(mǎn)足個(gè)人移動(dòng)導(dǎo)航信息系統(tǒng)的需求。能完成數(shù)碼地圖的加載、縮放、拖動(dòng)、搜索、簡(jiǎn)易導(dǎo)航、測(cè)距、GPS功能開(kāi)閉等功能。同時(shí)必須要針對(duì)較為可行的矢量地圖的制作方法,能依據(jù)使用的場(chǎng)合不同,較快速的完成地圖數(shù)據(jù)源的制作及相關(guān)信息的添加,有一定的擴(kuò)展能力。
當(dāng)然由于時(shí)間和能力的有限,這款產(chǎn)品也有其一定的不足,值得進(jìn)一步的深入研究,例如:在打開(kāi)GPS接收模塊之后,系統(tǒng)的響應(yīng)速度將有顯著的下降,雖然已經(jīng)對(duì)Linux核心和編輯器經(jīng)過(guò)適當(dāng)?shù)膬?yōu)化過(guò)程,但情況并沒(méi)有顯著的改善。問(wèn)題可能在硬件平臺(tái)的處理速度和可調(diào)用的資源有限,也有可能在軟件接收上的程序結(jié)構(gòu)不合理,嵌套過(guò)多。
GPS接收信號(hào)有時(shí)會(huì)發(fā)生信號(hào)接收的不穩(wěn)定,出現(xiàn)信號(hào)的偏移,超過(guò)標(biāo)稱(chēng)的誤差值。問(wèn)題可能在開(kāi)發(fā)平臺(tái)的設(shè)計(jì)電路中對(duì)于數(shù)據(jù)信號(hào)線(xiàn)的照排上,沒(méi)有使信號(hào)線(xiàn)等距,也沒(méi)有設(shè)置合理的信號(hào)隔離和保護(hù)帶,導(dǎo)致最終出現(xiàn)了不應(yīng)有的誤差。但從軟件上著手,如何糾正這樣的誤差也是值得研究的一個(gè)方向,不過(guò),在本文中只說(shuō)明了固定點(diǎn)導(dǎo)航,并不能完成從任意點(diǎn)至任意點(diǎn)的導(dǎo)航,導(dǎo)航功能可以從軟件方面繼續(xù)深入的研究,包括對(duì)地圖格式的選擇等,這些都是未來(lái)必須要面對(duì)到的問(wèn)題與挑戰(zhàn)。