基于GPRS網(wǎng)絡(luò)的GPS圖形導(dǎo)航儀
單片機(jī)與嵌入式系統(tǒng)應(yīng)用

摘要 通過研究GPS導(dǎo)航以及基于GPRS無線網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)慕M合導(dǎo)航技術(shù), 給出基于GPRS網(wǎng)絡(luò)的GPS圖形導(dǎo)航儀單元的設(shè)計(jì)方案。由GPS接收機(jī)、ARM微控制器、GPRS無線模塊、大容量Flash存儲芯片,以及大屏幕的TFT彩色液晶屏組成。本圖形導(dǎo)航設(shè)備能幫助使用者獲得極佳的地理信息導(dǎo)航幫助,以及對重要信息的監(jiān)控。
關(guān)鍵詞 通用分組無線業(yè)務(wù)(GPRS) 全球定位系統(tǒng)(GPS) 圖形 導(dǎo)航儀

引言

  隨著近年來科技的發(fā)展以及人們對通信及導(dǎo)航技術(shù)的要求進(jìn)一步提高,以全球定位系統(tǒng)(GPS) 定位技術(shù)為主的定位導(dǎo)航及監(jiān)控技術(shù)得到了高速的發(fā)展。GPS導(dǎo)航定位技術(shù)在眾多的行業(yè)中都得到了廣泛的應(yīng)用,如交通、航海、安全等眾多的領(lǐng)域。然而,大多數(shù)已經(jīng)投入使用的GPS導(dǎo)航監(jiān)控設(shè)備里,很少有通過無線網(wǎng)絡(luò)把重要的數(shù)據(jù)傳輸給監(jiān)控者功能的設(shè)備。其余附帶了數(shù)據(jù)傳輸功能的設(shè)備大多數(shù)也僅僅是通過發(fā)送短消息的方式進(jìn)行重要數(shù)據(jù)的傳輸和接收,但是由于短消息本身具有延時不確定,速度慢以及容易丟失等缺點(diǎn),使得整個系統(tǒng)的穩(wěn)定性下降。

  本系統(tǒng)通過基于全新的GPRS無線網(wǎng)絡(luò)來發(fā)送重要數(shù)據(jù),采用大屏幕的TFT彩色液晶屏作為地圖顯示設(shè)備,使定位的可視化效果及數(shù)據(jù)傳輸功能的穩(wěn)定性都得到了極大的加強(qiáng)。

1  系統(tǒng)組成及特點(diǎn)

  在本導(dǎo)航設(shè)備中,涉及的核心技術(shù)是通用分組無線業(yè)務(wù)GPRS和全球定位系統(tǒng)GPS,下面簡單介紹這兩個系統(tǒng)的核心模塊。

  GPS(Global Positioning System,全球定位系統(tǒng)),是美國的國防導(dǎo)航衛(wèi)星系統(tǒng),是一個全球性、全天候、全天時、高精度的導(dǎo)航定位和時間傳遞系統(tǒng)。24顆衛(wèi)星位于6個傾角為55°的軌道平面內(nèi),高度為20 182 km,周期近12小時。衛(wèi)星用兩個 L波段頻率發(fā)射單向測距信號,區(qū)別不同衛(wèi)星采用碼分多址。它是一個軍民兩用系統(tǒng),提供兩個等級的服務(wù)。GPS系統(tǒng)是為全球范圍內(nèi)的飛機(jī)、艦船、坦克、地面車輛、步兵、導(dǎo)彈以及航天飛機(jī)等提供全天候、連續(xù)、實(shí)時、高精度的三維位置、三維速度和精確時間,因此,具有極高的軍用價值和民用前景。

  GPRS(General Packet Radio Service,通用無線分組業(yè)務(wù)),是一種基于GSM系統(tǒng)的無線分組交換技術(shù),提供端到端的、廣域的無線IP連接。通俗地講,GPRS是一項(xiàng)高速數(shù)據(jù)處理的技術(shù),方法是以“分組”的形式傳送資料到用戶手上。雖然GPRS是現(xiàn)有GSM網(wǎng)絡(luò)向第三代移動通信演變的過渡技術(shù),但是它在許多方面都具有顯著的優(yōu)勢。GPRS是歐洲電信協(xié)會GSM系統(tǒng)中有關(guān)分組數(shù)據(jù)的標(biāo)準(zhǔn)。它采用信道捆綁(目前GPRS 的設(shè)計(jì)可以在一個載頻或8 個信道中實(shí)現(xiàn)捆綁) 和增強(qiáng)數(shù)據(jù)速率的方法實(shí)現(xiàn)高速接入,理論上可提供高達(dá)115 kbps的空中接口傳輸速率,使若干移動用戶能夠同時共享一個無線信道,一個移動用戶也可以使用多個無線信道。實(shí)際發(fā)送或接收數(shù)據(jù)包的用戶僅占很少一部分網(wǎng)絡(luò)資源,并且網(wǎng)絡(luò)容量只有在實(shí)際傳輸時才被占用。GPRS與現(xiàn)有的GSM語音系統(tǒng)最根本的區(qū)別是: GSM是一種電路交換系統(tǒng),而GPRS是一種分組交換系統(tǒng)。因此,GPRS特別適用于間斷的、突發(fā)的或頻繁的、少量的數(shù)據(jù)傳輸,也適用于偶爾的大數(shù)據(jù)量傳輸。這一特點(diǎn)正適合大多數(shù)移動互聯(lián)和設(shè)備對傳輸數(shù)據(jù)的要求。

  GPS-GPRS定位系統(tǒng)車載終端的組成如圖1所示。


