您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 智能家居基于S3C2410的家电智能控制和远程防盗监控系统设计
1基于S3C2410的家电智能控制和远程防盗监控系统设计摘要:如何将家庭里相对独立的设备连接成一个系统,从而方便进行本地和远程控制?本文通过采用ARM构成智能家居控制器来实现这个目标。智能家居控制器使用S3C2410,SIMl00-E,USB摄像头等元件来组成硬件平台,再将Linux系统移植到硬件平台上,然后设计好相应的驱动程序和应用程序,最后将软件下载到硬件平台来对家电进行本地和远程控制。关键词:ARM;S3C2410;嵌入式Linux;GPRS;1前言随着数字化家用电器的飞速发展,家庭智能化使得人们的生活方式、工作方式以及思维方式都发生了巨大的变化。未来的世界是数字的世界,未来的家庭将是数字的家庭,因此数字家庭网络系统具有广阔的市场应用与发展前景,并向着集成化、智能化、模块化和规模化方向发展。随着计算机技术的发展,嵌入式系统已逐渐成为后PC时代的主导,特别是ARM处理器作为32位微控制器一经面世,对基于Linux的嵌入式技术的迅速发展,无疑起到了推波助澜的作用,产生了划时代的意义。ARM是RISC指令集,它不仅资源丰富,运行速度更快,稳定性更高,也更易于扩展。同时Linux作为一种开源的操作系统,不仅内核更小、效率更高、还直接提供网络支持等优点,利用Linux自身带有的TCP/IP协议来实现远程监控、图象传输已成为可能,并且其动态模块加载使得对Linux的裁减极为方便,而且可以针对具体应用配置内核,裁减SHELL并对嵌人式C库进行系统定制。二者的诸多优点造就了二者作为嵌人式系统的完满组合,从而成为大部分嵌人式系统开发者的首选方案。嵌入式ARM处理器芯片,以其功能强大、指令简单、功耗低等优点在家庭智能化的过程中具有强大的优势。本文主要设计目标是家庭智能化控制系统:(1)实现能同时管理多个传感器,正确采集信息;(2)根据采集信息的变化,自动进行模仿人为分析、操作等功能;(3)通过GSM网络向用户提供远程控制、查询、管理等功能,如改变一些传感器的参数。2系统总体设计及原理楼宇自动化的重要特征之一就是家居智能化。本设计中嵌入式处理器同时控制多个传感器采集各种环境数据(比如温度、湿度、光照等),然后分析处理,做出智能的决策,存储于数据库中,调节相应数字家电的状态。用户离开家后,可以利用网络,通过各种终端(手机、网络、PDA等)查看各信息设备的状态,对家里的各种信息设备进行远程控制,实现家庭信息设备的智能化。嵌入式控制器还可以将家里的情况用网络视频画面的形式传送给用户,虽然用户离家在外,但可以监控是否有外者入侵(即防盗功能)。这样,家中一切尽在掌握之中,用户出外无忧。家居智能控制和视频防盗监控系统总体设计主要分为4大部分:数据采集模块、智能分析处理模块、数据存储模块、远程监控模块。系统整体框图如图1所示:2家电信息数据采集数据分析处理数据存储部分嵌入式服务器远程监控部分视频摄像部分其它外围扩展部分图1——系统结构框图3系统硬件设计由于该系统不仅要从下接收数据,并且还要对数据进行智能化分析处理,然后存储在数据库里,还要提供远程监控的功能,因此对处理器的速度有一定的要求,而且还要一个简单的操作系统提供多线程或多进程操作,故在本系统设计中CPU采用三星的S3C2410芯片。S3C2410芯片基于ARM920T内核,采用五级流水线和哈佛结构,提供1.1MIPS/MHz的性能,内部集成ARM公司ARM920T处理器核的32位微控制器,并带有独立的16KB的指令Cache和16KB的数据Cache、LCD控制器、RAM控制器、NAND闪存控制器、3通道UART,4通道DMA,4通道具备PWM功能的定时器,并行I/O口、8通道10bit精度ADC和触摸屏控制器,IIC总线接口,IIS数字音频总线接口,USB主机,USB设备,SD/MMC卡控制器,2通道SPI和PLL数字锁相环组成,主频最高可达203MHZ,是高性能和低功耗的硬宏单元。内核结构如图2所示,S3C2410内部结构如图3所示。图2——ARM920内核结构【1】3图3——S3C2410内部结构(功能模块)【1】在设计智能家居控制器时,考虑到系统的稳定性、扩展性和成本等因素,因此将系统硬件设计为3个部分,即核心板、主板和GPRS模块,如图4所示。传感器接口触摸屏驱动电路LCDUSB接口多个摄像头家电控制接口SIM100-E移动通信网家电或电源SIM卡S3C2410核心板+LinuxSDRMFLASH串口JTAG口SIMRSTSIMCLKSIMDATATXD2RXD2AX88796GPRS模块主板核心板GPIOEINT9nYPONnXPONYMONXMON图4——硬件结构图核心板部件中,NANDFLASH采用SAMSUNGK9F1208芯片,将FLASH芯片连接到系统的nGCSO,所以它的起始地址为:0x000000000;SDRAM采用2片HY57V561620AT-H构成64M,将它连接到系统nGCS6,所以它的起始地址为:003000000;为了让系统从NANDFLASH启动,要将S3C2410的OMO和OM1引脚都接地。主板主要是一些接口电路。串行接口采用MAX3232芯片,由于本系统只使用一个串口,所以和S3C2410的TXD0和RXD0相连,构成第一个串口电路;JTAG接口直接由S3C2410处理器控制;USB接口电路直接采用S3C2410内部的USB主机控制器;摄像头网卡采用AX88796-X86芯片,接在4BANK2的位置上,所以片选接处理器的nGCS2信号,其地址为0X200,所以IO_BASE0、IO_BASE1、IO_BASE2三个引脚悬空,中断选用INT2。网卡的逻辑地址是0x10000200。将S3C2410处理器的串口控制信号、USB主机控制信号、LCD控制信号、触摸屏信号、数据总线、地址总线、控制总线、外部中断等信号全部连接到核心板上的200芯插座上。LCD直接由核心板来控制,但要增加驱动电路。触摸屏采用4线电阻式,直接将它和CPU的nYPON,YMON,nXPON,XMON相连。传感器接口的输出信号连接到CPU的EINT9外部中断引脚上,当传感器接收到某个信号时,就可以通过外部中断引脚向CPU申请服务。家电控制接口的输人控制信号连接到CPU的GPIO端口,当要对某个家电进行控制时,只需向指定的端口写人0或1,然后再由家电控制接口发遥控信号去控制相应的家电。USB摄像头使用的是市场上广泛应用的采用中芯微公司的ZC301芯片的摄像头,这种摄像头采用硬件压缩方式,截取到的图片是JPEG格式,这样可以大大减少由于软件压缩所耗费的时间,便于网络多媒体的应用。Linux内核并未包括这种摄像头,因此必须针对嵌入式Linux环境,打入摄像头驱动补丁文件。【2】GPRS模块采用SIMCOM公司生产的SIM100-E芯片。通过第三个串口信号线TXD2和RXD2和处理器相连接。【2】4系统软件设计系统软件设计为四个部分:数据采集模块、处理数据模块、设备驱动模块、远程通讯模块。如图5所示:家居智能控制和视频防盗监控系统软件实现发送采集到的数据数据采集模块处理数据模块设备驱动模块远程通讯模块原始数据传输功能分析数据结果功能建立发送控制命令网络管理功能模块LCD及触摸屏驱动传感器及家电接口驱动串口USB网卡驱动图5——软件结构图4.1引导程序首先要将引导程序烧写到处理器的FLASH芯片上。引导程序选用韩国MiZi公司开发的vivi。vivi必须经过裁剪、交叉编译、下载到芯片等几个过程。然后make命令编译生成vivi的二进制镜像文件,使用的编译器是armv4l-unknown-linux-gcc和armv4l-unknown-linux-as,最后使用JTAG将vivi烧写到FLASH芯片上。4.2操作系统目前发行的Linux操作系统都能支持ARM机的体系结构,所以只要根据平台的具体结构进行移植。系统移植主要包括建立交叉编译环境、修改内核源码、内核裁剪和编译等环节。【2】⑴建立交叉编译环境5交叉编译是指利用运行在某台计算机上的编译器编译某个源程序生成在另一种结构计算机上运行的目标代码的过程。编译器的生成依赖于相应的函数库,而这些函数库又得依靠编译器来编译。建立交叉编译环境就是将ARM使用的编译器(如:arm-linux-gcc)和函数库(如:glibc)安装到指定目录,并使用config。配置好Makefile文件。⑵修改内核源代码修改内核源代码主要包括启动代码的修改、内核的链接及装人、参数传递和内核引导几个部分。Linux内核分为体系结构相关部分和体系结构无关部分。在Linux启动的第一阶段,内核与体系结构相关部分首先执行,它会完成硬件寄存器设置,内存映射等初始化工作。然后把控制权转给内核中与系统体系结构无关的部分。在移植工作中要修改的代码主要集中在与体系结构相关的部分。首先根据芯片手册修改片选组基地址寄存器、DRAM存储配置寄存器、DRAM片选寄存器、中断屏蔽寄存器等。然后修改内核的链接及装人ELF。最后将系统中可用页面的数目、文件系统大小等信息以参数形式从启动代码传给内核,完成设置陷阱,初始化中断,初始化计时器,初始化控制台等一系列操作而使内核正常启动。⑶内核裁剪和编译内核裁剪是根据控制系统的要求将不需要的模块从内核中裁剪了,Linux内核的裁剪有好几个版本,可以使用命令makemenuconfig对系统进行裁剪。内核裁剪之后,最后要进行交叉编译生成内核映象文件zImage。具体命令如下:makeclean//清理编译环境makedep//编译依赖文件makemakezlmage//编译内核内核裁剪时,要让系统包括telnet和ftp服务。telnet服务主要实现能够对嵌入式控制系统远程操作,ftp服务主要实现嵌入式系统的文件上传和下载。最后将编译好的内核映象文件利用vivi软件烧写到嵌入式系统核心板的flash芯片上。4.3驱动程序所设计的控制系统需要串口、USB、视频设备、网卡和传感器、家电控制口等多个设备驱动程序。由于串口、USB、视频设备、网卡设备都是标准设备,所以可以到厂家去下载相应的设备驱动源程序,然后交叉编译成Linux下的驱动程序,最后通过insmod命令向内核加载驱动程序。如:Linux系统提供了视频设备的内核驱动video4linux(简称V4L),它为视频设备的应用程序编程提供一系列接口函数,所以USB摄像头就可以采用V4L驱动程序。芯片SIM100-E是通过第三个串口与S3C2410相连的,所以可以直接使用标准的串口驱动程序。传感器接口和家电控制接口要设计专用的驱动程序。控制器的处理器通过外部中断来检测传感器,通过GPIO端口来控制家电,虽然它们的工作原理有所不同,但驱动程序设计的方法没有很大差别。在嵌人式Linux系统中设备驱动程序有一个标准的框架,设计驱动程序的大部分工作就是根据硬件结构来“填写”框架中的函数。5主要应用程序设计为了提高应用程序的运行速度,以及程序运行的稳定性,所以将应用程序设计成多线程结构。【3】系统软件流程图如图6所示。家电控制线程和视频拍照监控线程主要是根据控制数据、检测短信线程的内容和操作线程的内容来进行操作;发送短信线程主要是根据控制数据、检测传感器线程的内容和操作线程的内容来进行操作【3】。具体内容如下:#includeptherad.h//线程库头文件…6intmain(){…ptherad_creat(&th-a,NULL,send_msg,0);//创建发送短信控制命令线程pthread_cerat(&th_b,NULL,control-driver,0);//创建家电控制线程pthread_cerat(&th_c,NULL,cramera,0);//创建视频监控线程ptherad_join(th-c,&ertval);//等待视频监控线程结束ptherad_join(th-b,&ertval);//等待家电控制线程结束ptherad_join(th-a,&retval);//等待发送短信控制命令线程
本文标题:智能家居基于S3C2410的家电智能控制和远程防盗监控系统设计
链接地址:https://www.777doc.com/doc-2370360 .html