基于STM32F107微控制器的家庭智能系统开发毕业设计.doc
基于STM32F107微控制器的家庭智能系统开发 摘 要:本文简要叙述了智能家居的发展及应用,采用了基于Cortex-M3内核的STM32f107互联型微控制器作为主控芯片,两块STC89C51单片机作为从机,通过RS485实现内部控制网络的建立,达到本地控制的目的。同时经分析得出采用红外线遥控实现室内单个房间的电器控制具有较好的实用性与抗干扰能力,设计简单,成本较低,功能拓展方便。本课题同时利用STM32f107的以太网10/100 MAC模块实现远程登录,使用STM32f107单片机构建Web Sever,并在单片机上移植了精简的TCP/IP协议,实现了嵌入式Web Sever与远程浏览器的动态交互,使用户可以在任何时间和任何地点利用标准的Web浏览器(如IE浏览器)进行远程访问和控制。极大地方便了家庭生活,提升了家居生活的智能化程度。关键词 : STM32;RS485;智能家居;以太网;Web Sever;远程登录;TCP/IP。中图分类号:TP2 文献标识码:AThe Development of Intelligent Home System Based on the Microcontroller of STM32F107 ABSTRACT: The article briefly describes the development and application of the smart home, which adopts the Internet microcontroller of STM32F107 based on Cortex-M3 as the master chip, and two STC89C51 microcontroller as a slave. It achieves to establish the internal control network through the RS485 and gains the goal of local control. Meanwhile, according to the analysis, using the infrared remote electrical to control single room has good practicality and anti-jamming capability. The system is designed to be simple, cost-effective, and easy to expand the functionality.The subject not only takes the advantage of the STM32F107 of Ethernet 10/100 MAC module to realize the remote login, but also uses STM32F107 microcontroller to build Web Sever and transplants the streamlined TCP / IP protocol in SCM to achieve the dynamic interaction of the embedded Web Sever and remote browser, so that users can use a standard Web browser (such as IE browser) for remote access and control at any time and any place.Key Words:STM32; RS485; smart home; Ethernet; Web Sever; remote login; TCP / IP.0 引 言随着经济的发展和社会的进步,人民对物质生活与精神生活的要求也逐日高涨,对生产、生活场所的条件越来越要求方便、舒适、高效、安全以及环保节能,这些需求极大地促进了智能家居的应用。智能家居这个概念的形成并引入国内不过十来年的时间,但已在国内兴起持续的浪潮,它的应用范围包括了各个行业。智能家居是在物联网的影响之下物联化体现1。智能家居通过物联网技术将家中的各种设备连接到一起,提供家电控制、照明控制、窗帘控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金2。1 系统整体设计为了实现家庭灯光、窗帘以及其他电气设备的控制,本系统采用基于ARM Cortex-M3内核的STM32f107互联型微控制器作为主控芯片。系统使用Keil-MDK集成开发环境作为程序设计的基本软件,使用Altium Designer作为硬件设计软件。整个系统同时使用2块STC89C51单片机作为从机,得以控制不同的房间。整体上系统分为本地控制和远程控制两种控制方式:(1)本地控制利用红外遥控的方式控制主机,主机再通过RS485接口发送指令给目的从机,从而实现内部局域控制网的建立;(2)远程控制利用STM32f107的以太网接口,通过WebSever实现远程登录控制主机,主机进而通过RS485总线控制各个从机,从而实现远程控制。各个从机利用自身的I/0资源,进行灯光控制和继电器的控制。本系统采用的核心芯片是意法半导体集团的STM32F107VCT6,该处理器基于ARM V7架构的Cortex-M3内核,主频72M,内部含有256K字节的FLASH和64K字节的SRAM,LQFP100封装。STM32F107属于互联型系列,资源非常丰富,比其他系列多了USB2.0 OTG全速接口和以太网IEEE1588接口。具有以太网接口是我选择这款芯片的一大原因。Cortex-M3内核包含一个适用于传统Thumb和新型Thumb-2指令的译码器、一个支持硬件乘法和硬件除法的先进ALU、控制逻辑和用于连接处理器其他部件的接口。Cortex-M3处理器是一个32位处理器,带有32位宽的数据路径、寄存器库和基于传统ARM7处理器的系统只支持访问对齐的数据,沿着对齐的字边界即可对数据进行访问和存储3。Cortex-M3处理器是专为那些对成本和功耗非常敏感但同时对性能要求又相当高的应用而设计的。凭借缩小的内核尺寸和出色的中断延迟性能、集成的系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cortex-M3处理器将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案4。2 智能家庭系统硬件设计 整个系统模块分为以下几个个模块:MCU主芯片最小板、STC89C51从机模块、电源电路、LED显示模块、继电器控制模块、RS485模块、红外接收模块、以太网模块。总体硬件系统框图如图1所示:红外遥控总线STM32F107RS48589C5189C51RJ45接口继电器继电器灯光灯光图 1 总体硬件系统框图此智能家庭系统外部网络采用了以太网技术,内部网络采用基于RS485总线的主从网络。所以本地控制的核心电路部分为RS485电路和红外解码电路。远程控制的核心电路部分为以太网电路。下面对这两部分电路进行详细介绍。2.1 RS485模块电路RS485标准接口是单片机系统种常用的一种串行总线之一。RS-485通信方式RS-485标准是由EIA(电子工业协会)和TIA(通讯工业协会)共同制订和开发的。RS-485作为一种多点差分数据传输的电气规范,已成为业界最广泛应用的标准通信接口之一。理论上,RS-485标准最多接入32个设备(受芯片驱动能力的影响),可以工作在半双工或全双工模式下,最大传输距离约为1219米,最大传输速率约为10Mbps。然而通常RS-485网络采用平衡双绞线作为传输媒体,平衡双绞线的长度与传输速率成反比,只有在20Kbps的传输速率下,才可能达到最大传输距离。一般15米长的双绞线最大传输速率仅为1Mbps。不过对于速率要求不是很高的控制系统来说已经足够了5。本系统中主机通过RS485总线向各个从机发送数据,其应用框图如图2所示:STM32F107微控制器RS485总线信道通道RS485MCU控制信道通道RS485MCU控制图2 RS485应用框图RS485通过A、B两个线与从机的TXD、RXD相连,RS485总线电路如图3所示:图3 RS485电路图2.2 以太网(Ethernet)模块10/100以太网媒体访问控制器(MAC)是基于ARM Cortex-M3的STM32互联系列(Connectivity Line)微控制器的特色亮点之一。该以太网模块支持两种标准接口,连接到外接的物理层(PHY)模块:IEEE802.3协议定义的独立于介质的接口(MII)和简化的独立于介质的接口(RMII),提高了设计人员选择最佳的PHY芯片的灵活性。STM32F107内部以太网模块与外部PHY芯片采用RMII接口的连接图如图4所示。本系统采用高性价比的DM9161作为10M/100M以太网PHY芯片,采用RMII接口与连接,标准RJ45接口,支持平行交叉网线自适应。DM9161A是用于100BASE-TX和10BASE-T以太网物理层的单芯片、低功耗收发器。在媒介一侧,它提供了一个直接接口,对于100BASE-TX快速以太网使用非屏蔽5类双绞线,对于10BASE-T以太网使用5类/3类双绞线。图4 STM32F107以太网RMII连接图STM32F107内部以太网和以太网芯片相连接,其原理图如图5所示:图5 以太网接口原理图3 智能家庭系统软件设计3.1家居系统工作软件设计在整个系统中,控制方式只要分为两种:红外遥控和以太网远程登录控制。软件设计根据这两种控制方式来进行,系统的软件程序流图如图6所示。核心控制器接收信号分别来自红外遥控器和以太网,同时根据不同的控制信号,通过RS485总线向下发送地址数据,当从机和该地址数据相匹配后,向主机回复应答数据,主机接收到应答信息后向该从机发送控制数据,而后,该从机根据接收到的数据向设备端发送设备控制指令,控制灯光或继电器工作。核心控制器可以同时接收红外遥控信号和网络信号,但是会以遥控信号为优先控制信号,然后再处理网络端传输过来的信号。开始系统初始化红外遥控信号?YN红外解码指令解析Y以太网控制信号?YN等待信号读取数据通过总线发送数据读取地址N从机1?从机2?向从机1发送数据向从机2发送数据YN等待信号控制房间1相应设备控制房间2相应设备循环等待图6 系统的主程序流图3.2 通讯协议当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息6。发送数据时采用的信息帧包括地址码、功能码、数据码和错误校验码,其结构如表1所示。表1 信息帧结构地址码功能码数据区错误校验码8位8位N × 8位16位地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。表2列出了不同地址所代表的含义。表2 地址码代码含义操作011号从机地址选择1号从机发送数据022号从机地址选择2号从机发送数据功能码:主机发送的功能码告诉从机执行什么任务。表3列出的功能码都有具体的含义及操作。表3功能码代码含义操作01开灯打开所选择房间的灯光02关灯关闭所选择房间的灯光10开设备1打开所选择单片机所控制的1号继电器连接的设备11开设备2打开所选择单片机所控制的2号继电器连接的设备12开设备3打开所选择单片机所控制的3号继电器连接的设备13开设备4打开所选择单片机所控制的4号继电器连接的设备数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。3.3以太网实现Telnet远程登陆 远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。 Telnet(Teletype Network)用于远程登录,属于客户机/服务器模型的服务,使得在本地主机(Telnet客户端)上操作和控制远程服务器(Telnet服务器)。它提供远程登录功能,使用户在本地主机上运行Telnet客户端就可登录到远端的Telnet服务器。在本地输入的命令可以在服务器上运行,服务器把结果返回到本地,就像直接在服务器控制台上操作一样,从而达到远程操作与控制服务器的目的。 Telnet分为Telnet客户端和Telnet服务器程序。Telnet协议即是一种常见的远程登录应用协议。Telne协议是TCP/IP协议簇中的一员,是Internet远程登陆服务的标准协议和主要方式。 本系统利用第2节所介绍的硬件平台配合移植好的TCP/IP协议栈代码成功实现了Telnet远程登陆与HTTP内嵌网页,支持平行交叉网线自适应,一根网线就可以很方便地与路由器或PC相连接,连接后可通过网络访问和控制板上的资源,从而实现远程控制功能。 HTTP协议即超文本传输协议,是一种应用层协议。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据,其工作方式采用了请求/响应的工作方式。客户端在每次向服务器发出请求后,服务器就会向客户端返回响应消息(包括请求是否正确以及所请求的数据),在确认客户端已经收到响应消息后,服务端就会关闭网络连接。在这个数据传输过程中,并不保存任何历史信息和状态信息,因此,HTTP协议也被认为是无状态的协议,图7描绘了HTTP协议的通讯过程:图7 HTTP协议的通讯过程 本系统中,客户机即为各种可联网设备,包括电脑、手机等可通过浏览器浏览网页的设备,服务器即为STM32F107微控制器模拟的Websever。用户可通过浏览器登陆STM32F107所预设的HTML网页,即可向服务器发送请求,进而开始一个请求/响应会话,从而可以进一步通过向服务器发送控制数据来达到控制家庭电气设备的目的7。4 结论本文设计的智能家庭系统实现了家庭设备的智能化控制,包括本地控制和远程控制,具有很好的应用性,能够极大地满足人们的生活需求,提高家居生活的方便性与高效性。在功能上实现了居家设备的可靠的自动控制,且其可控制的设备种类十分丰富,基本都能涵盖生活所需。此系统应用了以太网,能够很好的将家庭控制与网络相连接,使人们能够通过互联网远程控制自己的家庭设备,同时,也可在以后添加监控模块,实时地通过网络监控家庭的安全情况,使自己的家更加安全舒适。内部网络采用红外遥控的方式,采用了人们熟悉地控制方式更有利于将本系统应用于家居生活当中,而且红外的控制方式受干扰的可能性比无线会低很多。各个房间的信号通过RS485总线进行传输,稳定高效,传输距离也更远。整体来看,本系统有着价格低廉、可靠性高、可拓展能力强、控制方便等优势,安装这样的一套智能家庭系统的价格并不高,可以应用于普通家庭中,具有较大的市场前景。参 考 文 献1Jong Bong Lee. Smart home-digitally engineered domestic lifeJ. Lecture Personal and Ubiquitous Computing,2003,7(20):189196.2金子瑜,张声传,房茂金,等.智能家居系统研究与实现J.自动化与仪表,2011,26(9):4750.3Greger Sandstrom, Stig Gustavsson, Stefan Lundberg, etal. Long-Term Viability of Smart Home SystemJ. IFIP International Federation for Information Processing,2005,17(8):7175.4张逢雪,王香婷,王通生,等.基于STM32单片机的无线智能家居控制系统J.自动化技术与应用,2011,30(8):98101.5昊晨.RS-232与RS-485接口的技术探讨J.计量与测试技术,2008,35(10):12.6姜莹.一种基于RS485总线的智能家居系统J.仪器仪表报,2007,28(4):789792.7刘康,王宣银.嵌入了TCP/IP协议的单片机数据通信系统的设计与实现J.电测与仪表,2003,40(6):4345.