MSC1210的GPRS無線通信系統(tǒng)設計
摘要:以GSM網絡為數(shù)據無線傳輸網絡,設計一個基于GPRS數(shù)據傳輸?shù)耐ㄐ沤K端。通過在單片機系統(tǒng)中嵌入PPP和TCP/IP協(xié)議,實現(xiàn)端到端的GPRS分組業(yè)務功能。文中還詳細介紹MSC1210單片機與GPRS模塊通信接口的硬件和軟件實現(xiàn)。
關鍵詞:GPRS 無線通信 MSC1210
引 言
近年來,通信技術和網絡技術的迅速發(fā)展,特別是無線通信技術的發(fā)展,使得電力系統(tǒng)的自動化程度進一步提高。GSM網絡出現(xiàn)后,技術人員很快把GSM模塊嵌入到各種儀表儀器中,如多功能電能表、故障測錄儀、抄表系統(tǒng)和用電負荷監(jiān)控等,從而使這些儀表儀器具有遠程通信功能。
GPRS是在現(xiàn)有GSM系統(tǒng)上發(fā)展出來的一種新的數(shù)據承載業(yè)務,支持TCP/IP協(xié)議,可以與分組數(shù)據網(Internet等)直接互通。GPRS無線傳輸系統(tǒng)的應用范圍非常廣泛,幾乎可以涵蓋所有的中低業(yè)務和低速率的數(shù)據傳輸,尤其適合突發(fā)的小流量數(shù)據傳輸業(yè)務。
本文設計的GPRS無線通信模塊,內嵌了TCP/IP協(xié)議,采用工業(yè)級的GPRS模塊,適用于單片機數(shù)據采集傳輸系統(tǒng)沒有TCP/IP協(xié)議棧,但使用串口通信的情況。
1 GPRS通信原理及應用特點
1.1 GPRS簡介
GPRS是通用無線分組業(yè)務(General Packet Radio System)的縮寫,是介于第二代和第三代之間的一種技術,通常稱為2.5G。GPRS采用與GSM相同的頻段、頻帶寬度、突發(fā)結構、無線調制標準、跳頻規(guī)則以及相同的TDMA幀結構。因此,在GSM系統(tǒng)的基礎上構建GPRS系統(tǒng)時,GSM系統(tǒng)中的絕大部分部件都不需要作硬件改動,只需作軟件升級。有了GPRS,用戶的呼叫建立時間大大縮短,幾乎可以做到“永遠在線”。此外, GPRS是以營運商傳輸?shù)臄?shù)據量而不是連接時間為基準來計費,從而令每個用戶的服務成本更低。
1.2 基本工作原理
GPRS是在原有的基于電路交換(CSD)方式的GSM網絡上引入兩個新的網絡節(jié)點: GPRS服務支持節(jié)點(SGSN)和網關支持節(jié)點(GGSN)。SGSN和MSC在同一等級水平,并跟蹤單個MS的存儲單元實現(xiàn)安全功能和接入控制,并通過幀中繼連接到基站系統(tǒng)。GGSN支持與外部分組交換網的互通,并經由基于IP的GPRS骨干網和SGSN連通。圖1給出了GPRS與Internet連接原理框圖。

圖1GPRS與Internet連接原理圖
GPRS終端通過接口從客戶系統(tǒng)取得數(shù)據,處理后的GPRS分組數(shù)據發(fā)送到GSM基站。分組數(shù)據經SGSN封裝后,SGSN通過GPRS骨干網與網關支持接點GGSN進行通信。GGSN對分組數(shù)據進行相應的處理,再發(fā)送到目的網絡,如Internet或X.25網絡。
若分組數(shù)據是發(fā)送到另一個GPRS終端,則數(shù)據由GPRS骨干網發(fā)送到SGSN,再經BSS發(fā)送到GPRS終端。
2 嵌入式GPRS通信系統(tǒng)的實現(xiàn)
2.1 GPRS模塊的硬件設計
嵌入式GPRS無線通信模塊主要由嵌入TCP/IP的單片機(MSC1210Y5)、GPRS模塊、SIM卡座、外部接口和擴展數(shù)據存儲器等部分組成。圖2是系統(tǒng)的硬件框圖。

