基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)

上传人:飞*** 文档编号:2995253 上传时间:2017-07-29 格式:DOC 页数:8 大小:318KB
返回 下载 相关 举报
基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)_第1页
第1页 / 共8页
基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)_第2页
第2页 / 共8页
基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)_第3页
第3页 / 共8页
基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)_第4页
第4页 / 共8页
基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)》由会员分享,可在线阅读,更多相关《基于精简TCPIP 协议栈的信息家电网络服务器(学位论文-工学)(8页珍藏版)》请在金锄头文库上搜索。

1、基于精简 TCP/IP 协议栈的信息家电网络服务器作者:陈 武 雷 航 文章来源:单片机及嵌入式系统应用引言S1C33209 是 EPSON 公司推出的 RISC 结构的 32 位高性能 CMOS 微处理器,具有高速、低功耗、低电压操作、精简指令集等特点,提供乘与累加功能,既可用于办公设备,也特别适用于需要高级数据处理的便携设备,可以进行高速运算、灵活的 I/O 口控制和高效的数据操作。 S1C33209 具有 8KB 的内部 RAM,其运算速率可达 60MHz,加上优化的多数为单时钟周期的指令集,使 S1C33209 吞吐量大为提高。S1C33209 比常规 MCU 有更快的运算速度及可靠的

2、性能、可重复编程的结构,使得精简的 TCP/IP 能够在其中可靠运行。1 硬件平台结构及设计信息家电远程访问时,通信数据量不大,10M 以太网的通信速率即可满足要求;其次信息家电对实时性的要求不高,可定位在秒级。在这种情况下,构造了家电网络硬件平台服务器 S1C-WebServer,其结构如图 1 所示。S1C33-WebServer 主要由三部分组成,即 S1C33209 微处理器、RTL8019AS 全双工以太网控制器(RealTek 公司出品,100 脚的 TQFP 封装,最大速率 10Mbps,自带 16KB 的 SRAM,工作在 Ethernet II 和 IEEE802.3、10B

3、ase5、 10Base2、10BasetT 下,全双工,支持 8 位与 16 位数据总线,与 NE2000 兼容)、可擦写 Flash(采用 Intel 的 E28F320,容量为 4MB)。考虑到 Flash 的擦写在程序调试中不太方便,所以为 S1C33209 外围扩展 512KB 的 SDRAM。在 S1C33209 中,运行用户程序和 S1C33-Stack。在 Flash 中,存放 S1C-WebServer 的各种 Web 资源信息,综可处理 Web 页面、图像文件等,与 PC 机上 WebServer 中的硬盘可以存储大量的不同页面。Flash的容量决定了 WebServer

4、的资源文件的大小。RTL9019AS 是 Ethernet 控制器,负责 S1C33209 与 Ethernet 的数据传递。在信息家电已具备 RS232 或相关标准接口的条件下,使用家庭自动化总线 HAB(Home Automation Bus)作为 S1C33-WebServer 与家庭网络协议 SHNP(Simple Home Networks Protocol)。家电通过 RS232 接口与 S1C33-WebServer 连接,经由 EEthernet 接入 Internet。经过分析,S1C33209 与 RTL8019AS 读写时序是兼容的,而且 MCU 的读写时延比 RTL80

5、19AS 小得多。MCU 与 RTL8019AS 的连接如图 2 所示。RTL8019AS 的工作电压为 5V,而 S1C33209 的工作电压为 3.3V,所以 RTL8019AS 的数据线输出需要电平的转换。选用 2 个 8 位(采用 16 位数据总线)的具有双向数据传输功能的 74HC245 来完成,由于 S1C33209 的输出电平符合 RTL8019AS 输入电平的要求,所以地址线可以直接相连,而不需电平转换,RTL8019AD 中断信号(INT0)为高电平有效,在 S1C33209 中选用端口中断输入的 K60 端口与之相连。由于 S1C33209 的中断有效方式(高、低电平或脉冲

6、)可以根据对寄存器的设置调节),所以不用对 INT0 作反向或电平转换。2 精简 TCP/IP 协议栈的实现构建的 S1C33-Stack 运行在以 S1C33209 嵌入式 CPU 为基础的硬件平台上,是一组可配置的多种 Internet 协议的组成。这些协议按照分层协议栈的方式组织,包括应用层的 HTTP、DHCP、 SMTP,传输层的 TCP、UDP ,网络层的 IP/ICMP、ARP,通过链路层和物理层(如 Ethernet)进行数据的交互。S1C33-Stack 的结构模型如图 3 所示。S1C33-Stack 利用 S1C33 的高速处理能力处理 TCP/IP 数据包,避免了在有限

