GPRS數(shù)據(jù)傳送服務(wù)的無(wú)線通信控制器設(shè)計(jì)
摘要:GPRS數(shù)據(jù)傳送服務(wù)作為GSM網(wǎng)絡(luò)的一種新業(yè)務(wù),已得到越來(lái)越多的系統(tǒng)運(yùn)營(yíng)商和系統(tǒng)開(kāi)發(fā)商的重視。以GSM網(wǎng)絡(luò)作為數(shù)據(jù)無(wú)線傳輸網(wǎng)絡(luò),可以開(kāi)發(fā)出多種前景極其樂(lè)觀的各類(lèi)應(yīng)用。本文提出一個(gè)基于GPRS數(shù)據(jù)傳送服務(wù)的通信控制器的設(shè)計(jì),并詳細(xì)闡述該控制器的實(shí)現(xiàn)原理。
關(guān)鍵詞:通用分組無(wú)線業(yè)務(wù) TCP/IP協(xié)議 協(xié)議棧
引言
能用分組無(wú)線業(yè)務(wù)GPRS(General Packet Radio Service)是在現(xiàn)有的GSM系統(tǒng)上發(fā)展出來(lái)的一種新的承載業(yè)務(wù),目的是為GSM用戶(hù)提供分組形式的數(shù)據(jù)業(yè)務(wù)?;谶@種業(yè)務(wù)的各種應(yīng)用也蓬勃發(fā)展起來(lái)。以GSM網(wǎng)絡(luò)作為數(shù)據(jù)無(wú)線傳輸網(wǎng)絡(luò),可以開(kāi)發(fā)出多種前景極其樂(lè)觀的各類(lèi)應(yīng)用,如無(wú)線數(shù)據(jù)的雙向傳送、無(wú)線遠(yuǎn)程檢測(cè)和控制等。典型的應(yīng)用有:工業(yè)控制、環(huán)境保護(hù)、道路交通、商務(wù)金融、移動(dòng)辦公、零售服務(wù)等等。
GPRS允許用戶(hù)在端到端分組轉(zhuǎn)移模式下發(fā)送和接收數(shù)據(jù),需不需要利用電路交換模式的網(wǎng)絡(luò)資源;從而提供了一種高效、低成本的無(wú)線分組數(shù)據(jù)業(yè)務(wù),特別適用于間斷的、突發(fā)性的和頻繁的、少量的數(shù)據(jù)傳輸,也適用于偶爾的大數(shù)據(jù)量傳輸。
本文設(shè)計(jì)的GPRS無(wú)線通信控制器(以下簡(jiǎn)稱(chēng)控制器),內(nèi)嵌了TCP/IP協(xié)議棧,采用工業(yè)級(jí)的GPRS模塊;適用于主機(jī)沒(méi)有TCP/IP協(xié)議棧,但使用串口通信的情況,例如單片機(jī)數(shù)據(jù)采集傳輸系統(tǒng)。
1 GPRS網(wǎng)絡(luò)數(shù)據(jù)的收發(fā)
終端設(shè)備通過(guò)串行方式接到控制器上并與GSM基站通道,但與電路交換或數(shù)據(jù)呼叫不同。GPRS數(shù)據(jù)分組是從基站發(fā)送到SGSN節(jié)點(diǎn),而不是通過(guò)移動(dòng)交換中心MSC連接到語(yǔ)音網(wǎng)絡(luò)上。SGSN與網(wǎng)關(guān)支持節(jié)點(diǎn)GGSM進(jìn)行通信。GGSN對(duì)分組數(shù)據(jù)進(jìn)行相應(yīng)的處理,再發(fā)送到目的網(wǎng)絡(luò),如Internet或X.25網(wǎng)絡(luò),見(jiàn)圖1。來(lái)自Internet、標(biāo)識(shí)有移動(dòng)臺(tái)地址的IP包,由GGSN接收,再轉(zhuǎn)發(fā)到SGSN,繼而傳送到移動(dòng)臺(tái)上。
控制器工作時(shí),用戶(hù)上位系統(tǒng)向控制器發(fā)送工作指令和數(shù)據(jù),數(shù)據(jù)由IP模塊進(jìn)行了TCP/IP協(xié)議轉(zhuǎn)換,打成IP數(shù)據(jù)包,再由MC35模塊以GPRS數(shù)據(jù)包的形式發(fā)送到SGSN。
由于GPRS網(wǎng)絡(luò)工作方式是以IP地址導(dǎo)址為基礎(chǔ)的,所以目標(biāo)服務(wù)器端并非接入控制器與終端設(shè)備進(jìn)行連接,只需要簡(jiǎn)單接入Internet,并具備公網(wǎng)分配的IP地址即可。同時(shí),因?yàn)镚PRS終端產(chǎn)品本身由網(wǎng)絡(luò)提供商動(dòng)態(tài)地分配IP地址,在未進(jìn)入連接待機(jī)狀態(tài)時(shí),其本身是不具備IP地址的(在連接中,模塊的IP地址為移動(dòng)骨干網(wǎng)內(nèi)局域網(wǎng)IP,無(wú)法被公網(wǎng)服務(wù)器解析,動(dòng)態(tài)分配的制度使獲取比IP地址無(wú)意義)。因此在服務(wù)器與終端尚未建立連接前,目標(biāo)服務(wù)器難以(可將短信轉(zhuǎn)換為命令內(nèi)容)對(duì)終端設(shè)備及控制器進(jìn)行控制。必須先將控制器進(jìn)行相應(yīng)初始化,并由設(shè)備終端主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),進(jìn)行連接。
2 控制器內(nèi)部的硬件實(shí)現(xiàn)
控制器內(nèi)部由四部分構(gòu)成:嵌入TCP/IP的單片機(jī)系統(tǒng)、MC35模塊、電源部分和外部接口部分。
在設(shè)計(jì)時(shí),考慮到雙串口性能和高速的全靜態(tài)CMOS設(shè)計(jì),嵌入式單片機(jī)系統(tǒng)選用臺(tái)灣Winbond的W77E58芯片作為MCU模塊的處理器芯片。它是高速的、與MCS-51指令兼容的、沒(méi)有多余指令周期的微控制器,在相同時(shí)鐘頻率下,運(yùn)行同樣的指令要比傳統(tǒng)的8051快1.5~3.0倍。它完全是靜態(tài)CMOS設(shè)計(jì),工作電壓為4.5V~5.5V,有32KB的片內(nèi)程序ROM,內(nèi)部有1KB SRAM,最高時(shí)鐘頻率可達(dá)40MHz;有雙指針、雙串口,13個(gè)中斷源,3個(gè)16位定時(shí)器。單片機(jī)W77E58通過(guò)串口1直接與MC35模塊相連接,完成對(duì)MC35模塊的初始化和基于GPRS業(yè)務(wù)的數(shù)據(jù)收發(fā)功能;同時(shí)串口2擴(kuò)展MAX232標(biāo)準(zhǔn)串口與其它嵌入式系統(tǒng)或PC機(jī)進(jìn)行數(shù)據(jù)交換。圖2是系統(tǒng)的硬件框圖。
MC35模塊是西門(mén)子公司生產(chǎn)的GSM雙頻GSM900/GSM1800無(wú)線模塊。它支持2種操作模式:一種是電路交換數(shù)據(jù)模式CSD,支持語(yǔ)音、數(shù)據(jù)、SMS和FAX業(yè)務(wù);一種是分組交換模式GPRS,采用多時(shí)隙,支持CS1-CS4編碼。兩者最大的區(qū)別是,GPRS傳輸數(shù)據(jù)時(shí)不需要再撥號(hào)。2種模式的選擇通過(guò)AT指令來(lái)實(shí)現(xiàn)。MC35模塊提供40線的ZIF接口方式。
電源部分為單片機(jī)系統(tǒng)和GPRS模塊提供合適的電源。外部接口部分包括一個(gè)8腳數(shù)據(jù)接口、SMA(射頻同軸連接器)天線接口、SIM(Subscriber Identity Module,用戶(hù)識(shí)別)卡座接口。表1是各引腳的詳細(xì)說(shuō)明。
表1 外部接口引腳說(shuō)明
功能 | 名稱(chēng) | 引腳號(hào) | I/O | 信號(hào)電平 | 注 釋 |
強(qiáng)制復(fù)位 | RST | 1 | I/O | 當(dāng)模塊處于空閑或數(shù)據(jù)傳輸狀態(tài)時(shí),該引腳下拉至0.45V以下(需至少0.1mA的下拉能力),持續(xù)3.5s可使系統(tǒng)復(fù)位。該引腳同時(shí)還作為系統(tǒng)看門(mén)狗信號(hào)輸出,可據(jù)此監(jiān)視系統(tǒng)工作狀態(tài)fout,min=0.16Hz fout,max=1.53Hz | 正常情況下,該引腳處于看門(mén)狗信號(hào)輸出狀態(tài)并且輸出電流很微弱(0.01mA),因此必須使其處于高阻狀態(tài);不得有外部上下拉電路 |
RS232 | RXD | 2 | I | 該組引腳系標(biāo)準(zhǔn)RS232電平信號(hào),可直接與PC機(jī)連接 | 如果連接PC機(jī)上Internet網(wǎng),則需要使用CTS和RTS,其它通信方式示不需要這兩個(gè)引腳 |
TxD | 3 | O | |||
CTS | 4 | O | |||
RTS | 5 | I | |||
SGGND | 8 | 0 | SGGND是RS232信號(hào)地,在模塊內(nèi)部與GND相連 | ||
RS485 | A | 6 | I/O | 該組引腳系標(biāo)準(zhǔn)RS485電平信號(hào),模塊內(nèi)部已加120匹配電阻 | 模塊內(nèi)部光電隔離電路 |
B | 7 |
為使控制器運(yùn)行穩(wěn)定可靠,對(duì)其看門(mén)狗電路進(jìn)行了精心設(shè)計(jì)。
3 控制器的軟件接口
在本設(shè)計(jì)中,需要利用TCP/IP協(xié)議來(lái)完成GPRS業(yè)務(wù)數(shù)據(jù)的打包和解包。由于W77E58資源有限,怎樣在有限的資源上完成必需的功能,就是嵌入式TCP/IP協(xié)議實(shí)現(xiàn)的關(guān)系所在,也就是合理地簡(jiǎn)化協(xié)議。
TCP/IP協(xié)議是一個(gè)為廣域網(wǎng)(WAN)設(shè)計(jì)的標(biāo)準(zhǔn)協(xié)議套件,可以用一個(gè)分成四個(gè)層次的模型來(lái)描述:數(shù)據(jù)鏈路層、互聯(lián)網(wǎng)層、傳輸層和應(yīng)用層。其分層模型及協(xié)議如表2所列。
表2 TCP/IP協(xié)議結(jié)構(gòu)
應(yīng)用層 | HTTP、Telnet、FIT、SMTP、SNMP |
傳輸層 | TCP、UDP |
互聯(lián)網(wǎng)層 | IP、ARP、RARP、ICMP、IGMP |
數(shù)據(jù)鏈路層 | Ethernet、X.25、SLIP、PPP |
應(yīng)用層(application)負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié),在本系統(tǒng)中只實(shí)現(xiàn)HTTP協(xié)議。
傳輸層(transport)主要為2臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。TCP協(xié)議是為2臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信,這里采用TCP傳輸控制協(xié)議。
互聯(lián)網(wǎng)層(Internet)的功能是尋址、定址、數(shù)據(jù)打包和安排路徑。Internet所有的數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸,其最大特別是提供不可靠的和無(wú)連接的數(shù)據(jù)包傳送服務(wù)。在GPRS業(yè)務(wù)中,每一次鏈接都會(huì)具體分配一個(gè)IP地址,因此用ARP/RARP協(xié)議完成IP地址與物理地址的映射(即地址解析),用ICMP協(xié)議判斷網(wǎng)絡(luò)是否連通。
數(shù)據(jù)鏈路層(link)的任務(wù)是把要發(fā)出的幀送到線路中去,把要接收的幀從線路中取出來(lái)。GPRS業(yè)務(wù)是采用IP Over PPP實(shí)現(xiàn)數(shù)據(jù)終端的接入。這部分功能由單片機(jī)控制MC35模塊,采用PPP協(xié)議實(shí)現(xiàn)。
數(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ì)待。
在應(yīng)用要求高的場(chǎng)合,通常需要支持完事的TCP/IP協(xié)議族,而在嵌入式系統(tǒng)中也是可以做到的;但是,考慮到成本和具體的應(yīng)用場(chǎng)合,沒(méi)有必要包括所有的TCP/IP協(xié)議族??梢钥吹?,采用TCP/IP協(xié)議需要對(duì)它進(jìn)行合理的裁剪,以滿(mǎn)足小ROM系統(tǒng)的情況。
系統(tǒng)在利用MC35模塊的GPRS業(yè)務(wù)瀏覽HTTP等功能之前,必須先激活GPRS網(wǎng)的PDP連接。單片機(jī)通過(guò)正確的AT指令和GPRS命令集對(duì)MC35模塊進(jìn)行初始化和數(shù)據(jù)的接收發(fā)送,其工作流程如圖3所示。
單片機(jī)上電復(fù)位后,首先對(duì)MAX232進(jìn)行初始化,完成與外接模塊協(xié)商處理,如波特率、是否有奇偶校驗(yàn)等。接著,通過(guò)串口1對(duì)MC35模塊進(jìn)行初始化,檢查諸如SIM卡情況、GPRS網(wǎng)絡(luò)覆蓋情況、信號(hào)情況等。接下來(lái),進(jìn)行中斷掃描,監(jiān)控是否有數(shù)據(jù)到來(lái)。有關(guān)數(shù)據(jù)時(shí),如果是外部數(shù)據(jù),就啟動(dòng)數(shù)據(jù)打包處理過(guò)程;如果是GPRS數(shù)據(jù),就啟動(dòng)數(shù)據(jù)解包處理過(guò)程。如果沒(méi)有數(shù)據(jù),系統(tǒng)則進(jìn)入節(jié)電模式。在數(shù)據(jù)打包處理過(guò)程中,如果檢測(cè)到系統(tǒng)的信號(hào)不好,網(wǎng)絡(luò)連接不暢通,或者不是GPRS網(wǎng)絡(luò)覆蓋區(qū),將進(jìn)行數(shù)據(jù)發(fā)送緩存處理,同時(shí)將數(shù)據(jù)放進(jìn)發(fā)送隊(duì)列等待發(fā)送。
結(jié)語(yǔ)
本文采用嵌入式TCP/IP協(xié)議,在高速的8位微控制器上實(shí)現(xiàn)了對(duì)MC35模塊的控制,并實(shí)現(xiàn)了GPRS業(yè)務(wù)的數(shù)據(jù)傳輸功能;具有外圍器件少、電路簡(jiǎn)單、系統(tǒng)成本低等優(yōu)點(diǎn)。本文設(shè)計(jì)的GPRS無(wú)線通信控制器,自2002年1月份起,在廣東省東莞市的環(huán)保污水綜合處理系統(tǒng)中使用至今,運(yùn)行效果良好,實(shí)踐證明,產(chǎn)品工作穩(wěn)定、可靠。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論