基于Linux系统和ZigBee的智能家居系统方案
图2 终端硬件结构框图
智能终端与中心控制器通过基于ZigBee的无线网络完成通信,传输一个指令的数据包由以下几部分组成:起始编码bite[0][1],地址编码bite[2],数据类型编码bite[4],功能编码bite[5],效验编码bite[6],结束编码bite[7].每个编码1个字节,发送数据范围在0~255之间,不同家庭内部的起始编码都是惟一的,防止相互信号的干扰,每个接收终端在接收到数据后,都进行地址码判断是否为自己接收的数据包,是则接收,否则不接收,接收到数据包后,对数据要执行的功能进行校验,校验正确,则进行解码,并且在解码成功后通过ZigBee的无线网络发出一个确认接受码,中心控制器在接收到确认接收码后停止再次发生控制指令,否则间隔100ms再次发生相同指令,确保整个ZigBee的无线网络数据通信的准确性和完整性。每个智能终端在正确接收到中心控制器的控制信号后,必须根据信号完成相应家庭内部的控制工作,所以家电设备的控制信号都是由统一的红外编码完成的,不同家电的红外编码各不相同,必须进行红外编码的解码和重新的编码,解码工作利用400MHz的具有存储功能的高精度示波器采集完成,编码采用AT89C51芯片的两个定时器交互中断进行,中断程序控制相应的I/O口产生对应的脉冲,脉冲输出测试结果如图3所示。
图3 AT89C51产生的红外解码脉冲
2.2 GPRS远程通信设计
以ARM11S3C6410为总控制核心,通过GPRS进行远程数据的发送与处理,使用6410串口2与GPRS进行数据通信,可以将家庭内部数据信息发送给远离房间的主人手机,并可以通过主人手机发送的控制信息控制房间内家电设备,包含摄像头的摄像处理、空调温度设置等。GPRS通信模块安装在智能家居控制器中,主要功能为通过GPRS网络连接到Internet网络,并主动与监控中心建立通信链路,进行双向数据通信。GPRS通信模块设计采用了Freescale公司生产的内嵌TCP/IP协议的G24GPRSOEM[8].该模块尺寸小,功耗低,便于集成。GPRS通信终端收发模块主要由G24模块、天线、SIM 卡、相关的电平转换电路和RS 232串口组成。其供电电压为5V,可采用USB端口供电;通过RS 232串行口与智能家居控制器ARM 进行通信。
G24收发模块采用AT指令操作,通过RS 232串行口进行数据通信。
GPRS网络通信原理如下:首先通过SGSN节点使通信终端模块附在GPRS网络上;然后通过GGSN 节点由PPP(Point to Point Protocol)协议获得一个随机分配的IP地址,连接到Internet上;最后通信终端模块通过Internet,按照监控中心设定的端口号与监控中心建立通信链路。
2.3 系统软件
系统采用Linux操作系统,Linux内核是一种源码开放的操作系统,采用模块化的设计。在此只保留了必需的功能模块,删除了冗余的功能模块,并对内核重新编译,从而使系统运行所需的硬件资源显着减少。
Linux系统内核集成了大量的网络应用程序,支持全部的标准因特网协议和几乎所有的联网技术,因此将其应用于智能家居控制器的设计,具有代码量小、运行消耗系统资源少、可靠性高、开发周期短等优点,适应智能家庭数据采集控制器对于操作系统的要求。Qt作为一种跨平台的基于C++ 的GUI系统,能够提供给用户构造图形用户界面的强大功能。本文选用移植性强的Qt软件设计图形用户界面,所设计的GUI实用、简洁、实现了人机交互,可通过键盘或面板对程序进行输入、保存、修改和编译,信息和临时信息及时输出、显示,通过GUI达到了整合系统的目的。在Qt系统中,不仅有着构造完善的系统结构,而且为了满足用户对编写图形用户界面应用的种种需求,还创建了许多新的系统机制,其中Qt所特有的内部进程通信机制具有独特的反应速度,本文采用的Qt应用进程之间通信机制是Signal-Slot机制和FIFO 机制。Linux 系统不断侦查本地GUI消息,任何一个Qt消息被触发,系统都会立即执行相应程序,提高了整个系统的反应速度和稳定性,系统软件设计流程如图4所示。
图4 系统软件设计流程
3 结 语
整套系统的设计充分利用了ARM11 S3C6410的硬件功能和处理速度,成功移植了以S3C6410为硬件核心的Linux嵌入式系统,并完成了基于Linux Qt的控制程序的开发,解决了多项技术难点,其中包括构建基于ZigBee通信协议的无线网络、基于AT89C51的统一家电控制协议、基于S3C6410的GPRS远程通信、家电控制的直接解码与编码等,实验产品的控制结果效果令人满意,验证了该系统的先进性、稳定性和实用性,具有广泛的推广和应用价值。
系统 方案 智能家居 ZigBee 基于 Linux 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)