《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM和GPRS的無線傳輸與接收
基于ARM和GPRS的無線傳輸與接收
國外電子元器件
朱建光 余紅英
摘要: 基于ARM和GPRS的無線傳輸與接收,介紹了一種基于GPRS的遠(yuǎn)程無線數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu),構(gòu)建了以嵌入式ARM處理器S3C2410為核心,結(jié)合GPRS無線傳輸模塊MC35i開發(fā)的無線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計方案,。
關(guān)鍵詞: ARM GPRS S3C2410
Abstract:
Key words :

引言
    近年來,無線通信技術(shù)得到廣泛的應(yīng)用,GPRS (General Packet Radio System)通用無線分組網(wǎng)絡(luò)就是一種比較流行的無線通信網(wǎng)絡(luò),。
GPRS網(wǎng)絡(luò)具有覆蓋范圍廣,、數(shù)據(jù)傳輸速度快、通信質(zhì)量高,、永遠(yuǎn)在線和可按流量計費(fèi)等優(yōu)點,。
    本傳輸方案采用的是西門子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è)計相應(yīng)的上層軟件處理系統(tǒng)即可,。

1 系統(tǒng)總體設(shè)計
    該系統(tǒng)主要由GPRS通訊模塊和控制模塊兩部分組成,并采用嵌入式系統(tǒng)來設(shè)計GPRS終端,。該嵌入式系統(tǒng)由硬件和應(yīng)用軟件組成,,其架構(gòu)可分為微處理器、內(nèi)存,、輸入輸出,、操作系統(tǒng)和應(yīng)用軟件等五部分。系統(tǒng)的硬件由微處理器,、GPRS模塊,、SIM卡座、外部接口和擴(kuò)展數(shù)據(jù)存儲器等部分組成,。微處理器可控制GPRS模塊的信息接收和發(fā)送,,以通過標(biāo)準(zhǔn)RS232串口和外部控制器進(jìn)行數(shù)據(jù)通訊,其系統(tǒng)原理結(jié)構(gòu)如圖1所示,。



2 系統(tǒng)硬件設(shè)計
   
