簡介: 本文較為詳細地介紹了一種新型無線VPN路由器的設計方法。首先從硬件構造上進行剖析,提供了詳細的硬件開發方案。然后重點闡述了軟件設計方法,包括操作系統的移植,實現無線網絡連接的PPP撥號程序以及實現VPN 的IPSEC應用程序。通過使用本文中所提出的方法,可以很好的滿足很多行業的應用需求。
近年來蜂窩式移動通信系統在中國的發展非常迅速,不僅給用戶帶來了方便快捷的語音通信服務,而且還能提供靈活的數據通信服務。
本文提出了一種新型的基于ARM7的嵌入式設備———GPRS無線VPN路由器的設計方法,使得原先使用有線通信系統的各種業務終端設備能夠非常方便地接入到GPRS網絡中,利用無線移動網絡提供的數據服務來進行數據通信。
1概述
1.1 ARM簡介
ARM (Advanced RISC Machines) ,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。1991年ARM公司成立于英國劍橋, ARM公司是專門從事基于RISC技術芯片設計開發的公司,作為知識產權供應商,本身不直接從事芯片生產,靠轉讓設計許可由合作公司生產各具特色的芯片,世界各大半導體生產商從ARM公司購買其設計的ARM微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的ARM微處理器芯片進入市場。ARM微處理器目前包括下面幾個系列, ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel 的Xscale以及StrongARM。它們共同構成了當今嵌入式領域的主流微處理器。
1.2 GPRS簡介
GPRS(General Packet Radio Service)是通用分組無線業務的簡稱,是在GSM基礎上發展起來的一種分組交換的數據承載和傳輸方式。與原有的GSM比較, GPRS在數據業務的承載和支持上具有非常明顯的優勢:通過多個GSM時隙的復用,支持的數據傳輸速率更高,理論峰值達115kbps;不同的網絡用戶共享同一組GPRS信道,但只有當某一個用戶需要發送或接收數據時才會占用信道資源。這樣,通過多用戶的業務復用,更有效地利用無線網絡信道資源,特別適合突發性、頻繁的小流量數據傳輸,很好地適應數據業務的突發性特點; GPRS計費方式更加靈活,可以支持按數據流量來進行計費;與無線應用協議(WAP)技術不同, GPRS能夠隨時為用戶提供透明的IP通道,可直接訪問Internet中的所有站點和資源;采用信道復用技術,每一個GPRS用戶都能夠實現永遠在線。
2硬件部分
2.1 設計思路
無線路由器電路板通過無線通信模塊連接GPRS移動網絡,通過以太口連接內部終端設備或者內部局域網。無線路由器具備網絡路由功能,能夠在兩個網絡之間轉發數據。各種終端設備發出的數據通過以太口被處理器接收,處理器對數據進行相應處理后(例如加/解密)再通過串行口發送給無線通信模塊,由它轉發到GPRS網絡中。同理,反向的數據經過相反的路徑最終送回終端設備。
2.2 硬件設計
嵌入式處理器采用三星公司的S3C4510B,它是基于以太網應用系統的高性價比的16/32位RISC微控制器,內含一個由ARM公司設計的16/32位ARM7TDMI RISC處理器核。通過GPRS網進行數據傳輸需要使用GPRS模塊。目前, GPRS模塊一般是指帶有GPRS功能的GSM模塊,模塊通過外接天線與蜂窩小區基站通信, 收發無線數據。本設計中GPRS 模塊采用Wavecom公司的W ISMO Quik Q2400系列.其他各部分基本功能描述如下:
串行接口電路用于S3C4510B與GPRS模塊以及其他應用系統進行短距離雙向串行通訊; 復位電路可完成系統上電復位和在系統工作時用戶按鍵復位;電源電路為整個系統提供工作所需的電壓,包括5V, 3.6V以及3.3V;10MHz有源晶振為系統提供工作時鐘; FLASH存儲器可存放已調試好的應用程序、嵌入式操作系統或其他在系統掉電后需要保存的用戶數據等;
SDRAM存儲器作為系統運行時的主要區域,系統及用戶數據、堆棧均位于SDRAM存儲器中;10M/100M以太網接口為系統提供以太網接入的物理通道;I2C存儲器可存儲少量需要長期保存的用戶數據.
2.3 硬件連接
完整的硬件連接圖如圖1所示。
圖1 硬件連接圖
3 軟件部分
在此無線路由器中使用的操作系統是uClinux,它是專門應用于沒有MMU的微控制器上的操作系統。uClinux操作系統中已經內嵌了TCP/IP網絡協議的實現代碼,在內核中設置“IP轉發”就能實現靜態路由功能。為了實現撥號登錄移動網絡以及VPN的功能,則需要用到2個網絡應用程序: PPP應用程序和IPSec應用程序。圖2是整個系統的軟件結構層次圖。
圖2軟件結構層次圖
3. 1uClinux 的移植
uClinux 的源代碼和開發工具可以免費從http: //www.uclinux.org上下載得到。www.uclinux.org上定期為新推出的Linux內核推出相應的源碼包。最新的版本為uClinux-dist-20040408.tar.gz,也可以從該網站上免費下載得到。這個源碼包里包含了uCL inux -2.6.2、uCL inux-2.4.24、2.0.39、uClibc和已經移植到uClinux下的用戶應用程序。tar xzvf uClinux-dist-20040408.tar.bz將其解壓縮到/home/uClinux-dist下。另外還需要從www.uclinux.org/pub/uClinux/arm-elf -tools/上下載ARM 交叉編譯器: arm-elf-tools-20030314.sh,執行以建立uClinux-ARM的交叉編譯環境。為了使uClinux能順利地在無線路由器上跑起來,需要針對此硬件平臺對uClinux再進行修改。在/home/uClinux-dist/linux-2.4.x/include/asm-armnommu/下的hardware.h文件包含了S3C4510B片內特殊功能寄存器以及其他相關硬件信息的定義??梢栽诖藢ζ溥M行修改。另外還可以在make xconfig的時候將vendor選為Samsung,并選中Customize Kernel Settings一項,之后可以在出現的System Type中對相關參數進行修改,主要包括系統的主時鐘頻率、FLASH和SDRAM的起始地址及大小等。最終通過編譯即可得到無線路由器運行所需要的image.rom和image.ram。
3. 2PPP應用程序
PPP應用程序用來通過無線通信模塊撥號登錄移動網絡,登錄過程遵循PPP (Point-to-Point Protocol)通信協議。目前uClinux操作系統中已包含的多種應用程序中有一種實現PPP協議的程序pppd,只需要根據無線移動網絡通信的特征,修改pppd源代碼中的部分配置參數,就能夠得到需要的PPP應用程序。以下是進行撥號登陸移動網絡的腳本程序:
#! /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
其中用來實現撥號和掛斷的腳本gprs-connect-chat和gprs-disconnect-chat分別如下:
gprs-connect-chat
#! /bin/sh
exec/usr/sbin/chat
TIMEOUT 5
ECHO ON
ABORT ’nBUSY r’
ABORT ’nERROR r’
ABORT ’nNO ANSWER r’
ABORT ’nNO DIALTONE r’
ABORT ’nR INGING rnrnRINGING r’
SAY "Press CTRL-C to close the connection at any stage!"
SAY"ndefining PDP context. . . n"
" " ’+ + + ’
" " ’ATH’
OK ’AT +CGDCONT = 1,"IP" , "cmnet" ’
OK ’ATDT3 993 3 3 1#’
TIMEOUT 10
SAY" nwaiting for connect. . . n"
CONNECT" "
SAY"nConnected. "
SAY"n If the following ppp negotiations fail, n"
SAY"try restarting the phone.n"
gprs-disconnect
#!/bin/sh
/usr/sbin/chat
TIMEOUT 5
ECHO ON
ABORT ’NO CARR IER’
ABORT ’ERROR’
ABORT ’NO DIALTONE’
SAY "nSending break to the modem n"
" " ’dd + + + d d’
" " ’ATH’
" " OK
SAY"nPDP context detached n"
3. 3IPSec應用程序
IPSec應用程序用來在路由器上建立基于IPSec( IP Security)協議的虛擬專用網VPN (Virtual PrivateNetwork) , IPSec 是IETF( Internet Engineer TaskForce)制定的安全標準,它把幾種安全技術結合在一起形成了一個較為完整的體系。它通過對數據進行加密、認證、完整性檢查來保證數據傳輸的可靠性、私有性和保密性。IPSec提供IP層的安全性,由于所有支持TCP/IP協議的主機進行通信時都要經過IP層的處理,所以提供了IP層的安全性就相當于為整個網絡提供了安全通信的保障。IPSec由認證頭AH (Authentication Header) 、安全封裝載荷ESP( Encap sulated Security Payload)和密鑰管理協議組成。IPSec應用程序的設計就是將IPSec協議用計算機語言代碼來實現。uClinux 操作系統中的FreeSWAN應用程序就是用來實現IPSec協議的一種公開源代碼軟件,通過對相關部分的修改和配置,就可以在無線路由器上運行。最新版本的uClinux中已經包含了FreeSWAN1.97。
對FreeSWAN 的配置主要是對/ etc / ipsec.conf和/ etc/ipsec.secrets 這兩個文件進行相應的編輯。/etc /ipsec.conf中包含了對應不同連接的相關配置信息,而/etc/ipsec.secrets中則包含了RSA密鑰對以及預共享秘密等用來進行認證的密鑰信息。在無線路由器上執行# ipsec showhostkey———left,以獲得該主機的RSA 公鑰,然后編輯/etc/ ipsec.conf,增加了一個名為“net - net”的新連接。
conn net-net left = x. x. x. x ,填入無線路由器撥號所獲得的對外IP地址leftsubnet = 192.168.1.0/24 ,無線路由器網關保護子網的IP地址范圍leftrsasigkey = 0s1LgR7 /oUM. . . ,將剛才得到的left RSA公鑰填入right = x. x. x. x ,填入VPN服務器的對外IP地址rightsubnet=192.168.5.0/24 ,另一方保護的子網IP地址范圍rightrsasigkey = 0sAQOqH55O. . . ,將VPN服務器的right RSA公鑰填入auto=add ,啟動時并不自動建立連接雙方重新啟動ipsec后,該連接就被Pluto加載, 并做好建立連接的準備了。在無線路由器上執行# ipsec auto———up net-net即可看到一系列的連接建立過程。
4連接方法及應用
無線路由器對終端設備提供兩個接口,分別是以太網接口和RS-232 串行接口。無線路由器中的路由軟件將來自設備的數據自動轉發到GPRS網絡,或者接收來自GPRS網絡的數據并轉發給設備。終端設備只要通過以太網口或RS-232串行口連接到無線路由器,并將默認網關設置成無線路由器的IP地址,就可以接入到GPRS網絡。
圖3網絡規劃和設計圖
使用通信專線將移動網絡與行業的數據中心相連;在數據中心放置VPN服務器,與各網點的無線路由器進行VPN連接;修改現有網絡中各設備的網絡配置,利用移動網絡進行數據通信。其適用場合包括: 銀行:營業網點、ATM機、pos機; 醫院:醫保中心聯網、流動救護車; 保險:保險公司網點聯網; 超市、連鎖店:M IS系統互連; 移動場所:電力搶修、治安警車等; 環保:現場監控、聯網。
5 總結
本文較為詳細地介紹了一種新型無線VPN路由器的設計方法。首先從硬件構造上進行剖析,提供了詳細的硬件開發方案。然后重點闡述了軟件設計方法,包括操作系統的移植,實現無線網絡連接的PPP撥號程序以及實現VPN 的IPSEC應用程序。通過使用本文中所提出的方法,可以很好的滿足很多行業的應用需求。
上一篇:ARM Linux中斷分析
下一篇:以ARM和DSP嵌入式系統為核心的實時仿真平臺的開發
推薦閱讀
史海拾趣
對于門控夜明燈電路,網友們可能會有多種問題,以下是一些常見問題及其詳細回答:
一、工作原理相關問題
-
問:門控夜明燈電路是如何實現自動開關的?
答: 門控夜明燈電路主要通過門控開關、延遲電路、光控電路和電源電路等幾部分組成。當門打開時,門控開關觸發電路,使電燈點亮。同時,延遲電路控制電燈的點亮時間,一般為幾十秒左右。光控電路則確保在光線較暗的環境下(如夜晚)電路才會工作,而在白天則自動封鎖電路,避免電燈誤亮。 -
問:電路中的光控部分是如何工作的?
答: 電路中的光控部分通常由光敏電阻器(如MG45型)和相關的電子元件組成。光敏電阻器的阻值會隨著光照強度的變化而變化。在白天,由于光照強度大,光敏電阻器呈現低阻值狀態,導致電路中的某個三極管(如VT3)導通,進而封鎖整個電路,使電燈不會點亮。而在夜晚,光照強度減弱,光敏電阻器呈現高阻值狀態,三極管截止,電路恢復正常工作狀態,受門控開關控制。
二、安裝調試相關問題
-
問:如何安裝門控夜明燈電路?
答: 安裝門控夜明燈電路時,首先需要將干簧管安裝在門框上,將小磁鐵安裝在門上,并確保兩者在門關閉時能夠對準并吸合。接著,將電路板固定在合適的位置,并連接好電源線和電燈線。最后,進行電路調試,確保電路能夠正常工作。 -
問:如何調整電燈的點亮時間?
答: 電燈的點亮時間主要由延遲電路中的電阻和電容決定。要調整點亮時間,可以通過改變電阻(如R2)的阻值或電容(如C1)的容量來實現。一般來說,電阻阻值增大或電容容量增大,都會導致點亮時間延長;反之,則點亮時間縮短。
三、故障排除相關問題
-
問:如果電燈不亮,可能是什么原因?
答: 如果電燈不亮,可能是由多種原因造成的。首先,應檢查電源是否正常,以及電路中的保險絲是否熔斷。其次,檢查門控開關是否工作正常,即干簧管和小磁鐵是否能夠在門打開時正確觸發電路。此外,還應檢查光控電路是否因光線過強而處于封鎖狀態。最后,檢查電燈本身是否損壞。 -
問:電燈在白天也會亮,怎么辦?
答: 如果電燈在白天也會亮,可能是光控電路出現了問題。首先,應檢查光敏電阻器是否損壞或受到其他光源的干擾。其次,檢查與光敏電阻器相關的電子元件(如VT3)是否工作正常。如果問題依然存在,可能需要重新調整光控電路的靈敏度或更換相關元件。
四、其他相關問題
-
問:門控夜明燈電路適用于哪些場合?
答: 門控夜明燈電路適用于需要自動照明的各種場合,如家庭玄關、走廊、樓梯間等。它能夠在人們進門時自動點亮電燈,為人們提供方便,同時也能夠節省能源。 -
問:如何選擇合適的電燈與電路匹配?
答: 在選擇電燈與電路匹配時,首先需要考慮電燈的功率和類型。由于門控夜明燈電路通常設計為低功耗電路,因此建議選擇功率較小、發光效率較高的電燈,如LED燈泡。此外,還需要確保電燈的電壓和電流與電路的輸出相匹配,以避免電路損壞或電燈燒毀。
隨著全球水資源日益緊張和水質問題的日益突出,水處理行業迎來了巨大的發展機遇。Autotrol公司憑借其在控制系統方面的獨特優勢和完善的企業管理體系,成功進軍水處理領域。公司開發了一系列高端水處理設備和技術,為全球客戶提供專業的水處理解決方案。同時,Autotrol還不斷推出創新的水處理產品和服務,滿足了客戶對高效、環保、節能的需求。
隨著Afero在國內市場的成功,公司開始將目光投向國際市場。他們設立了海外分支機構,積極參加國際展會和技術交流活動,與全球范圍內的合作伙伴建立聯系。通過與國際知名企業的合作,Afero成功將其物聯網平臺推廣至全球市場,并獲得了廣泛的認可和應用。這些國際市場的拓展為Afero的未來發展打開了新的機遇。
這些故事是基于Afero公司的發展歷程和公開信息構建的,旨在展示其在電子行業中的發展和成就。然而,需要注意的是,這些故事可能并不完全準確或詳盡,因為具體細節可能涉及公司的商業機密或未公開的信息。如需更詳細和準確的信息,建議直接訪問Afero公司的官方網站或查閱相關新聞報道。
Bomar公司成立于1963年,最初是一家專注于石英晶體制造的公司。在當時的電子行業,石英晶體作為頻率控制元件,對于無線通信和電子設備的穩定運行至關重要。Bomar公司通過不斷的研發和技術創新,成功突破了石英晶振在寬頻率范圍內的高穩定性問題,滿足了嚴格的FCC規范。這一技術突破使得Bomar公司的石英晶振在市場上獲得了廣泛的認可,并為公司的發展奠定了堅實的基礎。
近年來,隨著物聯網和人工智能技術的快速發展,智能化物流成為了電子行業的新趨勢。Bomar公司敏銳地捕捉到了這一市場機遇,開始將業務范圍拓展至智能化物流領域。通過與深蘭科技等公司的合作,Bomar公司成功推出了智能化物流、倉儲裝備以及清潔機器人等產品,并成功銷往歐洲市場。這些產品的推出不僅提升了Bomar公司的市場競爭力,也為公司的未來發展開辟了新的增長點。
在追求經濟效益的同時,捷嘉電子始終不忘履行社會責任。公司積極參與各種公益活動,支持教育事業和環保項目。此外,捷嘉電子還致力于推動行業的可持續發展,通過研發節能環保產品和技術創新來減少對環境的影響。這些舉措不僅提升了公司的社會形象,也為電子行業的可持續發展做出了積極貢獻。
請注意,以上故事是基于目前所了解的信息進行的虛構創作,并非真實事件。如有雷同,純屬巧合。同時,“Chequers Electronic”并非一個已知的公司名稱,因此假設其指的是名為捷嘉的某電子行業相關企業。如需更多信息或詳細故事,請提供更多背景資料或具體要求。
其實,現在無論TI也好、Xilinx、Altera、微星,ADI、飛思卡爾等世界級大公司都將自己生產的設備用inlined wraper s-function或代碼繼承工具寫成了一個個的simulink模塊,還有一些經過實踐驗證的常用算法MathWorks也用這些工具把他們變成了算法模型 ...… 查看全部問答∨ |
flash盤符空間如何得出來?為什么我兩塊硬件條件一樣的板燒了系統之后顯示的flash盤符空間不一樣,一個是3m多,另外一個300多k,flash是用intel的norflash,兩片16m的,注冊表中配置: [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\NORFlash] ...… 查看全部問答∨ |
請教win7下WM設備中心與WinCE5仿真器或設備無法連接的問題 windows mobile設備中心的狀態始終是未連接,并且無論通過仿真器還是通過USB連真機都這樣。 難道是WIN7太高級了,不愿認wince5的東西了? 請教應用如何配置?… 查看全部問答∨ |
(慳錢十月)活躍一下板塊,我給大家說道說道怎么免費搞到開發板?。?/a> 本帖最后由 ddllxxrr 于 2016-1-7 16:59 編輯 不知不覺已經大四很長時間了。回首看看,這四年的成果,除了一個個五花八門的證書外,作為電子人,比別人更多的是攢了四年的元器件和開發板。 今天就給大家說道說道,俺的開發板都是怎么來的。其實每 ...… 查看全部問答∨ |
本帖最后由 ddllxxrr 于 2016-1-7 17:14 編輯 本站強薦:185娛樂`城.足球`真_人.彩票齊全`手機可投`注任何游戲. 首次開戶送10元.首存送58元.信譽絕對保證185.cc … 查看全部問答∨ |
外部完成定時器設定修改的方法 PLC控制系統在使用過程中,經常要修改一些參數,最常見的就是修改定時器的設定值。為了操作員方便修改定時器的設定值,可用下列方法來實現: 1、 使用人機界面 PLC可以用觸摸屏、文本顯示器或工控機作人機界面,方便 ...… 查看全部問答∨ |
做一個項目,發覺要用到三四個FIR濾波器,但是用三四個FIR后發覺板的LE資源不夠用,自己琢磨下更改資源使用方法,資源還是不夠用。想問下高手們有沒有什么辦法不更換FPGA,是資源夠用,或者有沒有擴展什么的方法?… 查看全部問答∨ |
void TIM2_INIT() { RCC->APB1ENR |= (1<<0); //TIM2EN 定時器2時鐘使能 TIM2->PSC |= 63999 ...… 查看全部問答∨ |
請教一下: 剛剛下載一個3.40的30天試用版,但是看不了build之后的代碼大小報告 XXXX BYTE RAM,XXXX byte FLASH..... 另外,我是在安裝IAR之前與之后設置了兩個系統還原點(XP系統) 如果30天之后,我運行系統還原的話.....???會有什么結果呢?… 查看全部問答∨ |