Top Banner
基基 ARM 基基基 GPS 基基基基基基 組組4970E014 組組組4970E027 組組組4970E054 組組組
13

基於 ARM 的車載 GPS 智能導航系統

Jan 16, 2016

Download

Documents

darva

基於 ARM 的車載 GPS 智能導航系統. 組員: 4970E014 黃承廣、 4970E027 蔡典龍、 4970E054 賴品言. 1 引言. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 基於 ARM 的車載 GPS 智能導航系統

基於 ARM 的車載 GPS 智能導航系統

組員: 4970E014 黃承廣、 4970E027 蔡典龍、 4970E054 賴品言

Page 2: 基於 ARM 的車載 GPS 智能導航系統

1 引言 隨著中國的城市化的程度不斷加快,使得越

來越多的人口與事業單位集中在一個“狹小”範圍內生活與工作。 城市的迅速“膨脹”直接導致了交通網絡的日趨複雜,人員流動的日益頻繁也使得每個人對空間資訊有了更多的依賴。 人們更加關心“當前我在哪裡?”“目的地在哪裡?”“如何到達?”等問題。 而以嵌入式系統為平臺的數字地理集成應用方案可以有效地解決這些矛盾。 在此背景下,本文給出了基於 ARM 的嵌入式解決方案。

Page 3: 基於 ARM 的車載 GPS 智能導航系統

2 硬件實現 本嵌入式 GPS 導航系統的硬體核心是三星公司 ARM9

系列中的 16/32 位 RISC 處理器 S3C2410A 晶片,該晶片強大的實時處理能力和豐富的外圍介面非常適合嵌入式系統的開發,本系統正是基於該晶片的這些特點而設計的。 系統框圖如圖 1 所示。

該系統以 S3C2410A 微處理器為核心,與 2 片 32M的 SDRAM(HY57V561620CT) 和一片 64M 的NAND Flash(K9F1208U0B) 組成了最小系統。 外部添加了用於接收 GPS 信號的 GPS 模塊,用於顯示的液晶面板以及一片 UDA1341TS 的聲音晶片。 此外,為了調試的方便,我們還增加了一片 CS8900A的 10M 網卡晶片。

Page 4: 基於 ARM 的車載 GPS 智能導航系統

圖1系統框圖

Page 5: 基於 ARM 的車載 GPS 智能導航系統

3 系統平台的建立 系統平臺的建立主要包括兩部分,即宿主機( PC

機)上操作系統的選擇和交叉編譯器工具鏈的建立。

PC 機上的作業系統可以有多種選擇:安裝 Linux 發行版、在 Windows 下使用虛擬機或者使用Cygwin 。 由於現今 Microsoft Windows 統領著全球超過半數的 PC 機(在中國 Windows 佔據近90% 的份額),許多開發者開始使用虛擬機等手段來實現在 Windows 平臺下進行嵌入式 Linux 的開發,但這些方法都會或多或少地帶來些相容性問題。 開發嵌入式 Linux 最好的選擇便是在 PC 機上安裝Linux 發行版,因為這樣與 Windows毫無關聯,可佔有系統全部資源,擁有系統最高性能和最佳的相容性。

Page 6: 基於 ARM 的車載 GPS 智能導航系統

在建立交叉編譯器工具鏈方面必須注意一點的便是 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 。

Page 7: 基於 ARM 的車載 GPS 智能導航系統

本課題主要環境設置如下:

Page 8: 基於 ARM 的車載 GPS 智能導航系統

4 應用軟件的開發 在系統平臺建立之後, Linux 操作系統提供了底層的操作,包

括檔系統的管理、內存分配以及基本 flash 的燒錄讀取,但並沒有提供友好的顯示介面。 同時也為了實現地理資料的顯示和導航,就需要在作業系統上放入圖形化使用者介面支援系統和地理資訊開發平臺。 為此我們分別選擇了 MiniGUI 和mGIS 。

Page 9: 基於 ARM 的車載 GPS 智能導航系統

整個軟件系統依靠響應不同視窗或者控制項發出的事件,來實現各種功能。 通過主視窗建立後註冊mGIS控制項,可以較為方便的實現一些常用的地圖操作。

主視窗建立後,將會創建許多用於子視窗,包括用於顯示經緯度資訊,時間。

速度的靜態框,用於實現快速便捷操作的工具欄,用於實現 GPS功能關閉和地圖數據加載的菜單欄。

圖 3 是應用軟件的流程圖

Page 10: 基於 ARM 的車載 GPS 智能導航系統

圖 4 GPS 接收模塊流程圖

Page 11: 基於 ARM 的車載 GPS 智能導航系統

5總結和展望 “Find My Way” (完成項目的名稱)嵌入式移動地圖導航系統經過最初設計、

實現及應用檢驗,已經具備基本的功能,可初步滿足個人移動導航信息系統的需求。

能完成數字地圖的加載、縮放、拖動、搜索、簡易導航、測距、 GPS 功能開閉等功能。 同時我們也摸索出了一整套較為可行的矢量地圖的製作方法 , 能依據使用的場合不同,較快速的完成地圖數據源的製作及相關信息的添加,有一定的擴展能力。

當然由於時間和能力的有限,這款產品也有其一定的不足,值得進一步的深入研究,例如:在打開 GPS 接收模塊之後,系統的響應速度將有顯著的下降,雖然已經對 Linux 核心和編譯器經過適當的優化,但情況並沒有顯著的改善。 問題可能在硬件平台的處理速度和可調用的資源有限,也有可能在軟件接收上的程序結構不合理,嵌套過多。

GPS 接收信號有時會發生信號接收的不穩定,出現信號的偏移,超過標稱的誤差值。 問題可能在開發平台的設計電路中對於數據信號線的排版上,沒有使信號線等距,也沒有設置合理的信號隔離和保護帶,導致最終出現了不應有的誤差。 但從軟件上著手,如何糾正這樣的誤差也是值得研究的一個方向。 在本課題中只實現了固定點的導航,並不能完成從任意點至任意點的導航。 導航功能可以從軟件方面繼續深入的研究,包括對地圖格式的選擇等。 這些都是將來值得完善之處。

Page 12: 基於 ARM 的車載 GPS 智能導航系統

圖5硬件平台

Page 13: 基於 ARM 的車載 GPS 智能導航系統

圖6最終效果圖