当前位置:文档之家› 智能家居控制系统课程设计报告

智能家居控制系统课程设计报告

XXXXXXXXXXXXXX嵌入式系统原理及应用实践—智能家居控制系统(无操作系统)学生姓名XXX学号XXXXXXXXXX所在学院XXXXXXXXXXX专业名称XXXXXXXXXXX班级XXXXXXXXXXXXXXXXXXXXXXXXXXXXX指导教师成绩XXXXXXXXXXXXX二○XX年XX月综合实训任务书目录前言 (1)1 硬件设计 (1)ADC转换 (3)SSI控制数码管显示 (3)按键和LED模块 (5)PWM驱动蜂鸣器 (6)2 软件设计 (7)ADC模块 (7)ADC模块原理描述 (7)ADC模块程序设计流程图 (8)SSI 模块 (8)SSI模块原理描述 (9)SSI模块程序设计流程图 (10)定时器模块 (10)定时器模块原理描述 (10)定时器模块流程图 (11)DS18B20模块 (11)DS18B20模块原理描述 (11)DS18B20模块程序设计流程图 (12)按键模块 (13)按键模块原理描述 (13)按键模块程序设计流程图 (13)PWM模块 (13)PWM模块原理描述 (14)PWM模块程序设计流程图 (14)主函数模块 (14)主函数模块原理描述 (14)主函数模块程序设计流程图 (15)3.验证结果 (15)操作步骤和结果描述 (15)总结 (16)智能家居控制系统设计前言当前,随着科学技术的发展,计算机、嵌入式系统和网络通信技术逐步深入到各个领域,使得住宅和家用电器设备网络化和智能化,智能家居已经开始出现在人们的生活中。

智能家居控制系统(smarthome control systems,简称SCS)。

它以住宅为平台,家居电器及家电设备为主要控制对象,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施进行高效集成,构建高效的住宅设施与家庭日程事务的控制管理系统,提升家居智能、安全、便利、舒适,并实现环保节能的综合智能家居网络控制系统平台。

智能家居控制系统是智能家居核心,是智能家居控制功能实现的基础。

通过家居智能化技术,实现家庭中各种与信息技术相关的通讯设备、家用电器和家庭安防装置网络化,通过嵌入式家庭网关连接到一个家庭智能化系统上进行集中或异地的监控和家庭事务管理,并保持这些家庭设施与住宅环境的和谐与协调。

家居智能化所提供的是一个家居智能化系统的高度安全性、生活舒适性和通讯快捷性的信息化与自动化居住空间,从而满足21世纪新秀社会中人们追求的便利和快节奏的工作方式,以及与外部世界保持安全开放的舒适生活环境。

本文以智能家居广阔的市场需求为基础,选取智能家居控制系统为研究对象。

1 硬件设计本系统是典型的嵌入式技术应用于测控系统,以嵌入式为开发平台,系统以32位单片机LM3S8962为主控制器对各传感器数据进行采集,经过分析后去控制各执行设备。

硬件电路部分为:微控制器最小系统电路、数据采集电路(光敏电路、温度传感器、霍尔传感器)、输出控制电路(继电器、蜂鸣器、发光二极管)和八位LED数码管显示组成。

LM3S8962布局如图1-1所示,LM3S8962核心板外围电路如图1-2所示。

图 LM3S8962布局图S1C6104C16104C19104VDD3.3R21M VBAT C24104 图1-2 LM3S8962核心板外围电路ADC 转换数模转换(ADC )外设用于将连续的模拟电压转换成离散的数字量。

StellsrisADC 模块的转换分辨率为10位,并最多可支持8个输入通道以及一个内部温度传感器。

ADC 模块含有一个可编程的序列发生器,它可在无需控制器的干扰的情况下对多个模拟输入进行采样。

Stellaris 系列ARM 集成有一个10位的ADC 模块,支持8个输入通道,以及一个内部温度传感器,ADC 模块含有一个可编程的序列发生器,可在无需控制器干涉的情况下对多个模拟输入源进行采样。

每个采样序列队完全可配置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。

如输入源和输入模式,采样结束时的中断产生,以及指示序列最后一个采样的指示符。

图为ADC 输入测试电路示意图。

Stellaris 系列MCU 的ADC 模块采用模拟电源VDDA/GNDA 供电。

RW1是音频电位器,输出电压在0V ~之间,并带有手动旋钮,便于操作。

R1和C1组成简单的RC低通滤波电路,能够滤除寄生在由RW1产生的模拟信号上的扰动。

图 A/D转换电路原理图SSI控制数码管显示SSI模块驱动数码管显示,对于Texas Instruments同步串行帧格式,在发送每帧之前,每遇到SSICLK的上升沿开始的串行时钟周期时,SSIFss管脚就跳动一次。

在这种帧格式中,SSI和片外从器件在SSICLK的上升沿驱动各自的输出数据,并在下降沿锁存来自另一个器件的数据。

不同于其它两种全双工传输的帧格式,在半双工下工作的MICROWIRE格式使用特殊的主-从消息技术。

在该模式中,帧开始时向片外从机发送8位控制消息。

在发送过程中,SSI没有接收到输入的数据。