圖1

  導(dǎo)航儀的大致工作流程為:首先,終端導(dǎo)航設(shè)備通過自帶的GPS接收模塊獲得自身的具體地理位置信息以及附屬信息(如行駛速度和時間等)。然后,通過對內(nèi)置的海量存儲設(shè)備中的地圖,把其對應(yīng)當(dāng)前位置的地圖部分在TFT彩色液晶屏上顯示出來,并且同時顯示自身的狀態(tài)(如速度、時間、收到了控制中心的何種消息等),設(shè)置自帶的GPRS模塊撥號上網(wǎng),實(shí)現(xiàn)與Internet的連接。接下來,就可將剛才通過GPS接收模塊所獲得的具體信息傳輸給指定的網(wǎng)絡(luò)服務(wù)器。

  網(wǎng)絡(luò)服務(wù)器通過特定的上位機(jī)軟件或相應(yīng)的傳輸協(xié)議,對所監(jiān)控的終端設(shè)備進(jìn)行當(dāng)前所在的位置、速度等相關(guān)信息的實(shí)時監(jiān)控,并可通過網(wǎng)絡(luò)對受控終端進(jìn)行控制,實(shí)現(xiàn)移動終端與監(jiān)控中心的雙向數(shù)據(jù)傳輸,完成對受控終端運(yùn)行狀態(tài)、安全狀態(tài)、技術(shù)狀態(tài)的監(jiān)控。

2  導(dǎo)航系統(tǒng)原理

  整個導(dǎo)航系統(tǒng)的原理框圖如圖2所示。其中核心控制器使用基于ARM7內(nèi)核的AT91SAM7S64;GPS接收模塊采用瑞士UBlox公司的TIMLH,信號接收能力強(qiáng);GPRS模塊采用Motorola公司的G20無線模塊,特點(diǎn)是內(nèi)嵌了TCP/IP協(xié)議,使用簡單,性能穩(wěn)定,顯示部分采用的是Sharp公司生產(chǎn)的8寸TFT彩色液晶屏,通過顯示當(dāng)前位置的彩色地圖,達(dá)到良好的可視化效果。片外存儲設(shè)備使用的是Samsung公司生產(chǎn)的大容量Flash存儲體,優(yōu)點(diǎn)是價格便宜,與控制器的接口簡單(高速SPI總線)。


