1智能家居系统小组成员:A刘涛B刘小兵C李贝贝D姚华立E窦文婧2008.04.12一:项目背景2当前,随着计算机技术的发展和智能无线化操作需求的增长,传统的手工管理、有线控制技术难以满足人们对操作的便捷性和高效性的要求,因此,当前的家居管理用户青睐于智能的监控技术和无线化设计的控制系统。本项目正是在这样的背景下,用于满足用户的需求而诞生的。定义:QT:是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的QtpiaCore、快速开发工具QtDesigner和国际化工具QtLinguist等部分。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNt/Win2k、Win2k、Windows95/98平台。Zigbee2006:Zigbee一词源自蜜蜂群在发现花粉位置时,通过跳ZigZag形舞蹈来告知同伴,达到交换信息的目的。可以说是一种小的动物通过简捷的方式实现“无线”的沟通。人们借此称呼一种专注于低功耗、低成本、低复杂度、低速率的近程无线网络通信技术,亦包含寓意。而Zigbee是以一个个独立的工作节点为依托,通过无线通信组成星状、片状或网状网络,因此,每个节点的功能并非都相同。为降低成本,系统中大部分的节点为子节点,从组网通信上,它只是其功能的一个子集,称为精简功能设备;而另外还有一些节点,负责与所控制的子节点通信、汇集数据和发布控制,或起到通信路由的作用,称之为全功能设备(也称为协调器),如图2所示。CPLD:是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。LCD:液晶显示器二:基本功能本系统是基于Armlinux下的QT程序开发平台、遵循IEEE802.15.4的zigbee2006标准协议下的IARFORMCS-51Evaluation开发环境和CPLD设计平台开发而成的“智能家居系统”,主要应用于家具(门、灯等)的控制和环境的监测(温度等),客户可以通过LCD屏显示的用户界面程序,借助触摸屏的操作实现各功能模块的操作并可通过软件界面查看相应的信息,用户可以设置工作模式,可以通过监测信息来实现对门磁的打开和关闭,同时在软件界面上显示相应的信息。三:任务简介目标该课题的目标是实现无线信息的解析处理,控制指令的发送和执行,环境信息的显示和处理,用户点击消息的相应,设计必要的驱动程序,和用户界面操作接口,设计必要的存储过程和事务,处理请求。3框架设计四:各自模块的具体实现4.1门禁控制模块4.1.1总体目标作为智能家居的一部分,其主要是以智能化、人性化为目的,建立一个自动控制的门禁控制系统,并在系统中进行相关信息的记录与存储。4.1.2设计原则1人性化“人”作为对象的主体,系统设计应紧紧围绕着人们的实际需求,以实用、简便、经济、安全的原则,满足管理这一特定使用功能。2实用性当今科技发展迅速,可应用于一卡通系统的技术和产品可谓层出不穷,工程中选用的系统和产品都应能使用户得到实实在在的受益,并满足近期使用和远期发展的需要。在多种实现途经中,选择最经济可行的途经。3安全可靠性系统的设计应具有较高的可靠性,在系统故障或事故造成中断后,能确保数据的准确性、完整性和一致性,并具备迅速恢复的功能。4易操作性系统是面向各种管理层次使用的系统,系统及其功能的配置以能给用户提供舒适、安全、方便、快捷为准则,其操作应简便易学,而绝不能因“智能”而给用户带来不便,甚至烦恼。4.1.3设计依据略4.1.4设计思想智能卡采用非接触式IC卡,其数据的传输是依据韦根协议,Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡片的许多特性;其协议并没有定义通讯的波特率、也没有定义数据长度韦根格式,主要定义是数据传输方式:Data0和Data1两根数据线分别传输0和1.现在应用最多的是26bit,34bit,36bit,44bit等等。对于前端门禁系统与控制器设备的通讯中断,以及门禁软件界面能及时报警提示。4.1.5门禁系统组成和设计说明41系统组成门禁系统由系统ARM-LINUX、门禁控制器(CPLD)、读卡器、按键、门禁系统管理软件、非接触式IC卡等组成。2系统设计说明门禁控制器通过DATA(0-15)16根数据线通过排线与ARM-LINUX的DATA(0-15)16根数据线直接相连,门禁控制器的ADDR(0-4)5根地址线与ARM-LINUX的ADDR直接相连直接相连,分别通过ARM-LINUX的控制信号来控制门禁控制器,从而完成对信息的读写;ARM-LINUX可以根据用户的操作向门禁控制器来传输信息,从而控制门的开、关。具体实现方式为:门禁系统通过韦根读卡器进行读卡操作,通过门禁控制器(CPLD)控制,将信息传送到系统管理系统ARM-LINUX,而用户可以通过操作QT界面相关控件来调用底层的程序对门禁控制器进行操作,从而完成对门的控制。1.整个门禁管理系统采用层次化和模块化的设计理念,分别有三个层次组成:门禁管理ARM-LINUX——门禁控制器——门禁读卡器。2.门禁控制器采用CPLD方式设计,完成对门的控制管理。3.门禁控制器电路设计有硬件监控处理系统,电路工作异常会触发中断控制复位,重新正常工作。门禁系统示意图4.1.6门禁管理系统功能1工作于linux操作系统,采用SQLite数据库。2采用QT技术制作操作界面,全部操作基于树型结构窗口。4.2、内核、驱动及其设备、策略管理模块4.2.1总体目标作为智能家居的一部分,设备管理系统模块在智能家居的实现中占有着重要的作用,它的最终目的就是实现对家居中的设备进行自如的控制。4.2.2内核移植和lcd驱动、触摸屏驱动和音频驱动的设计方案内核选择2.6.14.1,进行裁剪,选择出我们环境所需要的东西。根据我们所用的s3c2410所提供的datamanual手朋,对原有的lcd驱动、触摸屏和音频驱动进行修改,然后编译到内核。策略管理模块实现对策略表中的信息进行更新。韦根读卡器CPLD控制器ARM-LINUX系统QT控制界面5通过底层操作接口,设备底层操作接口模块实现对硬件的直接访问。4.2.3设计说明每个设备都应有相应的节点来对其进行设备信息的存储,而且每个结点都应当有相应的策略来对该设备进行操作。设备管理模块的作用就是要对现有的设备进行合理的管理。对设备的管理即为:设备根节点的初始化、添加、删除以及当添加设备时验证设备类型是否合法,同时完成设备策略表的更新。策略管理模块中的操作对象就是对应设备的策略表,例如温度策略表。在策略表中存储着此设备被设定的当前温度,抱紧上线,下线至,并且根据传来的参数修改温度设备的抱紧状态。设备底层操作接口模块就是实现对底层设备的操作。4.2.4设计思想设备管理系统对每个设备分配一个相应的设备节点,把对其信息进行相应的更新,设备节点的信息用结构体来进行存储,也就是说一个设备对应于一个结构体,那么就可以用链表来对设备进行管理。而在每个设备节点信息中,都含有一个指向该设备策略表的指针,通过该指针来完成对该设备策略表的访问。策略管理模块对于策略表中所要更新的每一项内容,给它指定一个对应的函数,用这个函数来调用设备层操作函数,实现对设设备定期更新和设置。对于设备策略表,用一个结构体对其各项进行存储。设备底层操作接口模块首先取得底层硬件当前的状态,看是否在正常工作。如果正常工作,按照协议发送控制命令,对其进行操作。否则对这个设备的失败次数进行记录,当其超过失败次数的最大值时,将其从设备节点链表中删除。4.2.5设计原则1.接口简单2.效率高3.稳定性4.2.6关系图三个模块的相互联系如下图所示:4.3QT模块4.3.1总体目标6如今,越来越多的终嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。人机交互模块采用基于Armlinux下的GUI-QT应用程序开发来完成,用户通过在LCD上显示的软件界面,辅助触摸屏来完成各项操作。4.3.2人机交互界面模块主要实现1.QT软件界面的设计:整个QT界面基于树形结构,主界面下有八个按钮,一个按钮对应一个子界面,分别为煤气子界面,火警子界面,门窗子界面,开关子界面,模式子界面,温度子界面,遥控器子界面。每个按纽与一个子界面相对应,在点击按纽时要切换到相对应的自界面.实现方法是在主界面中建立一个SLOTS类型的函数,在该函数中添加一个子界面类型的指针指向show方法,用点击主界面按纽作为信号激发这个槽;在子函数中也建立一个SLOTS类型的函数,在这个函数里实现hide方法,这个槽由子界面的按纽的点击信号来触发.2.UI通信模块设计:举例说明这部分功能:比如UI进程与窗磁信息进程通信,UI进程作为客户端需要建立一个socket与网关相连,窗磁进程需要一个socket作为服务器端与网关相连,服务器端监听是否有UI进程发送服务请求,若有就把此时状态信息返回给UI界面.该模块分为四个,分别为init_commui,commui_monitor,get_cmd_line,warn_ui.init_commui.init_commui的函数原型为voidinit_commui,主要创建与UI通信的线程的初始化working信号量;Commui_monitor的函数原型为void*commui_monitor,主要负责与UI通信的线程,在这部分中创建并初始化uinx域套接字,监听套接字连接。收到连接后使用get_cmd_line取得一行命令,将命令和套接字描述符一同传递给run_cmd,解析并运行命令做出相应的查询或者设置。Get_cmd_line从文件指针取得一行命令。Warn_ui负责向ui报警。3.处理部分设计该部分有两个子模块:run_cmd和error.run_cmd运行传来的命令,使用提供的连接返回命令执行结果。该模块中用到两个结构体来定义cmd_action_table,cmd_action_table中有do_get,do_Set,do_user,do_save四个函数;error模块根据传来的错误号,将出错信息按照标准信息返回格式,返回到描述符上。4.4无线网关模块4.4.1总体目标构件无线网络,实现设备间的无线通信。4.4.2采用zigbee协议在整个智能家居系统中,采集环境数据是用无线的方式来进行接收和发送的。对于无线上多种的网络协议,我们选择了zigbee协议,用它的主要原因是它具有一下优点Zigbee应用的优势:a.需要无线通信交换信息的低成本装置;b.数据的交换量较小、传输的速率要求不高;c.功耗要求极低,采用电池供电且需要维持较长时间;d.需要多个(尤其是大量)设备组成无线通信网络,主要进行监测和控制的场合。根据以上优势我们选用了zigbee通信协议。4.4.3无线网关的功能在环境探测中,我们要把采集的数据最后传给主机,因此,无线网关所做的就是利用zigbee与环境探测器建立通信协议,温度传感器采集环境温度,上报家庭网关,网关解析7温度数据,发送温度数据帧给LED,来实时的显示温度到LED显示屏。4.4.4功能实现模块功能是分三个模块实现的:1.无线组网,串口通信测试以Zigbee协议作为传输介质,实现无线数据的收发。无线接收模块通过串口实现与ARM板数据的收发。2.组建树形网络,调试无线数据收发在组建树形网络的时,设置一下它的层的底线是多少,以及设备数量。它会自己自动组建网络,从而实现组建树形网络。3.温度采集与Linux之间的交互通信温度采集模块集成了无线数据的发送模块和A/D转换,将数据传送给无线发送模块,解析打包,再将数据发送给无线接收模块,无线接收模块通过串口发送到ARM板上,发送温度显示命令到显示模块。4.4.5具体模块解析1.无线组网,串口通信测