1092.基于Internet的测控系统的设计_第1页
1092.基于Internet的测控系统的设计_第2页
1092.基于Internet的测控系统的设计_第3页
1092.基于Internet的测控系统的设计_第4页
1092.基于Internet的测控系统的设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、本本 科科 生生 毕毕 业业 论论 文文题 目:基于 internet 的测控系统的设计 院 系:信息科学与技术学院电子与通信工程系 专 业:电子信息科学与技术 学生姓名: 学 号: 指导教师: (职 称)二 九 年 四 月- i - 摘摘 要要随着 internet 技术的不断普及推广,以此为基础的各种应用不断地被开发以及应用。本文主要介绍一种基于 internet 技术的远程家庭设备测控系统,即远程计算机通过 internet 与家庭设备测控系统连接,以实现对家庭设备的监视与控制等功能。本系统的设计可以划分为三个模块。首先是家庭设备控制系统,即以八位单片机为控制核心的嵌入式系统,以实现家庭

2、设备检测信息的收集和远程控制信息的发送的功能。其次是网络连接模块,主要采用 wiznet 公司的 w5100 网络接口芯片的internet 接入模块,实现跨网的 internet 的连接。使用 w5100 最大的特点是可以实现没用操作系统的 internet 的连接。第三个模块是 web 功能模块,以实现操作人员在远程计算机上通过 web 浏览器获取家庭设备的信息以及发送控制命令的功能。该模块主要涉及 http 协议、cgi 技术。本文所设计远程家庭设备测控系统,具有成本低,体积小,易实现等特点,是一种可以推广的、实用的系统。关键词:关键词:嵌入式系统 w5100 internet 接入 w

3、eb 技术 http 协议- ii - iii - abstractwith 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 se

4、curity 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 operat

6、ing 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- iv -目目 录录第一章第一章前言前言.4第二章第二章系统的关键技术及实现系统的关键技术及实现.62.1家庭总线.62.2tcp/ip 通信.72.2.1tcp/ip 协议简介.72.2.2w

8、5100 芯片的简介.82.2.3mcu 与 w5100 的连接.112.3web 服务器技术和原理.132.3.1web 服务器原理.132.3.2http 协议.142.3.3cgi 原理.142.3.4嵌入式服务器特点.15第三章第三章系统软件的设计系统软件的设计.173.1总体程序的设计.173.2网络通信程序的实现.183.3.1w5100 的初始化.183.3.2w5100 的数据通信.183.3web 服务器功能的实现.233.3.1嵌入式 web 服务器的工作流程.233.3.2嵌入式 web 服务器的主要函数及功能.25第四章第四章结论结论.27参考文献参考文献.28致谢致谢

9、.29附录附录.30- 5 -第一章第一章前言前言在当前信息技术日益成熟和普及的背景下,其所涉及的应用领域越来越广泛,对我们日常生活也有了很大的影响。其中家庭用电设备测控系统的应用就是一个典型的代表。该系统通过 internet 的连接,实现家庭设备与远程计算机信息的交换,以达到对家庭设备的监控。在之前大多数的研究方案中,为实现该系统,大部分的研究者均采用一台位于家庭室内的计算机作为家庭设备信息采集的控制器,然后通过该计算机与网络的连接,将信息与远程计算机进行交换。例如此类系统采用b/s技术框架, 简化客户端电脑负荷,用户通过浏览器来实现远控功能, 利用计算机并行接口连接多个保持继电器, 以实

10、现对家庭电器的开关控制1。这种设计方案由于计算机的功能齐全,实现的时候固然是简单易行,但是很明显的缺点是成本高,稳定性低。从如今嵌入式系统技术的发展成熟的角度来看,我们新的设计方案会很自然地采用这种设计思路。嵌入式系统的特点正是我们所需的:低成本、稳定性高、易实现。新方案实现的关键在于以嵌入式系统取代计算机作为家庭设备信息收发的控制系统。在前人开发的“计算机internet计算机”的测控系统中,实现计算机的网络互联是很容易的。而在我们的设计方案中,实现的是“嵌入式系统internet计算机”的系统。嵌入式系统与网络的连接方案可以有两种。第一种常被人们采用的方案是软件实现的方式,即在 mcu 中

