ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:23.82KB ,
资源ID:8414745      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8414745.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能家居控制系统课程设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、智能家居控制系统课程设计报告智能家居控制系统课程设计报告 * 嵌入式系统原理及应用实践 智能家居控制系统(无操作系统)学生姓名XXX 学号*XXX 所在学院*XXXX 专业名称*XXXX 班级*XXX *XXXXX 指导教师 成绩 *XXXXXX 二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模块程序设计流程图 (

2、10) 定时器模块 (10) 定时器模块原理描述 (10) 定时器模块流程图 (11) *模块 (11) *模块原理描述 (11) *模块程序设计流程图 (12) 按键模块 (13) 按键模块原理描述 (13) 按键模块程序设计流程图 (13) PWM模块 (13) PWM模块原理描述 (14) PWM模块程序设计流程图 (14) 主函数模块 (14) 主函数模块原理描述 (14) 主函数模块程序设计流程图 (15) 3验证结果 (15) 操作步骤和结果描述 (15) 总结 (16) 智能家居控制系统设计 前言 当前,随着科学技术的发展,计算机、嵌入式系统和网络通信技术逐步深入到各个领域,使得

3、住宅和家用电器设备网络化和智能化,智能家居已经开始出现在人们的生活中。智能家居控制系统(smarthome control systems,简称SCS)。它以住宅为平台,家居电器及家电设备为主要控制对象,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施进行高效集成,构建高效的住宅设施与家庭日程事务的控制管理系统,提升家居智能、安全、便利、舒适,并实现环保节能的综合智能家居网络控制系统平台。智能家居控制系统是智能家居核心,是智能家居控制功能实现的基础。 通过家居智能化技术,实现家庭中各种与信息技术相关的通讯设备、家用电器和家庭安防装置网络化,通过嵌入式家

4、庭网关连接到一个家庭智能化系统上进行集中或异地的监控和家庭事务管理,并保持这些家庭设施与住宅环境的和谐与协调。家居智能化所提供的是一个家居智能化系统的高度安全性、生活舒适性和通讯快捷性的信息化与自动化居住空间,从而满足21世纪新秀社会中人们追求的便利和快节奏的工作方式,以及与外部世界保持安全开放的舒适生活环境。本文以智能家居广阔的市场需求为基础,选取智能家居控制系统为研究对象。 1 硬件设计 本系统是典型的嵌入式技术应用于测控系统,以嵌入式为开发平台,系统以32位单片机*2为主控制器对各传感器数据进行采集,经过分析后去控制各执行设备。 硬件电路部分为:微控制器最小系统电路、数据采集电路(光敏电

5、路、温度传感器、霍尔传感器)、输出控制电路(继电器、蜂鸣器、发光二极管)和八位LED数码管显示组成。*2布局如图1-1所示,*2核心板外围电路如图1-2所示。 图 *2布局图 S1 C6104 C*C*VDD3.3R21M VBAT C* 图1-2 *2核心板外围电路 ADC 转换 数模转换(ADC )外设用于将连续的模拟电压转换成离散的数字量。 StellsrisADC 模块的转换分辨率为10位,并最多可支持8个输入通道以及一个内部温度传感器。ADC 模块含有一个可编程的序列发生器,它可在无需控制器的干扰的情况下对多个模拟输入进行采样。 Stellaris 系列ARM 集成有一个10位的AD

6、C 模块,支持8个输入通道,以及一个内部温度传感器,ADC 模块含有一个可编程的序列发生器,可在无需控制器干涉的情况下对多个模拟输入源进行采样。每个采样序列队完全可配置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。如输入源和输入模式,采样结束时的中断产生,以及指示序列最后一个采样的指示符。 图为ADC 输入测试电路示意图。Stellaris 系列MCU 的ADC 模块采用模拟电源VDDA/GNDA 供电。RW1是音频电位器,输出电压在0V 之间,并带有手动旋钮, 便于操作。R1和C1组成简单的RC低通滤波电路,能够滤除寄生在由RW1产生的模拟信号上的扰动。 图 A/D转换电路原理图

7、 SSI控制数码管显示 SSI模块驱动数码管显示,对于Texas Instruments同步串行帧格式,在发送每帧之前,每遇到SSICLK的上升沿开始的串行时钟周期时,SSIFss管脚就跳动一次。在这种帧格式中,SSI和片外从器件在SSICLK的上升沿驱动各自的输出数据,并在下降沿锁存来自另一个器件的数据。 不同于其它两种全双工传输的帧格式,在半双工下工作的*RE格式使用特殊的主-从消息技术。在该模式中,帧开始时向片外从机发送8位控制消息。在发送过程中,SSI没有接收到输入的数据。在消息已发送之后,片外从机对消息进行译码,并在8位控制消息的最后一位也已发送出去之后等待一个串行时钟,之后以请求的

