基于TCP/lP嵌入式网关的IP地址远程设置

2007-03-09 19:03:27来源: 互联网 关键字:嵌入式  网关  ip地址  地址
摘要 提出一种全新的对嵌入式网关IP地址等网络参数的设置方案及其具体实现方法。该方案通过在数据链路层架构协议,在网络底层和嵌入式网关通信,既回避了在传输层之上通信必须知道IP地址和端口号的矛盾,又实现了网络化设置和管理的目的。采用Winpcap开发包编写服务嚣端软件,嵌入式网关添加必要的协议解析和服务器协同工作,真正建立一个快捷、便利的嵌入式网关参数设置的网络化环境。 关键词 嵌入式系统 以太网 IP地址 MAC地址 远程设置 引 言 近年来,人们都把TCP/IP协议栈作必要裁减后移植到8位或16位微处理器上,完成嵌入式异型网关的构建(如北京英贝多EM2002系列网关,海华信网络通等),从而使不同类型的数据包可以通过透明传输接入到现有的IP网络,自此开辟了网络测控的新纪元。 嵌入式网关的运行必然遇到IP地址的设置问题。传统的方案是在设备出厂前直接烧写在Flash中,或利用串口本地设置,或在已知IP的前提下利用以太网口设置。上述方案繁琐和不灵活,希望有一种灵活、便捷、全新的IP设置方案。通过对网络各层协议的分析,实现一种在数据链路层完成对嵌入式网关IP远程设置方案。该方案的优点集中表现在出厂无须固化IP、远程动态设置、穿透子网、集中管理等。 1 技术对比 目前,实现嵌入式网关的设置模式主要有图l所示的两种:一是本地化,二是网络化,但具体实现方法不同。为了描述方便,把用于设置的PC机定义为上位机,嵌入式网关定义为下位机。 (1)直接烧写法 直接烧写是在程序中给定1P、MAC地址端口号等参数,编译后烧写在Flash中。该方法明显不够灵活,每次修改都须重新编译、重新下载。 (2)串口法 串口法是通过串口通信修改存储在EEPROM中的IP地址等网络参数。该方案较前一种有一定的灵活性,但由于RS 232的传输距离和网络扩展难的限制,往往只能应用在一对一的本地设置 (3)已知lP远程修改法 该方法可以达到网络化管理的目的,但设备须在出厂前一一预设不同的IP地址才能完成建立在传输层之上的网络通信。一般此时设置的IP不满足具体网络环境的要求,即意味着此次设置是一次不必要的重复劳动。 综合上述方案的优缺点,提出在数据链路层架构协议,在网络底层完成数据通信的方案,弥补了出厂前必须固化IP的不足,实现了在项目实施后统一对设备网络化管理。该方案的优点还表现在由于其回避TCP/IP包,这样在一个节点可修改位于不同子网中的任意嵌入式网关的IP地址。该方案的实质是省去了TCP、IP报头,直接根据MAC地址完成目标主机的识别和通信。 2 实现原理 2.1 数据链路层帧格式的分析 由于网络设备运行于Ethernet(以太网),所以这里所涉及的数据链路层协议是指Ethernet的数据链路层协议。IEEE 802项目将数据链路层分为LLc(逻辑链路控制)层和MAC(介质访问控制)层。LLC层包含数据帧中和终端用户相关的部分,如逻辑地址、控制信息和数据;MAC层解决了共享介质的竞争问题,包含同步、标识、流量和差错控制。IEEE802.3制定了支持LAN标准CSMA/CD访问控制模式的Ethernet标准,其帧格式下: 2.2 帧格式的定义 通过对数据链路层帧格式的分析,不难发现在数据链路层包含了能惟一标识一台主机的MAC地址。不需要ARP协议做IP和MAC地址映射,进而实现未知目的IP的链路层通信。 为了满足实现对嵌人式网关的远程设置要求,可根据Ethernet协议标准定义帧格式,且命名为RSF帧(Remote Set Frame): 目的MAC地址,6字节; 源MAC地址,6字节; 帧类型(RSF=0801 IP=0800 ARP=0806 RARF=8035),2字节; OP操作选项(RSF query=01,RSF setIp=02,RSFreplyr=03),2字节; 目的port,2字节; 发送端MAC地址,6字节; 发送端IP地址,4字节; 目的MAC地址,6字节; 目的IP地址,4字节; 设置结果,1字节。 该帧格式的定义类似于TCP/IP协议栈中的ARP协议帧,包含了以太网头14个字节。帧类型,在该字段802项目定义的有效长的值与以太网的有效类型值无一相同,这样可以区分这两种帧的格式,这里设定该帧类型为0801,以区别于已定义的帧类型;OP操作码,RSF query=01表示服务器发送的数据包用于查询网络中的嵌入式网络设备的MAc地址,RsF setlp=02表示服务器发送的数据包用于设置嵌入式网络设备的IP地址,RsF reply=03用于设置信息的返回;端口号是目的端预设置的端口号:剩下的20字节为发送端和目的端的IP和MAC地址。 3 具体实现 根据上述帧格式的定义和图2所示的系统流程,分别在上位机和下位机添加相应的接口和功能模块来实现。 上位机发出查询下位机MAc地址的请求指令,下位机接收后响应请求,返回本地MAC地址;上位机为查询到的不同MAc地址分配不同的IP地址之后发送设置IP请求;下位机接收后响应请求,并截取数据包中的信息来完成本地设置;最后上位机根据设置返回的状态决定是否重新设置。其中给查询到的MAc地址分配相应的IP地址,分为手工和自动方法。手工方法是由用户根据自己的需要设置IP地址;自动方法是根据ip pool(ip池)原理来实现IP的自动分配。 3.1上位机部分 由于该方案旨在利用数据链路层协议来解决对嵌入式网关的IP远程设置问题,就必然要求上位机编程要绕过位于第4层与第5层问的套接字编程接口(socket)。幸运的是,位于第2与第3层间的NDIs(网络驱动器接口)提供了访问网络底层的能力。其优点在于屏蔽了下层各种网卡的差别,为上层提供了一个完备NDIS库,可以完成原始数据包的捕获,数据包的过滤,以及原始数据包的发送等强大的功能。另外,意大利的Fulvio Riss0、LorisDegioanni等专家开发了一个Windows平台下免费公共的网络访问系统,并提供Winpcap开发包,方便地提供了一个访问网络底层的接口。 寻找到访问网络底层的编程接口后,只需要定义相应的数据包结构,并调用库中发包函数就能完成原始数据包的接收和发送功能。这里只给出关键的数据结构的定义代码。 以太网头的数据结构: Typedef structtag DLCHeader { unsigned char DesMAC[6]; //以太网目的地址 unsigned char srcMAC[6]; //以太网源地址 unsigned short Etherype; //帧类型 ); RSF帧结构: typedef struct tagRSFFrame {unsigned short opcode; //操作码 unsigned short Prot //目标端口号 unsigned char Send_HW_Addr[6];//发送端以太网地址 unsigned long Send_Prot_Addr; //发送端IP地址 unsigned char Targ_HW_Addr[6];//目的以太网地址 unsigned long Targ_Prot_Addr; //目的lP地址 unsigned char ReturnValue //设置结果 }; RSF包结构: typedef struct tagRSFPacket{ DLCHEADER dlcHeader; RSFFRAME rsfFrame; }; 3.2 下位机部分 嵌入式网关的实现关键在于TCP/IP协议栈的实现。目前主要有TCP/IP的软移植(如ulP TCP/IP的移植)、硬移植(主要由专业芯片实现)和嵌入式系统自带TCP/IP协议栈。如果是利用嵌入式系统来实现嵌人式网关,就必须对操作系统内核驱动作相应的改动。这里只重点介绍TCP/IP在微处理器上软移植的情况。在这种情况,只要在数据链路层模块中添加帧的识别和处理功能模块,就可以获得数据帧中的IP地址等数据,并对本地IP进行设置。具体设置是调用对EEPROM的读写程序模块来完成的,关键代码如下: void eth_rcve(UCHAR xdata*inbuf)//数据链路层接收模块 { …… switch(etb->frame-type) { …… case RSF_PACKET://在原协议栈中添加自定义协议调用修改本地IP模块; break; case ARP_PACKET:调用ARP处理模块; break; …… } } void eth_send(UCHAR xdata*outbuf,UCHAR*hwaddr,UINT ptype,UINT Ien)//数据链路层发送模块 {……} 结语 通用计算机数据链路层自定义帧的实现,可应用于解决嵌入式网络设备的远程设置问题,改进了过去嵌入式网络设备IP地址使用直接烧写或串口本地配置等方法。该方案的特点是绕开了套接字编程,直接将上位机与下位机的通信建立在数据链路层的基础之上。相对于依靠上层协议通信,在数据链路层直接通信,可以避开上层协议的约束,从而达到对网络数据更直接和灵活处理的目的。

关键字:嵌入式  网关  ip地址  地址

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200703/2481.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:电信终端FSK数据通信的低功耗实现
下一篇:高速以太网CRC校验的实现

论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
嵌入式
网关
ip地址
地址

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved