基于Android的智能家居控制系统软件设计研究
2015-11-26陆兴华吴恩燊黄冠华
陆兴华++吴恩燊++黄冠华
摘 要:基于Android系统在前期智能家居控制系统硬件电路设计的基础上,进行了智能家居控制系统的软件开发。传统的智能家居控制系统软件开发采用的是单线程驱动方式,容易导致系统故障和控制指令中断。基于Android客户端提出了一种基于Visual DSP++4.5多线程嵌入式程序加载的智能家居控制系统软件设计方法。该方法首先进行了基于ARM9处理器的主控系统硬件设计,智能家居控制系统软件设计主要包括系统的初始化设计、程序加载设计和CAN通信模块设计等。实验调试结果表明,所设计的智能家居控制系统功能可实现多线程处理,模块集成化较好,可靠性高,具有较大的应用价值。
关键词:智能家居;控制系统;软件;嵌入式
中图分类号:TP13 文献标识码:A 文章编号:2095-1302(2015)11-00-03
0 引 言
随着人工智能和自动控制技术的发展,智能家居控制进入了人们的家庭生活,智能家居是通过物联网技术和通信控制技术把家庭的视频设备、照明系统、空调系统和烹饪系统以及各种网络家电进行智能控制,可见智能家居控制系统兼备了建筑、网络、系统控制、DSP信号处理、电气自动化的集成化人工智能系统,可实现对家居家电的远程控制、安防监控和冷暖控制等,为用户提供全方位的信息交互和资源共享功能。在手机App客户端广泛应用的今天,基于Android系统的App服务终端进行智能家居控制,可以实现对个性化家庭家居的信息集成和控制,提高家庭的生活质量。因此,研究基于Android的智能家居控制系统具有重要意义。
智能家居控制系统主要包括通信模块、硬件模块和软件模块设计三大部分,前期在进行了智能家居控制系统的硬件模块和通信模块设计的基础上,本文对智能家居控制系统的软件模块进行设计,传统的智能家居控制系统软件模块的设计方法主要采用的是单线程驱动方式,容易导致系统故障和控制指令中断,对此,本文提出了一种基于Visual DSP++4.5多线程嵌入式程序加载的智能家居控制系统软件设计方法,系统设计主要包括了系统的初始化设计、程序加载设计和CAN通信模块设计等,最后通过仿真实验进行了性能测试,展示了本文方法在实现智能家居优化控制中的优越性能,得出有效结论。
1 智能家居控制系统的硬件基础和软件流程
1.1 智能家居控制系统的硬件设计总体结构
智能家居是互联网影响之下的物联网的重要应用,智能家居控制是物联网技术在家庭智能控制中的重要体现,通过智能家居控制实现对家电和家用设备的集成化管理和远程遥控控制,基于Android客户端进行智能家居控制系统设计主要包括了系统的硬件电路设计和软件设计。系统硬件部分主要包括了时钟电路,智能家居控制的复位电路、程序加载电路和电源供电电路以及A/D电路。智能家居控制系统采用AD9225的电源,提供220 V供电,分辨率为12位,A/D采样的最大采样频率为25 MHz,系统功能主要实现家电控制、窗帘控制、安防控制,因此在系统控制中采用S3C2440A ARM9处理器主控系统,由2 片16 b宽度的32 M SDRAM 组成,本文给出的智能家居控制系统的ARM9处理器主控系统的接口电路如图1所示。
图1 智能家居控制系统ARM9处理器主控系统接口
ARM9处理器主控系统外接恒定的4 mA电流,信号调理部分采用两个8550的PNP型三极管,运算放大器采用AD8034,选用了四个200 kΩ的贴片电阻来实现低通滤波,实现智能家居控制信号的6通道同步采样。通过上述描述,实现对智能家居控制系统的主控系统硬件部分设计描述。
1.2 智能家居控制系统的软件设计算法和流程
在上述硬件设计的基础上,进行控制系统的软件开发,基于Visual DSP++4.5多线程嵌入式程序加载方式进行智能家居多线程控制。软件开发前,根据智能家居的控制任务进行DSP的I/O设备的配置,以Blackfin的存储器为Emulator终端,进行软件编译,在模拟环境中通过Emulator进行控制算法的程序加载,本文采用的智能家居控制算法为模糊PID神经网络控制算法,算法的实现流程描述如下:
假设智能家居控制系统中共有ki个节点,家居控制系统的输入脉冲控制信号为x(t),计算家居控制系统的传感节点矢量加权权重ωj与相邻阶段权重的欧式距离,见式(1):
(1)
其中,ωj=(ω0j,ω1j,…,ωk-1,j)T表示智能家居控制物联网系统的BP神经元的输入函数,控制的家居家电节点的集合为V={v1,v2,v3,…,vN},在Android客户端,求得控制目标函数的训练序列,得到模神经网络节点Nj*,;根据多线程自组织特征映射技术,把家居传感网络的智慧节点加权到Nj*几何邻域NEj*(t),由此实现对智能家居控制系统的BP模糊神经网络控制,控制的目标迭代函数为:
(2)
其中,α(t)和NEj*(t)的最优取值为:
(3)
根据上述算法设计,通过程序加载,把程序源采用编译工具进行汇编处理,把源代码生成可执行文件,在开发智能家居控制软件时,在X86的计算机系统中安装ARM,PowerPC编译程序,直接对硬件操作进行进程管理和内存管理,设备驱动程序(device driver)采用API函数访问智能家居控制的硬件系统,Linux系统中负责网络通信的部分,通过文件系统节点访问字符设备,在Linux/Unix系统中,采用嵌入式设计,进行智能家居控制系统的数据采集、电源测量、CAN通信和接口E2PROM烧写,在智能家居控制执行程序开始后,进行时钟采样和终端复位操作。智能家居控制系统的初始化程序包括了CAN初始化、PPI初始化和A/D采样初始化,A/D采样完成后进行上位机通信,上传用户在Android客户端的控制请求,当上位机收到执行程序后进行控制合法性判断,判断收到的是否为智能家居控制的请求信号,如果是,则根据收到的数值进行家居控制,如果不是则恢复到静默状态,执行同步串口0初始化,实现智能家居的全程控制,综上分析,得到智能家居控制系统的软件设计与实现流程如图2所示。
图2 智能家居控制系统软件开发流程
2 智能家居控制系统的软件模块设计与实现
在上述进行了智能家居控制系统的硬件主控系统设计和软件实现流程分析的基础上,基于Android客户端进行家居控制系统的软件模块设计。主要分析控制系统的程序初始化模块、CAN通信控制模块和程序加载模块。分别描述如下:
系统的程序初始化模块是实现智能家居控制的数据采样和DSP复位的前提,包括了同步串口0初始化、CAN初始化和DMA0初始化,输入命令source install-qt-x11.sh,开始编译、安装,写入时钟初始化程序,如图3所示。
图3 智能家居控制时钟初始化程序写入
根据写入的程序,命令make install 的安装目录,指定利用Qt 的open source 版本,开启Qtsql库中SQL
-no-qt3support ..... //关闭Qt3 程序支持
-no-phonon ......... //不编译phonon 模块+ -phono
运行make命令,开始编译智能家居控制系统的照明控制和电话远程控制程序,设定PLL_LOCKCNT寄存器,设置PLL_DIV寄存器,智能家居控制系统的时钟频率为5分频,采用多线程编译方法。在时钟初始化程序设计的基础上,进行存储器初始化,在智能家居控制系统的 DSP上电后,把A/D采样的智能家居控制信息数据存储到PPI和DMA0寄存器中,为了稳定传输数据,设定SPORT0串口的帧同步信号LATFS为1,追加在库文件名后面的字符,比如infix==47, 增加需要编译的部分,
在此基础上进行程序加载模块的软件设计,程序加载模块是整个智能家居控制系统的主控平台的算法核心,是系统功能实现的根本。先配置SIC_IARx寄存器,调用register_handler函数,SPORT0_TCLKDIV寄存器对内核的IVG7中断产生一个帧同步,使用串口的帧作为智能家居控制的同步信号,采用PPI以及DMAx_CONFIG进行程序加载,程序加载软件模块配置GPIO管脚的程序描述如下:
for (i = 0; i <6; i++) ;{register_handler_cfgpin(IO_t ORT0able[i], IO_cfg_KDIV [i]);}
通过上述程序加载设计,把智能家居控制的数字信号转换成模拟信号,由于S3C2440A的SPI口已经被占用,在CAN通信程序中接收中断子程序时,智能家居控制系统将会产生一个远程调节帧,调用低频调节子程序,位CAN_TRS1的TRS8位,调节的数字量ΔD=65 536×V/5,发送WREN指令,并将其写入主控模块中,通过CAN传输,实现了基于Android客户端的智能家居远程控制。
3 仿真实验系统调试
为了测试本文设计的基于Android客户端的智能家居远程控制系统的性能,进行系统调试、仿真实验和系统调试,系统调试采用软件调试和硬件测试相结合的方式进行,智能家居控制系统采用Tektronix TX3的Android客户端进行App设计,采用Agilent 混合示波器实现智能家居控制的精度等测试指标,采用E2PROM在线烧写程序进行硬件调试,通过DSP进行程序加载,在智能家居控制仿真中,I/O电压设置为220 V,时钟电压设定在3.3 V附近,锁相环输出频率为600 MHz,基于上述仿真环境和参数设定,通过本文系统的设计性能指标,在Android平台下开发智能家居控制系统,基于Visual DSP++4.5进行家居控制系统的软件设计,得到控制系统的主界面和功能测试界面如图4所示。
(a) 控制主机界面 (b)功能测试界面
图4 智能家居控制系统界面
从图4可见,采用本文方法设计的智能家居控制系统,可通过多线程程序加载来实现功能模块化的多线程处理,系统的面向对象性更好。为了进行本文设计的系统在对智能家居控制性能的测试,以家居智能控制的覆盖率为测试指标,得到在不同移动Android客户端节点下对智能家居控制的覆盖率结果,如图5所示。从图5可见,采用本文系统进行智能家居控制,对移动Android客户端节点数目的依赖性不大,从而增强了控制系统的可靠性,增大了家居控制的覆盖率。
图5 智能家居控制性能分析
4 结 语
基于Android系统的App服务终端,进行智能家居控制,提高家庭生活的智能化水平,改善生活质量,本文研究了一种基于Visual DSP++4.5多线程嵌入式程序加载的智能家居控制系统软件设计方法,进行了系统的主机控制电路硬件设计和软件模块化设计,重点描述了初始化程序模块、程序加载模块和通信传输模块。实验结果表明,本文设计的智能家居控制系统功能可实现多线程处理,模块集成化较好,可靠性高,具有较高的应用价值。
参考文献
[1]将峰.家居智能安全远程无线监控系统设计[J].计算机测量与控制,2012, 20(9): 2435-2436.
[2]徐子豪, 张腾飞.基于语音识别和无线传感网络的智能家居系统设计[J].计算机测量与控制,2012, 20(1): 180-182.
[3]周勇,甘新年,胡光波,等.鱼雷制导控制系统多通道控制加权算法设计[J].现代电子技术,2014,37(19):14-17.
[4]罗泽峰,单广超.基于网络和虚拟多媒体技术的海战平台视景仿真实现[J].物联网技术,2015,5(3):91-92,94.
[5]巩艳华.基于ARM7处理器的嵌入式智能家居监控系统[J].电子科技, 2009,22(8): 39-42.