11、装载实现网络协议的程序,再通过与以太网控制芯片的连接实现接入网络。这种连接方案的不足之处在于网络协议的复杂性使得相关程序在应用时会较大地占用 mcu 硬件资源,从而影响整个系统的性能。而且实现这种连接方式的 mcu 硬件资源必须较为丰富,如 arm 处理器,这样也在一定程度上增加了成本。因此我们有必要设计另外一种更为有效的方案。该方案采用支持硬件化 tcp/ip协议的芯片,如 wiznet 公司的 w5100 网络接口芯片,实现嵌入式系统接入网络。我们可以采用“嵌入式系统w5100 网络接口芯片internet计算机”的模式。在这种模式下,不必通过软件实现网络协议,可以降低 mcu 的要求,从

12、而也提高了系统的稳定性。图 1-1 为本文设计的系统模型图。- 6 -internet单片机单片机 系统系统家庭设备家庭设备 1家庭设备家庭设备 2家庭设备家庭设备 3远程 pc机web 页面 图 1-1 系统模型图当该系统正常工作时,用户可以通过 internet 网络进行访问,以实现设备的远程控制;相应转换器采集到的家庭设备信息触发信息控制终端,将信息通过家庭总线系统发往控制核心,并通过相应的网络控制模块将信息通过 internet 发送到远程请求浏览的 pc 机。亦可以由该系统根据远程 pc 机的命令设置家庭设备的状态。本文研究内容主要安排如下:第一章前言:介绍基于 internet 的

13、远程测控系统的研究背景,举出当前人们的研究方向以及成效,对比已有成果提出另一种新的设计设计方案,并简单概述。第二章:描述系统实现过程中重要的技术和协议。主要涉及网络通信协议层到应用层的技术。在本设计中,提出以硬件实现 tcp/ip 协议的方案,实现基于芯片w5100 的网络连接。并在此基础上实现 http 的应用,提出设计嵌入式服务器的思路。第三章:系统软件设计的实现。首先提出主程序的架构,然后主要介绍 tcp/ip通信和嵌入式服务器的实现。- 7 -第四章结论:对设计做出总结,提出不足以及改进的方法。- 8 -第二章第二章系统的系统的关键技术及实现关键技术及实现2.1家庭总线家庭总线在本设计

14、中,以8位的单片机作为控制核心,因为8位单片机资源丰富、性价比高,目前应用最为广泛2。并外接必要的电路。mcu通过家庭总线系统与各家庭设备连接。图2-1即为系统的模型图。m c u现场总线现场总线转换器1转换器2转换器3家庭设备 1家庭设备 2家庭设备 3必需的外部电路网络接入家庭设备测控系统硬件电路主要由at89c51单片机、a/d转换器等等部分组成3。系统中的现场总线可以采用一种基于sci(uart)数据格式的低成本的单总线串行通信协议的总线lin总线。lin总线最开始是出现在汽车制造行业,后来也应用于智能家庭网络之中。作为串行通讯方式的现场总线的一员,lin总线除了具有现场总线的一般特点

15、外, 还具有其自身独特的特点4:(1)基于uart通用接口, 几乎所有微控制器都具备实现lin所必需的硬件, 易于实现, 硬件成本低。(2)lin是一种单数据线总线, 系统的布线量少(加上电源和地线, 只需要三根线就可以实现节点间的串接)。(3)通讯方式为单主控器多从设备模式, 无需仲裁机制。数据传输速率最高达图 2-1 家庭设备测控系统结构图- 9 -20kbit/s。网络标识有64个, 但网络节点一般不超过16个。- 10 -2.2tcp/ip 通信通信2.2.1 tcp/ip 协议简介协议简介在互联网的 tcp/ip 参考模型中,tcp/ip 协议层处于物理层、网络接口层之上,应用层之下

16、55。所谓的 tcp/ip 是指在互联网上通信协议的总称,是 tcp 和 ip 这两个有代表性的协议的名称合在一起组成的。tcp/ip 作为互联网的协议急速发展,现在它成为世界标准的通信协议。可以互访的计算机基本上全都安装了具有 tcp/ip 的操作系统6。在本设计中,选用的通信模式是 tcp 模式。tcp 是以连接为基础的通信方式,它必须首先建立连接,然后利用连接的 ip 地址和端口号进行数据传输。tcp 有两种连接方式:一种是服务器模式(被动开启) ,即等待接受连接请求以建立连接;另一种是客户端模式(主动开启) ,即发送连接请求到服务器。图 2-2 是 tcp 模式的两种不同的连接方式。

