引言
近年來,無線通信技術(shù)得到廣泛的應(yīng)用,GPRS (General Packet Radio System)通用無線分組網(wǎng)絡(luò)就是一種比較流行的無線通信網(wǎng)絡(luò)。
GPRS網(wǎng)絡(luò)具有覆蓋范圍廣、數(shù)據(jù)傳輸速度快、通信質(zhì)量高、永遠(yuǎn)在線和可按流量計(jì)費(fèi)等優(yōu)點(diǎn)。
本傳輸方案采用的是西門子GPRS無線通信模塊MC35i,該模塊支持標(biāo)準(zhǔn)的AT指令集,但并沒有嵌入TCP/IP協(xié)議,不過系統(tǒng)采用的linux操作系統(tǒng)里面帶有完整的TCP/IP協(xié)議棧以及PPP協(xié)議,它不但減少了軟件系統(tǒng)的復(fù)雜度,也增加了系統(tǒng)的穩(wěn)定性。這樣,本方案就可用于不同的場合,只要設(shè)計(jì)相應(yīng)的上層軟件處理系統(tǒng)即可。
1 系統(tǒng)總體設(shè)計(jì)
該系統(tǒng)主要由GPRS通訊模塊和控制模塊兩部分組成,并采用嵌入式系統(tǒng)來設(shè)計(jì)GPRS終端。該嵌入式系統(tǒng)由硬件和應(yīng)用軟件組成,其架構(gòu)可分為微處理器、內(nèi)存、輸入輸出、操作系統(tǒng)和應(yīng)用軟件等五部分。系統(tǒng)的硬件由微處理器、GPRS模塊、SIM卡座、外部接口和擴(kuò)展數(shù)據(jù)存儲(chǔ)器等部分組成。微處理器可控制GPRS模塊的信息接收和發(fā)送,以通過標(biāo)準(zhǔn)RS232串口和外部控制器進(jìn)行數(shù)據(jù)通訊,其系統(tǒng)原理結(jié)構(gòu)如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)硬件主要是以ARM為開發(fā)平臺,以西門子公司的MC39i模塊作為GPRS發(fā)送模塊,從而使系統(tǒng)快速完成發(fā)送工作。
2.1 嵌入式微處理器單元
本硬件平臺的CPU采用Samsung的基于ARM920T內(nèi)核的S3C2410微處理器,S3C2410是采用0.18μm工藝制造的32位微控制器,該處理器擁有獨(dú)立的16 KB指令Cache及16 KB數(shù)據(jù)Cache和MMU,并可支持TFT的LCD控制器、NAND閃存控制器、3路UART、4路DMA、4路帶PWM的定時(shí)器、I/O 口、RTC、8路10位ADC、Touch Screen接口、IIC-BUS接口、IIS-BUS接口、2個(gè)USB主機(jī)、1個(gè)USB設(shè)備、SD主機(jī)和MMC接口和2路SPI。S3C2410處理器最高可運(yùn)行在203MHz頻率下。另外,通過提供一系列完整的系列外圍設(shè)備,S3C2410X可大大減少整個(gè)系統(tǒng)的成本,消除了為系統(tǒng)配置額外器件的需要。
2.2 GPRS模塊MC35i
MC35i是西門子公司最近推出的新一代雙頻GSM/GPRS通訊模塊的無鉛產(chǎn)品,它簡潔的封裝是很多應(yīng)用系統(tǒng)中無線高速數(shù)據(jù)傳輸?shù)睦硐虢鉀Q方案,可進(jìn)行數(shù)據(jù)、語音、SMS和FAX各個(gè)方面的應(yīng)用,且功耗低。它為用戶提供了永遠(yuǎn)在線、高速度、更簡單的移動(dòng)數(shù)據(jù)通信接入手段。 MC35i具有豐富的AT指令,而且功能強(qiáng)大,操作靈活方便,是繼GPRS手機(jī)的又一種非常重要的GPRS移動(dòng)通信系統(tǒng)的終端設(shè)備。它的出現(xiàn)給GPRS的發(fā)展注入了新的活力。
MC35i具有體積小、重量輕、功耗低等特點(diǎn)。MC35i的工作電壓為3.3~4.8 V,典型電壓為4.2V,最大工作電流為2 A。模塊可工作在EGSM900和GSMl800兩個(gè)頻段。工作于EGSM900時(shí)的功耗為2 W,工作于GSMl800時(shí)的功耗為1 W,可利用AT指令進(jìn)行控制,并支持文本和PDU模式的短消息、第i組的二類傳真。MC35i模塊常用的工作模式有省電模式、IDLE、TALK、數(shù)據(jù)等模式。通過獨(dú)特的40腳連接器(ZIF)可實(shí)現(xiàn)電源連接、指令、數(shù)據(jù)、語音信號及控制信號的雙向傳輸。MC35i模塊主要由GSM基帶控制器、射頻模塊、供電模塊、閃存、ZIF連接器、射頻功率放大器、天線接口等部分組成。
3 系統(tǒng)軟件設(shè)計(jì)
根據(jù)系統(tǒng)需求,在操作系統(tǒng)Linux啟動(dòng)前,首先應(yīng)該對微處理器和GPRS模塊在內(nèi)的系統(tǒng)內(nèi)外部硬件進(jìn)行初始化,在硬件初始化就緒后,可按系統(tǒng)要求劃分并創(chuàng)建系統(tǒng)任務(wù),最后啟動(dòng)Linux進(jìn)行各任務(wù)的調(diào)度。應(yīng)用程序共分為初始化任務(wù)、配置任務(wù)、數(shù)據(jù)發(fā)送任務(wù)、數(shù)據(jù)處理任務(wù)和用戶串口中斷服務(wù)等五個(gè)任務(wù)。本文主要完成系統(tǒng)的初始化以及撥號連入Internet等工作。
3.1 系統(tǒng)初始化
為了能利用TCP/PI協(xié)議進(jìn)行數(shù)據(jù)傳輸。設(shè)計(jì)時(shí)必須對系統(tǒng)的硬件和軟件進(jìn)行初始化。圖2所示為系統(tǒng)初始化部分的軟件流程圖。
本系統(tǒng)軟件在開始時(shí),首先需要通過檢查0x90端口的輸入電平是否為高來判斷MC35i模塊是否正常上電。若未能正常上電,那么,軟件將通過0x90端口的輸出使MC35i模塊上電。
當(dāng)MC35i模塊上電后,軟件將在內(nèi)存中開辟一個(gè)緩存區(qū)做為包括PPP、IP、TCP、UDP等協(xié)議的數(shù)據(jù)緩存區(qū)。該緩存區(qū)內(nèi)數(shù)據(jù)的存放方式采用雙向鏈表的方式。
為了TCP協(xié)議實(shí)現(xiàn)中能夠進(jìn)行超時(shí)檢測,在軟件中應(yīng)利用R8822CPU模塊的內(nèi)部定時(shí)器安裝一個(gè)20ms的時(shí)鐘中斷。
ETR186可通過其串口COM2和MC35i模塊相連接,用軟件可通過安裝串口中斷來和MC35i模塊進(jìn)行數(shù)據(jù)傳輸。
在完成上述操作后,系統(tǒng)即可以利用AT命令登錄GPRS網(wǎng)絡(luò)。若不成功,即進(jìn)行重試,超過重試次數(shù)后,即發(fā)送出錯(cuò)報(bào)告。最后就是進(jìn)行PPP鏈路的連接,同時(shí)發(fā)送數(shù)據(jù)。
3.2 撥號原理
所謂初始化模塊,主要就是設(shè)定APN:CMNET,
at+cgdcont=1,ip,cmnet,
然后利用chat程序撥號*99***1,#
待撥號連接成功后,再由pppd建立通信鏈路即可。其腳本改動(dòng)如下:在ppp-on里改了電話號碼為*99***1#,將賬號與密碼清除,再修改DIALER_SCRIPT的路徑,同時(shí)把下面的設(shè)備改成/dev/ttyS0,速率改為115200,再將crtscts參數(shù)去掉。同時(shí)在ppp-on-dialer里把帳號密碼去掉。其改動(dòng)后的腳本如下:
改動(dòng)完成后,執(zhí)行腳本PPP-on/ppp-on,即可撥號上網(wǎng)。
3.3 無線數(shù)據(jù)傳輸
當(dāng)GPRS撥號成功接入Internet后,就可以進(jìn)行無線數(shù)據(jù)傳輸了,這可通過Linux下的網(wǎng)絡(luò)編程實(shí)現(xiàn)?;赥CP/IP協(xié)議的網(wǎng)絡(luò)編程主要有兩種方式可以選擇:TCP方式和UDP方式。采用UDP方式進(jìn)行通信時(shí),要求通信雙方都知道對方的IP地址和端口號。但是目前GPRS網(wǎng)絡(luò)并不提供固定的IP服務(wù),通信鏈路中的GPRS終端的IP地址是由網(wǎng)關(guān)支持節(jié)點(diǎn)(GSN)動(dòng)態(tài)分配的。因此,GPRS終端在進(jìn)行每次數(shù)據(jù)發(fā)送后。它的IP地址和端口都可能發(fā)生變化。本方案中的網(wǎng)絡(luò)數(shù)據(jù)通信采用TCP方式。即采用流套接字進(jìn)行網(wǎng)絡(luò)編程。
3.4 上位機(jī)軟件設(shè)計(jì)
中心服務(wù)器端軟件應(yīng)提供一個(gè)可視化的監(jiān)控界面,以便直觀、方便、快捷地了解遠(yuǎn)程數(shù)據(jù)采集終端的狀態(tài),及時(shí)發(fā)現(xiàn)并處理異常和故障情況,實(shí)現(xiàn)與GPRS終端的通信。上位機(jī)部分采用的是Windows的平臺,編譯器采用VC6.0。為了方便網(wǎng)絡(luò)編程,90年代初,由Microsoft聯(lián)合了其他幾家公司共同制定了一套WINDOWS下的網(wǎng)絡(luò)編程接口,即Windows Sockets規(guī)范,這實(shí)際上不是一種網(wǎng)絡(luò)協(xié)議,而是一套開放的、可支持多種協(xié)議的、Windows下的網(wǎng)絡(luò)編程接口,現(xiàn)在的Winsock已經(jīng)基本上實(shí)現(xiàn)了與協(xié)議無關(guān),可以使用Winsock來調(diào)用多種協(xié)議的功能,但較常使用的是TCP/IP協(xié)議。Socket在計(jì)算機(jī)中實(shí)際提供了一個(gè)通信端口,可以通過這個(gè)端口與任何一個(gè)具有Socket接口的計(jì)算機(jī)進(jìn)行通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸時(shí),接收的信息都可通過這個(gè)Socket接口來實(shí)現(xiàn)。
在VC中進(jìn)行WINSOCK的API編程開發(fā)時(shí),需要在項(xiàng)目中使用下面三個(gè)文件,否則就會(huì)出現(xiàn)編譯錯(cuò)誤:
(1)WINSOCK.H:這是WINSOCKAPI的頭文件,需要包含在項(xiàng)目之中;
(2) WSOCK32.LIB:WINSOCKAPI連接庫文件。在使用中,一定要把它作為項(xiàng)目的非缺省的連接庫包含到項(xiàng)目文件中去;
(3) WINSOCK.DLL:WINSOCK的動(dòng)態(tài)連接庫,位于WINDOWS的安裝目錄下。
4 結(jié)束語
該系統(tǒng)將無線通信技術(shù)與嵌入式技術(shù)有機(jī)的融合在一起,可使用戶終端以低廉、快速、可靠的方式連入GPRS網(wǎng)絡(luò)和互聯(lián)網(wǎng),并可使用戶終端的數(shù)據(jù)信息簡潔、實(shí)時(shí)的進(jìn)行傳送,從而為用戶終端安全穩(wěn)定的運(yùn)行提供了可靠的保證。實(shí)驗(yàn)結(jié)果證明,該系統(tǒng)在上位機(jī)上能很好地接收數(shù)據(jù),尤其在中低業(yè)務(wù)和低速率的數(shù)據(jù)傳輸中,能體現(xiàn)良好的性價(jià)比,同時(shí)可滿足實(shí)時(shí)性的要求。