《智能窗户控制系统软件说明.docx》由会员分享,可在线阅读,更多相关《智能窗户控制系统软件说明.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除智能窗户控制系统软件V1.0设计说明目录前言1第一章软件总体设计11.1.软件需求概括11.2.定义11.3.功能概述11.4.总体结构和模块接口设计2第二章 控制系统的总体设计32.1.功能设计3第三章 软件控制系统的设计与实现53.1.RF解码过程程序设计介绍53.2.RF对码过程设计63.3.通信程序设计83.4.IIC程序设计介绍93.5.接近开关程序设计123.6.震动开关检测程序设计133.7.墙面按键程序设计15第四章 智能窗户控制系统的设计17第五章 实测与结果说明18第六章 结论18【精品文档】第 9 页前言目的编写详细设计说明
2、书是软件开发过程必不可少的部分,其目的是为了使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。第一章 软件总体设计1.1. 软件需求概括本软件采用传统的软件开发生命周期的方法,采用自顶向下,逐步细化,模块化编程的软件设计方法。本软件主要有以下几方面的功能(1) RF遥控解码(2) 键盘扫描 (3) 通信(4) 安全检测(5) 电机驱动1.2. 定义本项目定义为智能遥控窗户系统软件。它将实现人机互动的无缝对接,实现智能关窗,遥控开关窗户,防雨报警等功能。1.3. 功能概述1. 墙体面板按键控制窗户的开/关2. RF遥控器控制窗户的开/关3. 具有限位,童锁等检
3、测功能4. 实时检测大气中的温湿度,下雨关窗5. 具有防盗,防夹手等安全性能的检测1.4. 总体结构和模块接口设计主要软件模块ARM控制模块,EEPROM模块,RF解码模块,双机通信模块,温湿度检测模块,限位检测模块,振动检测模块,电机驱动模块,蜂鸣器模块,键盘模块等组成,以下是本次设计各个模块的方块图;rf遥控模块键盘输入模块通信模块通信模块电机驱动模块蜂鸣器驱动Arm遥控板LED模块存储模块数据解码模块温湿度检测Arm驱动板振动检测模块键盘输入检测图1.0 系统模块方框图第二章 控制系统的总体设计1.1. 功能设计各主要模块的程序设计主要包括基于芯唐MO516LDN单片机的主控设备的程序设
4、计,基于433M无线通信模块的程序设计,基于HTU20D的温湿度检测模块程序设计,以及基于MS32距离检测模块的程序设计等。软件的主要工作流程如下图;程序开始等待按键/rf输入是否有按键/遥控数据否数据编码数据发送是串口初始化定时器初始RF解码初始化按键初始化图2.1 按键板程序设计流程自身状态检测各个节点是否正常否报警串口初始化Adc初始化iic初始化外中断初始化定时器初始化程序开始通信等待是否有收到命令否电机驱动夹手检测到位检测执行命令是图2.2 驱动板程序设计流程第三章 软件控制系统的设计与实现1.2. RF解码过程程序设计介绍1. 遥控器功能介绍用433M遥控器发出左窗户正转,右窗户正
5、转,停止信号等,安装在墙体的控制电路接收到控制信号后,根据遥控命令来控制电机的运行状态,从而达到远距离对控制窗户的打开、闭合和停止。无线遥控主要用到433M无线遥控器,下面介绍433M遥控器:数据收发模块的工作频率为433M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在2585度之间变化时,频飘仅为3ppm/度。特别适合多发一收无线遥控及数据传输系统。声表谐振器的频率稳定度仅次于晶体,而一般的LC振荡器频率稳定度及一致性较差,即使采用高品质微调电容,温差变化及振动也很难保证已调好的频点不会发生偏移。 数据模块具有较宽的工作电压范围312V,当电压变化时发射频率基本不变,和发射模块配套
6、的接收模块无需任何调整就能稳定地接收。当发射电压为3V时,空旷地传输距离约2050米,发射功率较小,当电压5V时约100200米,当电压9V时约300500米,当发射电压为12V时,为最佳工作电压,具有较好的发射效果,发射电流约60毫安,空旷地传输距离700800米,发射功率约500毫瓦。当电压大于l2V时功耗增大,有效发射功率不再明显提高。这套模块的特点是发射功率比较大,传输距离比较远,比较适合恶劣条件下进行通讯。天线最好选用25厘米长的导线,远距离传输时最好能够竖立起来,因为无线电信号传输时收很多因素的影响,所以一般实用距离只有标称距离的一半甚至更少,这点需要开发时注意。 数据模块采用AS
7、K方式调制,以降低功耗,当数据信号停止时发射电流降为零,数据信号与发射模块输入端可以用电阻或者直接连接而不能用电容耦合,否则发射模块将不能正常工作。数据电平应接近数据模块的实际工作电压,以获得较高的调制效果。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制0和1的个数不同而不同,大约在4564ms之间。当一个键按下超过36ms,振荡器使芯片激活,将发射一组约64ms的编码脉冲,这64ms发射代码由一个起始码(10ms),一个结束码(6ms),三位地址码,这三位分别是,低8位地址码(8ms12ms), 中8位地址码(8ms12ms)
8、,高8位地址码(8ms12ms)和8位数据码(8ms12ms)。2. 代码宽度算法:24位地址码的最短宽度:1.024=24ms 16位地址码的最长宽度:1.5ms24=33.6ms。解码的关键是如何识别0和1,代码格式(以接收代码为准,接收代码与发射代码反向)。从位的定义我们可以发现0、1均以0.5ms的低电平开始,不同的是高电平的宽度不同,0为1ms,1为1.5ms,所以必须根据高电平的宽度区别0和1。如果从0.5 ms低电平过后,开始延时,0.5ms以后,若读到的电平为低,说明该位为0,反之则为1,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.5ms,否则如果该位为0,读到的
9、已是下一位的高电平,因此取(1.5ms+0.5ms)/2=1ms最为可靠,一般取1ms左右均可;根据码的格式,应该等待10ms的起始码和6ms的结果码完成后才能读码。3. RF解码根据以上分析可得出解码程序流程如下:NY有信号,中断接受解码跳出识别码正确否?与实际键值(10个)比较,转出执行相应动作中断返回有信号产生中断EA清零延时小于10ms(低电平)等待高电平的到来延时小于4.5ms(高电平)等待下一次高电平的到来延时1ms左右读区P3.2脚电平值再等待下一次高电平的到来延时1左右读取P3.2脚电平值,依次取得32位代码,前24位为识别码,后8位既为8位数据码,RF的解码流程框图见3.1。
10、图3.1 RF的解码流程框图1.3. RF对码过程设计每个家庭的窗户都有自己的遥控器,每个遥控器,可以独立的控制5扇窗户,那么如何让遥控器和窗户一一对应呢。在遥控器上,我们设置有5个对码按键,分别设置为1号,2号,3号,4号, 5号。例如按下1号,表示后续按键的控制按键是对1号窗户进行控制,按下2号,表示后续的遥控控制是对2号按键进行控制。那么如何让遥控器识别到窗户的号码呢。这就要再客户使用之前先进行对码,对码是整个程序的设计要点和难点之一,对码过程大体如下。长按三秒钟对码按键按下接收对码信号退出对码解析对码信号保存地址码获取24位地址码码否是解析对码信号是否保存成功图3.2 对码流程 由于对
11、码的动作不是经常要用到,因此将对码的时间范围设定在开机后的前三分钟,在开后的前三分钟内按对码键,对码有效,在开机三分钟后,长按对码键,对码功能无效。新窗户使用之前都需要对码,若不对码,遥控器对窗户的控制是无效的。对码按键有两个功能,第一个是对码,长按对码按键表示对码,第二个是切换窗户,短按对码按键,表示切换到对应的窗户的控制。对码时,长按对码按键三秒,遥控器对应的需要对码的窗户所指示的led灯会闪烁,表示已经发出了对码信号。切换遥控窗户时端按,当按键按下的时候迅速松手,对应的窗户所代表的指示led灯会常亮,表示当前的遥控已经切换到对应的窗户控制。1.4. 通信程序设计1. 通信流程通信的程序设
12、计包括初始化设计、串口中断服务设计和主处理程序设计。本项目虽然只有一个下位机,但除了本机地址的设置不同外,其他硬件电路都是相同的,所以各下位机的软件设计也是相同的,因此本通信程序可以适用于一主多从的设备通信。按照通信协议的要求可以设计出如图4.1的下位机程序流程图3.3 通信流程图2. 串口中断服务程序串口接收和发送都采用中断方式,设计单片机通信程序时,必须充分发挥单片机的效率,由于单片机多应用于实时性较强的控制场合,因此, 应将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间11。基于上述考虑,在设计单片机通信程序时,将中断程序分为接收中断服务程序和发
13、送中断服务程序2部分。下面为串口通信程序流程图:图3.4串口通信模块程序流程图i. 接收中断服务程序 当有数据收到时,设置一个标志通知主程序有数据到来,当地址位验证无误后,则开始接收数据。 对于接收中断,程序处于等待状态,当外面有数据到来时则触发接收,进入接收中断服务程序,当地址验证正确开始后面的数据,中断从接收buf读取数据,将读到的数据放到全局缓冲区里,在接收数据之后设置一个标志来通知主程序,完成后等待下一中断的到来。接收中断服务程序包含了对地址位是否匹配的验证。ii. 发送中断服务程序 当主程序有数据要发送时,设置一个中断标志进入中断并发送数据。下面为程序代码:对于发送中断,程序一般处于
14、禁止等待状态。只有当单片机的发送缓冲区历由数据需要发送,并将发送中断置为允许方式后,发送中断才开始工作。发送时从缓冲区里发送数据,遵守通讯协议:首先发送地址位,然后发送需要传输的数据,最后发送校验以及结束标志。在发送中断服务程序里从全局缓冲区里取出数据给发送寄存器进行发送,发送完后发送中断服务程序等待下一中断的到来。以上两程序可以看出采用中断有很好的结构,只要在中断服务程序里理接收和发送数据,然后与主程序进行数据交换,易实现多任务操作,很好利用单片机资源。1.5. IIC程序设计介绍本项目的iic总线有两处地方有用到,1是存储设备AT24C02,另一个是湿度传感器;我以大家熟悉的24c02举例
15、说明iic总线设计的程序概要。I2C总线由一根串行数据线和一根串行时钟线组成,是双向数据传输线,核心是主控CPU,被控器的SDA,SCL要相应地接到I2C总线的SDA,SCL上,可以方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,从而使硬件系统具有简单而灵活的扩展方法。按照I2C总线的规定,其SDA、SCL各要通过上拉电阻接到电源VCC上。应用框图如下图图3.5 应用框图如下图每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。在多主机系统中,可能同时有几个主机企
16、图启动总线传送数据。为了避免混乱, I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。1. I2C总线在传送数据过程中信号类型开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号图3.6 iic总线的启动停止信号起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。直
17、到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。2. I2C总线的数据传输每一个字节必须保证是8位长度,每次传输可发送的字节数量不受限制 。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。 图3.7 数据传输典型信号模拟:为了保证数据传送的可靠性,标准的I2C总线的数据传送有严格的时序要求。I2C总线的起始信号、终止信号、发送“0”及发送“1”的模拟时序 3. Iic程序设计本项目有两个iic设备,两个iic设备的使用方式一样,AT24C02,和温湿度传感器只是地址不同就不一一举例,下图是iic程序设计
18、的框图。设备地址通信开始启动总线应答答芯片内地址数据操作应答答应答答数据是否操作成功退出操作是否图3.8 iic程序设计框图1.6. 接近开关程序设计窗户的打开和闭合通过电机来带动,当窗户运动到合适的位置的时候,需要禁止电机的转动。本项目检测电机是否带动窗户运动到位,用的是MS32 Switching Sensor,来做窗户的限位检测。MS32 Switching Sensor是一款ADC输出的磁性接近检测ic,它能检测三轴空间的磁场变化,而输出相应的ADC数值。1. 转换器原理A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。双积分
19、式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高。M0516LDN芯片内部自带ADC转换器,该芯片的转换器是逐次逼近型的转换器。逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输
20、入模拟量对应的二进制数字量5。其原理框图如图2所示:图 3.9 逐次逼近式A/D转换器原理图2. A/D转换子程序首先对MO516LDN的硬件ADC初始化初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。输出转换结果A/D转换结束?启动转换电机转动电机停止转动判断限位?停止 ADC图3.10 A/D转换流程图1.7. 震动开关检测程序设计1. 设计目的家居产品,安全是第一要素,为了增加本产品的安全性能,因此特意增加了暴力检测。当外接对窗户进行暴力,开窗
21、的时候,窗户发出报警信号。2. 振动传感器介绍振动传感器有振动位移、振动速度和振动加速度传感器。简单地说,振动位移传感器(常用电涡流传感器)根据振动位移变化与输出电压的变化关系,振动速度传感器根据相对运动切割磁力线产生电压的变化,振动加速度传感器根据形变与电荷的关系。速度传感器通过硬件或软件积分可以得到位移,加速度传感器通过一次积分可以得到振动速度,二次积分可以得到振动位移。因为需要测量加速度,所以必须有振动加速度传感器。振动传感器在测试技术中是关键部件之一,它的作用并不是直接将原始要测的机械量转变为电量,而是将原始要测的机械量做为振动传感器的输入量,然后由机械接收部分加以接收,形成另一个适合
22、于变换的机械量,最后由机电变换部分再将变换为电量。因此一个传感器的工作性能是由机械接收部分和机电变换部分的工作性能来决定的。 3. 振动传感器软件设计概要本项目用震动传感器是MT1185,该传感器接收到一定强度的震动信号之后,无失真的传递出,震动波形。Mcu检测其波形,判断震动的幅度,当达到一定的震动幅度的时候,发出报警信号。整体程序设计概要。遥控器上有震动开关检测按键,一般主人在家的时候,会关闭震动检测。当窗户处于关闭状态的时候,允许打开震动检测。程序设计流程如下;使能检测中断震动检 测是发报警命令报警否打开震动检测程序开始执行安全检测安全检测是否打开否是图3.11 震动报警程序流程1.8.
23、 墙面按键程序设计1. 发送板软件设计概要按键控制是本项目,必不可少的一个重要功能。为了增强产品的稳定性,以及产品使用的灵活程度。因此增加了按键控制。按键板嵌在墙体立面,根据实际情况安装在窗体的附件。按键驱动的程序设计流程大体如下程序开始使能定时器隔20ms扫描是否有键按下否判断按键获取键值匹配对应功能发送键值命令功能编码是3.12 按键程序流程2. 接收板软件设计概要发送板接收到按键按下指令之后,会把键值封装成一定的命令格式,然后把命令下发给接收板。接收板的通信口接收到,发送板下发的按键命令后,先解析其数据包,从数据包里面获取,按键下发的命令;获取到命令之后,然后执行相应的命令动作,接收板的
24、按键命令执行程序流程如下程序开始通信使能数据接收判断是否收到数据否数据解析数据校验获取命令动作使能命令执行是3.13 接收板按键执行流程第四章 智能窗户控制系统的设计用芯唐M0516LDN做主控mcu,实现对窗户的智能控制,对环境的温湿度的检测,以及无线通信,具有很好的灵活性和经济性。本系统在系统中使用调试成功,实现了遥控/按键对窗户的控制同时实现了对温度、湿度、振动的自动采集和实时监控、报警等功能,为现代现代化的智能家居的生产起到了积极作用,整个系统结构简单,操作方便、灵活,具有较好的实际价值和使用性。第五章 实测与结果说明无线遥控按键的主要功能是控制窗户,窗帘电机的正反转等。手动控制按键的
25、功能是直接操作窗帘电机的正转和反转。另外遥控器按键设有对码按键,雨水检测,防盗,童锁,等功能按键。工作方式的选择是选择无线遥控和选择手动控制,在无线遥控控制下,手动控制有效;在手动控制状态下无线遥控控制也同样效,当前的工作状态由最新更新的命令为准。电机工作时间长度是根据用户窗帘的长度不同来决定,在设计过程中使用巧妙的停机方法:硬件上,在窗帘两端各并联1个限位开关,在窗帘到位后,限位开关断开,电机停止运转;该项目经过多次改进,参考当前的类似产品的做法,做各种尝试和修改,在现有技术的状态下各项指标已经达到技术要求。第六章 结论随着电子技术产业结构的调整,生产工艺的不断提升,人们生活水平的不断提高,家用电器的逐渐普及,人们对窗户的智能要求以及安全要求也越来越高。市场上对无线遥控控制系统的需求也越来越大,高精度、多功能、低功耗,是现代科技发展的趋势。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了无线遥控控制,基于单片机和无线遥控的控制器应用范围的日益广泛和多样。基于无线控制的智能窗户设计,充分吸收了MCU智能化的特点,同时集中了无线遥控的灵活方便的特点。经过大量实际项目测试,该产品性能稳定,控制可靠,具有很大的推广市场。
限制150内