17、图 2-2 tcp 模式的两种连接方式- 11 -考虑到本文所设计的系统是由远程计算机进行控制,因此我们采用的通信连接方式为服务器模式。在这种模式下,嵌入式系统时刻侦听来自远程 pc 机的信息。收到连接请求进行成功的连接之后就可以收发数据。2.2.2 w5100 芯片的芯片的简介简介在本设计中,考虑到核心控制器资源的有限性,以一款全新的网络接口芯片w5100 硬件实现 tcp/ip 协议,取代传统的软件实现方法。w5100 内部集成了全硬件的、且经过多年市场验证的 tcp/ip 协议栈、以太网介质传输层(mac)和物理层(phy) 。硬件 tcp/ip 协议栈支持 tcp,udp,ipv4,i

18、cmp,arp,igmp 和 pppoe,这些协议已经在很多领域经过了多年的验证。w5100 内部还集成了 16kb 存储器用于数据传输。使用 w5100 不需要考虑以太网的控制,只需要进行简单的端口(socket)编程7。w5100 具有丰富的功能,极大方便了使用者。其特点如下列所示:支持硬件化 tcp/ip 协议:tcp,udp,ipv4,icmp,arp,igmp,pppoe,以太网内嵌 10baset/100basetx 以太网物理层支持自动通信握手(全双工和半双工)支持自动 mdi/mdix,自动校正信号极性支持 adsl 连接(支持 pppoe 协议中的 pap/chap 认证模式

19、)支持 4 个独立端口同时运行不支持 ip 的分片处理内部 16kb 存储器用于数据发送/接受缓存0.18cmos 工艺m3.3v 工作电压,i/o 口可以承受 5v 电压80 脚 lqfp 小型封装环保无铅封装支持 spi 接口(spi 模式 0、3)多功能 led 信号输出(tx、rx、全双工/半双工、地址冲突、连接、速度等)图 2-3 为 w5100 芯片 80lqfp 封装的管脚示意图。- 12 - 图 2-3 w5100 芯片的管脚w5100 的 80 个管脚信号,可以归类分为 mcu 接口信号引脚、以太网物理层信号引脚、电源引脚、时钟信号引脚、led 信号一脚以及其他信号引脚。其中

20、 w5100的第 5、6、8 和 9 引脚是 phy 信号线,用于与 rj45 接口相连接,以接入网络。w5100 内部寄存器主要有两种:通用寄存器和端口寄存器。主要寄存器的作用如下说明。通用寄存器:通用寄存器:mr(模式寄存器):该寄存器用于软件复位、ping 关闭模式、pppoe 模式以及间接总线接口。gwr(网关 ip 地址寄存器): 该寄存器设置默认网关地址。subr(子网掩码寄存器): 该寄存器用来设置子网掩码(subnet mask)值。shar(本机物理地址寄存器): 该寄存器用来设置物理地址。sipr(本机 ip 地址寄存器): 该寄存器用来设置本机 ip 地址。- 13 -i

21、r(中断寄存器): cpu 通过访问该寄存器获得产生中断的来源。imr(中断屏蔽寄存器):用来屏蔽中断源。rtr(重发时间寄存器):该寄存器用来设置溢出的时间值。每一单位 100 微秒。rcr(重发计数寄存器):该寄存器的数值设定可重发的次数。若重发次数超过设定值则产生超时中断。rmsr(接收存储器空间大小寄存器):该寄存器配置全部 8k 的 rx 存储空间到各指定端口。tmsr(发送存储空间大小寄存器):用来将 8k 的发送存储区分配给每个端口。端口寄存器:端口寄存器:sn_mr(端口 n 模式寄存器):该寄存器设置相应端口的选项或协议类型。sn_cr(端口 n 命令寄存器):该寄存器用来设

