??? 摘 要:提出一種基于嵌入式設備的個人GIS助理系統的設計方案,并分別對嵌入式便攜終端和監控平臺" title="監控平臺">監控平臺的實現過程進行了闡述。該系統經過實際測驗,達到了預期的設計效果。
???關鍵詞: GIS;Linux;ARM;嵌入式系統
?
??? 近年來,地理信息系統GIS技術已經廣泛地應用于汽車導航、野外測繪、物流運輸及軍事指揮等眾多領域,但用于個人的GIS導航助理系統還不多見。針對這一現狀,本文提出一種基于嵌入式設備的個人GIS助理系統的設計方案。利用本系統,可以實現個人的定位、導航、監控、報警等多種功能。
1 系統體系結構及工作原理
個人GIS助理系統由便攜式終端和監控平臺兩個部分組成,其體系結構如圖1所示。
?
系統的工作原理:便攜式終端由個人攜帶,可以為用戶實現定位、導航以及遇險報警等功能,當用戶開啟報警按鈕時,用戶所在位置的GPS數據信息通過GPRS網絡發送到監控平臺,并在數字矢量地圖中顯示出用戶的位置,便于用戶得到及時救助。
2 便攜式終端的設計與實現
2.1 終端的硬件結構
便攜式終端直接與用戶交互,完成數字地圖" title="數字地圖">數字地圖顯示及定位、導航及報警信號的發送任務,硬件結構由如下幾個部分組成:ARM處理器、顯示模塊、GPS模塊、GPRS模塊、存儲模塊和報警模塊等,如圖2所示。
?
2.1.1 ARM處理器
ARM處理器是整個便攜式終端的核心,需要處理大量的數據及運算。為適應系統的整體性能,選用三星公司的S3C2410處理器。S3C2410基于ARM 920T內核,頻率為203MHz,具有MMU虛擬內存管理單元,搭配第三方公司生產的接口板,可擴充串口、網卡、USB接口、LCD接口、JTAG接口等,方便系統的調試和運行。
2.1.2? GPS模塊
GPS數據接收模塊采用ROCKWELL公司的JUPITER接收器,它具有12個并行通道和高靈敏度RF部分,可快速捕捉衛星信號,在開闊空間,冷啟動約1分鐘,定位精度小于15m,并提供自動存儲功能,可以在掉電時將當時信息固化在芯片內部。
2.1.3? GPRS模塊
通用分組無線業務GPRS(General Packet Radio Service)是在 GSM基礎上發展起來的一種分組交換的高效數據傳輸方式。相對于低傳輸速率" title="傳輸速率">傳輸速率的GSM(916Kb/s),GPRS具有最高可達17 112Kb/s的傳輸速率。GPRS具有“永遠在線”的優點,按照數據流量計費,計費方式更符合用戶需要。此外,GPRS支持TCP/IP協議,用戶可以直接訪問 Internet站點。它還可以提供一系列交互式業務:點對點面向連接的數據業務、點對點無連接型網絡業務、單點對多點業務等[1]。
本設計采用西門子公司的MC39終端,它支持GPRS/GSM兩種網絡方式,硬件接口采用標準的RS232串口,通過它向GPRS模塊發送AT命令,可以對GPRS模塊進行初始設置和實現網絡連接、數據傳送等功能。
2.2? 終端的軟件設計
便攜式終端的軟件設計主要分為嵌入式操作系統的移植、Microwindows和PPP撥號程序的移植、嵌入式GIS程序以及報警和通信模塊設計。
2.2.1? 嵌入式操作系統和Microwindows的移植
眾所周知,Linux系統是一款免費、開源的操作系統,具有極強的穩定性和可移植性,用戶可以根據自己的需要隨意更改源代碼,使其適應不同的應用。
Linux移植到嵌入式平臺一般分為下面幾個步驟:下載源碼、建立交叉編譯環境,配置編譯內核,制作文件系統,下載、調試內核。
Microwindows起源于NanoGUI項目,是由Gregory Haerr組織的一個開放源代碼項目,也是嵌入式系統" title="嵌入式系統">嵌入式系統中廣為使用的一種圖形用戶接口(GUI)。它采用了類似GAL層和IAL層的設計思想,使用分層結構設計方法,可移植性非常好。另外,它還提供了多種應用程序接口(API)。考慮到開發成本和移植的相對簡單性,本設計采用Microwindows作為便攜式終端的GUI。
Microwindows是一個可配置的軟件包,可以針對嵌入式系統的不同需求進行配置、裁剪、正確的配置是成功移植Microwindows的關鍵。配置內容包括基本發行包的設置,各種字體的選擇和各種圖像處理包的安裝等。配置完成后,就可以進行下一步的編譯工作了。
如果編譯成功,在mwsrc/bin目錄下會產生Nano-X的服務器程序nano-X、Nano-X窗口管理器程序nanowm和一些演示程序;在mwsrc/lib目錄下會產生libmwin.a、libnano-X.a等Microwindows/Nano-X API函數庫,用戶可以利用這些函數庫來開發自己的應用。
2.2.2 PPP撥號程序的移植及建立GPRS無線通信鏈路
PPP(Point to Point Protocol)是專門為解決Modem撥號上網的問題而設計的。PPP 在連接過程中所處的主要狀態有死亡、建立、認證、網絡和終止[2]。當鏈路" title="鏈路">鏈路是死亡時沒有物理層連接,成功建立物理連接后鏈路變成建立,這時LCP 選項商議開始,如果成功則進入認證。如果在LCP 階段要求了認證, 此時就可以檢查PEER的標志,然后進入網絡階段,采用相應的NCP協議配置網絡層。在完成數據傳輸后,鏈路進入終止階段,并返回死亡。PPP鏈路建立簡要流程如圖3所示。
?
PPP撥號程序移植成功后,就可以利用腳本程序撥號上網了,下面是它的一個簡單示例[3]:
/dev/ttyS0???????????? //指定設備端口號為ttyS0即串口0
115200???????????????? //設置設備波特率
connect "/usr/sbin/chat"?
???? ? //向無線模塊發送命令并提供登陸信息
/usr/sbin/pppd??????? ??? //調用pppd撥號程序
AT+CGDCONT=1,"IP","cmnet"
???? ????????????????????? //設置APN:cmnet
ATD*99***1#????? ????? //撥號*99***1#
2.2.3? 嵌入式GIS繪圖引擎的設計
地圖顯示是GIS系統最基本的一個功能,實現的關鍵是了解GUI提供的接口,從地圖文件中取得圖層相關數據,然后用圖形工具顯示出來。在本設計中,利用Microwindows提供的Nano-X API實現。
Nano-X使用Xlib類型的窗口,繪圖時使用窗口的標識值,它采用客戶/服務器模式,客戶端向服務器端發送繪圖請求,服務器端調用圖形庫對應函數實現最終的繪制命令。服務器端為各種類型的繪圖元素分配資源,以后所有的繪圖操作都在服務器端完成。所以在運行客戶應用程序前必須先啟動服務器進程Nano-X。Nano-X的服務模式如圖4所示。
?
下面是繪圖程序的框架,API的入口點是標準C語言函數Main( ):
Main(…) ???????????????????????????????? //程序入口
{
GrOpen();??????? ????????? //與服務器端建立連接
gid=GrNewGC();????????? //創建圖形上下文
wid=GrNewWindowEx(…); ?????? ? //創建窗口
??? GrSelectEvents(); ??????????? ? //選擇要處理的事件
GrMapWindow(wid);????????????????????????? //顯示窗口
GrMainLoop(NxEventHandler);??????????????? //捕獲事件
}
2.2.4? 報警及數據通信模塊的設計
報警及數據通信程序采用TCP套接字的客戶/服務器模式實現,客戶和服務器分別對應便攜終端和監控中心,其基本流程如下:運行客戶端程序,讀取GPS數據信息并存儲于本地緩存器,通過GPRS無線鏈路與具有獨立公網IP的監控中心建立SOCKET連接,實現數據的無線傳輸。
3 監控平臺設計
作為個人GIS助理系統的重要組成部分,監控平臺應能夠實時接收便攜式終端用戶所發送的位置信息,完成接收報警、發送指令等功能。在硬件方面需要有一臺具有公網獨立IP的X86體系結構的計算機,運行Windows操作系統,在軟件結構上主要分為GPS數據接收及解析、GIS功能模塊、位置信息顯示以及報警系統四大模塊,如圖5所示。
?
工作原理如下:GPS數據通過無線鏈路傳送到監控中心后,首先經過數據解析程序解析成人們容易理解的時間、經緯度、速度等信息,同時調用GIS模塊,繪制數字地圖,并將解析后的位置信息顯示在地圖上。如果此時用戶發生意外并發出報警信號,監控人員就可以及時準確地掌握事故發生位置,快速提供幫助。
監控平臺的軟件采用Delphi編寫,所采用的數字地圖由中科大GPS實驗室具有獨立知識產權的數字地圖生產平臺制作。圖6是監控平臺軟件的截面圖。
?
本文介紹的個人GIS助理系統在中科大校園的測試中取得了良好的效果,它利用GPRS網絡作為網絡傳輸途徑,充分發揮通用分組無線業務傳輸速率高、系統延時小的特點,但該系統也受到了移動通信信號強弱的限制,在實際測試中,如果遇到信號盲區,數據傳輸就會延誤,使得監控平臺端的數字地圖上信息顯示發生滯后。
另外,便攜式終端采用了ARM嵌入式系統,它具有強大的運算能力以及良好的可移植性,用戶可方便地加入自己的應用以及后續開發工作,為系統功能的進一步完善提供了途徑。
參考文獻
[1]?歷容衛.GPRS技術與嵌入式系統應用[J].江蘇技術師范學院學報,2003,9(4).
[2]?羅亮,彭容修.GPRS在嵌入式手持終端上的實現[J].現代電子技術,2004,(4).
[3]?TANZILLI S. PPP over GPRS link [EB/OL]. http://www.acmesystems.it/?id=13,2007-02.