当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于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,搭建了一个应用开发平台,为应用软件的开发提供了良好的软件环境。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