基于LabVIEW与ARM微控制器的智能家居控制系统
扫描二维码
随时随地手机看文章
引 言
近年来,物联网[1] 被认为是继互联网之后最重大的科技创新,成为了全球关注的热点领域。 智能家居属于物联网的一个重要分支[2],又称智能住宅,英文名为Smart Home[3],是指以住宅为基础平台,利用综合布线、网络控制、安全防范等技术将与家居生活有关的设施进行集成,其目标是建立一个从家庭到小区乃至整个城市的综合信息服务和管理系统,以提高住宅技术水平,优化居住环境[4,5]。 本文介绍了一个实用的智能家居系统中的分支系统——基于LabVIEW 与ARM 微控制器的智能家居控制系统,利用 32 位 ARM 配合LabVIEW 上位机实现智能家居中的远程控制功能。
1 系统方案设计
系统的总体结构如图 1 所示,整个系统主要由上位机和下位机两大部分组成,采用LabVIEW 编写上位机显示程序[6,7]; 下位机主要由ARM 最小系统、液晶屏显示电路、外设等组成。STM32F107 作为主控芯片,通过 RS-232 串口控制外设的状态,为了保证控制的准确性,每次状态有改变时,外设都要向ARM 返回其改变后的状态,并在上位机上显示出来。
2 系统的硬件设计
2.1 微控制器选型
该系统中用到的处理器 STM32F107VCT6[8] 是 STM32 增 强型系列产品,该处理器是一个 32 位处理器,基于 ARM V7 架构的 Cortex-M3 内核,主频 72 MHz,内部含有 256 字节的 FLASH 和 64 K 字节的 SRAM,拥有 32 位宽的数据路径、寄 存器库和内存接口,其中包括 13 个通用寄存器、两个堆栈指 针、一个链接寄存器、一个程序计数器和一系列包含编程状 态寄存器的特殊寄存器。具有处理速度高,代码量少的优点, 嵌入式快速中断控制器支持延时操作和实时性能。
2.2 TFT 液晶屏选型
TFT 是“Thin Film Transistor” 的简称, 是指薄膜晶体管(矩阵)——可以“主动地”对屏幕上各个独立的像素进行控制,图像产生的基本原理为 :显示屏由许多可发以出任意颜色光线的像素组成,主要控制各个像素显示相应的颜色就可以达到目的。本系统采用TFT LCD 屏,LCD 屏的分辨率为320*240,262 K 色,采用ILI9320 控制器,包括 720 路源极驱动以及320 路的栅极驱动,自带有显存,容量为172 800 字节。ILI9320 控制模块与 STM32F107 处理器之间的接口为“i80- system”接口,用到的信号如图 2 所示,其中DB 为数据总线, 其它的信号为控制信号。 由于STM32F107 不支持FSMC,所以本系统通过GPIO 总线对屏进行访问操作,实现图形界面的显示。
2.3 串口模块设计
本系统采用 ARM 自带的串行通讯模块。STM32F107 的 串口非常丰富,功能也很强劲,最多可提供 5 路串口。本系统 采用其中两个串口,一个用来进行上位机命令的实时接收,另 一个用来实时控制外设。本系统选择的串口接口是 9 个引脚的RS-232 接口。由于处理器 STM32F107 输出的是 TTL/COMS 电平,而 PC 串口为 RS-232 电平,所以硬件设计使用了美信 (MAXIM)公司的电平转换芯片 MAX232 实现双向电压转换。
3 软件设计
软件部分主要包括上位机软件和下位机软件,上位机软 件由 LabVIEW 编写完成,主要负责人机互通,发送控制命令。 下位机软件主要由 STM32 底层驱动程序、串口通讯程序、液 晶屏显示程序组成。
3.1 上位机设计
LabVIEW[9] 是一种采用图标代替文本行创建应用程序的 图形化编程语言,本系统通过 LabVIEW 提供的 VISA 控件, 设置串口为 COM1口,波特率为 9 600 b/s,采用事件结构对 用户界面做出响应,上位机显示界面如图 3 所示,每当按下显 示界面的一个按键则产生一个事件,事件控制外设状态。
3.2 下位机设计
系统初始化,液晶屏显示欢迎界面,界面内容包括该系 统名字以及该系统在使用过程中需要注意的各项事项。ARM 在接收上位机发来的指令后,将相应的命令按照通信协议打 包发送给外设,外设再将变化后的状态按通信协议返回给 ARM,ARM 提取数据并传输给上位机显示。下位机流程如 图 4 所示。
3.2.1 USART串行通讯程序
本系统中通过设置波特率寄存器 USART_BRR 达到配置 不同波特率的目的。波特率 [10] 计算如式(1):
这 里 的 fCK 是 给外 设 的 时 钟,USARTDIV 是 一 个 无 符 号 的 定 点 数 :USARTDIV=DIV_Mantissa[11 :0]+DIV_ Fraction[3 :0]/16
DIV_Mantissa[11 :0] 定 义 USART 分 频 器 除 法 因 子(USARTDIV) 的整 数部 分,DIV_Fraction[3 :0] 定义了 USART 分频器除法因子(USARTDIV)的小数部分,在写 入USART_BRR 之后,波特率计数器会被波特率寄存器的新 值替换。因此,不要在控制进行中改变波特率寄存器的数值。 ARM 与外设之间的通信协议 :数据包 = 前导码 + 地址 + 命令控制码 + 后导码。
3.2.2 液晶屏显示模块程序
TFT LCD 的初始化主要是在函数 ili9320_Initializtion() 中实现的。首先,我们调用 LCD_Init()函数,对 TFT LCD 使用的 GPIO 管脚进行初始化,完成了 GPIO 的初始化后,我 们就可以正常访问 TFT LCD 驱动芯片了,程序首先读取驱动 芯片的 ID,然后依据驱动芯片的型号执行相应的初始化程序, 本系统所采用的驱动芯片的 ID 为 9320。
4 系统测试
使用本系统进行实际的远程控制,我们选取的实验终端 为一个配备了四个继电器的控制板,上位机控制协议如以下表 1 所列。
按下上位机显示界面的按键后,对应的继电器会实时做 出响应,如果继电器打开了,则上位机显示界面上对应的灯会 亮起,如果继电器关闭,则上位机对应的灯会熄灭。正常情况下,液晶屏显示欢迎界面,包括系统的名字及系统的相关注意事项。 一旦整套系统出现故障,液晶屏显示“ERROR”,ARM 向蜂 鸣器发出报警信号,蜂鸣器响起,测试结果达到了系统预期 效果。
5 结 语
本文设计并实现了一套基于 LabVIEW 与 ARM 微控制器 的智能家居控制系统。ARM 处理器作为下位机接受上位机发 送来的指令,实现了照明、家电(如空调、热水器等)、窗帘、 防盗报警、电话等远程控制。以前的智能家居控制系统由于功 能要求不是很高,大多数都采用 8 位微控制器作为核心,本系 统采用 32 位 ARM 处理器搭配 LabVIEW 编写的上位机,这 从根本上将智能家居的性能提高了一个很大的层次,首先在控 制方法上由定时变为了实时远程,其次在任务执行方面由单任 务串行变为可多任务并行,最后加上终端可视化界面,完成了 一整套功能强大、界面友好、操作简单的智能家居远程控制 系统