圖2

  本導(dǎo)航終端主要的功能如下:

  ①  終端用戶進(jìn)行當(dāng)前所在地理位置的查詢;
  ②  當(dāng)獲得了當(dāng)前的地理位置信息后,在TFT液晶屏上顯示出對應(yīng)的地圖區(qū)域;
 ?、?nbsp; 導(dǎo)航終端可對指定了網(wǎng)絡(luò)服務(wù)器發(fā)送自身的相關(guān)信息,如地理位置、自身狀態(tài)等;
 ?、?nbsp; 導(dǎo)航終端通過接收網(wǎng)絡(luò)服務(wù)器發(fā)送的控制命令進(jìn)行相應(yīng)的控制;
 ?、?nbsp; 終端用戶可以通過GPRS模塊撥打電話。

  系統(tǒng)的工作原理如下:

  導(dǎo)航終端的核心控制部分是基于ARM7內(nèi)核的AT91SAM7S64微控制器,其核心是對GPS接收模塊的定位數(shù)據(jù)讀?。粚PRS模塊的控制,包括連接Internet、向網(wǎng)絡(luò)監(jiān)控服務(wù)器發(fā)送數(shù)據(jù)和讀取服務(wù)器發(fā)送過來的數(shù)據(jù);最后是針對Flash存儲體的控制,通過對當(dāng)前獲得的地理位置信息,讀取存儲在Flash存儲體中所存儲的地圖的對應(yīng)部分,然后在TFT彩色液晶屏上顯示出來。

  其中,控制器對GPRS模塊的控制是通過串行口UART0實(shí)現(xiàn)的,通過發(fā)送對應(yīng)的AT命令實(shí)現(xiàn)對G20模塊的控制,如連接Internet、向服務(wù)器發(fā)送信息和接收數(shù)據(jù)、撥打電話等。關(guān)鍵命令如下:

at+mipcall=1,cmnet //建立一個無線GPRS鏈接
+MIPCALL: 10.103.201.135
    //返回本地IP地址(注:當(dāng)GPRS模塊撥號上網(wǎng)后,會獲得一個服務(wù)器提供的唯一IP,這里以10.103.201.135為例)
at+mipopen=1,2000,"10.103.67.30",3000,1
    //打開一個SOCKET,本地端口為2000,目標(biāo)IP地址為
    //“10.103.67.30”
OK
+MIPOPEN: 1,1 //返回目標(biāo)端口為3000,協(xié)議類型為UDP
at+mipsend=1,"41424344" //向服務(wù)器發(fā)送“ABCD”4個字母,這里以發(fā)送“ABCD”字//符為例,來代替所要發(fā)送的數(shù)據(jù)
+MIPSEND: 1,1367
OK//發(fā)送成功
at+mippush=1//準(zhǔn)備接收數(shù)據(jù)
+MIPPUSH: 0
OK//接收數(shù)據(jù)成功
+MIPRUDP: 211.139.189.180,47280,1,5,5152535455  //接收到服務(wù)器發(fā)送來的數(shù)據(jù)“QRSTU”字符

  對GPS模塊的數(shù)據(jù)接收是通過串行口UART1實(shí)現(xiàn)的,通過設(shè)定GPS模塊指定的波特率從模塊的串行口獲得定位數(shù)據(jù)。GPS通用的命令格式是NMEA0183,而最需要的關(guān)鍵信息是其中的一組定位信息。如果此時GPS接收機(jī)和衛(wèi)星的通信正常,則可以接收到的定位信息的那組數(shù)據(jù)格式如下:

  $GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E

  數(shù)據(jù)說明如下:

  $GPRMC代表GPS推薦的最短數(shù)據(jù);
  204700 UTC_TIME代表24小時制的標(biāo)準(zhǔn)時間,按照小時/分鐘/秒的格式;
  A A或者 V A表示數(shù)據(jù)“OK”,V表示一個警告;3403.868 LAT緯度值,精確到小數(shù)點(diǎn)前4位,后  3位N LAT_DIR N表示北緯,S表示南緯;
  11709.432 LON經(jīng)度值,精確到小數(shù)點(diǎn)前5位,后3位W LON_DIR W表示西經(jīng),E表示東經(jīng)。

  如果當(dāng)前沒有和衛(wèi)星取得聯(lián)系,那么字符串的格式為:

