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

gprs終端通過接口從客戶系統取得數據,處理后的gprs分組數據發送到gsm基站。分組數據經sgsn封裝后,sgsn通過gprs骨干網與網關支持接點ggsn進行通信。ggsn對分組數據進行相應的處理,再發送到目的網絡,如internet或x.25網絡。
若分組數據是發送到另一個gprs終端,則數據由gprs骨干網發送到sgsn,再經bss發送到gprs終端。
2 嵌入式gprs通信系統的實現
2.1 gprs模塊的硬件設計
嵌入式gprs無線通信模塊主要由嵌入tcp/ip的單片機(msc1210y5)、gprs模塊、sim卡座、外部接口和擴展數據存儲器等部分組成。圖2是系統的硬件框圖。

msc1210控制gprs模塊接收和發送信息,通過標準rs232串口和外部控制器(比如數據采集端)進行數據通信。用軟件實現中斷,完成數據的轉發。
2.1.1 單片機模塊
單片機采用美國德州儀器公司最新推出的基于8051內核的msc1210y5。該芯片具有很強的數據處理能力,時鐘頻率為33 mhz,指令運行速度實際上與運行在99 mhz時鐘頻率下的標準8051內核相當。32 kb flash程序存儲器,256 b內部ram和1024 b片上sram,2 kb啟動rom,支持串行和并行的在系統編程。雙數據指針dptr0和dptr1可加快數據塊的移動速度。
其主要實現過程如下:
① 通過at指令初始化gprs無線模塊,使之附著在gpsr網絡上,獲得網絡運營商動態分配的gprs終端ip地址,并與目的終端建立連接。
② 通過串口0擴展max232標準串口和外部控制器(例如數據采集端)連接,外部控制器端接出標準串口,按照約好的協議可很容易利用本設計的控制器進行通信。
③ 復用p1.2和p1.3,也就是串口1分別和gprs模塊的txd0和rxd0連接,p1口的其他6個端口分別接到gprs模塊對應的剩余rs232通信口,通過軟件置位完成對mc35的初始化和控制gprs模塊的收發數據。
2.1.2 擴展數據存儲器部分
msc1210的flash存儲器可全部作為flash程序存儲器,也可以全部作為數據flash程序。因為要嵌入實時操作系統和網絡協議,需要一定的空間,因此將其全部用作程序存儲器,而通過74hc573作為地址鎖存器,擴展6264作為外部數據存儲器,8 kb的數據存儲空間足夠程序正常運行。
圖3給出了msc1210與數據存儲器之間的硬件連接圖。

2.1.3 gprs無線數傳模塊
gprs無線模塊作為終端的無線收發模塊,把從單片機發送過來的ip包或基站傳來的分組數據進行相應的處理后再轉發。
gprs模塊采用德國simens公司生產的mc35模塊。mc35模塊主要由射頻天線、內部flash、sram、gsm基帶處理器、匹配電源和一個40腳的zif插座組成。gsm基帶處理器是核心部件,其作用相當于一個協議處理器,用來處理外部系統通過串口發送at指令。射頻天線部分主要實現信號的調制和解調,以及外部射頻信號與內部基帶處理器之間的信號轉換。匹配電源為處理器基射頻部分提供所需的電源。mc35外圍電路如圖4所示。