圖2GPRS通信系統(tǒng)原理框圖
MSC1210控制GPRS模塊接收和發(fā)送信息,通過標準RS232串口和外部控制器(比如數(shù)據采集端)進行數(shù)據通信。用軟件實現(xiàn)中斷,完成數(shù)據的轉發(fā)。
2.1.1 單片機模塊
單片機采用美國德州儀器公司最新推出的基于8051內核的MSC1210Y5。該芯片具有很強的數(shù)據處理能力,時鐘頻率為33 MHz,指令運行速度實際上與運行在99 MHz時鐘頻率下的標準8051內核相當。32 KB Flash程序存儲器,256 B內部RAM和1024 B片上SRAM,2 KB啟動ROM,支持串行和并行的在系統(tǒng)編程。雙數(shù)據指針DPTR0和DPTR1可加快數(shù)據塊的移動速度。
其主要實現(xiàn)過程如下:
?、?通過AT指令初始化GPRS無線模塊,使之附著在GPSR網絡上,獲得網絡運營商動態(tài)分配的GPRS終端IP地址,并與目的終端建立連接。
?、?通過串口0擴展MAX232標準串口和外部控制器(例如數(shù)據采集端)連接,外部控制器端接出標準串口,按照約好的協(xié)議可很容易利用本設計的控制器進行通信。
③ 復用P1.2和P1.3,也就是串口1分別和GPRS模塊的TXD0和RXD0連接,P1口的其他6個端口分別接到GPRS模塊對應的剩余RS232通信口,通過軟件置位完成對MC35的初始化和控制GPRS模塊的收發(fā)數(shù)據。
2.1.2 擴展數(shù)據存儲器部分
MSC1210的Flash存儲器可全部作為Flash程序存儲器,也可以全部作為數(shù)據Flash程序。因為要嵌入實時操作系統(tǒng)和網絡協(xié)議,需要一定的空間,因此將其全部用作程序存儲器,而通過74HC573作為地址鎖存器,擴展6264作為外部數(shù)據存儲器,8 KB的數(shù)據存儲空間足夠程序正常運行。
圖3給出了MSC1210與數(shù)據存儲器之間的硬件連接圖。

圖3MSC1210與數(shù)據存儲器的連接
2.1.3 GPRS無線數(shù)傳模塊
GPRS無線模塊作為終端的無線收發(fā)模塊,把從單片機發(fā)送過來的IP包或基站傳來的分組數(shù)據進行相應的處理后再轉發(fā)。
GPRS模塊采用德國Simens公司生產的MC35模塊。MC35模塊主要由射頻天線、內部Flash、SRAM、GSM基帶處理器、匹配電源和一個40腳的ZIF插座組成。GSM基帶處理器是核心部件,其作用相當于一個協(xié)議處理器,用來處理外部系統(tǒng)通過串口發(fā)送AT指令。射頻天線部分主要實現(xiàn)信號的調制和解調,以及外部射頻信號與內部基帶處理器之間的信號轉換。匹配電源為處理器基射頻部分提供所需的電源。MC35外圍電路如圖4所示。