8、数据来响应。返回的数据在长度上可以是416位,使得在任何地方整个帧长度为1325位。图显示了一次传输的Texas Instruments同步串行帧格式。 在该模式中,任何时候当SSI空闲时,SSICLK和SSIFss被强制为低电平,发送数据线SSITx为三态。一旦发送FIFO的底部入口包含数据,SSIFss变为高电平并持续一个SSICLK周期。即将发送的值也从发送FIFO传输到发送逻辑的串行移位寄存器中。在SSICLK的下一个上升沿,416位数据帧的MSB从SSITx管脚移出。同样地,接收数据的MSB也通过片外串行从器件移到SSIRx管脚上。 然后,SSI和片外串行从器件都提供时钟,供每个数据

9、位在每个SSICLK的下降沿进入各自的串行移位器中。在已锁存LSB之后的第一个SSICLK上升沿上,接收数据从串行移位器传输到接收FIFO。 图 TI同步串行帧格式(单次传输) 图 TI同步串行帧格式(连续传输) 图显示了背对背(back-to-back)传输时的Texas Instruments同步串行帧格式。 图为*2实验板上数码管通过SSI端口连接的电路原理图。 图 SSI端口的数码管电路原理图 按键和LED模块 图和图分别为*2实验板上的LED和KEY电路原理图,当有按键按下去时,与KEY对应的端口输出低电平,在程序中,当读取到对应的端口输入低电平时,表示有键被按下了,然后将与之关联的

10、LED输出高电平。 图为LED灯模块。此模块中有4颗LED灯,阳极分别通过四个保护电阻连接电源正极,阴极分别和PB0PB3相接,当需要点亮某颗发光二极管时,只需要给相应的引脚写低电平就行了。四颗发光二极管的供电经过了一个跳线帽J3,使用此模块前需要将此跳线帽盖上。 图为按键模块的原理图。K1K4按键一端与公共地相接,另一端与接有高电平的上拉电阻以及MCU的PB4PB7相接。当按键断开时,PB4PB7读取到的是高电平,当有按键闭合时,对应的引脚便会读到低电平,以判断出被按下的键,再有MCU作出相应的相应。 图 KEY电路原理图图 LED电路原理图 PWM驱动蜂鸣器 PWM,脉冲宽度调制,是一项功

11、能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。在脉冲调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编码。 PWM发生器模块产生两个PWM信号,这两个PWM信号可以是独立的信号,也可以是一对插入了死区延迟的互补信号。PWM发生器模块的输出信号在传递到器件管脚之前由输出模块管理。 *2实验板驱动直流电机和步进电机的电路原理图如图所示,在本电路图中,引出了*2处理器的六路PWM输出,其中PWM0PWM3用于驱动四相八拍步进电机,PWM4驱动直流电机,PWM5驱动无源蜂鸣器。 图蜂鸣器电路原理图 2 软件设计 软件设计主要控制光敏电阻电压采集处理与控制

12、部分、温度采集处理与控制部分、霍尔传感器报警部分和辅助指示部分。 ADC模块 数模转换(ADC)外设用于将连续的模拟电压转换成离散的数字量。StellsrisADC模块的转换分辨率为10位,并最多可支持8个输入通道以及一个内部温度传感器。ADC模块含有一个可编程的序列发生器,它可在无需控制器的干扰的情况下对多个模拟输入进行采样。 该StellsrisADC提供下列特性: 最多可支持8个模拟输入通道。 单端和差分输入配置。 内部温度传感器。 最高可以达到1M/秒的采样率。 4个可编程采样序列,入口长度18,每个序列均带有相应的转换结果GPIO。 灵活的触发方式:控制器(软件触发)、定时器触发、模

13、拟比较器触发、GPIO触发、PWM触发。 硬件可对多达64个采样值进行平均计算,以便提高ADC转换精度。 使用内部3V作为ADC转换参考电压。 模拟电源和模拟地跟数字电源和数字地分开。 ADC模块原理描述 Stellaris系列ARM集成有一个10位的ADC模块,支持48个输入通道,以及一个内部温度传感器。ADC模块含有一个可编程的序列发生器,可在无需控制器干涉的情况下对多个模拟输入源进行采样。每个采样序列均对完全可置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。 函数ADCSequenceEnable()和ADCSequenceDisable()用来使能和禁止一个ADC采样序列。

