130 likes | 238 Views
基於 ARM 的車載 GPS 智能導航系統. 組員: 4970E014 黃承廣、 4970E027 蔡典龍、 4970E054 賴品言. 1 引言.
E N D
基於ARM的車載GPS智能導航系統 組員:4970E014黃承廣、 4970E027蔡典龍、 4970E054賴品言
1引言 • 隨著中國的城市化的程度不斷加快,使得越來越多的人口與事業單位集中在一個“狹小”範圍內生活與工作。 城市的迅速“膨脹”直接導致了交通網絡的日趨複雜,人員流動的日益頻繁也使得每個人對空間資訊有了更多的依賴。 人們更加關心“當前我在哪裡?”“目的地在哪裡?”“如何到達?”等問題。 而以嵌入式系統為平臺的數字地理集成應用方案可以有效地解決這些矛盾。 在此背景下,本文給出了基於ARM的嵌入式解決方案。
2硬件實現 • 本嵌入式GPS導航系統的硬體核心是三星公司ARM9系列中的16/32位RISC處理器S3C2410A晶片,該晶片強大的實時處理能力和豐富的外圍介面非常適合嵌入式系統的開發,本系統正是基於該晶片的這些特點而設計的。 系統框圖如圖1所示。 • 該系統以S3C2410A微處理器為核心,與2片32M的SDRAM(HY57V561620CT)和一片64M的NAND Flash(K9F1208U0B)組成了最小系統。 外部添加了用於接收GPS信號的GPS模塊,用於顯示的液晶面板以及一片UDA1341TS的聲音晶片。 此外,為了調試的方便,我們還增加了一片CS8900A的10M網卡晶片。
3系統平台的建立 • 系統平臺的建立主要包括兩部分,即宿主機(PC機)上操作系統的選擇和交叉編譯器工具鏈的建立。 • PC機上的作業系統可以有多種選擇:安裝Linux發行版、在Windows下使用虛擬機或者使用Cygwin。 由於現今Microsoft Windows統領著全球超過半數的PC機(在中國Windows佔據近90%的份額),許多開發者開始使用虛擬機等手段來實現在Windows平臺下進行嵌入式Linux的開發,但這些方法都會或多或少地帶來些相容性問題。 開發嵌入式Linux最好的選擇便是在PC機上安裝Linux發行版,因為這樣與Windows毫無關聯,可佔有系統全部資源,擁有系統最高性能和最佳的相容性。
在建立交叉編譯器工具鏈方面必須注意一點的便是C運行庫的選擇。 現在可供選擇的C運行庫有glibc, uClibc以及newlib等。glibc是由GNU項目提供的標準C運行庫,它針對PC應用設計,較龐大,但能提供最優的相容性。 如果一般的嵌入式開發可選用uClibc。uClibc原本是uCLinux開發過程中的一個C語言庫,現已經獨立於uCLinux項目並且進一步完善。 它對glibc的大部分函數進行了重寫,並且目標就定位於嵌入式,所以其相對glibc而言要小巧很多。 此外由於它的函數與glibc保持一致,這樣很多原本基於glibc開發的軟件基本無需改動便可改用uClibc編譯運行,使得在嵌入式系統上佔用的內存和磁盤空間更少 但由於畢竟不是標準的C運行庫,因此uClibc擁有著一定的相容性問題。 • 本系統選用了Fedora Core 5作為宿主機(PC機)的作業系統以及分別使用buildroot和crosstool建立兩條採用不同的C運行庫的交叉編譯器工具鏈。 本系統選用了Fedora Core 5作為宿主機(PC機)的操作系統以及分別使用buildroot和crosstool建立兩條採用不同的C運行庫的交叉編譯器工具鏈。 由於我們系統開發需要使用U-Boot的TFTP功能下載Linux內核以及Linux的NFS網路檔案系統,所以首先需要對Fedora Core 5設置TFTP以及NFS,而後需要設置一個串口通信軟體與開發板互動,本系統選擇了Kermit。 • 使用兩條採用不同C運行庫的交叉編譯器工具鏈的主要原因在於,我們的導航應用程式使用uClibc有相容性問題,所以不得不採用glibc。 而為了減少佔用資源,我們U-Boot、Linux內核和Busybox仍然採用的是uClibc。
4應用軟件的開發 • 在系統平臺建立之後,Linux操作系統提供了底層的操作,包括檔系統的管理、內存分配以及基本flash的燒錄讀取,但並沒有提供友好的顯示介面。 同時也為了實現地理資料的顯示和導航,就需要在作業系統上放入圖形化使用者介面支援系統和地理資訊開發平臺。 為此我們分別選擇了MiniGUI和mGIS。
整個軟件系統依靠響應不同視窗或者控制項發出的事件,來實現各種功能。 通過主視窗建立後註冊mGIS控制項,可以較為方便的實現一些常用的地圖操作。 • 主視窗建立後,將會創建許多用於子視窗,包括用於顯示經緯度資訊,時間。 • 速度的靜態框,用於實現快速便捷操作的工具欄,用於實現GPS功能關閉和地圖數據加載的菜單欄。 圖 3 是應用軟件的流程圖
5總結和展望 • “Find My Way” (完成項目的名稱)嵌入式移動地圖導航系統經過最初設計、實現及應用檢驗,已經具備基本的功能,可初步滿足個人移動導航信息系統的需求。 • 能完成數字地圖的加載、縮放、拖動、搜索、簡易導航、測距、 GPS 功能開閉等功能。 同時我們也摸索出了一整套較為可行的矢量地圖的製作方法 , 能依據使用的場合不同,較快速的完成地圖數據源的製作及相關信息的添加,有一定的擴展能力。 • 當然由於時間和能力的有限,這款產品也有其一定的不足,值得進一步的深入研究,例如:在打開 GPS 接收模塊之後,系統的響應速度將有顯著的下降,雖然已經對 Linux 核心和編譯器經過適當的優化,但情況並沒有顯著的改善。 問題可能在硬件平台的處理速度和可調用的資源有限,也有可能在軟件接收上的程序結構不合理,嵌套過多。 • GPS 接收信號有時會發生信號接收的不穩定,出現信號的偏移,超過標稱的誤差值。 問題可能在開發平台的設計電路中對於數據信號線的排版上,沒有使信號線等距,也沒有設置合理的信號隔離和保護帶,導致最終出現了不應有的誤差。 但從軟件上著手,如何糾正這樣的誤差也是值得研究的一個方向。 在本課題中只實現了固定點的導航,並不能完成從任意點至任意點的導航。 導航功能可以從軟件方面繼續深入的研究,包括對地圖格式的選擇等。 這些都是將來值得完善之處。