22、置端口的初始化、关闭、建立、断开连接、数据传输以及命令接收等。sn_ir(端口 n 中断寄存器):该寄存器指示建立和终止连接、接收数据、发送完成以及时间溢出等信息。sn_sr(端口 n 状态寄存器):该寄存器指示端口 n 的状态数值。sn_port(端口 n 的端口号寄存器):该寄存器在 tcp 或 udp 模式下设定对应端口的端口号。sn_dhar(端口 n 的目的物理地址寄存器):设置每个端口的目的物理地址。sn_dipr(端口 n 的目的 ip 地址寄存器):tcp 模式下,该寄存器设置端口的目的地址。udp 模式下收到 arp 响应后该寄存器才确定用户写入的值。sn_dport(端口

23、n 的目的端口号寄存器):tcp 模式下,该寄存器设置端口的目的端口号。udp 模式下,收到 arp 响应后,该寄存器才确定为用户写入的值。sn_tx_fsr(端口 n 发送存储器剩余空间寄存器):指示用户可使用的发送数据空间的大小。sn_tx_rr(端口 n 发送存储器读指针寄存器):该寄存器指示端口在发送过程完成后发送存储器的当前位置。sn_tx_wr (端口 n 传输写指针寄存器):指向 tx 存储器写入数据时的地址。sn_rx_rsr(接收数据字节数寄存器):指示端口接收数据缓冲区中接收数据的- 14 -字节数。sn_rx_rd(端口 n 接收缓冲区读指针寄存器):指示端口接收过程完成

24、后的读地址信息。2.2.3 mcu 与与 w5100 的的连接连接w5100 与 mcu 的连接方式有三种:直接总线接口、间接总线接口和 spi 总线接口。w5100 与 mcu 接口非常简单,就像访问外部存储器一样。直接总线接口:直接总线接口:直接总线接口采用 15 为地址线,8 位数据线,另外加/cs,/rd,/wr 及/int 等信号线。如图 2-4 所示。 图 2-4 直接总线接口间接总线接口:间接总线接口:间接总线接口采用 2 位地址线,8 位数据线,另外加/cs,/rd,/wr 及/int 等信号线。14:2没用到的地址线经过电阻接地。如图 2-5 所示。- 15 - 图 2-5

25、间接总线接口spi 总线接口:总线接口:串行接口模式只需要 4 个引脚进行数据通信。这四个引脚的定义分别为:sclk、/ss、mosi、miso。w5100 的 spi_en 引脚选择 spi 操作。如图 2-6 所示。 图 2-6 spi 总线接口w5100与主mcu 采用中断的方式进行通信,以太网模块被客户端唤醒,接收到控制命令,则通过中断触发启动对w5100的接收数据读取和数据的发送。为了方便mcu判断w5100的工作状态,也必须将w5100的中断引脚int与mcu的外部中断线相连接。- 16 -2.3web 服务器技术和原理服务器技术和原理2.3.1 web 服务器原理服务器原理web

26、 是 www(world wide web)的简称,即 web 等同于 www。web 是互联网提供信息的一个手段。通过这种手段,能够实现以页面为单位管理庞大的信息及其之间的联系,并且可以对其进行无缝检索6。作为应用层的实现,web 是建立在 tcp/ip 协议之上的应用。web 的功能是基于 b/s(browser/server)的模型实现的。从功能上讲,服务器监听用户端的服务请求, 根据用户请求的类型提供相应的服务, 用户端使用 web 浏览器和 web 服务器进行通信。web 服务器在接收到用户端的请求后,处理用户请求并返回需要的数据。图 2-7 是 web 的 b/s 模型图。 图2-

27、7 web的b/s模型图web 服务器是以发送 web 信息为目的而发挥功能的,因此,web 服务器软件是常驻内存的,无论何时都可以对来自客户端的要求做出应答。客户端和服务器之间是通过使用称为 http 的协议进行交换的,web 服务器对应于来自客户端的要求,发送html 信息或者是图形信息。- 17 -2.3.2 http 协议协议http( 超文本传输协议) 是web 服务器用来与浏览器通信的协议,http 规定了发送和处理请求的标准方式,规定了浏览器和服务器之间传输的消息格式及各种控制信息,从而定义了所有web通信的基本框架8。http协议主要是为了传送超文本,而所谓的超文本(hyper

28、 text)是文本和文件,或者文件和多媒体信息(语言、照片、动画等),与此相关联的可能内容的总称。用作web网页制作时的html(hyper text mark up language)是最有代表性的。http 在 tcp/ip 中位于应用层。实际上 web 服务器和 web 浏览器进行交换的时候,在双方的应用层,http 之间通过反复的请求和应答,实现 web 信息的收取和发送。2.3.3 cgi 原理原理cgi(common gateway interface)即通用网关接口,是一种实现 web 服务器动态服务的手法。采用 cgi 技术,可以实现浏览器与嵌入式 web 服务器的动态数据交互

