1、目录摘要1一.绪论21.1智能家居及其发展趋势2 1.2嵌入式系统与智能家居21.3智能家居控制系统功能41.3.1家庭设备自动监控5 1.3.2家庭安全防范5二系统设计主要任务52.1硬件部分62.2软件部分6三系统设计方案73.1开发平台硬件资源73.2硬件总体设计框图83.2.1家电控制板93.2.2家电控制电路103.2.3传感器接口电路113.2.4串行端口电路11四软件设计134.1WindowsCE操作系统介绍134.2操作系统的定制134.2.1BSP的安装134.2.2添加平台特征和配置平台154.3应用程序编写环境1744串口通信协议1845打开串口与配置串口18五系统测试
2、225.1测试环境225.2测试步骤22六参考文献26七总结27致谢28摘要随着计算机技术,通信技术和嵌入式系统的发展,智能家居正逐步走进人们的生活。一个典型的现代智能家居系统提供安防、家电控制、远程抄表和信息服务等功能。本文设计并实现了其中的智能家电控制系统。讨论了基于Windows CE 5.0嵌入式操作系统,以使用PXA270为控制核心的XSBase270嵌入式平台为硬件基础,以Visual Studio 2005和Platform Builder为软件开发平台的智能家居系统的设计与实现。通过详细的系统设计过程,开发了相应的软件程序,包括嵌入式操作系统Windows CE 5.0的定制、
3、应用程序的界面设计、程序开发和单片机系统的底层编程,本设计融合了嵌入式系统、通讯、单片机、软件开发等学科的知识。系统测试结果表明,该系统设计基本满足要求,并有一定的功能扩展空间。关键词:智能家居;嵌入式系统;Windows CE一 绪论1.1智能家居及其发展趋势随着电子技术在现实生活中的广泛应用,人们越来越感受到电子产品为生活所带来的各种便利,特别是在20世纪80年代,智能家居的出现更为人们享受生活提供了一个广阔的平台。 智能家居是一个系统,也是一个过程。它是利用先进的网络通讯技术、电力自动化技术、计算机技术、无线电技术,将与居家生活有关的各种设备有机地结合在一起,通过网络化的综合管理,让居家
4、生活更轻松。智能家居不仅具有传统的居住功能,而且不再是被动的,是具有能动性智能化的工具,提供全方位的信息交换功能,优化我们的生活方式和居住环境你 ,帮助我们有效地安排时间,节约各种能源,提供优质、高效、舒适、安全的生活空间智能家居的原型最早起源于美国。时至今日,智能家居在美国已走过了将近30个年头。目前,美国有全球最大的智能化住宅群,其占地3359公顷,由约8000栋小别墅组成。此外,在欧美、日本、新加坡和韩国等地,智能家居也日渐兴起。 自动化的家居不再是一幢被动的建筑,相反,成了帮助主人尽量利用时间的工具,使家庭更为舒适、安全、高效和节能。网络化智能家居系统可为您提供遥控、家电(空调,热水器
5、等)控制、照明控制、室内外遥控、窗帘自控、防盗报警、电话远程控制、可编程定时控制及计算机控制等多种功能和手段,使生活更加舒适、便利和安全。 随着家庭智能化在世界范围内的日渐普及,智能家居在上个世纪末悄然走进了中国市场。 1.2嵌入式系统与智能家居智能家居,或称智能住宅,在英文中常用Smart Home。智能家居是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。智能家居可以定义为一个过程或者一个系统。利用先进的计算机技术、网络通讯技术、综合布线技术、将与家居生活有关的各种子系统,有机地结合在一起,通过统筹管理,让家居
6、生活更加舒适、安全、有效。智能家居不仅提供了全方位的信息交换功能,还优化了人们的生活方式和居住环境,帮助人们有效地安排时间、节约各种能源,实现了家电控制、照明控制、室内外遥控、窗帘自控、防盗报警、计算机控制、定时控制以及电话远程遥控等功能。 嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着资源调度及与硬件的交互作用。 我们可以通过各项比较发现,嵌入式比较有发展潜力。嵌入式的智能家居使系统的处理能力大大增强,可以带来
7、更加逼真的图像以及更加真实的语音等。根据系统定制的实时操作系统不仅可以最大限度的利用硬件资源而且还避免了过于庞大的系统造成的系统冗余。一般只有一颗主处理芯片,系统架构更加清晰简捷。软件采用分层设计,方便维护和升级,大大提高了代码利用率,缩短开发周期。因为嵌入式技术是伴随着Internet而生的,所以它具有更加卓越的网络性能,可以增加更多的网络应用,很显然嵌入式类智能家居产品在应用方面具有相当的优势,应该是未来中国家庭智能化技术主流发展方向。随着Internet向普通家庭生活不断扩展,消费电子、计算机、通讯一体化趋势日趋明显,现代智能家居由于其安全、方便、高效、快捷、智能化等特点在21世纪将成为
8、现代社会和家庭的新时尚。当家庭智能网关将家庭中各种各样的家电通过家庭总线技术连接在一起时,就构成了功能强大、高度智能化的现代智能家居系统。随着嵌入式技术更加广泛的应用,随着成本的逐步降低,中国的智能家居最终将走向嵌入式。图1-1 智能家居控制系统示意图 1.3智能家居控制系统功能智能家庭控制系统的主要功能包括家庭设备自动控制、家庭安全防范二个方面。1.3.1家庭设备自动监控家庭设备自动监控包括电器设备的集中、遥控、远距离异地(通过电话或Internet)的监视、控制及数据采集。(1)家用电器的监视和控制,按照预先所设定程序的要求对热水器、微波炉、视像音响等家用电器进行监视和控制。(2) 热能表
9、、燃气表、水表、电度表的数据采集、计量和传送根据小区物业管理的要求所设置数据采集程序,通过传感器对热能表、燃气表、水表、电度表的用量进行自动数据采集、计量,并将采集结果远程传送给小区物业管理系统。(3)空调机的监视、调节和控制,按照预先所设定的程序,根据时间、温度、湿度等参数对空调机进行监视、调节和控制。(4)照明设备的监视、调节和控制按照预先设定的时间程序,分别对各个房间照明设备的开、关进行控制,并可自动调节各个房间的照度。(5)窗帘的控制,按照预先设定的时间程序,对窗帘的开启/关闭进行控制。1.3.2家庭安全防范家庭安全防范主要包括多火灾报警、可燃气体泄漏报警、防盗报警、紧急求救、多防区的
10、设置、访客对讲等。家庭控制器内按等级预先设置若干个报警电话号码(如家人单位电话号码、手机电话号码、寻呼机电话号码和小区物业管理安全保卫部门电话号码等),在有报警发生时,按等级的次序依次不停地拨通上述电话进行报警(可报出家中是哪个系统报警了)。同时,各种报警信号通过控制网络传送至小区物业管理中心,并可与其它功能模块实现可编程的联动(如可燃气体泄漏报警后,联动关闭燃气管道上的电磁阀)。二 系统设计主要任务本设计利用XSBase270嵌入式平台,C8051F系列单片机、MAX232及各类家居传感器设计制作一款智能家居控制系统。系统设计包括:系统硬件的设计与调试和控制软件的编写与调试。2.1硬件部分智
11、能家居控制系统其硬件部分主要由以下几大部分构成,即控制单元、传感器数据采集系统、接口和电源部分。控制单元组成控制部分功能;传感器数据采集系统,完成报警等信号的处理和发送;电源部分则为各个部分提供工作电源。传感器采用温度传感器、烟雾传感器、压力传感器、光照传感器,采用的型号分别为DS18B20、MQ-2、BF350-3AA型电阻应变片、On9658。本系统利用各种传感器来探测、感受外界的信号,并通过已设定的程序来完成预定的动作,并最终实现智能化。2.2软件部分软件设计部分主要由以下几大部分构成:即数据采集与数据分析部分及分析控制部分。数据采集部分是对传感器的信号进行采集,分析控制部分则是根据采集
12、的信息进行分时操作有利于提高系统效率。其他软件部分具体还包括Windows CE的定制,串口通信协议的设计,家电控制板程序的编写。三 系统设计方案3.1开发平台硬件资源XSBase270配置了32M FLASH ROM,64M SDRAM,并配备了触摸屏、以太网、USB、串口、CF/MMC、PCMCIA等接口。满足了智能家居系统控制中心的硬件要求。在较小的体积中整合了决大多数嵌入式系统常用功能。XSBase270开发平台内置了GPS模块,可以直接在XSBase270平台上验证和开发导航应用或从事GPS方面的研究。XSBase270平台接口如图4-1所示。图4-1 XSBase270平台接口示意
13、图3.2硬件总体设计框图根据上文的功能需要,设计出由ARM10为控制核心,单片机控制的家电控制模块和传感器报警模块,并且包含GSM通信模块的智能家居系统,硬件结构框图如图4-3所示。 3.2.1家电控制板家电控制板采用C8051F系列单片机为控制核心。电路图如图4-4所示,利用4种传感器控制四种终端设备(分别用4盏LED灯模拟)。其中四盏LED分别连接单片机的P1.0、P1.1、P1.2、P1.3;四个传感器连接光电耦合器分别连接P2.0、P2.1、P2.2、P2.3。图4-4 家电控制板3.2.2家电控制电路家用电器控制的接口电路如图4-5所示,K1K4 为继电器,分别控制四路家电的闭合和断
14、开,Q1Q4 为继电器线圈电流驱动,电路由单片机的P1口进行控制,DD1DD4 发光二极管用于显示某路控制电路的工作情况,主要为了调试电路而设置。图4-5 家电控制电路3.2.3传感器接口电路烟雾、光照、压力、温度等这些传感器的报警信号通过光电耦合接入单片机的P2 口,如图4-6所示,在传感器没有报警信号时,光电耦合芯片处于截止状态,与之相接的单片机端口为低电平;当传感器有报警,传感器输出高电平,此时光电耦合芯片导通,与之相接的单片机端口为高电平,由单片机对报警信号进行采集并做出相应处理。图4-6 传感器接口电路图3.2.4串行端口电路家电控制板采用串口与XSBase270平台采用RS-485
15、串行通信,本设计利用RS-232转RS-485模块来实现。电路的连接如图4-7所示:图4-7 RS-232转RS-485电路图RS232-485转换器主要包括了电源、232电平转换、485电路三部分。本电路的232电平转换电路采用了NIH232或者也可以直接使用MAX232集成电路,485电路采用了MAX485集成电路。为了使用方便,电源部分设计成无源方式,整个电路的供电直接由PC机的RS232接口中的DTR(4脚)和RTS(7脚)提供。PC串口每根线可以提供大约9mA的电流,因此两根线提供的电流足够供给这个电路使用了。经实验,本电路只使用其中一条线也能够正常工作。使用本电路需注意PC程序必须
16、使串口的DTR和RTS输出高电平,经过D3稳压后得到VCC,经过实际测试,VCC电压大约在4.7V左右。因此,电路中要说D3起的作用是稳压还不如说是限压功能。MAX485是通过两个引脚RE(2脚)和DE(3脚)来控制数据的输入和输出。当RE为低电平时,MAX485数据输入有效;当DE为高电平时,MAX485数据输出有效。在半双工使用中,通常可以将这两个脚直接相连,然后由PC或者单片机输出的高低电平就可以让MAX485在接收和发送状态之间转换了。由于本电路DTR和RTS都用于了电路供电,因此使用TX线和HIN232的另外一个通道及Q1来控制MAX485的状态切换。平时NIH232的9脚输出高电平
17、,经Q1倒相后,使MAX485的RE和DE为低电平而处于数据接收状态。当PC机发送数据时,NIH232的9脚输出低电平,经Q1倒相后,使MAX485的RE和DE为高电平而处于数据发送状态。四 软件设计4.1 Windows CE操作系统介绍Windows CE是微软公司在嵌入式操作系统市场上的一个重要产品。它的第一版于1996年发布,但是最初并不是很成功,2001年1月,微软发布了Windows CE,它的平台制定工具Platform Builder和应用软件开发工具Visual Studio 2005都是非常实用的开发工具。Windows CE是一个32位、多线程、多任务的操作系统,而且是模
18、块化的操作系统,这意味着可选择、组合和配置Windows CE的模块和组件来创建用户版的操作系统。4.2 操作系统的定制Windows CE 5.0嵌入式操作系统的定制依靠Platform Builder5.0完成。Platform Builder是微软公司设计的用于嵌入式操作平台定制与驱动程序的开发的工具。推出它的目的之一就是让用户可以更好的将嵌入式操作系统移植到特定的目标平台上。4.2.1 BSP的安装(1)在配套光盘中找到XSBASE270-S.msi安装文件双击XSBASE270-S.msi文件进行安装(如图5-1所示)。图 5-1(2)开始安装(如图5-2所示)。图 5-2当安装完成
19、,将在WINCE500PLATFORM目录下面生成xsbase270_s文件夹,并且BSP安装在Platform Builder中的Catalog栏目中的Third Party中(如图5-3所示)。图 5-34.2.2添加平台特征和配置平台(1)从File-Recent Workspace中打开实验1的Training工程。(2)从Catalog-Core OS-Windows CE Devices-Core OS Services-USB Host Support中分别添加支持USB的键盘和鼠标特性组件:USB Human Input Device(HID) Class Driver 和支持
20、U盘的特性组件:USB Storage Class Driver.从Catalog-Core OS-Windows CE Devices-File Systems and Data Store-Storage Manager中添加FAT文件系统特性组件:FAT File System. (3) 从Catalog-Device Drivers-USB Function-USB Function Clients中添加USB Slave的特性组件:Serial.(4)从Catalog-Core OS-Windows CE Devices-Graphics and Multimedia Technol
21、ogies-Media-Windows Media Player中添加多媒体播放器:Windows Media Player.(5) 从Catalog-Third Party-BSPs-Emdoor Systems XSBase2700G:ARVV4I-Device Drivers中的把所有特性组件都添加到工程中。(6)从Platform-Settings中打开编译选项。(7)在Locales中选中“中文(中国)”(如图5-4所示)。(8)再点击“OK”。图 5-4(9) 在Default language中选择“中文(中国)”。 (10)在Build Option列表中,只选择Enable
22、Eboot Space in Memory(IMGEBOOT=1)和Write Run-time Image to Flash Memory(IMGFLASH=1)两项。再点击“OK”。如图5-5所示。图 5-5(11)从Build OS选择“Sysgen”开始编译工程。4.3 应用程序编写环境开发环境:Microsoft Visual Studio 2005开发语言:Microsoft Visual C+ 2005软件开发包:XSBase270 SDK智能家居系统的应用程序采用Visual Studio 2005进行开发。Visual Studio是微软公司开发的Windows平台上的应用程
23、序开发环境。Visual Studio可以创建Windows 下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。Visual Studio 2005面向.net框架(2.0版本),同时可以开发跨平台的应用程序。4.4串口通信协议串口通信协议采用AABB类实现,通过对此类的成员函数的调用,完成对串口的初始化、读写操作等。 异步半双工,1 位起始位8 位数据位1 位停止位 波特率:19200 发送数据格式: 命令头 长度字 命令字 数据域 校验字 命令头:0xAA 0xBB,若后续数据中包含0xAA 则随后补充一字节0x00 以区分 命令头但长度
24、字不增加 长度字:指明从长度字到数据域最后一字节的字节数 命令字:本条命令的含义 数据域:此项可以为空 校验字:从长度字到数据域最后一字节的逐字节异或值 返回数据格式: 成功:命令头 长度字 接收到的命令字 数据域 校验字 失败:命令头 长度字 接收到的命令字取反 校验字4.5打开串口与配置串口在Windows CE中,驱动程序分为本地设备驱动和流设备驱动两种。本地设备如键盘、触摸屏等,一般在设备生产后是不会再更换的,相应的驱动这些设备的驱动程序也是必需的。而流接口设备驱动程序可以由第三方提供,支持另外添加到系统中的设备。而串口就属于流接口设备之一。流设备驱动在系统中是以三位字符串后跟一位数字
25、表示的,对于串口而言,这三位字符是“COM”(不包括引号)。当引用一个流接口驱动程序时,除了三位字符后跟一位数字以外,还要紧跟一个冒号“:”(英文半角冒号),冒号是必需的,是为了区别桌面Windows的设备驱动程序的命名规则。该函数的流程图如图5-6所示:图5-6 OpenPort函数流程图(1)串口的打开所有的流驱动程序都将采用CreateFile函数打开串口设备。在Windows CE下,系统不支持设备的重叠I/O,所以不能在参数dwFlagsAndAttributes中传递FILE_FLAG_OVERLAPPED标志,返回的句柄要么是已打开的串口端口的句柄,或者是INVAILID_HAN
26、DLE_VALUE。CreateFile与大多数Windows函数不一样,打开失败时,不返回0。CreateFile函数的原型如下:HANDLE CreateFile(LPCTSTR lpFileName, / 对象路径名DWORD dwDesiredAccess, /控制模式DWORD dwShareMode, / 共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes, /安全属性(也即销毁方式)DWORD dwCreationDisposition, / 创建的方式DWORD dwFlagsAndAttributes, / 对象属性HANDLE hT
27、emplateFile / 一个文件模板句柄);(2)串口的设置打开串口后,还必须对端口配置好正确的波特率、字符长度、停止位等等。在OpenPort函数中,使用两个函数GetCommState和SetCommState来配置串口。函数原型如下:BOOL SetCommState(HANDLE hRle, LPDCB lpDCB);BOOL GetCommState(HANDLE hFile, LPDCB lpDCB);(3)串口超时设置设置好串口驱动操作的配置后,一个必要的步骤是,设置端口的超时值。所谓超时,是指Windows CE.net在读串口和写串口的自动返回前等待读或写操作的时间长度。
28、在程序中,用以下两个函数控制串行超时。BOOL GetCommTimeouts(HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts);BOOL SetCommTimeouts(HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts);这两个函数都包含了对应的串行设备的句柄和COMMTIMEOUTS结构的指针,COMMTIMEOUTS结构定义为:typedef struct _COMMTIMEOUTSDWORD ReadIntervalTimeout;DWORD ReadTotalTimeoutMultiplier;DWORD
29、ReadTotalTimeoutConstant;DWROD WriteTotalTimeoutMultiplier;DWORD WriteTotalTimeoutConstant;COMMTIMEOUTS;五 系统测试5.1测试环境PC操作系统:Microsoft Windows XP Profesional SP2软件开发及测试平台: Visual Studio 2005 + XSBase270+ ActiveSync4.5 嵌入式硬件平台:XSBase270平台嵌入式操作系统平台:Microsoft Windows CE 5.05.2测试步骤(1)系统与PC的链接测试打开电源按钮,启动W
30、indows CE。打开Windows CE的控制面板,如图6-1所示。新建基于“COM2”端口的网络连接“我的连接”。该连接采用115200的波特率,数据位8位,停止位1位,无数据流控制,如图6-2所示。并且在控制面板中的PC连接设置为“我的连接”,如图6-3所示。图6-1 Windows CE 控制面板图6-2 “我的连接”的属性图6-3 修改默认的PC连接将USB线插入位于XSBase270的扩展板上的USB_SLAVE口,另一端连接到PC机上的USB口。稍后,PC上的ActiveSync文件同步软件即可自动识别到XSBase270移动设备。在PC端,建立好PC跟XSBase270移动设
31、备的合作关系。ActiveSync软件上将显示已同步字样。如图6-4所示。图6-4建立文件同步合作关系后的程序界面(2)验证家电控制板的可用性使用标准串口线连接家电控制板与PC机。使用“串口调试助手”软件进行对串口的读写操作。往家电控制板输入形如“0001”的字符串,观察是否能启动对应的LED。同样的,按对应的“传感器”按钮,观察PC机是否能收到正确的字符串。经过测试,家电控制板能够正常运行。六参考文献(1) 资料光盘.XSBase270说明书(2) 傅曦,齐宇。嵌入式系统Windows CE开发技巧与实践.北京化学工业出版社,2004年(3) 百度百科.(4) 鲍小南.单片微型计算机原理及应
32、用.浙江大学出版社.2007年(5) 张冬全,坛南林,王雪海,焦凤川.Windows CE实用开发技术.北京.电子工业出版社.2006年(6) 深圳市忆道电子技术有限公司.2008年全国暑期嵌入式师资培训班WindowssCe实验文档七 总结经过毕业设计,我了解到了嵌入式开发的基本流程,通过编写众多的程序,强化了自己的编程能力,加深了对计算机语言理论的理解。因为时间不足和精力不够的原因,智能家居系统的功能设计还不够完善,在未来时间充裕、技术更成熟的情况下,功能设计可以更加完善,如:(1)家电控制板与ARM的协同合作。(2)系统控制功能方面还需扩展,如GSM模块,GPRS网络通信等。(3)系统的
33、运行信息实时保存。如传感器报警的记录,用户的登陆和控制的记录等。致谢感谢,老师们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。感谢刘建农老师,这篇论文的每个实验细节和每个数据,都离不开你的细心指导。而你开朗的个性和宽容的态度,帮助我能够很快的融入我们这个新的实验室。感谢我的室友们,从遥远的家来到这个陌生的城市里,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。四年了,仿佛就在昨天。四年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。只是今后大家就难得再聚在一起吃顿饭了吧,没关系,各奔前程,大家珍重。愿大家开开心心,我们在一起的日子,我会记一辈子的。 感谢我的爸爸妈妈,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的老师、学长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!