历史上的今天
返回首页

历史上的今天

今天是:2025年01月25日(星期六)

2021年01月25日 | 基于ARM7的GPRS无线VPN路由器设计

2021-01-25 来源:eefocus

简介: 本文较为详细地介绍了一种新型无线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片内特殊功能寄存器以及其他相关硬件信息的定义。可以在此对其进行修改。另外还可以在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应用程序。通过使用本文中所提出的方法,可以很好的满足很多行业的应用需求。


推荐阅读

史海拾趣

Amulet Technologies公司的发展小趣事

Amulet Technologies 是一家位于美国佛罗里达州坦帕的公司,专注于嵌入式系统和触摸屏技术。以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展:Amulet Technologies成立于1998年,由一群有经验的电子工程师创立。公司初期的主要目标是开发具有低功耗、高性能和易于集成的嵌入式系统解决方案。他们迅速建立了一支专业团队,并开始研发新技术以满足市场需求。

  2. 触摸屏技术的突破:随着智能手机和平板电脑等设备的普及,触摸屏技术成为了电子行业的热门话题。Amulet Technologies在2006年推出了其首个触摸屏控制器产品,为用户提供了更加直观、灵活的操作体验。这一技术突破使得公司在市场上获得了更多的关注和认可。

  3. 拓展产品线:除了触摸屏技术,Amulet Technologies还不断拓展其产品线,涵盖了嵌入式图形处理器、开发工具和软件库等领域。公司致力于提供全面的解决方案,帮助客户快速开发和部署嵌入式系统。

  4. 合作伙伴关系:为了加强自身实力并扩大市场份额,Amulet Technologies积极与其他公司建立合作伙伴关系。公司与硬件制造商、软件开发商和系统集成商等各个领域的企业合作,共同推动产品创新和市场拓展。

  5. 持续创新与未来展望:Amulet Technologies一直致力于不断创新,满足客户不断变化的需求。公司不断投入研发,开发新技术,并与客户紧密合作,持续改进和优化产品。未来,公司将继续致力于嵌入式系统和触摸屏技术的研究与开发,为客户提供更加优质的产品和服务。

Cristek Interconnects Inc公司的发展小趣事

Cristek Interconnects Inc公司在技术创新和质量管理的双重驱动下,开始积极拓展市场。公司不仅在国内市场取得了显著的成绩,还积极开拓国际市场。通过与国外知名企业的合作,Cristek的产品成功打入国际市场,进一步提升了公司的知名度和影响力。

EXXELIA Group公司的发展小趣事

Cristek Interconnects Inc公司在技术创新和质量管理的双重驱动下,开始积极拓展市场。公司不仅在国内市场取得了显著的成绩,还积极开拓国际市场。通过与国外知名企业的合作,Cristek的产品成功打入国际市场,进一步提升了公司的知名度和影响力。

Akahane Electronics Ind Corp公司的发展小趣事

Akahane深知人才是企业发展的核心动力。因此,公司一直注重人才培养和引进。通过建立健全的培训机制和激励机制,Akahane吸引了一批批优秀的研发人才和管理人才。这些人才为公司的技术创新和市场拓展提供了有力支撑。同时,公司还积极与高校和研究机构合作,共同培养电子行业的后备力量。

Ferroxcube公司的发展小趣事

在电子行业中,质量始终是客户最关心的问题之一。Ferroxcube公司深知这一点,因此在生产过程中严格控制产品质量,确保每一个出厂的产品都符合甚至超过客户的期望。

有一次,一个大型电子设备制造商向Ferroxcube下了一笔大额订单,要求提供一批高性能的磁环。然而,在生产过程中,质检部门发现其中一部分磁环的性能指标略低于标准要求。虽然这批产品仍然符合市场上的大部分需求,但Ferroxcube公司决定全部返工,确保每一件产品都达到最高标准。

这一举动虽然增加了公司的生产成本,但却赢得了客户的极高评价。那家大型电子设备制造商对Ferroxcube的严谨态度和专业精神表示赞赏,并将Ferroxcube列为了其首选供应商之一。此后,双方的合作更加紧密,共同开发了许多创新的电子产品。

C&K Components公司的发展小趣事

到了90年代,随着电子产品的普及和技术的进步,开关市场的竞争愈发激烈。然而,C&K凭借多年的技术积累和市场经验,已经成为世界领先的开关制造商之一。公司不断推出创新产品,满足市场的多样化需求,同时加强与国际知名企业的合作,进一步巩固了其在行业内的领先地位。

问答坊 | AI 解惑

IC版图设计师班热招~

上海华安新科技人才培训中心08年1月IC版图设计师(员)培训班开班,现热招中~有兴趣的可以咨询021-63171717 刘老师. 上海户籍的朋友可以享受全额或半额的政府补贴, 机会莫失喔~~…

查看全部问答>

基于AT89s52单片机的最小系统

本帖最后由 paulhyde 于 2014-9-15 03:13 编辑 基于AT89s52单片机的最小系统,今年我们用的最小系统    …

查看全部问答>

LPC2000应用笔记

免费资料,内容很齐全哦 [ 本帖最后由 jxb01033016 于 2009-9-17 11:36 编辑 ]…

查看全部问答>

兼职MCU,DSP,ARM,FPGA,CPLD芯片程序的破解

本人擅长于MCU,DSP,ARM,FPGA,CPLD程序的破解和电路板的抄板,原理图和PCB的绘制,破解的成功率非常高。同时还承担单片机系统以及中央空调等方面的开发。如有需要请联系我。sale.jiemi@gmail.com …

查看全部问答>

谁来救救我的PWM程序啊!!

各位eeworldD的大侠们。小弟初学嵌入式。用s3c2410的定时器0产生PWM信号。但是当我结束应用程序后,驱动产生的PWM波还在。这是怎么回事啊?望各位大侠不吝赐教。 我的驱动程序如下: #include #include #include #include #include #include #inc ...…

查看全部问答>

★★★想实现“技术+证书+高薪就业”吗??★★★

硬件工程师高级职业教育项目组(http://test.pche.com.cn/pche/seign/default.asp)直属于信息产业部电子教育考试培训中心,为了提高从业人员硬件设计水平和职业技能,开发出了一系列硬件设计工程师培训课程: 1、PCB设计工程师初级班    ...…

查看全部问答>

新手求助

初学STM32 使用KEIL自建工程 编译时出现错误 Usr\\main.c(23): error:  #5: cannot open source input file \"stm32_eval.h\": No such file or directory 请问是哪出问题了?…

查看全部问答>

工作何处寻!

我该怎么办!现在在成都,现在发现自己会的就是单片机,其它的没的什么长处,写写简历也没的啥子好写的。悲剧的大学。我现在开始迷茫。…

查看全部问答>

从0开始学M4 (第三篇 对HX8352屏幕的控制)

驱动HX8352a   做完板子上一些基本的资源后,我们很快就能发现原理图中的这一部分   这部分外扩端口是专为LCD准备的。可以看出是专门为某款屏设计的。这里先讲解如何驱动这块屏。   1、 首先是对屏的控制线及数据线 ...…

查看全部问答>

富士通工控板DIY之CAN总线双板连接成功

富士通工控板DIY之CAN总线双板连接成功 看图: 具体情况是: 1,使用双板连接,发送命令点亮对方的LED。 2,具体位速率等没更改。 3,和其他的CAN板的测试以后再试。 4,连接CANRX腿的两个电阻没用。直接用了个0偶电阻和CPU连接了。具体是 ...…

查看全部问答>