嵌入式课程设计报告学院信息电子技术专业电子信息工程班级13级学籍号姓名指导教师2016年0月00日基于ARM9的无线智能家居控制系统1.引言当网络席卷整个社会,带来经济飞速发展的同时,也给人们的生活带来无限的惊奇。
不断更新的生活方式,使得越来越多的人追求对生活的舒适度和享受度。
智能家居作为新生力量呼之欲出,自然地走进了我们的生活,随之,引领新一代的数字家庭生活。
所谓“智能家居”(Smart Home),又称智能住宅。
它利用先进的计算机嵌入式系统、通信技术、现代传感技术和网络技术,将家庭中的各种设备(如照明系统、安防系统、信息家电)通过家庭内部无线网络连接到一起。
一方面,智能家居将使得使用它的用户能够更加方便、快捷和轻松的管理自己的家电设备,例如,用户可以通过平板电脑、智能手机和其他控制终端设备对家用设备进行远程操控和状态的实时监控,进行室内场景配置以及形成多个家电设备的联动功能等等;另一方面,智能家居内的各种设备不需要通过用户的操控就可以实现相互间的通讯,从而根据相关家电设备的不同的状态互动运行,为用户提供高效、便利、舒适与安全的智能家居生活。
2.系统设计(1)硬件电路设计文中提出的基于ARM9的无线智能家居控制系统主要包括ARM9核心控制模块,无线通信模块、LCD触摸屏模块和家居电器,另外还有传感检测,语音报警和电源等模块。
系统总体结构模型图如图1所示。
图1系统总体结构模型图其中ARM是整个系统的控制核心,通过GPRS和ZigBee无线通信网络收发控制指令实现对家居电器进行综合监控,同时提供防火墙的功能,阻止外界对家庭内部设备的非法访问和攻击。
无线通信模块分为本地和远程两部分,本地通信主要通过新型的ZigBee无线通信技术实现系统与家居电器的通信,达到对其控制;远程通信是利用手机通过GPRS通信网络或利用计算机通过互联网实现人与控制系统的通信,进而达到对家居电器的远程监控。
采用无线通信技术省去了布线使家居布局更加灵活,远程控制使家居电器工作更加贴近人们的工作和生活要求。
智能家居控制系统的具体功能包括:家居电器的综合监控、室内环境信息采集、自动报警、本地控制、远程控制、安全防盗等。
基本电路组成1)主控芯片S3C2440A本系统采用的是Samsung公司推出的16/32位RISC微处理器S3C2440A,它具有0.13μm的CMOS标准宏单元和存储器单元,它的杰出的之处是其处理器核心,该核心是由Advanced RISC Machines有限公司设计的ARM920T内核,ARM920T内核实现了MMU,AMBA BUS和Harvard高速缓冲体系结构,这一体系结构具有独立的16KB指令Cache和16KB数据Cache。
2)电源电路电源是整个智能家居控制系统的能量之源,电源的稳定供电为系统得以安全、正确的运行提供了保障,本系统共需要两种电压5V和3.3V。
为了提高终端设备内部的安全性并进一步减低系统的设计成本,本系统选用的市面上的12V、2A的开关稳压电源作为系统的基本供电输入,首先经过LM2576转换成5V,并经过滤波和稳压电路输出稳定的5V电压,为系统上需要5V电源的电路供电。
其次,5V输出再经过LM1117D转换成3.3V,经过一定的滤波处理后为系统需要3.3V供电的电路供电,如图2所示。
图2 3.3V电压转换输出电路3)复位电路的设计图3系统复位电路如图3所示,为实现对智能家居控制系统中主控芯片S3C2440A和各主要功能模块的复位以及对电源模块的监控,本智能家居控制系统特别选取了MAX811T芯片用于复位电路的搭建。
MAX811T是一款专用复位芯片,具有2.93V的复位电压阀值。
当系统的供电电压低于该设定的阀值时,MAX811T复位芯片便会对整个系统进行复位操作。
4)时钟电路的设计S3C2440A处理器需要两个时钟源,即主时钟源和RTC时钟源。
主时钟源由12M的外部晶体振荡器提供,可以再通过配置S3C2440A处理器内部的MPLL和UPLL的相关寄存器来实现对FCLK、HCLK、PCLK总线时钟频率的设定。
RTC时钟源由外接的32.768KHz的晶体振荡器提供,具体接法如图4所示。
图4系统时钟电路5)JTAG调试电路的设计本文设计的JTAG调试电路主要负责通过其20pins的接口与Jlink和Ulink 等仿真器相连接,实现对系统引导程序BootLoader或其他驱动程序的调试,以及对系统各个器件的性能测试。
一旦在该智能家居控制系统的集成开发环境成功加载了引导程序BootLoader,剩下的开发环节便可以脱离JTAG接口,而直接使用BootLoader和S3C2440A处理器的外围接口来进行内核(Kernel)和根文件系统(Root file system)的下载了,当然用户也可以通过JTAG接口对Flash 芯片进行烧写,如图5所示。
图5JTAG调试电路6)串口电路的设计图6串口电路为了实现方便PC机与S3C2440A处理之间进行数据交互、打印串口信息,本文提出的智能家居控制系统扩展了串口模块。
该串口传输速率为20Kbps的全双工的串行接口。
同时,由于PC机的串口采用的电平标准的RS-232电平,而S3C2440A处理器采用的标准的TTL电平,二者电平标准不同,故需要电平转化,本串口电路设计采用MAXIM公司的MAX3232芯片进行电平转换。
电路设计如图6所示。
(2)程序设计整个智能家居控制系统以ARM9微处理器为核心,支持C语言和汇编语言,本系统采用C语言与汇编语言混合编程。
低层驱动由汇编语言编写,对外留C语言接口,人机交换采用Linux嵌入式实时操作系统。
系统软件由系统主程序、初始化子程序、ZigBee通信子程序、GPRS通信子程序、传感检测子程序、显示子程序、报警子程序、数据处理子程序和远程控制子程序等模块组成,程序软件流程图如图7所示。
图7程序软件流程图应用程序的具体内容如下#include<pthread.h>//线程库头文件┅int main(){┅pthread_creat(&th_a,NULL,send_msg,0);//创建发送短信线程pthread_creat(&th_b,NULL,control_driver,0);//创建家电控制线程┅pthread_join(th_b,&retval);等待家电控制线程结束pthread_join(th_a,&retval);//等待发送短信线程结束┅}/*发送短信线程*/int send_msg(){┅tty_init();//初始化串口gprs_init();//初始化GPRS模块tty_writecmd(“at”,strlen(“at”));//发送AT命令tty_writecmd(“at+cmgf=1”,strlen(“at+cmgf=1”));//发送修改字符集命令tty_write(“at+cmgs=”,strlen(“at+cmgs=”));//发送短信命令tty_writecmd(msg.send_tel,strlen(msg.send_tel));//发送电话号码tty_writecmd(msg.send_text,strlen(msg.send_text));//发送短信内容tty_end();┅return0;}3.仿真本系统的制作调试主要分为硬件调试、软件调试和联机调试等三大部分。
经过初步的分析设计后,在设计制作硬件电路的同时,调试穿插进行,应用系统的硬件调试和软件调试是分不开的,许多硬件故障是在调试软件时才发现的。
但通常是先排除系统中明显的硬件故障后才和软件结合起来调试,如此有利于问题的分析和解决,不会造成问题的积累,从而可以节约大量的调试时间。
软件编程中,我是首先完成单元功能模块的调试,然后进行系统调试,整体上采用硬件调试的调试方法。
联机调试是最重要的一部分,同时也是本系统成功的关键。
这种设计还存在一些弊端,比如家里着火了,手机模块出现故障时,就不能及时发注警报做好防范措施但是让住宅内外部的探测装置与报警控制器相连,一旦出现这种情况直接转入119报警平台就可避免火灾的发生。
4.结论经过一段时间的努力,设计终于接近尾声,在设计过程中,我学到了许多在书本学不到东西,这些对将来的学习和工作都提供了一笔宝贵的财富。
由于时间短、实验条件有限,更多的是本人能力有限,设计也不够完善,没有实现论文中的全部设计,但是在不断的摸索开发中我渐渐熟悉了嵌入式系统基本的开发流程,熟悉了一些基本工具的使用,理解了一些基本原理,算是一个小小的入门。
设计过程中,我感觉从事嵌入式开发这个行业要学的东西实在太多了,不光是软件方面,想要做得好的话,必须做到软硬兼通,这中间缺的知识太多太多,需要努力的去学习,这个行业的前景比较好,但需要付出很大的努力,相信自己能成为一名合格的嵌入式系统开发人员。
在这大学的最后时间里,回忆起这四年的时间,很多感慨,有好多知识我只是学了个一知半解,现在发现懂得太少,想好好补习一下所缺的知识,却发现没有时间可以留给自己了,懊悔是没用的,只能以后努力了。
相信走向工作岗位后,只要朝着自己的目标一直努力,不放弃任何机会,梦想终会成真的!5.参考文献[1]张瑞武.智能建筑的系统集成及其工程实施.北京:清华大学出版社,2000[2]杨永辉.智能大厦.北京:北京邮电大学出版社,2002[3]钟永锋,刘永俊.ZigBee无线传感器网络.北京:北京邮电大学出版社,2011[4]杨作刚.基于ARM9智能家居系统的设计与研究.上海:东华大学硕士学位论文,2012.02[5]孙琼.嵌入式Linux应用程序开发详解.北京:人民邮电出版社,2006[6]崔若飞.基于ARM和GPRS智能家居监控系统的设计与研究.北京:北京交通大学硕士学位论文,2009.06。