新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于ARM7的GPRS無線VPN路由器設(shè)計

基于ARM7的GPRS無線VPN路由器設(shè)計

作者: 時間:2008-03-18 來源:網(wǎng)絡(luò) 收藏
摘 要: 近年來蜂窩式移動通信系統(tǒng)在中國的發(fā)展非常迅速,不僅給用戶帶來了方便快捷的語音通信服務(wù),而且還能提供靈活的數(shù)據(jù)通信服務(wù)。本文提出了一種新型的ARM7的嵌入式設(shè)備―――方法,使得原先使用有線通信系統(tǒng)的各種業(yè)務(wù)終端設(shè)備能夠非常方便地接入到網(wǎng)絡(luò)中,利用移動網(wǎng)絡(luò)提供的數(shù)據(jù)服務(wù)來進行數(shù)據(jù)通信。
關(guān)鍵詞: ; ; ;

1 概 述
1.1 ARM簡介
ARM (Advanced RISC Machines) ,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術(shù)的名字。1991年ARM公司成立于英國劍橋, ARM公司是專門從事RISC技術(shù)芯片開發(fā)的公司,作為知識產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當?shù)耐鈬娐?從而形成自己的ARM微處理器芯片進入市場。ARM微處理器目前包括下面幾個系列, 系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel 的Xscale以及StrongARM。它們共同構(gòu)成了當今嵌入式領(lǐng)域的主流微處理器。

1.2 GPRS簡介
GPRS(General Packet Radio Service)是通用分組無線業(yè)務(wù)的簡稱,是在GSM基礎(chǔ)上發(fā)展起來的一種分組交換的數(shù)據(jù)承載和傳輸方式。與原有的GSM比較, GPRS在數(shù)據(jù)業(yè)務(wù)的承載和支持上具有非常明顯的優(yōu)勢:通過多個GSM時隙的復(fù)用,支持的數(shù)據(jù)傳輸速率更高,理論峰值達115kbps;不同的網(wǎng)絡(luò)用戶共享同一組GPRS信道,但只有當某一個用戶需要發(fā)送或接收數(shù)據(jù)時才會占用信道資源。這樣,通過多用戶的業(yè)務(wù)復(fù)用,更有效地利用無線網(wǎng)絡(luò)信道資源,特別適合突發(fā)性、頻繁的小流量數(shù)據(jù)傳輸,很好地適應(yīng)數(shù)據(jù)業(yè)務(wù)的突發(fā)性特點; GPRS計費方式更加靈活,可以支持按數(shù)據(jù)流量來進行計費;與無線應(yīng)用協(xié)議(WAP)技術(shù)不同, GPRS能夠隨時為用戶提供透明的IP通道,可直接訪問Internet中的所有站點和資源;采用信道復(fù)用技術(shù),每一個GPRS用戶都能夠?qū)崿F(xiàn)永遠在線。

2 硬件部分
2.1 設(shè)計思路
無線電路板通過無線通信模塊連接GPRS移動網(wǎng)絡(luò),通過以太口連接內(nèi)部終端設(shè)備或者內(nèi)部局域網(wǎng)。無線路由器具備網(wǎng)絡(luò)路由功能,能夠在兩個網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)數(shù)據(jù)。各種終端設(shè)備發(fā)出的數(shù)據(jù)通過以太口被處理器接收,處理器對數(shù)據(jù)進行相應(yīng)處理后(例如加/解密)再通過串行口發(fā)送給無線通信模塊,由它轉(zhuǎn)發(fā)到GPRS網(wǎng)絡(luò)中。同理,反向的數(shù)據(jù)經(jīng)過相反的路徑最終送回終端設(shè)備。