本系統(tǒng)硬件主要是以ARM為開發(fā)平臺,,以西門子公司的MC39i模塊作為GPRS發(fā)送模塊,從而使系統(tǒng)快速完成發(fā)送工作,。
2.1 嵌入式微處理器單元
    本硬件平臺的CPU采用Samsung的基于ARM920T內(nèi)核的S3C2410微處理器,,S3C2410是采用0.18μm工藝制造的32位微控制器,,該處理器擁有獨立的16 KB指令Cache及16 KB數(shù)據(jù)Cache和MMU,并可支持TFT的LCD控制器,、NAND閃存控制器,、3路UART、4路DMA,、4路帶PWM的定時器,、I/O 口、RTC,、8路10位ADC,、Touch Screen接口、IIC-BUS接口,、IIS-BUS接口,、2個USB主機(jī)、1個USB設(shè)備,、SD主機(jī)和MMC接口和2路SPI,。S3C2410處理器最高可運(yùn)行在203MHz頻率下。另外,,通過提供一系列完整的系列外圍設(shè)備,,S3C2410X可大大減少整個系統(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各個方面的應(yīng)用,,且功耗低,。它為用戶提供了永遠(yuǎn)在線、高速度,、更簡單的移動數(shù)據(jù)通信接入手段,。  MC35i具有豐富的AT指令,而且功能強(qiáng)大,,操作靈活方便,,是繼GPRS手機(jī)的又一種非常重要的GPRS移動通信系統(tǒng)的終端設(shè)備。它的出現(xiàn)給GPRS的發(fā)展注入了新的活力,。
    MC35i具有體積小,、重量輕、功耗低等特點,。MC35i的工作電壓為3.3~4.8 V,,典型電壓為4.2V,,最大工作電流為2 A。模塊可工作在EGSM900和GSMl800兩個頻段,。工作于EGSM900時的功耗為2 W,,工作于GSMl800時的功耗為1 W,可利用AT指令進(jìn)行控制,,并支持文本和PDU模式的短消息,、第i組的二類傳真。MC35i模塊常用的工作模式有省電模式,、IDLE,、TALK、數(shù)據(jù)等模式,。通過獨特的40腳連接器(ZIF)可實現(xiàn)電源連接,、指令、數(shù)據(jù),、語音信號及控制信號的雙向傳輸,。MC35i模塊主要由GSM基帶控制器、射頻模塊,、供電模塊,、閃存、ZIF連接器,、射頻功率放大器,、天線接口等部分組成。

3 系統(tǒng)軟件設(shè)計
   
根據(jù)系統(tǒng)需求,,在操作系統(tǒng)Linux啟動前,,首先應(yīng)該對微處理器和GPRS模塊在內(nèi)的系統(tǒng)內(nèi)外部硬件進(jìn)行初始化,在硬件初始化就緒后,,可按系統(tǒng)要求劃分并創(chuàng)建系統(tǒng)任務(wù),,最后啟動Linux進(jìn)行各任務(wù)的調(diào)度。應(yīng)用程序共分為初始化任務(wù),、配置任務(wù),、數(shù)據(jù)發(fā)送任務(wù)、數(shù)據(jù)處理任務(wù)和用戶串口中斷服務(wù)等五個任務(wù),。本文主要完成系統(tǒng)的初始化以及撥號連入Internet等工作,。
3.1 系統(tǒng)初始化
    為了能利用TCP/PI協(xié)議進(jìn)行數(shù)據(jù)傳輸。設(shè)計時必須對系統(tǒng)的硬件和軟件進(jìn)行初始化,。圖2所示為系統(tǒng)初始化部分的軟件流程圖,。


    本系統(tǒng)軟件在開始時,首先需要通過檢查0x90端口的輸入電平是否為高來判斷MC35i模塊是否正常上電,。若未能正常上電,,那么,,軟件將通過0x90端口的輸出使MC35i模塊上電。
    當(dāng)MC35i模塊上電后,,軟件將在內(nèi)存中開辟一個緩存區(qū)做為包括PPP,、IP、TCP,、UDP等協(xié)議的數(shù)據(jù)緩存區(qū),。該緩存區(qū)內(nèi)數(shù)據(jù)的存放方式采用雙向鏈表的方式。
    為了TCP協(xié)議實現(xiàn)中能夠進(jìn)行超時檢測,,在軟件中應(yīng)利用R8822CPU模塊的內(nèi)部定時器安裝一個20ms的時鐘中斷,。
    ETR186可通過其串口COM2和MC35i模塊相連接,用軟件可通過安裝串口中斷來和MC35i模塊進(jìn)行數(shù)據(jù)傳輸,。
    在完成上述操作后,,系統(tǒng)即可以利用AT命令登錄GPRS網(wǎng)絡(luò)。若不成功,,即進(jìn)行重試,,超過重試次數(shù)后,即發(fā)送出錯報告,。最后就是進(jìn)行PPP鏈路的連接,,同時發(fā)送數(shù)據(jù)。
3.2 撥號原理
    所謂初始化模塊,,主要就是設(shè)定APN:CMNET,,
    at+cgdcont=1,ip,cmnet,,
    然后利用chat程序撥號*99***1,,#
    待撥號連接成功后,再由pppd建立通信鏈路即可,。其腳本改動如下:在ppp-on里改了電話號碼為*99***1#,,將賬號與密碼清除,再修改DIALER_SCRIPT的路徑,,同時把下面的設(shè)備改成/dev/ttyS0,,速率改為115200,,再將crtscts參數(shù)去掉,。同時在ppp-on-dialer里把帳號密碼去掉。其改動后的腳本如下:


    改動完成后,,執(zhí)行腳本PPP-on/ppp-on,,即可撥號上網(wǎng)。
3.3 無線數(shù)據(jù)傳輸
    當(dāng)GPRS撥號成功接入Internet后,,就可以進(jìn)行無線數(shù)據(jù)傳輸了,,這可通過Linux下的網(wǎng)絡(luò)編程實現(xiàn),。基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程主要有兩種方式可以選擇:TCP方式和UDP方式,。采用UDP方式進(jìn)行通信時,,要求通信雙方都知道對方的IP地址和端口號。但是目前GPRS網(wǎng)絡(luò)并不提供固定的IP服務(wù),,通信鏈路中的GPRS終端的IP地址是由網(wǎng)關(guān)支持節(jié)點(GSN)動態(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è)計
    中心服務(wù)器端軟件應(yīng)提供一個可視化的監(jiān)控界面,,以便直觀、方便,、快捷地了解遠(yuǎn)程數(shù)據(jù)采集終端的狀態(tài),,及時發(fā)現(xiàn)并處理異常和故障情況,實現(xiàn)與GPRS終端的通信,。上位機(jī)部分采用的是Windows的平臺,,編譯器采用VC6.0。為了方便網(wǎng)絡(luò)編程,,90年代初,,由Microsoft聯(lián)合了其他幾家公司共同制定了一套WINDOWS下的網(wǎng)絡(luò)編程接口,即Windows Sockets規(guī)范,,這實際上不是一種網(wǎng)絡(luò)協(xié)議,,而是一套開放的、可支持多種協(xié)議的,、Windows下的網(wǎng)絡(luò)編程接口,,現(xiàn)在的Winsock已經(jīng)基本上實現(xiàn)了與協(xié)議無關(guān),可以使用Winsock來調(diào)用多種協(xié)議的功能,,但較常使用的是TCP/IP協(xié)議,。Socket在計算機(jī)中實際提供了一個通信端口,可以通過這個端口與任何一個具有Socket接口的計算機(jī)進(jìn)行通信,。應(yīng)用程序在網(wǎng)絡(luò)上傳輸時,,接收的信息都可通過這個Socket接口來實現(xiàn)。
    在VC中進(jìn)行WINSOCK的API編程開發(fā)時,,需要在項目中使用下面三個文件,,否則就會出現(xiàn)編譯錯誤:
    (1)WINSOCK.H:這是WINSOCKAPI的頭文件,需要包含在項目之中,;
    (2) WSOCK32.LIB:WINSOCKAPI連接庫文件,。在使用中,,一定要把它作為項目的非缺省的連接庫包含到項目文件中去;
    (3) WINSOCK.DLL:WINSOCK的動態(tài)連接庫,,位于WINDOWS的安裝目錄下,。

4 結(jié)束語
   
該系統(tǒng)將無線通信技術(shù)與嵌入式技術(shù)有機(jī)的融合在一起,可使用戶終端以低廉,、快速,、可靠的方式連入GPRS網(wǎng)絡(luò)和互聯(lián)網(wǎng),并可使用戶終端的數(shù)據(jù)信息簡潔,、實時的進(jìn)行傳送,,從而為用戶終端安全穩(wěn)定的運(yùn)行提供了可靠的保證。實驗結(jié)果證明,,該系統(tǒng)在上位機(jī)上能很好地接收數(shù)據(jù),,尤其在中低業(yè)務(wù)和低速率的數(shù)據(jù)傳輸中,能體現(xiàn)良好的性價比,,同時可滿足實時性的要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。