PPP协议在GPRS无线网络中的嵌入式实现
- 格式:pdf
- 大小:172.37 KB
- 文档页数:4
嵌入式GPRS无线通讯系统设计研究摘要:嵌入式gprs无线通信系统不仅具有很强的实用性,其性价比也非常高,本文利用s3c244b0x芯片实现了一个能够收发短信的无线通信系统,希望可以为实践提供借鉴。
关键词:gprs;无线通讯系统;串口中图分类号:tp393 文献标识码:a 文章编号:1007-9599 (2012)19-0000-02无线通信具有非常强的灵活性,是当前最有吸引力的一种通信方式。
当前在gprs无线数据应用方面,很多发达国家已经非常普及,为其生产工作提供了很大的便利。
另一方面,嵌入式系统也已经融入到了我们生活的方方面面。
因此,开发出一款嵌入式gprs 无线通信系统将能够在很多领域发挥出作用,具有很强的实践意义。
1 硬件设计在无线通信的过程中,既要实现内容的输入,还要实现对于数据的网络传输,因此,系统的主体部分将包括cpu、rom以及rom 等,这些构成了计算机最小系统。
本文在硬件方面使用的是三星公司生产的s3c244b0x芯片,它是一款32位risc处理器,主要面向的是低成本、低功耗以及体积下的一些应用以及手持设备。
在硬件结构设计方面,s3c244b0x芯片的最下系统主要系统电源、系统晶振电路、复位电路、jtag接口电路。
下图为s3c244b0x 芯片:2 gprs模块通信2.1 ppp拨号脚本.gprs系统在接入internet的时候使用的是ppp协议。
这一协议的设计主要是为两个实体间的数据包传输而服务的。
对于gprs模块来说,它提供了rs——232接口,在嵌入式系统中可以进行ppp脚本拨号程序的编写,对gprs模块进行直接驱动使其连接的internet和gprs骨干网中,由此数据就能够经过tcp/ip通道发送至具备gprs网络的私有或公网ip地址主机上,进而实现了数据无线传输。
在linux的系统下,拨号脚本程序所需要使用的程序有pppt以及chat,其中ppp的守护程序为pppd程序,这一程序主要对ppp 协议提供支持,主要的作用是建立服务器的ppp连接,并对其进服务使其更好地用以数据的传输。
关于PPP拨号和AT指令实现GPRS模块联⽹的疑问以下内容摘抄⾃互联⽹:问:我刚接触GPRS,了解AT指令⽅式如何实现的GPRS⽹络通信,但对PPP拨号不太了解,有以下问题:1)ppp拨号与⽤at命令实现gprs⽹络通信有什么区别?ppp拨号完成的哪⼀步骤?2)看了⼀些资料,ppp拨号是不是只是联⽹,⾃⼰还要按TCP或UDP编写socket,实现⽹络通信?3)⼀般⽬前的使⽤gprs模块的产品采⽤哪⼀种开发的⽅式?在嵌⼊式linux项⽬开发中,这两种⽅式如何进⾏选择?4)3G模块开发上与之有哪些区别?我看资料来理解这两种⽅式使⽤协议栈不同,ppp是外置协议栈,AT命令⼀般把tcp/ip协议栈内嵌到模块处理软件中。
对嵌⼊式linux系统⽽⾔ppp协议在内核中加载,还要加⾃动拨号处理。
但之后还要做哪些⼯作,如数据收发是否要写socket或经处理后发送,其流程如何就不清楚了。
at命令是gprs模块通过RS232与系统进⾏数据交互,底层不需要做处理。
但两者的优缺点,并不太了解。
答1:1)ppp拨号与⽤at命令实现gprs⽹络通信有什么区别?ppp拨号完成的哪⼀步骤?先通过AT命令,让设备激活PDP,然后PC切换到数据模式,由操作系统发起PPP协商,获取IP地址和鉴权,然后就可以上⽹了。
2)看了⼀些资料,ppp拨号是不是只是联⽹,⾃⼰还要按TCP或UDP编写socket,实现⽹络通信?拨号已经不需要你⾃⼰做了,因为已经建⽴了Modem的通道,就等于插上⽹线了,其他的⾃⼰的功能⾃⼰玩。
3)⼀般⽬前的使⽤gprs模块的产品采⽤哪⼀种开发的⽅式?在嵌⼊式linux项⽬开发中,这两种⽅式如何进⾏选择?不明⽩你啥意思,基本上都采⽤Modem拨号即可。
4)3G模块开发上与之有哪些区别?没有区别,都是上⽹,功能复杂了⼀些,你根据需要选择,如果只是上⽹,基本上没有变化。
答2:1)ppp拨号与⽤at命令实现gprs⽹络通信有什么区别?ppp拨号完成的哪⼀步骤?ppp拨号处理实现at的⽅式,还虚拟出了⽹卡,让⽹络通信标准化。
PPP协议链路操作在无线嵌入式终端上的实现
郝晓弘;李桂肃;高超
【期刊名称】《网络新媒体技术》
【年(卷),期】2007(028)010
【摘要】在远程无线实时监控中,基于GPRS网络的无线监控系统成为当前远距离无线监控领域最为广泛的应用.在这种方案中,PPP协议被作为链路控制协议使用.本文主要介绍如何在一个嵌入式终端中利用PPP协议实现与GPRS网络的链路协商,继而使终端能够附着在GPRS网络上,实现数据从无线终端经过GPRS网络最后到达Internet网络的目的.
【总页数】4页(P1053-1056)
【作者】郝晓弘;李桂肃;高超
【作者单位】兰州理工大学,电气工程与信息工程学院,兰州,730050;兰州理工大学,电气工程与信息工程学院,兰州,730050;兰州理工大学,电气工程与信息工程学院,兰州,730050
【正文语种】中文
【中图分类】TN91
【相关文献】
1.数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发 [J], 陈雷;赵惠芳;丁晓明
2.PPP协议链路操作的软件实现 [J], 车恒志;王婉南
3.轻型PPP协议在μC/OS-Ⅱ操作系统中的实现 [J], 周艳
4.cdma2000-1x无线链路协议(RLP)的研究与实现 [J], 钟涛
5.cdma2000-1x无线链路协议(RLP)的研究与实现 [J], 钟涛
因版权原因,仅展示原文概要,查看原文内容请购买。
摘要摘要移动设备迅猛发展,各类嵌入式产品不断涌现,智能化的趋势在各个领域迅速蔓延。
虽然系统功能日益强大,但用户要求也在不断的变化和升高,个体平台的资源已经远远跟不上要求的攀升,与此同时高集成、更多资源的嵌入式处理器在成本方面给出了过大的压力,所以嵌入式平台网络化的研究成为解决方案之一。
网络化不仅能有效的解决嵌入式本身资源匮乏的问题,而且给嵌入式系统的进一步发展壮大奠定了结实的基础。
如何最大限度的控制网络化的成本消耗成为了现在业内需要解决的问题。
在此背景下本文提出自行设计TCP/IP协议栈的方案。
市面上存在TCP/IP协议栈芯片,有的公司提供的软核实现方式,但都价格不菲,并且对用户不开放内核,所以用户只能使用其提供的功能接口,而不能自行添加和剪裁,这对需要在该领域做应用开发的用户形成限制,所以必须对嵌入式平台设计一个适合的TCP/IP协议栈,并且为协议栈提供通用的使用接口,便于使用。
在实现TCP/IP协议栈基础上引入GPRS技术,实现嵌入式系统无线接入网络。
GPRS是一种快捷、高效率、按数据量计费的无线网络通信技术。
使用GPRS 技术与嵌入式技术结合,极大提高了移动平台的灵活性。
本文的核心工作如下:第一,对比PC上的通用TCP/IP协议栈和嵌入式系统中的TCP/IP协议栈,总结出实现嵌入式TCP/IP协议栈的重点和难点。
第二,在LPC1766+DP83848C嵌入式系统上设计实现TCP/IP协议栈,经过检测成功接入网络。
第三,在完成的嵌入式TCP/IP协议栈基础上进一步实现GPRS技术,使LPC1768+MC37i嵌入式系统通过GPRS无线连接入互联网。
论文详细说明了嵌入式TCP/IP协议栈和GPRS技术的研究和实现方法,目前该嵌入式协议栈每层协议都具备向上和向下的接口,并在应用层提供了一套socket接口和简单的TCP/UDP服务器和客户端软件,方便应用层的软件设计。
协议栈稳定的运行状态证明了本文设计思路的正确性。
第24卷第4期 中南民族大学学报(自然科学版) V o l .24N o.42005年12月 Journal of South 2Central U niversity fo r N ati onalities (N at .Sci .Editi on ) D ec .2005αPPP 协议在GPR S 无线网络中的嵌入式实现蓝晓 童小念3(中南民族大学计算机科学学院,武汉430074)摘 要 介绍了PPP 协商机制,给出了一个利用GPR S 模块实现快速小数据量的无线数据通信的实例,此例中PPP 协议采用了优化的协商流程以提高链路建立的速度,项目实施中还采用了串口监测的方式检测收发的数据值,这个重要的调试手段保证了系统的正确实现.关键词 点到点协议;通用分组无线业务;因特网协议中图分类号 T P 393.04 文献标识码 A 文章编号 167224321(2005)0420072204Em bed I m plem en ta tion of PPP Protocol i n GPRS W ireless NetworkL an X iaop ang T ong X iaon ianAbstract T h is paper in troduces nego tiati on m echan is m of PPP p ro toco l and gives an examp le of u sing GPR S modu le to con struct a w ireless comm un icati on system .T he op ti m izing nego tiati on p rocess is u sed in th is examp le to i m p rove speed of estab lish ing data link .Fu rthermo re ,the tow com s is u sed to validate the packet that tran s m its and receives data value ,and th is efficien t debug m ethod can en su re the validity of system .Keywords PPP ;GPR S ;IPLan X i aopang M aster ′s Candidate ,Co llege of Compu ter Science ,SCU FN ,W uhan 430074,Ch ina 笔者在一个3G (G IS ,GPR S ,GPS )项目中完成了一个通信模块的实现.此模块的基本功能是:把GPS 采集移动终端的当前位置通过PPP 协议传给GPR S 模块,此模块再通过无线链路发到数据中心,G IS 系统将位置信息加以处理和利用.系统中数据中心是连接到In ternet 上的一台主机,移动终端必须通过GPR S 网络连上In ternet ,然后利用IP 和U D P 协议和中心机通信.图1为GPR S 网络中的用户传输面的网络协议栈结构[1,2].图1 GR PS 用户传输面网络协议结构 由图1可知:移动终端要连上In ternet 取得GPR S 服务,首先需要支持GPR S 功能的GS M 模块,使移动终端通过串口和GPR S 模块相连,然后通过A T 命令先设置好模块,定义PD P 上下文和网络服务质量;发出进行申请GPR S 服务的拨号命令,这时移动终端中的PPP 协议客户端程序开始启动,α收稿日期 2005209208 3通讯联系人作者简介 蓝晓 (19762),男,硕士研究生,研究方向:多媒体与网络应用,E 2m ail :ow lsky @ 基金项目 湖北省自然科学基金资助项目(2004ABA 029)GPR S模块的PPP协议服务器端程序进行协商通信.收到拨号命令后GPR S M模块会进行网络的附着,进行PD P移动场景激活[2],核心网接着分配无线链路资源,这时GPR S模块中的PPP协议服务器端进入N ETW O R K状态,把自己激活PD P场景时得到的核心网分配的IP地址通过IPCP协议分配给移动终端,这样移动终端通过串口和GPR S之间用PPP协议就建立了一条链路并取得了自己的IP地址,即连接上了In ternet,可以和数据中心通信了.实现该系统的关键是链路建立的协商流程和调试方法.1 PPP协议及其链路建立协商机制1.1 PPP(Po in t2to2Po in t)协议PPP协议由R FC1661[3]定义,主要用于串行链路上提供一个简单高效的数据链路,并能承载高层的网络协议.它是一个协议框架,主要用到3个协议:L CP、PA P、IPCP协议.1)L CP为连接控制协议用来协商基本的通信参数.2)PA P为口令认证协议用来签权,提供安全支持.3)IPCP为IP控制协议用来协商IP协议相关的参数,得到服务器动态分配的IP地址.用PA P协议而不是用CHA P来进行鉴权使PA P更简单,从而简化协商流程,提高协商速度.1.2 PPP数据帧格式PPP协议采用HDL C[4]规程的帧格式,如果PPP数据帧中封装的不是网络层的协议,则帧格式如下:start flag A ddress Contro l P ro toco l Code Id L ength Op ti on CheckSum End flag 7E FF032byte1byte1byte2byte选项2byte7E1.3 PPP协议协商机制PPP协议框架中L CP、PA P、IPCP协议是用来建立链路的,它们都用相同的协商机制在PPP的客户端和服务器端之间进行协商.主要用R EQ、A CK、NA K、R EJ4种类型的数据帧来进行协商.(1)R EQ.即配置请求帧,Code字段等于01.表示发送方愿意以该帧O p ti on字段中列举的配置选项接收数据;(2)A CK.即配置应答帧,Code字段等于02.当收到R EQ帧后发送对该R EQ帧的配置应答帧,表示发送A CK帧的一方完全接受该R EQ帧O p ti on字段中列出的配置选项和这些选项的值,完成一次协商;(3)NA K.即配置否定帧,Code字段等于03.表示接受R EQ中的配置选项,但对有些选项的参数值不能接受,于是在NA K帧的O p ti on字段中列出这些配置选项并给出可以接受的配置选项参数建议值(h in t);收到NA K消息的一方,如果接受h in t值,则将对应选项参数修改后,再发R EQ帧再次协商;否则则将对应选项从后续R EQ消息中删掉.所以如果接受NA K的一方发一个包含该NA K帧中h in t值的R EQ帧,且收到到对方的一个对应于该R EQ帧的A CK,那么该协商就告成功;(4)R EJ.即配置拒绝帧,Code字段为04.当收到R EQ帧的时候,如果R EQ中的某些配置选项不可识别或者不能进行协商,于是把这些配置选项和值复制到R EJ帧的O p ti on字段中,并发出R EJ帧;收到R EJ消息的一方,将不应该发出包含在R EJ帧中的配置选项的R EQ帧.2 系统硬件模块设计硬件设计中M CU采用的是M icroch i p公司的P ic18F 452,它是R ISC指令的单片机,内部采用哈佛结构,有32KB的程序存储器以及256B yte的数据存储器空间,长字指令.它具有很高的性能,可游刃有余地并行执行无嵌入式O S支撑的嵌入式网络协议和系统中各种数据采集的任务.GPR S模块采用的是CS M91.它支持标准的A T命令,对外的接口支持115200波特率的串口.实际上项目中是把GPR S模块作为一个无线M OD E M来用,但是为实现简单,没有使用标准的M OD E M硬件握手信号,采用了串口发送(TXD)和串口接收(RXD)的方式.其它载波检测(DCD),终端准备(D TR)等信号带来的问题,系统中采用软件办法来解决.M CU和GPR S模块之间增加了一个M A X232模块来匹配双方管脚的电平.硬件连线如图2所示.值得注意的是图2中两个监控串口的接法.在37第4期 蓝晓 ,等:PPP协议在GPR S无线网络中的嵌入式实现 图2 硬件连线实现嵌入式网络协议的时候,最大的困难是缺少调试手段,无法监控收发的数据.经过这样的连线,就能把监控串口直接连到PC 的串口,然后再利用串口工具监控串口上传输的数据,分析这些数据就能检验其协议的实现是否正确.这是系统实现中一个重要的调试手段.3 PPP 模块的软件实现系统的软件模块结构如图3所示.这是一个PPP 协议客户端模块,该模块的工作原理是:PPP 数据帧发送时,将缓冲区的数据发送到串口;每当有数据来到的时候就用串口中断服务程序ISR 来接受数据,ISR S 把数据传给报文解析模块;当报文解析模块收到完整的PPP 帧时就按照PPP 协议的转义规则把接收到的数据进行转义,再将转义后的数据存放到缓冲区,同时检验是不是收到一个正确的帧,如果是就把帧标志置为真.主程序检测帧标志,为真时就根据数据帧的类型进行相应的处理,这是一个L CP 、PA P 、IPCP 协议协商建立数据链路的过程.链路建立好之后,移动终端中PPP 客户端模块得到GPR S 模块中PPP 服务器分配的IP 地址,采用在PPP 数据帧中封装网络层IP 协议的方法连接到In ternet .图3 软件模块结构PPP 模块协商过程是PPP 模块的核心,主要是建立PPP 链路,是PPP 的C lien t 模块和GPRS 模块的PPP server 之间进行数据包交换的过程.整个链路建立要经过4个协商过程:从死亡到建立协商、L CP 、PA P 和IPCP 协商.PPP 链路建立协商流程如图4所示.图4 PPP 链路建立协商流程3.1 从死亡状态到建立状态的协商这部分的功能是取得GPR S 网络服务.GPR S模块在取得GPR S 网络服务之前处于命令模式,这时PPP 模块先发送A T 命令给GPR S 模块,使GPR S 模块准备好,然后用A T 命令申请GPR S 网络服务.当GPR S 模块收到命令字符串“A TD 3993331#”后,这时候开始和GGSN 握手,握手成功就返回字符串“Connet ”给PPP 模块.GPR S 模块这时处于在线模式,移动终端和GPR S 模块的PPP 协议处于建立状态.这时就双方可以开始PPP 协商了.3.2 L CP 协议协商流程L CP 协议用来建立、配置和测试链路.其流程如下:1)PPP 模块首先发送一个空的L CP 协议R EQ帧给GPR S 模块的PPP SERV ER ,发起PPP 协商;2)GPR S 模块的PPP SERV ER 对这个空的请求应答一个A CK 帧,并发一个包含L CP 配置选项2和3的R EQ 帧.两个配置选项内容是:0206000A 00000304C 023D .它表示需要用PA P 协议来认证,A CC M (同步控制字符映射)的值为:0AOOOO ;3)PPP 模块发现收到的R EQ 帧包含的配置选项2的值不是PPP 模块期待的0XFFFFFF .所以PPP 模块收到这个R EQ 后首先针对O p ti on 2发一个NA K 帧,给出自己想要的值FFFFFF ;4)GPR S 模块的PPP SERV ER 收到PPP 模块发的NA K 帧后,会用C lien t 认同的配置选项值形成一个新的请求.新的请求包含配置选项2和3,它们47 中南民族大学学报(自然科学版)第24卷的值为:0206FF FF FF FF0304C023;5)PPP模块接到这个R EQ后,A CK它表示同意这两个配置选项.整个L CP协商完成,可以开始PA P协商了.3.3 PA P[5]协议协商流程这是一个签权认证的过程.其流程如下:1)PPP模块首先发一个PA P请求帧,用户和密码都是空的.这是当前大多数GPR S模块的默认的配置值;2)GPR S模块的PPP SERV ER应答一个PA P 协议的A CK帧,该帧的信息域是login ok!的A SC II 码,表示登陆成功,整个签权认证过程结束.3.4 IPCP协议协商流程IPCP协议用来协商通信双方选择和配置网络层的IP协议,主要目的是让客户端得到GPR S模块在PD P激活成功后得到的C M N ET分配给GPR S模块的IP地址,因此IPCP协商用到了IPCP中选项3 (IPA ddress)进行协商.协商过程是:1)PPP模块首先发送IPCP R eq数据包开始进行IPCP协商.PPP模块向GPR S模块的PPP SERV ER发送的第一个IPCP R eq数据包中选项3,其它值为零,目的是让GPR S模块的PPP SERV ER 应答一个含有分配给PPP模块的有效IP地址的IPCP的NA K数据包;2)GPR S模块的PPP SERV ER应答一个NA K 帧,其中包含分配给PPP模块的有效IP地址;3)PPP模块收到这个NA K帧后,得到自己的IP地址.用这个有效的IP地址发送一个IPCP R EQ 数据包,这个R EQ请求包包含选项3,它的值为分配到的IP地址;4)GPR S模块的PPP SERV ER收到包含有效IP地址的IPCP R eq数据包后,应答IPCP A CK数据包.PPP模块收到这个IPCP A CK数据包后,PPP 协议处于网络层协议的状态,至此IPCP协商完成.这时IP、I C M P、U D P等上层的协议数据包可以封装在PPP帧里传输了.这时的帧格式如下:T ype L ength D ate P ro toco l上层协议数据CheckSum End flag 7E FF030021IP包2byte7E 笔者在总结R FC1661中定义的标准的PPP协商流程和深入研究3GPP的GPR S的协议的基础上,通过大量的试验,设计实施了以上优化的协商流程.该流程通过发空L CP R EQ来启动协商,能够使得须协商的配置选项最少,从而简化了协商过程,提高了协商速度.串口对收发数据的监测结果表明数据传输正确,系统工作稳定.4 结束语嵌入式In ternet技术和移动通信技术发展很快,通过GPR S网络进行数据传输,具有成本低、连网灵活快速、范围广的优点,已经有大量的成功的商业应用.本文的设计实例完成了PPP协议在GPR S 无线网络中的嵌入式实现.该实例稍加修改可以用于远程监测、数据采集、监控系统、智能交通等系统中,对于实际应用有较大的参考价值.参 考 文 献[1] 钟章队.GPR S通用分组无线业务[M].北京:人民邮电出版社,2001.12[2] 黄承安.微控制器拨号上网的实现[J].通讯与电视,2003,(5):21[3] Si m p son W.T he po in t2to2po in t p ro toco l[S].R FC1661,IET F,h ttp: www.ietf.o rg rfc,1994.[4] Si m p son W.Si m p son W.PPP in HDL C2L ike F ram ing[S].R FC1662,IET F,h ttp: www.ietf.o rg rfc,1994.[5] L loyd B.PPP A u then ticati on P ro toco ls[S].R FC1334,IET F,h ttp: www.ietf.o rg rfc,1992.57第4期 蓝晓 ,等:PPP协议在GPR S无线网络中的嵌入式实现 。