还剩51页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
硕士毕业论文基于C/S模型的智能家居网络控制系统摘要几年前一些经济比较发达的国家提出了“智能住宅”的概念,住宅智能化是智能家居的先导,智能家居是住宅智能化的核心智能家居是利用计算机、通讯与网络、自动控制、IC卡技术,通过有效的传输网络,将多元信息服务与管理、物业管理与安防、住宅智能化系统集成,为住宅小区的服务与管理提供高技术的智能化手段,以期实现快捷高效的超值服务与管理,提供安全舒适的家居环境”随着计算机技术,通信技术和嵌入式系统的发展,智能家居正逐步走进人们的生活一个典型的现代智能家居系统提供安防、家电控制、远程抄表和信息服务等功能低功率和高性能CPU的发展,为开发智能家居提供了现实可能性其内部构成包括嵌入式处理器、相关支持硬件、嵌入式操作系统以及应用层的软件包等针对智能家居需求,本文设计并实现了智能家居中的控制系统采用计算机网络控制方式,结合了基于ARM的嵌入式系统、单片机系统、计算机网络、WIN32编程等技术,实现了对开关型家电的控制本文的智能家居控制系统设计方案是以PhilipsLPC2103实验板为硬件平台,建立了嵌入式系统开发环境,移植了uc/os内核;开发的应用软件分为单片机子系统、PC客户端和PC服务端三个模块最终完成相关软硬件设计、调试,经测试,完全实现预期功能最后提出系统改进的方案和措施在硬件方面着手于PhilipsLPC2103芯片的数据手册,通过对其针脚的定义,进行相关电路的设计,实现了单片机串口的通讯、电脑数据的接收和处理、继电器电路的开关和复位电路的实现在软件方面,在Delphi2007中实现了PC服务端和客户端的数据收发和处理,并使服务端在接收到特定字符后发送相应的指令到串口基于LPC2103的智能家居远程控制系统提供了一种对家庭普通家用电器进行远程控制的新思路,是嵌入式的一项有效的尝试和应用关键词LPC2103,Indy10,智能家居,远程控制AbstractAfewyearsagoanumberofeconomicallydevelopedcountriesputforwardthesmarthouseconcept;domesticintelligenceisaleaderinsmarthomeintelligenthomethedomesticintelligencecore.SmartHomeistheuseofcomputercommunicationsandnetworksself-controlICcardtechnologythroughaneffectivetransportnetworkmulti-informationservicesandmanagementpropertymanagementandsecurityhomeintelligentsystemintegrationfortheresidentialdistrictofhigh-techservicesandmanagementintelligenttoolsinordertoachievefastandefficientvalueformoneyservicesandmanagementprovidingasafeandcomfortablehomeenvironment.Withcomputertechnologycommunicationtechnologyandembeddedsystemdevelopmentintelligenthomeisgettingintopeopleslives.Atypicalmodernsmarthomesecuritysystemshomeappliancecontrolremotemeterreadingandinformationservicesfunctions.Low-powerandhigh-performanceCPUdevelopmentforthedevelopmentofintelligenthomeoffersarealpossibility.Itsinternalcompositionincludingembeddedprocessorsrelatedsupporthardwareembeddedoperatingsystemandapplicationlayersoftwarepackagesandsoon.Inresponsetothisphenomenonthispaperdesignedandimplementedoneoftheintelligenthomecontrolsystem.ControlmethodusingacomputernetworkcombinedwithARM-basedembeddedsystemmicrocontrollersystemscomputernetworksWIN32programmingtechniquestorealizetheswitching-typeappliancecontrol.ThisarticlesystemthroughacombinationofsoftwareandhardwareinordertoexperimentboardforthePhilips2103hardwareplatformtheestablishmentoftheembeddedsystemdevelopmentenvironmenttransplantationofuc/os-core;developedapplicationsoftwareisdividedintomicrocontrollersubsystemPCclientandPCserver-sidethreemodules.Finalizationoftherelevanthardwareandsoftwaredesigndebugtestedfullyachievethedesiredfunctionality.Concludeswithsystemimprovementsprogramsandmeasures.OnthehardwaresidetoprecedeonthePhilipsLPC2103datasheetthroughitspindefinitionoftherelatedcircuitdesignimplementationofthemicrocontrollerserialportcommunicationcomputerdatareceptionandprocessingcircuitrelayswitchandresetcircuitimplementation.OnthesoftwaresideintheDelphi2007toachieveaPCserverandclientfordatatransmissionandprocessingtoenabletheservicetoaspecificcharacteronthereceivingendaftersendingtheappropriatecommandstotheserialport.LPC2103-basedRemoteControlSystemforSmartHomeprovidesafamilyforcommonhouseholdappliancesforremotecontrolofnewideasisaneffectiveattempttoembedandapplications.KeyWords:LPC2103Indy10smarthomesremotecontrol目录TOC\o1-3\h\z\u摘要iAbstractii图目录III表目录1第1章绪论
11.1课题背景
11.2本文研究的内容
11.3项目软硬件分析
11.
3.1硬件分析
21.
3.2软件分析
21.4本文组织结构
21.5本章小结2第2章系统设计方案
42.1设计流程
42.2硬件设计方案
52.3软件设计方案
62.4单片机软件的设计
62.5拟解决的关键问题
62.6本章小结7第3章硬件系统的设计
83.1CPU电路设计
93.2继电器电路设计
143.3串行接口设计
153.4电源电路设计
163.5复位电路设计
173.6本章小结17第4章软件系统的设计
194.1软件功能分析
194.2软件设计流程
194.3PC端远程控制软件
194.4PC机服务端接收软件
224.5本章小结26第5章单片机软件设计
275.1单片机软件功能分析
275.2软件设计流程
285.3单片机指令接收与处理
295.4本章小结34第6章测试
366.1测试方案的设计
366.2测试流程设计
366.
2.1硬件测试
366.
2.2软件设计合理性测试
376.
2.3系统设计的合理性测试
396.3本章小结39第7章总结40图目录TOC\c图图
1.1项目设计方案2图
2.1智能家居系统的总体结构4图
2.2系统整体设计流程5图
2.3硬件电路设计6图
2.4软件设计方案6图
3.1中央处理器及各针脚定义9图
3.2继电器电路设计14图
3.3串口RS232电路设计15图
3.4电源电路设计16图
3.5复位电路设计17图
4.1软件功能模块图19图
4.2Delphi2007中的Indy10插件19图
4.3PC机客户端操作界面20图
4.4服务端PC数据接收、处理过程23图
4.5PC机服务端接收界面24图
5.1单片机数据接收、处理流程28图
6.1硬件测试模块37表目录TOC\h\z\c表表
3.1CPU各针脚定义10第1章绪论
1.1课题背景目前,一些经济比较发达的国家提出了“智能住宅”的概念,住宅智能化是智能家居先导,智能家居是住宅智能化的核心最近国家建设部住宅产业化办公室提出了关于住宅小区智能化的基本概念,即“住宅小区智能化是利用4C即计算机、通讯与网络、自控、IC卡技术
[1],通过有效的传输网络,将多元信息服务与管理、物业管理与安防、住宅智能化系统集成,为住宅小区的服务与管理提供高技术的智能化手段,以期实现快捷高效的超值服务与管理,提供安全舒适的家居环境”随着计算机技术,通信技术和嵌入式系统的发展,智能家居正逐步走进人们的生活一个典型的现代智能家居系统提供安防、家电控制、远程抄表和信息服务等功能
[2]低功率和高性能CPU的发展,为开发智能家居提供了现实可能性其内部构成包括嵌入式处理器、相关支持硬件、嵌入式操作系统以及应用层的软件包等国内的数码屋,在这方面走得比较领先,可以实现6项基本功能,包括家庭安全防范、照明系统控制、环境控制、家电控制、智能化控制、多种途径控制,可以通过手机短信或GPRS
[3]功能实验对家用电器的远程控制,智能家居以嵌入式系统的形式走入了我们的生活根据国内的智能家居的发展趋势,完成本课题的研究
1.2本文研究的内容本文设计并实现了其中的智能家电控制系统采用计算机网络控制方式,结合了基于ARM的嵌入式系统、单片机系统、计算机网络、WIN32编程等技术,实现了对开关型家电的控制系统以Philips2103实验板为硬件平台,建立了嵌入式系统开发环境,移植了uc/os内核;开发了应用软件,分为、单片机子系统、PC客户端和PC服务端三个模块最终完成相关软硬件设计、调试,经测试,完全实现预期功能最后提出系统改进的方案和措施
[4]
1.3项目软硬件分析本文通过客户端PC与服务端PC进行通讯,通过客户端PC发送指令,经过服务端PC的接收与处理,再用串口发送给单片机,单片机接收到指令进行相应的操作,如断电操作等针对智能家居,总结出一个简单易操作的智能家居模型,即把家庭里的一系列设备通过中央电脑来分别控制,比如电源的开关,而中央电脑又可以通过远程计算机发送指令进行相应的操作,设计方案如图
1.2所示,采用C/S模型图
1.2的C/S模型中
[5],中央电脑通过容易实现的串口与单片机进行通讯,单片机接收到指令后进行电路的开关操作图
1.1项目设计方案
1.
3.1硬件分析硬件主要由服务端PC、客户端PC和Philips2103实验板构成选用LPC2103是因为LPC2103是基于一个支持实时仿真的ARM7TDMI-SCPU,并带有8kB和32kB嵌入的高速Flash存储器由于LPC2103非常小的尺寸和极低的功耗,它们非常适合于那些将小型化作为主要要求的应用,多个UART、SPI到SSP和2个I2C总线组成的混合串行通信接口和片内2kB/4kB/8kB的SRAM一起作用,可使得LPC2103非常适合用来实现通信网关和协议转换器、数学协处理器以及足够大空间的缓冲区的强大处理功能
[6]
1.
3.2软件分析PC端软件设计分为客户端PC软件和服务端PC软件两个模块,客户端PC发送指令,服务端PC接收指令并发送相应的开与关指令给单片机
1.4本文组织结构本文首先介绍总体的系统设计方案,然后分硬件系统的设计、软件系统的设计和单片机软件的设计这三个方面来具体说明最后,对整个系统进行测试,并归纳总结全文
1.5本章小结本章简要地阐述了本论文的课题背景,包括国内外智能家居应用于生活的发展程度和趋势、智能家居影响生活的应用,提出本论文的写作目的和构成本论文提出的基于C/S模型的智能家居远程控制系统的三个组成部分第2章系统设计方案智能家居系统总体结构如图
2.1所示,其中LPC2103基于一个支持实时仿真的ARM7TDMI-SCPU,并带有8kB和32kB嵌入的高速Flash存储器128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行这可以使得中断服务程序和DSP算法中重要功能的性能较Thumb模式提高30%对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小
[7]由于LPC2103非常小的尺寸和极低的功耗,它们非常适合于那些将小型化作为主要要求的应用,多个UART、SPI到SSP和2个I2C总线组成的混合串行通信接口和片内2kB/4kB/8kB的SRAM一起作用,可使得LPC2103非常适合用来实现通信网关和协议转换器、数学协处理器以及足够大空间的缓冲区的强大处理功能而多个32位和16位的定时器、一个经改良后的10位ADC、PWM特性(通过所有定时器上的一个输出匹配来实现)和32个快速GPIO(含有多达9个边沿或电平有效的外部中断管脚)使它们特别适用于工业控制和医疗系统图
2.1智能家居系统的总体结构
2.1设计流程系统整体设计流程如图
2.2所示,由硬件电路设计、PC端程序设计、单片机程序设计和测试四个部分组成其中,硬件电路设计分为CPU电路设计、继电器设计、串口设计、电源电路设计和复位电路五个部分构成;PC端程序设计由客户端PC程序和服务端PC程序构成;最后进行系统的整体测试图
2.2系统整体设计流程
2.2硬件设计方案硬件系统主要由Philips2103实验板、PC电脑2台、串口数据线和用电器构成Philips2103实验板的硬件电路设计如图
2.4所示,由CPU电路设计、继电器设计、串口设计、电源电路设计和复位电路设计五部分构成图
2.3硬件电路设计
2.3软件设计方案如图
2.4所示,软件设计方案主要由客户端PC软件和服务端PC软件两个部分构成图
2.4软件设计方案
2.4单片机软件的设计通过单片机的编码实验单片机对指令的接收与处理,以实现预期的功能目标
2.5拟解决的关键问题针对智能家居的特点,要合理地完善计算机客户端与服务端的通讯方式、出错控制和中央电脑与单片机的通讯方式、人工校验,以保证系统可以可靠、稳定地运行
2.6本章小结本章主要分析了目前智能家居的形势和提出硬、软件协同设计的思想以达到本项目设计的顺利实现根据自己的设计思想,作出硬件、软件分析并在此基础上进行硬件设计、软件设计和测试第3章硬件系统的设计C/S模型的智能家居模型,需要硬件系统对从PC客户端发来的数据有一个即时的分析和处理,对系统处理的可靠性和即时性很高的要求Philips的LPC2103芯片被广泛地应用于各嵌入式系统的设计,可以满足本系统的要求基于本项目的软件系统的特征,硬件平台需要需要具备以下功能
[8]
1.针对实时数据的处理需求,选用PhilipsLPC2103芯片作为中央处理器
2.针对系统根据接收到的指令进行开关的开与断,要求一个继电器电路
3.针对ARM实验板接收数据的需求,硬件平台必须具备2个串行接口
4.为了能使软件系统持续稳定的工作,需要一个5V的直流电源
5.任何的硬件系统必备的一个模块就是复位电路复位电路的设计为硬件系统和软件系统在运行过程中出现的异常情况提供一个可靠、快捷的处理方式
3.1CPU电路设计图
3.1中央处理器及各针脚定义如图
3.1所示,本硬件电路板采用PhilipsLPC2103芯片为中央处理器主要特性
1.16/32位ARM7TDMI-S处理器,极小型LQFP48封装
2.2kB/4kB/8kB的片内静态RAM,8kB/16kB/32kB的片内Flash程序存储器,128位宽的接口/加速器使其实现了70MHz的高速操作
3.通过片内Boot-loader软件实现在系统/在应用编程(ISP/IAP)Flash编程时间1ms可编程256字节,单个Flash扇区擦除或整片擦除只需400ms
4.EmbeddedICERT通过片内RealMonitor软件来提供实时调试
5.10位的A/D转换器含有8个模拟输入,每个通道的转换时间低至
2.44μs,专用的结果寄存器使中断开销降到最低
6.2个32位的定时器/外部事件计数器,具有7路捕获和7路比较通道
7.2个16位的定时器/外部事件计数器,具有3路捕获和7路比较通道
8.低功耗实时时钟(RTC),有独立的供电电源和专门的32kHz时钟输入
9.多个串行接口,包括2个UART(16C550),2个快速I2C总线(400kbits/s)以及带缓冲和可变数据长度功能的SPI和SSP
10.向量中断控制器,可配置优先级和向量地址
11.多达32个可承受5V的通用I/O口
12.高达13个边沿或电平有效的外部中断管脚
13.通过可编程的片内PLL
[9](可能的输入频率范围10MHz~25MHz)可实现最大为70MHz的CPU时钟频率,设置时间为100us
14.片内集成的振荡器,工作在1MHz~25MHz的外部晶体下
15.节电模式包括空闲模式、RTC有效的睡眠模式和掉电模式
16.通过外设功能的单独使能/禁止和调节外设时钟来实现功耗的最优化
17.通过外部中断或RTC将处理器从掉电模式中唤醒LPC2103各针脚的功能如表1所示表
3.1CPU各针脚定义续表
3.1续表
3.1续表
3.1续表
3.
13.2继电器电路设计图
3.2继电器电路设计继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”故在电路中起着自动调节、安全保护、转换电路等作用如图
3.2所示电路是当输入量达到规定值时,使被控制的输出电路导通或断开的电器继电器具有动作快、工作稳定、使用寿命长、体积小等优点广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合这样吸合、释放,从而达到了在电路中的导通、切断的目的对于继电器的“常开、常闭”触点,可以这样来区分继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”本系统采用普通额定电压12V,5针脚的光敏继电器
3.3串行接口设计图
3.3串口RS232电路设计
[10]如图
3.3所示,串口接口电路采用SP3222E/3232E芯片分别与串口1和串口2中的URXD
0、UTXD
0、RXD
0、TXD0相连,以实现数据的发送与接收SP3222E/3232E系列是RS232收发器对便携式或手持式应用如笔记本或掌上型电脑的一种解决方案SP3222E/3232E系列有一个高效的电荷泵,工作电压为
3.3V时只需
0.1μF电容就可进行操作电荷泵允许SP3222E/3232E系列在+
3.3V到+
5.0V内的某个电压下发送符合RS-232的信号SP3222E/3232E系列是一个2驱动器/2接收器的器件,适用于便携式或手持式设备(如笔记本或掌上型电脑)SP3222E/3232E器件的ESD保护使得驱动器和接收器的管脚可承受±15kV人体放电模式和IEC1000-4-2气隙放电模式SP3222E器件包含一种低功耗关断模式,该模式下器件的驱动器输出和电荷泵被禁止关断状态下,电源电流低于1μA
[11]
3.4电源电路设计图
3.4电源电路设计如图
3.4所示,电源电路使用一个AS
11173.3V芯片和一个AS
11171.8V芯片完成主要功能AS1117是一款低功耗的稳压器件,能够满足
2.85V的固定输出电压和800mA的输出电流,并符合支持SCSI-II规格该芯片是SCSI总线和便携式计算机中电池供电稳压的理想选择AS1117功能强大,工作时满负荷下具有非常低的的静态电流和非常低的压降AS1117可作为可满足的
1.5V,
2.5V,
3.0V,
3.3V和
5.0V输出电压的稳压需求
3.5复位电路设计图
3.5复位电路设计如图
3.5所示,复位电路由一个MAX811芯片与一个RESET重置键构成MAX811是低功率微处理器监控电路,用于5V或3V供电的微处理器或数字系统的电源监视,具有防抖动人工复位输入MAX811具有/RESET输出(VCC降至1V仍保持有效),采用4脚SOT-143封装
3.6本章小结本章主要介绍硬件平台的设计需求、外设接口电路,以及设计思路对系统硬件采用的LPC2103CPU芯片、12V-5PIN光敏继电器、SP3222E/3232E串口芯片、AS1117的电源稳压芯片、MAX811的复位电路芯片分别作了特性说明,并在此基础上完成电路设计整个电路设计可靠性高,通过CPU电路、继电器电路、串口电路、电源电路和复位电路,完成系统硬件实验版的五个主要电路的设计第4章软件系统的设计
4.1软件功能分析服务端软件主要完成接收从客户端PC发送来的指令,加以分析处理之后,发送相应的指令给单片机系统,以实现客户端PC要求的功能
4.2软件设计流程PC端软件设计分为客户端PC软件和服务端PC软件两个模块,如图
4.1所示,客户端PC发送指令,服务端PC接收指令并发送相应的开与关指令给单片机图
4.1软件功能模块图
4.3PC端远程控制软件在Delphi2007中的Indy10插件的功能非常强大,见图
4.2,通过它们可以非常简单、快速、高效地开发网络应用程序
[12]图
4.2Delphi2007中的Indy10插件客户端运行指定的Client程序,服务端运行指定的Server程序,并在Client中指定Server端的IP地址,使Client发送的数据可以正确地被Server接收并处理
[13]图
4.3PC机客户端操作界面在客户端PC上发送特定的指令到服务端PC上,由服务端PC处理命令作出相应的操作通过TidTCPClient控件来实现指令的发送关键代码procedureTForm
1.SendInfinf:string;begintryIdTCPClient
1.IOHandler.WritelnCmd;
[14]exceptifMessageBoxForm
1.HandlePChar服务端已断开是否重连PChar系统提示1=1thenbeginIdTCPClient
1.IOHandler.Close;//清除原来发送的命令否则在发送命令失败后不能重新连接到服务端IdTCPClient
1.Disconnect;FormCreateForm1;endelsebeginApplication.Terminate;Exit;end;end;end;procedureTForm
1.Button1ClickSender:TObject;beginSendinfopencom;//打开串口end;procedureTForm
1.Button2ClickSender:TObject;beginSendinfclosecom;//关闭串口end;procedureTForm
1.Button3ClickSender:TObject;beginSendinfopenno1;//发送指令打开1号开关end;procedureTForm
1.Button4ClickSender:TObject;beginSendinfcloseno1;//发送指令关闭1号开关end;procedureTForm
1.Button5ClickSender:TObject;beginSendinfopenno2;//发送指令打开2号开关end;procedureTForm
1.Button6ClickSender:TObject;beginSendinfcloseno2;//发送指令关闭2号开关end;procedureTForm
1.Button11ClickSender:TObject;beginSendinfreadstatus1;//读取1号开关状态end;procedureTForm
1.Button13ClickSender:TObject;beginSendinfreadstatus2;//读取2号开关状态end;procedureTForm
1.Button12ClickSender:TObject;beginSendInfedit
1.Text;//发送16进制控制命令end;end.
4.4PC机服务端接收软件如图
4.5所示,服务端PC数据接收、处理过程分为判断是否为6个指令中的一个并采取相应的操作图
4.4服务端PC数据接收、处理过程图
4.5PC机服务端接收界面如图
4.5所示,本系统服务端PC机上采用Text控件用来显示接收自客户端PC的指令服务端PC软件完成接收从客户端PC通过TidTCPClient控件发送的命令的功能服务端PC软件使用TidTCPServer控件来接收命令使用ListBox控件显示从客户端PC接收到的命令
[15]关键代码procedureReceiveCMD;procedureWriteComCommand:DWORD;varMode:string;AppDir:string;Cmd:string;implementation{$R*.dfm}procedurefillstructcontrol:PMixerControl;varCdetails:tMIXERCONTROLDETAILS;beginCdetails.cbStruct:=SizeOfcdetails;cdetails.dwControlID:=Control.dwControlID;cdetails.cbDetails:=SizeOfInteger;cdetails.hwndOwner:=0;end;procedureReceiveCmd;beginwhileStepInReceiveCmddo//在TForm
2.FormCloseQuery置False退出线程beginifReceiveOrNot=truethen//在TForm
2.IdTCPServer1Execute置Truebegin//在创建线程和下面置Falsetext
1.text:=cmd;接收到客户端的指令后,服务端PC使用MSComm控件通过串口与LPC2103实验版进行通讯关键代码caseCmdofopencom:beginMscomm
1.PortOpen:=true;//打开串口Mscomm
1.InputMode:=comInputModeText;end;‘closecom’:beginMscomm
1.PortOpen:=false;//关闭串口Mscomm
1.DTREnable:=false;Mscomm
1.RTSEnable:=false;end;openno1:Mscomm
1.Output:=a;‘closeno1’:Mscomm
1.Output:=b;‘openno2’:Mscomm
1.Output:=c;‘closeno2’:Mscomm
1.Output:=d;‘readstatus1’:Mscomm
1.Output:=e;‘readstatus2’:Mscomm
1.Output:=f;end;Sleep10;end;end;
4.5本章小结本章主要进行了服务端PC和客户端PC的软件编码由客户端PC通过TidTCPClient控件发送特定的指令到服务端PC,服务端PC用TidTCPCServer控件解析由客户端PC发送的指令,服务端PC根据接收到的指令对串口写入特定的字符,以达到控制单片机继电器的目的
[16]第5章单片机软件设计
5.1单片机软件功能分析单片机软件完成对从服务端PC发送过来的指令的读取、分析并作相应的操作由根据串口指令并作出相应操作的主程序、初始化串口子程序、读取从串口发送来的数据子程序和发送字符到串口子程序组成
5.2软件设计流程图
5.1单片机数据接收、处理流程如图
5.1所示,处理器软件主要完成数据接收和处理的功能
[17]从服务端PC机发送开和关的指令到串口,处理器软件触发中断,读取串口数据,如果指令是开,置CPU的SW_OUT0针脚为启用,使继电器实现通路,打开连接在实验版上的电器;如果指令是关,置CPU的SW_OUT0针脚为关闭,使继电器实现断路,关闭连接在实验板上的电器
5.3单片机指令接收与处理子程序初始化串口
[18]关键代码DWORDUARTInitDWORDbaudrate{DWORDFdiv;U0LCR=0x83;/*8bitsnoParity1Stopbit*/Fdiv=Fpclk/16/baudrate;/*baudrate*/U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;/*DLAB=0U0FCR=0x07;/*EnableandresetTXandRXFIFO.*/ifinstall_irqUART0_INTvoid*UART0Handler==FALSE{returnFALSE;}U0IER=IER_RBR|IER_THRE|IER_RLS;/*EnableUART0interrupt*/returnTRUE;}子程序读取从串口发送来的数据关键代码voidUART0Handlervoid__irq{BYTEIIRValueLSRValue;BYTEDummy;IIRValue=U0IIR;//UART0中断标识寄存器U0IIRIIRValue=1;/*skippendingbitinIIR*/IIRValue=0x07;/*checkbit1~3interruptidentification*/ifIIRValue==IIR_RLS/*ReceiveLineStatus接收线状态*/{LSRValue=U0LSR;//UART0线状态寄存器(U0LSR/*ReceiveLineStatus*/ifLSRValueLSR_OE|LSR_PE|LSR_FE|LSR_RXFE|LSR_BI//各种错误情况{/*Thereareerrorsorbreakinterrupt*//*ReadLSRwillcleartheinterrupt*/UART0Status=LSRValue;Dummy=U0RBR;/*DummyreadonRXtoclearinterruptthenbailout*/VICVectAddr=0;/*AcknowledgeInterrupt*/return;}ifLSRValueLSR_RDR/*ReceiveDataReady*/{/*IfnoerroronRLSnormalreadysaveintothedatabuffer.*//*Note:readRBRwillcleartheinterrupt*/UART0Buffer[UART0Count]=U0RBR;UART0Count++;ifUART0Count==BUFSIZE{UART0Count=0;/*bufferoverflow*/}}}elseifIIRValue==IIR_RDA/*ReceiveDataAvailable接收数据可用*/{/*ReceiveDataAvailable*/UART0Buffer[UART0Count]=U0RBR;UART0Count++;ifUART0Count==BUFSIZE{UART0Count=0;/*bufferoverflow*/}}elseifIIRValue==IIR_CTI/*Charactertimeoutindicator字符超时指示*/{/*CharacterTime-outindicator*/UART0Status|=0x100;/*Bit9astheCTIerror*/}elseifIIRValue==IIR_THRE/*THREtransmitholdingregisterempty*/{/*THREinterrupt*/LSRValue=U0LSR;/*CheckstatusintheLSRtoseeifvaliddatainU0THRornot*/ifLSRValueLSR_THRE{UART0TxEmpty=1;}else{UART0TxEmpty=0;}}VICVectAddr=0;/*AcknowledgeInterrupt*/}子程序发送字符到串口关键代码voidUARTSendBYTE*BufferPtrDWORDLength{whileLength!=0{while!UART0TxEmpty0x01;/*THREstatuscontainvaliddata*/U0THR=*BufferPtr;UART0TxEmpty=0;/*notemptyintheTHRuntilitshiftsout*/BufferPtr++;Length--;}return;}voidPrintf_UARTBYTE*str{UARTSendstrstrlenstr;}主程序根据串口指令并作出相应的操作关键代码voidDelayNSintdly{inti;for;dly0;dly--fori=0;i50000;i++;}voidEINT2_Handlervoid__irq//键盘中断处理{EXTINT=EINT2;/*clearinterrupt*/IENABLE;/*handlesnestedinterrupt*/Int_Flag=1;i=++i%2;ifi{IOSET=LED;}else{IOCLR=LED;}IDISABLE;VICVectAddr=0;/*AcknowledgeInterrupt*/}DWORDEINTInitvoid{SCS=0;/*setGPIOxtouseregularI/O*/EXTMODE=EINT2_EDGE;/*INT2edgetrigger*/EXTPOLAR=EINT2_RISING;/*INT2isrisingedge*/ifinstall_irqEINT2_INTvoid*EINT2_Handler==FALSE{returnFALSE;}returnTRUE;}intmainvoid{PINSEL0=0x40051555;
[20]init_VIC;
[20]init_timer;//初始化定时器enable_timer0;//定时器使能UARTInit9600;/*baudratesetting*/I2C_Init11000000;RTCInit;ifinstall_irqRTC_INTvoid*RTCHandler==FALSE{while1;}RTCSetAlarmMaskAMRDOW|AMRDOY;CIIR=0;RTCStart;Printf_UART\n\r;Printf_UARTProgramstartshere...;ifEEPROM_Write0x00123Printf_UARTWriteEEPROMOK\r\n;elsePrintf_UARTWriteEEPROMFailed\r\n;i=0;IODIR=LED|SW_OUT0|SW_OUT1;EINTInit;keyscan=0;Int_Flag=0;ifU0THR==aIOSET=SW_OUT0;elseifU0THR==bIOCLR=SW_OUT0;//IOCLR=SW_OUT0;return0;}Philips2103芯片的实验板通过串口RS232与本机相连,使用Keil编写相应代码使单片机响应PC主机传输的指令
5.4本章小结本章主要使用KEIL软件进行单片机软件的编码,使单片机能够接收并处理由PC服务端通过串口发送的数据,根据相应的数据进行继电器的开与关,以实现对用电器的控制第6章测试
6.1测试方案的设计本项目从硬件电路到软件系统的设计、实现涵盖了嵌入式系统开发的各个方面针对这两个方面,本项目设计人员从以下几个角度进行测试
1.硬件测试硬件设计包括实验板电源是否稳定;电路设计是否完善;串口是否正常工作;USB转串口线是否正常使用等4个方面硬件测试将从以上几个方面详细进行
2.软件设计合理性软件设计合理性将采取白盒测试,客户端PC机和服务端PC机收发数据是否正常;服务端PC与实验板通讯是否正常;服务端PC接收到指令后是否正确处理;实验板接收到指令后是否正常处理
6.2测试流程设计
6.
2.1硬件测试硬件测试分为两个部分,第一部分,是用手动的视觉方法检测方法查看电路板是否存在以下问题,如元器件缺失、元器件故障、元器件存在安装误差、元器件失效、沾锡不良、桥接、焊锡不足、焊料过多形成锡球、形成焊接针孔气泡、有污染物、不适当的焊盘、极性错误、引脚浮起、引脚伸出过长、出现冷焊接点、焊锡过多、;焊锡空洞、有吹气孔和印制线的内圆填角结构差第二部分,是实际测试各主要模块功能是否正常,如图
6.1所示,具体分为以下四部分
1.实验板电源是否稳定;
2.电路设计是否完善;
3.串口是否正常工作;
4.USB转串口线是否正常使用图
6.1硬件测试模块下面分别对各模块进行测试
1.实验板电源本项目的硬件系统需要提供5V的电源本项目采用开关电源,经过长时间的使用,该开关电源可以提供给电路板稳定的电压电路5V转3V电压采用AS1117低压差线性调压器其压差在
1.2V输出,负载电流800mA时为
1.2V输出端加10UF钽电容来改变瞬间响应和稳定性经测量,3V电源可以稳定输出
2.电路设计是否完善本系统布线合理,CPU电路、继电器电路、复位电路、串口电路均工作正常
3.串口直接通过打印文字到计算机屏幕的程序测试串口使用正常
4.USB转串口USB转串口是通过Keil生成HEX文件,通过PC串口下载到电路板上经测试,可以正常下载程序
6.
2.2软件设计合理性测试客户端PC机和服务端PC机收发数据是否正常如图
6.
2、
6.3所示,服务端PC机接收到的数据通过TEXT控件显示,正常通讯图
6.2PC远程控制端发送指令图
6.3PC服务端接收指令服务端PC与实验板通讯是否正常如图
6.4所示,服务端PC发送特定字符,实验板接收后返回服务端屏幕,通讯正常图
6.4PC服务端与单片机通讯
6.
2.3系统设计的合理性测试嵌入式系统是软硬件协同完成某一功能或者某些功能的一个完成的系统一般包括硬件电路、操作系统、板级驱动器以及应用程序硬件系统,采用PhilipsLPC2103芯片为中央处理器,LPC2103基于一个支持实时仿真的ARM7TDMI-SCPU,并带有8kB和32kB嵌入的高速Flash存储器128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行足够满足本软件系统稳定运行的需要为了能方便的实现客户端PC和服务端PC的通讯,加快系统的开发时间,本项目选择Delphi2007中的TidTCPServer和TidTCPClient控件来实验客户端和服务端的数据通讯,让数据通讯更可靠本项目的软件设计主要参考Windows平台上测试软件的功能模块,根据本项目特定的硬件条件,建立模型,并设计出适合本项目平台的测试软件功能模块最终实现对指令发送、处理等几个重要的功能
6.3本章小结本章主要介绍了系统软硬件方面的性能测试及测试结果,并对其中软件、硬件方面存在的优缺点进行了评说鉴于项目开发人员专业技术水平限制,在软件系统界面设计方面需要更多的考虑人性化的设计,更符合操作者的生理习惯第7章总结总结全文,本文取得的主要研究成果如下通过同一局域网内客户端PC的远程控制,服务端PC正确接收指令并发送相应指令给单片机,单片机能正确接收指令,以实现与单片机相连设备的开、断电在此基础上,可以进一步修改成B/S模型,方便手机、任意PC机来控制远程服务器实现远程控制的功能;或修改成可以增加GSM模块,增加手机短信发送指令的功能;增加多路控制,并且可以分别控制单一路的电源通断存在的问题在硬件设计方面,本项目的电路采用自动设计,对电路设计的传输性效应或其他不利因素考虑得较少,对于电路的合理部局也考虑有限,希望在以后的经验累积过程中不断改善在软件设计方面,服务端PC发送的指令会由于串口通讯的不可靠性发生数据丢失,可以采用校验码的方式减少这一情况的发生,如奇偶校验或者在指令前增加特殊符号软件测试中,由于时间限制,未能长时间不间断地测试硬件和软件系统,也未多种测试方式交叉测试应用中,本系统还是很多不足之处,在软件设计的易用性方面,可以设计出更加符合人们使用习惯的软件界面,使用户可以快速上手,可以添加操作记录和服务端指令反馈数据收发的可靠性方面可以增加数据检验,使指令发送出错率大大减小使用范围现在还有很多限制,现在主要应用于固定IP,如果服务端PC的IP地址更换,要重新编译客户端PC软件可以增加输入框,让用户自行输入IP地址连接服务端PC参考文献
[1]余启家殷瑞祥.基于ARM及GPRS的智能家居系统的实现[J].智能家居20085:29-
32.
[2]郭利锋.论智能家居网络系统的应用现状及发展前景[J].科技信息200815:
61.
[3]戴刚高洋陈煜华岳希亮.基于ARM的智能家居远程控制系统的硬件设计[J].世界电子元器件20078:47-
49.
[4]王艺刘方林晓辉.基于GPRS的嵌入式智能家居终端的设计与实现[J].LC技术应用200例20079:23-25
[5]刘旭东.智能家居系统相关技术及发展趋势[J].科技信息导报20087:
6.
[6]饶文碧周剑波张露.智能家居远程控制系统的设计[J].软件导刊20082:28-
29.
[7]周立功.PHILIPS单片16/32位微控制器-LPC2101/2102/2103[EB/OL].http://www.zlgmcu.com/philips/arm/lpc
2101.asp
2005.
10.
10.
[8]郭占龙.基于单片机的智能家居控制系统的设计[J].PLC技术应用200例200723:115-
116.
[9]周立功.深入浅出ARM7:LPC213x\214x[M].北京:北京航空航天大学出版社2006:
20.
[10]周立功.+
3.0V到+
5.5VRS-232收发器—SP3222E/3232E[EB/OL].http://www.zlgmcu.com/Sipex/RS232/SP3222E.asp
2007.
1.
19.
[11]刘鹏韩中华王琦.基于单片机的智能家居环境状况监控器[J].科技广场20083:188-
190.
[12]周立功.深入浅出ARM7:LPC213x\214x[M].北京:北京航空航天大学出版社2006:25-
29.
[13]颜金传陈德全黄平山.Delphi2007典型开发实例[M].北京:电子工业出版社2009:
15.
[14]颜金传陈德全黄平山.Delphi2007典型开发实例[M].北京:电子工业出版社2009:
278.
[15]梁水,賽奎春.Delphi开发典型模块大全[M].北京人民邮电出版社2009:
79.
[16]杨长春.Delphi程序设计教程(第2版)[M].北京:清华大学出版社2008:
220.
[17]王为青,程国钢.单片机KeilCx51应用开发技术[M].北京人民邮电出版社2007:89-
92.
[18]徐爱钧,彭秀华.KeilCx51V
7.0单片机高级语言编程与μVision2应用实践[M].北京电子工业出版社2008:33-
35.
[19]周立功.深入浅出ARM7:LPC213x\214x[M].北京:北京航空航天大学出版社2006:29-
30.
[20]周立功.深入浅出ARM7:LPC213x\214x[M].北京:北京航空航天大学出版社2006:
29.。