嵌入式Web Server中EGI技术的应用_第1页
免费预览已结束,剩余3页可下载查看

下载本文档

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

文档简介

1、嵌入式web server中egi技术的应用协议栈采纳瑞典计算机科学讨论所adam dunkels开发的uip09。其功能特性总结如下:完整的解释文档和藏匿的源代码(所有用编写,并附有具体注释);极少的代码占用量和ram资源要求,尤其适用于8/16位;高度可配置性,以适应不同资源条件和应用场合;支持arp、ip、icmp、tcp、udp(可选)等须要的功能特性;支持多个主动衔接和被动衔接并发,支持衔接的动态分配和释放;简易的应用层接口和设备驱动层接口;完美的示例程序和应用协议实现范例。要想使uip协议栈顺当运行,需要为其编写驱动程序,包括cs8900a的初始化、发送函数以及接收函数。接收数据放

2、在uip_buf里,供uip_input()函数处理。发送数据长度为uip_len。首先发送uip-bur中前(40+uip_llh_len)个数据,接着发送uip-appdata指针所指向的存储区域的数据。这是由于uip-buf中前(40+uip_llh_len)个数据是物理层添加的头,即日的物理地址与本地物理地址,而后部分数据是应用层处理后返同的数据。另一个需要驱动程序支 持的函数是uip_periodic(conn)。这个函数用于uip内核对各衔接的定时轮询,因此需要一个硬件支持的定时程序周期性地用它轮询各衔接。普通用于检查主机是否有数据要发送,若有,则构造ip包。需要注重的问题是:普通

3、状况下,c语言的结构体struct是4字节对齐的,但是在处理数据包时,uip是按照结构体中不同数据的长度来读取相应数据的,所以一定要在定义struct时用法_(attrlbute)_packed关键字,让编译器放弃struct的字节对齐。2 web servor的工作过程21 静态web serverweb servet是基于http协泌的。在试验箱上搭建的嵌入式web seiver向来处于监听状态,即向来推断网卡的接收数据位是否置位。若是,则调用uip_input()函数处理uip-buf里的数据。当在pc端扫瞄器的地址栏里输入的ip地址并按下回车键时,pc端首先发一个arp查询包。接收到a

4、rp应答后,pc端与arm建立衔接。经过3次握手后,tcp1衔接已经建立起来了,客户机现在向端口 80(http端口)发送一个哀求。详细的数据包1所示。web服务器会处理此哀求,web页面将在接下来的数据包中返同。http的get哀求并没有指定详细的html页面,web服务器返回默认页面,即indexhtml。详细的数据包2所示。服务器处理web页面哀求:服务器基于ip地址和客户机哀求的端口号来响应web业务。该响应包括建立web页面需要的信息,客户机的web扫瞄器(如ie)得到这些消息并显示在屏幕上。假如需要从web服务器得到更多信息(片、按钮、动画等),则客户端会继续发送哀求,直到完整显示

5、囫囵web页面。2.2 cgi假如仅仅传送静态的html页面,那么上述的技术已经足够。然而,在构造嵌入式web server时,更需要一些动态数据,如温度、等动态物理量。这时就需要引入通用网关接口cgi(common gateway interface)。cgi是http服务器与其他机器上的程序举行“交谈”的一种工具,其程序须运行在网络服务器上。绝大多数的cgi程序被用来说明处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给扫瞄器。cgi程序使网页具有交互功能。cgl处理步骤:通过internet把用户哀求送到服务器;服务器接收用户哀求并交给cgi程序处理:cgi程序把处理

6、结果传送给服务器;服务器把结果送网到用户。23 eglcgi适用于pc机上,然而在嵌入式系统中并不是很好用,因此程序员被迫要用print声明创建囫囵网页,而不是通过更新已存在页的变量来整合出想要的数据。因此人们提出了一种新的技术egi(embeded(gateway in-terface)。下面结合uip协议栈在嵌入式系统中的移植来详细探究egi技术在嵌入式web server的应用。如上所述,当客户端扫瞄器的地址栏输入web server地址后,客户端与web server建立了衔接,并在这个衔接之上传输数据。在server端,系统通过a/d转换采集模拟量,得到的结果存放在2个全局变量adl

7、和ad2里。在pc端,扫瞄器发出的哀求包已经转变为图3所示的状况。比较图1和图3可以很清晰地看到,划线部分是两种哀求的不同之处。服务器会推断是否为egi哀求。假如是,服务器就调用egi程序。下面是egi的执行步骤:推断客户端申请的页面,并发出html页面头;服务器的文件组织是一个队列的结构形式。以笔者的课题为例,文件服务器包括:indexhtm、abouthtm、contro1html等静态页面,也包括file_headr_html.htm、file_cgi、file_foot_htmlplain等动态页面。找出cgi后,空格(0x20)前的字符串,也就是“files”,然后用这个字符串在队列

8、中的文件名中举行查找。假如匹配,就对该文件举行字符处理,即对file_cgi举行处理。预先规定cgi文件里包括3部分:i/文件头;c(ab,c);i文件尾。i包含文件头或文件尾,c是egi处理,有a、b、c三种egi处理办法。服务器第1步就是发送i文件头中的文件头。即file-headr_html.htm。处理完cgi文件里第1部分后,进入第2部分,即c(ab,c)。这里可以举行ad转换,并将结果发送出去。处理cgi文件里第3部分,发送文件尾,即file_foot_html.plain。egi技术的浮现使我们可以按照申请,即时构造页面。这在数据采集、实时监控领域有着广泛的应用。下面是本课题中应用egi技术,在扫瞄器里以图表形式实时显示采集到的模拟量。4所示,用两个类似温度计的图形来显示服务器端采集

温馨提示

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

评论

0/150

提交评论