基于Zynq平台的动态智能家居系统的设计

基于Zynq平台的动态智能家居系统的设计,第1张

摘 要:由于传统智能家居无线传感器网络中传感器位置固定,需要布置的网络节点个数太多导致成本太高.鉴于以上原因,为了实现在减少Zigbee网络节点的前提下,又能实时捕捉用户所需信息的目标,本文提出了一种基于Zynq的 FPGA芯片的动态智能家居系统:该系统采用智能小车作为移动网关,Zigbee作网络节点,用Sim300 GSM模块来实现短信收发功能.远程用户能够实时获取家里的信息;并且可以用短信、以及Internet与智能家居网关进行通信,从而实现对智能家居系统的远程控制。

随着计算机技术、信息技术、控制技术的发展,以及人们物质生活水平的不断提高,传统的住宅显然已经不能满足人们的需求,智能家居便应运而生了。一个真实的智能家居传感器网络能够把所有物品通过射频识别等信息传感设备与3G互联网连接起来,实现智能化识别和管理。本文所研究的动态智能家居系统除了能够实现传统的家居系统传感器数据采集、分析及安防报警、手机短信远程控制家用电器开关的功能之外,通过加入小车这个移动智能网关,可以实时获取家里的信息。通过短信以及Internet与智能家居网关进行通信,实现对智能家居系统的远程控制。

1 基于Zynq平台的动态智能家居系统

1.1 系统研究背景
当前嵌入式设计发展迅猛,在包含大量数据处理模块(比如智能视频监控、先进的工业控制等应用)的场景中,对高性能、低功耗、灵活性高的处理器的需求很高,现有的微处理器缺乏足够的信号处理能力,而Zynq-7000是一款高性能和低功耗的处理器平台,具有ARM+FPGA的体系结构,能够提供灵活和可扩展的解决方案。

传统的智能家居系统主控CPU一般采取ARM+Zigbee的解决方案,此次系统中创新性的使用Zedboard FPGA(现场可编程逻辑门阵列)作为主控CPU,Zigbee模块采用CC2530 Soc解决方案,GPRS模块采用sim300模块,使用AT指令与用户手机进行交互,Internet交互通过BOA,CGI实现.FPGA实现PWM信号产生逻辑控制电机。

1.2 系统实现架构
如下图1所示,主控模块完成的功能主要包括与Zigbee协调器,GSM/GPRS,Internet的互联,摄像头视频采集与电机驱动小车控制.该模块包含两个进程,进程一负责取Zigbee网络数据,并且将处理后的数据分发给GSM/GPRS模块,以及Internet WebServer模块。

基于Zynq平台的动态智能家居系统的设计,图 1 系统硬件结构框架,第2张

 

图 1 系统硬件结构框架

进程一又包括三个独立的线程,分别与各个模块进行交互.流程如下: pthread_t TId[3]; //创建线程号pthread_attr_t attr[3]; //为线程分配空间 pthread_attr_init(&attr[0]); pthread_attr_setscope(&attr[0], PTHREAD_SCOPE_SYSTEM); ....... //线程空间初始化 pthread_create(&TId[0],&attr[0],thread_serial_ttyPS1,NULL);//创建线程1:用于ZedBoard获取ZigBee网络数据 pthread_create(&TId[1],&attr[1],thread_serial_uartlite_debug,NULL);//创建线程2:用于ZedBoard向GSM发送数据包 pthread_create(&TId[2],&attr[2],thread_serial_ttyPS1toWeb,NULL);//创建线程3:用于ZedBoard向Internet发送数据包 pthread_join(tid[0],NULL);....... //在主函数中加入线程 pthread_rwlock_destroy(&GPacketBuf_rwmutex); //释放线程

进程二是CGI模块,由WebServer调用,其功能包括解析数据包,并将ZigBee信息以网页的形式呈现给用户.流程如下:第一步,创建数据包格式,第二步是运用HTML语言将从Zigbee自组网搜集的温度传感器电池供电电压、火灾警告、防盗报警、风扇、电灯开关状况通过网页告知用户,用户可以通过在远端登陆Internet查看家居状况的完整信息.数据包的具体格式将会在后面的ZigBee模块处给出。

2 ZigBee自组网

2.1 ZigBee网络节点配置
在ZigBee网络中有三种设备:协调器:负责启动整个网络,它也是网络的第一个设备.路由器的功能主要是:允许其他设备加入网络,并协助自身同时作为终端设备的通讯.终端设备没有特定的维持网络结构的责任,它可以睡眠或者被唤醒。