29、。cgi 程序保存在服务器中,当 web 页面打开时客户端调用 cgi 应用程序9。cgi 定义了 web 服务器与 cgi 脚本之间的接口标准。其主要功能是在 web 环境下, 从客户端传送信息给 web 服务器,web 服务器把接收到的有关信息放入环境变量,然后再去启动所指定的 cgi 脚本以完成特定的工作, cgi 脚本从环境变量中获取相关信息来运行, 最后以 html 格式输出相应的执行结果返回给浏览器端。由于用户能传递不同的参数给 cgi 脚本,所以 cgi 技术使得浏览器和服务器之间具有交互性。cgi 在整个数据传送的过程中, 要从 web 服务器传递有关数据给 cgi 脚本, 因

30、此 web 服务器先将从浏览器接收到的有关数据转换为各种环境变量, 然后 cgi 脚本就可以从这些环境变量中读取所需要的内容。也就是说,环境变量是 web 服务器和 cgi 脚本进行数据传递的途径。图 2-8 所示为 cgi 运行示意图。- 18 - 图 2-8 cgi运行示意图cgi输入方式是使用html表单向web服务器发送信息。基本语法如下10:。method属性指定将数据传送到web服务器的方法,输入方法有两种:(1)get方法: 使用get方法时, 表单数据会附加在所指向cgi 脚本的url后一起发送给web服务器,web服务器将收到的表单数据赋予环境变量query-string。(

31、2)post方法: 通过使用标准输入(stdin)将表单数据传送给web 服务器,web 服务器启动指定的脚本, 并将用户提供的数据传入该脚本。action 属性定义要对表单数据进行处理的cgi 脚本的url。cgi输出方式是将执行结果送给标准输出(stdout)进行输出,执行结果必须是浏览器能够显示的html 标准格式。2.3.4 嵌入式服务器特点嵌入式服务器特点嵌入式的web服务器有其自身的特点。首先,在嵌入式系统中,由于处理器能力、存储器容量等等外部条件地制约,嵌入式web服务器不能对系统资源占用量很大的程序(如:java应用程序)提供支持,也不需处理外部的很大流量的访问,但是要能够为远

32、程访问、管理和监控设备提供服务支持,且嵌入式的web服务器要做到尽可能的小。在这样的系统中没有成熟可用的操作系统, 涉及到内存管理、文件管理、进- 19 -程管理这样的程序就不能在8位mcu系统中运行。其次,为达到远程管理、监控设备的目的,必须使客户机能同本地系统进行交互,这种交互可以使用很多种方法来实现,如:ssi、java serverlet等,但最适合嵌入式系统的方法是通用网关接口cgi。不过,在8位的mcu中,标准的cgi也是无法完全实现的。最后,在实际应用中,控制设备的嵌入式服务器的工作流程往往是基本固定的,因此只要实现某一种交互功能,就可以满足对设备的控制。基于以上种种考虑,我们设

33、计的嵌入式web服务器是具有cgi功能的。在这种嵌入式环境中只实现cgi的功能, 没有系统对文件、内存、进程等的管理,但是可以满足用户和所控制的设备进行交互的要求。该系统web 服务器和web 浏览器需进行必要的交互,因此遵循http 协议,也符合cgi标准和web基本原理。通常cgi是作为单独的可执行文件来运行的,在该系统中cgi是web服务器的一部分。在该系统中没有标准的输入输出,cgi函数可以直接获取浏览器送来的信息,也可以把数据送回给浏览器。环境变量是web服务器和cgi进行数据传递的途径。在该系统中没有环境变量,cgi和web服务器在同一程序中实现。- 20 -第三章第三章系统软件的

