基于MiniGUI的GPS導(dǎo)航定位系統(tǒng)設(shè)計(jì)方案解析
資料介紹
近年來(lái),在定位系統(tǒng)設(shè)計(jì)中,硬件選擇越來(lái)越集中在幾個(gè)品牌的幾個(gè)型號(hào)上。而軟件設(shè)計(jì)方面比較分散。因而在一個(gè)兼容性強(qiáng)的平臺(tái)上實(shí)現(xiàn)軟件的集中研發(fā),將是未來(lái)的研發(fā)方向。
這里提出一種系統(tǒng)構(gòu)造模式,弱化硬件平臺(tái)的影響而力求最大限度的統(tǒng)一軟件設(shè)計(jì)。
1 系統(tǒng)整體設(shè)計(jì)方案
這里提出一種實(shí)用的設(shè)計(jì)方案,通過(guò)對(duì)系統(tǒng)的各方面配置,實(shí)現(xiàn)GPS實(shí)時(shí)導(dǎo)航功能。系統(tǒng)主控器件采用韓國(guó)Samsung公司生產(chǎn)的ARM核32位RISC微處理器S3C2410,并在由其組成的開(kāi)發(fā)板上移植Linux操作系統(tǒng),Linux操作系統(tǒng)負(fù)責(zé)系統(tǒng)的整體調(diào)度和控制。通過(guò)S3C2410的UART接口連接GPS接收機(jī),用以接收NEMA0183格式的GPS定位信息。通過(guò)UART接口和GSM/GPRS模塊MC35進(jìn)行通信。
為了在移動(dòng)LED上實(shí)現(xiàn)電子地圖的繪制顯示,系統(tǒng)的整體層次結(jié)構(gòu)框圖如圖1所示。Linux操作系統(tǒng)負(fù)責(zé)底層硬件的初始化和管理,并向上層提供應(yīng)用接口,MiniGUI完成電子地圖在LED上的繪制,并通過(guò)Linux內(nèi)核提供的應(yīng)用接口與GPS接收機(jī)和GSM/GPRS模塊完成通信等功能。

