基于硬件 TCP/IP 协议的物联网网关设计
扫描二维码
随时随地手机看文章
0 引 言
小型智能家居应用系统的网关数据流量较小,接入方式多样,对成本要求较高,功能上一般比较精简。现今市面上的网关大多采用高端嵌入式处理器加操作系统设计,预置有丰富的应用软件,配置较高,导致成本高,不太适用于小型智能家居等应用场合 [1]。本文旨在利用高性价比 STM32 嵌入式处理器与基于硬件 TCP/IP 协议的 W5500 以太网芯片等多种接入模块,实现成本低廉、接入方式多样的智能家居网关。
1 技术架构
智能家居网关的核心功能是路由与控制,需要通过WiFi,蓝牙,RJ 45,RS 485 等接入方式与终端产品进行数据交互,实现网络配置、路由管理、数据转发、远程控制等功能 [2]。本文设计以小型智能家居应用系统为应用对象,以低成本、快速开发、多方式接入为主要需求点。根据功能需求,规划设计的技术架构如图 1 所示。
网关硬件以 STM32F103CBT6 处理器为核心, 外 扩W5500 以太网模块、ESP8266 WiFi 模块、HC-05 蓝牙模块等,以便接入具有多种通信方式的智能家居终端产品,并在网关完成协议转换与数据转发。其中,以太网模块选用 W5500以太网控制器实现相应功能。W5500 是 WIZnet 公司开发的一款以太网控制器,它采用全硬件 TCP/IP 协议栈架构,集成了 10/100 M 以太网数据链路层(MAC)及物理层(PHY),支持 TCP,UDP,ICMP,ARP,IPv4,IGMP 及 PPPoE 协议,能提供 8 个独立的硬件 Socket 通信客户端,使得用户使用单芯片就能够在应用中实现以太网连接,缩短了开发周期,减少了成本 [3]。
(1)网关软件基于轻量级嵌入式操作系统 μC/OS-III实现。
(2)底层包含 W5500 以太网驱动、HC-05 蓝牙驱动、ESP8266 WiFi 驱动,以及其他 I/O 外设驱动。
(3)应用层则根据业务需求实现网络配置、协议转换、路由管理、数据转发、远程控制等。
2 主要硬件电路设计
2.1 主控模块
主控模块主要完成协议转换及数据转发功能。本文设计采用基于 M3 内核的 STM32F103CBT6 芯片作为核心处理单元,设计时钟电路、复位电路、启动模式选择电路、SWD仿真调试电路等 [4]。
2.2 W5500 以太网模块
基 于 W5500 的 以 太网模块电路如图 2 所 示, 由W5500 芯 片、10 bit/100 bit 网络工作模式选择电路、25 MHz 时钟电路、复位电路、SPI 接口及电源滤波电路构成。其中,W5500 的 SCSn,SCLK,MISO,MOSI 分别与STM32F103CBT6 的 PA4,PA5,PA6,PA7 连接,作为从机基于 SPI 接口与 STM32F103CBT6 的主机通信 ;W5500 通过差分信号 TX+,TX-,RX+ 和 RX- 连接隔离变压器的 RJ 45接口,与其他网络设备实现串行传输。
2.3 WiFi 及蓝牙模块
WiFi 及蓝牙模块电路如图 3 所 示。WiFi 模块由ESP8266 WiFi 模块及其电源控制电路构成,蓝牙模块采用HC-05 实现,两者均采用 2 线串口与 STM32 主控模块连接,并通过 AT 指令进行模块初始化配置与数据通信。最终形成的网关实物如图 4 所示。
3 硬件驱动程序设计
3.1 W5500 网络驱动程序
W5500 是基于硬件 TCP/IP 协议的网络芯片, 通 过STM32 配置 W5500 的 SPI 接口及相关寄存器就可实现与网络的连接。W5500 驱动程序流程如图 5 所示。初始化 W5500需设置模式寄存器(MR)、中断屏蔽寄存器(IMR)、重发时间寄存器(RTR)、重发次数寄存器(RCR);建立网络通信需配置本机硬件地址寄存器(SHAR)、网关地址寄存器(GAR)、子网掩码寄存器(SUBR)、本机 IP 地址寄存器 [5](SIPR)。
3.2 WiFi 及蓝牙串口驱动程序
STM32F103CBT6 共有三个可独立使用的串口。本文设计中,COM1 留作备用,可连接 PC 或其他串口设备 ;COM2与 COM3 分别连接 WiFi 与蓝牙模块。串口配置流程如图 6所 示, 设计时钟配置、I/O 重映射, 设 置 Tx,Rx 的 I/O功能模式及 I/O 的 Speed,初始化串口模块,使能发送和接收中断,以及使能串口等。
4 应用案例
基于前述网关及 Yeelink 云平台,可构建简单的物联网应用系统。下面以采集一路环境温湿度数据,并通过网络将数据上传至 Yeelink 云平台,再通过网页或 APP 访问相关数据的远程温湿度采集系统为例,介绍具体实现过程。首先按图 7 所示构建温湿度管理系统,该系统主要由温湿度传感器DHT11(前述 STM32 网关板载传感器)、物联网网关、网络环境及 Yeelink 云平台组成。
搭建好硬件后,按照“初始化 DHT11,W5500 →配置网络连接参数→读取 DHT11 温湿度数据(次 /5 s)→将温湿度数据封装为 HTTP 数据包→连接 Yeelink 云平台→上传数据(POST 方式)”的步骤完成相关程序开发及软件配置,即可得到图 8 所示的 Yeelink 云平台温湿度采集界面。
5 结 语
本文针对精简功能型智能家居应用场景,基于 STM32嵌入式处理器及硬件 TCP/IP 协议网络芯片 W5500 等,设计了一种支持 RJ 45,WiFi,蓝牙等多种接入方式的小型网关。该网关采用硬件 TCP/IP 方案,可支持 8 个 TCP/IP 客户端访问并预留有多类接口,接入方便、性价比高,可用于小型智能家居及其他物联网应用系统的快速搭建。