




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)基于mcu的嵌入式internet技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空1 二业学院硕士学位论文 摘要 随着后p c 时代的到来,嵌入式系统的应用范围日益广泛,同时i n t e m e t 技术的应 用也越来越普及。如何将i n t e m e t 资源应用到嵌入式设备中,使人们可以方便地实现对 嵌入式设备的远程监测和控制,已成为当今r r 界的热门话题。 嵌入式i n t e m e t 技术就是嵌入式计算机技术与i n t e m e t 结合的产物。它的主要目的就 是解决设备与i n t e r n e t 的互联问题。只要实现了嵌入式系统接入i n t e m e t ,就可以方便、 低廉地将信息传送到世界上的任何地方。 本文讨论了基于低端m c u 的嵌入式i n t e m e t 技术。首先介绍了嵌入式i n t e m e t 的基 础知识,然后根据嵌入式设备的特点,对标准t c p i p 协议进行了合理的简化,实现了 符合8 位单片机的嵌入式t c p i p 协议栈。协议栈实现的协议包括:坤( 网际协议) 、t c p ( 传 输控制协议) 、i c m p ( i n t e m e t 控制报文协议) 和a r e ( 地址解析协议) 。 在协议栈的基础上,实现了简单的嵌入式w e b 服务器。本文介绍了嵌入式w e b 服 务器的具体实现过程。该w e b 服务器采用单片机c 8 0 5 1 f 0 2 0 作为微控制器,通过以太 网控制芯片c p 2 2 0 0 与i n t e m e t 相连。还详细介绍了系统实现的硬件结构以及c p 2 2 0 0 驱 动程序的设计。 本文所介绍的w e b 服务器配置成功后,成为网络中有独立口地址的一个节点,网 络中的任意一台具有浏览器功能的网络设备或p c 机都可以访问存储在本系统中的超文 本页面。通过对页面上的控制按钮进行直接操作,可以实现m c u 与网页的动态交互功 能。 关键词:嵌入式t c p i p ;嵌入式w e b 服务器;m c u ;c p 2 2 0 0 沈阳航空工业学院硕士学位论文 a b s t r a e t w i t ht h ea r r i v a lo fp o s t - p ce r a , t h ee m b e d d e ds y s t e mi sa p p l i e dm o r e e x t e n s i v e l yd a yb y d a y a n dw i t ht h ea p p l i a n c eo ft h ei n t e m e tg r o w i n gi np o p u l a r i t y , i tb e c o m e sah o ti s s u ei nt h e i tw o r l dh o wt oa d dt h ei n t e r n e tt oe m b e d d e ds y s t e mt oh e l pp e o p l ec o n t r o la n dm o n i t o r r e m o t ee m b e d d e dd e v i c e sc o n v e n i e m y e m b e d d e di n t e m e tt e c h n o l o g yi st h ep r o d u c to fe m b e d d e ds y s t e ma n dt h ei n t e m e t t e c h n o l o g y i ta i m sa tr e s o l v i n gt h ec o n n e c t i o nb e t w e e nt h ei n t e m e ta n de m b e d d e dd e v i c e s i f e m b e d d e dd e v i c e sa n dt h ei n t e m e tw e r ec o n n e c t e d ,i n f o r m a t i o nc o u l db es e n tt oa n y w h e r eo f t h ew o r l di m m e d i a t e l ya n dc o n v e n i e n t l y t h i sp a p e ri n t r o d u c e st h ee m b e d d e di n t e m e tt e c h n o l o g yb a s e do nl o w e n dm c u f i r s t l y , t h eb a s i ck n o w l e d g eo fe m b e d d e di n t e r n e ti si n t r o d u c e d a n dt h e nt h ee m b e d d e dt c p i p s t a c ki se x p a n d e d ,w h i c hi ss i m p l i f i e df r o ms t a n d a r dt c p i pi na c c o r d a n c ew i t ht h e c h a r a c t e r i s t i c so fe m b e d d e dd e v i c e s t h ee m b e d d e dt c p i ps t a c kd e s c r i b e di nt h ep a p e ri s s u i t a b l ef o r8 - b i tm c u t h es t a c ki n c l u d e sm t c p , i c m pa n d a r p t h ee m b e d d e dw e bs e r v e ri sd i s c u s s e do nt l l eb a s i so fe m b e d d e dt c p i ps t a c k t h e i m p l e m e n t a t i o nt e c h n i q u e so fa ne m b e d d e dw e bs e r v e ra r ei n t r o d u c e di nd e t a i l t h eh a r d w a m o ft h ee m b e d d e dw e bs e r v e ri sb a s e do i lc 8 0 5 1 f 0 2 0m c ua n de t h e m e tc o n t r o l l e rc p 2 2 0 0 t h ec o n f i g u r a t i o no ft h eh a r d w a r ea n dt h ed r i v e rf o rc p 2 2 0 0a r ea l s oe x p l a i n e di nd e t a i l t h es y s t e mf u n c t i o n sa san o d e 、i t l li n d e p e n d e n ti pa d d r e s si nt h ei n t e m e t a n da n y n e t w o r kd e v i c e so rp c si nt h ei n t e m e tr u n n i n gaw e bb r o w s e rc a l la c c e s st h ew e bp a g e s s t o r e di nt h es y s t e m m e a n w h i l e ,t h ei n f o r m a t i o nc a nb ee x c h a n g e db e t w e e nt h ew e bs e r v e r a n dt h er e m o t ed e v i c et h r o u g ht h ec o n t r o lb u t t o no nt h ew e b p a g e k e y w o r d s :e m b e d d e dt c p i p ;e m b e d d e dw e bs e r v e r ;m c u ;c p 2 2 0 0 原创性声明 本人郑重声明:所呈交的学位论文是本人在导师的指导下独 立完成的。除文中已经注明引用的内容外,本论文不包含其他个 人或集体已经发表或撰写过的作品或成果,也不包含本人为获得 其他学位而使用过的成果。对本文研究做出重要贡献的个人或集 体均已在论文中进行了说明并表示谢意。本声明的法律后果由本 人承担。 论文作者签名:砂轧訇 灿7 年。1 月,日 版权授权说明 本人授权学校“有权保留送交学位论文的原件,允许学位论文被 查阅和借阅,学校可以公布学位论文的全部或部分内容,可以影印、 缩印或其他复制手段保存学位论文”;愿意将本人学位论文电子版提交 给研究生部指定授权单位收录和使用。学校必须严格按照授权对论文 进行处理,不得超越授权对毕业论文进行任意处置。 授权人:动痧l 萄 炒,) 年。月三厂日 沈阳航空工业学院硕+ 学位论文 第1 章绪论 近年来,随着嵌入式计算机技术的不断发展,嵌入式系统已经深入到人类社会的各 个领域。从军用高科技装备到信息家电,从通信设备到医疗器械,从工业控制到智能仪 表,处处都需要嵌入式技术。人们把这种嵌入式广泛应用的阶段叫“后p c 时代”【1 】o 另一方面,近几年来,i a m m e t 技术越来越深入人心,并广泛应用于我们生活和工 作的方方面面。除了传统的信息检索、电子邮件、远程登录、文件传输等业务外,各种 新应用( 如信息家电、远程医疗、嵌入式w e b 传感器等) 越来越受到人们的关注。 而如何实现无所不在的嵌入式设备与i n t e r a c t 的结合,已成为日后电子信息产品发 展的一大方向。因此,嵌入式i n t e r a c t 在不久的将来必将具有十分广阔的应用前景和市 场。 1 1 嵌入式h t e m n 概述 l 1 1 嵌入式h 细m e t 的概念 嵌入式i n t e r n e t 技术是近几年发展起来的一项新兴概念和技术,它通过为现有嵌入 式系统增加i n t e m e t 接入能力来扩展其功能。一般情况下指设备通过嵌入式模块的方式 接入i n t e m e t ,并以i n t e m e t 为介质实现信息交互的过程,通常又称为非p c 式i n t e r a c t 接入。嵌入式互连的目标是:嵌入式设备工作在以网络为中心的环境中,把“孤立的目 标系统”相互连接起来。为适应嵌入式分布处理的网络需求,嵌入式系统必须配有一种 或多种网络通信接口,使嵌入式处理器不仅能执行传统的控制功能,而且还能执行与连 接i n t e m e t 相关的功能,从而把标准网络技术( 1 娜) 扩展到嵌入式设备中刚。 嵌入式i n t e r a c t 技术主要解决的问题是通过w e b 和嵌入式技术实现从不同子网、不 同物理区域对接入到i n t e m e t 的设备进行监控、诊断、测试、管理及维护等功能,从而 使接入到i n t e r n e t 的各种设备或其它类型的子网具有远程监控、诊断和管理的功能。 嵌入式i n t e r a c t 技术的出现时间并不是很长,但是发展速度却非常之快,新思想不 断涌现,新概念连续推出,新技术层出不穷,新产品不断产生,从底层硬件技术所提供 的解决方案到上层软件所开拓的想象空间,都在不断地推陈出新。随着后p c 时代的到 来,2 1 世纪将是嵌入式i n t e r a c t 的时代。 1 沈阳航空工业学院硕士学位论文 1 1 2 嵌入式i n t e r n e t 的发展现状 嵌入式i n t e m e t 技术的历史虽然不长,但发展却十分迅速。在国外,许多大公司包 括s i e m e n s i n f i n e o n 、e m w a r e 、m i c r o c h i p 、p h i l i p s 和m o t o r o l a 等在内的数十个公司联合 成立了“嵌入式i n t e m e t 联盟”来专门讨论和制订嵌入式i n t e m e t 领域的标准和发 展相关的技术,共同推动这一市场。目前e m w a r e 公司开发的e m i t 技术f 即嵌入式微型 网络技术) 、c m x 公司的c m x - m i c r o n e t 技术、n e t s i l i c o n 公司的n e t + w o r k s 技术、 c o n n e c t o n e 公司的i c h i p 技术等都是为嵌入式i n t o r n e t 技术提出的相应解决方案。另外, m i c r o c h i p 公司开发出的i p i c 系列单片机、u b i c o m 公司开发的s c e n i xn 2 0 0 0 i p 3 0 0 0 系 列处理器、以及r a b b i t 半导体公司的r a b b i t 系列处理器也都是针对嵌入式i n t e r n e t 开发 的产品。 在工业控制领域,1 9 9 9 年成立的“工业以太网协会”正在积极致力于工业以 太网现场总线的研究开发,美国o p t 0 2 2 公司采用嵌入式i n t e m e t 技术,研制开发了以 太网i o 系统s n a p 系统,成功应用于工业过程控制、楼宇智能化监控等多项工 程中。此外,惠普公司应用i e e e l 4 5 1 2 标准,生产了具有1 0 b a s e t 接口嵌入式以太网 控制器,运行t ( 珊 协议,应用于传感器、驱动器等现场设备。 在国内,中国计算机学会于1 9 9 9 年6 月举行了“嵌入式系统及产业化在中国发展 前景”研讨会,专家们探讨了嵌入式系统在当今计算机工业中的地位及其网络化问题, 认为下一代网络设备中嵌入式设备将大大增加,7 0 是嵌入式设备。嵌入式系统工业是 专用计算机工业,其目的就是要把一切变得更简单、更方便、更普遍、更适用。目前国 内嵌入式i n t e m e t 技术的研究才刚刚起步。在产品开发方面,北京英贝多公司已经具备 和掌握了嵌入式i n t e m e t 核心技术,实现了嵌入式设备的i n t e m e t 网络化,并进而独立研 发了有自主知识产权的i s o c ( i n t e m e t 片上系统) 芯片,实现了高可靠低成本的嵌入式因 特网接入网关和服务器于一体的e m i s p s o c 产品和技术方案。武汉力源公司推出了专用 网络接口芯片p s 2 0 0 0 。东大新业为解决嵌入式i n t e m e t 设备的接入和控制问题开发出了 w e b i t 系列产品。 1 1 38 位微控制器实现嵌入式i n t e r n e t 接入的主要方案 目前国内外很多厂家都在开展嵌入式i n t o m e t 技术的研究,推出了各种各样的解决 2 沈阳航空工业学院硕士学位论文 方案。各种解决方案都有自己的优缺点和应用范围。由于目前低端m c u 的市场占有率 很大,因此开发基于8 位和1 6 位的嵌入式i n t e r a c t 的解决方案有很大的市场前景。目前 基于8 位微控制器的嵌入式系统接入i n t e r a c t 主要有以下四种方式: ( 1 ) 普通m c u + 网络接口芯片+ 定制t ( 珊哑协议。该方案要求设计者对t c p i p 的各 层协议非常熟悉,编程工作量较大,难度较高。但该方案最为灵活,设计者可以根据系 统的需要对t c p i p 协议中的各部分进行取舍和简化,达到既能满足应用需要,又能占 用最少的硬件资源,使硬件成本最低。嵌入式t c p i p 协议的设计者会面临一些具体的 特殊要求,如代码长度受限、有最低传输率要求或可靠性要求等等,需要很好地加以分 析和折衷。一些m c u 厂商或第三方供应商提供t ( 驯口协议软件包,以口模块的形式 提供各种组件,开发者可以根据自己的需要和系统的硬件资源情况选择所需的组件并作 适当的修改,可以大大加快软件的开发速度。例如,u b i c o m 为其s x 系列m c u 免费提 供了用于实现嵌入式接入的各层协议组件。 ( 2 ) 普通m c u + 网络接口芯片+ 内嵌t c p i p 协议的小型实时操作系统( r t o s ) 。该 方案在硬件结构上与前一方案基本一致,但由于采用了经过测试和验证的t c p i p 协议 组件和实时操作系统,使软件开发工作量主要集中在应用层,而不必过多关心底层协议 的实现。因此该方案对开发者的要求相对较低,开发速度较快,在开发高可靠性的网络 化嵌入式系统时是一种值得推荐的方案。过去提供实时多任务操作系统和专用网络解决 方案的公司,正迅速地在其产品线中增加嵌入式i n t e r a c t 接入技术和嵌入式网络服务器 技术。例如,c m x 的c m x - m i c r o n e t 是专门为8 位和1 6 位微控制器优化的t c p i p 协 议栈,并且以标准c 语言源码的形式提供,很容易移植到一款新型微控制器中,软件设 计者也可以根据应用系统的需要选择在固件中必须包含的协议模型。u b i c o m 在i p 2 0 0 0 系列的软件开发包中提供了r t o s 和t c p i p 协议。但这种方案由于采用了实时操作系 统,协议栈也较为完整,所需要的硬件资源开销也相应较大,系统的整体成本也较高。 ( 3 ) 普通m c u + 专用的t c p i p 协议芯片或模块。该方案的软、硬件设计均较前两种 方案简单,对m c u 的硬件资源需求也最低。由于t c i i p 协议芯片或模块是一种独立于 各种微控制器的通用产品,系统开发者用其开发具有网络功能的智能装置时,既不需要 了解复杂的网络软、硬件设计技术,也不需要改原来己成熟的设计,只需增加与t c p i p 协议芯片或模块通信的接口程序即可。因此该方案对开发者的要求更低,软件开发的速 3 沈阳航空t 业学院硕士学位论文 度更快。另外,使用该方案可以大大提高数据传输速度,因此可以在一些多媒体应用中 采用。例如,韩国w 1 z a e t 公司推出一种网络芯片w 3 1 0 0 a ,它通过在硬件中安装t c p i i 协议,为数字装置的高速i n t e m e t 连接提供了一种易于实现的解决方案;类似还有基于 i c h i p 技术和i g e a d y 技术的各种网络芯片。该方案的主要缺点是目前t c p i p 协议芯片 价格较高,导致系统硬件成本较高,对于大批量生产的网络产品难以承受。 “) 内置网络接口芯片和t c p i p 协议的片上系统( s o c ) 型m c u 芯片。s o c 是未来电 子产品设计的方向,设计和生产技术也越来越成熟,因此该方案是未来网络产品设计的 发展趋势。该方案将网络接口部件和t c p i p 协议栈,甚至实时操作系统都集成在一个 芯片上,使网络产品的硬件和软件设计都变得较为简单,大批量生产时,硬件成本较低 眇l 。 综上所述,目前国内外很多厂家都在开展嵌入式i n t e m e t 技术的研究,推出了各种 各样的解决方案。我们很难预测到哪种方案能成为世界公认的标准,但是可以肯定的是, 嵌入式i n t e r n e t 应用将是一个巨大而有潜力的市场。 1 2 课题研究的背景、目标及内容 1 2 1 课题研究的背景及目标 目前世界上不少国家的科研机构和各大公司都在进行嵌入式i n t e r n e t 技术的研究。 目前各种嵌入式系统中除部分比较高档的3 2 位处理器以外,大量存在的是8 位或1 6 位 低端嵌入式系统,因此,在低端m c u 上实现联网功能尤为重要,但是这些嵌入式系统 的计算资源和存储资源都十分有限,在这些嵌入式系统中实现完整的t c p i p 协议栈将 占用大量的系统资源,或者根本不可能。因此,为了能够使嵌入式设备可以在i n t e m e t 上通信,设计一个嵌入式t c p i p 协议栈是必须的。 目前,嵌入式t c p i p 协议栈研究方面存在以下几点不足:n 没有标准的实现形式 可以遵循。协议栈的实现一般都和特定的嵌入式i n t e m e t 应用相联系,即协议栈没有实 现与应用的分离。嵌入式i n t e m e t 应用设计人员如果想进行嵌入式i n t e m e t 应用的设计, 他必须把标准的t c p i p 协议栈的简化和嵌入式i n t e m e t 应用同时加以考虑和实现,不像 在p c 机上开发i n t e m e t 网络程序,有现成的网络应用程序接口可以使用,因而嵌入式 t c p i p 协议栈也就没有标准的实现形式可以遵循。劲有些协议栈用函数库的形式实现 4 沈阳航空工业学院硕士学位论文 了与应用的分离,但缺乏可移植性、可配置性、易于使用等特点。 本课题主要研究如何结合嵌入式m e t 应用以及嵌入式系统的软硬件系统环境, 设计并实现一种协议栈,同时具有占用系统资源少、易于移植、接口简单易用等特点, 并在此基础上对嵌入式w e b 服务器进行一定的研究,实现一简单的嵌入式w e b 服务器。 1 2 2 课题主要研究内容及工作 本文分析了国内外嵌入式h l m m e t 的研究方案,在查阅和消化大量资料的基础上, 根据实际情况实现了将低端m c u 和通用的网络接口控制芯片结合起来构建嵌入式 h l t e m e t 系统的方案。在充分理解微控制器及网络芯片后,对系统整体设计及硬件原理 进行了具体的设计分析,并详细分析了网络接口控制器驱动程序和基于低端m c u 的嵌 入式t c i i p 协议的设计。同时在此协议栈的基础上实现了壬r 兀p 协议,最终实现了嵌 入式w e b 服务器。 本方案是要自行实现复杂t c p i p 协议,研发周期比较长,要求对t i 卫佃协议原理、 网卡驱动程序、相关网络硬件和肌甲协议有较深入的理解。但是,由于是自己实现通 信协议,就可以针对不同的系统采用不同的协议,这种灵活性非常符合嵌入式系统可裁 减和量身定做的特点。与其它方案相比,具有成本低,市场前景大等特点,使其具有经 济上的优势。本方案实现的这种嵌入式i l i t c m e t 系统,可根据一些具体的应用,开发出 专用的接入h m m e t 的通信产品供用户使用。因此,此系统可以作下一步的研究开发的 平台或基础,具有较好的研发延续性。 本文主要进行了以下研究工作: ( 1 ) 提出系统的总体设计方案。 ( 2 ) 设计并实现了嵌入式胁e t 技术的关键嵌入式t c p i p 协议栈。根据低端 普通处理器的特点设计了一套适用于低端m c u 的嵌入式l m e t 专用的嵌入式t c p i p 协议栈,实现了一些基本的功能。具体的协议包括a r p 协议、口协议、i c m p 协议、 t c p 协议等。 ( 3 ) 网络接口控制器( c ! p 2 2 ) 驱动程序的编写。 ( 4 ) 在嵌入式t c p i p 协议栈的基础上实现h 兀甲协议,构建嵌入式w e b 服务器。 5 沈阳航空工业学院硕士学位论文 l 论文结构 本文共以六章的篇幅加以阐述。 第一章是绪论,主要介绍了嵌入式i n t e m e t 的基本知识以及目前8 位微控制器实现 嵌入式i n t e m e t 接入的主要方案,同时也概要地介绍了课题研究的背景以及研究内容。 第二章结合课题重点,详细阐述了课题的关键技术嵌入式t c p i p 协议栈的具 体实现。在结合嵌入式具体应用的前提下对标准t c p a p 协议进行合理的简化。其中包 括a r p 协议、口协议、i c m p 协议和t c p 协议;并阐述了应用层协议唧协议 的实现方式。 第三章介绍了嵌入式w e b 服务器的系统设计方案以及要实现的目标,同时介绍了 w e b 服务器的概要设计。 第四章详细介绍了w e b 服务器的具体实现。 第五章介绍了系统硬件电路的设计及实现,包括各个主要芯片的资源分配结构,同 时还详细地阐述了c p 2 2 0 0 驱动程序的设计。 6 沈阳航空t 业学院硕士学位论文 第2 章嵌入式t c p i p 协议栈的设计与实现 在网络应用日益普遍的今天,越来越多的嵌入式设备实现了网络化。t c p i p 协议是 一种目前被广泛采用的网络协议。嵌入式i n t e r n e t 的技术核心是在嵌入式系统中部分或 完整地实现t c p i p 协议。由于t c p i p 协议比较复杂,而目前嵌入式系统中大量应用低 端m c u ,受内存和速度限制,有必要将t c p i p 协议进行简化。本章具体分析了嵌入式 删口协议栈的实现及其简化。本文在设计t c p i p 协议栈时是将协议栈分成模块实现 的,每个协议就是一个模块,下面几节就具体介绍了各个模块,即各个协议的设计及实 现过程。 2 1a r p 协议的设计及实现 2 1 1a i 啦概述 当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据4 8 位的以太网地址来确定目的接口的。a r p ( 地址解析协议) 就是专门为口地址到对应的 硬件地址之间提供动态映射。 a r p 协议的工作过程如下:当主机产生一口数据报,需将该数据报发往目的主机 时,它必须把3 2 位的口地址变换成4 8 位的以太网地址,实现从逻辑i n t e r a c t 地址到对 应的物理硬件地址的翻译。首先,a r p 发送一个称为a r p 请求的以太网数据帧给以太 网上的所有主机,这一过程称为广播。a r p 请求数据帧中包含目的主机的口地址。然 后,目的主机的a r p 层收到这份广播后,识别出这是发送端在询问它的硬件地址,于 是发送一个a r p 应答。这个a r p 应答包含口地址及对应的硬件地址。最后,发送主机 收到a r p 应答后,就可以发送坤数据报给目的主机了。a r p 请求及a r p 应答的数 据帧格式如图2 1 所示。 i以太网 以太网i 帧 硬件协议发送端l 发送端目的以太网目的 1 目的地址源地址类型类型类型 操作 以太网地址li p 地址地址i p 地址 66222l126464 h 一以太网首部_ + i _ 一2 8 字节a r p 请求应答 图2 1 以太网的a r p 请求或应答的数据帧格式 - 7 沈阳航空工业学院硕士学位论文 以太网报头中的前两个字段是以太网的目的地址和源地址。目的地址为全1 的特殊 地址是广播地址。 两个字节长的以太网帧类型表示后面数据的类型。对于a r p 请求或应答来说,该 字段的值为o 6 h 。 硬件类型字段表示硬件地址的类型。它的值为0 0 0 i h 即表示以太网地址。协议类型 字段表示要映射的协议地址类型。它的值为0 8 0 0 h 即表示口地址。它的值与包含口数 据报的以太网数据帧中的类型字段的值相同。 接下来两个1 字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议 地址的长度,以字节为单位。对于以太网上口地址的a r p 请求和应答来说,它们的值 分别为6 和4 。 操作字段指出四种操作类型,它们是a r p 请求( 值为1 ) 、a r p 应答( 值为2 ) 、r a r p 请求( 值为3 ) 、r a r e 应答( 值为4 ) 。这个字段是必须的,因为a r p 请求和a r p 应答的 帧类型字段值是相同的。在本文所设计的系统中,只支持两种类型的操作:a r p 请求和 a r p 应答。 接下来的四个字段是发送端的以太网地址、发送端的口地址、目的端的以太网地 址和目的端的口地址。 对于一个a r p 请求来说,除目的端硬件地址以外的所有其它字段都有填充值。当 系统收到一份目的端为本机的a r e 请求报文后,它就把硬件地址填进去,然后用两个 目的端地址分别替换两个发送端地址,并把操作字段置为2 ,最后把它发送出去1 2 , 1 0 l 。 2 1 2a r p 数据结构设计 ( 1 ) a r p 高速缓存 在上层协议需要对外进行通信的时候,系统会首先在本地的高速缓存中来寻找通信 目的口所对应m a c 地址,如果没有找到,则调用a r p 请求协议得到目的m a c 地址。 建立一个大的高速缓存可以减少a r p 请求的调用次数,从而加快通信速度,但同时一 个大的高速缓存会增加系统的存储空间。究竟选择多大的高速缓存,可以根据系统的运 算速度及存储空间来综合考虑。建立高速缓存另外的一个问题是维护问题,高速缓存中 的表项一般都要设置超时值,这也需要占用一定的系统资源。 一8 一 沈阳航空工业学院硕士学位论文 在通用计算机系统中,a r p 高速缓存一般设计成双向数据链的形式,这样整个缓存 可以方便地动态增减。但是这种非线性存储的链表式缓存结构,在进行表项匹配查找时 比较费时,不适合用于嵌入式系统【1 1 l 。本设计中采用了线性数组形式的a r p 缓存结构, 不同于链表结构的是它在内存中是连续线性存储的,查找速度较快。同时考虑到嵌入式 应用中结点不是很多,即a r e 缓存容量无需太大,所以将a r p 高速缓存设计成固定大 小。 a r p 高速缓存中表项的数据结构如下: t y p e d e fs t r u c t u c h a rs t a t u s ;该表项的状态,指示地址对是否有效 u l o n g i p a d d r ; i e 地址 u c h a r h w a d d r 6 ; ,以太网地址 u c h a rt i m e r ;,生存时间 a r p _ c a c h e ; a r p 高速缓存由状态、生存时间、p 地址、m a c 地址4 个字段组成。状态字段指 示地址对是否有效:0 无效,1 有效;生存时间用于a r p 高速缓存的更新操作;口地址 和m a c 地址字段保存网络口地址和以太网地址的映射。当有新的口地址和m a c 地 址对进入高速缓存时,若此时高速缓存中没有空余的表项,则可以查找状态字段为0 的 表项进行替换,若没有为状态字段为0 的表项,则查找存在时间最久的表项进行替换 1 1 2 - 1 1 3 。 ( 2 ) a r p 数据报结构 t y p e d e fs t r u c t u i n t h a r d w a r e _ t y p e ;,硬件类型,以太网为0 x 0 0 0 1 u i n tp r o t o c o l _ t y p e ;肋议类型,口为0 x 0 8 0 0 u c h a r h w a d d r _ l e n ; 物理地址长度,为0 x 0 6 u c h a r i p a d d rl e n ; i p 地址长度,为0 x 0 4 u i n t m e s s a g e t y p e ;艨作码类型:0 x 0 0 0 1 、x 0 0 0 2 为a r p 9 沈阳航空工业学院硕士学位论文 u c h a r s o u r c e _ h w a d d r 6 ; u l o n g s o u r c e _ i p a d d r ; u c h a r d c s t _ h w a d d r 6 】; u l o n g d e s t _ i p a d d r ; a r p _ h e a d e r ; 价毒求和应答 ,i 原以太网地址 源口地址 ,目的以太网地址 ,目的m 地址 2 1 3 协议函数设计 a r p 协议的主要作用是处理口地址和m a c 地址之间的转换,这里将a r p 协议分 成接收a r p 报文、发送a r p 报文、高速缓存管理、解析a r f 报文几个部分实现。 在具体实现中,a r f 协议模块共由6 个函数组成,它们是a r p 初始化函数i n i t _ a l r p ( ) 、 a r f 高速缓存更新函数a g e _ a r p _ c a c h e ( ) 、a r p 发送函数a r ps e n d ( ) 、a r p 解析函数 a r p r e s o l v e ( ) 、a r p 重传函数a r p _ r e t r a n s m i t ( ) 和a r p 接收函数a r pr c v e ( ) i n i ta r “) 函数实现a r p 表的初始化,将高速缓存中各字段都设置为0 。 a g e _ a r pc a c h e , ( 1 函数实现a r p 缓存表的更新,各表项初始存入一个定值,以后每 规定时间段减1 ,直至为0 。 a r p 、实现重发请求,当请求被发送后,若规定时间后没有得 到应答,r 就e t r 重a n 复s m 发i t ( 送一个回应,就认为目的m 不存在,或者是 网络不通,此时就将正等候发送的口报文删除。 a r p 报文分请求报文和应答报文两种,发送请求或应答报文要调用a r p _ s e n d ( ) 函数。 当要发送的以太网帧不知道目的物理地址时,就要发送请求报文。此时发送的报文是广 播报文,在封装成以太网帧发送时要将首部中的目的地字段全置为1 ,同时操作码字段 也置为1 ,表示是请求报文。如果要发送的是应答报文,那么它是单播报文,帧首都中 的目的m a c 字段要添加接收方的物理地址,并将操作码字段置为2 ,表示是应答报文。 a r p 报文发送函数的流程图如图2 2 所示。 接收请求或应答报文要调用a r pr c w ( ) 函数。如果接收的是请求报文,要发送应答, 即调用发送函数a f p) ;如果是应答,就将等候地址解析的口报文发出。报send( a r p 文接收函数的流程图如图2 3 所示。 一1 0 沈阳航空工业学院硕士学位论文 a r p _ r e s o l v e ( 1 函数负责解析将要发送i p 报文的目的口地址,目的i p 地址如果和发 送方的口地址不在同一网络上,那么这个口地址就是网关的口地址;若在同一网络上, 要判断是否在缓存表里,如果不在要发送a r p 请求。 图2 2a r p 发送函数流程图 - 1 1 沈阳航空工业学院硕士学位论文 图2 3a r p 接收函数流程图 - 1 2 沈阳航空工业学院硕士学位论文 2 2 口协议的设计及实现 2 2 1u p 概述 网际协议m 是t c p l p 协议栈中最为核心的协议,用来使互连起来的许多计算机网 络能够进行通信。所有的t c p 、u d p 、i c m p 、i g m p 都以m 数据报的格式传输的。m 提供不可靠的、无连接的数据报传送服务。 不可靠的意思是它不能够保证口数据报成功的到达目的地。口仅提供最好的传输 服务。如果发生某种错误时,如某个路由暂时用完了缓冲区,m 有一个简单的错误处理 算法:丢弃该数据报,然后发送i c m p 消息报给信源端。任何要求的可靠性必须由上层 来提供( 如t c p 协议) 。 无连接的意思是m 协议并不维护任何关于后续数据报的状态信息。每个数据报的 处理是相互独立的,这也说明口数据报可以不按发送顺序接收。如果一个信源向相同 的信宿发送两个连续的数据报( 先是a ,然后是b ) ,每个数据报都是独立地进行路由选 择,可能选择不同的路线,因此b 可能在a 之前先到达i 咀1 姆。 口数据报的格式如下图所示。普通的口首部在不含有选项字段时长度为2 0 字段。 4 位4 位首部8 位服务类型 1 6 位总长度( 字节数) 版本长度 ( t o s ) 3 位 1 6 位标识 1 3 位片偏移 标志 8 位生存时间 8 位协议1 6 位首部检验和 ( t t l ) 3 2 位源口地址 3 2 位目的i p 地址 选项( 如果有) 一 数据 j 图2 , 41 1 数据报格式及首部中的各字段 在本设计中,协议版本号是4 。 首部长度指的是首部占3 2 位字的数日,包括任何选项。由于它是一个4 位字段, 1 3 沈阳航空工业学院硕士学位论文 在本设计中,协议版本号是4 。 首部长度指的是首部占3 2 位字的数目,包括任何选项。由于它是一个4 位字段, 因此首部最长为印字节。 服务类型s ) 字段包括3 位的优先权子字段,4 位的1 d s 子字段和1 位未用位( 置 m 。本设计中忽略此字段的处理。 总长度指的是数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就 可以知道口数据报中数据内容的起始位置和长度。 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1 。 标记和段偏移是用来分片重组包的。此设计中不对此字段进行处理。 生存时间( 兀l ) 字段设置了数据报可以经过的最多路由器数。它指定了数据报的最 大生存时间。本设计中,生存时间设置为3 2 。 协议字段用来对数据报进行分用,根据它来识别是哪个协议向腰传送数据。 首部检验和字段是根据口首部计算的校验和,它不对首部后面的数据进行计算。 源口地址和目的口地址标识数据报的源口地址和目的口地址。 最后一个字段是选项字段,它是数据报中的一个可变长的可选信息。本设计中不对 该字段进行处理。 2 2 2i p 数据结构设计及函数的实现 在口协议中,分片包需要根据包头中一些信息进行重组,这将会占用大量的存储 空间与处理器资源。另外口协议支持路由功能时也需要占用大量的系统资源。因此考 虑到单片机系统的实际应用场合,同时也是为了简化代码、提高效率,本课题所设计的 嵌入式t c p i p 协议栈不提供对数据报的分片和重组,也不提供路由功能。另外,本文 设计的口协议还忽略了对口服务类型字段的处理以及对数据报中的可选项的字段的处 理。 ( 1 ) 口数据报结构 t y p e d e f s t r u c t 1 4 沈阳航空工业学院硕士学位论文 u i n t t o t a u e n g t h ; ,总长度 u i n t i d e n t i f i e r ; 标识 u i n t f r a g m e n t _ i n f o ; ,标志与片偏移 u c h a r t i m e _ _ t ol i v e ; ,生存时间 u c h a r p r o t o c 0 1 i d ; 上层协议类型 u i n th e a d e r c k s u m ; 首部校验和 u l o n g s o u r c e _ i p a d d r ; 源口地址 u l o n g d e s t _ i p a d d r ; 目的口地址 ) i p _ h e a d e r ; 口协议对从不同高层协议来的数据进行复用和分用,上层协议字段的值对于分用过 程很有帮助。1 是网络控制报文协议,2 是组管理协议,6 是传输控制协议,7 是用户数 据报协议。本设计的上层协议类型仅有两个类型:i c m p 协议和t c p 协议。 口协议函数设计 口协议主要处理数据报在网络中的传输,这里为了简化口协议,只实现口报文的 发送和接收。在具体的实现中,i p 协议模块由i p 发送函数i ps e n d ( ) 和口接收函数 i p r c v e ( 、组成。 m 发送函数处理要发送的口报文,添加2 0 字节的口报头,然后将报文送到接口 层等待发送。具体的实现流程如图2 5 所示。 m 接收函数主要处理来自链路层的m 数据报,对数据报进行口解包,即去掉口 报文的头部信息,送到传输层。在对口进行解包的过程中忽略对口选项字段的处理。 当收到带有选项字段的m 包时,将选项字段的内容删除,同时为了方便m 报文中数据 的处理,将口报文中的数据字段前移至选项字段的位置。本设计没有考虑口报文分段 的情况,如果有分段报文被接收,则丢弃该报文。接着判断哪种类型的报文被接收,然 后转到相应的子程序。函数的实现流程如图2 6 所示。 1 5 沈阳航空工业学院硕士学位论文 填充口首部各字段 j a a m 高速缓冲中查找与目 的口相匹配的m a c 地址 廷杰剪岁 l n 发送a 】r p 请求查找与目的 口相匹配的m a c 地址 i - j 将此数据报保存,等待a r p 应答 + 口数据报转发至以太网层 图2 5i p 发送函数流程图图2 6 肼接收函数流程图 2 3i c m p 协议的设计及实现 2 3 1i c 御概述 网络控制报文协议o c m v ) 的主要作用是传递差错报文以及其它需要注意的信息,比 如说网络不可达报文、时间戳请求报文等。i c m p 一般并不被认为是t c p i p 中特别的一 层,而是被看作口层的一个扩展。它与口协议处于同一层次,但i c m p 报文却被封装 在即数据报的数据段部分进行传送,具体报文的封装如图2 7 所示。 球数据包 i c m p 报文 i c m p 报头i c m p 数据 r_ l 碑数据报头i p 数据段 图2 7i c m 咿报文的封装 一1 6 沈阳航空工业学院硕士学位论文 i c m p 报文的类型很多,共有近四十种。不同类型的报文由报文首部中8 位的类型 字段和8 位的代码字段来共同决定。在本设计的协议栈中只使用了回显应答和请求回显 两种类型的i c m p 报文。这两种报文是为p i n g 程序服务的。使用r i n g 命令的i c m p 报 文格式如图2 8 所示。 类型( 0 或8 )代码( 0 ) 校验和 标志符序号 选项数据 图2 , 8p i a g 报文格式 图中,类型值为8 表示接收p i n g 命令,为0 表示发送p i n g 命令。代码0 表示为p i n g 命令。标志和序号是为了使响应和发送的数据相对应。选项数据是任意的,但是响应和 发送的数据应该是相同的。 p i n g 程序负责测试本机到目标主机是否可到达。该程序发送一份i c m p 回显请求给 主机,并等待返回i c m p 回显应答,而且p i n g 程序还能测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论