《网络化智能家居系统(1).docx》由会员分享,可在线阅读,更多相关《网络化智能家居系统(1).docx(25页珍藏版)》请在三一办公上搜索。
1、第四届“Motorola杯”嵌入式处理器设计应用大奖赛参赛作品网络化智能家居系统Smart Home Network System标题网络化智能家居系统日期2002-10比赛编号A11356姓名罗 嘉(中文) Luo Jia (英文)单位北京市清华大学工程物理系单位电话010-62781445通讯地址北京市清华大学工程物理系210B邮编100084电子邮箱luojia physics 电话:010-13910188310目 录目 录I一、引 言1二、设计概述32.1 以太网网关终端32.1.1 背景信息32.1.2 设计目标32.1.3功能特性42.2 智能灯光控制器42.2.1 背景信息42
2、.2.2 设计目标52.2.3功能特性5三、硬件描述63.2 以太网网关终端73.2.1 硬件框图73.2.2 电路原理图83.3 智能灯光控制器93.3.1 硬件框图9四、软件描述104.1 启动代码(Boot Code)114.2 TCP/IP协议栈设计134.2.1 现有的8-bit MCU连接网络的方案比较134.2.2 现有的嵌入式TCP/IP协议栈的比较134.2.3 TCP/IP原理简述14五、功能展示19六、参考文献21七、致谢21一、引 言想象一下:您准备欣赏电视节目,在您说“看电视,新闻联播。”这句话的时候,电视打开了,频道调整到中央一台,窗帘拉上了,房间的光线逐渐调整到最
3、适宜看电视的程度或者,在您回家的路上,自动为您提前打开空调,调整室内温度到合适程度,接通通风装置;调节好室内的光线;把您预先准备好的食物用微波炉加热。这样,您一回来就可以享受到清新的空气、舒适的环境,或许还有一杯热茶这看起来就想科幻影片里描写的一样。可是,事实上这样的生活已经近在咫尺。随着IT产业的发展和人们生活水平的提高,“智能住宅”、“家庭自动化”等技术的发展正受到人们的密切关注,相关产品也在逐渐成熟。基于Motorola多元化的DigitalDNATM技术,我们开发出应用于家庭的一系列智能化网络控制系统,已经在近千家住户中实际使用,这些充满智慧与灵感的模块使得人们的生活更加轻松写意。网络
4、化的智能家居系统由智能家庭总线以及总线上挂接的多种功能模块(节点)构成。在一个对等型的网络上众多节点可以交换数据和相互控制,通过专门开发的ECHome Pro软件,可以设定各节点之间的逻辑关联和工作模式。水/电/煤气表传感器接入灯光控制器温度传感器光照传感器安防传感器智能网络开关日程管理模块INTERNET以太网网关终端手持遥控器家庭总线电动窗帘网络微波炉录像机红外家电控制器智能电话控制器电视机电话线路DVD门禁控制器电源开关控制器中央空调控制器红外线空调图 1 网络化智能家居系统的节点构成在解决智能住宅中的设备互联问题时,采用了分布式网络控制系统这一方案,它非常适合众多的嵌入式智能设备发挥网
5、络化的特点,更容易扩充和维护。由于采用了对等网、单一总线方式,使得系统的布线简洁、安装方便。所有的终端设备可随时接入总线或脱离总线;作为一套成本敏感的消费电子产品,应以提供实用化功能为原则,将其控制在合理的价格范围。每个网络节点根据不同的功能需求,选择MC68HC08系列的某一款微控制器。例如,在“以太网网关终端”和“智能灯光控制器”中,采用了MC68HC908SR12;而在“红外家电控制器”、“智能电话控制器”等资源要求相对较多的节点,采用MC68HC908GP32作为核心。本论文将选择最具有代表性的两个节点的设计情况进行深入介绍:l 以太网网关终端(ESWeb)该网关终端一端连接在小区的以
6、太网上,另一端连接在家庭内的控制总线上。它可以提供三表传送、安防报警、紧急求助、网络远程控制等功能。该终端采用MC68HC908SR12设计,实现了TCP/IP协议栈及Web Server。l 智能灯光控制器(ESLight)它是智能网络上一个典型的节点。具有轻触式调光控制、网络场景控制、红外遥控、预设存储等丰富功能。通过面板上的轻触按钮,可以控制灯光的开关和亮度,或者使多盏灯光进入某种预设的场景;也可以通过手持遥控器来控制住宅内所有的灯光。通过遥控器上的场景设置按键,可以方便地设定灯光场景和迅速切换。 二、设计概述在网络智能家居系统中,具有代表性的两个节点是“以太网网关终端”和“智能灯光控制
7、器”。如下图所示,通过智能灯光控制器,可以对各盏灯光进行直接控制;通过以太网网络终端,可以实现对灯光亮度的远程控制和查询。家庭总线 ESBus以太网以太网网络终端智能灯光控制器(00 3A)智能灯光控制器(00 4C)图 2简单的控制网络框图下面将分别介绍它们的设计方案。2.1 以太网网关终端2.1.1 背景信息随着互联网技术的发展,宽带网络在全国范围内迅速发展。许多新建住宅小区都将以太网铺设到了用户家庭,使得整个小区的居民通过以太网实现宽带上网成为可能。同时,随着社区服务的完善,智能小区需要通过一个安装在每个家庭的终端设备实现信息发布、物业管理、三表传送、紧急求助等功能。以往,这样的信息终端
8、和社区服务中心通过铺设专线,如485总线来进行连接,工程量大,故障率高,且由于只能采取主机轮循方式而效率较低。如果能够利用已经铺设到用户家庭的、现成的、稳定的以太网络组建社区综合服务体系是一项非常有意义的事情。而目前基于以太网的信息终端通常采用32-bit 的微处理器和Windows CE等通用操作系统,这种结构开发周期短、功能强、信息交换速率高、但致命的缺点是成本太高,这也是一直在国内无法推广的主要问题。因此,向智能小区的每个住宅提供一个基于8位MCU连接Ethernet的低成本信息终端,不仅具有实用价值,而且市场前景也相当广阔。2.1.2 设计目标在本方案中,设计了一台家庭信息终端,安装在
9、智能小区的每个家庭中,提供三表传送、安防报警、紧急求助、网络远程控制等功能。它是相对独立的智能测控设备,可以直接与小区的以太网相连接。作为一个成本敏感的消费电子产品,应以提供实用化功能为原则,将其控制在一个适当合理的价格范围。在此应用中,信息终端对数据交换的速率要求并不高(如1Mb/s以下),所以可采用价格低廉的高速MCU,写入TCP/IP协议,从而将整个终端的成本降到100-200元人民币。经过分析,我们选择了MC68HC908SR12作为设计核心,并利用10M以太网芯片RTL8019AS建立Ethernet网络连接。在软件设计方面的重点是实现TCP/IP协议栈,由于RAM和FLASH空间的
10、限制,必需设计出相当精炼的网络连接协议栈,同时又需要保证其可靠性。基于IP的设计使它能通过一个开放的网络平台相互通讯。68HC908是具备FLASH在线编程能力的MCU,为了满足调试、升级的需要,我们设计了利用以太网进行在线程序升级的代码,使得信息终端可以通过下载新的应用程序来获得更丰富的功能。由于信息终端是一台嵌入式WWW服务器,使得用户在世界任何地方随时可以上网通过WWW浏览器了解家中情况并简单控制家中电器,进行设防/撤防;真正让用户每天都能感受到家庭智能化的强大魅力。2.1.3功能特性1. MCU采用Motorola的MC68HC908SR12(7.4MHz Bus Frequency,
11、512byte RAM,12KB FLASH);2. 10M Ethernet 采用RTL8019AS以太网芯片;3. 软件上实现协议:ARP, ICMP, TFTP, UDP, TCP, IP, TELNET, HTTP, CGI等;4. 网络类型:Ethernet 通讯介质:UTP(非屏蔽双绞线);5. 网络带宽:10Mbit,由于处理器限制,实际只能达到50Kbit/s左右的传输速率;6. 输入: 4路光电隔离,可以配接传感器,紧急求助按钮等;7. 输出: 4路光电隔离输出,可配接功率驱动模块;8. 键盘:16键,功能:智能终端配置、设防/撤防等;实际上,在68HC908系列MCU上实现
12、了TCP/IP协议栈之后,其应用领域是相当广泛的:1. 网络化控制:电机、灯光、工业自动化、家庭自动化2. 网络仪表:远程分布式数据采集3. 网络家电:智能家电、WWW方式监控界面、在线更新4. 网络摄像机:在远程浏览器上可以进行视频监控;5. 家庭网关:非INTERNET协议的轻量级设备联网的转换器;2.2 智能灯光控制器2.2.1 背景信息随着人们生活质量的提高,灯具已不单纯是实现室内基本照明的工具,而且是建筑装饰的一种实用艺术品。当家里有各式各样的灯具之后,将它们精心地搭配在一起,并且达到最适合气氛的效果是高品质生活的需要。同时目前灯光的控制主要还是手动形式,逐个地去控制所有的灯具,这样
13、不仅麻烦而且效率低下,也不符合现代舒适生活的标准。因此,一个可以对灯光进行方便的控制,同时提供场景组合等功能的智能化灯光系统不仅具有实用价值,而且市场前景也相当广阔。2.2.2 设计目标设计一个智能化灯光控制器,安装在家中的各个房间,提供轻触式灯光控制、红外遥控、场景组合、预设存储等丰富功能。通过面板上的轻触按钮,可以控制灯光的开关和亮度,或者使多盏灯光进入某种预设的场景;也可以通过手持遥控器来控制住宅内所有的灯光。通过遥控器上的场景设置按键,可以方便地设定灯光场景和迅速切换。系统分为接收外来控制信号和执行控制操作两部分。为了接收控制信号,系统需具备红外接收功能,按键输入面板。为了对灯具执行控
14、制,需要设计220V调光控制电路。利用MC68HC908SR12的FLASH在线刷新(ISP)能力,我们设计了一套可重用的内核(包含BIOS与OS),通过与内核的交互可以方便地在线下载应用层的程序。应用层的程序包括以下功能:开关面板按键输入判断、红外遥控器接收、预设场景存储、调光可控硅控制。由于MC68HC908SR12具有丰富的外围接口资源,并有着很高的可靠性和运算速度,非常适合于该款产品的设计。2.2.3功能特性1. MCU采用Motorola的MC68HC908SR12;2. RS485总线型网络,通讯波特率19200;3. 输入:轻触按键,红外遥控器。 4. 输出:开关输出,调光输出;
15、5. 采用简单的实时多任务内核;6. 网络化的开关按钮控制,可以通过Windows版本软件任意设定;7. 多种场景的设置,存储,及执行。三、硬件描述整个系统的核心由MC68HC908SR12构成。它的内部框图如图 3所示:图 3 MC68HC908SR12内部框图对于以太网网关终端(ESWeb)和智能灯光控制器(ESLight)的设计,选择MC68HC908SR12作为核心处理器是基于以下理由:1. 较低的成本:由于是家用设备,对成本非常敏感;而SR12不到$2.5美金的价格,单芯片的解决方案,使得整体成本可以降低;2. 适用的功能:通过ESWeb实现基于Web浏览器的网络远程控制界面相对简单
16、,用高端处理器或者PC来实现显得不够经济;我们编写的TCP/IP协议栈约占用7KB FLASH和380 Bytes RAM,SR12完全可以满足这一需求并有富余。此外,高达8MHz的总线频率使得它和其他MCU相比具有较强的处理能力,经过实测,在以太网上传输HTML页面并没有感到特别的延迟;对于ESLight来说,需要10KB12KB的空间来存储代码和配置信息,SR12恰好能满足这一需求。3. 在线升级能力:对于ESWeb,由于每个家庭的设备情况不一样,要能根据实际情况形成不同的网页控制页面;而MC68HC908系列的芯片均支持FLASH的在线编程能力,我们设计了一套运行在Windows环境的配
17、置软件,可以根据每个家庭的情况定制不同的HTML页面下载到SR12芯片上;对于ESLight,可以在线下载关联定义、场景配置、遥控器接收定义等信息,这些信息可以在掉电后存储。4. 足够的器件资源:SR12具有多达31个GPIO,可以很方便地和以太网控制器RTL8019AS相连接;剩余接口可以用来扩展传感器、键盘、功率输出等接口;内置的温度传感器和10-bit AD转换器可以用来采集温度和模拟量数据;通过时钟单元的输入捕获功能,还可以实现对水、电、气三表的脉冲输出采集。在ESLight的设计中,由于需要对可控硅进行控制,一方面,需要精确地获取220V交流电中的过零信息,另一方面,也需要通过定时器
18、控制可控硅的开关时间,SR12的两个IRQ以及两个定时器能很好地满足两路调光控制器的设计要求。5. 安全可靠:系统要有非常高的可靠性,不易出现误动作,例如,在灯光系统中,由于和220V交流电距离很近,不能受到交流电的影响。由于MC68HC908系列的芯片在稳定性和抗干扰能力方面表现不俗,所以能极好地满足这一要求。接下来,将分别描述两个节点的硬件设计细节。3.2 以太网网关终端3.2.1 硬件框图MCUMC68HC908SR12PLL (32.768KHz)D(7.0)A(2.0)EthernetRTL8019AS20MHzIORIOWIsolation TransformerRJ45 Conn
19、ectorLED: Power, Link, LANKeyPad(16Keys)Control NetworkMAX487Digital/Analog InputFor sensors statusEEPROM24LC256RJ11ConnectorSCIGPIOI2CGPIOLEDADDC 5V Power Supply图 4 信息终端模块硬件系统框图 硬件由以下几部分组成:1. 单片机及其外围器件,主要是:MC68HC908SR12、PLL(32.768KHz晶体等)、LED指示灯;2. 以太网控制器部分,主要是RTL8019AS、耦合变压器、RJ45插座、20MHz晶体;3. 外置存储器
20、,由一片I2C接口的EEPROM构成。通过SR12内置的I2C接口连接;4. 家庭控制网络连接部分,由MAXIM公司的MAX487、RJ11插座构成。5. 外部接口,16键按键键盘、4路模拟量输入、4路数字量输入、2路脉冲量输入;6. 电源部分,由一片7805提供5V的直流电压。3.2.2 电路原理图图 5 RTL8019AS部分电路图 6 RS485电平转换部分的电路图3.3 智能灯光控制器3.3.1 硬件框图PLL (32.768KHz)RJ11 ConnectorMCUMC68HC908SR12LED, Beeper Power, IndicateTTL-RS485Converter6
21、Key InputDC 5V Power SupplyInfrared InputDimmerSCR图 7 智能灯光控制器的原理框图硬件由以下几部分组成:1. 单片机及其外围器件,主要是:MC68HC908SR12、PLL(32.768KHz晶体等)、LED指示灯、蜂鸣器;2. 按键输入接口,在面板上,提供6键的按钮,作为调光控制或场景控制;3. 红外遥控接口,在面板上有一个红外遥控器接收窗口,可以实现红外遥控信号的接收;4. 调光驱动部分,使用两片可控硅(SCR,Silicon-Controlled Rectifier,又称硅控整流器)进行调光控制。通过一片光藕(MOC3021),从220V
22、交流电上取出过零点信号作为同步,过零信号表现为一个低电平脉冲,连接到SR12的IRQ1、2上作为中断输入;5. 家庭控制网络连接部分,由MAXIM公司的MAX487、RJ11插座构成。6. 电源部分,由控制总线可提供12V直流电压,由一片7805提供5V的直流电压。四、软件描述我们用汇编语言实现了一段启动代码(Boot Code),而全部的应用程序则采用C语言编程,编译环境为Hiware C。以太网网关终端的软件框图如下:MC68HC908SR12Applications模拟量采集键盘采集EEPROM读写CEBus应用层协议栈CGI处理模块ESBus控制总线链路层RS485通讯控制UDPTCP
23、IPARPETHERNETRTL8019ASMAX487控制总线通讯接口HTTPBOOT Code图 8 以太网网关终端的软件框图智能灯光控制器的软件框图如下:MC68HC908SR12Applications交流电过零采集按键输入支持可控硅驱动红外输入支持OS系统调用支持网络协议支持实时多任务内核应用层更新模块输入输出关联支持,场景支持BOOT Code提供在线擦写上层程序功能RS485总线图 9 智能灯光控制器软件框图4.1 启动代码(Boot Code)Motorola的MC68HC908SR12是片内集成FLASH的8位单片机,FLASH擦写速度快,可靠性高,可独立擦写至少1万次以上,
24、所以在需周期修改存储的数据和代码的场合,都是理想的选择。同时,表贴工艺(SMD)因其使相同集成度的器件封装性能更好、尺寸更小等优点,越来越得到推广。但是这也给嵌入式系统的开发带来了新的问题:表贴的芯片一旦焊接到PCB板上,就很难再取下来,如果事先写入的程序错误或者丢失,则会给修改或恢复带来诸多的麻烦。在本项目中,包括SR12在内的大部分器件选择了贴片形式的,因此需要实现程序的在系统编程。如果通过Monitor方式在线编程,那么需要在PCB板设计时预留相应的管腿和跳线。但在本设计中由于体积限制无法预留。因此,我们采用了固定BOOT代码的方式。BOOT代码的工作流程如图 10所示。我们将烧写了BO
25、OT代码的芯片直接焊接到目标板上,通过串口通讯就可以随时更新目标板上的程序,无需设置任何跳线,非常方便。Boot代码约为1.5K,如果去掉其中的CRC校验计算部分,改为Checksum校验和,代码将更简洁。上电初始化(Config寄存器;PLL;串口通讯)启动延时延时是否够3秒?串口是否接收到升级FALSH代码段的请求?反馈确认信息接收数据FLASH编程/校验反馈校验数据跳转到正常程序代码 (main)升级是否完成?YesYesNoNo图 10 BOOT代码工作流程图有了Boot代码,调试的过程为:1. 通过串口连接目标板;2. 编译程序,生成SX格式文件;3. 复位目标板,在3秒钟的延时时间
26、内,通过自行编写的DLS19工具,将S19格式文件下载到目标板上;4. 程序将自动按照正常工作状态开始执行。此时,可以通过串口打印信息,在DLS19工具中进行调试。4.2 TCP/IP协议栈设计4.2.1 现有的8-bit MCU连接网络的方案比较利用8位MCU通过精简的TCP/IP协议栈来连接以太网,现在已有的方案的如表格 1所示。表格 1常见的MCU连接网络的方案比较方案采用的处理器内存需求代码尺寸所实现的协议栈物理层特点/评价AN2120HC908GP32384Byte6KBSLIP/PPP/UDP/IPSerial不能连接以太网8052.lphard.cz805132KByte15KB
27、TCP/IP/UDPEthernet协议栈用ASM编写且以LIB形式发布,不利于移植TCP/IP lean ServerPIC500Byte10KBPPP/TCP/IP/UDPSerial只有SLIP、代码过于简化MSP430MSP4301KByte5KBTCP/UDP/IPEthernet代码过于简化Adu0812Adu08121KByte5KBTCP/UDP/IPEthernet参考Tiny TCP设计ScenixScenix MCUTCP/IPEthernet使用高速单片机RabbitRabbit MCUTCP/IPEthernet使用高速单片机可见,目前尚无运行在Motorola 8-
28、bit MCU上的具备以太网连接功能、支持TCP/IP协议的解决方案。因此,在本项目中,希望能够在Motorola典型的8位单片机MC68HC908SR12上做到以太网协议栈的支持。4.2.2 现有的嵌入式TCP/IP协议栈的比较TCP/IP最先是在UNIX系统里实现的,后来的LINUX、DOS、WINDOWS也实现了TCP/IP,随后TCP/IP协议也被移植到其它嵌入式的处理器上,由于指令以及资源上的原因,在UNIX上实现的TCP/IP协议的原代码并不能够直接移植到8位的单片机上。单片机的程序空间是极为有限的,直接寻址的空间仅64K字节,可用的内存RAM也是非常小的,最多只能扩64K的RAM
29、。单片机的运算速度也极为有限,一般只有2MIPS,而电脑上的处理能力在100MIPS以上。因此,嵌入式系统尤其是8位单片机上的TCP/IP协议栈需要高度简化专门设计。可以用来参考的协议栈包括如下表所示。表格 2 常见嵌入式TCP/IP协议栈比较方案内存需求代码尺寸特点/评价8052.lphard.cz32KByte15KB协议栈用ASM编写且以LIB形式发布,不利于移植TCP/IP lean Server on PIC500Byte5KB只有SLIP的支持,不能连接以太网TCPIP Stack on MSP4301KByte5KB代码过于简单,不利于扩展lwIP10KB40KB资源需求稍多Ti
30、nyTCP500Byte6KB比较可行的方案uip 0.6500Byte5KB比较可行的方案Ucip1-0-3需要和uC/OS 这一实时内核配合EtherNut 需要和NUT OS这一实时内核配合在本方案中,选择了TinyTCP、uIP 0.6作为参考设计。4.2.3 TCP/IP原理简述4.2.3.1 网络协议栈网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。TCP/IP通常被认为是一个四层协议系统,如图 11所示。每一层负责不同的功能。图 11 网络协议层(1)数据链路层,有时也称为网络接口层。通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或
31、其他任何传输媒介)的物理接口细节。(2)网络层,有时也称作互联网层。处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP协议(Internet互联网控制报文协议)以及IGMP 协议(Internet组管理协议)。这里主要讨论IP协议。(3)传输层主要为两台主机上的应用程序提供端到端的通信。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。(4)应用层负责处理
32、特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些应用:1. HTTP超文本传输控制协议;2. TELNET远程登录;3. FTP文件传输协议;4. SMTP简单邮件传送协议;5. SNMP简单网络管理协议。由于8位嵌入式网络通常面向专门的、小数据量的应用,实现FTP、SMTP等协议栈并没有太大意义。因此,这里主要讨论HTTP协议。因为数据链路层主要是网络接口卡及驱动,由RTL8019AS来实现,所以下面讨论网络层、传输层和应用层协议栈的实现。在传输的数据报文中,各个层次的协议栈都会添加自己的首部和尾部数据。如图 12所示。图 12 各协议栈对HTTP数据报文的贡献4.2.3.
33、1.1 网络层IP是TCP/IP 协议族中最为核心的协议。Internet所有的数据都以IP 数据报格式传输。IP协议最大的特点是提供不可靠的和无连接的数据包传送服务。IP数据包的格式如图 13所示。图 13 IP数据包的格式4.2.3.1.2 传输层传输层中包括TCP(传输控制协议)、UDP(用户数据报协议)等。用TCP协议传输的所谓数据实际指的是数据流中的段,而用UDP协议传输的所谓数据指的是数据包。IP所提供的是非可靠的、无连接能力的、向指定主机地址的包传送的协议。TCP和UDP都属于IP上层的传输层协议。二者都使用端口号作为送往主机的解码地址。端口号由各个具体应用所确定,同时使用多个端
34、口号能完成“一机多网”的操作。每个UDP数据包和TCP数据段中都含源端口号和目的端口号。为接收远端的输入而等待着执行接入操作的主机是所谓的服务器,发起接入请求的主机就是所谓的客户机。服务器为最常服务的应用如FTP(文件传输协议)、Email和HTTP,分配了知名的端口号并对其进行持续地监听。作为传输源的客户机通常选择随机的端口号,并向已分配了知名端口号的服务器发出接入请求。客户应用所取的端口号应大于1024,因1024以下的端口号是为知名应用而预留的。(1) TCP 协议TCP提供一种面向连接的、可靠的字节流传送服务。TCP数据包的结构如图 14所示。图 14 TCP数据包的结构(2) UDP
35、 协议UDP 被认为是一个应用程序和IP间的接口,因为应用程序从不直接使用IP。UDP层很小,包含8个字节的头。但需要应用层来负责错误恢复,重传等等。图 15 UDP 作为应用程序到IP之间的接口UDP不够可靠,当数据包到达目标时没有确认。它不处理以混乱顺序到来的报文,也不提供反馈来控制主机间的信息流。因此UDP消息会丢失、重复或顺序混乱。这意味着使用UDP的程序应该让传输可靠。UDP 主要用在传输视频和音频。4.2.3.1.3 应用层HTTP是WWW上的协议。当用户要浏览服务器上的一个网页时,一个HTTP 请求就会从用户的浏览器发到HTTP服务器。服务器响应这个请求,把指定的网页传送回来,用
36、户才看到了网页。下面是一个典型的客户端向服务器发送请求的例子:GET Destination_IP/index.html http/1.0GET代表客户端的请求命令,而服务器也受理这个命令;Destination_IP代表远程主机的IP地址;index.html是客户端请求的资源;http/1.0是HTTP协议的版本。4.2.3.2以太网网卡的工作原理RTL8019AS是RealTek公司生产的一种全双工以太网控制器,由于其优良的性能、低廉的价格,使其在市场上10MbpsISA总线网卡中占有相当的比例。4.2.3.2.1 主要性能1. 适应于Ethernet II 、IEEE802.3 、10
37、Base5、10Base2、10BaseT;2. 与NE2000兼容,支持8位、16位数据总线;3. 全双工,收发可同时达到10Mbps的速率,具有睡眠模式,以降低功耗;4. 内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;5. 可连接同轴电缆和双绞线,并可自动检测所连接的介质; 6. 100 脚的TQFP封装,缩小PCB尺寸。4.2.3.2.2 内部结构按数据链路的不同,可以将RTL8019AS内部划分为远程DMA(remote DMA)通道和本地DMA(local DMA)通道两个部分。本地DMA完成控制器与网线的数据交换,主处理器收发数据只需对远程DMA操作。当主处理器要
38、向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令。RTL8019AS在完成了上一帧的发送后,再完成此帧的发送。RTL8019AS接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区,收满一帧后,以中断或寄存器标志的方式通知主处理器。原理框图如图 16所示。 图 16 RTL8019AS原理框图在图 16中,接收逻辑在接收时钟的控制下,将串行数据拼成字节送到FIFO和CRC;发送逻辑将FIFO送来的字节在发送时钟的控制下逐步按位移出,并送到CRC;CRC逻辑在接收时对输入的数据进行CRC校验,将结果与帧尾的CRC比较,如不同,该
39、帧数据将被拒收,在发送时CRC对帧数据产生CRC,并附加在数据尾传送;地址识别逻辑对接收帧的目的地址与预先设置的本地物理地址进行比较,如不同且不满足广播地址的设置要求,该帧数据将被拒收;FIFO逻辑对收发的数据作16个字节的缓冲,以减少对本地DMA请求的频率。五、功能展示“以太网网关终端”和“智能灯光控制器”可以形成一个小系统,如下图所示。每个“智能灯光控制器”拥有一个独立的Node ID地址,“以太网网络终端”除了拥有在总线上的Node ID之外,还需要分配一个以太网上的IP地址。家庭总线 ESBus以太网以太网网络终端智能灯光控制器(00 3A)智能灯光控制器(00 4C)计算机220V
40、AC图 17简单的控制网络框图可以实现的功能如下:1. 可以通过ECHome Pro软件,定义智能灯光控制器的场景和按键功能。图 18 ECHome Pro配置软件界面2. 经过配置后,智能灯光控制器可以对总线上的各盏灯光进行直接控制;还可以通过轻触场景按键,使得总线上的多盏灯光进入预设场景模式。3. 以太网网络终端相当于一个嵌入式的WWW服务器,在普通计算机的浏览器上,可以访问该以太网网络终端,实现对灯光亮度的远程控制和查询。图 19 访问ESWeb时看到的首页图 20 访问ESWeb时看到的设备控制页面六、参考文献【1】COMER DOUGLAS E. 用TCP/IP进行网际互连TCP/I
41、P详解,卷1:协议林瑶等译 北京:电子工业出版社【2】许华杰, 明健 基于SX单片机实现WebServer和网络协议栈单片机与嵌入式系统应用2001.11【3】万静华,丁亚军 以太网控制器的嵌入式设备网络互连 单片机与嵌入式系统应用2001.12【4】MC68HC908SR12 datasheet. 【5】RTL8019AS datasheet. 【6】RFC-791 IP (Internetwork Protocol) http:/www.rfc-editor.org 【7】RFC-792 ICMP (Internetwork Control Message Protocol) http:/
42、www.rfc-editor.org【8】RFC-826 ARP (Address Resolution Protocol; for IP over Ethernet) http:/www.rfc-editor.org【9】RFC-786 UDP (User Datagram Protocol) http:/www.rfc-editor.org【10】RFC-1025 TCP/IP Bake-Off (testing of TCP/IP implementations) http:/www.rfc-editor.org【11】RFC-1122 Requirements for Internet hosts (1) http:/www.rfc-editor.org【12】RFC-1123 Requirements for Internet hosts (2) http:/www.rfc-editor.org【13】RFC-1700 Assigned Numbers http:/www.rfc-editor.org【14】TinyTCP: 七、致谢首先要感谢我的导师邵贝贝教授一直以来给予的关心和支持。还要感谢实验室里薛涛、龚光华、蒋俊峰、马伟等同学的大力相助,使我的设计能够如期完成。