GPRS 通用無線分組業(yè)務 (General Packet Radio Service)是利用包交換的概念發(fā)展的一套無線傳輸方式。GPRS網(wǎng)絡是基于現(xiàn)有的GSM(全球移動通信系統(tǒng))網(wǎng)絡實現(xiàn)的。在現(xiàn)有的GSM網(wǎng)絡中需要增加一些節(jié)點,如GGSN(GPRS網(wǎng)關支持節(jié)點)和SGSN(GPRS服務支持節(jié)點)。SGSN的主要作用是記錄移動終端的當前位置信息,并且在移動終端與GGSN之間完成移動分組數(shù)據(jù)的發(fā)送和接收。GGSN主要起網(wǎng)關作用,可以與多種不同的數(shù)據(jù)網(wǎng)絡連接,如ISDN(綜合業(yè)務數(shù)字網(wǎng))、PSPDN(包交換公用數(shù)據(jù)網(wǎng))和LAN(局域網(wǎng))等。GGSN可以把GSM網(wǎng)中的GPRS分組數(shù)據(jù)包 進行協(xié)議轉(zhuǎn)換,從而把這些分組數(shù)據(jù)包傳送到遠端的TCP/IP或X.25網(wǎng)絡。
GPRS網(wǎng)不但具有覆蓋范圍廣、數(shù)據(jù)傳輸速度快、通信質(zhì)量高、永遠在線和按流量計費等優(yōu)點,而且其本身就是一個分組型數(shù)據(jù)網(wǎng),支持TCP/IP協(xié)議,無需經(jīng)過PSTN(公用電話交換網(wǎng))等網(wǎng)絡的轉(zhuǎn)接,可直接與Internet網(wǎng)互通。因此GPRS業(yè)務在無線上網(wǎng)、環(huán)境監(jiān)測、交通監(jiān)控、移動辦公等行業(yè)中具有無可比擬的性價比優(yōu)勢。
系統(tǒng)設計目的:客戶端將數(shù)據(jù)采集器中采集到的數(shù)據(jù),通過RS232串口發(fā)送到GPRS數(shù)據(jù)傳輸終端;GPRS數(shù)據(jù)傳輸終端將數(shù)據(jù)轉(zhuǎn)換成TCP/IP包發(fā)送到GPRS網(wǎng)絡上,再經(jīng)過服務轉(zhuǎn)換進入到Internet;監(jiān)控中心從Internet上獲取采集數(shù)據(jù)的TCP/IP包后,通過程序?qū)⒉杉瘮?shù)據(jù)的TCP/IP包還原成采集數(shù)據(jù),從而完成了從采集現(xiàn)場通過GPRS和Internet傳輸數(shù)據(jù)到監(jiān)控中心的整個通訊過。核心設計在于單片機與GPRS模塊的連接和通信軟件的編寫。
1、系統(tǒng)設計方案一
GPRS無線數(shù)據(jù)傳輸系統(tǒng)由客戶端軟件、GPRS數(shù)據(jù)傳輸終端、GPRS網(wǎng)絡、服務器端軟件四部分組成(如圖 1所示)??蛻舳塑浖ㄟ^RS232串口對GPRS數(shù)據(jù)傳輸終端進行收發(fā)控制,將采集數(shù)據(jù)發(fā)送到GPRS網(wǎng)絡,再經(jīng)過服務轉(zhuǎn)換進入到Internet網(wǎng)絡,服務器端軟件接收通過GPRS網(wǎng)絡上傳的數(shù)據(jù),進行處理并存儲到數(shù)據(jù)庫;服務器端軟件采用Web頁面方式。
圖 1 系統(tǒng)結(jié)構圖
系統(tǒng)各部分的說明如下:
(1) 客戶端軟件。將采集數(shù)據(jù)通過串口發(fā)送到GPRS數(shù)據(jù)傳輸終端。
(2) GPRS數(shù)據(jù)傳輸終端。采用標準的RS232 接口,可以通過單片機,使用相應的AT命令對GPRS模塊進行控制, 并連接到GPRS網(wǎng)絡。
(3) GPRS網(wǎng)絡。支持TCP/IP協(xié)議,可以直接與Internet互通。
(4) 服務器端軟件。服務器端軟件采用普通Internet上的主機方式;作為TCP服務器端應具有靜態(tài)公網(wǎng)IP,開放了偵聽端口,可從外部訪問,其上運行TCP端口監(jiān)聽程序,接收來自GPRS客戶端的TCP數(shù)據(jù)包,并向GPRS客戶端發(fā)送回應數(shù)據(jù)。
服務器端軟件主要任務是完成對通信數(shù)據(jù)的接收、分析和存儲。首先服務器端啟動監(jiān)聽線程,監(jiān)聽TCP端口,接收到數(shù)據(jù)包后對獲取的數(shù)據(jù)包進行分析,然后將分析后的數(shù)據(jù)存儲到數(shù)據(jù)庫(程序流程如圖 2所示)。服務器端軟件應具有以下功能:① 監(jiān)聽TCP端口;② 接收數(shù)據(jù)包分析數(shù)據(jù)、存儲數(shù)據(jù),發(fā)送接收應答幀;③ 顯示接收到的數(shù)據(jù)。
圖2 服務器端軟件主程序流程圖
2、系統(tǒng)設計方案二
GPRS無線數(shù)據(jù)傳輸系統(tǒng)由客戶端軟件、GPRS數(shù)據(jù)傳輸終端、GPRS網(wǎng)絡、GPRS數(shù)據(jù)接收終端、服務器端軟件五部分組成(如圖 3所示)??蛻舳塑浖ㄟ^RS232串口對 GPRS數(shù)據(jù)傳輸終端進行收發(fā)控制,將采集數(shù)據(jù)發(fā)送到GPRS網(wǎng)絡,再經(jīng)過服務轉(zhuǎn)換進入到Internet網(wǎng)絡傳輸?shù)紾PRS數(shù)據(jù)接收終端,服務器端軟件從GPRS數(shù)據(jù)接收終端讀取數(shù)據(jù)并進行處理和存儲到數(shù)據(jù)庫。
圖 3 系統(tǒng)結(jié)構圖
系統(tǒng)各部分的說明如下:
(1) 客戶端軟件。將采集數(shù)據(jù)通過串口發(fā)送到GPRS數(shù)據(jù)傳輸終端。
(2) GPRS數(shù)據(jù)傳輸終端。采用標準的RS232 接口,可以通過單片機,使用相應的AT命令對GPRS模塊進行控制, 并連接到GPRS網(wǎng)絡。
(3) GPRS網(wǎng)絡。支持TCP/IP協(xié)議,可以直接與Internet互通。
(4) GPRS數(shù)據(jù)接收終端。GPRS數(shù)據(jù)接收終端和GPRS數(shù)據(jù)傳輸終端相對應,當采集數(shù)據(jù)由GPRS數(shù)據(jù)傳輸終端上傳后,在另一端便是由GPRS數(shù)據(jù)接收終端來接收GPRS數(shù)據(jù)傳輸終端上傳的數(shù)據(jù)。
(5) 服務器端軟件。服務器端軟件采用C/S方式;通過串口接收來自GPRS數(shù)據(jù)接收終端的數(shù)據(jù)(程序流程如 圖 4所示)。服務器端軟件應具有以下功能:① 串口通信;② 數(shù)據(jù)分析、存儲;③ 顯示接收到的數(shù)據(jù)。
圖 4 服務器端軟件主程序流程圖
系統(tǒng)軟件采用C語言編寫,在MPLAB環(huán)境下編譯。由于本系統(tǒng)是遠程管理終端的一個模塊,因此在程序的編寫中要遵守一定的協(xié)議,這樣才能保證正確通信。程序的主體是如何控制GR47的AT命令對GR47進行初始設置和對信息數(shù)據(jù)的處理。程序總體上可以分為以下幾個塊:GPRS連接的初始設置、短消息的判斷處理、無數(shù)據(jù)傳輸時的心跳處理、數(shù)據(jù)判斷轉(zhuǎn)發(fā)等。主程序是把這些程序塊有機結(jié)合到一起,相互控制,無限循環(huán)。
2.1連接的建立
GPRS模塊連接到Internet和GPRS網(wǎng)絡的實現(xiàn)過程如下:
(1)單片機軟件控制GR47模塊開機,等待此模塊正常啟動。
(2)通過單片機和GR47模塊連接的串口,向GR47模塊寫入相應的AT設置命令,進行初始化,使模塊成功粘附在GPRS網(wǎng)絡上,獲得網(wǎng)絡運行商分配的動態(tài)IP地址,與目的終端建立連接。
2.1.1基本設置
(1) GPRS ISP 碼。
AT+IISP1=*99***1# //全國通用
(2) 登錄用戶名。
AT+IUSRN=WAP//GPRS網(wǎng)絡登錄名
(3) 登錄密碼。
AT+IPWD=WAP// GPRS網(wǎng)絡登錄密碼
(4) MODEM 類型。
AT+IMTYP=2 //定義GPRS MODEM
(5) 初始化命令。
AT+IMIS=“AT+CGDCONT=1,ip,CMNET”
(6) 域名服務器。
AT+IDNS1=211.136.18.171
//DNS服務器地址,全國通用
(7) 擴展碼(XRC)。
AT+IXRC=0
2.1.2 SOCKET設置
(1) 建立一個TCP通信。
AT+ISTCP:218.66.16.173,1024
建立SOCKET連接,218.66.16.173為應用服務中心計算機端IP地址(實際地址由實際情況決定),1024 為端口號(端口號由中心SOCKET端口監(jiān)聽程序設置決定)。 如果連接成功,LT8030返回I/xxx。xxx為LT8030中本次SOCKET連接的句柄號。中心監(jiān)聽程序會顯示連接的終端IP地址。如果連接失敗,LT8030返回I/ERROR(xxx)。xxx為錯誤代碼。
(2) 發(fā)送數(shù)據(jù)。
AT+ISSND%:xxx,
發(fā)送數(shù)據(jù),xxx為句柄,
(3) 查詢SOCKET狀態(tài)。
AT+ISST:xxx
查詢SOCKET狀態(tài),xxx為句柄。 LT8030返回I/
(4) 接收數(shù)據(jù)。
AT+ISRCV:xxx
xxx為句柄。該指令會讀取LT8030通過該句柄從中心接收到的,存在Buffer 里的數(shù)據(jù);Buffer最大可存儲30K的數(shù)據(jù)。
(5) 關閉SOCKET通道。
AT+ISCLS:xxx
關閉SOCKET通道,xxx為句柄。
2.2、數(shù)據(jù)的處理
數(shù)據(jù)包在數(shù)據(jù)中心服務器和GPRS服務器中的傳輸是基于IP數(shù)據(jù)包的,但明文傳送IP包不可取,因此大多選用PPP(點對點協(xié)議)進行傳輸,實現(xiàn)通過GPRS模塊的數(shù)據(jù)和Internet網(wǎng)絡的透明傳輸。GR47內(nèi)部集成了TCP/IP協(xié)議棧,所以用戶對IP協(xié)議相關的程序就不必編寫,可以直接通過GR47傳遞數(shù)據(jù)。
(1)模塊與Internet上PC機的數(shù)據(jù)傳輸:要求PC機具有公網(wǎng)的IP地址和開放的端口以及監(jiān)視傳輸報文的運行軟件。這樣,模塊與Internet傳輸數(shù)據(jù)時,報文就會顯示。在模塊成功聯(lián)入網(wǎng)絡后,單片機只要將要發(fā)送的數(shù)據(jù)通過串口發(fā)給GR47,GR47就會把數(shù)據(jù)轉(zhuǎn)發(fā)給相應的IP地址的PC機。
(2)短消息數(shù)據(jù)的處理:GR47具有GSM的功能,可以與手機發(fā)送和接收短消息。短消息采用PDU格式,在程序中需要判斷短消息的到來和讀取短信內(nèi)容,并根據(jù)內(nèi)容執(zhí)行相應的功能,最后把結(jié)果構造成PDU格式返回給相應的發(fā)送者。
(3)GPRS通信心跳信息:網(wǎng)絡連接建立后,在設定周期內(nèi)無數(shù)據(jù)通信時,GPRS模塊向數(shù)據(jù)服務中心發(fā)送心跳信息,數(shù)據(jù)服務中心收到心跳信息后,回應應答信號。
(4)重要數(shù)據(jù)的存儲:程序中把一些重要的常用和易變的數(shù)據(jù)如計算機服務器的IP地址、端口號、終端地址、SIM卡號等存入單片機的EEPROM中。需要時從EEPROM中讀出或向EEPROM重新寫入數(shù)據(jù)進行設置。
2.3、主程序流程
主程序流程大致如下:首先進行單片機設置變量的初始化,一般均為0;進行單片機相應配置單元的初始化,比如設定端口方向、設置中斷優(yōu)先級、定時器初始化等;然后由單片機控制GR47的電源,以決定是否開機;待開機成功后,查詢網(wǎng)絡是否注冊成功;成功后即可建立模塊與PC機服務器的連接,并進行數(shù)據(jù)傳輸和短消息處理;根據(jù)需要發(fā)送一定格式的心跳信息。(如圖 6所示)
圖6主程序流程圖