7、容量的 RAM 中缓存大量数据,使得控制器可以处理比内部 RAM总线更多的数据包。利用嵌入的 S1C33-Stack,Webserver 能通过 Hypertext Transfer Protocol(HTTP)与任何浏览器通信,能够提供各种类型的资源,如 HTML、图片文件等。这些资源可以使用一种特殊的文件系统 URI,被存放在容量为 4MB 的 Flash 中。这种文件系统可包含任意多的目录,对 URL 的长度也没有限制。考虑到嵌入式系统的可用资源有限,在此采用经过裁减的 TCP/IP 协议栈uIP 。uIP 协议主要包括 TCP/IP 协议组中的四个基本的协议:ARP 、IP、ICMP

8、、TCP。链路层协议,如 PPP,则作为设备驱动在 uIP 底层实现。应用层协议,如 HTTP、FTP、SMTP 则作为应用程序在 uIP 上层实现。(1)地址解析协议 ARP该协议将 IP 地址映射成以太网 MAC 地址。在 uIP 中,ARP 的执行依靠维持一张表来完成 IP 地址和 MAC 的地址的映射。当有一个 IP 数据包要发送到以太网上时,从 ARP 表中查询相应的 MAC 地址。如果在 ARP 表中找不到 IP 地址则送出相应的 ARP 请求。当目的主机收到 ARP 请求报文后,发送 ARP REPLY 报文将请求的 MAC 地址送出。当收到 ARP REPLY 后,ARP 表被

9、更新。每隔 10s,ARP 表就被新新一次,旧的 ARP 表项将被删除。每个 ARP 表项的生存周期是 20min。(2)网间协议 IP在 uIP 中,IP 层的代码有两个功能:验证到来的 IP 报文报头的正确性,并且对 TCP 和 ICMP 报文实行分流。因为不考虑 IP 的分片和重组,uIP 中 IP 层的代码非常的精简。(3)网间报文控制协议 ICMP在 uIP 中,仅有一种类型的 ICMP 信息被实现:ICMP ECHO 主要用于应用程序 ping,检查网络是否连通。在 uIP 中,ICMP ECHO 通常以一种很简单的方式进行处理;将 ICMP 类型由 “ECHO”改为“REPLY”

10、,同时调整 ICMP 校验,交换发送方和接收方的 IP 地址。(4)传送控制协议 TCP为了减少对内存的使用,在 uIP 中,TCP 并不使用滑动窗口来接收和发送数据,到达的 TCP 报文并不进行缓冲而是立刻交给应用程序处理。但是应用程序本身可以对要发送的程序本身可以对要发送的数据进行缓冲,因为每次连接中通常有若干的TCP 报文要发送。 uIP 网络通信模块结构如图 4 所示。网络通信需要要底层 RTL8019AS 驱动程序的支持,参考 RTL8019AS 与 S1C33209 的资料说明文档,编写出针对此系统的 RTL8019AS 驱动。uIP 并不缓存到达的数据包,当网络上有数据包(在这里

11、专指出太帧)到达网卡时,网卡驱动程序将暂存在网卡缓存中的数据包,一次一个的以 DMA 形式传送到目标板上的 RAM 中。这时将会有一段代码将到达目标板 RAM 中的数据包复制到全局数组 uip_buf中,uIP 协议栈程序随后对 uip_buf中的数据进行操作。当上层应用程序或协议栈程序产生了向网络上发送的数据包时,也将数据包放入uip_buf。然后调用网卡驱动程序,将 uip_buf中的数据读到网卡的缓存中,随后发送到网络中。在此要说明一下协议栈与网卡驱动程序、应用程序之间的同步机制问题。在系统初始化的时候,通过操作系统提供的系统调用 vcre_tsk()创建三个任务:任务一(task1),

