单片机拨号后PPP的链接的建立.docx

上传人:b****5 文档编号:8271513 上传时间:2023-01-30 格式:DOCX 页数:55 大小:1.12MB
下载 相关 举报
单片机拨号后PPP的链接的建立.docx_第1页
第1页 / 共55页
单片机拨号后PPP的链接的建立.docx_第2页
第2页 / 共55页
单片机拨号后PPP的链接的建立.docx_第3页
第3页 / 共55页
单片机拨号后PPP的链接的建立.docx_第4页
第4页 / 共55页
单片机拨号后PPP的链接的建立.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

单片机拨号后PPP的链接的建立.docx

《单片机拨号后PPP的链接的建立.docx》由会员分享,可在线阅读,更多相关《单片机拨号后PPP的链接的建立.docx(55页珍藏版)》请在冰豆网上搜索。

单片机拨号后PPP的链接的建立.docx

单片机拨号后PPP的链接的建立

基于PPP协议单片机拔号上网的设计与实现

作者:

佚名 来源:

不详 录入:

Admin 更新时间:

2008-8-1621:

09:

53 点击数:

12

【字体:

   摘要:

通过对TCP/IP协议簇进行简化,讨论数据包的配置,设计并实现单片机拔号上网的系统。

   关键词:

单片机协议TCP/IP数据包

引言

20世纪90年代,以因特网为代表的计算机网络通信技术的发展和应用取得了前所未有的突破和成功,单片机上网技术在生活和现代建设的各方面的应用和研究随之成为当今一个热门话题。

8位、16位单睡机的因为其较好的性价比,在测控领域仍然占据着重要地址。

这些单片机的RAM、ROM一般都很小,而网络协议通常嵌入在操作系统中,无法把庞大的操作系统直接安装在这样的单片机中。

所以,要实现上述单片机通过拔号直接连上因特网,需要考虑的主要技术就是如何在单片机上嵌入能符号需要的经过简化的网络协议。

这就是本文所要讨论的主题。

   本文着重分析所用数据包的类型和选项,给出几个典型数据包的格式。

一、PPP协议简介

IETF成立了一个小组,推出了点到点线路的数据链路层协议,并成为正式的因特网标准。

这项工作定义的PPP(Point-to-PointProtocol),即点到点协议,并以RFC文件RFC1661,后来以RFC1662和RFC1663进一步明确下来。

PPP处理错误检测,支持多种协议,在连接时钟允许商议IP地址,允许身份验证,以及在SLIP上所做的许多其他改进。

虽然许多因特网服务提供者仍支持SLIP和PPP,但未来显然属于PPP,不管是拨号线路,还是租用路由器与路由器的线路都是如此。

   PPP成就了3件事:

(1)明确地划分出一帧的尾部和下一帧的头部的成帧方式。

这种帧格式也处理错误检测工作。

(2)当线路不再需要时,跳出这些线路,测试它们,商议选择,并仔细地再次释放链路控制协议。

这个协议被称为链路控制协议LCP(LinkControlProtocol)。

(3)用独立于所使用的网络层协议的方法来商议使用网络层的哪些选项;对于每个所支持的网络层来说,所选择的方法有不同的网络控制协议NCP(NetworkControlProtocol)。

NCP在因特网中(TCP/IP协议)为IPCP。

   PPP数据帧的格式如图1所示。

二、基于PPP协议单片机拨号上网的设计与实现

1.概述

本方案选用的单片机是ADAM5510。

它是台湾ADVANTECH公司推出的一种功能较强、价位适中的单片机,具有80188-40、16-bit单片机,RS-232、RS-485口各一个,还有一个编程口(ADAVANTECH公司为5510系列单片机开发了同普通的TurboC界面很相似的集成开发环境,这种IDE能灵活地编辑、编译、仿真、开始和调试适用于5510系列的软件)。

ADAM5510的功能模块如图2所示。

这种单片机在硬件构成上已比较完善,使我们可以集中精力于TCP/IP协议的分析和软件的实现。

在本方案中,物理层接口采用的是:

