新聞中心

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

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

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

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

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

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

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

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

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

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

圖1 硬件連接圖

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

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

3. 1 uClinux 的移植
uClinux 的源代碼和開發(fā)工具可以免費(fèi)從http: //www.uclinux.org上下載得到。www.uclinux.org上定期為新推出的Linux內(nèi)核推出相應(yīng)的源碼包。最新的版本為uClinux-dist-20040408.tar.gz,也可以從該網(wǎng)站上免費(fèi)下載得到。這個(gè)源碼包里包含了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能順利地在無(wú)線路由器上跑起來(lái),需要針對(duì)此硬件平臺(tái)對(duì)uClinux再進(jìn)行修改。在/home/uClinux-dist/linux-2.4.x/include/asm-armnommu/下的hardware.h文件包含了S3C4510B片內(nèi)特殊功能寄存器以及其他相關(guān)硬件信息的定義??梢栽诖藢?duì)其進(jìn)行修改。另外還可以在make xconfig的時(shí)候?qū)endor選為Samsung,并選中Customize Kernel Settings一項(xiàng),之后可以在出現(xiàn)的System Type中對(duì)相關(guān)參數(shù)進(jìn)行修改,主要包括系統(tǒng)的主時(shí)鐘頻率、FLASH和SDRAM的起始地址及大小等。最終通過編譯即可得到無(wú)線路由器運(yùn)行所需要的image.rom和image.ram。

3. 2 PPP應(yīng)用程序
PPP應(yīng)用程序用來(lái)通過無(wú)線通信模塊撥號(hào)登錄移動(dòng)網(wǎng)絡(luò),登錄過程遵循PPP (Point-to-Point Protocol)通信協(xié)議。目前uClinux操作系統(tǒng)中已包含的多種應(yīng)用程序中有一種實(shí)現(xiàn)PPP協(xié)議的程序pppd,只需要根據(jù)無(wú)線移動(dòng)網(wǎng)絡(luò)通信的特征,修改pppd源代碼中的部分配置參數(shù),就能夠得到需要的PPP應(yīng)用程序。以下是進(jìn)行撥號(hào)登陸移動(dò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

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

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

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

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

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

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

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


評(píng)論


相關(guān)推薦

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

關(guān)閉