手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

智能家居系统中的家庭网关分析与设计

张明杰| 家庭网关,软件流程,通信协议| 2010-11-29
1746 收藏
分享到: 
每日精选
热门文章
热门方案

【中心议题】

  • 提出了一种实现家庭网络与Internet互联的家庭网关方案
  • 对其原理、软件流程、通信协议进行了分析

【解决方案】

  • 采用89C-51单片机作为微控制器
  • 以网卡TE-2008的主芯片RTL8019AS作为网络控制器

家庭网关的设计是智能家居系统的设计一个重要组成部分,它是连接家庭网络与外界网络的桥梁,是家庭内外信息交流的枢纽。它的主要功能是支持家庭内部设备与互联网之间的通信工作。家庭网关既是家庭网络中的一个节点,也是互联网进入家庭的入口节点。所以它在家庭网络中的位置是很重要的。它完成的工作有以下几点:

(1)运行支持TCP/IP协议,提供HTTP服务,可以通过网络浏览器为远程访问的用户提供服务;

(2)Internet接入功能包括路由、地址转换等等;

(3)家庭网络中各种不同通信协议之间的协议转换,以及家庭网络系统与TCP/IP协议之间的转换;

(4)运行家电管理软件,以将使用不同通信协议的家用电器都接入到家庭网络中,并统一管理起来。

考虑到家庭网络通信需要的协议简单,而嵌入式系统具有体积小、专业化强、配置要求低、使用简单、实时性强、成本低廉等特点,提出一种用嵌入式网关来实现家庭网络与Internet互联的方案,采用的是89C-51单片机和网卡TE-2008的主芯片RTL8019AS来研究单片机在以太网卡数据通信中的应用。

1 原理分析

由于家庭网关解决家庭局域网络和互联网的通信问题,而互联网是按照TCP/IP协议来进行数据传输通讯的,所以系统接入互联网需要解决的主要问题就是实现TCP/IP协议,并解决数据的封装、编码及发送等问题。嵌入式网关就是把TCP/IP协议栈固化在单片机内,使单片机具有以太网接入功能的一种廉价的网络接入装置。这种方法的实现框图如图1所示。

 

只要微控制器对网络接口芯片进行控制和通信,并通过自主开发TCP/IP协议栈,把标准网络技术(TCP/IP)运用到嵌入设备中,就能在网络环境下在任何时间从任何地点对它进行监控,利用传统的Web和因特网机制对远程监视数据和运行情况控制。

2 家庭网关的硬件设计

家庭网关的微处理器采用1689C-51单片机,负责承载网络层以上的协议及提供网络访问服务;以太网控制器芯片采用台湾Realtek公司生产的RTL8019AS,负责物理层和链路层的协议和进行互联网的数据传输工作;和家用计算机的连接采用RS232接口有线连接,和家庭网关及各个智能控制节点的连接采用无线收发模块进行无线连接,其硬件原理框图如图2所示。

3 软件设计与实现

软件部分主要包括以太网控制器接口软件的设计和嵌入式TCP/IP协议栈的开发。

3. 1 以太网控制器软件设计

以太网控制器RTL8019AS接口软件的设计部分是主要用来实现以太网控制器的数据发送和数据接收。程序主要分三大部分:

3. 1. 1 初始化过程

网络接口控制芯片RTL8019AS有两种复位方法,一是可以通过把其复位引脚RSTDRV置高为电平进行冷复位;二是可以通过读写其复位端口RSTPORI进行热复位。复位后,中断状态寄存器的RST标志位为1,此时为离线工作状态,即不能发送或接收数据帧。为了使接口控制芯片启动并处于准备接收或发送数据的状态,需要进行一系列初始化工作。

 

3. 1. 2 接收过程

RTL8019AS内置存储空间的一部分指定为缓冲环的地址空间,页起始地址由PSTART寄存器指定,页终止地址由PSTOP寄存器来指定,页起始地址与页终止地址相邻,构成循环队列式的缓冲环结构。CURB寄存器指向新接收到的帧存放的起始页,作为本地DMA的写指针; BNRY寄存器指向未读的帧的起始页,作为远程DMA的读指针。当CURB寄存器追上BNRY寄存器,表示接收缓冲环已满,后续接收到的帧会被丢弃;BNRY寄存器追上CURB寄存器,表示接收缓冲环已空。

接收帧时,首先RTL8019AS接收网络上的数据帧,然后通过本地DMA通道将接收到的数据帧放在接收缓冲环中。当无错误的接收到一帧数据后, 中断状态寄存ISR中的PRX标志位置为0。再通过远程DMA通道由嵌入式微处理器将接收缓冲环的数据帧由数据总线读入存储单元。当远程DMA读操作完成后,RTL8019AS将中断状态寄存器ISR中的RDC位置为0,通过此标志位的状态可判断远程DMA读操作是否结束。

