基于ARM的車載GPS智能導(dǎo)航系統(tǒng)
發(fā)布時間:2007/8/29 0:00:00 訪問次數(shù):508
來源:單片機與嵌入式系統(tǒng)ic網(wǎng) 作者:陸健青 顧杰等
1 引言
隨著中國的城市化的程度不斷加快,使得越來越多的人口與事業(yè)單位集中在一個“狹小”范圍內(nèi)生活與工作。城市的迅速“膨脹”直接導(dǎo)致了交通網(wǎng)絡(luò)的日趨復(fù)雜,人員流動的日益頻繁也使得每個人對空間信息有了更多的依賴。人們更加關(guān)心“當(dāng)前我在哪里?”“目的地在哪里?”“如何到達(dá)?”等問題。而以嵌入式系統(tǒng)為平臺的數(shù)字地理集成應(yīng)用方案可以有效地解決這些矛盾。在此背景下,本文給出了基于ARM的嵌入式解決方案。
2硬件實現(xiàn)
本嵌入式GPS導(dǎo)航系統(tǒng)的硬件核心是三星公司ARM9系列中的16/32位RISC處理器S3C2410A芯片,該芯片強大的實時處理能力和豐富的外圍接口非常適合嵌入式系統(tǒng)的開發(fā),本系統(tǒng)正是基于該芯片的這些特點而設(shè)計的。系統(tǒng)框圖如圖1所示。
該系統(tǒng)以S3C2410A微處理器為核心,與2片32M的SDRAM(HY57V561620CT)和一片64M的NAND Flash(K9F1208U0B)組成了最小系統(tǒng)。外部添加了用于接收GPS信號的GPS模塊,用于顯示的液晶面板以及一片UDA1341TS的聲音芯片。此外,為了調(diào)試的方便,我們還增加了一片CS8900A的10M網(wǎng)卡芯片。
圖1系統(tǒng)框圖
3系統(tǒng)平臺的建立
系統(tǒng)平臺的建立主要包括兩部分,即宿主機(PC機)上操作系統(tǒng)的選擇和交叉編譯器工具鏈的建立。
PC機上的操作系統(tǒng)可以有多種選擇:安裝Linux發(fā)行版、在Windows下使用虛擬機或者使用Cygwin。由于現(xiàn)今Microsoft Windows統(tǒng)領(lǐng)著全球超過半數(shù)的PC機(在中國Windows占據(jù)近90%的份額),許多開發(fā)者開始使用虛擬機等手段來實現(xiàn)在Windows平臺下進(jìn)行嵌入式Linux的開發(fā),但這些方法都會或多或少地帶來些兼容性問題。開發(fā)嵌入式Linux最好的選擇便是在PC機上安裝Linux發(fā)行版,因為這樣與Windows毫無關(guān)聯(lián),可占有系統(tǒng)全部資源,擁有系統(tǒng)最高性能和最佳的兼容性。
在建立交叉編譯器工具鏈方面必須注意一點的便是C運行庫的選擇,F(xiàn)在可供選擇的C運行庫有g(shù)libc, uClibc以及newlib等。glibc是由GNU項目提供的標(biāo)準(zhǔn)C運行庫,它針對PC應(yīng)用設(shè)計,較龐大,但能提供最優(yōu)的兼容性。如果一般的嵌入式開發(fā)可選用uClibc。uClibc原本是uCLinux開發(fā)過程中的一個C語言庫,現(xiàn)已經(jīng)獨立于uCLinux項目并且進(jìn)一步完善。它對glibc的大部分函數(shù)進(jìn)行了重寫,并且目標(biāo)就定位于嵌入式,所以其相對glibc而言要小巧很多。此外由于它的函數(shù)與glibc保持一致,這樣很多原本基于glibc開發(fā)的軟件基本無需改動便可改用uClibc編譯運行,使得在嵌入式系統(tǒng)上占用的內(nèi)存和磁盤空間更少。但由于畢竟不是標(biāo)準(zhǔn)的C運行庫,因此uClibc擁有著一定的兼容性問題。
本系統(tǒng)選用了Fedora Core 5作為宿主機(PC機)的操作系統(tǒng)以及分別使用buildroot和crosstool建立兩條采用不同的C運行庫的交叉編譯器工具鏈。由于我們系統(tǒng)開發(fā)需要使用U-Boot的TFTP功能下載Linux內(nèi)核以及Linux的NFS網(wǎng)絡(luò)文件系統(tǒng),所以首先需要對Fedora Core 5設(shè)置TFTP以及NFS,而后需要設(shè)置一個串口通信軟件與開發(fā)板互動,本系統(tǒng)選擇了Kermit。
使用兩條采用不同C運行庫的交叉編譯器工具鏈的主要原因在于,我們的導(dǎo)航應(yīng)用程序使用uClibc有兼容性問題,所以不得不采用glibc。而為了減少占用資源,我們U-Boot、Linux內(nèi)核和Busybox仍然采用的是uClibc。
本課題主要環(huán)境設(shè)置如下:
課題主目錄
/Project
編譯器目錄
arm-linux-uclibc-
/Project/toolchina/uclibc/buildroot/build_arm_nofpu/
staging_dir
arm-unknown-linux-gnu-
/Project/toolchain/glibc/tools/gcc-4.1.0-glibc-2.3.2/
arm-unknown-linux-gun
NFS目錄
/Project/nfs
TFTP目錄
/tftpboot
PC機的IP地址
192.168.0.110
開發(fā)板的IP地址
192.168.0.3
4應(yīng)用軟件的開發(fā)
在系統(tǒng)平臺建立之后,Linux操作系統(tǒng)提供了底層的操作,包括文件系統(tǒng)的管理、內(nèi)存分配以及基本flash的燒錄讀取,但并沒有提供友好的顯示界面。同時也為了實現(xiàn)地理數(shù)據(jù)的顯示和導(dǎo)航,就需要在操作系統(tǒng)上放入圖形用戶界面支持系統(tǒng)和地理信息開發(fā)平臺。為此我們分別選擇了MiniGUI和mGIS。
圖3是應(yīng)用軟件的流程圖
整個軟件系統(tǒng)依靠響應(yīng)不同窗口或者控件發(fā)出的事件,來實現(xiàn)各種功能。通過主窗口建立后注冊mGIS控件,可以較為方便的實現(xiàn)一些常用的地圖操作。主窗口建立后,將會創(chuàng)建
來源:單片機與嵌入式系統(tǒng)ic網(wǎng) 作者:陸健青 顧杰等
1 引言
隨著中國的城市化的程度不斷加快,使得越來越多的人口與事業(yè)單位集中在一個“狹小”范圍內(nèi)生活與工作。城市的迅速“膨脹”直接導(dǎo)致了交通網(wǎng)絡(luò)的日趨復(fù)雜,人員流動的日益頻繁也使得每個人對空間信息有了更多的依賴。人們更加關(guān)心“當(dāng)前我在哪里?”“目的地在哪里?”“如何到達(dá)?”等問題。而以嵌入式系統(tǒng)為平臺的數(shù)字地理集成應(yīng)用方案可以有效地解決這些矛盾。在此背景下,本文給出了基于ARM的嵌入式解決方案。
2硬件實現(xiàn)
本嵌入式GPS導(dǎo)航系統(tǒng)的硬件核心是三星公司ARM9系列中的16/32位RISC處理器S3C2410A芯片,該芯片強大的實時處理能力和豐富的外圍接口非常適合嵌入式系統(tǒng)的開發(fā),本系統(tǒng)正是基于該芯片的這些特點而設(shè)計的。系統(tǒng)框圖如圖1所示。
該系統(tǒng)以S3C2410A微處理器為核心,與2片32M的SDRAM(HY57V561620CT)和一片64M的NAND Flash(K9F1208U0B)組成了最小系統(tǒng)。外部添加了用于接收GPS信號的GPS模塊,用于顯示的液晶面板以及一片UDA1341TS的聲音芯片。此外,為了調(diào)試的方便,我們還增加了一片CS8900A的10M網(wǎng)卡芯片。
圖1系統(tǒng)框圖
3系統(tǒng)平臺的建立
系統(tǒng)平臺的建立主要包括兩部分,即宿主機(PC機)上操作系統(tǒng)的選擇和交叉編譯器工具鏈的建立。
PC機上的操作系統(tǒng)可以有多種選擇:安裝Linux發(fā)行版、在Windows下使用虛擬機或者使用Cygwin。由于現(xiàn)今Microsoft Windows統(tǒng)領(lǐng)著全球超過半數(shù)的PC機(在中國Windows占據(jù)近90%的份額),許多開發(fā)者開始使用虛擬機等手段來實現(xiàn)在Windows平臺下進(jìn)行嵌入式Linux的開發(fā),但這些方法都會或多或少地帶來些兼容性問題。開發(fā)嵌入式Linux最好的選擇便是在PC機上安裝Linux發(fā)行版,因為這樣與Windows毫無關(guān)聯(lián),可占有系統(tǒng)全部資源,擁有系統(tǒng)最高性能和最佳的兼容性。
在建立交叉編譯器工具鏈方面必須注意一點的便是C運行庫的選擇,F(xiàn)在可供選擇的C運行庫有g(shù)libc, uClibc以及newlib等。glibc是由GNU項目提供的標(biāo)準(zhǔn)C運行庫,它針對PC應(yīng)用設(shè)計,較龐大,但能提供最優(yōu)的兼容性。如果一般的嵌入式開發(fā)可選用uClibc。uClibc原本是uCLinux開發(fā)過程中的一個C語言庫,現(xiàn)已經(jīng)獨立于uCLinux項目并且進(jìn)一步完善。它對glibc的大部分函數(shù)進(jìn)行了重寫,并且目標(biāo)就定位于嵌入式,所以其相對glibc而言要小巧很多。此外由于它的函數(shù)與glibc保持一致,這樣很多原本基于glibc開發(fā)的軟件基本無需改動便可改用uClibc編譯運行,使得在嵌入式系統(tǒng)上占用的內(nèi)存和磁盤空間更少。但由于畢竟不是標(biāo)準(zhǔn)的C運行庫,因此uClibc擁有著一定的兼容性問題。
本系統(tǒng)選用了Fedora Core 5作為宿主機(PC機)的操作系統(tǒng)以及分別使用buildroot和crosstool建立兩條采用不同的C運行庫的交叉編譯器工具鏈。由于我們系統(tǒng)開發(fā)需要使用U-Boot的TFTP功能下載Linux內(nèi)核以及Linux的NFS網(wǎng)絡(luò)文件系統(tǒng),所以首先需要對Fedora Core 5設(shè)置TFTP以及NFS,而后需要設(shè)置一個串口通信軟件與開發(fā)板互動,本系統(tǒng)選擇了Kermit。
使用兩條采用不同C運行庫的交叉編譯器工具鏈的主要原因在于,我們的導(dǎo)航應(yīng)用程序使用uClibc有兼容性問題,所以不得不采用glibc。而為了減少占用資源,我們U-Boot、Linux內(nèi)核和Busybox仍然采用的是uClibc。
本課題主要環(huán)境設(shè)置如下:
課題主目錄
/Project
編譯器目錄
arm-linux-uclibc-
/Project/toolchina/uclibc/buildroot/build_arm_nofpu/
staging_dir
arm-unknown-linux-gnu-
/Project/toolchain/glibc/tools/gcc-4.1.0-glibc-2.3.2/
arm-unknown-linux-gun
NFS目錄
/Project/nfs
TFTP目錄
/tftpboot
PC機的IP地址
192.168.0.110
開發(fā)板的IP地址
192.168.0.3
4應(yīng)用軟件的開發(fā)
在系統(tǒng)平臺建立之后,Linux操作系統(tǒng)提供了底層的操作,包括文件系統(tǒng)的管理、內(nèi)存分配以及基本flash的燒錄讀取,但并沒有提供友好的顯示界面。同時也為了實現(xiàn)地理數(shù)據(jù)的顯示和導(dǎo)航,就需要在操作系統(tǒng)上放入圖形用戶界面支持系統(tǒng)和地理信息開發(fā)平臺。為此我們分別選擇了MiniGUI和mGIS。
圖3是應(yīng)用軟件的流程圖
整個軟件系統(tǒng)依靠響應(yīng)不同窗口或者控件發(fā)出的事件,來實現(xiàn)各種功能。通過主窗口建立后注冊mGIS控件,可以較為方便的實現(xiàn)一些常用的地圖操作。主窗口建立后,將會創(chuàng)建
熱門點擊
- 嵌入式控制器的輸入端口設(shè)計分析
- 嵌入式系統(tǒng)中精確的衛(wèi)星定位授時與同步
- 基于裸機編程的實時系統(tǒng)
- PPCBoot在MPC8250上的移植方法
- 嵌入式指紋鎖的設(shè)計與實現(xiàn)
- 嵌入式微控制器MC68HC912B32背景調(diào)
- μC/OSII中的時鐘中斷技術(shù)研究
- 利用TriMedia注冊表和成員管理器實現(xiàn)B
- 嵌入式頻率計的設(shè)計
- uClinux下中斷驅(qū)動的I/O方式
推薦技術(shù)資料
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究