Android终端及FPGA控制的智能家居系统
针对智能家居的应用需要和智能手机的日益普及,设计并实现了一个以Android手机作为遥控终端及FPGA为主控中心的智能家居系统,该系统利用蓝牙进行通信,应用多种传感器,实现视频监控、学习型红外遥控、温湿度采集、振动检测以及GSM远程报警等功能,从而满足用户的需求并达到一种智能控制的效果。该系统使用方便、操作简单、易于扩展。
智能家居是以住宅为平台,利用通信技术、自动控制技术等新技术,将各种家电安防设施进行集成,组成住宅设施管理系统,造就一个安全便利舒适环保的家居生活环境。近年随计算机技术、通信技术和网络技术的发展,智能家居逐渐成为未来家居生活的发展方向。
在智能家居的控制系统中,控制终端是其核心设备,目前主要有以下几种方案:第一种是采用键盘、LCD显示器和红外遥控器等设备对各种家用设备进行控制,这种方式需要对终端的软件和硬件分别进行设计,因而设计复杂且成本高。第二种是采用PC作为控制终端,使用这种方式的缺陷是只能在固定的位置进行控制。第三种是采用智能手机作为控制终端,通过WiFi、蓝牙、GSM等无线网络对家居系统进行控制,此方案使用方便、快捷。
随着Android智能终端日益普及,其作为控制终端将成为未来智能家居系统发展的趋势。本系统以Android智能设备作为遥控终端,以FPGA作为主控中心处理器,通过蓝牙与手机端进行通信并对数据进行处理,实现视频监控、红外遥控、温湿度检测、振动检测、GSM远程报警等功能。FPGA内部资源丰富,接口方便,还可实现脸部识别、指纹识别等功能。
1系统结构
系统结构框图如图1所示,首先在Android平台下开发一个应用程序,数据通过蓝牙发送给主控中心,当FPGA接收处理完数据后通过串口给相应的功能模块发送指令,各功能模块执行相应任务后也会将数据通过主控中心返回给智能终端并显示,其中采用串口通信可让通信方式多样化,如485总线、蓝牙模块、WiFi模块、ZigBee模块等都可用串口进行收发数据。这种结构使得用户只需用手机、平板电脑等Android终端就能任意控制各种家用设备并实时掌握周围的环境情况,使用非常简单快捷。
图1系统结构框图
2主控中心FPGA设计
本系统采用FPGA作为中间控制部分的处理器主要基于以下两点考虑,首先整个系统中用到多个串口,普通单片机内部不超过3个串口,而FPGA可以根据需求搭建多个UART接口;其次FPGA可以采用平行以及流水线处理,可以完成视频数据采集、VGA接口输出等高速处理,还可完成脸部识别、指纹识别等复杂运算。设计中采用的FPGA芯片型号是Altera公司CycloneII系列EP2C8Q208C8,在QuartusII平台下用Verilog语言进行开发。
2.1 UART模块的设计
由于FPGA与各功能模块均利用串口进行通信,因此需要搭建多个UART接口,对数据进行传输和处理。UART通信模块主要由波特率产生模块、发送模块和接收模块三部分组成,其中波特率产生模块是将50MHz的主时钟经过多次分频后为UART的收发模块提供特定的波特率。
FPGA中的每个UART都被例化成一个子模块,各模块间通过输出输入接口进行数据的交互,此外还有一个控制模块,用于控制每个串口的发送和接收。
2.2视频监控的设计
视频监控是家庭防盗系统中必不可少的部分,本系统通过OV7670摄像头获取视频信息,用FPGA进行数据的采集和存储,最后通过VGA接口用显示器显示出来。框架如图2所示。
图2视频监控框架图
OV7670是OmmVision公司生产的CMOS摄像头,通过SCCB总线控制,图像最高达到30帧/s.FPGA先构建一个配置模块,用SCCB总线对OV7670进行初始化设置并使其开始工作,其中的SCCB总线本质为简化了的I2C总线。
配置成功后,FPGA将接收RGB565格式的数据,即第一个字节的前5位表示红色,第一字节的后3位和第二字节前3位表示绿色,第二字节后5位表示蓝色。数据通过SDRAM控制模块存进外部SDRAM中,SDRAM的主要作用是把图像数据以30帧/s的速率进行缓存,然后再以60帧/s的速率读出。从SDRAM读出的数据将通过VGA控制模块转换为VGA协议输出,最后通过一个三路10位高速视频DAC芯片ADV7123进行D/A转换后显示在显示器上,进行实时的监控。
除了可实时监控外,当系统触发警报信息后可以对视频信息存储到外接Flash中,由于Flash的容量以及读写速度有限,不能将所有视频数据保存下来,因此采样间断性存储的方法,即以图片的形式将现场的情况保存下来,这种方式既能减少Flash的容量,又可以较好地保存现场的信息。
3 Android应用程序的开发
Android终端的应用程序是基于Android2.3版本,在Eclipse平台下用Java语言进行开发,其主要内容包括设计一个人机交流界面、获取已配对的蓝牙设备并建立连接、利用Socket进行数据传输等。
3.1界面设计
该应用程序主要有两个界面,开启时首先进入主控界面,主要包括温湿度的显示、防盗系统的开启与关闭、电视遥控等功能,点击电视遥控按键将进入红外遥控界面。界面通过AbsoluteLayout进行布局设计,这是一种绝对布局,可以任意调整每个控件的横坐标和纵坐标,界面上每个按键通过绑定一个地址和添加一个监听器,点击按键后会触发监听器并执行相应的操作。
3.2蓝牙的获取和连接
应用程序中需要建立一个蓝牙通信通道,以便与FPGA端的蓝牙模块进行数据传输,在建立蓝牙通信之前先搜索出已配对的蓝牙设备并用列表显示,当点击其中一个设备进行连接时,其地址值会被记录下来并通过Intent回传给主Activity.当本机蓝牙开启以及要连接设备的地址获取后就可建立Socket连接,通过Thread创建的一个线程来进行Socket连接,连接成功后界面上会显示"连接成功"。
FPGA 串行处理器 Android系统 智能家居系统 相关文章:
- 利用FPGA和新技术,使LCD进入HDTV市场(08-27)
- 基于DSP和FPGA的电视观瞄系统设计(09-02)
- FPGA与SRAM相结合完成大容量数据存储(09-03)
- HDTV接收机中Viterbi译码器的FPGA实现(09-09)
- 基于FPGA的液晶显示接口设计 (09-26)
- 解决硬盘驱动器能耗难题(10-13)