as2815將外部電壓轉換成3.3 v工作電壓。
啟動電路由三極管和上電復位電路組成,模塊上電后,為使之正常工作,必須在15腳加至少為100 ms的低電平信號。啟動后,15腳信號應保持高電平。
mc35在zif連接器上為sim卡接口預留的引腳數為6個,要注意的是,ccin引腳用來檢測sim卡座是否插有sim卡。當插入sim卡,該引腳置為高電平時,系統方可進入正常工作。
sync引腳有兩種工作模式:一種是指示發射狀態時的功率增長情況,另一種是指示mc35的工組狀態。本設計中使用后一種模式,led熄滅時,表明mc35處于關閉或睡眠狀態;當led為600 ms亮/600 ms熄時,表明sim卡沒有插入或mc35正在進行網絡登陸;當led為75 ms亮/3 s熄時,表明mc35已登陸進網絡,處于待機狀態。
2.2 單片機通信程序設計
軟件中的所有代碼都用c語言編寫,在keil環境中編譯。keil是keil software公司為8051及其兼容產品提供的專門開發工具,它支持在系統調試。keil中c51編譯器很好地集成了rtx多任務實時操作系統,編寫程序時,需在源代碼頭加入“#incluede rtx51.h”。所有代碼調試通過后經由ti downloader下載到存儲器中。
目前,絕大多數基于gprs網絡應用系統所使用的gprs模塊不支持tcp/ip協議。也就是說,要想工作在相同的網絡層面上,其內部傳輸的數據必須都要采用相同的協議,所以除了利用gprs模塊的功能外,必須在單片機系統中嵌入按tcp/ip和ppp協議標準編寫的程序,從而使設計的終端設備能夠方便的應用gprs數據分組業務。
2.2.1 tcp/ip協議的嵌入
有很多種方法可以完成協議轉換,本設計利用在嵌入式實時操作系統rtx51中移值部分ip和ppp協議來增強系統的可擴展性和產品開發的可延續性。
tcp/ip協議是一個標準協議套件,可以用分層模型來描述。數據打包處理數據時,每一層把自己的信息添加到一個數據頭中,而這個數據頭又被下一層中的協議包裝到數據體中。數據解包處理程序接收到gprs數據時,把相應的數據頭剝離,并把數據包的其余部分當作數據體對待。
考慮到嵌入式系統的特點,本設計采用了系統開銷較小的ip+udp協議來實現gprs通信。主機發送的udp數據報文經gprs通道傳送給gprs通信模塊, gprs通信模塊負責對數據報進行解析,解析后的數據按照一定的波特率串行傳送給用戶終端。
2.2.2 數據處理
數據包在主機和gprs服務器群中傳輸使用的是基于ip的分組,即所有的數據報文都要基于ip包。但明文傳送ip包不可取,故一般使用ppp協議進行傳輸。模塊向網關發送ppp報文都會傳送到internet網中相應的地址,而從internet傳送過來的應答幀也同樣會根據ip地址傳送到gpsr模塊,從而實現采集數據和internet網絡通過gprs模塊的透明傳輸。
要注意的是,gsm網絡無靜態ip地址,故其他通信設備不能向它提出建立連接請求,監控中心必須擁有一個固定的ip,以便監測終端可以在登陸gsm網絡后通過該ip找到監控中心。關于這一點,很容易解決,只需在電信申請相應的服務就可以了。
gprs模塊登陸上gsm網絡后,自動連接到數據中心,向數據中心報告其ip地址,并保持和維護數據鏈路的連接。gprs監測鏈路的連接情況,一旦發生異常,gprs模塊自動重新建立鏈路,數據中心和gprs模塊之間就可以通過i地址通過udp/ip協議進行雙向通信,實現透明的可靠數據傳輸。
3 上位機監控中心的設計
監控中心的功能是實現gprs信息的接收和保存。設計語言采用microsoft公司的visual c++編程語言,c++語言應用靈活,功能強大,并對網絡編程和數據庫有強大的支持。
由于通過gprs,中心監控部分可以直接訪問互聯網,所以監控部分并不需要再設置gprs模塊。中心只需通過中心軟件幀聽網絡,接收gprs無線模塊傳來的udp協議的ip包和發送上位機控制信息,以實現與gprs終端的ip協議通信。接收到的信息要保存到中心的數據庫中,以備查歷史記錄。數據庫采用access,vc編制的界面窗口通過ado訪問access中的數據。需要說明的是,筆者是通過socket接收網絡終端信息的。
socket接口是tcp/ip網絡的api,socket接口定義了許多函數和例程,程序員可以利用它來開發tcp/ip網絡上的應用程序。vc中的mfc類提供了casyncsocket這樣一個套接字類,用它來實現socket編程非常方便。本設計中采用數據報文式的socket,它是一種無連接的socket,對應于無連接的udp服務應用。
casyncsocket類用docallback函數處理mfc消息,當一個網絡事件發生時,docallback函數按照網絡事件類型:fd_rea d、fd_write、fd_accept和fd_connect分別調用onreceive、onsend、onaccept和onconnect函數,驅動相應的事件,完成網絡數據通信過程。
4 結論
本文采用嵌入式tcp/ip協議,通過高速8位單片機實現gprs業務的數據傳輸功能,具有外圍電路少,電路簡單,系統成本低等優點。通過標準rs232串口和外部控制器連接,只需按照預先規定的協議就可互相通信,通用性較強。系統軟件均使用c語言編寫,稍加改動就可以在各種控制器上實現,可移植性也較強。
基于gprs的系統也有一定的缺點,例如,現在的gprs網還不夠穩定,有丟包的現象;主控制器要實現ip協議,使用起來比較復雜;上位機基于互聯網的解決方案保密性較差等。上述問題經過精心設計是可以避免和解決的,所以基于gprs的設計仍具有無可比擬的優勢。
評論