34、设计系统软件的设计3.1总体程序的设计总体程序的设计 系统必须具备的基本功能包括:可控制与其连接的设备并获取设备的状态和数据;现场信息可以网页形式发布;可及时响应远程用户的控制命令11。系统的总体程序的流程图如图3-1所示。初始化 mcu开始初始化 w5100,设置为 tcp 服务器模式w5100 中断事件处理处理接收到的数据端口接收数据?w5100 事件中断?yynn 图 3-1 系统的总体程序流程图程序启动之后,开始初始化 mcu 和 w5100。其中初始化 w5100 将其设置为 tcp下的服务器模式,可以通过设置 w5100 相关的内部寄存器来实现。接下来是一个循环体。通过检测中断寄存

35、器 ir 来判断是否有中断事件发生。如果是端口中断事件发- 21 -生,则通过访问端口中断寄存器 sn_ir 来判断是否端口接收数据。在接收到数据之后,程序进行数据的处理。在数据处理的程序中,主要负责收发数据、解析 http 协议和响应用户的不同请求,发送设备的状态信息或者根据客户端的要求设置设备的新状态,即实现嵌入式服务器的功能。如果是其他中断事件的发生,如超时等,进入相应的中断处理。3.2网络通信程序的实现网络通信程序的实现3.3.1w5100 的初始化的初始化通过设置寄存器和存储器,w5100 就可以进行 internet 连接。w5100 的初始化包括对通用寄存器和端口寄存器的设置。而

36、其中通用寄存器的设置包括基本设计和网络信息的设置。通用寄存器的设置通用寄存器的设置 w5100 的操作需要设置一下寄存器的参数:1、模式寄存器(mr)2、中断屏蔽寄存器(imr)3、重发时间寄存器(rtr)4、重发计数寄存器(rcr)5、网关地址寄存器(gar)6、本机物理地址寄存器(shar)7、子网掩码寄存器(subr)8、本机 ip 地址寄存器(sipr)对应的初始化程序用 w5100_initw5100_init()实现。端口端口(socket)初始化初始化端口的初始化包括对相应寄存器的设置以及完成端口的连接。对应的端口初始化程序用 socket_initsocket_init(s)实

37、现。3.3.2 w5100 的数据通信的数据通信我们采用的通信连接方式为服务器模式,即 w5100 模块是被动开启。tcp 模式下以服务器连接方式的数据通信流程图如 3-2 所示。- 22 -openlistenestabishedreceivedata?send data?receive fin?discorrect?time out?receivingprocesssendingprocessdiscorrecting processclosed?dtimeout?closeyyyyyyyynnnnnnnn图 3-2 tcp 模式下服务器连接方式数据通信流程图- 23 -设置服务器模式,需

38、要设置运行模式和端口号,并在端口命令寄存器打开(open)端口。建立服务器连接方式的程序用 socket_listensocket_listen(s)实现。至此完成了 socket 的打开和设置侦听工作,至于远程客户端是否与它建立连接,则需要等待 socket 中断,以判断 socket 的连接是否成功。参考 w5100 数据手册的 socket 中断状态,在服务器侦听模式不需要设置目的 ip 和目的端口号设置 w5100 为服务器模式的调用过程为:w5100_init()-socket_init(s)-socket_listen(s),设置过程即完成,等待客户端的连接。连接成功之后,就可以进

39、行接收或者发送数据了。端口接收和发送数据的流程图如图 3-3、图 3-4 所示。- 24 -读取接收数据的字节数读取接收数据的字节数计算实际物计算实际物理偏移量理偏移量将数据缓存将数据缓存到数组中到数组中计算下一次计算下一次偏移量偏移量读取接收缓读取接收缓冲区偏移量冲区偏移量设置设置 recv 命令,命令,等下一次接收等下一次接收开开 始始返回接收的数据字节数返回接收的数据字节数 图 3-3 端口接收数据的流程图- 25 -设置目的主机设置目的主机ip 端口号端口号读剩余空间长度寄存器读剩余空间长度寄存器计算下一次的偏移量计算下一次的偏移量开始开始udp 模式?模式?设置设置 send 命命令

40、,启动发送令,启动发送读发送缓冲区偏移量,读发送缓冲区偏移量,并计算实际偏移量并计算实际偏移量计算实际写入地址计算实际写入地址把要发送数据从把要发送数据从 tx_buffer 写入写入发送数据缓冲区发送数据缓冲区剩余空间足剩余空间足够?够?返回返回 false返回返回 trueynyn 图 3-4 端口发送数据的流程图w5100 产生的连接成功、终止连接、接收数据、发送数据、超时等事件,都可以从中断状态中获得。w5100 中断处理可以用中断程序程序w5100_interrupt_handler() 来实现。- 26 -3.3web 服务器功能的实现服务器功能的实现3.3.1嵌入式嵌入式 web

