嵌入式智能家居终端通信模块的设计与实现

上传人:jiups****uk12 文档编号:40030379 上传时间:2018-05-22 格式:PDF 页数:4 大小:134.33KB
返回 下载 相关 举报
嵌入式智能家居终端通信模块的设计与实现_第1页
第1页 / 共4页
嵌入式智能家居终端通信模块的设计与实现_第2页
第2页 / 共4页
嵌入式智能家居终端通信模块的设计与实现_第3页
第3页 / 共4页
嵌入式智能家居终端通信模块的设计与实现_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式智能家居终端通信模块的设计与实现》由会员分享,可在线阅读,更多相关《嵌入式智能家居终端通信模块的设计与实现(4页珍藏版)》请在金锄头文库上搜索。

1、刘余,孟小华:嵌入式智能家居终端通信模块的设计与实现2010,31 (8)16890引言智能家居系统应用广泛,且其功能越来越智能化、个性化, 目前已成为国内外嵌入式技术领域中的一个热门课题。智能家居的基本功能是: 在一个小区内建立一个通信网络, 为各种信息数据的传输提供必要的通路, 通过相应的硬件和执行机构, 实现对所有家电和设备进行控制和监测。智能家居终端是小区智能家居系统的重要组成部分, 不仅控制家庭中各种电器的运行状况和家庭内的安全监控, 又可通过网络集中到一个管理或控制中心, 中心提供公共信息资源, 或者对各个住户提供集中安全监控。智能家居终端在整个智能家居系统中起着一个枢纽的作用。智

2、能家居终端的一个重要功能模块就是通信模块。如何制定和实现适合不同传输特点的通信协议是整个系统开发的难点和重点。本文设计出一套通信协议方案用于串口通信、网络通信以及与智能家居终端的用户界面的通信。同时为了证明该套通信协议方案的正确性, 在Linux下用C+程序设计语言实现了该通信协议,实验结果表明这套通信协议是完全可行的。1系统结构设计1.1系统结构整个系统的设计采用了典型的 C/S 模式,由一个服务器端对多个智能家居终端进行集中管理,系统的各个组成部分之间的关系如图 1 所示。整个系统的组成如下所示:(1)智能家居终端。面向每个家庭用户, 可实现对各种家电的集中控制。收稿日期:2009-05-

3、07;修订日期:2009-07-10。 基金项目:广东省科技计划基金项目 (2007B020715001)。作者简介:刘余 (1985),男,江西九江人,硕士研究生,研究方向为计算机网络、嵌入式系统; +通讯作者:孟小华 (1965),副教授,硕 士生导师,研究方向为计算机网络、分布式计算。E-mail:嵌入式智能家居终端通信模块的设计与实现Design and implementation of communication module in smart home terminalbased on embedded systemLIU Yu,MENG Xiao-hua+(Department

4、 of Computer Science, Jinan University, Guangzhou 510632, China)Abstract:Aimed atthe limitation of storageand processorof embedded system, how to design simple and efficientserial communicationprotocolandnetworkcommunication protocol is difficulty in development. The technicaldifficultiesandthecriti

5、cal implementation tech-nology of communication subsystem in smart home terminal based on embedded Linux system are discussed, which runs on ARM archi-tecture.The design and implementation of serial communication protocol and network communication protocol is presented and all ofthese communication

6、protocols can better solve the problem of communication between different devices which have different bandwidthand rate.This communication subsystem is debugged under embedded Linux system,and it can normally communicate with serialdevices and network center. At present, it is already in used.Key w

7、ords:smart home terminal;embedded system;serial communication;communication protocol;gateway program;statetransition graph计算机工程与设计Computer Engineering and Design嵌入式系统工程16902010,31 (8)计算机工程与设计 Computer Engineering and Design(2)智能家居服务系统。 负责整个小区住宅用户的统一管理, 与每个智能家居终端通过以太网连接。(3)Web 服务器。 接收用户修改的数据并传给智能家居服务

8、系统。 (4)数据库系统。存储每个智能家居终端的设备状态。(5)Web 浏览器。用户远程控制家电的登录界面。(6)硬件控制器以及家电设备模块。限篇幅所限, 本文就智能家居终端的部分功能进行详细的介绍。1.2智能家居终端功能介绍由图 1 可知, 智能家居终端在整个系统中处于核心地位,一方面通过网络连接到网络中心的智能家居服务系统;另一方面通过 RS232 串口连接到控制器硬件;最后还需给用户提供一个图形化的操作界面。智能家居终端的功能模块组成如图 2 所示。功能介绍如下:用户操作界面: 用QT(跨平台C+图形用户界面库)实现,智能家居终端的主进程, 与用户交互。后台主轮询进程: 负责各种消息的转

9、发与处理, 实际上相当于一个网关程序。后台 TCP 服务器: 用于接收网络中心的智能家居服务系统传来的各种数据。后台 UDP 服务器: 用于接收网络中心的智能家居服务系统的在线检测数据。定时器模块: 用于抄表的定时查询。另外, 多进程间采用 UNIX 消息队列的进程通信方式。2智能家居终端通信模块设计在进行通信模块的设计时, 一方面, 需要正确而完整的接受数据,另一方面接收端还需进一步解释所接收的数据以进行下一步动作。所以,依据不同通信模块间的传输特点制定出不同的通信协议是开发智能家居终端的关键所在。本系统需定义的通信协议如下:(1)智能家居终端与控制器之间的串口通信协议;(2)智能家居终端与