2.2 硬件設(shè)計
嵌入式處理器采用三星公司的S3C4510B,它是以太網(wǎng)應(yīng)用系統(tǒng)的高性價比的16/32位RISC微控制器,內(nèi)含一個由ARM公司設(shè)計的16/32位TDMI RISC處理器核。通過GPRS網(wǎng)進行數(shù)據(jù)傳輸需要使用GPRS模塊。目前, GPRS模塊一般是指帶有GPRS功能的GSM模塊,模塊通過外接天線與蜂窩小區(qū)基站通信, 收發(fā)無線數(shù)據(jù)。本設(shè)計中GPRS 模塊采用Wavecom公司的W ISMO Quik Q2400系列.其他各部分基本功能描述如下:

串行接口電路用于S3C4510B與GPRS模塊以及其他應(yīng)用系統(tǒng)進行短距離雙向串行通訊; 復(fù)位電路可完成系統(tǒng)上電復(fù)位和在系統(tǒng)工作時用戶按鍵復(fù)位;電源電路為整個系統(tǒng)提供工作所需的電壓,包括5V, 3.6V以及3.3V;10MHz有源晶振為系統(tǒng)提供工作時鐘; FLASH存儲器可存放已調(diào)試好的應(yīng)用程序、嵌入式操作系統(tǒng)或其他在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等;

SDRAM存儲器作為系統(tǒng)運行時的主要區(qū)域,系統(tǒng)及用戶數(shù)據(jù)、堆棧均位于SDRAM存儲器中;10M/100M以太網(wǎng)接口為系統(tǒng)提供以太網(wǎng)接入的物理通道;I2C存儲器可存儲少量需要長期保存的用戶數(shù)據(jù).

2.3 硬件連接
完整的硬件連接圖如圖1所示。

圖1 硬件連接圖

3 軟件部分
在此無線路由器中使用的操作系統(tǒng)是uClinux,它是專門應(yīng)用于沒有MMU的微控制器上的操作系統(tǒng)。uClinux操作系統(tǒng)中已經(jīng)內(nèi)嵌了TCP/IP網(wǎng)絡(luò)協(xié)議的實現(xiàn)代碼,在內(nèi)核中設(shè)置“IP轉(zhuǎn)發(fā)”就能實現(xiàn)靜態(tài)路由功能。為了實現(xiàn)撥號登錄移動網(wǎng)絡(luò)以及VPN的功能,則需要用到2個網(wǎng)絡(luò)應(yīng)用程序: PPP應(yīng)用程序和IPSec應(yīng)用程序。圖2是整個系統(tǒng)的軟件結(jié)構(gòu)層次圖。

圖2 軟件結(jié)構(gòu)層次圖

3. 1 uClinux 的移植
uClinux 的源代碼和開發(fā)工具可以免費從http: //www.uclinux.org上下載得到。www.uclinux.org上定期為新推出的Linux內(nèi)核推出相應(yīng)的源碼包。最新的版本為uClinux-dist-20040408.tar.gz,也可以從該網(wǎng)站上免費下載得到。這個源碼包里包含了uCL inux -2.6.2、uCL inux-2.4.24、2.0.39、uClibc和已經(jīng)移植到uClinux下的用戶應(yīng)用程序。tar xzvf uClinux-dist-20040408.tar.bz將其解壓縮到/home/uClinux-dist下。另外還需要從www.uclinux.org/pub/uClinux/arm-elf -tools/上下載ARM 交叉編譯器: arm-elf-tools-20030314.sh,執(zhí)行以建立uClinux-ARM的交叉編譯環(huán)境。為了使uClinux能順利地在無線路由器上跑起來,需要針對此硬件平臺對uClinux再進行修改。在/home/uClinux-dist/linux-2.4.x/include/asm-armnommu/下的hardware.h文件包含了S3C4510B片內(nèi)特殊功能寄存器以及其他相關(guān)硬件信息的定義??梢栽诖藢ζ溥M行修改。另外還可以在make xconfig的時候?qū)endor選為Samsung,并選中Customize Kernel Settings一項,之后可以在出現(xiàn)的System Type中對相關(guān)參數(shù)進行修改,主要包括系統(tǒng)的主時鐘頻率、FLASH和SDRAM的起始地址及大小等。最終通過編譯即可得到無線路由器運行所需要的image.rom和image.ram。

