基于GPRS業(yè)務(wù)的定位信息傳輸系統(tǒng)
關(guān)鍵詞:GPRS;GPS;數(shù)據(jù)業(yè)務(wù);定位;ATMEGA128
前言
目前,GPS定位信息傳輸管理系統(tǒng)已廣泛應(yīng)用在生產(chǎn)生活的各個領(lǐng)域,警車、救護車、運鈔車、長途運輸車上都可以看到它的蹤影。這些定位信息傳輸系統(tǒng)大多是基于手機短消息業(yè)務(wù)的。但這種形式存在著很多不足,首先它通信費用較高,通常每條短消息承載的坐標(biāo)信息也不會太多;再者通過手機短消息發(fā)送延時不確定,這會導(dǎo)致定位跟蹤目標(biāo)的丟失;另外一般短信息服務(wù)器端必須向電信公司申請專門的業(yè)務(wù)服務(wù),才能利用自己的服務(wù)器進行短消息的接受和處理。電信的此項業(yè)務(wù)價格不菲,一般單位負擔(dān)不起。
利用GPRS業(yè)務(wù)可以較為圓滿的解決上述問題。首先GPRS系統(tǒng)費用較低。GPRS建立鏈路以后,相當(dāng)于專線直接接入因特網(wǎng),利用TCP/IP協(xié)議,數(shù)據(jù)可靠而且穩(wěn)定。而且信息管理中心的服務(wù)器只需要是普通的接入因特網(wǎng)的主機,大大節(jié)省了服務(wù)器端的開銷。
本文討論的就是就是利用GPRS業(yè)務(wù)傳送GPS定位信息的實例模型。當(dāng)然,GPS定位信息只是整個信息傳輸管理系統(tǒng)的一個應(yīng)用,通過更換不同的數(shù)據(jù)源模塊可實現(xiàn)不同的信息傳輸,從而構(gòu)建不同的信息傳輸管理系統(tǒng),如遠程抄表系統(tǒng)、水文數(shù)據(jù)采集系統(tǒng)等等。
圖1 移動終端硬件組成框圖
系統(tǒng)構(gòu)成
整個信息傳輸管理系統(tǒng)由移動終端、GSM網(wǎng)絡(luò)、因特網(wǎng)、信息管理中心服務(wù)器四部分組成。
移動終端將GPS數(shù)據(jù)組成GPRS數(shù)據(jù)分組,通過GPRS網(wǎng)絡(luò)和因特網(wǎng),上傳到信息管理中心服務(wù)器。服務(wù)器應(yīng)當(dāng)具備至少一個IP地址,并且擁有電子地圖。
信息管理中心也可以通過因特網(wǎng)和GPRS網(wǎng)絡(luò)向移動終端發(fā)出各種指令。
移動終端硬件組成
移動終端的硬件部分主要有GPRS手機模塊、GPS模塊、MCU及電源四部分,連接關(guān)系如下圖1所示。
其中的GPRS模塊為西門子的MC35,這是一個完整功能的手機模塊,通過串口可以實現(xiàn)對此模塊的控制和數(shù)據(jù)傳輸,包括短信、WAP、GPRS、CSD等。另外加上模擬部分電路,可實現(xiàn)GSM話音通信功能。對MC35的控制用的是AT命令方式。
GPS模塊是EverMore公司的EB-023CV-A/IV-A,它通過外接天線接收GPS信號,計算出所處位置的地理信息,通過串口將此信息傳送給MCU。
MCU采用ATMEL公司的ATMEGA128八位控制處理器,選擇此MCU是基于諸多考慮的。首先是功能強大,幾乎在單片中包容了所有常用的功能。其次,價格相對便宜。再者開發(fā)容易,開發(fā)裝置便宜,而且支持C語言源程序調(diào)試。
在此移動終端中,我們采用了如下的一些必需的功能。
首先是它的兩個硬件串口,這兩個串口的波特率產(chǎn)生是獨立的,而且不占用芯片的定時器,使用起來相當(dāng)靈活。這兩個串口分別對GPS模塊和GPRS模塊通信,對GPS模塊用4800bps或9600bps單收,對GPRS模塊用19200bps收發(fā)。GPS模塊把位置信息以固定的格式從串口發(fā)出,CPU接收GPS模塊送來的數(shù)據(jù),解析出其中有用的數(shù)據(jù)進行封裝,然后以規(guī)定的格式通過第二個串口交給GPRS模塊,將數(shù)據(jù)送上因特網(wǎng)。
其次,4K字節(jié)的EEPROM可用于存放一些可設(shè)置的參數(shù)如移動終端的識別號或IP地址、信息管理中心服務(wù)器的IP地址等。
再次,4K字節(jié)的SRAM相對其它的8位機來講是相當(dāng)大了,可以滿足做組幀、數(shù)據(jù)緩沖的要求。
64K字的FLASH可以滿足較大程序量的要求。
64K字 的FLASH和4KRAM的組合可以完成對信息數(shù)據(jù)的加解密工作,可提供某些特定場合使用。
我們引出了某些I/O口,通過光電耦合器隔離后引至其它監(jiān)測點,可以擴展相應(yīng)的功能。
另外,我們留出了總線擴展口,可擴展64K字節(jié)的SRAM,一方面可以用于嵌入帶PPP協(xié)議棧的實時操作系統(tǒng),另一方面可以用于使用ATMEGA128的在線自我編程功能來遠程刷新程序。
由于用于移動設(shè)備,需要低功耗器件,所以我們實際采用的是ATMEGA128L,即該芯片的低壓、低功耗版本,工作電壓為2.7V~5V。
由于GPRS模塊和GPS模塊均使用3.3V供電,所以可以減少電源種類,簡化電源設(shè)計。設(shè)計時考慮該移動終端主要作為車載應(yīng)用,所以實際電路中設(shè)計了從點煙器取電的電源電路??紤]到GPRS模塊的瞬時工作電流(發(fā)射時)較大,可達2A,工作電壓較低,點煙器輸出電壓可能為12V或24V,壓差過大。如果采用線性降壓器件效率太低,而且發(fā)熱劇烈,工作不安全,所以采用了開關(guān)電源變換芯片LM2596。該芯片電路簡單,效率較高。
移動終端利用Atmega128芯片控制實現(xiàn),不用另行擴展串口、ROM以及RAM。當(dāng)然,此硬件結(jié)構(gòu)并不僅僅局限在定位功能上,對于很多數(shù)據(jù)采集應(yīng)用也可以滿足要求,只需改變程序代碼。正是由于ATMEGA128的功能強大,使得硬件的組成和結(jié)構(gòu)都變得非常簡單。
圖2 PPP幀格式
軟件控制流程
由于采用了ATMEGA128作控制器,使得硬件的工作相對簡單和通用,所以該系統(tǒng)實現(xiàn)的主要工作集中在軟件的實現(xiàn)上。
下面就主要的軟件控制流程做一介紹。
首先是數(shù)據(jù)源,GPS模塊不斷發(fā)送固定格式的串口數(shù)據(jù),CPU利用一串口與之相連。一般單片機對串口數(shù)據(jù)的接受處理方式有兩種:輪尋和中斷。這里因為數(shù)據(jù)量很大,而且除了接收數(shù)據(jù)外其他的工作量并不很大,可以采用輪尋的方式。我們最終的目的是要把位置信息發(fā)送到因特網(wǎng)上,在此之前,最前言
目前,GPS定位信息傳輸管理系統(tǒng)已廣泛應(yīng)用在生產(chǎn)生活的各個領(lǐng)域,警車、救護車、運鈔車、長途運輸車上都可以看到它的蹤影。這些定位信息傳輸系統(tǒng)大多是基于手機短消息業(yè)務(wù)的。但這種形式存在著很多不足,首先它通信費用較高,通常每條短消息承載的坐標(biāo)信息也不會太多;再者通過手機短消息發(fā)送延時不確定,這會導(dǎo)致定位跟蹤目標(biāo)的丟失;另外一般短信息服務(wù)器端必須向電信公司申請專門的業(yè)務(wù)服務(wù),才能利用自己的服務(wù)器進行短消息的接受和處理。電信的此項業(yè)務(wù)價格不菲,一般單位負擔(dān)不起。
利用GPRS業(yè)務(wù)可以較為圓滿的解決上述問題。首先GPRS系統(tǒng)費用較低。GPRS建立鏈路以后,相當(dāng)于專線直接接入因特網(wǎng),利用TCP/IP協(xié)議,數(shù)據(jù)可靠而且穩(wěn)定。而且信息管理中心的服務(wù)器只需要是普通的接入因特網(wǎng)的主機,大大節(jié)省了服務(wù)器端的開銷。
本文討論的就是就是利用GPRS業(yè)務(wù)傳送GPS定位信息的實例模型。當(dāng)然,GPS定位信息只是整個信息傳輸管理系統(tǒng)的一個應(yīng)用,通過更換不同的數(shù)據(jù)源模塊可實現(xiàn)不同的信息傳輸,從而構(gòu)建不同的信息傳輸管理系統(tǒng),如遠程抄表系統(tǒng)、水文數(shù)據(jù)采集系統(tǒng)等等。
圖3 軟件控制流程圖
系統(tǒng)構(gòu)成
整個信息傳輸管理系統(tǒng)由移動終端、GSM網(wǎng)絡(luò)、因特網(wǎng)、信息管理中心服務(wù)器四部分組成。
移動終端將GPS數(shù)據(jù)組成GPRS數(shù)據(jù)分組,通過GPRS網(wǎng)絡(luò)和因特網(wǎng),上傳到信息管理中心服務(wù)器。服務(wù)器應(yīng)當(dāng)具備至少一個IP地址,并且擁有電子地圖。
信息管理中心也可以通過因特網(wǎng)和GPRS網(wǎng)絡(luò)向移動終端發(fā)出各種指令。
移動終端硬件組成
移動終端的硬件部分主要有GPRS手機模塊、GPS模塊、MCU及電源四部分,連接關(guān)系如下圖1所示。
其中的GPRS模塊為西門子的MC35,這是一個完整功能的手機模塊,通過串口可以實現(xiàn)對此模塊的控制和數(shù)據(jù)傳輸,包括短信、WAP、GPRS、CSD等。另外加上模擬部分電路,可實現(xiàn)GSM話音通信功能。對MC35的控制用的是AT命令方式。
GPS模塊是EverMore公司的EB-023CV-A/IV-A,它通過外接天線接收GPS信號,計算出所處位置的地理信息,通過串口將此信息傳送給MCU。
MCU采用ATMEL公司的ATMEGA128八位控制處理器,選擇此MCU是基于諸多考慮的。首先是功能強大,幾乎在單片中包容了所有常用的功能。其次,價格相對便宜。再者開發(fā)容易,開發(fā)裝置便宜,而且支持C語言源程序調(diào)試。
在此移動終端中,我們采用了如下的一些必需的功能。
首先是它的兩個硬件串口,這兩個串口的波特率產(chǎn)生是獨立的,而且不占用芯片的定時器,使用起來相當(dāng)靈活。這兩個串口分別對GPS模塊和GPRS模塊通信,對GPS模塊用4800bps或9600bps單收,對GPRS模塊用19200bps收發(fā)。GPS模塊把位置信息以固定的格式從串口發(fā)出,CPU接收GPS模塊送來的數(shù)據(jù),解析出其中有用的數(shù)據(jù)進行封裝,然后以規(guī)定的格式通過第二個串口交給GPRS模塊,將數(shù)據(jù)送上因特網(wǎng)。
其次,4K字節(jié)的EEPROM可用于存放一些可設(shè)置的參數(shù)如移動終端的識別號或IP地址、信息管理中心服務(wù)器的IP地址等。
再次,4K字節(jié)的SRAM相對其它的8位機來講是相當(dāng)大了,可以滿足做組幀、數(shù)據(jù)緩沖的要求。
64K字的FLASH可以滿足較大程序量的要求。
64K字 的FLASH和4KRAM的組合可以完成對信息數(shù)據(jù)的加解密工作,可提供某些特定場合使用。
我們引出了某些I/O口,通過光電耦合器隔離后引至其它監(jiān)測點,可以擴展相應(yīng)的功能。
另外,我們留出了總線擴展口,可擴展64K字節(jié)的SRAM,一方面可以用于嵌入帶PPP協(xié)議棧的實時操作系統(tǒng),另一方面可以用于使用ATMEGA128的在線自我編程功能來遠程刷新程序。
由于用于移動設(shè)備,需要低功耗器件,所以我們實際采用的是ATMEGA128L,即該芯片的低壓、低功耗版本,工作電壓為2.7V~5V。
由于GPRS模塊和GPS模塊均使用3.3V供電,所以可以減少電源種類,簡化電源設(shè)計。設(shè)計時考慮該移動終端主要作為車載應(yīng)用,所以實際電路中設(shè)計了從點煙器取電的電源電路??紤]到GPRS模塊的瞬時工作電流(發(fā)射時)較大,可達2A,工作電壓較低,點煙器輸出電壓可能為12V或24V,壓差過大。如果采用線性降壓器件效率太低,而且發(fā)熱劇烈,工作不安全,所以采用了開關(guān)電源變換芯片LM2596。該芯片電路簡單,效率較高。
移動終端利用Atmega128芯片控制實現(xiàn),不用另行擴展串口、ROM以及RAM。當(dāng)然,此硬件結(jié)構(gòu)并不僅僅局限在定位功能上,對于很多數(shù)據(jù)采集應(yīng)用也可以滿足要求,只需改變程序代碼。正是由于ATMEGA128的功能強大,使得硬件的組成和結(jié)構(gòu)都變得非常簡單。
軟件控制流程
由于采用了ATMEGA128作控制器,使得硬件的工作相對簡單和通用,所以該系統(tǒng)實現(xiàn)的主要工作集中在軟件的實現(xiàn)上。
下面就主要的軟件控制流程做一介紹。
首先是數(shù)據(jù)源,GPS模塊不斷發(fā)送固定格式的串口數(shù)據(jù),CPU利用一串口與之相連。一般單片機對串口數(shù)據(jù)的接受處理方式有兩種:輪尋和中斷。這里因為數(shù)據(jù)量很大,而且除了接收數(shù)據(jù)外其他的工作量并不很大,可以采用輪尋的方式。我們最終的目的是要把位置信息發(fā)送到因特網(wǎng)上,在此之前,最為關(guān)鍵的就是將系統(tǒng)無線接入因特網(wǎng),這個功能由GPRS提供,但我們必須對它進行初始化,和鏈路控制。利用GPRS上網(wǎng),和普通用戶通過PC機撥號上網(wǎng)原理相同,都是通過呼叫固定號碼的PPP服務(wù)器,進行握手認證,以及協(xié)議的配置。正常情況下,完成握手以后,PPP鏈路建立。PPP 幀結(jié)構(gòu)如圖3所示。此表未包括為同步而設(shè)置的字符和為透明性而設(shè)置的字符。傳送時由左向右傳送下圖的內(nèi)容。
每個幀由一個標(biāo)記序列開始和結(jié)束。所有系統(tǒng)不斷檢測此標(biāo)記,它用于對幀進行同步。在兩幀之間只需要一個這樣的標(biāo)記,兩上相繼的標(biāo)記構(gòu)成一個空幀,它被無響應(yīng)拋棄,而不產(chǎn)生FCS錯誤。地址域是一個字節(jié),也就是“所有站”地址。單獨站地址未被指定?!八姓尽钡刂繁仨毮軌蜃R別并被接受。不可識別的地址應(yīng)該被無回應(yīng)拋棄??刂朴蚴且粋€字節(jié),“未編號信息”(UI)命令和選舉/結(jié)果位被設(shè)置為零。不可識別的地址應(yīng)該被無回應(yīng)拋棄。幀檢查序列(FCS)域通常包括兩個字節(jié)(16位)。先傳送它的最低位,它指示的是最高系數(shù)項。也使用四個字節(jié)的FCS,此域是由地址、控制、協(xié)議、信息和填充域中的所有位運算得到的,不包括開始和停止位或用于數(shù)據(jù)透明性而插入的位,也不包括標(biāo)記序列和FCS域本身。在同步控制字符映射中標(biāo)記的字節(jié)在接收時存在,但在計算FCS時會被拋棄。與PPP服務(wù)器建立鏈路以后,就可以進行數(shù)據(jù)的傳輸了。
鏈路層之上就是IP層,IP層之上可選的協(xié)議主要有面向連接的TCP協(xié)議和非面向連接的UDP協(xié)議。當(dāng)業(yè)務(wù)的數(shù)據(jù)要求高可靠性時,應(yīng)該選用TCP協(xié)議,但TCP協(xié)議實現(xiàn)起來復(fù)雜,而且系統(tǒng)負荷較大。UDP協(xié)議沒有可靠性的保證,但它對網(wǎng)絡(luò)的負荷較小,比較適合實時數(shù)據(jù)的傳輸。本系統(tǒng)對數(shù)據(jù)的可靠性要求不是特別高,比較適合選擇UDP協(xié)議。
Atmega128處理器中含有128k字節(jié)的可編程flash memory,4k字節(jié)的EEPROM,4k字節(jié)的SRAM。對于此系統(tǒng),如果不嵌入RTOS內(nèi)核,這些資源就足夠了。但如果沒有RTOS,在寫控制程序時就沒有協(xié)議棧的支持,也就是說,必須自己實現(xiàn)PPP協(xié)議、IP協(xié)議和UDP協(xié)議。如果要嵌入其他的操作系統(tǒng),就必須擴展SRAM。本文中采用直接實現(xiàn)協(xié)議的方式進行描述。圖3就是系統(tǒng)的軟件控制流程。
如果需要更強大的網(wǎng)絡(luò)功能支持,可以嵌入RTOS內(nèi)核,現(xiàn)在有不少系統(tǒng)支持Atmega128,有的甚至是為它量身訂做的,像NUT/OS,內(nèi)嵌了對各種網(wǎng)絡(luò)協(xié)議的支持,當(dāng)然也包括PPP協(xié)議。它甚至專門對Atmega128的各種擴展做了支持,例如SPI接口。此外,NUT/OS包括了一套函數(shù)專門用來讓Atmega128訪問擴展的以太網(wǎng)芯片,大大的縮短了開發(fā)周期和開發(fā)成本。
結(jié)語
隨著時代節(jié)奏的不斷加快,實時信息傳送的應(yīng)用領(lǐng)域越來越廣泛,需求量與日俱增。GPRS業(yè)務(wù)的推出,更加推動了這一方向的迅猛發(fā)展,更加預(yù)示了它的廣闊前景。
參考文獻
1 RFC1661 The Point-to-Point Protocol (PPP)
2 NUT/OS手冊
3 Atmel Atmega128 用戶手冊
評論