已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于uIP TCP/IP协议栈的嵌入式网页服务器的实现关键词:uIP;嵌入式系统;Web服务器摘要:如今,网络正成为嵌入式系统调查的热点。互联网与嵌入式系统相结合一直是一个重要的发展方向,同时对于嵌入式系统的未来而言,这也是不可或缺的功能之一。本文提出了嵌入式网络服务器系统的设计和实现:首先,分析开源TCP/IP协议栈uIP,描述其属性,系统架构及相关接口;第二,展示如何移植uIP到嵌入式平台,如何构建嵌入式网络服务器;最后,通过一个视频点播应用演示了网络嵌入式系统的效果。1 介绍随着嵌入式技术的飞速发展,越来越多的嵌入式设备(如无线传感器,信息化家电,智能仪表)需要进行合作连接在一起。传统的嵌入式设备使用现场总线,或其他特殊的协议相互通信。但是,由于连通性要求,这些网络不能够无缝连接到互联网。因此,嵌入式设备是无法直接访问互联网的。在这种情况下,人们都关注如何连接互联网与嵌入式设备。同时,基于互联网的嵌入式设备的需求越来越强。目前,许多企业已经提出方案去解决这个问题。一般来说,他们被分成三类:(1)由一个特定的嵌入式网关连接。在轻量级窄带宽的嵌入式设备网络和重量级宽带网络互联网之间,网关是一种起中间作用的 “桥梁”或“经纪人”。除了实现协议转换功能,嵌入式设备网络的网关应提供网络管理,配置性,安全性,网络服务,以及流量控制。(2)由一个特定网络服务器实施。通过使用CAN,RS-232或者RS-485总线去形成一个子网络来把所有嵌入式设备连接在一起。网络服务器被视为是一个子网络中的路由器,它在内部嵌入式设备和外部互联网之间实现通信。(3)给嵌入式设备延长标准网络技术。换句话说,嵌入式系统实现网络服务器本身的功能。这三种解决方案相比,第三种最有用,也最实际,因为其独立性和整合性。到目前为止,对于这个问题这是最好的解决方案。本文研究TCP/IP协议栈中的一种-uIP,成功地将uIP移植到嵌入式系统,并实现了嵌入式网络服务器。它实现了与互联网的无缝连接,解决了网络异质性问题,从而极大的扩展了嵌入式系统的应用领域。最后,一个网络视频点播应用的成功实现给其提供了一个实际的例子。2 硬件与软件平台2.1 硬件平台这个嵌入式系统的硬件平台是由AD公司研发的ADSPBF537 EZ-KIT Lite。它是一个ADSP-BF537Blackfin处理器的评价系统1。该处理器的性能可达到600兆赫兹。在这块板上有一个容量为4 MB的快闪存储器。它可以用来存储用户特定的引导代码,使板子作为一个独立单元运行。这个板子有一个64 MB的SDRAM,它可以在运行时使用。除了这些,它还包括一个片上10/100兆位/秒的以太网MAC(SMSC的LAN83C185设备)。在板上预留的接口给EZ-KITLite和现有的TCP / IP网络之间提供了一个方便的连接。硬件结构图如图1所示。图1 硬件结构2.2 软件平台目前,市场上大多数的嵌入式TCP/IP栈是根据BSD版本2改写而来的。虽然商业版的效果是完美的,但是它的价格是非常昂贵的。在这种情况下,许多开发商想选择一些免费的开源TCP/ IP协议栈,并加以改进,以满足他们的需求。本文使用的名为uIP(0.9版本)的TCP/ IP协议栈是由瑞典计算机科学研究所Adam Dunkels发明的网络化嵌入式系统。uIP有以下特征:l 有案可查的良好注释的源代码,几乎每行代码都有注释。l 非常小的代码量。l 非常低的RAM使用量,在编译时易于配置。l ARP,SLIP,IP,UDP,ICMP(PING)和TCP协议。l 包括一组示例应用程序:网络服务器,网页客户端,电子邮件发送器(SMTP客户端),Telnet服务器,DNS主机名解析。l 任意数量的可同时活动的TCP连接,在编译时最大数量的可配置项。l 任意数量的被动式听(服务器)TCP连接,在编译时最大数量的可配置项。l 商业和非商业用途免费。l 符合RFC的TCP和IP协议的实现,包括流量控制,分片重组和重传超时估计。uIP的配置项都保存在一个单一的.h文件中称为uipopt.h。此文件包含的不仅是具体项目(如uIP的节点同时连接的最大数量的IP地址),而且包含了架构和C编译器特定的选项配置选项。用户可以方便地按照他的要求来修改他们。由于其明显的优势,uIP已被越来越多的开发商密切关注,并在设立小型网络设备的嵌入式产品和项目中大量使用。3 uIP的移植uIP是在网络层中,上述提到的协议被称为应用程序。同样,底层被称为网络设备驱动程序。在TCP /IP模型中,如PPP数据链路层协议,可以由网络设备驱动程序来实现应用层协议,如HTTP、FTP、SMTP,可以通过应用程序实现。uIP的底层系统提供了三种函数,uip init(),uip input()和uip periodic()。应用程序必须提供一个回调函数(UIP_APPCALL()给uIP。网络或定时事件发生时,回调函数被使用。uIP的交互与应用程序提供了多项功能堆栈。用这种方式,uIP的是非常普遍的和独立的。它是非常方便的把uIP移植到不同的系统,以满足不同的应用,这反映了TCP / IP协议的平台的独立性。图2展示了uIP,底层系统和应用程序之间的关系。图2 uIP 可以作为库3.1 uIP系统接口从系统的角度来看,有两个C函数:uip_input()和uip_periodic()3。函数uip_input()被调用当网络设备驱动程序读入一个IP数据包到数据包缓冲区(即uip_buf),此函数将处理数据包,并在必要时调用应用程序。当uip_input()函数返回,一个开放的数据包被放置在数据包缓冲区。传出的数据包的大小放在全局变量uip_Ien中。如果uip_Ien是零,没有包被发送出去,否则,有其他一些数据(如SYN,ACK等)被送交。当ARP参与,其更新,请求和答复应予以考虑。定期计时器是用于驱动所有uIP的内部定时器事件,如数据包重传。当定期计时器溢出时,uIP函数uip_periodic()被调用,TCP连接一次调用一次,而不管他们是否是开启或关闭。连接的次数作为一个参数被传到uip_periodic()函数中。类似的uip_input()函数,当uip_periodic()函数返回时,一个出站IP数据包可能被放入数据包缓冲区,如果uip_Ien变量被设置为一个大于零的值。设备驱动程序应该被调用去发送数据包。图3显示uIP如何处理数据包的细节。在那里,UIP_CONNS宏表示同时打开的TCP连接的最大数量;uip_arp_ipin()是指传入IP数据包的ARP进程;uip_arp_arpin()是指ARP传入的ARP数据包的进程;uip_arp_out()是指假设以太网头到IP数据包,看看我们是否需要发送一个ARP请求;emac_tx_start()是指通过以太网MAC的方式发送包ADSPBF537 EZ-KIT Lite。从本质上讲,uip_input()和uip_periodic()是相同的功能,这是uip_process(U8标志位)。uIP定义uip_input为uip_process(UIP_DATA),并且定义uip_periodic()为uip_process(UIP_TIMER)。因此,这段代码是完全可重复使用。图3 uIP 过程数据包3.2 uIP的应用接口uIP使用基于编程模型的事件,它调用应用程序,当接收数据时,当数据已经成功传递到连接的另一端,当一个新的连接已经建立,或当数据被重传。同时,应用程序还定期轮询新的数据。为了被uIP调用,应用程序必须被定义为一个C函数,UIP_APPCALL()。此函数被实现为C宏将评估零或非零。如果在uIP从底层系统收到数据后,数据包需要由应用程序处理,uIP将会调用VIP_APPCALL()。表1是一个部分函数的总结,这些函数是由uIP提供给应用程序的4。接口函数应用程序事件uip_listen()开始侦听端口uip_send()在当前连接中发送数据uip_acked()发送已经被确认的数据uip_newdata()远程主机发送新的数据uip_datalen()传入数据的大小uip_connect()连接一个远程主机Uip_connected()当前的连接已经被连接uip_poll()应用正被调查uip_close()关闭当前连接uip_abort()中止当前连接Uip_stop()停止当前连接表1 uIP 函数总结4 嵌入式网页服务器的实现这是一个基于HTTP的Web服务器的例子,HTTP由uIP提供的源代码。Web服务器使用一个简单的文件系统,在数据存储器中保存静态网页。用户可以参考此示例和uIP提供的应用程序接口去实现应用层的编程。在需求方面,本文设立视频点播系统,其结构流程图如图4所示。首先,Web服务器打开端口80检测。一旦客户端计算机检测到访问,uIP分布一个连接给它。在收到从客户端浏览器来的申请“GET HTTP.”后,在数据存储器中的相应的网站将被发送。其次,Web服务器收到访问征用时,客户要求访问媒体文件,它会搜索并找到媒体服务器请求的文件。在此之后,客户在媒体服务器和播放器之间建立一个稳定的连接。最后,媒体服务器发送相互关联的媒体文件给客户端。在客户端收到数据包后,他们首先被存储在计算机的缓冲区,然后将会在播放器中被播放。图4 视频点播系统一旦用户关闭浏览器,uIP将会自动审查这一事件(使用uip_closed()来检查应用程序),并释放此连接。由于此方案采用直接调用客户端播放器的方式,用户可以立即通过在网站上建立的播放器来观看视频,不需要再次启动媒体播放器。媒体服务器安装在Windows 2003服务器上,可以保留需要的媒体文件。5 结论嵌入式Web服务器连接到校园网。通过客户端的IE浏览器访问,如图5所示该网站将被调回。嵌入网站中的媒体播放器是Windows媒体播放器,它支持如ASF,AVI,WMV等大多数主流视频文件。如果有必要,解码器可以更新以便支持更多的视频格式。你可以在网站上使用下拉列表来选择喜欢的视频播放器,并通过播放,停止,前进,后退以及调整音量控制视频,此外,双击使播放器全屏幕显示。通过测试,这台网页服务器工作稳定,拥有满意的数据传输速度,保持系统的简洁与便利,它适合一个小型的局域网网络。图5 应用效果目前,互联网已覆盖了整个世界;Web服务器变得越来越重要。然而,传统的Web服务器拥有高处理能力和巨大的存储容量,需要一个PC或工作站硬件平台和一个非实时操作系统软件平台。这种服务器上的程序是庞大而复杂的。这种Web服务器并不适合工业控制领域。随着嵌入式Web服务器的发展,这种局面将被彻底改变。虽然嵌入式TCP/IP的应用还在研究中,目前仅实现了数据的传输这个阶段。但是在未来,嵌入式TCP /IP设备将通过互联网实时显示图像和视频。甚至你可以通过您的手机观看现场比赛。到那时,嵌入式TCP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海理工大附中2026届化学高一第一学期期末学业水平测试模拟试题含解析
- 2025健康体检师异常指标分析真题及答案
- 2025年基础医学常识试题及答案
- 康复辅助技术咨询师实际操作考核试卷及答案
- 2025年三甲医院笔试题型及答案
- 2025年放射主管技师试题及答案
- 2025年假肢装配工程师职业技能测验题及答案
- 2026届山东省聊城市化学高一上期末统考模拟试题含解析
- 城投会计面试题目及答案
- 2022年顶管施工岗前安全教育培训试卷
- 2025年四川省泸州市中考道德与法治真题(原卷版)
- T/CAQI 210-2021果蔬清洗装置
- 公司挂靠安全协议书
- 2023驾驶人数字化体检系统基本功能及技术要求
- 【MOOC答案】《光纤光学》(华中科技大学)章节作业期末慕课答案
- 2025-2030年中国铜精粉产业营运走势与投资前景展望研究报告
- 江苏扬州大数据集团子公司招聘笔试题库2025
- DB37-T5321-2025 居住建筑装配式内装修技术标准
- 深圳协议二手车合同模板
- 酒厂车间员工管理制度
- DB21T 3722.7-2025高标准农田建设指南 第7部分:高标准农田工程施工质量评定规范
评论
0/150
提交评论