基于TCP/IP协议的智能家居控制系统设计
扫描二维码
随时随地手机看文章
引言
物联网是多网融合时代的必然产物,它将人与人之间的 沟通连接扩展到了人与物、物与物之间的沟通连接,智能化、 网络化的生活将让人们工作、生活更加便捷和人性。智能家居 是物联网的一个重要应用,智能家居控制系统主要实现了家庭 智能网关对家庭各种设备的控制及设定。用户可以通过手持 控制器或各种控制面板在家庭内部进行家电设备控制,完成 家庭内部的闭环控制,也可以通过手机、上网等方式实现对 家电的远程控制。用户可以根据自己的需求自由地增加/删 减家电控制节点并可通过全图形化向导设置家电,使用方便、 操作简单。
用户利用手机、电脑等终端登录网络服务器,输入用户 名和密码后,通过互联网连接到家中的智能控制器(控制中心)。 智能控制器调用相关的程序,将控制信息或查询信息通过RF 无线通信网络传送给家电微控制器,家电微控制器收到数据 后,进行相应的处理,产生接口数据,然后将接口数据上传至 网络服务器,最终实现用户通过浏览器可以看到家里各种家 电设备的状态信息,并可以通过点击浏览器页面上的各种与家 电设备相关联的按钮来控制。
1系统总体设计
本系统基于物联网而设计,系统可分为感知层、网络层 和应用层等三层。系统的层次结构如图1所示。
本系统的感知层采用STM8S103单片机作为微控芯片,CC1101芯片作为RF无线收发芯片,该层功能是对终端电器 进行数据采集、数据收发以及状态监控,将电器的实时监控 数据通过RF无线网络传送到家庭控制中心。具体工作流程 为:CC1101无线收发芯片收到控制中心的数据后,对其进行 解调,格式正确则存入接收FIFO,通知MCU有新数据到达。 STM8S103微控芯片读取数据并进行解码,然后进行相应操 作,上传家电状态数据或则控制家电并更新数据上报控制中心。 STM8S103采集到家电状态信息后,将数据进行编码,将一定 格式的数据通过SPI写入CC1101的发送FIFO,由CC1101芯 片负责将数据发送给控制中心。
网络层采用STM32F103VCT6单片机作为核心处理芯 片,DM9000AEP芯片作为网络接口控制芯片,该层功能主 要是处理来自应用层的TCP/IP数据包和来自感知层的RF 无线数据包。网卡芯片DM9000AEP实现接收和发送TCP/ IP数据包,CC1101无线通信模块实现RF无线数据的收发, STM32F103VCT6负责将收到的数据进行处理。DM9000AEP 收到来自应用层TCP/IP数据包后,STM32F103VCT6对数据 进行解调、解码。再将数据封装成一定格式的RF数据包, 传给CC1101无线通信模块,发送给感知层。反之为逆过程。
应用层包括网站应用程序和网络应用程序,其功能是接 收用户请求,以实现对电器的远程控制。其中网站应用程序 主要实现人机对话接口,是用户进行帐户管理和家电控制的 综合系统,按照ASP的MVC模式进行开发,网站用户名密 码通过MD5不可逆加密算法进行处理,目前世界上仍不能对 MD5加密后的数据进行解密,以确保对家电控制的安全操作。 网络应用程序则是使用线程池处理来自多个网络层通信芯片的 TCP/IP数据包,同时将网站用户请求通过TCP协议发送给网 络层的网卡芯片DM9000AEP。这种分层结构将大量用户的控 制请求转由服务器CPU进行处理,从而大大降低了网络层单 片机STM32F103VCT6的负荷。
2系统硬件电路设计
2.1网络接口电路设计
主控芯片选用增强型的STM32F103VCT6单片机,内置 256 KB FLASH 和 48 KB SRAM,工作频率为 72 MHz,完 全可以满足TCP/IP数据包发送速度和接收速度的要求。采 用外部SPI FLASH来保存需要断电保存的数据,例如IP地 址、子网掩码、网关、客户账号及密码等。STM32F103VCT6 内部有20 KB的运行空间(48 KB的SRAM),完全可以满 足处理TCP/IP数据包所需要的10 KB左右的内存空间,无 需外部RAM,这样保证了数据的接收速度与发送速度。 STM32F103VCT6集成了 FSMC模块,具有四个片选输出, 支持 PC 卡 /CF 卡,SRAM, PSRAM,NOR 和 NAND。
网卡芯片采用DM9000AEP以太网控制器,该芯片具有 快速以太网MAC控制器、10M/100M自适应的PHY和4K DWORD值的SRAM, IO管脚兼容3.3 V/5.0 V电压,支持8位、 16位和32位接口访问内部存储器。
本设计为STM32F103VCT6单片机通过高速FSMC与 DM9000AEP网卡芯片进行通信,最高速度可达100 Mb/s。 DM9000AEP 的数据引脚 SD0-SD15 连接 STM32F103VCT6 的数据总线(FSMC_D0~FSMC_D15),通过CMD引脚区分 数据总线和地址总线,IOW引脚接单片机的写信号引脚 (FSMC_NOE), IOR引脚接单片机的读信号引脚(FSMC_ NEW),CMD引脚接单片机的PD11引脚(FSMC_A16),CS 引脚接单片机的片选信号引脚(LAN_NCS),PWRST引脚接 单片机的复位引脚(NREST),INT引脚接单片机的中断引脚 (PB0/LANINT),RX+,RX-,TX+,TX-两对差分信号线接 带有隔离变压器的RJ45座,LED2/LinkAct引脚和 LED1/Speed引脚用于显示各种状态。单片机通过FSMC总线 可以对DM9000AEP实现读控制寄存器、写控制寄存器、读 缓冲器、写缓冲器、位域置1、位域清零和软件复位。网卡芯 片的连接电路如图2所示。
2.2 RF无线通信电路设计
本文采用低成本、超高频无线收发器CC1101作为RF无 线收发芯片,工作在433 MHz频率上,可编程控制的数据传 输率最高可达500 Kb/s。CC1101芯片的接收或发送模式可通 过微控制器STM8S103F3编程配置。CC1101芯片处于接收状 态时,首先对收到的RF信号进行放大处理,然后通过混频 器将高频信号转换为中频信号,中频信号再被ADC转换为数 字信号,解调后的信号经前向纠错和数据包处理,正确无误 的数据存人接收FIFO,产生脉冲信号通知MCU收到新数据, MCU通过SPI 口读取数据。在发射模式下,MCU将待发送 的数据写入CC1101的发送FIFO, CC1101把需要发送出去的 数据通过GFSK载波的形式发送出去。
3系统软件设计
3.1终端程序设计
终端系统执行两个任务:CC1101无线收发信息、四线制 查询或控制家电状态。上电初始化时设置T0定时器和开启外 部中断。微控制器周期性采集家电状态信息,通过与存储信 息比较,发现家电工作状态异常或则改变,则将数据封装成固 定格式帧,通过CC1101发射数据,上报网络层。当外部中断0 接收到来自网络层的控制命令时,微控制器解包后对家电进行 控制,并且回发状态信息。
3.2网关(控制中心)程序设计
网关系统的功能主要有:通过DM9000AEP连接以太网, 实现网关与服务器通信;通过CC1101无线收发模块,实现网 关与终端通信;通过STM32F103VCT6实现数据处理、协议 转换。网关系统初始化包括ARP初始化、TCP初始化、内 存初始化、定时器初始化和网卡芯片初始化。初始化完成后,设置网卡芯片的IP地址、子网掩码、默认网关和本地监听的 端口。接着就开启中断,以便主动连接服务器,其中IO外部 中断之一用来处理来自DM9000AEP的请求,以便收发来互联 网的数据包;外部中断之二则处理来自CC1101的请求以便接 收来自感知层的RF信号,若中断没有发生则进入节电模式。 网络层的单片机控制流程如图3所示。
3. 3应用层程序设计
在应用层,系统采用MVC模式进行系统设计。控制器 的Servlet程序分为两部分:一部分与网站程序一起处理来自 浏览器的业务逻辑,包括用户注册、登录和控制电器等操作; 另外一部分构建一个独立的线程池,以便监听到指定端口, 等待来自网络层中各个设备的TCP连接,完成与网络层的会 话。ASP页面是人机接口,完成显示任务,其数据由Servlet 和JavaBean程序产生。JavaBean程序是处理用户请求和电器 控制的事务逻辑程序,读取数据库中的数据并给予存储和查 询。
4通信协议设计
控制器通过RF无线通信技术与终端节点通信,考虑无 线通信的干扰以及保密,RF通信采用特定的帧格式,以确保 通信可靠。无线数据包的帧格式如表1所列,其无线数据包 包含的会话序号为控制通信流程;目的ID和源ID是判断发 送方和接受方;节点类型用于判断终端节点功能;控制命令用 于控制家电的工作状态;数据字段用于携带家电的工作状态信 息;校验字段用于校验数据包是否收发正确。
本系统通信会话流程如图4所示。系统上电初始化后, 网络层的网关主动连接服务器,建立一个基于TCP协议的 Socket连接来进行会话,并发送自身设备的序列号和密码。 服务器监听到来自网络层通信MCU的请求后,验证序列号 和密码是否在数据库中存在,并将验证后的状态返回给通信 MCU,若验证通过后将进行会话。若感知层有新的节点,控 制中心收到入网申请后,根据节点功能分配ID,并且储存节点 信息。当控制中心收到外部中断,首先判断中断来自应用层还 是感知层,进行数据处理和协议转换后转发出去。当感知层 接到外部中断后,则根据信息直接报告当前工作状态,或则改 变工作状态后再上报新的工作状态。服务器收到信息后,将工 作状态与用户请求比对:若状态相同则报告处理完毕,反之则 重新发送控制命令。若任务完成,服务器端断开此条TCP连接, 则一次通信完成。用户可在远端通过手机或者电脑上网登录自 己的客户端,就可以完成对家电的远程控制。
图4通信流程图
5系统测试
5.1测试环境
控制器与服务器通信测试使用已配置好IP的商用电脑进 行测试,控制器与路由器连接,路由器与商用电脑连接,上电 自动完成测试。
5.2远程控制系统测试
5.2.1连通性测试
在网络设备端,采用Windows XP系统的Ping命令对 网络设备进行连通性测试。网络层精简的TCP/IP协议中同时 实现了 ARP和TCP协议,所以也可以使用APR、Telnet或 PathPing命令测试网络层设备的连通性。网络层设备能够被 Ping通,说明设备协议实现正确。通过以上各种方法进行测 试都表明网络层设备与互联网连通性良好,能够稳定进行局域 网通信。
5.2.2监听测试
在服务器端使用SocketTest工具软件监听服务器1000端口,开启接收数据提示。网络层微控制器STM32F103VCT6 主动向广域网服务器1000端口发起TCP连接请求,并将此设 备的ID和Password封包发送给服务器。能够将数据包准确 发送到服务器,说明网络层设备与互联网连通性良好,能够与 广域网通信。
6参数测试
微控制器STM32F103VCT6在使用8 MHz晶振时,用 Sniffer抓包软件测得其与服务器最高通信速度可达25 KB/s。 使用Ping命令,向192.168.1.101发送500个包,无丢包现象。 这500个数据包当中,返回速度最快耗时为41 ms,最慢耗 时为93 ms,平均耗时为53 ms,完全能满足家电远程控制的 实时性要求。
通过浏览器浏览家电状态信息,点击页面电灯、风扇的 开关按键,实现了远程控制电灯、风扇的开关状态。
7结语
随着物联网技术的深入发展,智能家居前景广泛并已 经得到了世界著名厂商的关注并将被运用于实际生活中,它 能够造福人类,让人们的生活更舒适、更便捷。本文针对基 于物联网技术的智能家居系统进行了研究,主要完成了系统 的总体设计,该智能家居系统以STM32F103VCT6单片机与 DM9000AEP网卡芯片为硬件平台,设计了 RF无线收发、家 电控制等模块,通过无线网络将各种家电设备连接在一起, 从而实现信息家电的网络化和远程监控。家庭数字化道路在 我国还有漫长的路要走,智能家居系统具有广阔的应用前景, 值得更深入地研究和探讨。
20211222_61c2f12773ff9__基于TCP