14、 函数ADCSequenceDataGet()用来读取ADC结果FIFO里的数据。 函数ADCIntEnable()和ADCIntDisable()用来使能和禁止一个ADC采样序列中断。 函数ADCIntStatus()用来获取一个采样序列的中断状态。 程序中通过配置ADC,采集光传感器的光照强度并转换,ADC采样完成后触发中断,在中断中修改采样结束控制变量ADC_EndFlag。 ADC模块程序设计流程图 SSI 模块 SSI总线系统是一种同步串行接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置*M、网络控制器、LCD显示驱动器、A/D 转换器和MCU等。SPI总线系

15、统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI 接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SSI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 SSI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

16、 SSI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件。 SSI模块原理描述 Stellaris系列ARM的SSI(Synchronous Serial Interface,同步串行接口)是与具有Freescale SPI(飞思尔半导体)、MicroWire(美国国家半导体)、Texas Instruments(德国仪器,TI)同步串行接口的外设器件进行同步串行通信的主机或从机接口。SSI具有以下特征: 主机或从机操作。 时钟位速率和预分频可编程。 独立的发送和接收FIFO,16位宽,8个单元深。 接口独立可编程,以实现Freescale SPI、MicroWire或TI的

17、串行接口。 数据帧大小可编程,范围416位。 内部回环测试模式,可进行诊断/调试测试。 SSI模块的配置由SSIConfigSetExpClk()函数来管理,它主要设置SSI协议、工作模式、位速率和数据宽度。但为了实际的方便,常用函数SSIConfig()代替。 函数SSIDataPut()将把提供的数据放置到特定的SSI模块发送FIFO 中。 函数SSIDataGet()将指定SSI模块的接受FIFO获取接收到的数据。 函数SSIIntEnable()使能单独的一个或多个SSI中断源。 函数SSIIntStatus()获取SSI当前的中断状态。 在使用SSI可通过置位RCGC1寄存器的SSI

18、位来使能SSI外设时钟。针对不同的帧格式,SSI可通过以下步骤进行配置: 确保在对任何配置进行更改之前先将SSICR1寄存器中的SSE位禁止。 SSI引脚配置。 确定SSI为主机还是从机。 通过写SSICR0寄存器来配置时钟预分频除数。 写SSICR0寄存器,实现串行时钟率、协议模式、数据长度配置。 通过置位SSICR1寄存器的SSE位来使能SSI。 通过SSIDR进行读写操作。 SSI模块程序设计流程图 定时器模块 定时器模块原理描述 定时器的工作原理都是对某一特定的时钟进行计数。如系统时钟为6MHz,则定时器每计一次数则为6M分之一秒,如果定时一秒钟,则定时器需要计数6M次。 定时器API

19、分成3组函数,分别执行以下功能:处理定时器配置和控制、处理定时器内容和执行中断处理。 Timer模块的功能在总体上可以分为32位模式和16位模式两大类。在32位模式下,TimerA和TimerB被连在一起形成一个完整的32位计数器,对于Timer 的各项操作,如装载初值、运行控制、中断控制等。在32位模式下,对TimerA 的操作作为整体上的32位控制,而对TimerB的操作无任何效果。在16位模式下,对TimerA的操作仅对TimerA有效,对TimerB的操作仅对TimerB有效,即对两者的操控是完全独立进行的。 函数TimerConfig()用于配置Timer模块的工作模式,即32位或1

20、6位工作模式。函数TimerIntEnable()使能Timer中断。函数TimerLoadSet()设置装载值。函数TimerEnable()使能Timer计数。函数TimerIntStatus()获取当前Timer的中断状态。 程序中使用定时器模块,设置为32位周期定时器,每隔10ms扫描一次数码管: TimerConfigure(TIMER0_BASE,TIMER_CFG_32_BIT_PER); TimerLoadSet(TIMER0_BASE, TIMER_A, *); TimerIntEnable(TIMER0_BASE, TIMER_TIMA_*); / 超时中断对数码管的动态显

21、示,是通过定时器中断的方式来扫描的。因此,涉及到中断服务例程和定时器中断的设置。 定时器模块流程图 *模块 运用*检测温度。若指令成功地*0完成温度测量,数据存储在*的存储器。一个控制功能指挥指示*的演出测温。测量结果将被放置在*内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果*不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。 *模块原理描述 *的1、2、3引

