智能家居控制系统的研究与设计_第1页
智能家居控制系统的研究与设计_第2页
智能家居控制系统的研究与设计_第3页
智能家居控制系统的研究与设计_第4页
智能家居控制系统的研究与设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学位论文原创性声明和使用授权说明原创性声明本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出奉献的个人和集体,均已在文中以明确方式标明。本声明的法律结果由本人承当。学位论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保存、使用学位论文的规定,即:学校有权保存并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湖北理工学院可以将本学位论文的全部或局部内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。学位论文作者签名:指导教师签名:日期:年月日日期:年月日摘要智能家居系统是一个综合系统,计算机技术、网络通信技术、自控技术、传感技术构成了这个系统的根底,又需要环境、能源等其他领域的技术支持。家居系统要表达智能,关键是要到达自控,更要到达节约资源、环境友好和满足不同用户的使用需求。本文对通过嵌入式系统来实现智能家居进行了讨论。本文采用的是ARM9嵌入式处理器S3C2410。在此根底上进行核心控制电路的设计,分别设计完成了主控芯片电路、存储电路以及电源电路。同时LCD接口、USB接口以及无线通信模块等电路作为必不可少的局部,本文也给出了设计方案。另外还专门开发了针对煤气泄漏的报警模块。由于本设计需要用到交叉开发环境,所以安装了微软的WindowsCE.net4.2、PlatformBuilder4.2等软件并自行开发了特定的WindowsCE系统内核映像,把这些映像文件下载到目标板上,并使用ActiveSync软件进行了开发板与PC的通信。在设计煤气报警模块时使用EmbeddedVisualC++4.0开发工具。关键词:S3C2410;智能家居系统;无线传输;WindowsCE.netAbstractSmarthomesystemisacomprehensiveandsystematicengineeringincludingtechnologiesofcomputer,network,automation,sensorsetc,andinvolvesecology,environment,energysourcesandevenmorefields.Inadditiontomeetthedemandofautomation,itmustbeenergyconservation,environmentalprotection,humanizationandindividuation.Itutilizedthe32-bitembeddedARMprocessorS3C2410asthecontrollingcoreofthesmarthomesysteminthisdissertation.Itdesignedcorecircuitofcontrollerindetail,includingS3C2410controllerchipcircuit,memorysystemcircuitandpowercircuit.Tomeetthedemandofglobalprojectdesign,itdesignedLCDinterfacecircuit,keyboardcircuit,wirelesstransmissionmodulecircuit.ItinstalledWindowsCE.net4.2onthePC,usedthetoolofPlatformBuilder4.2tocustomizetheBSPoftargetplatformandimageofWindowsCE,downloadedtheimageofkerneltotargetcomputerofARM9,utilizedthesoftwareofActivesSynctomakethetargetcomputercommunicatewithPCbytheUSBcable.ItusedthedevelopmenttoolofembeddedVisualC++4.0tocompletethesoftwaredesignofthemoduleofleakingandwarningofcoalgas.Keywords:S3C2410;SmartHomeSystem;Wirelesstransmission;WindowsCE.net目录TOC\o"1-2"\h\u69951绪论1250591.1研究背景 1231351.2国内外智能家居研究现状及开展方向1174911.3研究的目的与意义393271.4研究要求486122智能家居控制系统的总体设计方案5110302.1家居控制系统功能5160002.2系统总体架构设计572182.3硬件选型714702.4嵌入式系统的比拟886802.5基于WindowsCE.net的应用程序开发过程12248123系统硬件设计13203573.1主机系统的硬件设计1336453.2分机系统的硬件设计19190053.3主分机通信模块设计2499064系统软件开发27136094.1搭建特定操作系统27242444.2应用软件开发33250735总结与体会397305参考文献401绪论1.1研究背景在信息高速变革的二十一世纪,人们对于居住环境的要求越来越高,智能住宅将越来越多的占据整个商品房市场份额。计算机技术、家电设备、平安监控等领域的互相融合,使现代智能家居生活成为可能。其在中国的市场前景也是极其光明的。“智能家居”〔SmartHome〕,又称智能住宅。通过计算机网络和嵌入式硬件,将家庭中的各种家电连接到一起。智能家居系统将给住户提供更加方便的家电管理效劳。例如可以使多个设备形成联动;同时,系统内部的家电可以交换信息,无需人的控制的即可按照不同情况分别运行,在最大程度上带给用户方便、舒适、平安的使用体验。除了具有传统的居住功能,智能家居还提供更为舒适平安的生活体验,改变了人们的生活方式,使得时间的利用更为有效,同时大幅降低了资源本钱[1]。智能家居是一个最近热门的概念,它少不了建筑艺术、生活理念与信息技术、电子技术的支撑。从长远看,智能家居是未来住宅的必然趋势,同时还象征着一个国家的科技水平。但是,目前的这类产品根本上使用的是有线通信技术,系统复杂、维护困难、本钱较高,不适应未来的开展趋势。在我国,智能家居这一概念才刚开始兴起,很多标准标准亟待制定。在对智能家居系统的研究中,我国应该选择一条符合国情同时又具有自主知识产权的道路。基于这种要求,我选定了智能家居这一研究课题。值得说明的是,在家居系统中,智能化、信息化和自动化是不同的概念。只要拥有能够上网的端口,就可以说到达了最低程度的家庭信息化,但远未到达智能化的要求;微波炉可以定时的烹制食物,空调可以预先翻开保持某一温度,这就是所谓的家居自动化。相比于智能化,信息化和自动化是不可缺少的根底。智能化要求具有记录、判别、控制、反应等信息处理功能。家居的智能化应富有人性化。智能家居就是以传统的住宅为根底,集成了信息化家电、网络通讯模块、自动控制系统等模块,拥有效劳与管理功能的便捷、平安的居住环境。1.2国内外智能家居研究现状及开展方向国外智能家居的开展现状国外对于智能家居系统的研究起步很早。1984年在美国诞生了世界上第一栋智能建筑,欧美对智能家居系统的研究到达了比拟高的水平。大量的研究和不断的开展使得它在欧美得到了普及。再比方以新加坡为例,家庭智能化系统使得住户可以轻松享受水电气表的抄送、平安监控管理、可视通话等多达11项功能。对于住宅智能化和智能住宅的关系,前者是后者的根底,而后者是前者的关键。至今国际上对于智能家居系统尚没有公认的标准。但是可以参考美国电子工业协会与1998年编制的《家庭自动化系统与通信标准》。“家庭智能化系统”已经在新加坡普及,在美国使用智能家居系统的家庭到达了近5万户。三星2003年也开始推广其自己研发的同类产品,这个由机顶盒和网络构成的家居控制系统,包括了自动控制、家电管理、平安监控以及娱乐通信这四大功能。国内智能家居的研究现状我国在智能家居系统方面的研究起步较晚,本文认为中国的智能的智能家居系统应该分为豪华型和经济型。经济型面向中低收入住户,而豪华型那么是为高收入住户准备的高端产品。由于住宅是具有一次投资巨大、使用寿命较长等特点,因此,建造智能家居时应该考虑到具有可升级性。按照技术开展的特点,可以将住宅智能化定义为:依靠4C技术进行有效的网络传输,并同时集成了信息管理、平安监控、住宅智能化等特点,以智能化手段管理小区,提供快捷、平安的效劳,并带给用户舒适便利的居住体验的家居环境。智能家居系统可以分为三个功能模块:首先是家庭布线模块;之后是具有较强兼容性的家居中央管理模块:最后是宽带互联网和家庭控制网络融合之后的控制功能模块。1997年我国制定了《小康住宅电气设计〔标准〕导那么》。《导那么》对于智能住宅的电气设计提出了如下标准:平安舒适的居住体验,快捷的通讯,完整的信息管理功能。同时也对智能住宅在平安监控和自控通信这两个方面提出了以下标准,分为“最终目标”、“预计目标”、“当前目标”[2]。对于智能家居的开展,要根据国情分成几个阶段并分别到达每一个阶段的目标。同时还要考虑到现在家庭中还有大量非自动化家电的情况,扩展这些家电的功能。但智能家居是一个复杂的系统工程,建立起完整的产业链还需要较长的时间。智能家居开展的主要方向在技术层面上,智能家居是以计算机技术、自控技术、传感技术等多种技术为根底,并与生态和能源等多个领域相关的系统工程,通俗的说,智能家居系统之所以能实现各种功能,完全是依靠自控技术和网络通信技术。所以,智能家居系统就是一个拥有自控功能的网络模块。便随着相关技术的开展,智能家居也在不断开展。未来智能家居的开展趋势可以概括为以下几点[3]:信息化。信息技术的革命极大地改变了人们的生活模式。智能建筑要求具有智能化和人性化的特征。以前人们可能是因为好奇才使用各种智能产品,但是现在人们却因为生活和工作的需要而离不开它们。智能家居不仅是产品,更多的那么是表达了一种全新的设计理念和管理效劳。网络化。信息时代不具有网络化特点的智能家居是难以想象的,通过网络,智能家居系统可以简化物业管理、安防、商务等管理流程。同时,是人们的生活更加便捷。标准化。各种智能产品的标准化是一个不可阻挡的趋势,智能家居的标准化也不例外,不同厂家的产品可以相互兼容,相互操作。使得智能家居系统的具体产品的配置可以实现按照住户的需求特别定制。模块化。接口具有统一的标准,各个功能模块之间是独立的,使得智能家居系统在可维护性、可扩展性上有空前的提高,系统的集成大大简化。绿色环保。智能建筑毫无疑问地要实现环境友好,资源节约。在给住户平安舒适的居住体验不能以破坏环境、浪费资源为根底。整合。在此引用比尔盖茨的观点,他认为未来的智能住宅都应该是一个经过整合的网络,房屋内的灯光、安保、音频、视频等一系列不同的功能模块经过整合,功能更加强大,管理更加方便。无论如何开展,智能家居的要求总是让住户更舒适,更平安,更加绿色。日益开展的住宅智能化技术也是人们对其提出了更高的居住要求,智能家居系统在功能丰富的同时,其配置也在日益复杂。智能家居包括网络接入系统、平安系统、可视对讲系统、远程抄表系统、医疗系统、家电自动管理系统、网络效劳系统等,越来越多全新的概念正在成为智能家居中的重要组成局部[4]。1.3研究的目的与意义以上提出的智能家居系统的特点都是其未来应该具备的,但是根据目前的市场调查发现,总体上智能家居系统还处于市场开展初期。缺乏统一的产品标准和技术标准。经济和技术的开展使得人们对居住环境有了更高的要求,这也是智能家居系统不断开展的一个重要的因素。计算机技术、通讯技术、网络技术的飞速开展,各种智能产品在人们的生活中扮演着越来越重要的角色,平安与智能成为人们对居住环境的两大根本要求,基于这些要求智能家居系统必须将平安、智能化和网络通许等设施整合在一起。当今的商品房注重高科技产品的应用。伴随着日益开展的计算机技术和IT产业,智能住宅将在商品房市场中占有越来越大的份额[5]。北京、上海、广州等地已经有了一些智能住宅小区,并且智能住宅小区也开始在全国其他城市推广。对于智能住宅小区,国家已经将其列为重点支持的工程,它将带给人们全新的居住体验,对于房地产、住宅装修、小区管理、家用电器等相关产业的开展也具有巨大的推动作用。智能家居将开始走进并改变人们的生活。从国际上来看,目前美国在智能家居的研究方面一直走在世界前列,国内的同类产品大多抄袭国外产品,没有自主的核心技术。直接照搬国外的产品对于我国国情来说显然是不适宜的,我们应该自己的同类产品。智能家居系统具有广阔的应用前景,特别是基于嵌入式的智能家居系统。1.4研究要求本文从理论和实际设计这两个方面进行讨论,对于控制系统,本文分为主机和从机。在收集到控制对象〔分机〕的各种状态信息之后,现场控制级设备〔主机〕对这些数据进行处理,在超出允许的范围之后发出警告。通过这一系统,各种状态信息比方温度、湿度、有害气体浓度等可以清楚地显示出来,对于各种状态信息的变化及时做出相应的调整控制。对于如何实现这一功能,本文做了如下讨论:1.对智能家居系统的硬件进行设计,完成外围电路的设计。2.对与智能家居相关的嵌入式和基于无线传输的通讯技术进行深入研究。3.利用PlatformBuilder完成BSP安装、WindowsCE.net操作系统定制及SDK的创立。4.利用EVC开发工具最终实现了煤气泄漏报警模块的人机交互界面。2智能家居控制系统的总体设计方案2.1家居控制系统功能智能家居系统使用了电传感技术、计算机通讯技术,在对房屋内的各种状态监控的同时,也可以根据要求做出相应的调整。整个智能家居系统分为内部信息交换与报警系统、传感和显示系统、执行模块等局部。对于一个智能家居系统,其应该具有的特点[6]:(1)火情检测报警,有害气体检测报警。(2)自行控制水电气的通断。(3)自行调节室内空气温度和湿度。(4)自行控制家用电气的开关。(5)平安防范与报警。(6)远程住户控制。2.2系统总体架构设计本文采用的是一台主机多台分机的设计方案,图2-1为控制系统结构图。对于利用GSM和GPRS等通讯模块为本系统进行扩展升级不在本文讨论的范围之内。由于采用的是S3C2410芯片,主机的MCU支持日后扩展,同时满足了设计要求。而采用MSP430F149单片机的分机,满足家居控制功能的同时还具有超低的功耗。而各种传感器的应用使得系统可以实时采集状态信息,超出允许范围是进行报警。住户通过触摸屏下达指令,然后依靠连在各个家电上的继电器来完成动作[7]。分机MCU1分机MCU1传感器串口液晶〔可选〕控制单元〔如煤气阀门通断〕分机MCU2传感器串口液晶〔可选〕控制单元〔如家用电气启停〕nRF905传感器触摸屏GSMGPRS控制机构主机MCU图2-1家居控制系统结构图该系统中,主机的作用就是采集各种状态信息并进行分析处理,然后控制各个功能模块做出相应的调整。家庭里的各种状态信息会实时监测并显示出来让住户查看,而住户也可以通过触摸屏来下达调整指令。而采用无线通讯方式,无需布线,也可以降低本钱。提起无线通讯技术,主要有以下几种技术标准[8]:(1)蓝牙〔Bluetooth〕:起源于1998年,是一种便携式设备无线通信技术。能在多种便携式移动设备之间进行无线通信。借助于次技术,可以大幅简化设备间的通信,也可以简化设备与互联网的通信,使数据传输高效简洁。蓝牙技术的工作频段为全球通用的2.4GHzISM频段。其传输速率可以到达1Mbps。蓝牙技术创立的目的是使不同厂家生产的便携式硬件能够在在近距离内进行无线通讯,交换信息,互相操作。(2)射频技术:射频〔RadioFrequency〕技术是利用电磁波进行信息交换。它采用某一特定的频率来传送信息。既可以使用特许频带,同时ISM频带也可以作为特殊条件下的频带。RF信号的穿透力较强,无论是开放还是封闭的环境中均可使用。射频芯片的频段越高,设备通讯的速率就越快,目前最高的通讯速率为12Mbps。(3)IrDA:IrDA是红外数据组织〔InfraredDataAssociation〕的简称,目前广泛采用的IrDA红外连接技术就是由该组织提出的。随着技术的开展,其传输速率不断提高,现在到达16Mbps,接收角度不断扩大,现在到达120度。该红外连接技术开展至今已经比拟成熟,IrDA技术在电子设备中的应用非常广泛,但是这一技术有着比拟明显的缺陷。例如传输设备之间要保持通畅,否那么无法传输,同时其核心部件LED的使用寿命较短。由于上述缺陷,使得这一技术无法成为未来的无线通信技术标准。综合以上3种技术,本文选取射频技术,其具有低功耗、可靠性强、价格廉价等特点。2.3硬件选型由于系统的通讯接口比拟多,过程复杂,单从技术角度来讲,重新开发一款管理个模块的操作系统周期太长,同时其开发本钱也不是作者可以承受的[9]。考虑到操作系统附带的驱动程序,简单的移植就可以在本系统上运行。高速的CPU和大容量的存储空间是运行操作系统的必要条件。4G的存储空间已经可以满足运行操作系统的需要,显然ARM处理器满足要求。对于系统运行速度,32位RISC特性也可以轻松应对。同时,ARM处理器自带一些接口控制器,对于构成系统比拟方便。成为RISC标准的ARM微处理器已经广泛应用于各种通信领域。本设计要求实时处理数据,所以选用运行速度快的ARM9处理器,它完全可以运行WindowsCE.net或者Linux等操作系统,还拥有比拟快的数据处理速度。在众多型号的ARM9处理器中,本文选用的是三星的S3C2410处理器。S3C2410是三星开发的一款16/32位、拥有ARM920T内核的嵌入式微处理器,主要用于便携式通讯设备。一块S3C2410处理器还集成了以下外设[10]:(1)2.3MhzARM920T内核,0.18um工艺,超低功耗,272pinBGA封装(2)带MMU,16KB指令缓存,16KB数据缓存(3)NANDFlash控制器(4)内含SDRAM控制器(5)117个GPIO,24通道外部中断源(6)内置LCD控制器〔支持SIN和TFT带有触摸屏的液晶显示屏〕(7)丰富的外部接口:4个通道的DMA,3个串口,两个SPI口,1个IIC接口(8)一个USBhost接口,一个USBdevice接口(9)8通道的10位ADC,4通道的PWM输出(10)内置RTC,PLL(11)内置SD,MMC,SmartMedia等存储卡接口由于S3C2410具有丰富的资源,稍加扩展即可到达设计要求。2.4嵌入式系统的比拟几种嵌入式操作系统的比拟下面对几种主流的操作系统进行比拟:1嵌入式LinuxLinux是一种自由和开放源代码的类UNIX操作系统。定义Linux的组件是Linux内核,该操作系统内核由林纳斯·托瓦兹在1991年10月5日首次发布。严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思,Linux那么常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些系统工具和库主要由GNU方案提供,自由软件基金会提议将该组合系统命名为GNU/Linux。Linux是一个领先的操作系统,可以运行在效劳器和其他大型平台之上,如大型机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,最快的前10名超级计算机运行的都是Linux操作系统。Linux也广泛应用在嵌入式设备上,如、平板电脑、路由器、电视和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创立在Linux内核之上[11]。µC/OSIIμC/OS-II是一个实时多任务内核。μC/OS-II的代码既有C语言编写的,也有汇编语言编写的,对不同处理器具有良好的兼容性。随着不断的开展和完善,该系统已经在诸多领域得到广泛应用。经过严格测试,该系统在飞行器上运用的可行性得到了美国航空管理局的认证。这说明μC/OS-II具有良好的可靠性,可用在有关的平安系统领域。除此以外,该系统的另外一个显著特点就是开源免费,易于维护和定制。VxWorks该操作系统是美国风河公司1983年开发的一种嵌入式操作系统,对于一个嵌入式开发环境来说是核心局部。丰富的可扩展性、性能强劲的核心以及方便的用户图形界面,在各种嵌入式实时操作系统中有很强的竞争力。凭借着出色的稳定性和优秀的灵活性,被广泛应用于高精尖领域。PalmOSPalmOS是Palm公司开发的专用于PDA上的一种操作系统。PalmOS在个人数字助理市场上占据着绝大局部份额。PalmOS操作系统以简单易用为大前提,运作需求的内存与处理器资源较小,速度也很快;但不支援多线程,长远开展受到限制。这种32位嵌入式操作系统目前还有较为庞大的用户群。WindowsCEWindowsCE是微软公司为嵌入式平台设计的开源可扩展的32位操作系统,通俗的讲,可以把它理解为Windows95的简化版。在图形用户界面方面有非常好的使用体验。它可以与Internet进行信息交换。虽然该系统没有开源,使用也需要付费,但是这并不影响熟悉Widows系统的开发人员使用该系统开发出优秀的应用程序。在互联网上,可以找到及其丰富的WindowsCE资源,相关的开发团队也很多。嵌入式操作系统选择的依据如何选择嵌入式操作系统呢?本文认为既要立足于现有的硬件平台条件,还要考虑到操作系统的综合本钱,具体来讲,分为以下几个局部[12]:上市时间。对于一套操作系统,特别是商业操作系统,其具体的上市时间在重要性方面并不亚于开发该系统的本钱。就目前情况来看,熟悉WindowsCE的开发人员是最多的,这可以缩短系统软件的开发时间。如果选用了一套并不流行的操作系统,将会额外的增加开发系统软件的时间本钱。平台无关性。通俗的说,平台无关性就是指一套操作系统可以在不同的硬件根底上运行,即具备良好的可移植性。一套操作系统的平台无关性往往和它的功能成反比,这就要求开发人员最大程度的考虑到各种条件,使得操作系统具有最大程度的兼容性和功能。在前述几种操作系统中,本文认为WindowsCE的平台无关性是最优的。可利用资源。对于一套操作系统,特别是商业操作系统,不同于教学,他们往往有着丰富的自带资源和第三方相关应用程序,这样做是为了给用户更加方便的开发体验,这也是选择操作系统的一个重要因素。从前面介绍的情况来看,Linux和WindowsCE的相关资源都十分丰富。系统定制能力。操作系统除了要具备强大的功能以外,对于不同需求的客户,其应当还要有出色的客户定制能力,这样可以使得客户完成各种不同的工作任务,而不仅仅是处理几个简单的问题。微软已经开始开放WindowsCE的源码,这样使得其在客户定制方面有着更为强有力的市场竞争力。本钱。本钱是开发所有产品都要考虑的一个重要因素。虽然Linux免费,WindowsCE付费,但本钱不仅仅是使用某一操作系统时需要支付的费用,它是一个综合性的概念。应该考虑到,使用了某一操作系统之后硬件采购,人员培训和产品开发时间等综合影响。是否支持中文。由于开发智能家居系统是针对国内的情况,所以必须要考虑所选用的操作系统是否支持中文的内核,以及是否支持中文接口等因素。通过上述综合比拟,本文选用的是WindowsCE嵌入式操作系统。再对微软的多种嵌入式操作系统进行比拟,其中的XPe虽然对驱动和应用程序具有良好的兼容性,但是只支持X86系统;相比之下,WindowsCE在兼容性和支持性上取得了比拟好的兼顾,所以选择后者作为操作系统。WindowsCE结构及特点WindowsCE.net是一个兼容多种嵌入式平台操作系统。良好的可靠性和丰富的扩展性是它的显著特点。它还具备同时处理多个线程任务的能力,不同的功能模块使得用户可以根据自己的需要定制不同的产品。WindowsCE操作系统的结构图如下所示[13]。WindowsCE体系结构图WindowsCE体系结构图应用层Internet客户效劳WindowsCE应用程序客户应用程序用户界面国际化硬件层OEM层驱动OAL层引导程序配置文件操作系统层对象存储核心核心DLL应用和效劳开发多媒体技术GWES设备管理器通讯效劳和网络图2-2操作系统模型整个体系结构从下至上包括硬件层、OEM层、操作系统层、应用层。值得注意的,处于中间的OEM层和操作系统层构成了该操作系统的关键局部,接下来本文将对这两层着重加以介绍。OEM层OEM层主要包括以下模块[14]:(1)OAL模块。该模块与硬件的相关功能密切相关。(2)引导程序。它负责将操作系统的核心导入内存。(3)配置文件。将不同的文件配置导入到相应的硬件中。(4)驱动。驱动是嵌入式操作系统不可缺少的局部,它将软件操作和硬件执行联系起来。处于第二层的OEM层是WindowsCE操作系统取得良好平台无关性的关键所在。这一层分为三个局部,CSP使得该操作系统在不同处理器上都可以运行,而BSP那么提供了良好的硬件兼容性,驱动那么是用来调动各种不同的外设。操作系统层操作系统层包括以下模块:(1)CoreDLL[15]。它负责系统的功能调用和API管理。(2)核心。相关进程为NK.exe,所占内存不大,但是却完成大局部的系统功能,如中断响应、系统调用、异常处理、模块通信等,同时为系统的测试提供支持。(3)设备管理模块。相关进程为Device.exe,负责对系统各个设备的管理,并提供实时的设备列表,资源情况等。(4)图形窗口和事件模块。负责将系统内发生的各种时间以图表或者窗口的形式显示出来供用户查看。(5)通信和网络效劳模块。它主要完成WindowsCE操作系统与其他软硬件的网络通讯。(6)对象存储模块。通俗的说,就是WindowsCE操作系统下的硬盘,负责存储各种数据,注册表文件等。(7)应用和效劳开发模块。为应用程序提供相关的进程支持,同时包含的各种工具可以对应用程序的开发提供帮助。WindowsCE包含以下根本进程:负责内核相关效劳的NK.exe;负责系统文件效劳的FILESYS.exe;图形用户界面的支持离不开GWES.exe;最后的DEVICE.exe那么是管理设备驱动的必不可少的进程[16]。2.5基于WindowsCE.net的应用程序开发过程本文把应用程序的开发过程分为以下几个局部[17]:1.硬件设计第一个步骤就是进行硬件平台的选定,它取决于我们想实现何种功能。一个完整的产品往往要集成很多不同功能的硬件模块。2.选定BSPARM系列、X86系列等多种不同的处理器WindowsCE操作系统都支持。通过往PlatformBuilder里参加其他用户自定的BSP再结合其自带的BSP,WindowsCE系统可以支持不同的底板和设备。3.定制特定驱动PlatformBuilder自带的驱动程序还不能满足特定的开发需要,这时就需要根据开发目的参加自行开发的特定驱动程序来实现某些特定功能。当然如果开发的只是一般性的产品,那么那些自带的通用驱动程序完全可以满足要求。4.裁剪内核除了对驱动程序的修改以外,同样重要的阶段就是修改系统内核。通过PlatformBuilder自带的BSP可以定制出满足要求的操作系统。通俗的说就是利用PlatformBuilder软件对WindowsCE的系统结构进行相应的修改。如果一个组件必须添加到定制的操作系统中,那么可以在这个阶段进行。5.生成SDK完成上述步骤之后,就可以生成自己定制的SDK。SDK不仅使得程序编写更加方便,也可以轻易地安装到其他的编辑器上面。缩短了开发流程,节约了时间。6.开发应用程序完成了以上五个阶段,一个按照特定需要的开发平台就搭建完成,接下来要做的就是在这个平台上编写程序,结束应用产品的开发。本文所讨论的智能家居系统的终端系统的开发流程就是上述六个局部,接下来将对每个局部进行详细介绍。3系统硬件设计对于嵌入式家居系统的开发而言,设计出完整严谨的硬件局部是整个开发过程的根底和关键局部。设计出一个符合要求的硬件系统,既可以完成当初确定的家居系统应该具有的功能,还要考虑到硬件系统的可扩展性和可选择性。同时也必须考虑到和软件系统的兼容性,在尽量保证软件的高效简洁的同时,也要充分认识到在该硬件根底上开发软件的困难。3.1主机系统的硬件设计3.1.1S3C2410嵌入式处理器本设计主机采用的是三星公司推出的一款16/32位基于ARM920T内核的RISC嵌入式处理器S3C2410。它具有功耗低、结构简单、全静态设计等优点,对于低本钱和低功耗系统的开发非常适合。通过集成众多常用资源降低了它的本钱,其中包括LCD、NANDFlash、SDRAM等控制器、系统片选逻辑以及一些常用的通讯接口等资源[18]。S3C2410的内部结构如图3-1所示。APBAPB总线AHB总线BUS控制中断控制功率控制存储控制LCD控制器USBHOSTExtMasterNAND控制器IISIICGPIORTCADCTIMER/PWMUARTUSB设备SDI/MMC看门狗BUS控制SPI图3-1S3C2410内部结构图3.1.2Flash模块设计图3-1S3C2410内部机构图Flash模块设计S3C2410具有两种启动方式,一种NORFlash启动方式,一种是NANDFlash启动方式。一般的嵌入式处理器均使用第一种启动方式,存在本钱较高的缺点;但是三星的处理器却采用第二种启动方式,对于NANDFlash技术,三星是其主要的支持厂家。现在市场上主要的非易失闪存技术就是NOR和NAND。前者由英特尔公司1988年开发出来,打破了之前EPROM和EEPROM这两种技术的市场垄断。次年,后者由东芝公司开发出来,它集成了更强的性能,却没有提高每比特的本钱,使用接口的它有着出色的可升级性。本文选用硅存储技术公司的39VF16016MNORFlash和三星的64MNANDFlashK9F1208作为存放应用程序的存储空间。选择闪存的原因在于很多内容在开发阶段需要经过频繁的修改,如果采用ROM,其修改很不方便,相比之下,修改闪存中的内容要简单得多。除此之外,闪存对于系统日后的维护、升级也比拟方便。图3-2和图3-3分别是NANDFlash和NORFlash的原理图[19]。图3-2NANDFlash电路设计图3-3NORFlash电路设计3.1.3SDRAM接口电路设计由于S3C2410极其有限的存储空间完全不能满足操作系统运行的要求,那么就必须为其外接存储系统。虽然WindowsCE操作系统要求的最小内存是32MB,但是考虑到系统的运行效率,本文选用64MSDRAM。在微机系统中广泛使用的SDRAM既有较大的存储空间和读取速度,有具有较低的本钱。它是一种存放执行代码和变量并在系统启动后进行存取操作的存储器。同步动态随机存储器需要定时刷新才能保存存储的内容,所以微处理器必须具备刷新控制逻辑。本文选用的S3C2410拥有片内独立的控制SDRAM刷新的逻辑电路,这样可以方便地和SDRAM进行连接。一般的SDRAM数据宽度大多为8位或者16位。本文考虑到系统的运行速度,选用了两片三星16位芯片K4S561632C-TC75组成了32位的存储系统。两片K4S561632C-TC75连接的差异在于LDQM、UDQM、SCLK引脚的不同,其他连线相同。3.1.4UART串口电路设计无论是微控制器还是PC都具有串行接口,都使用电子工业协会推荐的RS-232-C这一常用的串行数据传输总线标准。这一标准早期用于基于线和MODEN的远距离数据传输,但是随着微处理器技术的开展,现在也被用于近距离通信。并且现在的近距离通信也不再使用线和MODEN,采用的是端对端技术。S3C2410的UART〔通用异步收发器〕单元具有两个异步串行I/O口,并且它们之间相互独立,其工作方式分为DMA方式和中断方式。可以支持5至8位的串行数据的收发,1位和2位是停止位。另外包括奇偶校验、对于波特率支持编程,对于红外收发也是支持的。RS-232-C标准采用的接口是9芯或25芯的D型插头,9芯D型插头更为常用。其中的RXD,TXD和GND这3个引脚就可以完成根本的串行信息交换,但是上述标准与S3C2410系统的LVTTL电路相比,两者定义的上下电平信号完全不同,后者的高电平对应2V至3.3V信号,低电平对应0V至0.4V信号,与之相比,前者采用的是负逻辑方式,高电平对应-5V至-15V电平,低电平对应+5V至+15V电平。通过比拟可以看出,只有经过电平信号的转换,两者才能进行通信。本问基于这种情况选用MAX3232电平转换芯片[20]。图3-4串口电路设计3.1.5USB接口电路USB接口被广泛应用于键盘和鼠标以及U盘等设备的数据传输。选用的S3C2410处理器提供了两个USB接口,其片内的两个USB控制器的分配方案可以设置为2个主机或1个主机与1个从设备。本文选用的是两个主机的分配方案,其USB电路原理图如下列图所示。图3-5USB电路原理图3.1.6JTAG接口电路JTAG〔联合测试行动小组〕是一种用于对芯片内部测试及对系统进行仿真的国际测试标准协议。支持该技术的芯片内部封装了专门的测试访问口TAP,并使用支持该技术的专用测试工具对内部节点进行测试。对于比拟复杂的器件,该协议都可以支持。支持该技术的标准接口有TMS测试模式选择、TCK测试时钟、TDI测试数据输入、TDO测试数据输出这4条线,如图3-7所示。如果要访问芯片内部的任何部件,只需要通过JTAG接口就可以轻松实现,对于开发调试嵌入式系统来说简化了流程,使其变得更加简单。访问ARM芯片边界的JTAG扫描口是此技术的调试方法。JTAG仿真器基于其边界扫面实现与处理器的信息交换,这是一种完全不使用片上资源的调试方式,不需要目标存储器,更不占用系统的任何端口,对于监控软件来说是必备的特性。需要说明的是,基于JTAG技术的调试程序的执行位于目标板,是仿真结果更接近于目标硬件。在这种条件下,许多其他的问题如调试频率限制、直交流参数匹配问题、所用电线长度等造成的影响被最大程度的消除。目前最为流行的调试方式就是利用JTAG仿真器进行基于集成调试环境的测试,该调试方法的优缺点如下:优点:不受至于软硬件的条件,简单快捷。缺点:要求工作正常的目标板,并且要具有调试接口。图3-6JTAG连接原理电源电路设计对于要设计的整体系统来说,电源管理系统是极其关键的局部。对于一个电源系统来说,良好的稳定性和出色的抗干扰能力是必不可少的。一块电路板上往往有着不同的电压和功率分布,这就要求我们先准确计算各个局部的电压和功率,然后选择适宜的电源管理单元。本文在考虑了上述要求之后对电源电路做出了设计,其功能框图如图3-7所示。+12V直流输入+12V直流输入电压调节器电压调节器电压调节器+3.3V直流输出+1.8V直流输出+5V直流输出图3-7电源管理系统功能框图S3C2410工作时向IO口提供3.3V电压,向内核提供1.8V电压。为了到达稳定电压的要求,将5V电压转换成3.3V的任务交给了电压转换芯片LM1117-3.3,再用LM1117-1.8将5V电压转为1.8V。系统电源电路如图3-8所示。图3-8电源电路原理图3.2分机系统的硬件设计在分机的MCU选取上,本文选用的是MSP43OF149,即一种超低功耗的混合信号控制器,可以使用纽扣电磁并且具有很长的电池续航能力。将低电压、超低功耗、出色的运行能力、优秀的稳定性和丰富的外设集于一体。nRF905收发模块负责进行与主分机无线通讯。因为连接了不同的传感器和控制器,所以可以实现不同的功能。考虑到分机安装的家居位置不同,所以分机的尺寸要比拟小。以安装在厨房中的一个分机为例,分机各种硬件的选型如表3-1所示。MSP430MSP430声光报警模块电源监控模块nRF905通讯模块泄漏检测模块电磁阀控制模块图3-9分机系统的硬件结构表3-1各硬件模块型号硬件芯片和模块型号描述MCU处理器MSP430F149超低功耗的混合信号控制器泄漏检测模块QM2N2型传感器阻值随检测气体浓度变化而变化电磁阀控制模块ZD20型电磁阀双稳态高效节能型电磁阀声光报警模块LED和蜂鸣器红光和声音报警通讯模块nRF905无线通讯射频模块3.2.1MCU微控制器MSP430F14x是德州仪器公司推出的Flash型16位RISC指令单片机,具有超低的功耗。由于采用的结构是“冯-诺依曼”,在同一个地址空间内集成了随机和制度存储器和所有的外围模块。极高的性价比是因为具有丰富的片内外设。在TI的MSP430F1x系列闪存单片机中,该系列闪存的功能最为强大。该系列具有更大的存储空间以及更丰富的外围模块。同时它的调试工具简单易用,得益于固化的闪存,程序可以轻松的升级或者调试,是开发移动产品的不错的选择。在该系列的单片机设计上,表达了功耗至上的设计理念。一切设计均围绕低功耗。以下几个局部是这种低功耗结构的介绍:1.高度集成的完全单片化设计该MCU集成了尽可能多的外围模块,最大程度的增加硬件空间。在配合超低的功耗结构,使得系统性能强劲,工作可靠,本钱低廉,适合微型化。2.内部电路可选择性工作特殊功能存放器使得该系列单片机可以根据不同的工作要求和环境状态,选择不同的内部工作电路,始终保持强劲性能和超低功耗。3.具有高速和低速两套时钟电源功耗与系统运行频率有密切关系。为了实现超低功耗,F14x单片机具有高速的主时钟和低频时钟以及DCO片内时钟三套独立的时钟源。可以根据不同的工作频率选用不同的时钟频率,最大程度的降低整体功耗。4.具有多种节能工作模式该单片机除了正常模式外,还有4种节能模式。保证了出色的功耗控制,同时又不会影响到单片机的工作性能。根据工作要求和状态的不同的,可以在5种工作模式之间随时切换。本文选用的MSP430F149单片机是TI公司MSP430F14x系列的产品。该系列对功耗的控制极为出色,将不同的应用模块集成在一起,电压范围1.8V至3.6V的电池可以保证长时间的供电。由于RISC结构是16位的,同时还具有16位存放器和特殊存放器,使得它的代码效率很高。通过数字控制振荡器,该单片机从睡眠恢复到工作的时间不到6ms。该系列单片机有两个具有看门狗功能的16位定时器和高速8通道12位A/DC以及一个内部比拟器和两个通用同异步收发器、I/O口多达48个并且均可独立编程。无论对于硬件还是程序,都拥有极高的兼容性,高达10万次的擦写次数保证了修改程序的可行性,抗干扰能力一流。无论是随机存储局部还是只读存储局部,可以随意进行局部或者整体的擦除,大大方便了软硬件的设计。芯片各引脚的连接如图3-10所示[21]。图3-10MSP430F149引脚连接电路电源监控模块设计NCP302HSN27T1电压监测器,工作电压为0.8V到10V之间的任意值,难以想象的0.5µA的静态工作电流;与同类芯片相比,其电压检测最小精度可以到达2%。一旦电源电压缺乏2.7V,1号引脚输出高电平,对MCU发出中断请求,同时蜂鸣器发声提示更换电源。泄漏检测模块设计泄漏检测模块的核心是QM2N2型气敏传感器,其电阻值随有害气体浓度的变化而变化。其电路图如下所示。当浓度处于正常范围时,气敏传感器C和D间电阻值较大,D端输出低电平。一旦有害气体浓度超过正常阀值后〔通常为25%的气体体积浓度〕,迅速减小的C、D间电阻值,将使D除输出高电平,导通三极管,连接单片机P4.3口的E点由高电平变为低电平,随即向单片机发出报警信息[22]。图3-11泄漏检测电路电磁阀控制模块设计本文选用ZD20型电磁阀〔控制电路见图3-12〕来控制煤气的开关,它具有节能高效的特点,供电的是3.6V锂电池,采用点开工作方式。无论开关,均可一直保持该状态。微控制器P4.2脚的电平上下控制电磁阀的开关状态。输出低电平时,三极管截止,电磁阀关闭;输出高电平时,三极管导通,电磁阀翻开。该电磁阀通过控制电路与单片机控制系统相连,通过单片机实现对电磁阀的开关。图3-12电磁阀控制电路声光报警模块设计如果有害气体浓度超标,红色LED点亮,同时蜂鸣器鸣响,发出声光报警。图3-13声光报警电路单片机的P4.0脚输出的电平控制蜂鸣器,高电平时蜂鸣器鸣响低电平时那么蜂鸣器关闭。当P4.1引脚输出的电平上下控制LED的亮灭,高电平时LED发亮,低电平时熄灭。3.3主分机通信模块设计3.3.1nRF905射频芯片无线数据传输已经开始用于各种特殊的数据测控中,本文选用的MSP430+nRF905的组合具有低功耗、传输距离较远、传输数据量适中等特点。其中的MSP430有着出色的功耗控制,而nRF905无线收发芯片除了低功耗,操作简单并且可以自动进行CRC校验,两者的组合已经被广泛用于很多产品中。nRF905是一款挪威Nordic公司开发的射频发射芯片,工作电压范围在1.9V至3.6V之间,32引脚QFN封装〔5mm*5mm〕,工作频段有433/868/915MHz。该芯片可以自动进行CRC校验,配置方便,超低功耗。它采用非实时数据传输方式,在接收端收到发送端传来的数据之后先暂存与芯片内部存储器,MCU可以在需要的时候访问内部存储器。nRF905一次可以传输不超过32B的数据。nRF905可以工作在掉电或者待机这两种不同的模式下,节能模式有ShockBurstTM和ShockBurstTM,PWR_UP、TRX_CE和TX_EN这3个引脚的电平上下决定着该芯片处于何种模式,如表3-2所列。表3-2nRF905的工作模式PWR_UPTRX_CETX_EN工作模式0--掉电模式10-待机模式110射频接收模式111射频发送模式3.3.2nRF905与MCU连接电路主机与分机的MCU分别连接各自的nRF905芯片,再通过无线方式进行信息交换,其连接电路图如下列图所示。图3-14nRF905与MCU连接电路图其中TRX_CE、PWR、CD、AM、DR、MISO、MOSI、SCK、CSN等控制管脚分别与主机和分机的MCU的通用IO口相连接,nRF905与S3C2410的连接见图3-15。PWR_UPTRX_CETX_ENnCDRPWR_UPTRX_CETX_ENnCDRAMFDR9MISO0MOSI5SCKCSNPC0PC1SPC23PC3CPC82PC94PC101PC110PC12PC13图3-15S3C2410与nRF905连接图图3-15S3C2410与nRF905连接图4系统软件开发在基于WindowsCE操作系统进行产品开发时,离不开内核定制和开发应用程序这两个重要的方面。本文使用的是进行内核定制的PlatformBuilder工具和程序开发工具的EmbeddedVisualC++。4.1搭建特定操作系统搭建基于WidowsCE的特定系统步骤如下:(1)选择适宜的微处理器和板级支持包BSP。本文根据具体要求选用的是导入了smdk2410.cec文件的S3C2410处理器。(2)使用开发向导设置好硬件参数,压缩功能模块,得到编译后的OS镜像文件;(3)将镜像文件导入开发板,使用PB工具查看其运行情况,并做出修改。(4)在EVC中导入SDK开发工具,完成开发环境的创立。其具体流程如下列图所示。平台定制平台定制开发设备驱动程序增加组件修改配置文件平台配置下载到目标设备平台创立完成?导出SDK平台调试创立OS镜像文件定制目标设备?开发OAL、BSP和下载程序图4-1WindowsCE定制系统流程图平台定制工具PlatformBuilder简介平台构造器〔PlatformBuilder〕负责在新的硬件平台上完成WindowsCE操作系统的移植。该工具的版本与WindowsCE操作系统的版本有关。它是在进行基于WindowsCE的嵌入式操作系统开发时的必备工具[23]。通过该工具,开发人员可以根据具体要求对WindowsCE操作系统的进行程序驱动的开发和测试。该工具包含常用的CPU和外围模块的OEM层源代码。通过该工具,只要对其包含的标准BSP进行修改,就可以驱动标准硬件设备。接下来要做的就是添加应用程序,就可以使目标硬件运行起来。下面是安装WindowsCE操作系统时的考前须知:(1)PB工具和CE操作系统必须安装在同一个路径下。(2)根据特定的系统平台进行定制安装,由于本文选用的是S3C2410,所以选择ARMV4和ARMVI。在该工具的用户界面中,有左右两个窗口。左侧窗口显示已经选定的特性,会被导入定制的操作系统,右窗口显示所有可选特性,可以根据要求把它们导入左侧窗口。利用该工具可以实现基于CEC文件的目录扩展。开发人员可以通过CEC文件将现有BSP开发包导入,根据具体要求设置各种特性从而定制出基于目标平台的操作系统。完成定制后,自定义的软件开发工具包SDK还可以从PlatformBuilder中导出用于应用程序的开发。安装BSP通俗的说,在硬件平台上构建CE系统,实际就是在PlatformBuilder〔下文简称PB〕自定义一个新的环境,搭建环境根底需要确定适宜的BSP。它是由主板设备驱动、开发板硬件程序等组成的。PB包含多种目标硬件平台BSP,对于已经包含的开发板,把再编译的镜像文件下载到开发板就可以了。如果开发板的外围接口没有包含在BSP中,可以使用开发向导自定义一个新的BSP。如果现有的开发环境中没有满足特定要求的BSP,那么PB也支持开发人员自定义新的BSP[24]。在整个WindowsCE系统的定制过程中,定制BSP过程最长。只有了解系统硬件根底才能缩短定制时间。对于S3C2410微处理器,可以直接在PB的BSP列表中选取。为了节省时间并提高成功率,本文直接选用厂商提供的BSP。下面是安装SMDK2410开发板BSP的步骤:〔1〕翻开PB工具,在文件菜单下找到特性管理目录,显示当前特性列表。可以自己添加新CEC文件扩充该列表。如下列图所示。图4-2选择的CEC文件列表〔2〕接下来在列表中选择“smdk2410.cec”,选择移除。再选择导入,添加“platform\smdk2410\smdk2410.cec”文件。特性管理目录是由CEC文件组成的,同时包括系统的资源配置等信息。选择下一步直到完成。图4-3导入光盘中的CEC文件〔3〕在列表中,系统会自动添加“SamsungSMDK2410:ARMV4/V4I”项,BSP安装完成。定制WindowsCE操作系统镜像不同嵌入式系统除了镜像文件不同之外,操作方法大同小异。下面讨论的是如何创立操作系统镜像文件。其具体步骤如下[25]:〔1〕选择文件菜单中的新平台选项。〔2〕选择BSP:本文选用的是S3C2410处理器,所以选择“SAMSUNGSMDK2410:ARMV4”BSP,选择“NEXT”。图4-4选择BSP〔3〕选择平台类型。在可用配置列表中,选择移动手持设备,并把平台命名为sbc2410,点下一步继续。〔4〕选择根本类库。通过新平台安装向导选取适宜的配置,点击下一步。〔5〕继续在该向导中设置网络效劳。〔6〕设置完成,点击结束。〔7〕右键单击特性选项中的设置。在创立属性对话框中,进行如下设置:[EnableFullKernelMode]->checked[EnableImagesLagerthan32MB]->checked在允许所有核心模式下,可以提高CE系统的运行效率,但是增大了系统的不稳定性。选择允许大于32MB映像,那么系统的运行映像就可以大于32MB。〔8〕利用PB提供的特性目录进行特性选择是基于WindowsCE操作系统的定制的一个重要的过程。PB提供了CE系统的常用组件特性。因为需要键盘鼠标等输入设备,所以点击翻开Catalog->CoreOS->Displaybaseddevices->CoreOSService->USBHostSupport->USBHumanInputDevice(HID)ClassDriver,右击添加到平台,选择USB人体工程学键盘和鼠标,右击添加到平台。〔9〕与上一步类似,添加移动存储设备支持,在USBStorageClassDriver处右击添加到平台,Catalog->BSPs->SamsungSMDK2410:ARMV4->DeviceDrivers->Networking->LANdevices->CS8900,然后右键点击参加平台。〔10〕右键点击PrinterDevice->PCLPrinterDriver,选择参加平台,必须添加打印设备驱动,否那么编译时会出错。〔11〕设置好相关网络参数,可以通过修改注册表相关键值来进行设置。本文将所以目标机的IP设为:0。〔12〕点击创立开始编译。编译完毕,将会生成NK.bin和NK.nb0映像文件。编译时有警告是正常的,如果有错误,那么需要修改。通过USB将主机和开发板连接起来,将上面生成的两个镜像文件下载到开发板上。4.1.4创立平台SDK接下来要做的就是使用PB来创立SDK,其他应用程序的开发离不开它的支持。组成SDK的是一些头文件、库文件、文档和运行库。完成了SDK的创立,再将其导入或者安装到其他的计算机上,再通过EVC或VisualStudio就可以进行应用程序的开发、调试和运行。微软的PlatformSDK对于开发人员来说比拟熟悉,使用这一工具可以开发出几乎适合所有版本Windows系统的应用程序。这是由于嵌入式系统的特性所致,由于是一个可以定制并修改的操作系统,每一个定制的WindowsCE平台的功能不完全相同,它们向应用程序提供的API集合自然也不完全相同。只有导入了特定的SDK,VisualStudio和EVC才能进行应用程序的开发。在EVC中,PlatformManager〔简称PM〕管理SDK。值得注意的是,该工具会默认安装一个“标准”SDK。其实也就是集成了一些常用功能的SDK。通过“标准”SDK开发的应用程序,兼容大多数定制的WindowsCE系统。但是标准不代表万能,例如,对于中文和DirectX,StandardSDK就不支持。使用SDK向导生成SDK过程如下:〔1〕在PB中选择平台菜单,选择设置SDK,翻开向导程序。〔2〕为创立的SDK输入一个名称。图4-5SDK名称〔3〕选择SDK特性开发工具,本文选择的是EVC,所以EVC和SDK文件路径必须一样。〔4〕点击下一步完成向导设置。(5)在平台菜单中选择创立SDK。(6)把上述步骤之后生成名SBC2410_SDK.msi的SDK文件安装到EVC程序路径。〔7〕双击该MSI文件出现向导。〔8〕为其命名。〔9〕设置与开发工具相同的安装目录。设置错误那么无法下载应用程序。〔10〕完成基于向导的SDK安装。4.2应用软件开发WinCE的API和其他的微软操作系统大致相同,但它们之间也有区别。进行CE程序开发时应该注意如下几点[26]:1.CE操作系统的根底是Unicode系统,向用户显示的所有文本都是Unicode文本,所以应用程序必须使用Unicode字符集。只有使用Unicode类型的运行函数才能对字符串进行定义和处理。2.有限的内存。由于基于CE的嵌入式设备内存非常有限,所以基于此操作系统的应用程序代码应该尽可能简洁,大的程序意味着长的加载时间。较少的代码可以获得更快的加载速度,也有利于系统的稳定性。3.相对于Windows所有的API函数,WindowsCE支持的超过1000种公共MicrosoftWin32API只是一小局部。有些WindowsAPI在WindowsCE不一定能使用。必须对现有的Windows程序做一些修改才能被WindowsCE编译[27]。4.电源管理。WindowsCE设备的电量通常非常有限,为了节省电量,WindowsCE设备会在长时间没有使用时关闭。一旦恢复设备使用,应用程序必须迅速恢复,同时应用程序必须考虑到运行时突发的电量缺乏的情况并较好地予以解决。开发工具比拟进行WindowsCE应用开发时,应该根据具体要求选用适宜的开发工具。当前流行的开发工具有PB、EVC、VS.NET、EVT3.0等。下面逐一介绍每种开发工具。1.PlatformBuilder。简称PB,开发环境是Win32API,如果要修改相连之后的应用程序,需要再编译镜像。方便内核的调试,但是应用程序的修改比拟繁琐。debug版镜像和环境解决了这一问题。其界面如下。2.EVC支持WinCEApp/DLL/COM/LibusingWin32API、MFC、ATLandSTL。它是一种可视化开发工具。和VC++6.0相比,工程管理模式和用户界面相似,对于应用程序的调试非常方便,是程序开发的必备工具之一,对于特定程序开发要安装特定的SDK。3.VisualStudio.NE,简称VS.NET。调试应用程序非常方便,开发环境也比拟完整,但是要求安装frameworkcompact.NET环境。可以明显缩短开发时间,但是效率较低同时资源占用过高。它的开发环境必须包含在CE操作系统内核中,否那么不能进行程序编译。对于对资源占用和运行速度要求不高的软件来说,使用VS.NET开发很适宜。4.EmbeddedVisualTools3.0〔简称EVT3.0〕分为EVBasic3.0和EVC++3.0,拥有和VisualStudio6.0相似的用户界面,但是只有WindowsCE3.0才能运行其开发的应用程序。经过综合比拟,本文选用的是简单易用的EVC开发工具。本文选用的具体版本是EVC4.0+SP4,它是最新的版本,包含了以前版本的所有功能。系统镜像文件的大小以及使用的开发工具决定了使用何种模式。其他因素也需要给予考虑,特别是开发速度和系统的兼容性以及可靠性。考虑到运行效率和内存使用率,以及对WindowsCE操作系统的兼容性,本文选用EVC4.0作为应用程序开发工具。它是开发嵌入式设备应用程序的必备工具[28]。4.2.2EmbeddedVisualC++伴随着WindowsCE系统的推出,微软也推出了与VC++类似的EVC语言和开发环境,开发人员可以基于WindowsCE进行应用程序开发,同时也可以访问开发工具文档。基于该工具而开发出的程序可以直接运行在特定的平台,无需编写额外代码,系统自动完成平台转换工作。下列图为EVC++4.0的用户界面。图4-6EmbeddedVisualC++集成开发环境对于从事VC开发的程序员来说,这个开发环境并不陌生。本文接下来将介绍EVC开发环境的特殊局部[29]。使用EVC编程应该针对目标平台,CE操作系统的运行设备资源较少,必须明确编程的硬件根底。不同的CPU对应不同的系统,明确编译目标和类型是首要任务,如图4-24红色局部所示。EVC提供了不同的目标机器及编译类型选项来编译不同的可执行文件。在目标硬件测试方面,EVC具有硬件模拟器。针对不同硬件平台在调试、运行程序时的差异,EVC具有模拟大多数硬件平台的模拟器,可以很方便的在EVC环境中进行程序的调试或修改。可以在模拟器中设计好应用程序用户界面,相应硬件平台功能的参加,节约了调试时间,同时开发速度也得以提高。WindowsCE操作系统是32位的操作系统,EVC只有在32位系统下才能运行。由于两者的API不完全相同,有些函数两者之间不能通用。某些函数只能在CE操作系统中运行。WindowsCE操作系统的本地文本格式是Unicode。和桌面操作系统程序开发不同的是,必须将应用程序下载到目标设备上才能运行,调试时也是这样。所以在进行基于WindowsCE的应用程序开发时,必须将EVC与WindowsCE目标设备进行连接。这需要用到ActiveSync同步软件。点击就会启动CE操作系统。之后通过USB连接到PC,点击移动设备图标,开发板中的内容就会显示出来。指定的文件夹中必须拷贝编译成功的执行文件〔一般选MyDocuments〕。图4-7浏览开发板中文件主机终端的应用程序开发完成了开发环境的创立,接下来就可以进行应用程序的开发了。终端要控制收到的数据并将其显示出来。访问缓冲区数据即可实现智能家居系统的上位机与下位机之间的通讯。在判断上位机发送的命令后,如果是读取命令,微处理器就会读取缓冲区数据;如果是写入命令,微处理器就会向缓冲区写入数据。应用程序通过两个对话框控制分机读写数据:测量对话框监视系统运行状态并采集输入信息,Control对话框向分机发送控制信息。整个家居系统的测控通过主窗体实现。主机程序流程如下列图所示。智能家居系统应用程序的输入分为1路模拟量、3路数字量及相应的4路控制输出,从而到达智能控制。YYYY测量子程序测量子程序测量子程序YNNNN开始调用主窗体选择测量?选择控制?选择帮助?选择退出?结束图4-8主机应用程序流程图人机界面开发是主机程序开发的重要局部。人机界面〔Human-MachineInterface〕是一种人机对话的环境,用户通过该界面向机器发出指令。它对于用户的使用体验非常重要。由于开发者熟悉开发的应用程序,所以对他们来说人机界面甚至是一个多余的局部。但是一个人机界面对于用户来说就是一个系统的全部,它包括输入指令发送、信息反应和界面控制。对于界面设计来说,应该给用户一种轻松快乐的操作体验,如果让用户觉得使用起来很不方便或者太过复杂,那么用户很可能不再愿意使用这个程序。由于和VisualC++的开发环境根本一致。确定工程的类型、存储空间以及名称和平台类型之后,再设置好工程类型和语言支持,程序的根本构架就建立起来了。本文选择的工程类型是WCEMFCAPPWizard,将其命名为SmartHome,本文选择的CPU支持类型是ARM和X86〔应该根据开发环境来选择〕。如同前述,在PC上调试之后,再编译成相应的应用程序,本文选用ARMCPU作为目标机,因此选择WCEX86和WCEARM,其他类型的CPU没有考虑。图4-9创立工程(1)对话框资源。在插入资源对话框中,选择Dialog选项。将ID设置为“IDD_MODELESSDLG1”,标题为“智能集成控制家居系统-测量窗口”,选择“Visible”。〔2〕编辑对话框。如下图[30]:〔3〕创立对话框类。选择Createanewclass选项,弹出NewClass对话框,在Name文本框内输入名称“CModelessDlg1”。图4-10创立对话框类(4)重复以上三步,创立一个名为“IDD_MODELESSDLG2”,标题设置为“智能集成控制家居系统-控制窗口的”,类名取为“CModelessDlg2”。(5)确定了资源和实体之后,并不能马上显示出来,还没有确定显示时间和地点。要正确地显示出来,在增减的窗口选择菜单中,选择增加测量窗口项,并命名为“ID_MODELESSDLG_TEST1”,将“控制窗口”选项的ID号设置为“ID_MODELESSDLG_TEST2”[31]。(6)对于控制指定映射变量,需要确定它们的类型、范围、变量名并为其添加代码。由于篇幅所限,不赘述详细的代码。(7)翻开“SmarthomeView.cpp”和“SmartHomeView.h”文档,向其中添加如下头文件:#include“ModelessDlg1.h”#include“ModelessDlg2.h”(8)完成编译后使用ActiveSync把可执行程序文件拷贝到移动设备下的MyDocuments文件夹下。(9)智能家居系统应用程序的输入分为1路模拟量和3路数字量,而对应的输出是4路控制量,通过这些输入输出量来实现智能控制。5总结与体会无论智能家居系统技术如何开展,其核心始终是控制器。结合了无线和网络通讯技术基于嵌入式系统的家居控制器具有超低的功耗,可以稳定运行,具有十分广阔的开展前景。通过对理论和设计实际的讨论,本文智能家居控制系统的微处理器选用了S3C2410芯片,以嵌入式操作系统为软件根底,以无线通讯技术为硬件根底,提出了一种本钱较低、性能较强的设计方案。现在对本课题设计所完成的任务进行如下总结:1.确定了整体设计方案以及所用元器件。本设计选用的主控制器是三星的32位S3C2410处理器,在主分机无线通讯方面,选用nRF905射频芯

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论