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