基于S3C2440的車載GPS/GPRS跟蹤監(jiān)控系統(tǒng)研究與實現(xiàn)
摘要:為了實現(xiàn)個人及集群車輛的安全管理,在S3C2440的硬件平臺基礎上,利用嵌入式Linux操作系統(tǒng)強大的內核與外設的功能,開發(fā)了具有導航跟蹤與監(jiān)控功能的智能終端系統(tǒng),介紹了該系統(tǒng)各個部分的組成原理與設計方法,優(yōu)化了通信服務器的性能,解決了同類產品普遍存在的通信服務器性能瓶頸問題。
關鍵詞:ARM;GPS;GPRS;Linux
0 引言
隨著交通系統(tǒng)的不斷發(fā)展和完善,定位導航系統(tǒng)的應用范圍和領域也越來越廣泛,基于GPS,GPRS/GSM,GIS等的車輛跟蹤與監(jiān)控系統(tǒng)正在受到人們越來越多的青睞,顯示出強大的發(fā)展?jié)摿?。GPS(Global Position System,全球定位系統(tǒng))是美國從20世紀70年代開始的研制。19 93年正式投入運行,它能夠全球、全天候、連續(xù)實時地為用戶提供高精度的三維坐標、三維速度和時間信息。GPS的出現(xiàn)從根本上改變了人們獲取空間信息的方式,特別是在交通工具導航、監(jiān)控、跟蹤等領域具有很大的應用價值和發(fā)展?jié)摿Α?br />
本文在ARM9的硬件平臺基礎上,利用嵌入式Linux操作系統(tǒng)強大的管理平臺的內核與外設的功能,開發(fā)了具有導航跟蹤與監(jiān)控功能的智能終端系統(tǒng)。
1 跟蹤系統(tǒng)概述
根據(jù)車載系統(tǒng)的實際需要,本文在分析GPS的定位原理與GPRS的無線網(wǎng)絡結構及特點的基礎上,對硬件平臺各器件和模塊進行選擇,提出了終端硬件電路的設計方案;對實時嵌入式操作系統(tǒng)Linux的啟動代碼移植、內核定制、根文件系統(tǒng)的制作、驅動開發(fā)等方面進行了研究;通過選擇導航電子地圖數(shù)據(jù),坐標轉換庫和圖形用戶界面等設計了終端的應用程序,并為服務中心的導航監(jiān)控程序給出一個可行的方案。
2 硬件設計
本系統(tǒng)的終端是以ARM9TDMI-S內核的三星S3C2440A為中央處理器,外設模塊有GPS模塊,GPRS模塊;使用實時多任務內核為Linux 2.6.14。
本系統(tǒng)硬件設計框圖如圖1所示,系統(tǒng)結構分為六部分,分別為處理器、存儲系統(tǒng)、人機接口系統(tǒng)、GPS定位部分、電源管理、GPRS無線通信部分。使用S3C2440作為主控處理器芯片協(xié)調其他四個子系統(tǒng)正常工作,完成GPS定位數(shù)據(jù)采集、存儲、圖形顯示、音頻采集與播放、用戶輸入,以及與GPRS的通信功能。
2.1 S3C2440介紹
S3C2440是三星推出的一款基于ARM920TDMI-S內核的16/32位RISC嵌入微處理器,它是專為手持設備與一般的消費電子而設計的,能滿足小型嵌入式系統(tǒng)中低成本低功耗高性能小體積的要求,頻率穩(wěn)定運行在405 MHz,最高可達533 MHz。S3C2440集成了豐富的片上資源,在開發(fā)過程中可有效減少外圍的設備部件,以降低系統(tǒng)的成本。
2.2 存儲系統(tǒng)
本系統(tǒng)使用的SDRAM是由韓國現(xiàn)代公司的HY57V561620芯片,作為數(shù)據(jù)存儲空間。該芯片具有32 MB的存儲空間和16 b數(shù)據(jù)寬度,適合需要大容量和高帶寬的嵌入式系統(tǒng)使用,芯片采用3.3 V的外部電源。整個存儲空間被分為4個Bank,每個Bank的容量為4M×16 b。
使用的NAND FLASH是三星公司推出的K9F1208芯片,作為程序存儲空間。芯片工作電壓為3.3 V,該芯片的存儲容量為64 MB,整個存儲空間被分為4096個Block,每個Block又被分成32個Page,而每個Page的容量為528B(512 B+16B),其中16B空間是作為I/O緩沖器使用的。
考慮到系統(tǒng)需要存儲大量的地圖信息,而NANDFLASH只有64 MB,其中絕大部分的空間已被Linux操作系統(tǒng)的啟動代碼及操作系統(tǒng)的鏡像和系統(tǒng)根文件系統(tǒng)占用。因此,在設計系統(tǒng)時加入了SD卡接口電路。S3C2440集成了SDI接口,該接口支持各種容量的SD卡,并可工作在DMA模式和中斷模式。
2.3 人機接口模塊
LCD液晶屏由于具有體積小、重量輕、低電壓、低功耗等特點,非常適合本系統(tǒng)的要求。LCD屏顯示圖像,不但需要LCD驅動器,還需要有相應的LCD控制器。LCD控制器則有專門的外部電路來實現(xiàn)。
S3C2440芯片集成了LCD控制器,可以支持各種單色,偽彩,真彩液晶屏,TFT彩屏,還提供1通道的LCD專用DMA。本系統(tǒng)中所外接的LCD是NEC 3.5寸觸摸式、彩色液晶屏,型號為NL2432HC22-23B。
2.4 GPS模塊
GPS系統(tǒng)采用高軌測距體制,以觀測站至GPS衛(wèi)星之間的距離作為基本觀測量。通過對4顆或4顆以上的GPS衛(wèi)星同時進行偽距或相位的測量即可推算出接收機的三維位置。根據(jù)所接收到的經(jīng)緯度信息,與電子地圖數(shù)據(jù)進行比較,可在地圖上顯示出車輛當前的位置和行駛方向。
GPS模塊是GPS15L/H。接口特性如下:RS 232輸出,可輸入RS 232或者具有RS 232極性的TTL電平??蛇x的波特率為:300 b/s,600 b/s,1 200 b/s,2 400 b/s,4 800 b/s,9 600 b/s,19 200 b/s。
串口輸出協(xié)議:輸出NEMA0183格式的ASCII碼語句,輸出:GPALM,GPGGA,GPGLL,GPGSA,GPGSV,GPRMC,GPVTG(NMEA標準語句);PGRM B,PGRME,PGRMF,PGRMM,PGRMT,PGRMV(GARMIN定義的語句)。還可將串口設置為輸出包括GPS載波相位數(shù)據(jù)的二進制數(shù)據(jù)。輸入:初始位置、時間、秒脈沖狀態(tài)、差分模式、NMEA輸出間隔等設置信息。在缺省的狀態(tài)下,GPS模塊輸出數(shù)據(jù)的波特率為4 800 b/s,輸出信息包括:GPRMC,GPGGA,GPGSA,GPGSV,PGRME等,每秒鐘定時輸出。
2.5 GPRS模塊
考慮到監(jiān)控車輛是移動的,因此車載終端和監(jiān)控中心之間的數(shù)據(jù)傳輸必須采用無線的方式。本系統(tǒng)采用西門子公司的GPRS模塊SIM300,該模塊適合工作在環(huán)境變化大,周圍環(huán)境較惡劣的場所。本模塊具有標準AT命令接口,可以提供GSM語音、短消息和GPRS上網(wǎng)等業(yè)務。根據(jù)系統(tǒng)的功能要求,本系統(tǒng)只要實現(xiàn)S3C2440與模塊之間的通信,并將GPS的經(jīng)緯信息發(fā)給服務中心,并進行服務中心與客戶終端之間的話音信息傳送。
3 應用程序的設計
3.1 導航程序的設計思路
開發(fā)終端導航應用軟件至少做以下幾個方面的工作:
(1)導航電子地圖一般都是分層的數(shù)字矢量地圖,具有一定的分層結構,比如道路層、興趣點層、文本層等。它提供最低層的地理位置經(jīng)緯度信息,還有對經(jīng)緯度信息以及每個數(shù)據(jù)字段進行詮釋的相關文檔。
(2)平面、球面坐標的轉換程序,導航電子地圖的原始數(shù)據(jù)都是經(jīng)緯度的坐標信息,需要將這些經(jīng)緯度的坐標信息轉換為平面坐標的形式才能制作出電子地圖。在開發(fā)過程中,實現(xiàn)某種功能還需要平面坐標和球面坐標的來回轉換。
(3)圖形用戶界面。本系統(tǒng)選用QT/Embeded來作為圖形用戶接口界面。QT Designer是一個跨平臺的符合C++規(guī)范的圖形用戶界面程序開發(fā)工具。QT本身是一個類庫,它遵循C++規(guī)范,同時對C++作了一些擴充。它主要用于Linux系統(tǒng),是構造KDE桌面環(huán)境的基礎。
3.2 導航程序的開發(fā)
導航電子地圖數(shù)據(jù)實際上是分層的矢量地圖形式,首先需要使用QT的圖形顯示函數(shù)將矢量地圖分層畫出,分為道路層、道路名層、交叉結點層、興趣點層等,然后在此基礎上開發(fā)出相應的功能。整幅地圖可用一個對象來表示,每個矢量地圖層可看作是大對象內的一個小對象,它們之間是包含關系。以后的操作是根據(jù)不同的功能對不同的矢量層對象進行操作。
3.3 服務中心的程序設計
服務中心的軟件,主要負責對車輛的位置進行監(jiān)控,并對運營車輛進行調控。設計本系統(tǒng)時,為節(jié)省開發(fā)時間,使用了第三方的地圖軟件,在開發(fā)時主要做的就是在PC機端接上GPRS模塊,用于接收終端發(fā)送過來的位置信息,把接收到的信息進行解析,并把取得的數(shù)據(jù)提供給地圖軟件。
車輛跟蹤監(jiān)控是系統(tǒng)最基本、最重要的功能,是指系統(tǒng)有效運行時對車輛行駛狀態(tài)進行實時監(jiān)控,在電子地圖上實時地顯示地圖匹配后受控車輛的運行軌跡。監(jiān)控中心通信服務器接收到車載單元發(fā)送來的信息后轉發(fā)給指定的監(jiān)控臺,監(jiān)控臺系統(tǒng)軟件對定位數(shù)據(jù)解析后,根據(jù)位置信息將車輛在電圖上顯示出來。車輛跟蹤監(jiān)控程序設計流程圖如圖2所示。
4 Linux交叉編譯環(huán)境的建立及程序的實現(xiàn)
基于Linux操作系統(tǒng)的應用開發(fā)環(huán)境一般是由目標系統(tǒng)硬件(開發(fā)板)和宿主PC機所構成。目標硬件開發(fā)板用于運行操作系統(tǒng)和系統(tǒng)應用軟件,而目標板所用到的操作系統(tǒng)的內核編譯、應用程序的開發(fā)和調試則需要通過宿主PC機來完成(所以稱為交叉編譯)。雙方之間一般通過串口,并口或以太網(wǎng)接口建立連接關系。
4.1 Boot-loader啟動代碼的原理
在嵌入式系統(tǒng)中,系統(tǒng)引導程序(Boot-loader)可以完成對ARM板上的主要部件如CPU,SDRAM,F(xiàn)LASH,串行口等進行初始化操作,也可以下載文件到系統(tǒng)板,對FLASH進行擦除與編程。Boot-loader主要作用是初始化一些必要的設備,然后調用內核,同時傳遞參數(shù)給內核。其工作流程如下:檢測SDRAM的位置和大小并進行初始化;初始化并啟動一個串口,作為內核的控制臺;檢測系統(tǒng)結構,檢測機器類型;創(chuàng)建和初始化內核,傳遞系統(tǒng)內存的大小和位置,以及根文件系統(tǒng)的位置。
4.2 配置MINICOM
在Linux操作系統(tǒng)Xwindow界面下建立終端(在桌面上點擊右鍵→新建終端),在終端的命令行提示符后輸入MINICOM,回車,出現(xiàn)WINCOM的啟動畫面,然后按照提示設置即可。
4.3 編程和調試
在此交叉編譯環(huán)境下,根據(jù)前面提到的GPS定位原理,經(jīng)過編程和調試,在目標平臺的液晶顯示屏上可顯示本地的地理位置信息。
5 結論
本文在分析課題的研究背景與意義,根據(jù)系統(tǒng)的需求,給出系統(tǒng)的總體設計方案,完成了基于S3C2440的ARM9處理器設計的車載GPS/ GPRS系統(tǒng)的設計研究,包括系統(tǒng)硬件平臺的設計以及嵌入式操作的移植和上層應用軟件開發(fā)的總體思路。
基于S3C2440硬件平臺,利用Linux嵌入式操作系統(tǒng)進行平臺資源的整合,并根據(jù)GPS提供的位置信息進行車輛定位,利用GPRS無線通信手段實現(xiàn)終端與服務中心的通信,完成車輛的監(jiān)控。本系統(tǒng)對通信服務器的性能做了優(yōu)化,解決了同類產品普遍存在的通信服務器性能瓶頸問題,能夠為使用者帶來管理和決策的信息化依據(jù),提供管理的科學性與準確性。