单片机通过RS-232与Modeem通信,电话线与Modem相连。

单片机直接从RS-232端口收发数据。

2.原理及程序流程

系统原理如图3所示,测试程序如图4所示。

3.简化PPP协议——配置各种数据包

(1)LCP包的配置

LCP包的配置如图5所示。

a.LCP包概述

LCP包有3类:

a链路配置包,用于建立和配置链路,包括ConfigureAck、ConfigureNak、ConfigureRequest、ConfigureReject;b链路结束包,用于结束一个链路,包括TerminateRequest、TerminateAck;c链路维修包,用于管理和调试一个链路,包括CodeReject、ProtocolReject、EchoRequest、EchoReply、DiscardRequest。

LCP包的选项最常见的有:

1MaximumReceiveUnit、2AsyncControlCharacterMap、3AuthecticationProtocol、7ProtocolFieldCompression、8AddressandControlFieldCompression。

b.LCP包种类的取舍

本文中,只用了Configure-Request、Reject、Ack三种LCP数据包,这是实现应答所必需的最低限度。

单片机发出的Request选项是我们预先设定的,而ISP发出的选项若有我们不接受的内部,则单片机回答一个Reject,任何一方接受请求时发Ack,因此未处理NAK数据包。

本文也未处理剩余的七类数据包,因任何原因造成的链路终止问题都由单片机在程序的控制下重新拨号来解决。

c.LCP选项的取舍

由于我们每次发送(接收)的数据较少(由于单片机RAM的限制,设定的缓冲区很小),MRU选项默认值为1500字节,最小值为576字节,所以测试程序不支持选项1;选项2是必须支持的;选项3提供了发送password的方法,它的参数可以是0xc023或0xc223。

为简单起见,本文的测试程序选择了0xc023作为选项3的参数,这样,程序将以明文的形在一个数据包中发出用户名和密码。

测试程序不请求选项7和8的服务,也就是根据默认的规定,发送的数据包含有PPP协议域和控制域。

   

(2)PAP包的配置

由于LCP包中选项3的使用情况,PAP包是必需的。

简单起见,程序中只交换了一个PAP包,但已完成了用户的身份鉴定,如图6所示。

(3)IPCP包的配置

IPCP选项是关于IP地址和IP压缩的,测试选择了选项3(IP-address)。

本程序通过发出一个无效的地址请求(0.0.0.0),等待服务器回答一个NAK(选项为3)从这个NAK包中得到自己的正确地址。

IPCP包的配置如图7所示。

(4)CCP包的处理

有些服务器试图协商压缩,但由于我们关心的是程序的大小(越小越好)而不是数据传送的速度,所以CCP请求被拒绝。

   (5)IP包的处理

在协商好PPP协议的各选项后,即可进行数据传输了。

同样,为了简单起见,采用了UDP协议而不是TCP协议。

数据的正确性由应用程序控制。

(6)验证

在(202.119.116.248)端,安装了Netxray3.0版网络嗅探器。

利用该软件可以很方便地查看进行该机器的数据包的功能,我们验证出源端发送数据的测试程序是可行的。

结束语

本文针对实际应用情况,对庞大的TCP/IP网络协议组进行了简化,具体分析了简化后的协议组中各种数据包,同时给出了测试程序对所需发送数据的具体打包过程。

完整的TCP/IP协议很大,只能嵌入到32位以上的单片机上运行。