10、智能家居服务系统的网络通信协议;(3)用户界面进程与后台主轮询进程的数据通信协议。由于篇幅限制,以下将重点介绍下串口通信协议以及网络通信协议中的数据下传方式。2.1串口通信协议串口通信的典型特点是波特率小且控制器硬件的缓冲区容量较小, 常为若干字节。从时间上和空间上考虑, 与串口的通信应尽量减少传输的数据量。将串口通信协议设计成采用若干字节的帧来封装并传输数据很好的适应了串口通信的特点。协议必须对源地址,目的地址,数据格式以及代表家电的状态码等字段做出统一规定,同时还需考虑到数据在传输中的出错以及因控制器硬件处理速度慢而造成的延时等问题。本系统定义的串口通信协议数据格式如图 3 所示。对于家电

11、设备,通过控制器的每次触发将会产生该串口帧, 各字段定义如下:前导符: 两个字节, 表示一帧的开始。源地址: 一个字节, 表示发送帧的地址或端口号。目的地址: 一个字节, 表示接收帧的地址或端口号。长度:一个字节,表示除前导符两个字节外的帧的总字节数。关键字: 一个字节, 用于识别不同的家电设备。状态字: 一个字节, 表示该设备的开关状态。校验和: 一个字节, 对该帧前导符除外的所有字节进行校验。初始值为 0, 计算后的校验值填入该处。控制器或智能家居终端收到帧后均需先检验该校验和是否正确, 如果校验和不正确, 接收端直接丢弃该帧。 由于每次用户通过智能家居终端控制家电设备只产生一帧,所以串口

12、通信只会是突发的数据流而非连续的数据流。另外, 为增强协议的可靠性, 任何一方发完一帧, 均需等待接收方返回确认, 如果在一定的时间内没收到确认, 则重发该帧。确认帧的数据格式和发送帧的数据格式一致,不同点仅在于源地址和目的地址字段:接收方收到一帧后修改源地址和目的地址, 然后将修改后的帧返回给发送方用于确认。 由于发送帧和确认帧的数据量并不大, 所以, 这种发送确认机制图 1系统结构数据库网络中心智能家居 服务系统Web 服务器InternetEthernet远程控制Web 浏览器智能家居 终端图形化用户界面控制器家电设备图 2智能家居终端功能模块组成智能家居终端功能模块用户操作界面后台主轮

13、询进程后台子进程后台 TCP 服务器后台 UDP 服务器定时器模块串口设备终端 后台 功能 模块网络中心服务系统抄表定时查询图 3串口通信协议帧格式8 字节6 字节2 字节前导符源地址 目的地址长度关键字状态码校验和刘余,孟小华:嵌入式智能家居终端通信模块的设计与实现2010,31 (8)1691是可行的。2.2网络通信协议智能家居终端与智能家居服务系统通过 TCP/IP 连接, 数据传输在两个方向进行:数据上传和数据下传。当终端用户的操作需要在网络中心登记, 发生数据上传; 当用户远程控制家电设备, 发生数据下传, 数据流向为网络中心服务系统到终端用户。需要定义两个数据包格式分别用于两个方向

14、的数据传输。在此主要介绍数据下传时的协议设计。数据下传主要发生于用户远程控制家电, 数据下传过程如图 4 所示。网络中心运行两个服务端口, 一个为Web服务端口, 另一个专用于与智能家居终端进行数据交互的端口。用户远程控制的网络数据包, 必须先经过智能家居服务系统来转发数据,这样确保了网络中心的数据库与智能家居终端的家电设备的状态一致性。数据下传时由网络中心的后台服务系统发往智能家居终端的数据包格式及将其转化为串口帧的方法如图5 所示。数据包各字段定义如下:标志符: 一个字节, 网络中心后台服务系统发往终端的数据类型。长度: 一个字节, 取值范围为: 0-255。指定后面数据内容的字节数。端口

15、号: 一个字节, 由于智能家居终端的控制器可连多个家电设备, 用端口号进行识别。由于智能家居终端从网络中心的后台服务系统接收的数据不仅仅只是控制家电的控制帧,有时网络中心还需发送公告、留言等信息到每个智能家居终端。这就要求智能家居终端收到数据包后首先判断首字节的数据类型字段,不同的数据类型字段值将调用不同的处理方法。如果该数据类型字段代表的是要求发送到串口的帧,智能家居终端则提取数据内容并构造成一个串口通信帧,发往串口设备。构造的过程按照图 5 的方法进行。如果该数据类型字段代表的是公告留言等文本信息, 则直接传给用户界面进行显示。由于网络传输的数据量不是很大, 试验中, 没有发生因网络阻塞而

16、引发的接收数据延时现象。同样为了增强传输数据可靠性, 在设计过程中, 增加了接收端的数据确认机制: 为了防止确认数据包增加网络负载,我们将确认数据包定义为一个字节的关键字, 这样, 当接收端成功的接收完数据后, 只需将收到的数据包的关键字返回给发送端即可。3关键的实现技术智能家居终端与串口设备的串口通信协议以及智能家居终端与网络中心后台服务系统的网络通信协议是智能家居终端的两个主要的协议,后台主程序的主要功能就是在这两个协议之间进行数据转发,相当于一个串口转网络和网络转串口的网关功能。该网关是整个智能家居终端系统的支撑,网关程序运行的是否正常直接影响到整个系统。3.1串口帧的具体定义在程序中采用十六进制数据来表示串口帧的每个字段,串口帧协议的具体定义如表 1 所示。这样,协议中的各个关键字可以在程序中很方便的表示出来:typedef enum FRAME_BEGIN1 = 0X53,/* 前导符 */FRAME_BEGIN2 = 0X54,/* 前导符 */FRAME_TERMINAL_ADDR = 0XE0, /* 智能家居终端地址 */

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号