综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章单片机正文
 
基于PPP协议单片机拔号上网的设计与实现
发布日期:2005-12-18 作者:谢林枫 来源:单片机与嵌入式系统应用

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

    关键词:单片机 协议 TCP/IP 数据包

引言

20 世纪90年代,以因特网为代表的计算机网络通信技术的发展和应用取得了前所未有的突破和成功,单片机上网技术在生活和现代建设的各方面的应用和研究随之成为当今一个热门话题。8位、16位单睡机的因为其较好的性价比,在测控领域仍然占据着重要地址。这些单片机的RAM、ROM一般都很小,而网络协议通常嵌入在操作系统中,无法把庞大的操作系统直接安装在这样的单片机中。所以,要实现上述单片机通过拔号直接连上因特网,需要考虑的主要技术就是如何在单片机上嵌入能符号需要的经过简化的网络协议。这就是本文所要讨论的主题。

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

一、PPP协议简介

IETF 成立了一个小组,推出了点到点线路的数据链路层协议,并成为正式的因特网标准。这项工作定义的PPP(Point-to-Point Protocol),即点到点协议,并以RFC文件RFC1661,后来以RFC1662和RFC1663进一步明确下来。PPP处理错误检测,支持多种协议,在连接时钟允许商议IP地址,允许身份验证,以及在SLIP上所做的许多其他改进。虽然许多因特网服务提供者仍支持SLIP和PPP,但未来显然属于PPP,不管是拨号线路,还是租用路由器与路由器的线路都是如此。

    PPP成就了3件事:

(1)明确地划分出一帧的尾部和下一帧的头部的成帧方式。这种帧格式也处理错误检测工作。

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

(3)用独立于所使用的网络层协议的方法来商议使用网络层的哪些选项;对于每个所支持的网络层来说,所选择的方法有不同的网络控制协议NCP(Network Control Protocol)。NCP在因特网中(TCP/IP协议)为IPCP。

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


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

1.概述

本方案选用的单片机是ADAM5510。它是台湾ADVANTECH公司推出的一种功能较强、价位适中的单片机,具有80188-40、16-bit单片机,RS-232、RS-485口各一个,还有一个编程口(ADAVANTECH公司为5510系列单片机开发了同普通的Turbo C界面很相似的集成开发环境,这种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链路配置包,用于建立和配置链路,包括Configure Ack、Configure Nak、Configure Request、Configure Reject;b链路结束包,用于结束一个链路,包括Terminate Request、Terminate Ack;c链路维修包,用于管理和调试一个链路,包括Code Reject、Protocol Reject、Echo Request、Echo Reply、Discard Request。LCP包的选项最常见的有:1 Maximum Receive Unit、2 Async Control Character Map、3 Authectication Protocol、7 Protocol Field Compression、8 Address and Control Field Compression。

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位以上的单片机上运行。我们在软件只需要3K B(字节的ROM即可运行。在接收数据的目的端,PC机上安装了Netxray 3.0软件,对测试程序的结果进行测试,验证出最终在目的端接收到的数据就是我们在源端所发送的数据,而且所有的数据包都符合TCP/IP规范。


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
一种用于嵌入式系统的可变长缓冲区设计及其实现 (10-17)
智能楼宇系统中的软件化网络视频监控服务器 (10-24)
基于AT91R40008的嵌入式GPRS传输终端的设计与实现 (10-30)
基于MMC2107的网络接口设计与实现 (11-02)
基于嵌入式web服务器的UPS监测系统 (10-16)
LabView实现远程数据采集与传输 (10-06)
基于FPGA的IPV6数据包的拆装实现 (06-08)
以16位单片机实现信息家电连接internet的解决方案 (10-02)
嵌入式TCPIP协议的分析与研究 (10-02)
网络化智能传感器中以太网接口设计 (11-10)
基于 cOSⅡ操作系统的嵌入式网络服务器的设计与实现 (11-14)
基于FPGA片上PowerPC和VxWorks的TCP/IP通信 (12-12)
嵌入式系统以太网接口的设计 (12-24)
POWERPC 860T实现多以太网口通信 (12-27)
基于TCP/IP的多线程通信及其在远程监控系统中的应用 (12-10)
基于Internet的网络监控信息系统 (12-07)
单片机图像采集与网络传输 (11-22)
基于Linux的TCP/IP协议栈安全性研究 (11-25)
嵌入式系统以太网接口的设计 (11-30)
家庭网络中的嵌入式Internet方案 (01-01)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号