




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本本 科科 生生 毕毕 业业 论论 文文 题 目:基于 internet 的测控系统的设计 院 系:信息科学与技术学院电子与通信工程系 专 业:电子信息科学与技术 学生姓名: 学 号: 指导教师: (职 称) 二 九 年 四 月 摘摘 要要 随着 internet 技术的不断普及推广,以此为基础的各种应用不断地被开发以及 应用。本文主要介绍一种基于 internet 技术的远程家庭设备测控系统,即远程计算 机通过 internet 与家庭设备测控系统连接,以实现对家庭设备的监视与控制等功能。 本系统的设计可以划分为三个模块。首先是家庭设备控制系统,即以八位单片 机为控制核心的嵌入式系统,以实现
2、家庭设备检测信息的收集和远程控制信息的发 送的功能。其次是网络连接模块,主要采用 wiznet 公司的 w5100 网络接口芯片的 internet 接入模块,实现跨网的 internet 的连接。使用 w5100 最大的特点是可以 实现没用操作系统的 internet 的连接。第三个模块是 web 功能模块,以实现操作人 员在远程计算机上通过 web 浏览器获取家庭设备的信息以及发送控制命令的功能。 该模块主要涉及 http 协议、cgi 技术。 本文所设计远程家庭设备测控系统,具有成本低,体积小,易实现等特点,是 一种可以推广的、实用的系统。 关键词:关键词:嵌入式系统 w5100 int
3、ernet 接入 web 技术 http 协议 abstract with the popularity of internet technology ,a variety of applications based on it constantly are being developed and applied. this paper introduces an internet-based remote home monitoring and controling technologies systems.the remote computer implement the home sec
4、urity surveillance and control functions through the internet and home control systems. the design of the system can be divided into three modules. first of all, home control systems,which is using a single-chip to control this systems, can receive information from home security equipments and send
5、control command from remote computer to those equipments. followed by the network connection module, mainly using w5100 network interface chip of wiznet company, implement internet connection. the most important feature of w5100 network interface chip is realizing internet connection without operati
6、ng system . the third module is a web function modules. this module is to achieve up geting information from home monitoring and control system and sending control commands through web browser. the module is mainly related to http protocol and cgi technology. this remote home monitoring and control
7、system has the feature of low cost, small size, easy to achieve,and so on.it is a replicable, practical system for our live. keywords: embedded systems;w5100;internet access;web technology;http protocol 目目 录录 第一章第一章前言前言.4 第二章第二章系统的关键技术及实现系统的关键技术及实现.6 2.1家庭总线.6 2.2tcp/ip 通信.7 2.2.1tcp/ip 协议简介.7 2.2.2
8、w5100 芯片的简介.8 2.2.3mcu 与 w5100 的连接.11 2.3web 服务器技术和原理.13 2.3.1web 服务器原理.13 2.3.2http 协议.14 2.3.3cgi 原理.14 2.3.4嵌入式服务器特点.15 第三章第三章系统软件的设计系统软件的设计.17 3.1总体程序的设计.17 3.2网络通信程序的实现.18 3.3.1w5100 的初始化.18 3.3.2w5100 的数据通信.18 3.3web 服务器功能的实现.23 3.3.1嵌入式 web 服务器的工作流程.23 3.3.2嵌入式 web 服务器的主要函数及功能.25 第四章第四章结论结论.2
9、7 参考文献参考文献.28 致谢致谢.29 附录附录.30 第一章第一章前言前言 在当前信息技术日益成熟和普及的背景下,其所涉及的应用领域越来越广泛, 对我们日常生活也有了很大的影响。其中家庭用电设备测控系统的应用就是一个典 型的代表。该系统通过 internet 的连接,实现家庭设备与远程计算机信息的交换,以 达到对家庭设备的监控。 在之前大多数的研究方案中,为实现该系统,大部分的研究者均采用一台位于 家庭室内的计算机作为家庭设备信息采集的控制器,然后通过该计算机与网络的连 接,将信息与远程计算机进行交换。例如此类系统采用b/s技术框架, 简化客户端电 脑负荷,用户通过浏览器来实现远控功能,
10、 利用计算机并行接口连接多个保持继电器, 以实现对家庭电器的开关控制1。这种设计方案由于计算机的功能齐全,实现的时 候固然是简单易行,但是很明显的缺点是成本高,稳定性低。 从如今嵌入式系统技术的发展成熟的角度来看,我们新的设计方案会很自然地 采用这种设计思路。嵌入式系统的特点正是我们所需的:低成本、稳定性高、易实 现。新方案实现的关键在于以嵌入式系统取代计算机作为家庭设备信息收发的控制 系统。 在前人开发的“计算机internet计算机”的测控系统中,实现计算机的 网络互联是很容易的。而在我们的设计方案中,实现的是“嵌入式系统internet 计算机”的系统。嵌入式系统与网络的连接方案可以有两
11、种。第一种常被人们采 用的方案是软件实现的方式,即在 mcu 中装载实现网络协议的程序,再通过与以 太网控制芯片的连接实现接入网络。这种连接方案的不足之处在于网络协议的复杂 性使得相关程序在应用时会较大地占用 mcu 硬件资源,从而影响整个系统的性能。 而且实现这种连接方式的 mcu 硬件资源必须较为丰富,如 arm 处理器,这样也在 一定程度上增加了成本。 因此我们有必要设计另外一种更为有效的方案。该方案采用支持硬件化 tcp/ip 协议的芯片,如 wiznet 公司的 w5100 网络接口芯片,实现嵌入式系统接入网络。我 们可以采用“嵌入式系统w5100 网络接口芯片internet计算机
12、”的模式。 在这种模式下,不必通过软件实现网络协议,可以降低 mcu 的要求,从而也提高 了系统的稳定性。图 1-1 为本文设计的系统模型图。 internet 单片机单片机 系统系统 家庭设备家庭设备 1家庭设备家庭设备 2家庭设备家庭设备 3 远程 pc 机 web 页 面 图 1-1 系统模型图 当该系统正常工作时,用户可以通过 internet 网络进行访问,以实现设备的远程 控制;相应转换器采集到的家庭设备信息触发信息控制终端,将信息通过家庭总线 系统发往控制核心,并通过相应的网络控制模块将信息通过 internet 发送到远程请 求浏览的 pc 机。亦可以由该系统根据远程 pc 机
13、的命令设置家庭设备的状态。本文 研究内容主要安排如下: 第一章前言:介绍基于 internet 的远程测控系统的研究背景,举出当前人们的研 究方向以及成效,对比已有成果提出另一种新的设计设计方案,并简单概述。 第二章:描述系统实现过程中重要的技术和协议。主要涉及网络通信协议层到 应用层的技术。在本设计中,提出以硬件实现 tcp/ip 协议的方案,实现基于芯片 w5100 的网络连接。并在此基础上实现 http 的应用,提出设计嵌入式服务器的思 路。 第三章:系统软件设计的实现。首先提出主程序的架构,然后主要介绍 tcp/ip 通信和嵌入式服务器的实现。 第四章结论:对设计做出总结,提出不足以及
14、改进的方法。 第二章第二章系统的系统的关键技术及实现关键技术及实现 2.1家庭总线家庭总线 在本设计中,以8位的单片机作为控制核心,因为8位单片机资源丰富、性价比 高,目前应用最为广泛2。并外接必要的电路。mcu通过家庭总线系统与各家庭设备 连接。图2-1即为系统的模型图。 m c u 现场总线现场总线 转换器1 转换器2 转换器3 家庭设备 1 家庭设备 2 家庭设备 3 必需的外部 电路 网络接入 家庭设备测控系统硬件电路主要由at89c51单片机、a/d转换器等等部分组成3。 系统中的现场总线可以采用一种基于sci(uart)数据格式的低成本的单总线串行 通信协议的总线lin总线。lin
15、总线最开始是出现在汽车制造行业,后来也应用 于智能家庭网络之中。作为串行通讯方式的现场总线的一员,lin总线除了具有现场 总线的一般特点外, 还具有其自身独特的特点4:(1)基于uart通用接口, 几乎所有 微控制器都具备实现lin所必需的硬件, 易于实现, 硬件成本低。(2)lin是一种单数 据线总线, 系统的布线量少(加上电源和地线, 只需要三根线就可以实现节点间的串 接)。(3)通讯方式为单主控器多从设备模式, 无需仲裁机制。数据传输速率最高达 图 2-1 家庭设备测控系统结构图 20kbit/s。网络标识有64个, 但网络节点一般不超过16个。 2.2tcp/ip 通信通信 2.2.1
16、 tcp/ip 协议简介协议简介 在互联网的 tcp/ip 参考模型中,tcp/ip 协议层处于物理层、网络接口层之上, 应用层之下5 5。所谓的 tcp/ip 是指在互联网上通信协议的总称,是 tcp 和 ip 这两 个有代表性的协议的名称合在一起组成的。tcp/ip 作为互联网的协议急速发展,现 在它成为世界标准的通信协议。可以互访的计算机基本上全都安装了具有 tcp/ip 的 操作系统6。 在本设计中,选用的通信模式是 tcp 模式。tcp 是以连接为基础的通信方式, 它必须首先建立连接,然后利用连接的 ip 地址和端口号进行数据传输。tcp 有两种 连接方式:一种是服务器模式(被动开启
17、) ,即等待接受连接请求以建立连接;另一 种是客户端模式(主动开启) ,即发送连接请求到服务器。图 2-2 是 tcp 模式的两 种不同的连接方式。 图 2-2 tcp 模式的两种连接方式 考虑到本文所设计的系统是由远程计算机进行控制,因此我们采用的通信连接 方式为服务器模式。在这种模式下,嵌入式系统时刻侦听来自远程 pc 机的信息。收 到连接请求进行成功的连接之后就可以收发数据。 2.2.2 w5100 芯片的芯片的简介简介 在本设计中,考虑到核心控制器资源的有限性,以一款全新的网络接口芯片 w5100 硬件实现 tcp/ip 协议,取代传统的软件实现方法。w5100 内部集成了全硬件 的、
18、且经过多年市场验证的 tcp/ip 协议栈、以太网介质传输层(mac)和物理层 (phy) 。硬件 tcp/ip 协议栈支持 tcp,udp,ipv4,icmp,arp,igmp 和 pppoe,这些协 议已经在很多领域经过了多年的验证。w5100 内部还集成了 16kb 存储器用于数据传 输。使用 w5100 不需要考虑以太网的控制,只需要进行简单的端口(socket)编程7。 w5100 具有丰富的功能,极大方便了使用者。其特点如下列所示: 支持硬件化 tcp/ip 协议:tcp,udp,ipv4,icmp,arp,igmp,pppoe,以太网 内嵌 10baset/100basetx 以
19、太网物理层 支持自动通信握手(全双工和半双工) 支持自动 mdi/mdix,自动校正信号极性 支持 adsl 连接(支持 pppoe 协议中的 pap/chap 认证模式) 支持 4 个独立端口同时运行 不支持 ip 的分片处理 内部 16kb 存储器用于数据发送/接受缓存 0.18cmos 工艺m 3.3v 工作电压,i/o 口可以承受 5v 电压 80 脚 lqfp 小型封装 环保无铅封装 支持 spi 接口(spi 模式 0、3) 多功能 led 信号输出(tx、rx、全双工/半双工、地址冲突、连接、速度等) 图 2-3 为 w5100 芯片 80lqfp 封装的管脚示意图。 图 2-3
20、 w5100 芯片的管脚 w5100 的 80 个管脚信号,可以归类分为 mcu 接口信号引脚、以太网物理层信 号引脚、电源引脚、时钟信号引脚、led 信号一脚以及其他信号引脚。其中 w5100 的第 5、6、8 和 9 引脚是 phy 信号线,用于与 rj45 接口相连接,以接入网络。 w5100 内部寄存器主要有两种:通用寄存器和端口寄存器。主要寄存器的作用 如下说明。 通用寄存器:通用寄存器: mr(模式寄存器):该寄存器用于软件复位、ping 关闭模式、pppoe 模式以及 间接总线接口。 gwr(网关 ip 地址寄存器): 该寄存器设置默认网关地址。 subr(子网掩码寄存器): 该
21、寄存器用来设置子网掩码(subnet mask)值。 shar(本机物理地址寄存器): 该寄存器用来设置物理地址。 sipr(本机 ip 地址寄存器): 该寄存器用来设置本机 ip 地址。 ir(中断寄存器): cpu 通过访问该寄存器获得产生中断的来源。 imr(中断屏蔽寄存器):用来屏蔽中断源。 rtr(重发时间寄存器):该寄存器用来设置溢出的时间值。每一单位 100 微秒。 rcr(重发计数寄存器):该寄存器的数值设定可重发的次数。若重发次数超过 设定值则产生超时中断。 rmsr(接收存储器空间大小寄存器):该寄存器配置全部 8k 的 rx 存储空间到 各指定端口。 tmsr(发送存储空
22、间大小寄存器):用来将 8k 的发送存储区分配给每个端口。 端口寄存器:端口寄存器: sn_mr(端口 n 模式寄存器):该寄存器设置相应端口的选项或协议类型。 sn_cr(端口 n 命令寄存器):该寄存器用来设置端口的初始化、关闭、建立、 断开连接、数据传输以及命令接收等。 sn_ir(端口 n 中断寄存器):该寄存器指示建立和终止连接、接收数据、发送 完成以及时间溢出等信息。 sn_sr(端口 n 状态寄存器):该寄存器指示端口 n 的状态数值。 sn_port(端口 n 的端口号寄存器):该寄存器在 tcp 或 udp 模式下设定对应端 口的端口号。 sn_dhar(端口 n 的目的物理
23、地址寄存器):设置每个端口的目的物理地址。 sn_dipr(端口 n 的目的 ip 地址寄存器):tcp 模式下,该寄存器设置端口的目 的地址。udp 模式下收到 arp 响应后该寄存器才确定用户写入的值。 sn_dport(端口 n 的目的端口号寄存器):tcp 模式下,该寄存器设置端口的目 的端口号。udp 模式下,收到 arp 响应后,该寄存器才确定为用户写入的值。 sn_tx_fsr(端口 n 发送存储器剩余空间寄存器):指示用户可使用的发送数据 空间的大小。 sn_tx_rr(端口 n 发送存储器读指针寄存器):该寄存器指示端口在发送过程 完成后发送存储器的当前位置。 sn_tx_w
24、r (端口 n 传输写指针寄存器):指向 tx 存储器写入数据时的地址。 sn_rx_rsr(接收数据字节数寄存器):指示端口接收数据缓冲区中接收数据的 字节数。 sn_rx_rd(端口 n 接收缓冲区读指针寄存器):指示端口接收过程完成后的读 地址信息。 2.2.3 mcu 与与 w5100 的的连接连接 w5100 与 mcu 的连接方式有三种:直接总线接口、间接总线接口和 spi 总线接 口。 w5100 与 mcu 接口非常简单,就像访问外部存储器一样。 直接总线接口:直接总线接口: 直接总线接口采用 15 为地址线,8 位数据线,另外加/cs,/rd,/wr 及/int 等信 号线。
25、如图 2-4 所示。 图 2-4 直接总线接口 间接总线接口:间接总线接口: 间接总线接口采用 2 位地址线,8 位数据线,另外加/cs,/rd,/wr 及/int 等信 号线。14:2没用到的地址线经过电阻接地。如图 2-5 所示。 图 2-5 间接总线接口 spi 总线接口:总线接口: 串行接口模式只需要 4 个引脚进行数据通信。这四个引脚的定义分别为: sclk、/ss、mosi、miso。w5100 的 spi_en 引脚选择 spi 操作。如图 2-6 所示。 图 2-6 spi 总线接口 w5100与主mcu 采用中断的方式进行通信,以太网模块被客户端唤醒,接收到控 制命令,则通过
26、中断触发启动对w5100的接收数据读取和数据的发送。为了方便mcu 判断w5100的工作状态,也必须将w5100的中断引脚int与mcu的外部中断线相连接。 2.3web 服务器技术和原理服务器技术和原理 2.3.1 web 服务器原理服务器原理 web 是 www(world wide web)的简称,即 web 等同于 www。web 是互联网提供信 息的一个手段。通过这种手段,能够实现以页面为单位管理庞大的信息及其之间的 联系,并且可以对其进行无缝检索6。作为应用层的实现,web 是建立在 tcp/ip 协 议之上的应用。 web 的功能是基于 b/s(browser/server)的模
27、型实现的。从功能上讲,服务器 监听用户端的服务请求, 根据用户请求的类型提供相应的服务, 用户端使用 web 浏 览器和 web 服务器进行通信。web 服务器在接收到用户端的请求后,处理用户请求并 返回需要的数据。图 2-7 是 web 的 b/s 模型图。 图2-7 web的b/s模型图 web 服务器是以发送 web 信息为目的而发挥功能的,因此,web 服务器软件是常 驻内存的,无论何时都可以对来自客户端的要求做出应答。客户端和服务器之间是 通过使用称为 http 的协议进行交换的,web 服务器对应于来自客户端的要求,发送 html 信息或者是图形信息。 2.3.2 http 协议协
28、议 http( 超文本传输协议) 是web 服务器用来与浏览器通信的协议,http 规定了 发送和处理请求的标准方式,规定了浏览器和服务器之间传输的消息格式及各种控 制信息,从而定义了所有web通信的基本框架8。 http协议主要是为了传送超文本,而所谓的超文本(hyper text)是文本和文 件,或者文件和多媒体信息(语言、照片、动画等),与此相关联的可能内容的总 称。用作web网页制作时的html(hyper text mark up language)是最有代表性的。 http 在 tcp/ip 中位于应用层。实际上 web 服务器和 web 浏览器进行交换的时候, 在双方的应用层,h
29、ttp 之间通过反复的请求和应答,实现 web 信息的收取和发送。 2.3.3 cgi 原理原理 cgi(common gateway interface)即通用网关接口,是一种实现 web 服务器动 态服务的手法。采用 cgi 技术,可以实现浏览器与嵌入式 web 服务器的动态数据交 互。cgi 程序保存在服务器中,当 web 页面打开时客户端调用 cgi 应用程序9。 cgi 定义了 web 服务器与 cgi 脚本之间的接口标准。其主要功能是在 web 环境 下, 从客户端传送信息给 web 服务器,web 服务器把接收到的有关信息放入环境变 量,然后再去启动所指定的 cgi 脚本以完成特
30、定的工作, cgi 脚本从环境变量中获 取相关信息来运行, 最后以 html 格式输出相应的执行结果返回给浏览器端。由于 用户能传递不同的参数给 cgi 脚本,所以 cgi 技术使得浏览器和服务器之间具有交 互性。cgi 在整个数据传送的过程中, 要从 web 服务器传递有关数据给 cgi 脚本, 因此 web 服务器先将从浏览器接收到的有关数据转换为各种环境变量, 然后 cgi 脚 本就可以从这些环境变量中读取所需要的内容。也就是说,环境变量是 web 服务器 和 cgi 脚本进行数据传递的途径。图 2-8 所示为 cgi 运行示意图。 图 2-8 cgi运行示意图 cgi输入方式是使用ht
31、ml表单向web服务器发送信息。基本语法如下10: 。method属性指定将数据传送到 web服务器的方法,输入方法有两种:(1)get方法: 使用get方法时, 表单数据会附加 在所指向cgi 脚本的url后一起发送给web服务器,web服务器将收到的表单数据赋予 环境变量query-string。(2)post方法: 通过使用标准输入(stdin)将表单数据传送 给web 服务器,web 服务器启动指定的脚本, 并将用户提供的数据传入该脚本。 action 属性定义要对表单数据进行处理的cgi 脚本的url。cgi输出方式是将执行结 果送给标准输出(stdout)进行输出,执行结果必须是浏
32、览器能够显示的html 标准格 式。 2.3.4 嵌入式服务器特点嵌入式服务器特点 嵌入式的web服务器有其自身的特点。首先,在嵌入式系统中,由于处理器能力、 存储器容量等等外部条件地制约,嵌入式web服务器不能对系统资源占用量很大的程 序(如:java应用程序)提供支持,也不需处理外部的很大流量的访问,但是要能 够为远程访问、管理和监控设备提供服务支持,且嵌入式的web服务器要做到尽可能 的小。在这样的系统中没有成熟可用的操作系统, 涉及到内存管理、文件管理、进 程管理这样的程序就不能在8位mcu系统中运行。其次,为达到远程管理、监控设备 的目的,必须使客户机能同本地系统进行交互,这种交互可
33、以使用很多种方法来实 现,如:ssi、java serverlet等,但最适合嵌入式系统的方法是通用网关接口 cgi。不过,在8位的mcu中,标准的cgi也是无法完全实现的。最后,在实际应用中, 控制设备的嵌入式服务器的工作流程往往是基本固定的,因此只要实现某一种交互 功能,就可以满足对设备的控制。 基于以上种种考虑,我们设计的嵌入式web服务器是具有cgi功能的。在这种嵌 入式环境中只实现cgi的功能, 没有系统对文件、内存、进程等的管理,但是可以满 足用户和所控制的设备进行交互的要求。该系统web 服务器和web 浏览器需进行必 要的交互,因此遵循http 协议,也符合cgi标准和web基
34、本原理。通常cgi是作为单 独的可执行文件来运行的,在该系统中cgi是web服务器的一部分。在该系统中没有 标准的输入输出,cgi函数可以直接获取浏览器送来的信息,也可以把数据送回给浏 览器。环境变量是web服务器和cgi进行数据传递的途径。在该系统中没有环境变量, cgi和web服务器在同一程序中实现。 第三章第三章系统软件的设计系统软件的设计 3.1总体程序的设计总体程序的设计 系统必须具备的基本功能包括:可控制与其连接的设备并获取设备的状态和数 据;现场信息可以网页形式发布;可及时响应远程用户的控制命令11。系统的总体 程序的流程图如图3-1所示。 初始化 mcu 开始 初始化 w510
35、0,设 置为 tcp 服务器模 式 w5100 中断事件处 理 处理接收到的数据 端口接收数 据? w5100 事件 中断? y y n n 图 3-1 系统的总体程序流程图 程序启动之后,开始初始化 mcu 和 w5100。其中初始化 w5100 将其设置为 tcp 下的服务器模式,可以通过设置 w5100 相关的内部寄存器来实现。接下来是一个循 环体。通过检测中断寄存器 ir 来判断是否有中断事件发生。如果是端口中断事件发 生,则通过访问端口中断寄存器 sn_ir 来判断是否端口接收数据。在接收到数据之 后,程序进行数据的处理。在数据处理的程序中,主要负责收发数据、解析 http 协议和响
36、应用户的不同请求,发送设备的状态信息或者根据客户端的要求设置设备 的新状态,即实现嵌入式服务器的功能。如果是其他中断事件的发生,如超时等, 进入相应的中断处理。 3.2网络通信程序的实现网络通信程序的实现 3.3.1w5100 的初始化的初始化 通过设置寄存器和存储器,w5100 就可以进行 internet 连接。w5100 的初始化 包括对通用寄存器和端口寄存器的设置。而其中通用寄存器的设置包括基本设计和 网络信息的设置。 通用寄存器的设置通用寄存器的设置 w5100 的操作需要设置一下寄存器的参数: 1、模式寄存器(mr) 2、中断屏蔽寄存器(imr) 3、重发时间寄存器(rtr) 4、
37、重发计数寄存器(rcr) 5、网关地址寄存器(gar) 6、本机物理地址寄存器(shar) 7、子网掩码寄存器(subr) 8、本机 ip 地址寄存器(sipr) 对应的初始化程序用 w5100_initw5100_init()实现。 端口端口(socket)初始化初始化 端口的初始化包括对相应寄存器的设置以及完成端口的连接。 对应的端口初始化程序用 socket_initsocket_init(s)实现。 3.3.2 w5100 的数据通信的数据通信 我们采用的通信连接方式为服务器模式,即 w5100 模块是被动开启。tcp 模式 下以服务器连接方式的数据通信流程图如 3-2 所示。 ope
38、n listen estabished receive data? send data? receive fin? discorr ect? time out? receiving process sending process discorrecti ng process closed? d timeout ? close y y y y y y y y n n n n n nn n 图 3-2 tcp 模式下服务器连接方式数据通信流程图 设置服务器模式,需要设置运行模式和端口号,并在端口命令寄存器打开 (open)端口。建立服务器连接方式的程序用 socket_listensocket_l
39、isten(s)实现。 至此完成了 socket 的打开和设置侦听工作,至于远程客户端是否与它建立连 接,则需要等待 socket 中断,以判断 socket 的连接是否成功。参考 w5100 数据手 册的 socket 中断状态,在服务器侦听模式不需要设置目的 ip 和目的端口号 设置 w5100 为服务器模式的调用过程为: w5100_init()-socket_init(s)-socket_listen(s),设置过程即完成,等待客 户端的连接。 连接成功之后,就可以进行接收或者发送数据了。端口接收和发送数据的流程 图如图 3-3、图 3-4 所示。 读取接收数据的字节数读取接收数据的字
40、节数 计算实际物计算实际物 理偏移量理偏移量 将数据缓存将数据缓存 到数组中到数组中 计算下一次计算下一次 偏移量偏移量 读取接收缓读取接收缓 冲区偏移量冲区偏移量 设置设置 recv 命令,命令, 等下一次接收等下一次接收 开开 始始 返回接收的数据字节数返回接收的数据字节数 图 3-3 端口接收数据的流程图 设置目的主机设置目的主机 ip 端口号端口号 读剩余空间长度寄存器读剩余空间长度寄存器 计算下一次的偏移量计算下一次的偏移量 开始开始 udp 模式?模式? 设置设置 send 命命 令,启动发送令,启动发送 读发送缓冲区偏移量,读发送缓冲区偏移量, 并计算实际偏移量并计算实际偏移量
41、计算实际写入地址计算实际写入地址 把要发送数据从把要发送数据从 tx_buffer 写入写入 发送数据缓冲区发送数据缓冲区 剩余空间足剩余空间足 够?够? 返回返回 false 返回返回 true y n y n 图 3-4 端口发送数据的流程图 w5100 产生的连接成功、终止连接、接收数据、发送数据、超时等事件,都可 以从中断状态中获得。w5100 中断处理可以用中断程序程序 w5100_interrupt_handler() 来实现。 3.3web 服务器功能的实现服务器功能的实现 3.3.1嵌入式嵌入式 webweb 服务器的工作流程服务器的工作流程 web服务器接收到浏览器请求之后进
42、行分析,判断如果如果是get 请求,即没有 从客户端传来参数,则调用设备信息获取函数取得设备的当前状态显示给客户端浏 览器。如果是post请求,web服务器则利用cgi处理模块分解出传来的参数,并通过 设备信息设置函数,设置设备的新状态,同时回送给客户端,客户端浏览器可以和 web 服务器进行交互,以此监控设备的运行。该web服务器只提供跟设备进行必要交 互的cgi功能,对web服务器的其它功能则不支持。原先标准的cgi作为独立可执行文 件完成的功能,现在移到web服务器内部作为一个函数处理,和设备管理函数,即设 备信息获取、设置函数,统一编译后作为一个整体运行。图3-5为嵌入式服务器的工 作
43、流程图。该程序在主程序中实现的功能即为数据处理。 开始开始 读请求,分解请求读请求,分解请求 get/post 读读 请请 求求 设置设备新状态设置设备新状态 分解分解 form 数据数据 读取设备当前状态读取设备当前状态 把数据封装成把数据封装成 html 格式格式 结结 束束 get post 发送数据发送数据 图 3-5 嵌入式服务器工作流程图 3.3.2 嵌入式嵌入式 webweb 服务器的服务器的主要函数及功能主要函数及功能 void http_service(int sd); 该函数是主要处理函数,完成读请求,分析请求,判断是哪种连接请求。把请求中 传来的参数送给cgi处理函数。
44、void cgi_service (char *input); 该函数用来把form提交的数据分解开, 这其实是把标准cgi脚本所做的工作引入 了web服务器程序中。这是因为单片机的资源限制而不能有文件操作所做的一种改进,符 合web和cgi的基本概念,同时解决了单片机中不支持文件操作的问题。 void html_service (char *form_cgi ); 该函数用来把要发送回浏览器的系统状态数据封装成html格式待发送。 void get_status(char *s_list ); 该函数用来获取设备当前状态,根据具体设备来完成。可以把获取到的各个控制 选项值转换为字符型按固定顺
45、序放入数组s_list 。 void set_status (char *s_list ); 该函数从s_list 中取出客户端传来的新参数设置控制设备中相应选项来控制 设备的运行。 void html_formation(char *form_cgi ); 用该函数设置适合的html格式来显示自己的操作界面。把固定显示的数据放入 form_cgi 数组中的相应位置。而每次运行时临时生成的要显示数据初始化时用特 定的标签表示,程序运行时,将实际值读到内存,再用实际值代替标记,生成一个新的 页面12。如图3-6所示。 图 3-6 测控系统的web页面 第四章第四章 结论结论 本文提出了一种基于i
46、nternet网络远程控制家居系统设计方案。该系统采用b/s 技术框架,客户端以嵌入式系统实现,设计一个嵌入式服务器使得用户可以通过浏览 器来实现远控功能。与以往设计方案不同,本设计最大的特点是采用了最新网络芯 片w5100以实现嵌入式系统与计算机的网络通信。在这种设计方案下,网络通信协议 实现简易,而且系统在运行中更为稳定。另外,设计中在应用层上实现b/s结构的应 用则结合了当今internet技术中最为广泛应用的http协议,切合人们日常生活工作 中的实际情况,使得论文设计的系统更趋于实际应用性。 在本文设计中,考虑到成本问题,因此采用的是8位的单片机。但是由于8位mcu 的硬件资源是很有
47、限的,在进一步的研究中,我们可以采用资源更为丰富的mcu(如 32位的arm9等等)来实现类似系统。在这种设计方案中,可以实现的测控功能将更 为丰富。而且可以在这样的微控制器上实现有操作系统的嵌入式服务器(如 linux 嵌入式操作系统),这样整个b/s架构所能实现的功能将更为全面。 参考文献参考文献 1 饶文碧、周剑波、张露,智能家居远程控制系统的设计,软件导刊,7(2) , 28-29,2008 2 李林功、吴飞青、王兵、丁晓,单片机原理与应用,北京:机械工业出版社, 2007 3 王庆敏、江东、徐军、高中文,基于 lonworks 现场总线的家庭保安系统,哈 尔滨理工大学学报,7(5):
48、19-21,2002 4 谷威昭、方滨,家庭网络系统的新选择lin 总线,技术平台,2004(4): 23-27,2004 5 张光昭、吴筠、刘星成,计算机网络,广州:中山大学出版社,2001 6 小泉修,web 技术http 到服务器端,王浩译,北京:科学出版社,2004 7 w5100 数据手册,version 1.1.5,2007 8 张昭昭、郭伟,嵌入式 web 服务器的研究,科技信息,2008(18):51- 59,2008 9 杨林楠、李红刚、张素萍、方佳,基于 arm9 的嵌入式 web 服务器的研究,计 算机测量与控制,16(12) ,1939-1942,2008 10张曦煌、
49、柴志雷,嵌入式 web 服务器中 cgi 的特点及实现,小型微型计算机系 统:24(11) ,2046-2048,2003 11王铁流、高嵩、袁海英、李宗方、秦璐璐,基于 cortex-m3 内核处理器的嵌入 式 web 服务器设计,电子产品世界,2009(4) ,1-8,2009 12索明何、饶运涛、邢海霞,基于单片机的嵌入式 web 服务器设计与实现,科技 广场,2008(5) ,185-186,2009 致谢致谢 在这里要特别感谢我的指导老师xxx 老师。在她成为我的毕业论文指导老 师之后,便一直很关心我各方面的学习。特别是在进行毕业设计的阶段,细心指导 我正确地完成了毕业论文。如果没有
50、 xxx 老师的指导,我的毕业论文是不可能圆满 完成的。再次感谢 xxx 老师。 附录附录 /* w5100 初始化函数 在使用 w5100 之前,对 w5100 初始化 */ void w5100_init(void) unsigned char *ptr; unsigned char i; ptr=(unsigned char*)w5100_mode;/*软复位 w5100*/ *ptr=mode_rst; /芯片内部寄存器被初始化 delay(100);/*延时 100ms,自己定义该函数 #*/ /*设置网关(gateway)的 ip 地址,4 字节*/ /*使用网关可以使通信突破子网
51、的局限,通过网关可以访问到其它子网 或进入 internet*/ ptr=(unsigned char*)w5100_gar; for(i=0;i4;i+) *ptr=gateway_ipi;/*gateway_ip 为 4 字节 unsigned char 数 组,自己定义#*/ ptr+; /*设置子网掩码(mask)值,4 字节。子网掩码用于子网运算*/ ptr=(unsigned char*)w5100_subr; for(i=0;i4;i+) *ptr=sub_maski;/*sub_mask 为 4 字节 unsigned char 数组,自己定义#*/ ptr+; /*设置物理地
52、址,6 字节,用于唯一标识网络设备的物理地址值 该地址值需要到 ieee 申请,按照 oui 的规定,前 3 个字节为厂商代码, 后三个字节为产品序号。 如果自己定义物理地址,注意第一个字节必须为偶数*/ ptr=(unsigned char*)w5100_shar; for(i=0;i6;i+) *ptr=phy_addri;/*phy_addr 是 6 字节 unsigned char 数组,自己定义#*/ ptr+; /*设置本机的 ip 地址,4 个字节 注意,网关 ip 必须与本机 ip 属于同一个子网,否则本机将无法找到网 关*/ ptr=(unsigned char*)w5100
53、_sipr;/*set source ip address*/ for(i=0;i4;i+) *ptr=ip_addri;/*ip_addr 为 4 字节 unsigned char 数组,自己定义#*/ ptr+; /*设置发送缓冲区和接收缓冲区的大小,参考 w5100 数据手册*/ ptr=(unsigned char*)w5100_rmsr;/*socket rx memory size=2k 每 个端口都分配 2k 的接收存储空间*/ *ptr=0 x55; ptr=(unsigned char*)w5100_tmsr;/*socket tx mempry size=2k 每 个端口都
54、分配 2k 的发送存储空间*/ *ptr=0 x55; /* 启动中断,参考 w5100 数据手册确定自己需要的中断类型 imr_conflict 是 ip 地址冲突异常中断 imr_unreach 是 udp 通信时,地址无法到达的异常中断 其它是 socket 事件中断,根据需要添加 */ ptr=(unsigned char*)w5100_imr; *ptr=(imr_conflict|imr_unreach|imr_s0_int|imr_s1_int|imr _s2_int|imr_s3_int); /允许 ip 地址冲突异常中断、地址无法到达的异常中断以及四个 socket 事件中断
55、 /* / socket 处理, 其它 3 个 socket 的处理可参照此程序 /* socket 初始化 如果成功则返回 true, 否则返回 false */ unsigned char socket_init(socket s)/*#*/ unsigned char *ptr; unsigned char i; ptr=(unsigned char*)(w5100_s0_mr+s*0 x100); *ptr=s_mr_tcp;/*设置 socket0 为 tcp 模式*/ ptr=(unsigned char*)(w5100_s0_cr+s*0 x100); *ptr=s_cr_ope
56、n;/*打开 socket0*/ ptr=(unsigned char*)(w5100_s0_ssr+s*0 x100);/*检查状态寄存器的状态*/ if(*ptr!=s_ssr_init) ptr=(unsigned char*)(w5100_s0_cr+s*0 x100);/*打开不成功,关闭 socket,然后返回*/ *ptr=s_cr_close;/*关闭端口*/ return false; /*检查网关及获取网关的物理地址*/ ptr=(unsigned char*)(w5100_s0_dipr+s*0 x100); for(i=0;i4;i+) *ptr=ip_addri+1;
57、/*向目的地址寄存器写入与本机 ip 不同的 ip 值*/ ptr+; ptr=(unsigned char*)(w5100_s0_cr+s*0 x100); *ptr=s_cr_connect;/*发送连接请求,打开 socket0 的 tcp 连接*/ delay(20);/*延时 20ms,自己定义该函数,该时间长短可以根据需要调整 */ ptr=(unsigned char*)(w5100_s0_dhar+s*0 x100);/*读取目的主机的物理 地址,该地址就是网关地址*/ for(i=0;i6;i+) gateway_phyi=*ptr; /*gateway_phy 为 6 字节
58、 unsigned char 数 组,自己定义*/ ptr+; ptr=(unsigned char*)(w5100_s0_cr+s*0 x100); *ptr=s_cr_close;/*关闭 socket0*/ if(gateway_phy0=0 xff) /*没有找到网关服务器,或没有与网关服务器成功连接*/ /* 自己添加处理代码*/ /*设置分片长度,参考 w5100 数据手册,该值可以不修改*/ ptr=(unsigned char*)(w5100_s0_mss+s*0 x100); /*最大分片字节数=1460*/ *ptr=0 x05; ptr+; *ptr=0 xb4; ret
59、urn true; /* /socket 的打开和设置侦听工作 /* unsigned char socket_listen(socket s) unsigned char *ptr; ptr=(unsigned char*)(w5100_s0_port+s*0 x100);/*设置本机 source 的端 口号*/ *ptr=port/256; /*port 为 unisgned int 型,自己定义,与前面定义的相同*/ ptr+; *ptr=port; ptr=(unsigned char*)(w5100_s0_cr+s*0 x100);/*打开 socket*/ *ptr=s_cr_o
60、pen; ptr=(unsigned char*)(w5100_s0_ssr+s*0 x100); if(*ptr!=s_ssr_init) ptr=(unsigned char*)(w5100_s0_cr+s*0 x100);/*打开不成功,关闭 socket,然后返回*/ *ptr=s_cr_close; return false; ptr=(unsigned char*)(w5100_s0_cr+s*0 x100);/*设置 socket 为侦听模式*/ *ptr=s_cr_listen; ptr=(unsigned char*)(w5100_s0_ssr+s*0 x100); if(*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025镀锌钢管骨架采购合同
- 2025二级建造师建设工程施工管理考点:合同管理索赔程序
- 2025年武汉单身公寓租赁合同模板
- 2025设备安装合作协议合同范本
- 2025信息安全咨询技术合同
- 2025水果收购合同书样本
- 2025【景观设计合同】景观工程设计包括内容
- 《胃镜检查技术》课件
- 2025标准简化版合同范本
- 2025标准版:员工签订长期合同协议范本
- 【吉利汽车控股集团成本控制问题及对策11000字(论文)】
- 服装工艺(各工序)单价表
- 退休证翻译模板word
- 《爱护眼睛和耳朵》PPT课件.ppt
- SimTrade外贸实习平台快速入门
- 民间非营利组织会计制度.ppt
- 女装类直播电商脚本及直播话术(明细表)
- 镀锌钢管质量检验报告
- 热管换热器设计说明书
- 水电站防地震灾害应急预案范本
- 佛山市禅城区机动车维修项目工时费收费标准
评论
0/150
提交评论