APP下载

基于TouchGFX和FreeRTOS的智能家居解决方案*

2018-09-07,,

单片机与嵌入式系统应用 2018年9期
关键词:视图底层智能家居

,,

(中国矿业大学 信息与控制工程学院,徐州 221116)

引 言

智能家居即(Smart Home),也被称为智能化住宅、感知住宅等[1],是现代电子技术、自动化技术、嵌入式系统及通信技术相结合的产物。

目前,智能家居控制系统面临着诸多问题:首先是价格昂贵,维护成本高[2],不利于产品的普及和推广;其次行业无统一标准[2],各个厂商提供的解决方案质量参差不齐,兼容性差;再次装置灵活性不高,安装拆卸以及维护困难,无法做到循环多次使用;此外,实时性不高,无法全方位稳定地实现一定区域内对家电和环境的监测。本文针对以上问题,提出了一套完整的解决方案。

1 相关技术

1.1 LPCXpresso5460X介绍

LPCXpresso板由恩智浦、Code Red Technologies、Embedded Artists共同研制[3],其中LPCXpresso54608器件性能优越,板载CMSIS-DAP/SEGGER J-Link,兼容MCUXpresso IDE和其他通用的工具链(如Keil和IAR),除了标准的LPCXpresso V3功能外,该板适用于一般工业控制、智能家居系统等多种环境[4],还提供了一整套外设接口:

① 272×480彩色液晶电容触摸屏;

② UART和SPI端口;

③ 多种扩展选项,包括Arduino UNO和PMod;

④ 128 Mb Micron MT25QL128 Quad-SPI闪存;

⑤ 16 MB MT48LC8M16A2B4 SDRAM;

⑥ 数字麦克风接口;

⑦ 全尺寸SD/MMC卡插槽;

⑧ 集成了板载10/100 Mbps以太网MAC。

1.2 TouchGFX

