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