我们在软件只需要3KB(字节的ROM即可运行。

在接收数据的目的端,PC机上安装了Netxray3.0软件,对测试程序的结果进行测试,验证出最终在目的端接收到的数据就是我们在源端所发送的数据,而且所有的数据包都符合TCP/IP规范。

 

以PPP拨号实现GPRS与因特网的数据通信的具体实现流程

 (2010-01-0520:

28:

39)

转载

标签:

 

杂谈

分类:

 GPRS

以PPP拨号实现GPRS与因特网的数据通信的具体实现流程:

   

  1、GPRS 模块的ECHO关闭,MCU发送ATEOV1到GPRS模块。

 

  2、完成接入初始化:

AT+CGDCONT=1,“IP”,“CMNET”。

 

  3、呼叫CMNET:

ATD*99***1#。

 

  4、MODEN返回正确的CENNECT信息。

 

  5、终端主动发送LCP数据包(REQ,ACK,Reject)进行链路协商,据服务器ISP提供商的   不同可能也有不同 

  ISP发生的选项若终端不接爱,则返回Reject  

  服务器ISP发送LCP(Request)终端ACK则无需拒绝Reject; 

  任何一方接受请求时发ACK,不处理NAK数据包 

  不可链路则重复发送(程序和MCU机制完成)直至连接成功 

  6、LCP配置成功进入PAP认证,目前中移动用明文密码认证身份,认证通过读取SIM卡信息来完成身份认证,以电话号码来识别用户名和密码,因此发送用户名和密码的数据包可以为NULL。

 

  7、PAP通过以后需要进行IP协调配置(IPCP),选项3配置(IP地址)而网关与DNS配置信息可省略,发送NAK选项3配置,发00.00.00.00到服务器,返回终端目前的IP, 

  这一IP可用否,要看CMNET的设置 

      若CMNET将局域网内部直接路由关闭后,可以通过PC+GPRS方式利用PING测试,测试通过则可用。

 

      否则就要进行IP地址和端口的映射转换后才可进行通讯。

 

  8、IPCP通过后,要有相关NCP协议进行网络层协议的选择TCP/IP或UDP,进行数据传输。

本方案之中,可以无需考虑相关的网络层数据传输协议 

  9、模式转换,无需中断连接的前提下GRRS的数据模式―――  AT Command状态使用    +++命令切换,若切回数据状态输入ATO到CMS91 GPPRS MODULE。

 

  10.中断GPRS 的PPP连接,可用LCP包完成///或用AT    Command状态的ATH指令挂断目前的连接。

 

  11.  GPRS接到INTERNET后,信道正在通信时,任何外来的呼叫都会没有响应。

 

  若无数据传输,这时呼叫信息可达GPRS MODULE ,由于MODULE 此时,在数据状态,在没有使用MULTIPLEX情况下只能通过RING脚得到信息,MCU如要处理过个呼叫可切换到AT Command状态。

  

嵌入式单片机PPP协议的应用研究

摘要:

介绍了PPP协议原理、单片机与PC机之间PPP连接的建立,程序流程等。

关键词:

PPP协议 单片机 单片机PPP协议

PPP协议(Point-to-PointProtocol)提供了在串行点对点链路上传输数据报的方法,支持异步8位数据及位导向的同步连接(如ISDN)。

它提供了一种管理两点间会话的有效方法,正在取代SLIP(SerialLineInterfaceProtocol)协议成为点对点网络的标准。

嵌入式单片机PPP协议是在单片机中嵌入PPP协议,以实现单片机与计算机之间的PPP数据传输,使它既可以作为PPP连接的客户端,也可以作为独立的PPP服务器端来使用。

它在家电控制和小型数据传输系统中具有非常广阔的应用前景,并且具有成本低、传输稳定等特点,是当前单片机研究的热门话题之一。

1PPP的工作原理

PPP采用高级数据链路控制(HDLC)协议作为在对点链路上分装数据报的基本方法。

使用可扩展的链路控制协议(LCP)来建立、配置和测试数据链路。

用网络控制协议簇(NCP)来建立和配置不同的网络层协议,PPP允许同时采用多种网络层协议。

为了建立点对点链路上的通信连接,发送端PPP首先发送LCP帧,以配置和测试数据链路。

在LCP建立好数据链路并协调好所选设备后,发送端PPP发送NCP帧,以选择和配置一个或多个网络层协议。

当所选的网络层协议配置好后,便可以将各网络层协议的数据包发送到数据链路上。

配置好的链路将一直处于通信状态,直到LCP帧或NCP帧明确提示关闭链路,或有其它的外部事件发生。

PPP连接状态图如图1所示。

1.1连接死亡阶段

一个连接的开始和结束都要经历这个阶段。

当一个外部事件指示物理层已准备好并可使用时,PPP进入建立连接阶段。

此时,LCP自动机处于初始阶段。

当它向链路建立阶段转换时将给LCP自动机发送一个UP事件信号。

1.2连接建立阶段

LCP用于交换配置信息包、建立连接。

一旦一个配置成功的信息包发送且被接收,就完成了交换,进入LCP开启状态。

所有的配置选项都假定使用默认值,除非在配置交换过程中被改变。

只有那些与特定的网络层协议无关的选项才会被LCP配置。

收到LCP配置数据包将使链路从网络层协议阶段或者认证阶段返回到链路建立阶段。

1.3认证阶段

在某些连接情况下,希望在允许网络层协议交换数据前对等实行认证。

默认情况下,是不要求认证的。

认证要求必须在建立连接阶段提出,然后进入认证阶段。

如果认证失败,将进入连接终止阶段。

在此阶段只对连接协议、认证协议、连接质量测试数据包进行处理。

1.4网络层协议阶段

一旦PPP完成上述阶段,便进入网络协议阶段。

每一个网络层协议(例如IP、IPX、AppleTalk等)必须有相应的网络控制协议(NCP)单独配置,每个网络控制协议都可以随时打开或关闭。

此阶段,LCP协议自动状态机处于打开状态,接收到的任何不支持的协议数据包都会被返回一个协议拒绝包,而接收到的所有支持的数据包都将被丢弃。

此时,链路上流通的是LCP数据包、NCP数据包以及网络协议数据包。

1.5终止连接阶段

PPP连接可以随时被终止。

LCP通过交换连接终止包来终止连接。

当连接被终止时,PPP会通知物理层采取相应的动作。

只有当物理层断开,连接才会真正被终止。

此阶段,接收到的所有非LCP数据包都将被丢弃。

2PPP数据结构

PPP数据帧的结构如表1所示,PPP协议标志如表2所示。

每个PPP数据包的开始和结束都有一个0x7E的数据标志。

在开始标志后,紧跟2个HDLC常量:

地址常量0xFF和控制常量0x03。

协议域长度通常为2字节,表示信息域里包含的是哪种协议以及它的处理信息。

随后是代码(Code)、标识符(ID)和长度域(Length)。

事实上它们都是信息域(Payload)的一部分。

信息域长度最多为1500字节。

代码部分用来指示LCP、PAP、IPCP或者CHAP协议数据包中的某种类型。

通常情况下,用来表示IP自寻址信息数据包的标识是0x45。

ID对于每一帧来说都是唯一的,所有协议间的商谈和响应都通过ID联系在一起。

只有当PPP协议帧被压缩成IP寻址信息包时例外。

这个时候ID表示的是一种服务类型。

有效载荷部分是可变的,并能随着请求和响应的变化作相应的改变。

在IP自寻址情况下,IP数据包的大小与PPP协议帧的大小是兼容的,有效载荷包含有关协议的商谈和数据包的保持。

然后是一个长度为2字节循环冗余检验码,以检测数据帧中的错误。

由于标志字符的值是0x7E,因此当该字符出现在信息字段中时,PPP需要对它进行转义。

具体实现过程如下:

(1)当遇到字符0x7E时,需连续传送2个字符:

0x7D和0x5E,以实现标志字符的转义。

(2)当遇到转义字符0x7D时,需连续传送2个字符:

0x7D和0x5D,以实现转义字符的转义。

(3)默认情况下,如果字符的值小于0x20(例如ASCII控制字符),一般都要进行转义。

例如,遇到字符0x01时需连续传送0x7D和0x21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

这样做是防止它们出现在双方主机的串行接口驱动程序或调制解调器中,因为它们有时会把这些控制字符解释成特殊的含义。

另一种可能是用链路控制协议来指定是否需要对这32个字符中的某些值进行转义。

默认情况下是对所有的32个字符都进行转义。

关于PPP协议的详尽描述可以参阅RFC1661文档。

3单片机PPP协议

单片机PPP协议是PPP协议在单片机中的应用,有其特点。

单片机的存储空间只有64KB,而PPP协议包括LCP、PAP、IPCP以及NCP等协议,并且在连接建立后还要用到数据传输协议(TCP/IP、UDP等)、各种压缩协议等。

要把这些协议完全嵌入单片机是不可能的,所以只能根据实际需要选择其中的一部分。

例如采用UDP协议而不是功能相对齐全但协议内容过于庞大的TCP/IP协议来传输数据,传输中基本上不使用数据压缩协议,跳过单片机作为服务器端时的密码验证过程,省略IPX、AppleTalk等网络层协议等。

也就是说,本文的单片机PPP协议,事实上只包含了从PPP连接的建立到实现简单的数据传输所必需的协议,而不包括PPP协议的所有功能。

这种协议的取舍是由硬件的客观限制以及实际的应用需要共同决定的。

4单片机PPP协议PPP连接的建立

建立后的单片机PPP连接状态如图2所示。

其中,C51系统是已经植入PPP协议的51系列单片机,电话线部分也可以是某个网络的一部分,甚至是Internet。

单片机PPP协议流程图如图3所示。

PPP连接的建立主要经过三个阶段,分别是LCP协商、密码认证以及网络层协议配置。

4.1LCP处理阶段

首先,第一个LCP数据包被服务器端发送后,从服务器端返回一个PPP拒绝包给除密码认证外的所有选项,接着服务器端强制认证协议进行协商(先前来自否定帧的PAP和CHAP都被发送)。

随后服务器端返回一个拒绝包给CHAP,本文用PAP来代替。

然后服务器端认同并返回一个新的请求,这时候需要进行PAP。

接下去对PAP进行确认,系统对字符映射的丢弃进行协商。

最后所有控制特性被服务器端同意丢弃。

下面是由服务器发送的一段LCP建立连接的字符串:

0000:

7EFF03C0210171002B0104064005063A5D8BB4020600

0016:

000000110406401704006400020304C0231309030800

002C:

030A2C2C957F7E

对它进行分析如表3。

4.2PAP处理阶段

首先,系统发送PAP数据包给服务器端,然后服务器端通过用户ID和密码验证。

PAP密码验证协议在RFC1334中有详细定义,主要是为拨号网络中提供密码保护。

这个选项是可选的。

在本应用软件中,强制单片机和PC协商的选项中,PC要求密码验证,单片机端不要求。

所以如果PC机作为服务器,单片机需要发送用户名和密码;如果单片机作服务器,则没有密码验证的要求。

PAP的格式如图4所示。

下面是单片机发送PAP的数据包:

7EFF03C0230106000C037A776D037A776D…

解析如表4所示。

单片机向PC机发送PAP数据包是在PC机发送对单片机LCP选项的确认之后、PC机向单片机发送IPCP请求之前。

4.3IPCP处理阶段

IPCP是用来设置PPP连接中的网络环境,包括IP地址、IP压缩协议、DNS服务器地址等都是通过IPCP来协商的。

首先服务器端发送请求进行IPCP协商,然后系统返回一个拒绝包给除IP地址外的所有操作。

由于先前的发送被拒绝,服务器端发送一个回复,只包含IP地址。

此时,系统相当于服务器端的IP地址认证,然后由请求信息和IP地址来完成三路握手协议。

接着服务器端返回一个包含预先指派IP地址的拒绝包。

此时连接建立并拥有一个指定的IP地址。

IPCP帧的格式与LCP也是类似的:

一字节的代码,然后是标志,长度,选项。

当IP协议的选项配置完,就可以开始通讯了。

IPCP的详细描述在RFC1332中。

连接建立后,PPP将在原有协议的基础上调用网络协议UDP(UserDatagramProtocol)和ICMP(InternetControlMessagesProtocol)等。

有关用户数据包协议UDP的详细资料可参看RFC882、RFC883文档;Internet信息控制协议ICMP的详细资料可参看文档RFC792。

GPRS数据传输设计

(一)摘要(原创)

 

摘   要

移动通信和互联网的飞速发展使得人类自由通信的梦想接近实现,而这两者的结合也为传统产业的发展提供了新的机遇。

本文研究了移动通信的最新数字通信技术GPRS,并将该技术应用到传统的数据采集与监控系统中。

两者的结合为移动数字通信的发展提供了良好的市场,也为数据采集与监控系统提出了一个新的实现方法。

本文采用理论与实践相结合的方法,在对GPRS技术和互联网主要通信协议PPP、TCP/IP协议进行深入研究的基础上,设计了一个通用GPRS数字传输模块。

该模块具有GPRS网络和短信两种工作方式,并支持TCP和UDP两种通信协议。

利用该GPRS数字传输模块实现了超声波流量计数据采集与监控系统。

该系统包括采集终端、通信服务器、数据库服务器以及用户终端。

系统通信部分采用TCP协议,各数据终端通过GPRS数字传输模块与服务器建立连接,用户终端提供列表和图形等多种数据显示方式,独立的通信服务器和数据库服务器则为系统提供了足够的伸缩度。

本文讨论了GPRS和PPP、TCP/IP协议的工作原理,提出了一个通用数据采集与监控系统协议,实现了一个GPRS通信模块和超声波流量计数据采集与监控系统。

这些内容可以为嵌入式PPP、TCP/IP协议的实现提供参考,并为终端分布广泛的数据采集与监控系统的设计和实现提供新的思路。

随着第三代移动通信系统的到来,移动数据通信将具有更高的通信速率、更广的覆盖面积,使用移动通信技术的数据采集与监控系统将可以更快、更好的传输更多的数据,所以,这种系统具有广阔的发展空间。

 关键字:

通用无线分组业务,数据采集与监控系统,点对点通信协议,传输控制协议

GPRS数据传输设计

(二)GPRS原理1(原创)

电子技术2008-01-2522:

42:

58阅读725评论0  字号:

大中小 订阅

第二章GPRS原理

GPRS系统是在GSM网络的基础上发展起来的数据传输网络,为了支持数据传输,GPRS在GSM系统中增加了很多支持节点。

要使用GPRS进行数据传输,必须掌握GPRS的工作过程。

本章主要介绍GPRS系统结构及数据传输过程,首先介绍了移动数据网络的发展过程,其次介绍了GPRS系统的结构,接着讨论了GPRS数据传输的过程,最后分析了GPRS系统存在的问题以及向3G系统过渡的过程。

2.1移动数据网络发展过程

公共数据网是伴随着移动通信网发展起来的,目前投入商用的移动数据网络已经经历了两个发展阶段[13-15]。

20世纪90年代中期的叠加在模拟蜂窝网AMPS(AdvacedMobilePhoneSystem,高级移动电话系统)上的第一代公共数据网称为蜂窝数字分组数据(CellularDigitalPacketData,CDPD),该网络利用AMPS中的语音空闲信道传输分组数据,但是随着第二代数字蜂窝网GSM的快速发展,CDPD在我国并没有得到大范围的推广。

2000年初,在GSM网的基础上建立了GPRS,GSM/GPRS是GSM网络的升级,成为继第一代公共移动数据网AMPS/CDPD之后的第二代移动数据网络,同时也是第二代数字移动通信网向第三代演进的重要阶段。

CDPD网络叠加在AMPS上,采用数字调制技术(GMSK),提供分组数据增值业务。

CDPD分组传送方式有两种:

固定的专用信道和调频方式。

1992年4月美国的IBM和8个最大的蜂窝电话运营公司宣布联合研发CDPD系统,他们模拟网覆盖占美国的95%地区。

到1999年下半年,美国CDPD网覆盖地区人口达1.4亿,占总人口的55%。

我国在1997年在北京、上海、广州等6个城市建立了CDPD网络。

模拟蜂窝电话网虽然取得了很大成功,但也暴露了一些问题。

例如,频谱利用率低,移动设备复杂,费用较贵,业务种类受限制以及通话易被窃听等,最主要的问题是其容量已不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1