基于ucosⅡ的嵌入式web服务器的设计与实现.doc_第1页
基于ucosⅡ的嵌入式web服务器的设计与实现.doc_第2页
基于ucosⅡ的嵌入式web服务器的设计与实现.doc_第3页
基于ucosⅡ的嵌入式web服务器的设计与实现.doc_第4页
基于ucosⅡ的嵌入式web服务器的设计与实现.doc_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安电子科技大学硕士学位论文基于uc/os-的嵌入式web服务器的设计与实现姓名:高昆申请学位级别:硕士专业:软件工程指导教师:白丽娜;乐清洪20090601,、析,:西安电子科技大学学位论文独创性(或创新性)声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名:盔日期盟:呸因西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后遵守此规定)本人签名:鸹蠡本人签名:迎丝导师签名:自面纽日期盟:堑幽期丝:笸:兰墨第一章绪论第一章绪论论文研究的背景及意义随着计算机技术的蓬勃发展及应用领域的日渐扩大,计算机技术对其他行业的广泛渗透及与其他行业的应用技术的相互结合,以应用为中心的嵌入式计算机系统已经发展成为一个最富有广阔前景的研究应用领域,可以说,信息时代依靠嵌入式计算机系统而运转,“嵌入式系统”无处不在。互联网的成就极大地推动了社会的信息化,随着现代通信技术的发展与进步,技术迅速地融入到各个领域,嵌入式系统的应用将互联网推向了后时代。后机时代的到来引发了信息产品的产生,而与信息产品的结合是当今发展的一个趋势。将日渐成熟的互联网技术应用到嵌入式系统中已经成为一种必然趋势。技术是目前很适合这种趋势的一种解决方案。嵌入式服务器也逐渐成为一种研究热点。世纪宣告嵌入式时代的到来,嵌入式技术使得嵌入式设备的远程控制与管理方式上有了改变,不需要专用的通信线路,并且传输的信息不仅包括数据信号、还有声音及图像。最重要的是其通信协议的标准是公开的。很多应用都是基于技术的,由于语言的标准统一性,只要在嵌入式设备中有一个微型服务器,就可以使用任意一种浏览器接受和发送消息。所以如何设计这种特别的服务器,如何在嵌入式设备中安装服务器,是今后发展及研究的方向。对于嵌入式服务器的研究和应用、其意义是重大的。它为我们管理、控制和监测各种设备提供了一个很好的途径。嵌入式系统概述所谓嵌入式设备,是指具有计算机功能,但又不称为计算机的设备或器材,几乎包括了我们周围的所有电路设备,其种类繁多,遍布我们生活的方方面面。所以很有必要了解嵌入式系统的概念及其发展的概况。嵌入式系统的特点嵌入式系统是一个应用计算机系统,有别于其他的计算机系统,如个人或超级计算机,然而“嵌入式”系统的定义是易变的,比较难明确,因为随着技术的进步及软硬件成本的显著降低,嵌入式系统在不断地发展演化着,从不同的角度有不同的定义。目前较为通用的定义描述为:以应用为中心,以计算机技术为基础,软硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。从外观上看,嵌入式系统像是一个“可编程的电子器件;从功能上看,它是对宿主对象进行基于的嵌入式服务器的设计与实现控制,使其具有“智能的控制器。“嵌入性”、“专用性、“计算机系统是其三个基本要素。通过与通用型计算机系统相比较,嵌入式系统具有以下特点:嵌入式系统通常面向某个特定的应用,故嵌入式系统的硬件是为特定的用户群而设计的,具有某种专用的特点。嵌入式系统的硬件及软件(操作系统)须设计成可以裁剪的,以便于根据不同的实际需要,量体裁衣,使系统在满足应用要求的前提下实现最合理而精简的配置。为了提高执行速度及可靠性,嵌入式系统中的软件通常不是存储在磁盘等存储介质中的,而是固化在存储器芯片或单片系统的存储器内部,故而其功耗较低,再配合设计精巧的嵌入式实时操作系统(),从而可以快速响应外部事件,同时也大大提高了系统的可靠性。嵌入式系统自身不具备自举开发能力,设计完成后,用户通常不能对其程序进行修改(通用型计算机这点实现很容易),必须要有相应的开发工具及环境才可以进行。嵌入式系统的组成嵌入式系统是面向特定应用的,绝大多数嵌入式系统是用户针对特定任务定制的。但就其组成部分而言:它仍然是由硬件与软件的结合而成,同时包括开发工具与开发系统这三部分。嵌入式系统的硬件主要包括:嵌入式核心芯片,嵌入式微处理器、嵌入式微控制器、嵌入式数字信号处理器、嵌入式片上系统。用以保存固件的,用以保存程序数据的,连接微控制器和开关、按钮、传感器、模数转化器、控制器、和显示器的端口等。嵌入式系统软件由嵌入式操作系统及相应的各种应用程序所构成,嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,具有通用操作系统的基本特点,能够有效地管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来。而实时应用程序基于嵌入式操作系统平台之上,利用操作系统提供实时机制完成特定具体功能的应用程序。嵌入式系统的开发工具及开发系统嵌入式系统的硬件和软件位于嵌入式系统产品本身之中,开发工具则独立于嵌入式系统产品之外。开发工具一般用于开发主机,包括语言编译器、连接定位器、调试器等,这些工具一起构成了嵌入式系统的开发系统和开发工具。在嵌入式系统的组成部分中,嵌入式是嵌入式实时系统的核心,是应用程序开发与运行的基石。第一章绪论嵌入式实时操作系统()概述嵌入式操作系统是嵌入式应用软件的基础及开发平台。它是嵌入在目标代码中的软件,用户的其他应用程序均建立在操作系统的基础上。嵌入式操作系统绝大多数为实时系统(),为一个可靠性及可信度很高的实时内核,将时间、中断、定时器等资源均包装起来,留给用户一个标准的、并依据各个任务的优先级合理地在不同任务之间分配时间。嵌入式操作系统的特点操作系统是配置在计算机硬件上的第一层软件,其作用是弥补硬件的差异的界面或者隐藏硬件,通过操作系统统一提供出来的系统平台来写应用程序,无需考虑不同硬件所形成的差异,从而使得程序设计人员可以集中精力于所擅长的领域,增进了工作效率,提高了产品的质量。嵌入式操作系统即支持嵌入式系统工作的操作系统,与通用型操作系统没有本质上的区别,一般适用于比较复杂的嵌入式系统开发中,而嵌入式系统一般有具有实时的特性,故嵌入式操作系统与实时系统密不可分。实时系统指的是一个优先级高的任务可以获取立即、无延迟的服务,它无需等候其他任务,而且在得到的使用权后,可以一直执行到任务终了后或有更高优先级的任务出现。嵌入式操作系统是嵌入式系统的灵魂,通过有效的服务,使得系统资源得到了更好的利用,它的介入,统一了底层接口,方便了系统的升级和底层移植。嵌入式操作系统的体系结构为达到硬件的实时性、不同于通用操作系统、实时操作系统()一般运行在直接寻址模式下(相对于虚拟内存管理机制而言),一般不提供具有独立地址空间的进程机制。即:实时嵌入式操作系统中的所有任务均共享同一个地址空间,在此基础上,的内核提供任务创建及调度、消息队列、信号量、互斥锁、事件标志等基本的任务同步与通信机制。“内核库函数的模式,是大多数嵌入式操作系统开发采用的编程模式。一般设计为模块化的软件系统。需要什么样的功能、可向产品厂商购买对应的模块。不同之间除了在任务管理的核心区别之外,其他主要区别体现在外围模块上。的一般软件结构如图所示。基于的嵌入式服务器的设计与实现图的一般结构嵌入式系统中使用的意义嵌入式实时操作系统目前在嵌入式应用中越来越普遍,尤其是在一些功能复杂、系统庞大的嵌入式系统中,更加体现了其至关重要的特性。提高了系统的可靠性及稳定性,在嵌入式系统中引入为在软件设计方面提供了一种很强的抗干扰性,尽可能地减少了系统漏洞与不可靠隐患。使用了的嵌入式系统的任务均为并行的,干扰只会影响其中之一,不会破坏其他任务的运行。提高了开发效率,缩短了开发周期,在一个嵌入式实时操作系统的环境中,开发一个复杂的应用程序,一般可以按照软件工程中的解耦原则将程序分为多个模块,每个任务模块的调试、修改几乎不影响其他模块。简化了软件系统的设计。嵌入式专为实时性要求很高的控制系统而设计的,他的使用使系统更好地达到要求的实时性能。充分发挥了位微处理器的多任务潜力,此外它本来是为运行多任务、多用户操作系统而设计的,尤其适用于运行多任务实时系统,位采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。论文主要完成的工作嵌入式系统接入已经成为一项重要的课题,本文正是基于解决这种问题的背景下,利用开源的嵌入式实时操作系统“移植到开发板上,同时为了实现其网络功能,选择同样是开源的轻型协议作为的网络扩展模块,实现了嵌入式系统网络化。在嵌入式设备中加入服务功能使其转化为嵌入式服务器,可以向或内部网提供基于的图形化管理接口。在整个系统的开发中,本人主要从事以下内容的开发与研究:研究分析处理器的体系结构及编程:的内部结构。研究分析操作系统,了解其任务管理与多任务实现机制、中断、时钟等方面的知识;详细分析了优先级反转及解决策略;移植到第一章绪论,并加以测试,验证移植的正确性。研究分析轻型协议,通过分析研究其开源文档内容(操作系统模拟层)实现了到“的移植,使具备了网络通信功能,为嵌入式设备接入提供了系统的支持。因为本身不提供网络接口驱动程序,在给出的网络接口驱动样例的基础上,结合网络接口芯片的数据手册实现了接口芯片的驱动程序。嵌入式服务器是实现嵌入式系统通过方式与互联的关键,而是用户与服务器交互的重要途径,运用嵌入式服务器中的实现策略,完成动态网页的数据交互功能,并在实际应用中结合实例加以阐述。第二章嵌入式服务器开发平台第二章嵌入式服务器开发平台嵌入式服务器的硬件平台一个完整的嵌入式系统太体上可分为软件及硬件个部分。软件是灵魂硬件是躯体。硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑及时序逻辑。基于的硬件开发板试验所用的开发板基本配置功能如图所示一际而万三习接口峄划弓型厂厂卧、。、腮。嚣。一;:,馘口一石。:日日;剽船絮一糯一;葶霭馘船勰瓣;:器嚣醅黯;:黜程露器臻鬻震口匪世刨伽血!(:;:铲巨豳掣黧有;嗲。:。鬯。邕目器丽器噩辫:瓣憔踟。口口口。制豳昔插槽总线通讯口圈开发扳基本配置硬件开发板主要部件包括嵌入式处理器,电源、时基于的嵌入式服务器的设计与实现钟电路(嵌入式可调电源,时钟发生器()、时钟发生器()、实时定时器);内部高速,内部高速。外围接口控制电路(以太网接口、全速()设备端口、带控制信号的通讯串口、串行总线通讯口、接口、串行通讯口)。()处理器处理器核因其卓越的性能和显著优点,已成为高性能、低功耗、低成本的代名词。处理器本身是位设计的,但也配备位指令集。系列为低功耗、最适用于对价位和功耗敏感的消费类应用。它可以提供三级流水线及冯诺依曼结构。架构的处理器具有的一般特性:指令格式和长度固定,指令类型少,功能简单,寻址方式少而简单,执行的效率比较高大量使用寄存器,指令的执行速度很快分开的结构指令支持(位)(位)双指令集系列处理器主要应用领域为:因特网设备、网络以及移动电话等多种多媒体和嵌入式应用。是系列成员中最早为业界普遍认可且得到了广泛应用的位微处理器(:位压缩指令集,:在线调试(),:增强型乘法器(),:嵌入式,提供片上断点和调试点支持)。它可以在与两种状态见转换,它的体系结构有两种方法存储字数据:大端与小端格式,默认配置模式为小端格式,处理器共有个处理器。可划分为个通用寄存器与个状态寄存器,包括一个当前状态寄存器()。这些寄存器不能同时被访问,具体哪些寄存器可编程访问,取决于微处理器的工作状态及工作模式。寄存器的低五位用来标识当前的工作模式,即:】与种工作模式对应,分别为:用户、快速中断、外部中断、管理模式、终止、系统模式、未定义七种工作模式。()处理器的功能如图所示:嘞刚哪。翻味栅埘棚第二章嵌入式服务器开发平台图功能框图最嚣焉黧滕黧黧喘辫基于的嵌入式服务器的设计与实现嵌入式实时操作系统概述心实时操作系统是由于年编写的一个规模很小的嵌入式多任务实时操作系统。肛做为一个实时微内核,它只对计算机的处理器和硬件时钟进行了相应的抽象及封装,并没有提供其他的硬件抽象层。是一种结构小巧、基于优先级的可剥夺实时内核的实时操作系统。其内核提供任务调度、时间管理、任务同步与通信、内存管理及中断服务等功能。适用于应用规模不大的控制系统,具有执行效率高、代码占用空间小、实时性能优良、稳定性和可靠性高,抗干扰能力强和可扩展性优越的诸多特点。“移植具备的条件移植指的是一个实时操作系统可以在某个微处理器平台上运行。大部分是由语言编写的,只有很少量的与处理器密切相关的代码用汇编编写的。故它很容易移植到各类微处理器上,但与处理器相关的代码还是要有与汇编语言配合完成,所以有些代码对于移植而言还是要修改的。判断某个处理器是否可以移植,须具备以下条件:处理器的编译器能产生可重入型代码;所谓可重入的代码指的是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据。即:可重入型函数在任何时候都可以被中断执行,过一段时间又可以继续执行,而不会因为在函数中断的时候被其他的任务重新调用,影响函数中的数据。程序:可重入型函数程序:不可重入型函数(幸,宰);(幸,幸);幸;枣;幸;宰;)程序中的局部变量作为变量。一般的编译器,将局部变量分配到栈中,故多次调用同一个函数,可以保证每次的互相不受影响。而程序中的作为全局变量,多次调用函数的时候,必然要受到影响。在程序中可以打开或关闭中断;在中可以通过宏()或()第二章嵌入式服务器开发平台来控制系统打开或关闭中断,在处理器上,可以设置相应的寄存器来关闭或打开系统的中断。处理器支持中断,并且能产生定时中断(通常在一之间);处理器支持能够容纳一定量数据的硬件堆栈;处理器有将堆栈指针和其他寄存器的内容读出,并存储到堆栈或内存去的指令。进行任务调度时候,会把当前任务的寄存器存放到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。故:寄存器的入栈及出栈是多任务调度的基础。移植到处理器移植工作使用的是公司的交叉编译器,移植的工作主要体现在以下部分编写修改文件数据类型的定义因为不同的其字长可能有所不同,故“不使用像语言那样的、等与处理器类型有关系的数据,因为他们与编译器有关,不可移植。需对数据类型重新定义,采用移植性强的整型数据类型。根据交叉编译器的特性,数据类型重新编排如下:胪数据类型;胪代表整数;代表该数据类型位长;代表无符号之类的数据类型;、;用于定义堆栈;代表了的状态寄存器基于的嵌入式服务器的设计与实现定义临界处理的中断宏所谓临界处理,就是指如何确保一段代码在执行的过程中不会被任何中断打断,这段代码称为临界段或临界区。对于这样的多任务实时内核而言,临界的处理至关重要。进入系统临界代码区段前要关闭中断,待到退出临界区后再开中断,从而可以使得临界代码免受多任务及中断子程序的破坏。采用两个宏来实现打开和关闭中断:()和()。进入临界区调用(),离开临界区调用)。定义堆栈增长的方向(中的宏用来指示堆栈的增长方向,当,表明堆栈的增长方向为从低地址向高地址增长。,表明堆栈的增长方向为从高地址向低地址增长。处理器的堆栈是由上往下增长的,为降序的堆栈,即满递减堆栈。所以此时宏的值应为。定义宏宏(),当低优先级任务切换到高优先级任务时被调用。它总是实现任务级的任务切换,处于就绪态的任务堆栈结构看起来就像是刚发生中断一样,要运行处于就绪态的任务前必须将所有处理器寄存器从任务堆栈中恢复出来,同时执行中断的返回。为切换任务,()来模仿中断的产生,通常处理器会提供软中断(实现函数)或陷阱来实现这个功能。这个软中断实现函数由具体处理器决定,这需要自己去完成它。此时,只需定义这个宏指向的具体函数就可以了。撑()()到此创建修改完成。的创建编写任务堆栈初始化这个文件中主要要明确的是任务堆栈初始化的问题,涉及任务初始化时的堆栈设计。须实现的函数(),初始化后的堆栈看起来就像刚发生中断、并已将所有的寄存器保存到堆栈情形一样。在这里设定堆栈的增长方向是由高地址向低地址生长的。下图清楚的显示了函数放到正在建立的堆栈中的内容第二章嵌入式服务器开发平台方向图函数放到堆栈中的内容编写好的代码如下:()(宰),指向任务的指针,传递任务的参数,指向任务堆栈栈顶的指针枣;奉避免编译器出错;幸加载堆栈指针胪建立任务环境,满递减堆栈一();宰();掌枣;枣;幸一;搴一;奉;枣毒;幸宰;木宰:宰宰;木宰;木宰一;幸;木();幸参数值,第一个参数用如传递();允许、中断();允许、中断基于的嵌入式服务器的设计与实现;)系统函数为了让用户在系统函数中书写自己的代码而预置了一些函数名带有字样的钩子函数,在移植时可全置为空函数,但必须声明出来。如下所示:()()()()()()()()中编写的汇编语言函数移植的大部分工作量集中在编写,这个文件的实现集中体现了所要移植到的处理器的体系结构与的原理。主要是用汇编语言编写个与处理器相关的函数()运行优先级最高的就绪任务()任务级的任务切换函数()中断级任务切换函数()时钟中断处理函数具体环节如下:任务级任务切换函数()任务级的上下文切换,它是当任务因为被阻塞而主动请求调度时被执行,由于此时的任务切换都是在非异常模式下进行,因此区别于中断级别的任务切换。具体实现过程如下:)将当前任务的现场保存到该任务堆栈中)取得最高优先级任务的堆栈指针)从该堆栈中恢复此任务的现场,使之继续执行。如此,便完成了一次任务切换中断级任务切换函数()中断级的任务切换,采用设置需要切换标志位的方法。在里面不发生切换,而是设置一个需要切换的标志,等到函数嵌套从以下的过程(),退出后,再根据标志位来判断是否需要进行中断级的任务切换。具体实现过程如下:第二章嵌入式服务器开发平台)准备任务切换。调用函数;)查找高优先级任务栈顶指针并保存到寄存器,取出高优先级,把优先级按字节传送;)从寄存器中取得要恢复的任务栈顶指针,取得、恢复;)依次恢复寄存器,、,进行任务切换。这样能够尽快让高优先级的任务得到响应,保证系统的实时性能。它的原理基本上与任务级的切换相同,但是由于进入中断时已经保存过了被中断任务的现场,因此这里不用再进行类似的操作,只需要对堆栈指针做相应的调整。在中断状态下进行任务切换,需要处理如何获得被中断任务的。进入中断态后,变成了,要得到,必须在中断里面进行一次强制转换,即是对赋值为。在强制转换之前必须保存任务中断前的,因为在强制变成态之后,也会相应地变成。下面的代码段实现了中断级任务上下文的保存:,:;切换到模式并关中断,;调整的堆栈指针,;中保存堆栈指针的值,:;切换回系统模式并关中断,;调整系统模式的堆栈指针!,;开始保存被中断任务的上下文,),)!,)!,)()该函数是在()多任务启动后,负责从最高优先级任务的控制块中获得该任务的堆栈指针,通过依次将现场恢复。此时系统就将控制权交给用户创建的该任务进程,直到该任务被阻塞或者被更高优先级的任务抢占。该函数仅仅在多任务启动时被执行一次,用来启动第一也是最高优先级的任务。()函数基于的嵌入式服务器的设计与实现时钟中断处理函数,它的主要任务是负责处理时钟中断、调用系统实时的函数,如果有等待时钟信号的高优先级任务,则需要在中断级别上调度其执行。其他相关的两个函数为()与(),均需要在中执行。具体实现环节如下:)保护现场,保存时钟节拍中断前的、屏蔽中断,保存模式的现场;)把堆栈指针传送给所指向的指针,保存被中断的任务的栈顶指针;)将所有延时节拍不为的任务的节拍数均,并清除中断标志;)判断是否有更高优先级的任务就绪,若有,则调用()调度任务并不再返回;若没有则返回到这里。)恢复中断前的现场,从堆栈中恢复,中断前任务的、和,重新允许,返回被中断的任务。的移植测试为了验证移植的正确性,通过编写一个的多任务测试程序加以验证。将文件与在环境下进行编译、链接。生成的文件,在环境下进行调试。()();调用函数初始化目标系统。();调用()初始化系统。在使用之前,必须调用的初始化函数()。对自身的运行环境进行初始化。对的所有全局变量及数据进行初始化,同时创建空闲任务,同时赋予最低的优先级和永远的就绪态。();用一个全局变量来记录系统发生的时钟节拍数。在应用程序调用()时被初始化为,以后每发生时钟节拍,。若在应用程序中调用(),就可以设置的值。();(:,);(,(宰),(木)】,);调用函数创建任务。任务可在调用()启动任务调度之前来创建,也可在任务中来创建。但有一规定:在调用第二章嵌入式服务器开发平台启动任务函数()函数之前,系统必须至少存在一个任务。故,在调用()之前先创建一个任务,赋予其最高优先级,从而成为起始的任务;然后再创建其他的任务。所以,在()函数中,创建了一个()任务,然后在任务中再创建其他的任务。();调用函数,配置时钟相关寄存器和时钟节拍中断。();调用()启动系统任务调度,它将调用()函数来启动多任务调度。启动任务函数()的一般形式为:(宰)胪在这里启动的时钟();初始化统计任务幸在此创建其他任务(;)起始任务的代码在中建立任务的时候,注意任务应该是无限循环或者是最后进行自我删除的函数体,而不能像一般的函授那样最后直接返回,否则将会出现错误。测试任务中的函数(幸)();();();(,(母),(毒)一】,);(,(拳),(幸)一】,);(;)基于的嵌入式服务器的设计与实现();)任务与任务是两个很简单的任务,函数体均一样,差别只是名字,故,以代码来说明问题。当然在()函数定义之前,它们就已经定义。(拳)(;)();();在以上的函数程序体中,均有()这个函数。的任务是一个无限循环,且还是一个基于优先级的可抢占式的多任务内核,所以为了使高优先级的任务不至于独占,可以给其他优先级别较低的任务获得使用权的机会。规定:除了空闲任务之外的所有任务必须在任务中合适的位置调用系统提供的函数(),使当前任务的运行延时一段时间并进行一次任务调度,让出的使用权。下图所示的是通过串口输出的多任务调度信息,测试验证在上运行正确。第二章嵌入式服务器开发平台叭:啊“”“业聃;础咖“;“;,啊“”:“目揪“图心移植测试验证截图至此一己成功移植到上第三章嵌入式服务器相关技术分析与研究第三章嵌入式服务器相关技术分析与研究通讯协议的概述在计算机网络通讯中,使用最为广泛的通讯协议就是协议。是的基础协议,也是一种计算机数据封装和寻址的标准方法。它包括(传输控制协议)和(协议)。它其实是一组协议族。除了核心的与外,还包括的有:、等。在应用层协议中还包括、植守。嵌入式系统中实现的协议要根据系统自身的特点及功能来设计自己的协议族,需针对不同的网络应用对协议栈进行删减,保留其基本功能,考虑到嵌入式服务器的硬件处理速度慢并且存储容量相对较小,在协议栈中主要实现、即可。嵌入式协议栈结构如图所示:图嵌入式协议栈结构协议栈及以太网中数据传送的层次关系:当在应用程序(一般应用有,等协议)中将应用数据(包括用户数据和应用首部)向网络传送,它首先到达层,协议根据应用层的要求在首部填写好各个字段,如端口号、序号、标志等。重要的是填写数据校验和到校验和的字段,然后将包括首部的段(数据包在协议层称为段)向协议栈的下一层层传送。层则与层一样,填写首部的各个字段,如地址、协议类型等,然后将在头部包括首部和首部的整个数据报(数据包在协议层称为数据报伊锄)向下传送:到了以太网驱动程序,继续进行封装工作,将以太网首部和以太网尾部添加到从层传下来的数据报上。嵌入式协议的主要处理流程如图所示:基于的嵌入式服务器的设计与实现图嵌入式协议的处理流程嵌入式的协议栈()是一套用于嵌入式系统的开源协议栈。的含义是(轻型)协议。可以移植到操作系统上运行,也可以在无操作系统的情况下独立运行。它运行的基础是在减少对硬件资源占用的前提下完成的主要功能。的进程协议栈的进程模型指的是采用何种方法把系统分成不同的进程。协议的每一层是一个单独的进程,链路层是一个进程,层是一个进程,层是一个进程,这样的好处是网络协议的每一层均十分清晰,代码的调试与理解很容易,但数据跨层传递时会引起上下文切换,这对于接收一个段来说,会引起次进程切换,从网络设备驱动层进程到进程,再从进程到进程,最终到应用层进程。第三章嵌入式服务器相关技术分析与研究进程切换的代价相当昂贵而不可取的。所采用的进程模型:所有的协议

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论