2 圖形界面支持系統(tǒng)——MiniGUI
MiniGUI是一個(gè)針對(duì)嵌入式系統(tǒng)的輕量級(jí)圖形界面支持系統(tǒng)。MiniGUI能夠在各個(gè)不同的平臺(tái)上提供最大程度的接口兼容性,可運(yùn)行于AR-M、MIPS等各種主流嵌入式硬件平臺(tái)之上。它能夠提供一個(gè)輕型、資源開(kāi)銷(xiāo)少的嵌入式圖形接口。
這里利用MiniGUI Ver l.3.3版本,將其編譯為lite版本并移植到基于ARM核的32位微處理器S3C2410上。在此基礎(chǔ)上,開(kāi)發(fā)基于MiniG-UI的電子地圖顯示應(yīng)用程序,配合GPS信號(hào)接收機(jī)實(shí)現(xiàn)定位導(dǎo)航功能。
2.1 交叉編譯MiniGUI
MiniGUI從結(jié)構(gòu)層次上可以分為3層,最上層是APT層,中間層是MiniGUI核心,負(fù)責(zé)維護(hù)整個(gè)窗口系統(tǒng)的運(yùn)行,最下層由2部分組成,即圖形抽象層(GAL)和輸人抽象層(IAL)。
為了使MiniGUI能夠在不同的目標(biāo)平臺(tái)上運(yùn)行,必須有針對(duì)相應(yīng)平臺(tái)的交叉編譯環(huán)境。根據(jù)本文的設(shè)計(jì)選用S3C2410器件,則選擇交叉編譯環(huán)境Linux-ARM,選擇Mizi公司針對(duì)Samsung公司32位ARM核RISC微處理器S3C2410設(shè)計(jì)開(kāi)發(fā)的工具鏈,這樣的配置環(huán)境使軟件和硬件具有更好的兼容性。具體交叉編譯的步驟如下:
1)修改configure文件。設(shè)置make環(huán)境變量CC、LD及AR等。
2)GAL(圖形引擎)和IAL(輸入引擎)接口的實(shí)現(xiàn)。在MiniGUI中,GAL和IAL是MinGUI的2個(gè)基礎(chǔ)設(shè)施,MiniGUI的高可靠度在很大程度上也是由于這2個(gè)接口提供了獨(dú)立于硬件的抽象能力。這2個(gè)接口的抽象類(lèi)似于Linux內(nèi)核中的虛擬文件系統(tǒng)。
在具體實(shí)現(xiàn)一個(gè)輸入引擎(IAL)時(shí),其中最為關(guān)鍵的是事件處理函數(shù)wait_event()的實(shí)現(xiàn),MiniGUl會(huì)不斷的調(diào)用該函數(shù),來(lái)確定在輸入引擎上是否有輸入事件發(fā)生。這里需要特別注意的是,因?yàn)镸iniGUI是通過(guò)select系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)進(jìn)程間通信機(jī)制的,因此在實(shí)現(xiàn)lite版本輸入引擎的wait_event函數(shù)時(shí),一定要通過(guò)select函數(shù)或與其等價(jià)的poll函數(shù)實(shí)現(xiàn)。與此同時(shí),在實(shí)現(xiàn)目標(biāo)板的觸摸屏驅(qū)動(dòng)時(shí),必須要實(shí)現(xiàn)對(duì)應(yīng)file_operaTIons結(jié)構(gòu)中的poll函數(shù)指針。即使觸摸屏驅(qū)動(dòng)未提供poll函數(shù),也要在wait_event返回之前調(diào)用select,并傳遞相關(guān)參數(shù)。
Linux系統(tǒng)提供了一種基礎(chǔ)設(shè)施——FrameBuffer,通過(guò)這個(gè)設(shè)施Linux的圖形輸出有了統(tǒng)一的接口。由于MiniGUI可以通過(guò)FrameBuffer獲得統(tǒng)一的圖形引擎接口。
因此其適應(yīng)性大大提高,也就很少需要再為MiniGUI編寫(xiě)GAL驅(qū)動(dòng)層。
3)依次運(yùn)行configure、make和make install命令,完成MiniGUl的配置和編譯。
經(jīng)過(guò)上述編譯過(guò)程,會(huì)將編譯好的MiniGUI庫(kù)文件安裝在/home/MiniGUI-lite目錄下。為了減小庫(kù)文件的大小,根據(jù)需要利用config-ure命令去掉MiniGUI中一些不需要的功能,同時(shí)利用交叉編譯工具鏈中的strip命令刪除MiniGUI函數(shù)庫(kù)中的符號(hào)信息和其他一些調(diào)試信息。
2.2 MiniGUI向S3C2410上的移植
在嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中,編譯完MiniGUI和應(yīng)用程序后,把MiniGUI庫(kù)和應(yīng)用程序拷貝到為目標(biāo)系統(tǒng)準(zhǔn)備的文件系統(tǒng)目錄中,然后使用相關(guān)工具生成文件系統(tǒng)映像,下載到目標(biāo)板上。
MiniGUI在運(yùn)行時(shí)需要一個(gè)配置文件,用來(lái)配置MiniGUI運(yùn)行所需要的環(huán)境參數(shù)。本設(shè)計(jì)中,將配置文件MiniGUI.cfg放到目標(biāo)板的/etc目錄下。另外,MiniGUI使用framebuffer作為其輸入引擎,因此在編譯Linux內(nèi)核時(shí),選擇將framebuffer相關(guān)的功能編譯到內(nèi)核中去。
3 繪制基于MiniGUI的電子地圖的算法
3.1 提取電子地圖數(shù)據(jù)的算法實(shí)現(xiàn)
由于GUI的程序和傳統(tǒng)單一流程的程序不太相同,因此通過(guò)簡(jiǎn)單的循環(huán)獲取GPS數(shù)據(jù)的方式是不可取的。該系統(tǒng)通過(guò)多線程的循環(huán)提取數(shù)據(jù),每組數(shù)據(jù)的提取與處理是在一個(gè)單線程中完成的,從而避免了數(shù)據(jù)和處理的復(fù)雜交互,能更好地體現(xiàn)實(shí)時(shí)性。
首先,對(duì)所采用的坐標(biāo)系進(jìn)行說(shuō)明:假定有一個(gè)形狀為嚴(yán)格矩形的地圖,其像素坐標(biāo)原點(diǎn)為(O,0),地圖X軸方向上的寬度為W個(gè)像素點(diǎn),Y軸方向上的高度為H個(gè)像素點(diǎn),地圖上某點(diǎn)的坐標(biāo)為(X,Y),則定義該像素點(diǎn)的歸一化坐標(biāo)為(x/W,y/H)。對(duì)于終端而言,其覆蓋的地理范圍相對(duì)于地球半徑來(lái)說(shuō)幾乎可以看作無(wú)窮小,故可以認(rèn)為電子地圖所對(duì)應(yīng)的經(jīng)緯度坐標(biāo)在其覆蓋的區(qū)域內(nèi)是線性變化的。有了這2個(gè)點(diǎn)的坐標(biāo)數(shù)據(jù)后,當(dāng)從GPS接收機(jī)讀取到經(jīng)緯度坐標(biāo)時(shí),根據(jù)近似的線性映射關(guān)系,就可以算出該坐標(biāo)在電子地圖上的歸一化坐標(biāo)。這種映射關(guān)系,根據(jù)歐式幾何原理即式(1)和式(2),由已知的2個(gè)點(diǎn)可以算出點(diǎn)A和點(diǎn)B的未知參數(shù)。