12、uIP 协议栈;任务二(task2),家电监控程序;任务三(idle_task ),空闲任务。而网卡驱动程序则作为硬件中断,由“检测到网络上传过来数据包”事件激发。整个协议栈程序流程图如图 5 所示。任务一的优先级最高,任务二次之,任务三的优先级最低。当系统开始运行时,任务一首先进入 RUN 状态,在任务一中加入系统调用 wai_flg(),由于没有网络请求,任务一随后进入 WAIT 状态。此时任务二进入 RUN 状态。当网络上有数据包到达,网卡驱动程序作为硬件中断开始执行。在退出中断前,通过系统调用 set_flg(),将任务一期望的标志位置位。当中断返回后,由于任务一的等待条件已经满足,任

13、务一的优先级又高于任务二,因此任务一进入 RUN 状态,即 uIP 协议开始处理数据。如果网络上一直有数据包到达,则任务一和中断程序不断的切换。当网络任务完成,返回到任务二的断点处继续向下执行。由于 uIP 不缓存网络数据,因此在任务一执行的过程中,即 uip_buf正在被操作时,将关闭所有中断。这样可以避免数据包被破坏,缺点是实时性差了一些,但是满足本系统要求。3 操作系统本系统使用的操作系统是由 EPSON 公司提供的 ROS33V31。ROS33 是为 S1C33 系列 MCU 提供的一种嵌入式实时操作系统,符合 uITRON 3.0 标准。使用 ROS33 可以迅速、有效地开发针对打印

14、机、PDA 以及各类控制设备的嵌入式应用程序。ROS33 具有以下特点:*支持 uITRON 3.0 标准符合该标准的 S 级*最大任务数为 255,采用优先级调度机制,支持 9 种不同的优先级,提供信号灯、邮箱、消息缓冲等多种通信机制:*内核优先并紧凑最小可为 1.7K;*响应快最快调度响应时间为 7.8S(CPU 主频为 33MHz,下同 ),最大中断屏蔽时间为 4.3s ;*高级语言支持除汇编语言外,还支持基于 ANSI 标准的 C 语言编程。注释:ITRON 将系统功能分成四级。 R 级(必要级)只提供包括实时、多任务 OS 所需的基本系统调用;S 级(标准级)提供所有标准的系统调用;

15、E 级(扩展级)包括附加的和扩展的系统功能;C 级(CPU 依赖级)的系统功能依赖于具体的CPU 和系统实现方式。ROS33 基本内核按功能划分为 6 大部分:*任务管理负责系统中任务状态的变迁;*任务相关的同步管理通过睡眠/唤醒、挂起/解挂等操作,处理相关任务及任务之间的同步关系;*同步与通信通过信号灯、事件、邮箱等通信机制,实现独立任务之间的同步与通信;*系统管理对系统环境的管理;*时钟管理日历时钟、定时器、定时任务等的管理;*中断管理开/关中断。图 6 给出了 ROS33 内核的概念模型。4 Web 服务器及上层应用程序框架WEB 服务器所采用的方式称为 uip_connect,比通常在

16、设计中所使用的 Socket 套接字更适合于嵌入式系统下面即是 WEB服务器的大体框架。#includevoid http_listen_init(void)uip_listen(80); /http listen 初始化void listen_init(void)http_listen_init();void application(void)if(uip_connected() /如果当前的连接状态为 connectedswitch (uip_conn-lport)case htons(80):httpd; /如果 80 PORT 有数据到达,则调用 HTTP 处理 HTML 文件的传送首先,服务器与客户机建立连接,再通过侦听端口 80,判断是否有客户请求到达,若有则将调用应用程序 httpd 进行相应处理,否则,继续侦听。Httpd 是用于处理 HTTP 请求的应用程序,具体设计在协议栈 uIP 中有描述。uip.h 是协议 uI

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号