TouchGFX是一个用C ++编写的软件框架,可以在低功耗硬件上开发嵌入式图形用户界面(Graphic User Interface, GUI)应用程序。 TouchGFX嵌入式GUI技术优化了小型硬件平台(如ARM Cortex-M微控制器的利用率,能够在更少的MCU负载下实现更快速的图像更新[5]。

TouchGFX应用程序遵循分层模型,如图1所示,一个TouchGFX应用构建于TouchGFX Core层和OSAL/HAL层的预构建库或源代码之上。最顶层的Application层由开发人员来开发。HAL层用于特定目标板的移植,其中包括用于特定微控制器、DMA、触摸屏设备的标准驱动程序以及可用于多种评估板的板级支持包。此外,TouchGFX框架还为目标板提供OSAL层,以支持特定嵌入式实时操作系统。

图1 TouchGFX结构图

1.3 FreeRTOS

TouchGFX应用构建在嵌入式实时操作系统之上,采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性[5]。

在一个TouchGFX应用中,至少要求一个线程用于GUI的渲染和刷新,两个信号量用于控制对框架中心的资源的访问。TouchGFX可以通过实现oswrapper类来运行几乎所有的主流操作系统[5],其中FreeRTOS是实时操作系统内核,具有以下特点:

① 简单而功能强大,内核只有3个.c文件,提供功能包括任务管理、时间管理、信号量、消息队列、内存管理,可基本满足较小系统的需要[6]。

② 完全免费,源码公开、可移植、可裁减、调度策略灵活。

③ 大量开发者使用,并保持高速增长趋势。

④ 文档齐全,FreeRTOS的创始人RichardBarry编写了大量的移植代码和配套文档[7]。

2 硬件架构

2.1 系统总体架构

系统的输入信号主要有以下几种:

① 温湿度信号:温度形式有多种,最常见为气温、水温以及体表温度;湿度信号通常为空气相对湿度。

② 声音信号:主要来源于人和其他动物,此外还有环境中的各种声音。

③ 红外信号:主要来源于人和其他动物,可以作为区分人和动物跟外界的标志信号,也可以作为通信和控制信号。

④ 化学信号:如可燃气体,可用于预判和监测室外内火情的标志信号。

⑤ 震动信号:用于监测一定范围内的环境震动,可用于辅助判断外来侵入者。

⑥ 视觉(频)信号:应用较为广泛,可用于监控室内外的画面情况,但较为昂贵。

⑦ 触觉(点击)信号:系统提供图形用户接口进行人机交互,接收来自用户的点击。

输入到系统中的模拟信号经过A/D转换,和其他数字信号输入到控制系统中,经过MCU执行相应调度程序和算法,再提供对应的输出信号,使得智能家居做出相应的动作,其中输出接口主要有以下几种:

① PWM接口:控制电机/舵机的正反向转动,根据PWM驱动极性之不同,所用的PWM接口数不同。

② 通信接口:UART/I2C用于程序下载调试以及接口端口数据值读取。

③ I/O接口:多路,用于功能执行和状态显示等。

④ 定时器接口:用于测量外界有关信号脉冲读取。

根据系统输入输出信号及系统原理,设计出系统总体框图如图2所示。

图2 系统总体框图

2.2 系统整体电路

根据系统功能设计的电路主要包括灯光/彩灯控制WS2812BS、门窗控制、电机驱动、防盗模式、防火模式、节能模式等。防盗模式通过震动传感器实现,防火模式通过DHT11与MQ-2共同实现,节能模式通过HCSR501实现。

3 软件设计

3.1 软件设计模式

由于系统顶层GUI采用TouchGFX框架,采用C++写成;而底层LPCXpresso54608采用C语言写成,为了使得系统上下层衔接得当,采取分层架构来实现系统的低耦合和高内聚。

实现示意图如图3所示,系统软件总体采用一种典型的模型-视图分离设计模式,称之为MVP架构。其中,M代表Model,为模型(层);V代表View,为视图(层);P代表Presenter,为控制(层)。对于每个采用本架构的应用来说,其中只有一个Model,但是有很多对View和Presenter,其中每一对View和Presenter对应一个屏幕。

图3 实现示意图

Model(模型层)负责处理整个应用UI的状态,并且还需要和系统的其余部分(后端)通信,以获取UI层从后端所获取的信息。在这种应用场景下,Model相当于是整个系统的入口,当Model发生改变时,当前的Presenter会接收到Model改变的消息,这个过程是通过应用中的ModelListener即模型监听器来完成的。

View(视图层)负责放置和重绘UI层的图形元素。View能够获取用户事件,比如说点击事件,并且根据时间作出反应,通常来讲是将事件转移给本视图的Presenter。当Presenter要求View做出改变时,View还能响应来自Presenter的应答。

Presenter(控制层)负责编排模型和视图,处理与UI元素相关的逻辑。一是在模型中发生更改时,通知Presenter,Presenter采取相应的操作同步视图; 二是在视图中发生更改时,通知Presenter,Presenter采取相应措施来同步模型。

但是要实现实际功能,需要和底层硬件进行衔接。Model层提供了和底层硬件衔接的接口。特定的目标板如LPCXpresso54608使用C语言,可独立实现特定的功能,比如传感器数据的采集,此时只要在Model中实现特定的函数接口,便可在FreeRTOS中注册和创建任务设置优先级等流程,即可实现前后端的衔接。下载特定的板级支持包,配置、编译等一系列操作之后,即可将程序下载至特定的目标板上运行,从而达到系统预定功能。系统软件设计模式和总体架构图如图4所示。

图4 系统软件设计模式和总体架构图

3.2 系统软件功能

系统软件的主要功能包括:

① 人手点击触屏LCD事件监听,触摸屏控件回调函数处理。

② 从UI到底层:视图层事件经过控制层和模型层,映射为给予底层元器件信号和动作执行。

③ 从底层到UI:底层元器件状态改变,通过接口与模型层通信和控制层处理,来更新UI。

④ FreeRTOS根据任务优先级来进行任务调度以及消息传输。

⑤ LPCXpresso54608和扩展板之间的接口通信。

⑥ 扩展板对各个传感器信号的采集处理,对于上层指令执行以及状态回传。

无论是从UI到底层,还是从底层到UI,在中间操作系统的支持和任务调度之下,整个系统构成一个闭环模式,确保了各个模块之间消息和事件的畅通,保证工作的实时有序。

4 实现与评估

国家统计局2016年统计数据表明,中国人均住房建筑面积为40.8平方米[8]。以一家三口的小康之家为例,40.8×3=122.4平方米,常见于当前房市三室两厅一卫户型,如图5所示。以此构建实物模型来模拟真实场景下的智能家居控制。

图5 模型设计和制作

以此实物模型为基础,进行相关部件的安装以及线路的布置。依据设计功能,设计用户交互软件(如图6所示),实现了如图3所示的功能。

图6 系统软件界面

经过分析评估,本系统具有以下特色:基于32位ARM内核,标准统一,功能专一,同时兼具扩展性,兼容性好;主控系统和扩展系统,体积小巧,功能强大;成本低廉,超低功耗,真正做到价格可控,利于向大众普及推广;采用FreeRTOS,系统实时性高;系统接口丰富,灵活性高,安装拆卸以及维护容易,便于二次开发和升级; 具有良好的系统交互功能,可带给用户友好的使用体验。

结 语

猜你喜欢

视图底层智能家居
航天企业提升采购能力的底层逻辑
基于Zigbee的无线通信技术在智能家居中的应用
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
关于智能家居真正需求的探讨
智能家居更贴心
回到现实底层与悲悯情怀
基于LD3320的智能家居控制