3. 2 PPP應(yīng)用程序
PPP應(yīng)用程序用來通過無線通信模塊撥號登錄移動網(wǎng)絡(luò),登錄過程遵循PPP (Point-to-Point Protocol)通信協(xié)議。目前uClinux操作系統(tǒng)中已包含的多種應(yīng)用程序中有一種實現(xiàn)PPP協(xié)議的程序pppd,只需要根據(jù)無線移動網(wǎng)絡(luò)通信的特征,修改pppd源代碼中的部分配置參數(shù),就能夠得到需要的PPP應(yīng)用程序。以下是進行撥號登陸移動網(wǎng)絡(luò)的腳本程序:
#! /bin/sh
/usr/sbin/pppd
 nodetach
 connect"/etc/ppp/peers/gprs-connect-chat"
 disconnect"/etc/ppp /peers/gprs-disconnect-chat"
 /dev/ttyS0
 115200
 nocrtscts
 local
 defaultroute
 novj
 nobsdcomp
 novjccomp
 nopcomp
 noaccomp
 noauth

其中用來實現(xiàn)撥號和掛斷的腳本gprs-connect-chat和gprs-disconnect-chat分別如下:
gprs-connect-chat
#! /bin/sh
exec/usr/sbin/chat
 TIMEOUT 5
 ECHO ON
 ABORT ’BUSY r’
 ABORT ’ERROR ’
 ABORT ’NO ANSWER ’
 ABORT ’NO DIALTONE r’
 ABORT ’R INGING rRINGING r’
 SAY "Press CTRL-C to close the connection at any stage!"
 SAY"defining PDP context. . . "
 " " ’+ + + ’
 " " ’ATH’
 OK ’AT +CGDCONT = 1,"IP" , "cmnet" ’
 OK ’ATDT3 993 3 3 1#’
 TIMEOUT 10
 SAY" waiting for connect. . . "
 CONNECT" "
 SAY"Connected. "
 SAY"If the following ppp negotiations fail, "
 SAY"try restarting the phone."

gprs-disconnect
#!/bin/sh
/usr/sbin/chat
 TIMEOUT 5
 ECHO ON
 ABORT ’NO CARR IER’
 ABORT ’ERROR’
 ABORT ’NO DIALTONE’
 SAY "Sending break to the modem "
 " " ’dd + + + d d’
 " " ’ATH’
 " " OK
 SAY"PDP context detached "

3. 3 IPSec應(yīng)用程序
IPSec應(yīng)用程序用來在路由器上建立基于IPSec( IP Security)協(xié)議的虛擬專用網(wǎng)VPN (Virtual PrivateNetwork) , IPSec 是IETF( Internet Engineer TaskForce)制定的安全標準,它把幾種安全技術(shù)結(jié)合在一起形成了一個較為完整的體系。它通過對數(shù)據(jù)進行加密、認證、完整性檢查來保證數(shù)據(jù)傳輸?shù)目煽啃?、私有性和保密性。IPSec提供IP層的安全性,由于所有支持TCP/IP協(xié)議的主機進行通信時都要經(jīng)過IP層的處理,所以提供了IP層的安全性就相當于為整個網(wǎng)絡(luò)提供了安全通信的保障。IPSec由認證頭AH (Authentication Header) 、安全封裝載荷ESP( Encap sulated Security Payload)和密鑰管理協(xié)議組成。IPSec應(yīng)用程序的設(shè)計就是將IPSec協(xié)議用計算機語言代碼來實現(xiàn)。uClinux 操作系統(tǒng)中的FreeSWAN應(yīng)用程序就是用來實現(xiàn)IPSec協(xié)議的一種公開源代碼軟件,通過對相關(guān)部分的修改和配置,就可以在無線路由器上運行。最新版本的uClinux中已經(jīng)包含了FreeSWAN1.97。