数据帧的接收可采用中断或查询方式进行,采用查询式接收帧的程序流程如图3所示。CR寄存器中的RD2, RDI, RDO3个位组合起来设定DMA的有关操作。001则启动远程读操作; 010则启动远程写操作: 011则发送网卡数据包; 1**则终止或结束DMA的读写操作。

 

3. 1. 3 发送过程

发送帧时,发送方将待发送的数据按帧格式要求封装成帧,再通过处理器的I/O通道和网络接口控制器的远程DMA通道将数据写入本地发送缓冲。当远程DMA写操作完成后,RTL8019AS将中断状态寄存器ISR中的RDC位置0,通过此标志位的状态可判断远程DMA写操作是否结束。然后网络接口控制器将数据帧发送到网络的传输线上,由接收方接收。在发送完毕,测试发送状态寄存器TSR中的各标志位来检验是否数据帧已经无错发送完成。

发送帧的程序流程如图4所示。RSARORSARI寄存器是用来指定远程DMA写操作时数据存放的缓冲区首地址。远程字节计数寄存器RBCRORBCRl用来指明本次远程DMA操作时传输数据的字节数。

 

3. 2 TCP/IP协议栈

由于在家庭网络中应用嵌入式设备功能比较单一,在上述网络接口控制芯片接口程序的基础上只需要使用简化的嵌入式协议栈,即可满足大部分情况下的应用要求。针对单片机设备的实用性、存储能力、处理能力的局限性,在实现TCP/IP协议时包括以下方面:地址识别协议—ARP/RARP协议,基本数据传输协议—IP协议,差错控制协议—ICMP协议,可靠数据传输控制协议TCP协议,超文本文件传输协议HTTP协议。基本的协议处理程序如5图所示。

3. 2. 1 IP协议

IP(InternetProtocol)协议是网络层TCP/IP协议的基础。不同网络的主机之间在进行发送数据包操作时,都是在数据前添加IP协议头,使每个数据报具有了寻址能力。在接收到IP包后,微处理器检验IP头部的版本、目的地址、校验和正确,就解析出协议类型字段,然后交给相应的高层协议处理。

发送IP包时,将缓冲区内的源地址与目的地址互换,设置校验和,然后交给下层协议处理。不符合要求,则将此包丢弃。

IP数据包最大为65K,可以分段传输,而在嵌入式系统里根本无法容纳如此大的数据包,因此一般是不支持分段的。限制MCU发送数据包的方式和接收的有效数据分组地格式以避免分段,从而减少程序复杂度。

 

3. 2. 2 TCP协议

TCP协议是传输层面向连接的、端对端的可靠通信协议。它采用了许多机制来保证传输可靠性,例如:通过序列号来解决通信时的丢失、重复、失序问题;通过校验和来解决数据误码问题等等。

在设计嵌入式WEB服务时,系统中TCP协议上只支持HTTP协议,嵌入式系统把数据采集、运行参数等当前实时数据存入存储器中网页相关的位置。对任何TCP连接,每次只是支持HTTP协议发送网页服务,并且把每个网页大小限制在一个数据包内,而不要出现IP包的分拆。对依靠TCP连接的HTTP服务来说,嵌入式服务仅仅在服务器端响应客户端请求,所接收的报文一个数据包即可传输完成,故不需考虑失序问题。在三次握手建立连接的过程中,嵌入式系统作为监听状态的服务端,始终为被动方,相当于被动打开后的LISTEN状态,等待对方发起连接。嵌入式TCP设计中没有记忆TCP连接所处的当前状态,也没有分开建立多个TCP连接,同时不记忆TCP连接的序列号,不能识别重复报文,把此重复报文的处理工作交给对方处理。

3. 2. 3 HTTP协议

应用层的超文本传输协议HTTP每一次的交互是由一个ASCII码请求跟着一个MIME的应答组成。协议包括从浏览器到服务器的请求集和从另一方向来的应答集。其中GET方法请求服务器发送一页面,因为本嵌入式系统中的WEB页面中的相关数据总是实时更新的,因此每次解析出的GET方法,都是发送当前网页。从TCP协议传入HTTP请求时,解析出GET命令和目的网页,根据目的网页的名字,确定要发送的数据,文件名字错误,则为index. htm,将数据传入网络接口控制器的发送缓冲区,同时计算当前校验和:装配HTTP协议包头部,根据TCP的当前状态,装配TCP协议头部,确定校验和等字段,TCP协议头部传入发送缓冲区;再装配IP协议包头部和以太包头部传入发送缓冲区,最后将数据帧发出,完成HTTP回应。

4 结束语

家庭网关在智能家居网络中具有重要地位,本文从硬件和软件两个方面对家庭网关进行了设计,并对其原理、对其软件流程、通信协议进行了分析。随着家庭网关技术的逐步发展和完善,智能家居必将成为未来家庭的主流和趋势。

点赞

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号