關(guān)鍵字:GPRS網(wǎng)絡(luò) 嵌入式系統(tǒng)
1系統(tǒng)硬件平臺設(shè)計與實現(xiàn)
1.1 終端硬件平臺總體介紹
本文的終端平臺的無線接入模塊采用西門子最新推出的 MC39i模塊,并以 32位基于ARM920T的微處理 S3C2410X為核心。按照功能分類,本文所實現(xiàn)的硬件平臺主要由微處理器單元、存儲器單元、串口通訊單元、USB接口單元、電源單元、GPRS通訊模塊單元以及JTAG接口單元組成,硬件總框圖如圖 1所示。
1.2 嵌入式微處理器單元
本文硬件平臺的 CPU采用的 Samsung的基于ARM920T內(nèi)核的 S3C2410X微處理器,該微處理器是 Samsung公司為手持設(shè)備和一般類型應(yīng)用提供一種低價格、低功耗、高性能小型微控制器的解決方案。S3C2410X采用了 0.18um工藝的 CMOS標(biāo)準(zhǔn)宏單元和存貯器單元。它的低功耗、精簡和出色的全靜態(tài)設(shè)計特別適用于對成本和功耗敏感的應(yīng)用。
S3C2410X的顯著特性是它的 CPU核心,是一個由 Advanced RISC Machine(ARM)有限公司設(shè)計的 16/32位的高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨立的 16KB指令 Cache和 16KB數(shù)據(jù) Cache,每個都是由 8字節(jié)長的行構(gòu)成。通過提供一系列完整的系列外圍設(shè)備, S3C2410X大大減少了整個系統(tǒng)的成本,消除了為系統(tǒng)配置額外器件的需要。
1.3 GPRS模塊 MC39i
MC39i是西門子公司最近推出的新一代雙頻 GSM/GPRS通訊模塊的無鉛產(chǎn)品,它簡潔的封裝是很多應(yīng)用系統(tǒng)中無線高速數(shù)據(jù)傳輸?shù)睦硐虢鉀Q方案,可以進(jìn)行數(shù)據(jù)、語音、SMS和FAX各個方面的應(yīng)用,且功耗低。它為用戶提供了永遠(yuǎn)在線、高速度、更簡單的移動數(shù)據(jù)通信接入手段。MC39i具有豐富的 AT指令,功能強(qiáng)大,操作靈活方便,是繼 GPRS手機(jī)外有一種非常重要的 GPRS移動通信系統(tǒng)的終端設(shè)備。它的出現(xiàn)給 GPRS的發(fā)展注入了新的活力。
MC39i具有體積小、重量輕、功耗低等特點。MC39i的工作電壓為 3.3伏一 4.8伏,典型電壓為 4.2伏。最大工作電流為 2安。模塊可以工作在 EGSM900和 GSM1800兩個頻段。工作于 EGSM900時功耗為 2瓦,工作于 GSM1800時功耗為 1瓦。利用 AT指令進(jìn)行控制,支持文本和 PDU模式的短消息、第三組的二類傳真。模塊常用的工作模式有省電模式、IDLE、TALK、數(shù)據(jù)等模式。通過獨特的 40腳的連接器(ZIF)實現(xiàn)電源連接、指令、數(shù)據(jù)、語音信號及控制信號的雙向傳輸。
MC39i模塊主要由 GSM基帶控制器、射頻模塊、供電模塊、閃存、ZIF連接器、射頻功率放大器、天線接口六部分組成。
1.4 存儲器單元設(shè)計
本系統(tǒng)的外部存儲器主要由非易失性存儲器 Flash和易失性存儲器 SDRAM構(gòu)成,其中Flash用來存放需要固化的程序,如操作系統(tǒng)和 BootLoader等,掉電后不易丟失,而 SDRAM相當(dāng)于 PC機(jī)的內(nèi)存,用來運行系統(tǒng)和程序,掉電后易消失。
本終端的存儲系統(tǒng)包含 8MB Flash存儲器和 32M SDRAM。其中 8M的 Flash用來存放內(nèi)部啟動代碼、Linux內(nèi)核以及初始化的 ramdisk映像。剩余的存儲空間可存放用戶程序。本文采用的 Flash為 Intel公司的28F640J3A,BGA封裝。這塊芯片有 23根地址線,16根數(shù)據(jù)線,容量為8MB,128KB的可擦除塊;擦除塊之間相互獨立,每一塊的擦除操作可在 1s內(nèi)完成,并可單獨被擦寫 100000次;支持8位及16位兩種數(shù)據(jù)寬度工作模式。在采用8位數(shù)據(jù)寬度模式時,有效地址線為AO-A22;采用 16位數(shù)據(jù)寬度模式時,有效地址線為Al-A22。在此我們采用 16位數(shù)據(jù)寬度模式。我們把 16位數(shù)據(jù)寬度的 Flash存儲器映射到 S3C2410X的 ROM Bank()。
2 基于GPRS的終端設(shè)計
目前硬件上的實現(xiàn)方案有兩種,二者各有優(yōu)缺點,分別敘述如下: 方案1:使用 TCP/IP協(xié)議芯片。 此方案利用了硬件協(xié)議棧,由單片機(jī)調(diào)用指令控制芯片,其系統(tǒng)結(jié)構(gòu)如圖 2所示。
本方案對處理器性能的要求相對不高,因為協(xié)議棧的工作交給 TCP/IP協(xié)議芯片去完成。 處理器通過調(diào)用協(xié)議棧接口函數(shù)可以較方便地連接上網(wǎng),繼而再加上 GPRS通訊模塊就可以實現(xiàn)遠(yuǎn)程無線傳輸。本設(shè)計方案的優(yōu)點是開發(fā)時間短,硬件上是成熟的芯片,運行比較穩(wěn)定。但是本方案的缺點是硬件體積會相應(yīng)增大,成本也較大。 方案2:嵌入式操作系統(tǒng)。
此方案利用了包含完整 TCP/IP協(xié)議棧的嵌入式操作系統(tǒng)來控制整個系統(tǒng)的運行。由于引入了操作系統(tǒng),因此本方案比較適合于系統(tǒng)資源豐富的高速 16/32位嵌入式系統(tǒng)使用。其系統(tǒng)結(jié)構(gòu)示意圖如圖 3所示。
本設(shè)計方案不需要外加TCP/IP協(xié)議轉(zhuǎn)換芯片,所以硬件體積小,成本少。但是開發(fā)時間長,需要做大規(guī)模的軟件上的工作(比如操作系統(tǒng)的嵌入、TCP/IP協(xié)議棧、PPP協(xié)議的處理等都需要在一個處理器中完成),對開發(fā)者要求很高。另外還要做大量的測試。 基于以上兩種方案,GPRS終端相當(dāng)于Modem,用于連接設(shè)備和Internet網(wǎng)絡(luò)。利用GPRS網(wǎng)絡(luò)與分組數(shù)據(jù)網(wǎng)絡(luò)互聯(lián)互通的特性,實現(xiàn)了將設(shè)備接入最大的PDN網(wǎng)絡(luò)Internet。設(shè)備與GPRS終端之間采用串行接口通訊,在GPRS終端連接上網(wǎng)絡(luò)后,設(shè)備即可以通過其來實現(xiàn)與Internet上的主機(jī)進(jìn)行數(shù)據(jù)通訊,GPRS終端透明收發(fā)數(shù)據(jù)。這種實現(xiàn)方法類似于使用家用PC做代理接入的方式,只是這里采用了無線方式,網(wǎng)關(guān)改為GPRS終端。
3 系統(tǒng)軟件設(shè)計
基于GSM/GPRS的無線數(shù)據(jù)傳輸模塊設(shè)計的目的是為無線網(wǎng)絡(luò)通信應(yīng)用提供一個簡單實用的平臺,須在模塊內(nèi)嵌TCP/IP協(xié)議棧,實現(xiàn)了數(shù)據(jù)在用戶終端和服務(wù)器之間的透明傳輸,使用戶可以方便地應(yīng)用,實現(xiàn)遠(yuǎn)程的無線數(shù)據(jù)傳輸。無線數(shù)據(jù)傳輸模塊的軟件結(jié)構(gòu)框圖如圖4所示。
本系統(tǒng)中ETR186底層的硬件驅(qū)動已由英創(chuàng)公司做好并提供了豐富的接口,其中COM2口提供給MC35i通信使用,并提供相關(guān)例程演示通過COM2如何和無線模塊進(jìn)行通信。因此該系統(tǒng)軟件部分主要是需要實現(xiàn)PPP協(xié)議、IP協(xié)議及TCP/UDP協(xié)議,并為應(yīng)用程序提供一個簡單易用的接口。在此重點介紹TCP/UDP協(xié)議。
3.1 TCP/IP協(xié)議介紹TCP/IP協(xié)議集是當(dāng)今使用最廣泛的Internet體系結(jié)構(gòu),根據(jù)相關(guān)協(xié)議標(biāo)準(zhǔn),可把TCP/IP
協(xié)議集劃分為四個相對獨立的層次:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。
網(wǎng)絡(luò)接口層負(fù)責(zé)與物理網(wǎng)絡(luò)的連接,支持現(xiàn)有網(wǎng)絡(luò)的各種接入標(biāo)準(zhǔn),如.X25分組交換網(wǎng)、DDN、ATM網(wǎng)、以太網(wǎng)(Ethernet)、PPP(Point-to-Point Protocol,點到點協(xié)議)、SLIP等。在本系統(tǒng)中將使用 PPP協(xié)議。
網(wǎng)絡(luò)層即 IP層,它主要完成的功能是:從底層來的數(shù)據(jù)包要由它來選擇繼續(xù)傳給其他網(wǎng)絡(luò)結(jié)點或是直接交給傳輸層;對從傳輸層來的數(shù)據(jù)包,要負(fù)責(zé)按照數(shù)據(jù)分組的格式填充報頭,選擇發(fā)送路徑,并交由相應(yīng)的線路發(fā)送出去。
傳輸層提供端到端應(yīng)用進(jìn)程之間的通信,其對高層屏蔽了底層網(wǎng)絡(luò)的實現(xiàn)細(xì)節(jié),同時它真正實現(xiàn)了源主機(jī)到目的主機(jī)的端到端的通信。傳輸層傳送的數(shù)據(jù)單位是報文。
在應(yīng)用層用戶通過API(應(yīng)用進(jìn)程接口)調(diào)用應(yīng)用程序來運用因特網(wǎng)提供的多種服務(wù)。應(yīng)用程序負(fù)責(zé)收發(fā)數(shù)據(jù),并選擇傳輸層提供的服務(wù)類型,按傳輸要求的格式遞交。
3.2 系統(tǒng)初始化
為了能利用 TCP/PI協(xié)議進(jìn)行數(shù)據(jù)傳輸,必須對系統(tǒng)的硬件和軟件進(jìn)行初始化。圖 5為系統(tǒng)初始化部分的流程圖。
(1)系統(tǒng)軟件在開始時首先需要通過檢查 0x90端口的輸入電平是否為高來判斷 MC35i模塊是否正常上電。若未能正常上電,軟件將通過 0x90端口的輸出使 MC35i模塊上電。
(2)MC35i模塊上電后,軟件將在內(nèi)存中開辟一個緩存區(qū)做為包括PPP、IP、TCP、UDP等協(xié)議的數(shù)據(jù)緩存區(qū),做為該緩存區(qū)內(nèi)數(shù)據(jù)存放方式采用雙向鏈表的方式。
(3)為了 TCP協(xié)議實現(xiàn)中能夠進(jìn)行超時檢測,軟件利用 R8822CPU模塊的內(nèi)部定時器安裝一個 20ms的時鐘中斷。
(4)ETR186通過其串口 COM2和 MC35i模塊連接,軟件通過安裝串口中斷進(jìn)行和 MC35i模塊的數(shù)據(jù)傳輸。
(5)完成上述操作后,系統(tǒng)就可以利用 AT命令登錄 GPRS網(wǎng)絡(luò)。不成功就進(jìn)行重試,超過重試次數(shù)后出錯報告。
(6)最后進(jìn)行 PPP鏈路的連接。
4 小結(jié):
本文作者創(chuàng)新點是將嵌入式Linux系統(tǒng)技術(shù)與 GPRS無線通信網(wǎng)絡(luò)有機(jī)的結(jié)合在一起。平臺采用無線模塊MC39i,結(jié)合終端的嵌入式硬件結(jié)構(gòu)和軟件環(huán)境,為終端上實現(xiàn)無線應(yīng)用提供了一個可行的實現(xiàn)途徑。經(jīng)實驗驗證,該終端平臺能有效的將采集到的數(shù)據(jù)通過GPRS網(wǎng)絡(luò),傳輸至遠(yuǎn)程服務(wù)器中心主機(jī),也能接受服務(wù)器中心主機(jī)發(fā)送的命令,再根據(jù)命令的內(nèi)容進(jìn)行相應(yīng)的操作,達(dá)到實現(xiàn)無線數(shù)據(jù)傳輸。