GPRS無線通信系統(tǒng)中的MSC1210應用設計
引言
近年來,通信技術和網(wǎng)絡技術的迅速發(fā)展,特別是無線通信技術的發(fā)展,使得電力系統(tǒng)的自動化程度進一步提高,gsm網(wǎng)絡出現(xiàn)后,技術人員很快把gsm模塊嵌入到各種儀器儀表中(如多功能電能表、故障測錄儀、抄表系統(tǒng)和用電負荷監(jiān)控等),從而使這些儀器儀表具有遠程通信功能。
gprs是在現(xiàn)有gsm系統(tǒng)上發(fā)展出來的一種新的數(shù)據(jù)承載業(yè)務,支持tcp/ip協(xié)議,可以與分組數(shù)據(jù)網(wǎng)(internet等)直接互通。gprs無線傳輸系統(tǒng)的應用范圍非常廣泛。幾乎可以涵蓋所有的中低業(yè)務和低速率的數(shù)據(jù)傳輸,尤其適合突發(fā)的小流量數(shù)據(jù)傳輸業(yè)務。
本文設計的gprs無線通信模塊,內(nèi)嵌入了tcp/ip協(xié)議,采用工業(yè)級的gprs模塊,適用于單片機數(shù)據(jù)采集傳輸系統(tǒng)沒有tcp/ip協(xié)議棧,但使用串口通信的情況。
gprs通信原理及應用特點
◇ gprs簡介
gprs是通用無線分組業(yè)務(general pacpet radio system)的縮寫,是介于第二代和第三代之間的一種通信技術,通常稱為2.5g。gprs采用與gsm相同的頻段、頻帶寬度、突發(fā)結構、無線調(diào)制標準、調(diào)頻規(guī)則以及相同的td-ma幀結構。因此,在gsm系統(tǒng)的基礎上構建gprs系統(tǒng)時,gsm系統(tǒng)的絕大部分部件都不需要作硬件改動,只需要作軟件升級,有了gprs,用戶的呼叫建立時間大大縮短,幾乎可以做到“永遠在線”。此外,gprs是以營運商傳輸?shù)臄?shù)據(jù)量而不是連接時間為基準來計費,從而令每個用戶的服務成本更低。
◇ 基本工作原理
gprs是在原有的基于電路交換(csd)方式的gsm網(wǎng)絡上引入兩個新的網(wǎng)絡節(jié)點:gprs服務支持節(jié)點(sg-sn)和網(wǎng)關支持節(jié)點(ggsn)。sgsn和msc在同一等級水平,并跟蹤單個ms的存儲單元實現(xiàn)安全功能和接入控制,并通過幀中繼連接到基站系統(tǒng),ggsn支持與外部分組交換網(wǎng)的互通,并經(jīng)由基于ip的gprs骨干網(wǎng)和sgsn連通。圖1給出了gprs與internet進行連接的原理框圖。
gprs終端通過接口從客戶系統(tǒng)取得數(shù)據(jù),處理后的gprs分組數(shù)據(jù)發(fā)送到gsm基站,分組數(shù)據(jù)經(jīng)sgsn封裝后,sgsn通過gprs骨干網(wǎng)與網(wǎng)關支持接點ggsn進行通信,ggsn對分組數(shù)據(jù)進行相應的處理,再發(fā)送到目的網(wǎng)絡,如internet或x.25網(wǎng)絡。
若分組數(shù)據(jù)是發(fā)送到另一個gprs終端,則一般將數(shù)據(jù)由gprs骨干網(wǎng)發(fā)送到sgsn,再經(jīng)bss發(fā)送到gprs終端。
gprs模塊的硬件設計
嵌入式gprs無線通信模塊主要由嵌入tcp/ip的單片機(msc1210y5)、gprs模塊、sim卡座、外部接口和擴展數(shù)據(jù)存儲器等部分組成。圖2是其系統(tǒng)硬件框圖。
msc1210主要用于控制gprs模塊的信息接收和發(fā)送,并通過標準rs232串口和外部控制器(比如數(shù)據(jù)采集端)進行數(shù)據(jù)通信,同時用軟件實現(xiàn)中斷,以完成數(shù)據(jù)轉發(fā)。
◇ 單片機模塊
單片機采用美國德州儀器公司最新推出的基于8051內(nèi)核的mcs1210y5,該芯片具有很強的數(shù)據(jù)處理能力,時鐘頻率為33mhz,指令運行速度實際上與運行在99mhz時鐘頻率下的標準8051內(nèi)核相當,32kb
flash程序存儲器,256b內(nèi)部ram和1024b片上sram,2kb啟動rom,支持串行和并行的在系統(tǒng)編程,雙數(shù)據(jù)指針dptr0和dptr1可加快數(shù)據(jù)塊的移動速度,其主要實現(xiàn)過程如下:
(1)通過at指令初始化gprs無線模塊,使之附著在gprs網(wǎng)絡上,以獲得網(wǎng)絡運營商動態(tài)分配的gprs終端ip地址,并與目的終端建立連接。
(2)通過串口0擴展max232標準串口和外部控制器(例如數(shù)據(jù)采集端)連接,外部控制器端接出標準串口,按照約好的協(xié)議可很容易利用本設計的控制器進行通信。
(3)復用p1.2和p1.3,也就是串口1分別和gprs模塊的txd0和rxd0連接,p1口的其他6個端口分別接到gprs模塊對應的剩余rs232通信口。通過軟件置位完成對mc35的初始化和控制gprs模塊的收發(fā)數(shù)據(jù)。
◇ 擴展數(shù)據(jù)存儲器
msc1210的flash存儲器可全部作為flash程序存儲器,也可以全部作為數(shù)據(jù)flash程序,因為要嵌入實時操作系統(tǒng)和網(wǎng)絡協(xié)議,需要一定的空間,因此將其全部用作程序存儲器,而通過74hc573作為地址鎖存器,擴展6264作為外部數(shù)據(jù)存儲器,8kb的數(shù)據(jù)存儲空間足夠程序正常運行了,圖3所示是msc1210與數(shù)據(jù)存儲器之間的硬件連接圖。
◇ gprs無線數(shù)傳模塊
gprs無線模塊作為終端的無線收發(fā)模塊,把從單片機發(fā)送過來的ip包或基站轉來得的分組數(shù)據(jù)進行相應的處理后再轉發(fā)。
gprs模塊采用德國simens公司生產(chǎn)的mc35模塊。mc35模塊主要由射頻天線,內(nèi)部flash、sram、gsm基帶處理器、匹配電源和一個40腳的zif插座組成。gsm基帶處理器是核心部件,其作用相當于一個協(xié)議處理器,用來處理外部系統(tǒng)通過串口發(fā)送at指令,射頻天線部分主要實現(xiàn)信號的調(diào)制和解調(diào),以及外部射頻信號與內(nèi)部基帶處理器之間的信號轉換,匹配電源為處理器基射頻部分提供所需的電源。mc35的外圍電路如圖4所示。
圖中,由as2815將外部電壓轉換成3.3v工作電壓。系統(tǒng)中的啟動電路由三極管和上電復位電路組成,模塊上電后,為使之正常工作,必須在15腳加至少100ms的低電平信號,啟動后,15腳信號應保持高電平。
mc35在zif連接器上為sim卡接口預留的引腳數(shù)為6個,要注意的是,ccin引腳用來檢測sim卡座是否插有sim卡,當插入sim卡,該引腳置為高電平時,系統(tǒng)方可進入正常工作。
sync引腳有兩種工作模式:一種是指示發(fā)射狀態(tài)時的功率增長情況,另一種是指示mc35的工組狀態(tài),本設計中使用后一種模式,led熄滅時,表明mc35處于關閉或睡眠狀態(tài);當led為600ms亮/600ms熄時,表明sim卡沒有插入或mc35正在進行網(wǎng)絡登陸;當led為75ms為亮/3s熄時,表明mc35已登陸進入網(wǎng)絡,處于待機狀態(tài)。
單片機通信程序設計
該程序軟件中的所有代碼都用c語言編寫,在keil環(huán)境中編譯,keil是keil software公司為8051及其兼容產(chǎn)品提供的專門開發(fā)工具,它支持在系統(tǒng)調(diào)試,keil中c51譯碼器很好地集成了rtx多任務實時操作系統(tǒng),編寫程序時,需在源代碼頭加入“#incluede
rtx51.h”。所有代碼調(diào)試后經(jīng)由ti downloader下載到存儲器中。
目前,絕大多數(shù)基于gprs網(wǎng)絡應用系統(tǒng)所使用的gprs模塊不支持tcp/ip協(xié)議,也就是說,要想工作在相同的網(wǎng)絡層面上,其內(nèi)部傳輸?shù)臄?shù)據(jù)必須都要采用相同的協(xié)議,所以除了利用gprs模塊的功能外,必須在單片機系統(tǒng)中嵌入按tcp/ip和ppp協(xié)議標準編寫的程序,從而使設計的終端設備能夠方便的應用gprs數(shù)據(jù)分組業(yè)務。
◇ tcp/ip協(xié)議的嵌入
有很多種方法可以完成協(xié)議轉換,本設計利用在嵌入式實時操作系統(tǒng)rtx51中移植部分ip和ppp協(xié)議來增強系統(tǒng)的可擴展性和產(chǎn)品開發(fā)的可延續(xù)性。
tcp/ip協(xié)議是一個標準協(xié)議套件,可以用分層模型來描述,數(shù)據(jù)打包處理數(shù)據(jù)時,每一層把自己的信息添加到一個數(shù)據(jù)頭中,而這個數(shù)據(jù)頭又被下一層中的協(xié)議包裝到數(shù)據(jù)體中。數(shù)據(jù)解包處理程序接收到gprs數(shù)據(jù)時,把相應的數(shù)據(jù)頭剝離,并把數(shù)據(jù)包的其余部分當做數(shù)據(jù)體對待。
考慮到嵌入式系統(tǒng)的特點,本設計采用了系統(tǒng)開銷較小的iip+udp協(xié)議來實現(xiàn)gprs通信,主機發(fā)送的udp數(shù)據(jù)報文經(jīng)gprs通道傳送給gprs通信模塊,gprs通信模塊負責對數(shù)據(jù)報進行解析,解析后的數(shù)據(jù)按照一定的波特率串行傳送給用戶終端。
◇ 數(shù)據(jù)處理
數(shù)據(jù)包在主機和gprs服務器群中傳輸使用的是基于ip的分組,即所有的數(shù)據(jù)報文都要基于ip包,但明文傳送ip包不可取。故一般使用ppp協(xié)議進行傳輸,模塊向網(wǎng)關發(fā)送ppp報文都會傳送到internet網(wǎng)中相應的地址。而從internet傳送過來的應答幀也同樣會根據(jù)ip地址傳送到gprs模塊,從而實現(xiàn)采集數(shù)據(jù)和internet網(wǎng)絡通過gprs模塊的透明傳輸。
要注意的是,gsm網(wǎng)絡無靜態(tài)ip地址,故其他通信設備不能向它提出建立連接請求,監(jiān)控中心必須擁有一個固定的ip,以便監(jiān)測終端可以在登陸gsm網(wǎng)絡后通過該ip找到監(jiān)控中心,關于這一點,很容易解決,只需在電信申請相應的服務就可以了。
gprs模塊登陸上gsm網(wǎng)絡后,自動連接到數(shù)據(jù)中心,向數(shù)據(jù)中心報告其ip地址,并保持和維護數(shù)據(jù)鏈路的連接,gprs監(jiān)測鏈路的連接情況,一旦發(fā)生異常,gprs模塊自動重新建立鏈路,數(shù)據(jù)中心和gprs模塊之間就可以通過i地址通過udp/ip協(xié)議進行雙向通信,實現(xiàn)透明的可靠數(shù)據(jù)傳輸。
上位機監(jiān)控中心的設計
監(jiān)控中心的功能是實現(xiàn)gprs信息的接收和保存,設計語言采用microsoft公司的visual c++編程語言,c++語言應用靈活,功能強大,并對網(wǎng)絡編程和數(shù)據(jù)庫有強大的支持。
由于通過gprs中心監(jiān)控部分可以直接訪問互聯(lián)網(wǎng),所以監(jiān)控部分并不需要再設置gprs模塊,中心只需通過中心軟件偵聽網(wǎng)絡,接收gprs無線模塊傳來的udp協(xié)議的ip包和發(fā)送上位機控制信息,以實現(xiàn)與gprs終端的ip協(xié)議通信。接收到的信息要保存到中心的數(shù)據(jù)庫中,以備查歷史記錄。數(shù)據(jù)庫采用access,用vc編制的界面窗口能推動ad()訪問access中的數(shù)據(jù),也可通過socket接收網(wǎng)絡終端信息。
socket接口是tcp/ip網(wǎng)絡的api,socket接口定義了許多函數(shù)和例程,程序員可以利用它來開發(fā)tcpip網(wǎng)絡上的應用程序,vc中的mfc列提供了casyncsocket這樣一個套接字類,用它來實現(xiàn)socket編程非常方便,本設計采用數(shù)據(jù)報文式的socket,這是一種無連接的socket,對應于無連接的udp服務應用。
casyncsocket使用docallback函數(shù)來處理mfc消息,一個網(wǎng)絡事件發(fā)生時,docallback函數(shù)按照網(wǎng)絡時間類型fd_read、fd_write、fd_accept和fd_con-nect來分別調(diào)用onreceive、onsend、onaccept和oncon-nect函數(shù),以驅(qū)動相應的事件,從而完成網(wǎng)絡數(shù)據(jù)通信。
結束語
本文采用嵌入式tcp/ip協(xié)議,通過高速8位單片機實現(xiàn)gprs業(yè)務的數(shù)據(jù)傳輸功能,具有外圍電路少,電路簡單,系統(tǒng)成本低等優(yōu)點,通過標準rs232串口和外部控制器連接,只需按照預先規(guī)定的協(xié)議就可互相通信,通用性較強,系統(tǒng)軟件均使用c語言編寫,稍加改動就可以在各種控制器上實現(xiàn),可移植性也較強。
基于gprs的系統(tǒng)有有一定的缺點,例如,現(xiàn)在的gprs網(wǎng)還不夠穩(wěn)定,有丟包的現(xiàn)象,主控制器要實現(xiàn)ip協(xié)議,使用起來比較復雜;上位機基于互聯(lián)網(wǎng)的解決方案保密性較差等,上述問題經(jīng)過精細設計是可以避免和解決的,所以基于gprs的設計仍具有無可比擬的優(yōu)勢。
評論