41、web 服务器的工作流程服务器的工作流程web服务器接收到浏览器请求之后进行分析,判断如果如果是get 请求,即没有从客户端传来参数,则调用设备信息获取函数取得设备的当前状态显示给客户端浏览器。如果是post请求,web服务器则利用cgi处理模块分解出传来的参数,并通过设备信息设置函数,设置设备的新状态,同时回送给客户端,客户端浏览器可以和web 服务器进行交互,以此监控设备的运行。该web服务器只提供跟设备进行必要交互的cgi功能,对web服务器的其它功能则不支持。原先标准的cgi作为独立可执行文件完成的功能,现在移到web服务器内部作为一个函数处理,和设备管理函数,即设备信息获取、设置函数

42、,统一编译后作为一个整体运行。图3-5为嵌入式服务器的工作流程图。该程序在主程序中实现的功能即为数据处理。- 27 -开始开始读请求,分解请求读请求,分解请求get/post读读 请请 求求设置设备新状态设置设备新状态分解分解 form 数据数据读取设备当前状态读取设备当前状态把数据封装成把数据封装成 html 格式格式结结 束束getpost发送数据发送数据 图 3-5 嵌入式服务器工作流程图3.3.2 嵌入式嵌入式 webweb 服务器的服务器的主要函数及功能主要函数及功能void http_service(int sd);- 28 -该函数是主要处理函数,完成读请求,分析请求,判断是哪种

43、连接请求。把请求中传来的参数送给cgi处理函数。void cgi_service (char *input);该函数用来把form提交的数据分解开, 这其实是把标准cgi脚本所做的工作引入了web服务器程序中。这是因为单片机的资源限制而不能有文件操作所做的一种改进,符合web和cgi的基本概念,同时解决了单片机中不支持文件操作的问题。void html_service (char *form_cgi );该函数用来把要发送回浏览器的系统状态数据封装成html格式待发送。void get_status(char *s_list );该函数用来获取设备当前状态,根据具体设备来完成。可以把获取到的各

44、个控制选项值转换为字符型按固定顺序放入数组s_list 。void set_status (char *s_list );该函数从s_list 中取出客户端传来的新参数设置控制设备中相应选项来控制设备的运行。void html_formation(char *form_cgi );用该函数设置适合的html格式来显示自己的操作界面。把固定显示的数据放入form_cgi 数组中的相应位置。而每次运行时临时生成的要显示数据初始化时用特定的标签表示,程序运行时,将实际值读到内存,再用实际值代替标记,生成一个新的页面12。如图3-6所示。- 29 - 图 3-6 测控系统的web页面- 30 -第四章

45、第四章 结论结论本文提出了一种基于internet网络远程控制家居系统设计方案。该系统采用b/s技术框架,客户端以嵌入式系统实现,设计一个嵌入式服务器使得用户可以通过浏览器来实现远控功能。与以往设计方案不同,本设计最大的特点是采用了最新网络芯片w5100以实现嵌入式系统与计算机的网络通信。在这种设计方案下,网络通信协议实现简易,而且系统在运行中更为稳定。另外,设计中在应用层上实现b/s结构的应用则结合了当今internet技术中最为广泛应用的http协议,切合人们日常生活工作中的实际情况,使得论文设计的系统更趋于实际应用性。在本文设计中,考虑到成本问题,因此采用的是8位的单片机。但是由于8位m

46、cu的硬件资源是很有限的,在进一步的研究中,我们可以采用资源更为丰富的mcu(如32位的arm9等等)来实现类似系统。在这种设计方案中,可以实现的测控功能将更为丰富。而且可以在这样的微控制器上实现有操作系统的嵌入式服务器(如 linux嵌入式操作系统),这样整个b/s架构所能实现的功能将更为全面。 - 31 -参考文献参考文献1 饶文碧、周剑波、张露,智能家居远程控制系统的设计,软件导刊,7(2) ,28-29,20082 李林功、吴飞青、王兵、丁晓,单片机原理与应用,北京:机械工业出版社,20073 王庆敏、江东、徐军、高中文,基于 lonworks 现场总线的家庭保安系统,哈尔滨理工大学学

