前言
目前,GPS定位" title="定位">定位信息傳輸" title="信息傳輸">信息傳輸管理系統(tǒng)已廣泛應用在生產(chǎn)生活的各個領(lǐng)域,,警車,、救護車,、運鈔車、長途運輸車上都可以看到它的蹤影,。這些定位信息傳輸系統(tǒng)大多是基于手機短消息業(yè)務的,。但這種形式存在著很多不足,首先它通信費用較高,,通常每條短消息承載的坐標信息也不會太多,;再者通過手機短消息發(fā)送延時不確定,這會導致定位跟蹤目標的丟失,;另外一般短信息服務器端必須向電信公司申請專門的業(yè)務服務,,才能利用自己的服務器進行短消息的接受和處理。電信的此項業(yè)務價格不菲,,一般單位負擔不起,。
利用GPRS" title="GPRS">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)不同的信息傳輸,,從而構(gòu)建不同的信息傳輸管理系統(tǒng),如遠程抄表系統(tǒng),、水文數(shù)據(jù)采集系統(tǒng)等等,。
圖1 移動終端硬件組成框圖
系統(tǒng)構(gòu)成
整個信息傳輸管理系統(tǒng)由移動終端、GSM網(wǎng)絡(luò),、因特網(wǎng),、信息管理中心服務器四部分組成。
移動終端將GPS數(shù)據(jù)組成GPRS數(shù)據(jù)分組,,通過GPRS網(wǎng)絡(luò)和因特網(wǎ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)生是獨立的,,而且不占用芯片的定時器,,使用起來相當靈活。這兩個串口分別對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地址、信息管理中心服務器的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的在線自我編程功能來遠程刷新程序,。
由于用于移動設(shè)備,,需要低功耗器件,所以我們實際采用的是ATMEGA128L,,即該芯片的低壓,、低功耗版本,工作電壓為2.7V~5V,。
由于GPRS模塊和GPS模塊均使用3.3V供電,,所以可以減少電源種類,簡化電源設(shè)計,。設(shè)計時考慮該移動終端主要作為車載應用,,所以實際電路中設(shè)計了從點煙器取電的電源電路??紤]到GPRS模塊的瞬時工作電流(發(fā)射時)較大,,可達2A,工作電壓較低,,點煙器輸出電壓可能為12V或24V,,壓差過大。如果采用線性降壓器件效率太低,,而且發(fā)熱劇烈,,工作不安全,所以采用了開關(guān)電源變換芯片LM2596。該芯片電路簡單,,效率較高,。移動終端利用Atmega128芯片控制實現(xiàn),不用另行擴展串口,、ROM以及RAM。當然,,此硬件結(jié)構(gòu)并不僅僅局限在定位功能上,,對于很多數(shù)據(jù)采集應用也可以滿足要求,只需改變程序代碼,。正是由于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)已廣泛應用在生產(chǎn)生活的各個領(lǐng)域,警車,、救護車,、運鈔車、長途運輸車上都可以看到它的蹤影,。這些定位信息傳輸系統(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)不同的信息傳輸,,從而構(gòu)建不同的信息傳輸管理系統(tǒng),,如遠程抄表系統(tǒng)、水文數(shù)據(jù)采集系統(tǒng)等等,。
圖3 軟件控制流程圖
系統(tǒng)構(gòu)成
整個信息傳輸管理系統(tǒng)由移動終端,、GSM網(wǎng)絡(luò)、因特網(wǎng),、信息管理中心服務器四部分組成,。
移動終端將GPS數(shù)據(jù)組成GPRS數(shù)據(jù)分組,通過GPRS網(wǎng)絡(luò)和因特網(wǎ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)生是獨立的,而且不占用芯片的定時器,,使用起來相當靈活,。這兩個串口分別對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地址、信息管理中心服務器的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的在線自我編程功能來遠程刷新程序。
由于用于移動設(shè)備,,需要低功耗器件,,所以我們實際采用的是ATMEGA128L,即該芯片的低壓,、低功耗版本,,工作電壓為2.7V~5V。
由于GPRS模塊和GPS模塊均使用3.3V供電,,所以可以減少電源種類,,簡化電源設(shè)計。設(shè)計時考慮該移動終端主要作為車載應用,,所以實際電路中設(shè)計了從點煙器取電的電源電路,。考慮到GPRS模塊的瞬時工作電流(發(fā)射時)較大,,可達2A,,工作電壓較低,點煙器輸出電壓可能為12V或24V,,壓差過大,。如果采用線性降壓器件效率太低,而且發(fā)熱劇烈,,工作不安全,,所以采用了開關(guān)電源變換芯片LM2596。該芯片電路簡單,,效率較高,。移動終端利用Atmega128芯片控制實現(xiàn),不用另行擴展串口,、ROM以及RAM,。當然,此硬件結(jié)構(gòu)并不僅僅局限在定位功能上,,對于很多數(shù)據(jù)采集應用也可以滿足要求,,只需改變程序代碼。正是由于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服務器,,進行握手認證,,以及協(xié)議的配置。正常情況下,,完成握手以后,,PPP鏈路建立。PPP 幀結(jié)構(gòu)如圖3所示,。此表未包括為同步而設(shè)置的字符和為透明性而設(shè)置的字符,。傳送時由左向右傳送下圖的內(nèi)容。
每個幀由一個標記序列開始和結(jié)束,。所有系統(tǒng)不斷檢測此標記,,它用于對幀進行同步。在兩幀之間只需要一個這樣的標記,,兩上相繼的標記構(gòu)成一個空幀,,它被無響應拋棄,而不產(chǎn)生FCS錯誤,。地址域是一個字節(jié),,也就是“所有站”地址。單獨站地址未被指定,。“所有站”地址必須能夠識別并被接受,。不可識別的地址應該被無回應拋棄,。控制域是一個字節(jié),,“未編號信息”(UI)命令和選舉/結(jié)果位被設(shè)置為零,。不可識別的地址應該被無回應拋棄。幀檢查序列(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)絡(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é)議的支持,當然也包括PPP協(xié)議,。它甚至專門對Atmega128的各種擴展做了支持,,例如SPI接口。此外,,NUT/OS包括了一套函數(shù)專門用來讓Atmega128訪問擴展的以太網(wǎng)芯片,,大大的縮短了開發(fā)周期和開發(fā)成本。
結(jié)語
隨著時代節(jié)奏的不斷加快,,實時信息傳送的應用領(lǐng)域越來越廣泛,,需求量與日俱增。GPRS業(yè)務的推出,,更加推動了這一方向的迅猛發(fā)展,,更加預示了它的廣闊前景。