2.2 串口通信数据包格式
ZedBoard主控与Zigebee协调器通信数据包格式如下:StartByte ->1B (代表数据包起始字节 0x47)PropertyId->1B (代表属性ID) NodeId->1B (代表Zigbee终端设备节点ID)PacketLength->2B (代表整个包的长度) PrivateData->XB (代表属性ID对应的负载内容 X = PacketLength -6 ) EndByte->1B (代表数据包结束字节0x48)

该数据包的统一格式不仅用于ZigBee协调器节点与ZedBoard的通信,也用于ZedBoard FPGA开发板向GSM模块之间串口通信发送的数据包,也适用于ZedBoard向Internet CGI模块传送的数据包,即这三个数据包相统一.然后接收模块再通过数据包协议对接收到的消息进行解析.GSM模块会通过解析判断是否有警告情况出现,进而向用户发短信以警告,Internet模块再将各个传感器收集到的数据以文本形式显示在网页上。

2.3 电机驱动与智能小车的实现
该模块由L298N双H桥直流电机驱动模块实现,驱动部分端子供电范围Vs为+5V到+30V,驱动部分峰值电流为2A,原理图见下图2所示,图中IN1,IN2,IN3,IN4为控制信号,当IN1为0,IN2为1时,电机a正转,IN1为1,IN2为0时,电机a反转。当IN1,IN2同时为0或同时为1时,电机停止转动,PWM-a,PWM-b为使能端,接FPGA PWM输出信号,L298N-a,L298N-b为电机A输出端.电机b原理同上。该直流电机驱动主要用于驱动智能小车,以实现小车在房间移动,并用摄像头来采集房间实时信息,并及时通过互联网返回给用户;另外,智能小车上也带有一个ZigBee模块,装有热释电人体红外传感器,以检测房间内是否有陌生人出入,可燃气体传感器以检测厨房是否出现可燃气体泄露,烟雾传感器以检测是否有火灾发生。

基于Zynq平台的动态智能家居系统的设计,图2 直流电机驱动原理图,第3张

 

图2 直流电机驱动原理图

2.4 GPRS/GSM模块
在GPRS模块中,我们采用Simcom提供的SIM300开发模块,主要是利用8051单片机来实现数据解析,以判断是否有警告消息出现,进而向用户发送警告短信,向用户发送短信是通过单片机串口向SIM300串口传送一连串的AT指令来实现的。

在发送AT指令的过程中,通过实验发现,发送AT指令的频率太高会导致SIM300反应不过来而导致 *** 作失败,发送频率太低则会使信息的实时性缺失,用户不能及时了解到警告信息并通过发送短息加以控制,GPRS作为一个媒介实现用户与智能家居系统的互通.同理,Internet 端也作为一个中间介质以实现用户对智能小车的控制。实现动态浏览的目标.具体通信的流程图如下图3所示:

基于Zynq平台的动态智能家居系统的设计,图3 系统各模块间信息传输原理图,第4张

图3 系统各模块间信息传输原理图

3 结论

(1)采用嵌入式高性能处理器ZedBoard 作为主控CPU,利用Linux软件平台实现复杂的应用逻辑:例如定义通信协议、对信息进行收集和分发、定义Uart IP 核,不仅提高了开发周期,易于后期扩展;而且系统整体功能也比较稳定。

(2)串口通信方面,实验发现:在高波特率下会出现丢包现象比较严重,低波特率下会导致信息反馈不及时,致使系统的实时性降低,最后通过测试统一将波特率设定为9600。

(3)通过引入智能小车,能够将移动小车采集的视频信息及时传送至互联网.下一步将分析串口数据速率对彩信传输有效性之间的关系,研究优化彩信发送策略,力求在实现互联网实时监控的同时,能够在短信发送报警信号时,GPRS模块能及时将图片以彩信形式反馈给用户。

参考文献
[1] 陆佳华,江舟,马岷.嵌入式系统软硬件协同设计实战指南-基 于Xilinx Zynq.北京[M]:机械工业出版社,2012:12-14, 272-287.
[2] 冯承金.基于Zigbee和ARM9的智能家居系统的研究与设计[硕 士学位论文].武汉理工大学.2010:5-8.
[3] 吴文忠,李万磊.基于ARM和ZigBee的智能家居系统[J].计算 机工程与设计,2011(06):1987-1990
[4] 袁源,王紫婷,刘洋帆.基于FPGA和ZigBee技术的智能家居 系统[J].信息通信,2011(06):42-43.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2607185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存