在消息已发送之后,片外从机对消息进行译码,并在8位控制消息的最后一位也已发送出去之后等待一个串行时钟,之后以请求的数据来响应。

返回的数据在长度上可以是4~16位,使得在任何地方整个帧长度为13~25位。

图显示了一次传输的Texas Instruments同步串行帧格式。

在该模式中,任何时候当SSI空闲时,SSICLK和SSIFss被强制为低电平,发送数据线SSITx为三态。

一旦发送FIFO的底部入口包含数据,SSIFss变为高电平并持续一个SSICLK周期。

即将发送的值也从发送FIFO传输到发送逻辑的串行移位寄存器中。

在SSICLK的下一个上升沿,4~16位数据帧的MSB从SSITx管脚移出。

同样地,接收数据的MSB也通过片外串行从器件移到SSIRx管脚上。

然后,SSI和片外串行从器件都提供时钟,供每个数据位在每个SSICLK的下降沿进入各自的串行移位器中。

在已锁存LSB之后的第一个SSICLK上升沿上,接收数据从串行移位器传输到接收FIFO。

图 TI同步串行帧格式(单次传输)图 TI同步串行帧格式(连续传输)图显示了背对背(back-to-back)传输时的Texas Instruments同步串行帧格式。

图为LM3S8962实验板上数码管通过SSI端口连接的电路原理图。

图 SSI端口的数码管电路原理图按键和LED模块图和图分别为LM3S8962实验板上的LED和KEY电路原理图,当有按键按下去时,与KEY对应的端口输出低电平,在程序中,当读取到对应的端口输入低电平时,表示有键被按下了,然后将与之关联的LED输出高电平。

图为LED灯模块。

此模块中有4颗LED灯,阳极分别通过四个保护电阻连接电源正极,阴极分别和PB0~PB3相接,当需要点亮某颗发光二极管时,只需要给相应的引脚写低电平就行了。

四颗发光二极管的供电经过了一个跳线帽J3,使用此模块前需要将此跳线帽盖上。

图为按键模块的原理图。

K1~K4按键一端与公共地相接,另一端与接有高电平的上拉电阻以及MCU的PB4~PB7相接。

当按键断开时,PB4~PB7读取到的是高电平,当有按键闭合时,对应的引脚便会读到低电平,以判断出被按下的键,再有MCU作出相应的相应。

图 KEY电路原理图图 LED电路原理图PWM驱动蜂鸣器PWM,脉冲宽度调制,是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。

在脉冲调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编码。

PWM发生器模块产生两个PWM信号,这两个PWM信号可以是独立的信号,也可以是一对插入了死区延迟的互补信号。

PWM发生器模块的输出信号在传递到器件管脚之前由输出模块管理。

LM3S8962实验板驱动直流电机和步进电机的电路原理图如图所示,在本电路图中,引出了LM3S8962处理器的六路PWM输出,其中PWM0—PWM3用于驱动四相八拍步进电机,PWM4驱动直流电机,PWM5驱动无源蜂鸣器。

图蜂鸣器电路原理图2 软件设计软件设计主要控制光敏电阻电压采集处理与控制部分、温度采集处理与控制部分、霍尔传感器报警部分和辅助指示部分。

ADC模块数模转换(ADC)外设用于将连续的模拟电压转换成离散的数字量。

StellsrisADC模块的转换分辨率为10位,并最多可支持8个输入通道以及一个内部温度传感器。

ADC模块含有一个可编程的序列发生器,它可在无需控制器的干扰的情况下对多个模拟输入进行采样。

该StellsrisADC提供下列特性:☆最多可支持8个模拟输入通道。

☆单端和差分输入配置。

☆内部温度传感器。

☆最高可以达到1M/秒的采样率。

☆4个可编程采样序列,入口长度1~8,每个序列均带有相应的转换结果GPIO。

☆灵活的触发方式:控制器(软件触发)、定时器触发、模拟比较器触发、GPIO触发、PWM触发。

☆硬件可对多达64个采样值进行平均计算,以便提高ADC转换精度。

☆使用内部3V作为ADC转换参考电压。

☆模拟电源和模拟地跟数字电源和数字地分开。

ADC模块原理描述Stellaris系列ARM集成有一个10位的ADC模块,支持4—8个输入通道,以及一个内部温度传感器。

ADC模块含有一个可编程的序列发生器,可在无需控制器干涉的情况下对多个模拟输入源进行采样。

每个采样序列均对完全可置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。

▽函数ADCSequenceEnable()和ADCSequenceDisable()用来使能和禁止一个ADC采样序列。

▽函数ADCSequenceDataGet()用来读取ADC结果FIFO里的数据。

▽函数ADCIntEnable()和ADCIntDisable()用来使能和禁止一个ADC采样序列中断。

▽函数ADCIntStatus()用来获取一个采样序列的中断状态。

程序中通过配置ADC,采集光传感器的光照强度并转换,ADC采样完成后触发中断,在中断中修改采样结束控制变量ADC_EndFlag。

ADC模块程序设计流程图SSI 模块SSI总线系统是一种同步串行接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。

外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D 转换器和MCU等。

SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI 接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。

SSI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

相关主题