47、报,7(5):19-21,20024 谷威昭、方滨,家庭网络系统的新选择lin 总线,技术平台,2004(4):23-27,20045 张光昭、吴筠、刘星成,计算机网络,广州:中山大学出版社,20016 小泉修,web 技术http 到服务器端,王浩译,北京:科学出版社,2004 7 w5100 数据手册,version 1.1.5,20078 张昭昭、郭伟,嵌入式 web 服务器的研究,科技信息,2008(18):51-59,2008 9 杨林楠、李红刚、张素萍、方佳,基于 arm9 的嵌入式 web 服务器的研究,计算机测量与控制,16(12) ,1939-1942,2008 10张曦煌、

48、柴志雷,嵌入式 web 服务器中 cgi 的特点及实现,小型微型计算机系统:24(11) ,2046-2048,2003 11王铁流、高嵩、袁海英、李宗方、秦璐璐,基于 cortex-m3 内核处理器的嵌入式 web 服务器设计,电子产品世界,2009(4) ,1-8,200912索明何、饶运涛、邢海霞,基于单片机的嵌入式 web 服务器设计与实现,科技广场,2008(5) ,185-186,2009- 32 -致谢致谢在这里要特别感谢我的指导老师xxx 老师。在她成为我的毕业论文指导老师之后,便一直很关心我各方面的学习。特别是在进行毕业设计的阶段,细心指导我正确地完成了毕业论文。如果没有 x

49、xx 老师的指导,我的毕业论文是不可能圆满完成的。再次感谢 xxx 老师。- 33 -附录附录/*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 字节*/*使用网关可以使通信突破子网的局限,通过网关可以访问到

50、其它子网或进入 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+;/*设置物理地址,6 字节,用于唯一标识网络设备的物理地址值该地

51、址值需要到 ieee 申请,按照 oui 的规定,前 3 个字节为厂商代码,后三个字节为产品序号。如果自己定义物理地址,注意第一个字节必须为偶数*/ptr=(unsigned char*)w5100_shar;- 34 -for(i=0;i6;i+)*ptr=phy_addri;/*phy_addr 是 6 字节 unsigned char 数组,自己定义#*/ptr+;/*设置本机的 ip 地址,4 个字节注意,网关 ip 必须与本机 ip 属于同一个子网,否则本机将无法找到网关*/ptr=(unsigned char*)w5100_sipr;/*set source ip address*

52、/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 每个端口都分配 2k 的发送存储空间*/*ptr=0 x55;/* 启动中断,参考 w51

53、00 数据手册确定自己需要的中断类型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事件中断/*/ socket 处理, 其它 3 个 socket 的处理可参照此程序/*socket 初始化

54、- 35 -如果成功则返回 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_open;/*打开 socket0*/ptr=(unsigned char*)(w5100_s0_ssr+s*0 x10

55、0);/*检查状态寄存器的状态*/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;/*向目的地址寄存器写入与本机 ip 不同的 ip 值*/ptr+;ptr=(unsigned char*)(w5100_s0_cr+

56、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 字节 unsigned char 数组,自己定义*/ptr+;- 36 -ptr=(unsigned char*)(w5100_s0_cr+s*0 x100

57、);*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;return true;/*/socket 的打开和设置侦听工作/*unsigned char socket_listen(socket s)unsigned char *pt

58、r;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_open;ptr=(unsigned char*)(w5100_s0_ssr+s*0 x100);if(*ptr!=s_ssr_init)ptr=(unsigned char*)(w5100_s0

59、_cr+s*0 x100);/*打开不成功,关闭socket,然后返回*/*ptr=s_cr_close;return false;- 37 -ptr=(unsigned char*)(w5100_s0_cr+s*0 x100);/*设置 socket 为侦听模式*/*ptr=s_cr_listen;ptr=(unsigned char*)(w5100_s0_ssr+s*0 x100);if(*ptr!=s_ssr_listen)ptr=(unsigned char*)(w5100_s0_cr+s*0 x100); /*设置不成功,关闭socket,然后返回*/*ptr=s_cr_close;return false;return true;/*至此完成了 socket 的打开和设置侦听工作,至于远程客户端

温馨提示

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

评论

0/150

提交评论