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