基于LabVIEW与ARM微控制器的智能家居控制系统
2015-09-22李红丽彭文华
李红丽+彭文华
摘 要:基于LabVIEW与ARM微控制器的智能家居控制系统主要由上位机、处理器STM32F107、液晶屏、外设(继电器控制板)构成。文章在硬件方面采用了ST公司的STM32F107VCT6作为系统的主控芯片,配合串口模块、液晶屏显示模块,分别设计了各个模块的电路原理图。软件方面则使用ST公司官方提供的固件库进行底层驱动设计,以实现串口、液晶屏等驱动程序,方案中同时采用LabVIEW来编写上位机控制程序实现远程控制功能。
关键词:智能家居;ARM;LabVIEW;继电器
中图分类号:TP29 文献标识码:A 文章编号:2095-1302(2015)09-00-02
0 引 言
近年来,物联网[1]被认为是继互联网之后最重大的科技创新,成为了全球关注的热点领域。 智能家居属于物联网的一个重要分支[2],又称智能住宅,英文名为Smart Home[3],是指以住宅为基础平台,利用综合布线、网络控制、安全防范等技术将与家居生活有关的设施进行集成,其目标是建立一个从家庭到小区乃至整个城市的综合信息服务和管理系统,以提高住宅技术水平,优化居住环境[4,5]。 本文介绍了一个实用的智能家居系统中的分支系统——基于LabVIEW与ARM微控制器的智能家居控制系统,利用32位ARM配合LabVIEW上位机实现智能家居中的远程控制功能。
1 系统方案设计
系统的总体结构如图1所示,整个系统主要由上位机和下位机两大部分组成,采用LabVIEW编写上位机显示程序[6,7];下位机主要由ARM最小系统、液晶屏显示电路、外设等组成。STM32F107作为主控芯片,通过RS-232串口控制外设的状态,为了保证控制的准确性,每次状态有改变时,外设都要向ARM返回其改变后的状态,并在上位机上显示出来。
图1 系统总体结构图
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 “i80-system”接口信号
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 上位机显示界面
3.2 下位机设计
系统初始化,液晶屏显示欢迎界面,界面内容包括该系统名字以及该系统在使用过程中需要注意的各项事项。ARM在接收上位机发来的指令后,将相应的命令按照通信协议打包发送给外设,外设再将变化后的状态按通信协议返回给ARM,ARM提取数据并传输给上位机显示。下位机流程如图4所示。
3.2.1 USART串行通讯程序
本系统中通过设置波特率寄存器USART_BRR达到配置不同波特率的目的。波特率[10]计算如式(1):
(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 下位机流程图
4 系统测试
使用本系统进行实际的远程控制,我们选取的实验终端为一个配备了四个继电器的控制板,上位机控制协议如以下表1所列。
表1 上位机控制协议上位机信号 继电器状态
1o 继电器1开
1c 继电器1关
2o 继电器2开
2c 继电器2关
3o 继电器3开
3c 继电器3关
4o 继电器4开
4c 继电器4关
ao 继电器1-4全部开
ac 继电器1-4全部关
按下上位机显示界面的按键后,对应的继电器会实时做出响应,如果继电器打开了,则上位机显示界面上对应的灯会亮起,如果继电器关闭,则上位机对应的灯会熄灭。正常情况下,液晶屏显示欢迎界面,包括系统的名字及系统的相关注意事项。一旦整套系统出现故障,液晶屏显示“ERROR”,ARM向蜂鸣器发出报警信号,蜂鸣器响起,测试结果达到了系统预期效果。
5 结 语
本文设计并实现了一套基于LabVIEW与ARM微控制器的智能家居控制系统。ARM处理器作为下位机接受上位机发送来的指令,实现了照明、家电(如空调、热水器等)、窗帘、防盗报警、电话等远程控制。以前的智能家居控制系统由于功能要求不是很高,大多数都采用8位微控制器作为核心,本系统采用32位ARM处理器搭配LabVIEW编写的上位机,这从根本上将智能家居的性能提高了一个很大的层次,首先在控制方法上由定时变为了实时远程,其次在任务执行方面由单任务串行变为可多任务并行,最后加上终端可视化界面,完成了一整套功能强大、界面友好、操作简单的智能家居远程控制系统。
参考文献
[1]田景锡.物联网概论[M].南京:东南大学出版社, 2010.
[2]唐亮.我国物联网产业发展现状与产业链分析[D].北京:北京邮电大学,2010.
[3] Kyeong-AhJeong,Salvendy, Gavriel,Proctor, Robert W. Smart home design and operation preferences of Americans and Koreans [J]. Ergonomics, 2010, 53(5): 636-660.
[4]侯冉冉,张亮.关于智能家居系统的探讨[J]. 住宅智能化与节能专辑, 2010, 4(4): 2.
[5]吕璐,郝恩民,许芳婷.当前国内智能家居的发展探讨[J].电子制作, 2015, 4(8):235.
[6]张宇,黄伟志,郝岩.基于LabVIEW的多功能数据采集系统的设计与实现[J].自动化仪表, 2013, 34(8):24-26.
[7]徐菲,梁志剑,裴东兴,等.基于LabVIEW的多通道数据采集系统[J].电子测试,2012(8):56-58.
[8] STM32F107xx芯片数据手册.意法半导体(中国)投资有限公司MCU技术支持[Z]. 2010-1-10.
[9]龙脉工作室. LabVIEW8.2中文版入门与典型事例[M].北京:人民邮电出版社,2010:2-96.
[10]丁元杰.单片微机原理及应用[M].北京:机械工业出版社, 2009: 1-73.