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