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