要得到地圖的左上角和右下角的經(jīng)緯度坐標(biāo),只需知道地圖邊界范圍內(nèi)任取的2個(gè)參考點(diǎn)的4個(gè)參數(shù)即可。通過(guò)在某地實(shí)地采集的3個(gè)參考點(diǎn),得到表l所列的坐標(biāo)數(shù)據(jù)。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- 基于嵌入式Linux的GPS车载定位导航系统设计1次下载
- 背篼酥课堂-GPS定位(一) nodemcu 解析gps19次下载
- 基于GPS的云爆炸定高引信系统设计方案17次下载
- 基于51单片机的简易GPS定位器设计方案资料下载.pdf14次下载
- 射频通信的GPS定位系统设计4次下载
- 车载GPS/DR组合导航系统硬件设计解析0次下载
- 车载GPS/DR组合导航系统硬件设计1次下载
- 无人机的指挥中枢:GPS模块导航系统27次下载
- 北斗+GPS双模定位导航模块49次下载
- 基于嵌入式 的GPS 导航信息处理方案的实现9次下载
- 车辆导航定位系统GPS接收机的原理与研制27次下载
- 有源RFID局域定位系统设计方案28次下载
- 基于GPS的小型组合导航系统设计58次下载
- 基于GPRS网络的GPS图形导航仪43次下载
- 基于GPS的汽车导航系统的设计与实现44次下载
- 告别定位盲区!低成本组合导航系统ER-GNSS/MINS-05的实战能力213次阅读
- 爱普生温补晶振TG2016SLN成为GPS定位系统的解决方案257次阅读
- 基于STM32单片机的GPS定位系统设计4112次阅读
- 什么是gps定位? gps定位放线的步骤有哪些8521次阅读
- bds是什么地理技术 BDS与GPS的区别26819次阅读
- GPS定位的基本原理5342次阅读
- 基于伽利略与GPS定位技术的结合应用分析3804次阅读
- 基于LPC2210芯片和uClinux实现导航定位信息获取模块的设计2148次阅读
- 基于GPS和航位推算技术实现组合导航系统的应用方案5134次阅读
- 基于FPGA-DSP平台实现GPS卫星导航接收机的设计2817次阅读
- 基于Linux操作系统和S3C2410微处理器实现GPS实时导航系统的设计1251次阅读
- MiniGUI与嵌入式系统的关系 MiniGUI移植的过程5133次阅读
- 一种基于MiniGUI的GPS导航定位系统设计与实现1833次阅读
- 基于嵌入式Linux系统的导航软件设计思路5232次阅读
- 双频带GPS/Galileo射频前端接收系统的设计方案4226次阅读
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論