$GPRMC,UTC_TIME,V,...

  下面是一個例子:

  $GPRMC,204149,V,,,,,,,170698,,*3A

  由于這里僅僅需要接收的信息為定位信息,即GPS推薦的最短數(shù)據(jù),所以在接收GPS模塊的數(shù)據(jù)時,只需要判斷每行數(shù)據(jù)開頭的關(guān)鍵字是否為“$GPRMC”,如是,則接收下來。

  最后是針對Flash存儲體和TFT彩色液晶屏的控制。這里,CPU使用普通的SPI高速串行總線來驅(qū)動Flash存儲體??梢詮漠?dāng)?shù)氐目睖y部門獲得普通精度的數(shù)字彩色經(jīng)緯地圖,并將其存儲到Flash存儲體中,而用普通的I/O引腳來驅(qū)動TFT彩色液晶屏,將從GPS模塊里獲得的定位信息進(jìn)行分析,然后通過處理,再在LCD上面顯示Flash存儲體中所存儲的地圖的對應(yīng)部分。

3  系統(tǒng)軟件設(shè)計(jì)

  在整個GPS導(dǎo)航系統(tǒng)中,全套軟件系統(tǒng)由用戶軟件、導(dǎo)航儀底層驅(qū)動軟件和服務(wù)器端控制軟件組成。這里,以導(dǎo)航儀底層驅(qū)動軟件來說明整個系統(tǒng)的軟件是如何設(shè)計(jì)和運(yùn)作的。

  整個導(dǎo)航儀底層驅(qū)動軟件劃分成若干個模塊,由主模塊和多個子模塊組成。這里,使用了實(shí)時嵌入式系統(tǒng)μC/OS-II,其優(yōu)點(diǎn)是功能強(qiáng)大,對系統(tǒng)資源的占用要求小,實(shí)時響應(yīng),而且可以很輕松地實(shí)現(xiàn)多個任務(wù)的調(diào)度。這里,將所有的子程序設(shè)置成不同的任務(wù),如下:

 ?、?nbsp; OSTaskCreate(SystemInit, (void *)0, (OS_STK *)&SystemInit[OSTaskStkSiz], 4);
  //整個系統(tǒng)的初始化,作為第一個任務(wù),包括對CPU、GPRS、GPS以及LCD的初始化工作
 ?、?nbsp; OSTaskCreate(GPS_Get_Data, (void *)0, (OS_STK *)&GPS[OSTaskStkSiz], 5);
  //將從GPS模塊讀取定位信息作為第二個任務(wù)
 ?、?nbsp; OSTaskCreate(GPRS_Send_Data, (void *)0, (OS_STK *)&GPRS_S[OSTaskStkSiz], 6);
  //設(shè)置通過GPRS模塊向指定的網(wǎng)絡(luò)服務(wù)器發(fā)送數(shù)據(jù)作為一個任務(wù)
  ④  OSTaskCreate(GPRS_Get_Data, (void *)0, (OS_STK *)&GPRS_R[OSTaskStkSiz], 7);
  //設(shè)置通過GPRS模塊從指定的網(wǎng)絡(luò)服務(wù)器接收數(shù)據(jù)作為另外一個任務(wù)
 ?、?nbsp; OSTaskCreate(LCD_Draw, (void *)0, (OS_STK *)&LCD[OSTaskStkSiz], 8);
  //驅(qū)動TFT LCD讓其顯示對應(yīng)當(dāng)前地理位置區(qū)域的地圖部分,作為整個顯示部分的任務(wù)
 ?、?nbsp; OSTaskCreate(Flash_Drive, (void *)0, (OS_STK *)&LCD[OSTaskStkSiz], 9);
  //驅(qū)動Flash存儲體來讀取對應(yīng)地理位置信息的地圖部分,從而為LCD顯示部分作好準(zhǔn)備

  完成整個系統(tǒng)軟件的模塊化設(shè)計(jì)后,通過調(diào)用OSStart()函數(shù)讓整個系統(tǒng)運(yùn)行起來。從以上的軟件組成說明,可以了解整個系統(tǒng)軟件的工作流程如下:

  ①  CPU通過GPS模塊獲得當(dāng)前的地理位置信息。
  ②  CPU利用剛才所獲得的GPS定位信息,可以從Flash存儲體中獲得對應(yīng)當(dāng)前區(qū)域的地圖部分,然后通過驅(qū)動TFT彩色液晶屏將其顯示出來。
 ?、?nbsp; 如需要,CPU通過GPRS模塊撥號連接上Internet后,將其所獲得的定位信息發(fā)送到指定的網(wǎng)絡(luò)服務(wù)器上,或接收從服務(wù)器上發(fā)過來的數(shù)據(jù)。
  ④  接收到服務(wù)器的控制命令后,返回響應(yīng)并采取相應(yīng)措施,如停止GPS數(shù)據(jù)的接收,改變導(dǎo)航終端通過GPRS網(wǎng)絡(luò)向服務(wù)器發(fā)送數(shù)據(jù)的周期等。

  最終搭建成的導(dǎo)航系統(tǒng)如圖3所示。