圖4GPRS通信模塊電路原理
AS2815將外部電壓轉換成3.3 V工作電壓。
啟動電路由三極管和上電復位電路組成,模塊上電后,為使之正常工作,必須在15腳加至少為100 ms的低電平信號。啟動后,15腳信號應保持高電平。
MC35在ZIF連接器上為SIM卡接口預留的引腳數(shù)為6個,要注意的是,CCIN引腳用來檢測SIM卡座是否插有SIM卡。當插入SIM卡,該引腳置為高電平時,系統(tǒng)方可進入正常工作。
SYNC引腳有兩種工作模式:一種是指示發(fā)射狀態(tài)時的功率增長情況,另一種是指示MC35的工組狀態(tài)。本設計中使用后一種模式,LED熄滅時,表明MC35處于關閉或睡眠狀態(tài);當LED為600 ms亮/600 ms熄時,表明SIM卡沒有插入或MC35正在進行網絡登陸;當LED為75 ms亮/3 s熄時,表明MC35已登陸進網絡,處于待機狀態(tài)。
2.2 單片機通信程序設計
軟件中的所有代碼都用C語言編寫,在Keil環(huán)境中編譯。Keil是Keil Software公司為8051及其兼容產品提供的專門開發(fā)工具,它支持在系統(tǒng)調試。Keil中C51編譯器很好地集成了RTX多任務實時操作系統(tǒng),編寫程序時,需在源代碼頭加入“#incluede rtx51.h”。所有代碼調試通過后經由TI Downloader下載到存儲器中。
目前,絕大多數(shù)基于GPRS網絡應用系統(tǒng)所使用的GPRS模塊不支持TCP/IP協(xié)議。也就是說,要想工作在相同的網絡層面上,其內部傳輸?shù)臄?shù)據必須都要采用相同的協(xié)議,所以除了利用GPRS模塊的功能外,必須在單片機系統(tǒng)中嵌入按TCP/IP和PPP協(xié)議標準編寫的程序,從而使設計的終端設備能夠方便的應用GPRS數(shù)據分組業(yè)務。
2.2.1 TCP/IP協(xié)議的嵌入
有很多種方法可以完成協(xié)議轉換,本設計利用在嵌入式實時操作系統(tǒng)RTX51中移值部分IP和PPP協(xié)議來增強系統(tǒng)的可擴展性和產品開發(fā)的可延續(xù)性。
TCP/IP協(xié)議是一個標準協(xié)議套件,可以用分層模型來描述。數(shù)據打包處理數(shù)據時,每一層把自己的信息添加到一個數(shù)據頭中,而這個數(shù)據頭又被下一層中的協(xié)議包裝到數(shù)據體中。數(shù)據解包處理程序接收到GPRS數(shù)據時,把相應的數(shù)據頭剝離,并把數(shù)據包的其余部分當作數(shù)據體對待。
考慮到嵌入式系統(tǒng)的特點,本設計采用了系統(tǒng)開銷較小的IP+UDP協(xié)議來實現(xiàn)GPRS通信。主機發(fā)送的UDP數(shù)據報文經GPRS通道傳送給GPRS通信模塊, GPRS通信模塊負責對數(shù)據報進行解析,解析后的數(shù)據按照一定的波特率串行傳送給用戶終端。
2.2.2 數(shù)據處理
數(shù)據包在主機和GPRS服務器群中傳輸使用的是基于IP的分組,即所有的數(shù)據報文都要基于IP包。但明文傳送IP包不可取,故一般使用PPP協(xié)議進行傳輸。模塊向網關發(fā)送PPP報文都會傳送到Internet網中相應的地址,而從Internet傳送過來的應答幀也同樣會根據IP地址傳送到GPSR模塊,從而實現(xiàn)采集數(shù)據和Internet網絡通過GPRS模塊的透明傳輸。
要注意的是,GSM網絡無靜態(tài)IP地址,故其他通信設備不能向它提出建立連接請求,監(jiān)控中心必須擁有一個固定的IP,以便監(jiān)測終端可以在登陸GSM網絡后通過該IP找到監(jiān)控中心。關于這一點,很容易解決,只需在電信申請相應的服務就可以了。
GPRS模塊登陸上GSM網絡后,自動連接到數(shù)據中心,向數(shù)據中心報告其IP地址,并保持和維護數(shù)據鏈路的連接。GPRS監(jiān)測鏈路的連接情況,一旦發(fā)生異常,GPRS模塊自動重新建立鏈路,數(shù)據中心和GPRS模塊之間就可以通過I地址通過UDP/IP協(xié)議進行雙向通信,實現(xiàn)透明的可靠數(shù)據傳輸。
3 上位機監(jiān)控中心的設計
監(jiān)控中心的功能是實現(xiàn)GPRS信息的接收和保存。設計語言采用Microsoft公司的Visual C++編程語言,C++語言應用靈活,功能強大,并對網絡編程和數(shù)據庫有強大的支持。
由于通過GPRS,中心監(jiān)控部分可以直接訪問互聯(lián)網,所以監(jiān)控部分并不需要再設置GPRS模塊。中心只需通過中心軟件幀聽網絡,接收GPRS無線模塊傳來的UDP協(xié)議的IP包和發(fā)送上位機控制信息,以實現(xiàn)與GPRS終端的IP協(xié)議通信。接收到的信息要保存到中心的數(shù)據庫中,以備查歷史記錄。數(shù)據庫采用Access,VC編制的界面窗口通過ADO訪問Access中的數(shù)據。需要說明的是,筆者是通過Socket接收網絡終端信息的。
Socket接口是TCP/IP網絡的API,Socket接口定義了許多函數(shù)和例程,程序員可以利用它來開發(fā)TCP/IP網絡上的應用程序。VC中的MFC類提供了CAsyncSocket這樣一個套接字類,用它來實現(xiàn)Socket編程非常方便。本設計中采用數(shù)據報文式的Socket,它是一種無連接的Socket,對應于無連接的UDP服務應用。
CAsyncSocket類用DoCallBack函數(shù)處理MFC消息,當一個網絡事件發(fā)生時,DoCallBack函數(shù)按照網絡事件類型:FD_REA D、FD_WRITE、FD_ACCEPT和FD_CONNECT分別調用OnReceive、OnSend、OnAccept和OnConnect函數(shù),驅動相應的事件,完成網絡數(shù)據通信過程。
4 結論
本文采用嵌入式TCP/IP協(xié)議,通過高速8位單片機實現(xiàn)GPRS業(yè)務的數(shù)據傳輸功能,具有外圍電路少,電路簡單,系統(tǒng)成本低等優(yōu)點。通過標準RS232串口和外部控制器連接,只需按照預先規(guī)定的協(xié)議就可互相通信,通用性較強。系統(tǒng)軟件均使用C語言編寫,稍加改動就可以在各種控制器上實現(xiàn),可移植性也較強。
基于GPRS的系統(tǒng)也有一定的缺點,例如,現(xiàn)在的GPRS網還不夠穩(wěn)定,有丟包的現(xiàn)象;主控制器要實現(xiàn)IP協(xié)議,使用起來比較復雜;上位機基于互聯(lián)網的解決方案保密性較差等。上述問題經過精心設計是可以避免和解決的,所以基于GPRS的設計仍具有無可比擬的優(yōu)勢。





