基于STM32F的智能家居服务网关设计
扫描二维码
随时随地手机看文章
0 引言
随着物联网技术的飞速发展,将传统的Internet与新型的无线传感器网络整合的趋势越来越明显,嵌入式服务网关既是无线传感器网络的协调器网关,又是远程WEB 的服务器,它实现两个不同协议的网络之间的通信。同时也是将无线传感器网络接入Internet,从而实现物联网概念的关键设备。物联网服务网关在未来的物联网时代将会扮演非常重要的角色,它将成为连接物联网感知层网络与传统通信网络的纽带。物联网网关可实现感知网络和基础网络以及不同类型的感知网络之间的协议转换,既可以实现广域互联,也可以实现局域互联。并且具有广泛的感知网接入、通信协议转换和强大的系统管理等特点[1]。利用嵌入式系统设计的服务网关可以有效降低成本,利用家庭智能化的普及。
1 系统总体结构设计
系统的总体结构如图1 所示。在远端的移动智能终端或电脑通过Internet 访问到无线传感器网络,而嵌入式WEB 服务器提供了交互式的页面访问。如果访问数据量大或者需要对数据有统计、分析及处理,那么需要建立网页服务器和数据库服务器 [2]。在物联网框架下的智能家居是一个复杂的系统,需要多人合作完成,如Internet 数据库服务器的设计、建立感知层网络。文中重点介绍服务网关的设计,包括嵌入式WEB、近程终端、WSN 协调器3个部分所组成的一体化终端。它是两个异构网之间的桥梁,起着重要的衔接作用[3]。
图1 系统总体框
2 系统硬件设计
本设计中智能家居系统的硬件由3 部分组成:服务网关、终端节点和路由节点。
(1)服务网关
服务网关硬件框图如图2 所示。由ARM 主控制器、Zigbee 模块、以太网PHY、TFT-LCD 液晶触
摸屏、及最小系统模块5 部分组成。
图2 服务网关硬件框
主控制器采用基于ARM(Cotex-M3) 核的STM32F107 互联型微控制器。它拥有64K SRAM、
256K FLASH、以太网MAC 等丰富的存储器及外设资源。Zigbee 模块是由TI 公司的CC2430 作为主控芯片,在服务网关中它是WSN 的协调器,通过USART 实现与主控制器之间的数据通信。以太网模块采用以太网的物理层芯片DM9161A,通过RMII与主控制器相连接,其50M 时钟由ARM 的MCO提供。液晶触摸屏通过I/O 接口与ARM 相连,实现人机对话。
[!--empirenews.page--]
(2)终端节点与路由节点
传感器节点是组成传感网的最基本单元,主要有射频通信模块和传感器数据采集模块组成。终端
节点与路由节点的硬件一样,不同之处主要表现在软件上。
终端节点硬件图如图3 所示。根据CC2430 的特点,它是一款集Zigbee 协议栈、RF 射频模块以
及增强型51 核于一身的SOPC,可以满足对数字或模拟传感器模块收集的数据处理及在WSN 中的通传输任务。
图3 终端节点硬件框
3 系统软件设计
系统软件分为运行于ARM 上的服务网关软件和运行于CC2430 模块上的WSN 网关软件。考虑到服务网关软件的总体设计的复杂程度以及层次性模块化的设计理念,系统采用嵌入式操作系统uCOS-II 作为系统资源的管理,对系统功能任务化。服务网关软件总体设计框图如图4 所示。
图4 服务网关总体设计框
3.1 服务网关软件层次结构
服务网关软件层次结构分为:底层驱动层,系统层,应用层。
(1)底层驱动层
底层驱动层包括FWLib 和BSP。FWLib 是ST公司为了对其ARM 的支持而推出的驱动支持软件,
提供系统初始化函数,对中断和操作系统的支持,存储器分配以及所有片内外设的驱动,从而方便软件的开发。此外,用户还应开发针对应用的板级支持包(BSP),在本系统中BSP 的内容主要是应用开发板相关的硬件驱动。
(2)系统层
系统层包括了操作系统和中间件软件LwIP,操作系统是对软硬件资源的管理,其他各部分软件都
要以操作系统为中心。操作系统移植的过程中,主要任务是改写针对处理器和编译器相关的部分,向上为应用任务提供支持,向下连接驱动程序来实现对硬件的操作[4]。LwIP 是一个针对嵌入式系统的TCP/IP 协议栈,本程序包含其基本功能:TCP、IP、UDP、ICMP。LwIP 的操作系统模拟层提供了向操作系统移植的方便,因其包括了任务间通信的机制:信号量、消息邮箱。
(3)应用层
本设计根据模块化和功能独立性原则,将所有的应用程序分成7 个应用任务,分别是引领全局的
根任务,与输入输出有关的按键任务和LCD 显示任务,与嵌入式WEB 相关的TCP 发送任务和TCP 超时重传任务,与WSN 协调器相关的串口数据发送任务和Zigbee 控制命令任务。
[!--empirenews.page--]
3.2 软件设计流程
软件设计流程分为服务网关根任务软件设计流程和WSN 网关软件设计流程。
(1)服务网关根任务软件设计流程
操作系统环境中,每个任务都是无限循环的相对独立的功能模块,通常都会有一个根任务,它应
该被设定该系统的核心功能业务。如图5 为根任务程序流图,首先板级初始化是对硬件的抽象和封装,为应用程序提供更友好的接口。然后创建其余6 个应用任务,创建格式与创建开始任务类似。最后程序进入WEB 服务主循环程序,为了让别的优先级低的任务能够执行,必须调用任务挂起函数。
图5 根任务流程
(2)WSN 网关软件设计流程
WSN 网关也叫WSN 协调器,它是整个传感器网络的总控制中心和数据采集的汇聚点,无线传感
器节点分布在其覆盖范围内[5]。传感网网关的软件流图如图6 所示。程序开始建立Zigbee 网络,此时网络中没有其他节点。然后进入无线监控程序,查找是否有请求加入网络的信号产生,若有新节点信号申请则根据信号类型添加入网并分配网络号,若不是新节点,则判定节点传输的数据有效性,有效则接收并发送到ARM 网关,否则丢弃。
图6 WSN 网关软件流程
4 结语
文中系统地讨论了物联网服务网关这一项基于物联网应用的关键性技术[6-7],结合家庭自动化进行
应用设计。在硬件方面,按照嵌入式板级硬件设计流程,设计并实现了一种基于ARM 处理器的低成本网关硬件。软件设计上采用自顶向下和分层的设计方法,结合网关硬件,利用嵌入式操作系统
uCOS-II 和协议栈LwIP,搭建了一个应用开发平台,为应用软件的开发提供了良好的软件环境。