對FreeSWAN 的配置主要是對/ etc / ipsec.conf和/ etc/ipsec.secrets 這兩個文件進行相應(yīng)的編輯。/etc /ipsec.conf中包含了對應(yīng)不同連接的相關(guān)配置信息,而/etc/ipsec.secrets中則包含了RSA密鑰對以及預(yù)共享秘密等用來進行認證的密鑰信息。在無線路由器上執(zhí)行# ipsec showhostkey―――left,以獲得該主機的RSA 公鑰,然后編輯/etc/ ipsec.conf,增加了一個名為“net - net”的新連接。

conn net-net left = x. x. x. x ,填入無線路由器撥號所獲得的對外IP地址leftsubnet = 192.168.1.0/24 ,無線路由器網(wǎng)關(guān)保護子網(wǎng)的IP地址范圍leftrsasigkey = 0s1LgR7 /oUM. . . ,將剛才得到的left RSA公鑰填入right = x. x. x. x ,填入VPN服務(wù)器的對外IP地址rightsubnet=192.168.5.0/24 ,另一方保護的子網(wǎng)IP地址范圍rightrsasigkey = 0sAQOqH55O. . . ,將VPN服務(wù)器的right RSA公鑰填入auto=add ,啟動時并不自動建立連接雙方重新啟動ipsec后,該連接就被Pluto加載, 并做好建立連接的準備了。在無線路由器上執(zhí)行# ipsec auto―――up net-net即可看到一系列的連接建立過程。

4 連接方法及應(yīng)用
無線路由器對終端設(shè)備提供兩個接口,分別是以太網(wǎng)接口和RS-232 串行接口。無線路由器中的路由軟件將來自設(shè)備的數(shù)據(jù)自動轉(zhuǎn)發(fā)到GPRS網(wǎng)絡(luò),或者接收來自GPRS網(wǎng)絡(luò)的數(shù)據(jù)并轉(zhuǎn)發(fā)給設(shè)備。終端設(shè)備只要通過以太網(wǎng)口或RS-232串行口連接到無線路由器,并將默認網(wǎng)關(guān)設(shè)置成無線路由器的IP地址,就可以接入到GPRS網(wǎng)絡(luò)。

圖3 網(wǎng)絡(luò)規(guī)劃和設(shè)計圖

使用通信專線將移動網(wǎng)絡(luò)與行業(yè)的數(shù)據(jù)中心相連;在數(shù)據(jù)中心放置VPN服務(wù)器,與各網(wǎng)點的無線路由器進行VPN連接;修改現(xiàn)有網(wǎng)絡(luò)中各設(shè)備的網(wǎng)絡(luò)配置,利用移動網(wǎng)絡(luò)進行數(shù)據(jù)通信。其適用場合包括: 銀行:營業(yè)網(wǎng)點、ATM機、pos機; 醫(yī)院:醫(yī)保中心聯(lián)網(wǎng)、流動救護車; 保險:保險公司網(wǎng)點聯(lián)網(wǎng); 超市、連鎖店:M IS系統(tǒng)互連; 移動場所:電力搶修、治安警車等; 環(huán)保:現(xiàn)場監(jiān)控、聯(lián)網(wǎng)。

5 總結(jié)
本文較為詳細地介紹了一種新型無線VPN路由器的設(shè)計方法。首先從硬件構(gòu)造上進行剖析,提供了詳細的硬件開發(fā)方案。然后重點闡述了軟件設(shè)計方法,包括操作系統(tǒng)的移植,實現(xiàn)無線網(wǎng)絡(luò)連接的PPP撥號程序以及實現(xiàn)VPN 的IPSEC應(yīng)用程序。通過使用本文中所提出的方法,可以很好的滿足很多行業(yè)的應(yīng)用需求。


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