22、脚分别是Vcc(电源正)、DQ(数据输出)和GND(电源地)。*通过引脚2将采集到的数据传输给MCU的PB6引脚,交由MCU 处理。如图所示: 图 *原理图 按键模块 当有按键按下去时,与KEY对应的端口输出低电平,在程序中,当读取到对应的端口输入低电平时,表示有键被按下了,然后将与之关联的LED输出高电平,即可达到实验内容的要求。 按键模块原理描述 按键可用于调控温度上下限的数值。按一下key1键,再按key2,完成了对上限温度的加操作,按key4,完成对下限温度的减操作。按两下key1键,再按key2,完成对上限的减操作,按key4,完成对下限的减操作。当处于上下限温度调节时,数码管前三位

23、显示的不是当前温度,而是上下限温度的数值。 PWM模块 Stellsris系列ARM提供4个PWM发生器模块和一个控制块。每个PWM发生器模块包含1个定时器(16位递减或先递增后递减计数器)、2个比较器、1个PWM信号发生器、1个死区发生器,以及一个中断/ADC触发选择器。而控制模块决定了PWM信号的极性,以及将哪个信号传递到管脚。 PWM发生器模块产生两个PWM信号,这两个信号可以是独立的信号,也可以是一对插入了死区延迟的互补信号。PWM发生器模块的输出信号在传输到器件管脚之前由输出控制模块管理。 Stellsris系列ARM的PWM特性: 4个PWM发生器,产生8路PWM信号。 灵活的PW

24、M产生方法。 自带死区发生器。 灵活可控的输出控制模块。 安全可靠的错误保护功能。 丰富的中断机制和ADC触发。 PWM模块原理描述 脉冲宽度调制(PWM,Pulse-Width Modulation),也简称为脉宽调制,是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。在脉宽调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编码。PWM通常使用在开关电源和电机控制中。 PWM模块程序设计流程图 主函数模块 2.6.1 主函数模块原理描述 每一个程序里面都必须要有一个主函数的存在。开始从主函数开始,结束也在主函数结束。主函数主要功能是可以调用各

25、个模块的函数从而进行程序的运行,当完成各个模块的程序后,从主函数中结束。 2.6.2主函数模块程序设计流程图 3验证结果 操作步骤和结果描述 编写完源程序后,编译源文件,并修改,直至编译通过。用D型USB线连接TF-*2开发板,按下电源开关,并在Keil软件中点击download按钮,将编译通过后的可执行文件烧写到开发板中,按一下核心板上的复位按键,程序开始运行。 程序运行后,数码管低三位显示当前室内温度,显示位数为3位,并带一位小数位。当我们用手捏住*后,我们发现,当前显示的温度快速增长,但是达到一定值时,温度将维持一定的幅度,基本不再发生变化;松开手后,温度直线下降,最后将保持在室内温度的

26、水平,而基本不再发生变化。当温度达到28度时,蜂鸣器报警,继电器开始工作,以模拟空调制热;当温度达到31度时,蜂鸣器也开始报警,但是发出的声音与之前的声音不同,同时,继电器开始工作,以模拟空调制冷。 通过ADC模块采集开发板上的光敏电阻(CH3),并在数码管低四位显示采集的值,将光照强度分为5级,当光照强度小于300时,四颗发光二极管同时点亮;光照强度小于500时,点亮了三颗发光二极管;光照强度小于700时,点亮了两 颗发光二极管;光照强度小于900时,点亮一颗发光二极管;大于900时,四颗发光二极管都处于熄灭状态。即亮度最亮时开发板上的4颗LED全部熄灭,亮度越来越低时,分别点亮1颗、2颗、

27、3颗,完全黑暗时点亮4颗LED。 通过开发板上的三个按键KEY1、KEY2、KEY4(KEY3引脚与DS1820共用,在此项目中不使用)设定上下限温度:KEY1按一次设定上限温度(同时数码管显示上限温度),按两次设定下限温度(同时数码管显示下限温度),按三次,设定完成(同时数码管显示实时温度);KEY2按一次,上限或下限温度加1;KEY3该引脚被*占用,不可使用!KEY4按一次,上限或下限温度减1。同时,数码管显示当前的实时温度。 总结 通过本次综合实训,我发现了自己存在很多不足,虽然以前也做过这样的设计,但这次设计真的让我长进了很多,我对智能家居控制系统有了深入的了解,通过这次设计,我将本学期所学的嵌入式知识贯穿起来,我不仅仅只学到了嵌入式的理论知识,我还将它运用到了实际中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习嵌入式更是如此,技术只有在经常的实际运用过程中才能提高,这就是我在这次课程设计中的最大收获。当然,这次智能家居控制系统设计能够圆满完成,首先要感谢老师的细心指导,为我们指引方向;其次感谢我的同学们在我迷茫时,帮助我理清思路。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1