圖3

  在實(shí)際的測試中,使用了當(dāng)?shù)仄胀ň鹊臄?shù)字彩色經(jīng)緯地圖,并將其裝載到了導(dǎo)航系統(tǒng)的Flash存儲體中。通過在實(shí)際露天的測試對比,本導(dǎo)航系統(tǒng)可以良好地通過讀取當(dāng)前的GPS定位信息,在TFT彩色液晶屏上顯示出對應(yīng)當(dāng)前區(qū)域的地圖部分,并在安裝了特定網(wǎng)絡(luò)監(jiān)控軟件的服務(wù)器上很好地接收到導(dǎo)航終端發(fā)送過來的定位信息以及相關(guān)數(shù)據(jù)。

結(jié)語

  在本套導(dǎo)航系統(tǒng)中,其核心設(shè)計(jì)與以往傳統(tǒng)的GPSGSM定位系統(tǒng)有著很大的區(qū)別。首先,利用GPRS無線網(wǎng)絡(luò)來傳輸數(shù)據(jù)與以往通過GSM網(wǎng)絡(luò)發(fā)送短信的方式相比,無論是運(yùn)營成本,還是可靠性都得到了極大的改善,尤其是其運(yùn)營成本,相比起傳統(tǒng)的GPS-GSM定位系統(tǒng)下降了2個數(shù)量級。其次,本導(dǎo)航系統(tǒng)中良好的可視化效果為用戶提供了相當(dāng)優(yōu)秀的導(dǎo)航界面,相比起來,市面上傳統(tǒng)的GPS定位系統(tǒng)僅僅顯示了當(dāng)前的GPS定位的數(shù)據(jù),當(dāng)前的周邊地理狀況則無法良好地提供給用戶;而本套導(dǎo)航系統(tǒng),控制核心采用的高性能的基于ARM7內(nèi)核的微控制器,因而無論是性能還是可升級性方面,都比起使用傳統(tǒng)的8位單片機(jī)作為控制核心有著相當(dāng)大的優(yōu)勢。目前,隨著人們對GPS導(dǎo)航技術(shù)的要求一步步的提升,以及GPRS網(wǎng)絡(luò)在國內(nèi)的高速普及,我們相信以這兩者相結(jié)合的新一代導(dǎo)航技術(shù)將會獲得極大的成功。

參考文獻(xiàn)
[1]  曹軍. 基于GPRS實(shí)現(xiàn)橋梁檢測遠(yuǎn)程數(shù)據(jù)傳輸, 森林工程, 2006(2).
[2]  畢危危. 基于GPRS和DGPS的車輛管理系統(tǒng),北京交通大學(xué)學(xué)報,2006(2).
[3]  Motorola. G20_AT_Commands, 2005-04-06.
[4]  UBlox. Application for TIMLH GPS module, 2005-03.
[5]  張勤,李家權(quán). GPS測量原理及應(yīng)用. 北京:科學(xué)出版社, 2005-07.
[6]  徐愛鈞. IAR EWARM嵌入式系統(tǒng)編程與實(shí)踐. 北京:北京航空航天大學(xué)出版社, 2006.
[7]  李平均. 基于GPRS網(wǎng)絡(luò)的單片機(jī)的Internet接入. 微電子學(xué)與計(jì)算機(jī), 2006(3)