基于STM32F107微控制器的家庭智能系统开发.docx
《基于STM32F107微控制器的家庭智能系统开发.docx》由会员分享,可在线阅读,更多相关《基于STM32F107微控制器的家庭智能系统开发.docx(11页珍藏版)》请在冰豆网上搜索。
![基于STM32F107微控制器的家庭智能系统开发.docx](https://file1.bdocx.com/fileroot1/2023-2/23/848bde0e-aebc-4384-a06d-5da22e368c53/848bde0e-aebc-4384-a06d-5da22e368c531.gif)
基于STM32F107微控制器的家庭智能系统开发
基于STM32F107微控制器的家庭智能系统开发
基于STM32F107微控制器的家庭智能系统开发
黄友文,汪波涛
摘要:
本文简要叙述了智能家居的发展及应用,采用了基于Cortex-M3内核的STM32f107互联型微控制器作为主控芯片,两块STC89C51单片机作为从机,通过RS485实现内部控制网络的建立,达到本地控制的目的。
同时经分析得出采用红外线遥控实现室内单个房间的电器控制具有较好的实用性与抗干扰能力,设计简单,成本较低,功能拓展方便。
本课题同时利用STM32f107的以太网10/100MAC模块实现远程登录,使用STM32f107单片机构建WebSever,并在单片机上移植了精简的TCP/IP协议,实现了嵌入式WebSever与远程浏览器的动态交互,使用户可以在任何时间和任何地点利用标准的Web浏览器(如IE浏览器)进行远程访问和控制。
极大地方便了家庭生活,提升了家居生活的智能化程度。
关键词:
STM32;RS485;智能家居;以太网;WebSever;远程登录;TCP/IP。
中图分类号:
TP2文献标识码:
A
TheDevelopmentofIntelligentHomeSystemBasedon
theMicrocontrollerofSTM32F107
HuangYouwen,WangBotao
ABSTRACT:
Thearticlebrieflydescribesthedevelopmentandapplicationofthesmarthome,whichadoptstheInternetmicrocontrollerofSTM32F107basedonCortex-M3asthemasterchip,andtwoSTC89C51microcontrollerasaslave.ItachievestoestablishtheinternalcontrolnetworkthroughtheRS485andgainsthegoaloflocalcontrol.Meanwhile,accordingtotheanalysis,usingtheinfraredremoteelectricaltocontrolsingleroomhasgoodpracticalityandanti-jammingcapability.Thesystemisdesignedtobesimple,cost-effective,andeasytoexpandthefunctionality.
ThesubjectnotonlytakestheadvantageoftheSTM32F107ofEthernet10/100MACmoduletorealizetheremotelogin,butalsousesSTM32F107microcontrollertobuildWebSeverandtransplantsthestreamlinedTCP/IPprotocolinSCMtoachievethedynamicinteractionoftheembeddedWebSeverandremotebrowser,sothatuserscanuseastandardWebbrowser(suchasIEbrowser)forremoteaccessandcontrolatanytimeandanyplace.
KeyWords:
STM32;RS485;smarthome;Ethernet;WebSever;remotelogin;TCP/IP.
1引言
随着经济的发展和社会的进步,人民对物质生活与精神生活的要求也逐日高涨,对生产、生活场所的条件越来越要求方便、舒
适、高效、安全以及环保节能,这些需求极大地促进了智能家居的应用。
智能家居这个
概念的形成并引入国内不过十来年的时间,但已在国内兴起持续的浪潮,它的应用范围包括了各个行业。
智能家居是在物联网的影
响之下物联化体现[1]。
智能家居通过物联网技术将家中的各种设备连接到一起,提供家电控制、照明控制、窗帘控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。
与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金[2]。
2系统整体设计
为了实现家庭灯光、窗帘以及其他电气设备的控制,本系统采用基于ARMCortex-M3内核的STM32f107互联型微控制器作为主控芯片。
系统使用Keil-MDK集成开发环境作为程序设计的基本软件,使用AltiumDesigner作为硬件设计软件。
整个系统同时使用2块STC89C51单片机作为从机,得以控制不同的房间。
整体上系统分为本地控制和远程控制两种控制方式:
(1)本地控制利用红外遥控的方式控制主机,主机再通过RS485接口发送指令给目的从机,从而实现内部局域控制网的建立;
(2)远程控制利用STM32f107的以太网接口,通过WebSever实现远程登录控制主机,主机进而通过RS485总线控制各个从机,从而实现远程控制。
各个从机利用自身的I/0资源,进行灯光控制和继电器的控制。
本系统采用的核心芯片是意法半导体集团的STM32F107VCT6,该处理器基于ARMV7架构的Cortex-M3内核,主频72M,内部含有256K字节的FLASH和64K字节的SRAM,LQFP100封装。
STM32F107属于互联型系列,资源非常丰富,比其他系列多了USB2.0OTG全速接口和以太网IEEE1588接口。
具有以太网接口是我选择这款芯片的一大原因。
Cortex-M3内核包含一个适用于传统Thumb和新型Thumb-2指令的译码器、一个支持硬件乘法和硬件除法的先进ALU、控制逻辑和用于连接处理器其他部件的接口。
Cortex-M3处理器是一个32位处理器,带有32位宽的数据路径、寄存器库和基于传统ARM7处理器的系统只支持访问对齐的数据,沿着对齐的字边界即可对数据进行访问和存储[3]。
Cortex-M3处理器是专为那些对成本和功耗非常敏感但同时对性能要求又相当高的应用而设计的。
凭借缩小的内核尺寸和出色的中断延迟性能、集成的系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cortex-M3处理器将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案[4]。
2智能家庭系统硬件设计
整个系统模块分为以下几个个模块:
MCU主芯片最小板、STC89C51从机模块、电源电路、LED显示模块、继电器控制模块、RS485模块、红外接收模块、以太网模块。
总体硬件系统框图如图1所示:
红外遥控
总线
STM32F107
RS485
89C51
89C51
RJ45接口
继电器
继电器
灯光
灯光
图1总体硬件系统框图
此智能家庭系统外部网络采用了以太网技术,内部网络采用基于RS485总线的主从网络。
所以本地控制的核心电路部分为RS485电路和红外解码电路。
远程控制的核心电路部分为以太网电路。
下面对这两部分电路进行详细介绍。
2.1RS485模块电路
RS485标准接口是单片机系统种常用的一种串行总线之一。
RS-485通信方式RS-485标准是由EIA(电子工业协会)和TIA(通讯工业协会)共同制订和开发的。
RS-485作为一种多点差分数据传输的电气规范,已成为业界最广泛应用的标准通信接口之一。
理论上,RS-485标准最多接入32个设备(受芯片驱动能力的影响),可以工作在半双工或全双工模式下,最大传输距离约为1219米,最大传输速率约为10Mbps。
然而通常RS-485网络采用平衡双绞线作为传输媒体,平衡双绞线的长度与传输速率成反比,只有在20Kbps的传输速率下,才可能达到最大传输距离。
一般15米长的双绞线最大传输速率仅为1Mbps。
不过对于速率要求不是很高的控制系统来说已经足够了[5]。
本系统中主机通过RS485总线向各个从机发送数据,其应用框图如图2所示:
图2RS485应用框图
RS485通过A、B两个线与从机的TXD、RXD相连,RS485总线电路如图3所示:
图3RS485电路图
2.2以太网(Ethernet)模块
10/100以太网媒体访问控制器(MAC)是基于ARMCortex-M3的STM32互联系列(ConnectivityLine)微控制器的特色亮点之一。
该以太网模块支持两种标准接口,连接到外接的物理层(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类双绞线。
图4STM32F107以太网RMII连接图
STM32F107内部以太网和以太网芯片相连接,其原理图如图5所示:
图5以太网接口原理图
3智能家庭系统软件设计
3.1家居系统工作软件设计
在整个系统中,控制方式只要分为两种:
红外遥控和以太网远程登录控制。
软件设计根据这两种控制方式来进行,系统的软件程序流图如图6所示。
核心控制器接收信号分别来自红外遥控器和以太网,同时根据不同的控制信号,通过RS485总线向下发送地址数据,当从机和该地址数据相匹配后,向主机回复应答数据,主机接收到应答信息后向该从机发送控制数据,而后,该从机根据接收到的数据向设备端发送设备控制指令,控制灯光或继电器工作。
核心控制器可以同时接收红外遥控信号和网络信号,但是会以遥控信号为优先控制信号,然后再处理网络端传输过来的信号。
图6系统的主程序流图
3.2通讯协议
当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。
如果出错就不发送任何信息[6]。
发送数据时采用的信息帧包括地址码、功能码、数据码和错误校验码,其结构如表1所示。
表1信息帧结构
地址码
功能码
数据区
错误校验码
8位
8位
N×8位
16位
地址码:
地址码是信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。
表2列出了不同地址所代表的含义。
表2地址码
代码
含义
操作
01
1号从机地址
选择1号从机发送数据
02
2号从机地址
选择2号从机发送数据
功能码:
主机发送的功能码告诉从机执行什么任务。
表3列出的功能码都有具体的含义及操作。
表3功能码
代码
含义
操作
01
开灯
打开所选择房间的灯光
02
关灯
关闭所选择房间的灯光
10
开设备1
打开所选择单片机所控制的
1号继电器连接的设备
11
开设备2
打开所选择单片机所控制的
2号继电器连接的设备
12
开设备3
打开所选择单片机所控制的
3号继电器连接的设备
13
开设备4
打开所选择单片机所控制的
4号继电器连接的设备
数据区:
数据区包含需要从机执行什么动作或由从机采集的返送信息。
这些信息可以是数值、参考地址等等。
例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。
对于不同的从机,地址和数据信息都不相同。
错误校验码:
主机或从机可用校验码进行判别接收信息是否出错。
有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。
这样增加了系统的安全和效率。
错误校验采用CRC-16校验方法。
注:
信息帧的格式都基本相同:
地址码、功能码、数据区和错误校验码。
3.3以太网实现Telnet远程登陆
远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。
仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。
Telnet(TeletypeNetwork)用于远程登录,属于客户机/服务器模型的服务,使得在本地主机(Telnet客户端)上操作和控制远程服务器(Telnet服务器)。
它提供远程登录功能,使用户在本地主机上运行Telnet客户端就可登录到远端的Telnet服务器。
在本地输入的命令可以在服务器上运行,服务器把结果返回到本地,就像直接在服务器控制台上操作一样,从而达到远程操作与控制服务器的目的。
Telnet分为Telnet客户端和Telnet服务器程序。
Telnet协议即是一种常见的远程登录应用协议。
Telne协议是TCP/IP协议簇中的一员,是Internet远程登陆服务的标准协议和主要方式。
本系统利用第2节所介绍的硬件平台配合移植好的TCP/IP协议栈代码成功实现了Telnet远程登陆与HTTP内嵌网页,支持平行交叉网线自适应,一根网线就可以很方便地与路由器或PC相连接,连接后可通过网络访问和控制板上的资源,从而实现远程控制功能。
HTTP协议即超文本传输协议,是一种应用层协议。
HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据,其工作方式采用了请求/响应的工作方式。
客户端在每次向服务器发出请求后,服务器就会向客户端返回响应消息(包括请求是否正确以及所请求的数据),在确认客户端已经收到响应消息后,服务端就会关闭网络连接。
在这个数据传输过程中,并不保存任何历史信息和状态信息,因此,HTTP协议也被认为是无状态的协议,图7描绘了HTTP协议的通讯过程:
图7HTTP协议的通讯过程
本系统中,客户机即为各种可联网设备,包括电脑、手机等可通过浏览器浏览网页的设备,服务器即为STM32F107微控制器模拟的Websever。
用户可通过浏览器登陆STM32F107所预设的HTML网页,即可向服务器发送请求,进而开始一个请求/响应会话,从而可以进一步通过向服务器发送控制数据来达到控制家庭电气设备的目的[7]。
4结论
本文设计的智能家庭系统实现了家庭设备的智能化控制,包括本地控制和远程控制,具有很好的应用性,能够极大地满足人们的生活需求,提高家居生活的方便性与高效性。
在功能上实现了居家设备的可靠的自动控制,且其可控制的设备种类十分丰富,基本都能涵盖生活所需。
此系统应用了以太网,能够很好的将家庭控制与网络相连接,使人们能够通过互联网远程控制自己的家庭设备,同时,也可在以后添加监控模块,实时地通过网络监控家庭的安全情况,使自己的家更加安全舒适。
内部网络采用红外遥控的方式,采用了人们熟悉地控制方式更有利于将本系统应用于家居生活当中,而且红外的控制方式受干扰的可能性比无线会低很多。
各个房间的信号通过RS485总线进行传输,稳定高效,传输距离也更远。
整体来看,本系统有着价格低廉、可靠性高、可拓展能力强、控制方便等优势,安装这样的一套智能家庭系统的价格并不高,可以应用于普通家庭中,具有较大的市场前景。
参考文献
[1]JongBongLee.Smarthome-digitallyengineereddomesticlife[J].LecturePersonalandUbiquitousComputing,2003,7(20):
189~196.
[2]金子瑜,张声传,房茂金,等.智能家居系统研究与实现[J].自动化与仪表,2011,26(9):
47~50.
[3]GregerSandstrom,StigGustavsson,StefanLundberg,etal.Long-TermViabilityofSmartHomeSystem[J].IFIPInternationalFederationforInformationProcessing,2005,17(8):
71~75.
[4]张逢雪,王香婷,王通生,等.基于STM32单片机的无线智能家居控制系统[J].自动化技术与应用,2011,30(8):
98~101.
[5]昊晨.RS-232与RS-485接口的技术探讨[J].计量与测试技术,2008,35(10):
1~2.
[6]姜莹.一种基于RS485总线的智能家居系统[J].仪器仪表报,2007,28(4):
789~792.
[7]刘康,王宣银.嵌入了TCP/IP协议的单片机数据通信系统的设计与实现[J].电测与仪表,2003,40(6):
43~45.