《物联网课程设计-基于RFID开放式智能家居控制系统设计(共23页).docx》由会员分享,可在线阅读,更多相关《物联网课程设计-基于RFID开放式智能家居控制系统设计(共23页).docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上课 程 设 计题目:基于RFID的开放式智能家居设计姓 名 院(系) 专业年级 学 号 指导教师 目录1. 摘要2. 课题设计背景与研究意义2.1课题设计背景2.2课题研究意义3. RFID原理4. 系统设计方案5. 射频模块软件设计总体方案6. 温度检测模块软件设计总体方案7. 射频模块主要软件详细设计分析7.1读卡器初始化与卡操作程序分析7.2读卡器通信与数据处理程序分析7.3射频LCD显示模块程序详细设计及分析8. 温度检测模块主要软件详细设计分析8.1 I2C总线程序分析8.2 温度传感器初始化程序分析8.3 温度检测程序分析9. 系统运行与仿真结果10. 结
2、束语1摘要智能家居(Smart Home),这一概念起源微软的智能家居体系,其基本要求是以个人住宅为信息化设计的平台,将通常意义上的建筑设计成具备网络通信、自动化控制、智能管理的完整系统,同时要保证满足环境友好的要求,突出能源优化方案以及整个系统体系的安全性。射频识别系统RFID(Radio Frequency IDentification,射频识别)是近几年新型的一种识别技术,其具有非接触性、读写速度快、反应灵敏、识别率高等多重优点,广泛应用与门禁、物联网等领域。本次设计的主要目标是完成基于RFID的智能家居设计,实现身份识别、预设温度的设定以及室温的检测调整功能。设计整体上分成射频识别和温
3、度检测两大模块。(1)设计目标是是完成基于RFID的智能家居系统模型的总体设计方案,设计中MF RC522为识别核心,结合增强型STC单片机,液晶显示器的射频读卡模块设计,设计中给出了具体实现的电路图、PCB电路板以及与射频相关的程序代码。实现读取卡片信息、住户身份识别、住户预设温度与卡信息绑定等功能(2)设计温度检测与控制模块,设计采用MCP9801作为温度传感器,结合AT89C52、液晶显示器、DS1302芯片、RS232串口设计等部分,做了电路的仿真。由温度传感器和单片微控制器电路结合,以实现房间温度的检测与调控的功能。完成整体电路设计,实现基本功能并做出相应电路原理图,同时给出与硬件设
4、计相关的主要代码。(3)完成整体设计,发现设计不足,为今后继续研究提供有效数据。设计需要分析目前存在的诸多问题,同时找出与之相关的解决方案。对于目前尚无法解决的问题,认真做了记录,以便未来可以继续研究。2.课题设计背景与研究意义2.1课题设计背景早在21世纪初中国就提出了物联网这个概念。当时对其进行的定义是:通过RFID(Radio Frequency IDentification,射频识别)系统、无线传感器网络等信息传感设备,按照安其各自的通信协议,把与生活息息相关的物品数字化,并且将其联入互联网与,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种。 随着“十二五”的到来,
5、在中国物联网的发展也将进入了关键时期,同时中国在未来面对跟多的全球化竞争合作,在信息产业,物联网应“初步形成产业体系完整、创新能力增强、应用水平提升、网络信息安全的良性发展格局”。作为物联网当前应用领域之一的智能家居系统是与大众生活最密切相关也是最容易部署实施的物联网应用体系。智能家居有很多部分组成,它包括门禁、对讲、安防、视频监视、通风系统、空气透析系统、智能窗、煤气泄漏感应器、烟雾探测感应器、插座、灯光控制开关、空调、风雨感应器、SOS紧急求助按键、电视等等。与智能家居相关性最大的行业莫过于是楼宇建筑行业,因为要具备基本的通讯、门禁对讲等功能,并考虑到物业公司为小区业主或写字楼客户提供相关
6、的服务以及自身的收费需要,在楼宇建设的前期,即需要规划考虑与智能家居相关的综合布线、通信接入、物业管理网络、安防报警网络等等。 而与智能家居直接相关的最基本技术便是RFID射频识别技术,其作为智能家居的最基础的核心,现在越来越多的进入科技人员的视野,也越来越受到从芯片制作、算法设计到相关配套电路设计的工程技术人员的追捧。2.2课题研究意义智能家居研究意义深远,其中不仅涉及到常规意义上的满足舒适生活的要求,智能家居更担负着新经济的复兴、推动新兴产业崛起以及节能减排等事关国计民生的大担子。 智能家居的发展涉及到算法控制、软硬件设计、网络支持等多个行业,几乎涉及到IT(Information Tec
7、hnology,信息技术)行业的方方面面,其中作为网络支持的运营商,更是有了拓展其业务增长的新领域。在运营商看来,基于RFID的智能家居系统,无疑是给从电信运营服务商转型成为全方位的服务商提供了非常好的契机。通过这一战略的实施,目前的电信运营商至少将在将在如下几个方面获益:(1)从传统意义上的逐门逐户发展,转向以整栋楼宇甚至整个小区为基本单位的发展模式(2)除现有的基础电信增值营商将有机会把语音、数据、视频的多项业务进行绑定,提供Triple play(三网合一)业务。(3)一次性的基础建设投入,将有更为长久的收益,未来可以继续通过网关,后台部署的云服务器,持续提供增值服务(4)智能家居可以将
8、固定电话、移动终端与家庭安防对讲等多项同时绑定在一起,实现“保固话、争移动、提高ARPU(Average Revenue Per User,平均每户收入)值”的经营目标。3.RFID原理射频识别RFID系统通常由读卡器和射频卡组成的。其中,读卡器通常作为终端的,读卡器主要功能是用来对射频卡进行数据读写,其主要分为主控模块、高频射频通讯模块和射频天线等部分。常规射频系统结构功能图射频识别系统的典型结构:射频识别系统标准功能框图图为一个标准的RFID系统的工作流程图,此系统为无源式被动射频识别系统,整个系统的能量来自于读卡器的电源。(1)RFID读卡器在某一空间区域内发射信号产生一个空间电磁场区,
9、电磁场大小由芯片的功率密度、频段和耦合天线的面积决定。(2)当有符合标准的射频卡进入这个电磁场区,射频卡接受脉冲信号产生耦合电流,经过整流桥稳压后产生整个系统稳定工作的能量。(3)系统数据解调器将来自线圈的脉冲信号进行调制解调,并将的道德数据发送给逻辑与控制单元,同时将得到的数据在E2PROM中进行存储。(4)需要数据发送时,控制逻辑模块从E2PROM中读取数据,经过数据解调模块解码,进行发送。(5)读卡器接到来自数据解码模块的数据后,进行相应处理,同时进行校验和协议匹配,得到最终有效4.系统设计方案根据整个系统分析与需求分析,整个系统分为如下几个模块,分别是:由RFID射频卡和RFID读卡器
10、共同构成的数据采集模块,数据处理模块,温度检测模块,显示模块,串口发送/接收模块,按键模块。各个模块的具体作用如下:(1)数据采集模块:当有符合14443标准的近距离射频卡进入到读卡器卡范围时,RFID读卡器启动扫描卡号。(2)数据处理模块:基于增强型51内核单片机的控制部分,负责处理射频读卡器传送的数据以及其他信号处理(3)温度检测模块:用于检测当前温度,并对对应相关卡号进行操作(4)显示模块:用来接收单片机发送的数据,进行相应处理后予以在LCD上显示,包括一块1602和一块12864(5)串口发送/接收模块:主要用来通过串口发送和接收数据(6)按键模块:用于输入操作以及复位操作串口STC1
11、1F32XEAT89C52LCD显示RFID读卡器按键最小系统LCD显示时钟控制温度检测最小系统系统总体设计模块元器件选择:通过多方调研考证,充分考虑性价比的前提下,在本次设计中我选择最容易实现产品指标的元件。(1)主控芯片:AT89C52、STC11F32XE(2)射频读卡器:MFRC522(3)温度检测:MCP9801(4)始终芯片:DS1302(5)LCD液晶:ZL1602C2、ZYMG12864(6)串口通讯芯片:MAX232(7)其他:蜂鸣器、晶振、电阻、电容、按键、LED若干 MF RC522管脚配置方式:MF RC522通信方式配置引脚名称UART 方式SPI 方式IIC方式SD
12、ARXNSSSDAIICLLHEALHEAD7TXMISOSCLD6MXMOSIADR_0D5DYRQSCKADR_1D4-ADR_2D3-ADR_3D2-ADR_4D1-ADR_5MF RC522匹配电路和天线设计天线电路设计其等效电路如图所示:天线电路的等效电路图 温度检测电路设计:温度传感器电路采用I2C总线进行数据传送时,需要遵循一定的通信协议,如图中I2C数据传输时序所示,当时钟信号SCL为高电平,数据线SDA的电平需要保持稳定,当在时钟线SCL为低电平,数据线SDA电平值才可以产生跳变。 I2C总线的数据读取I2C总线起始与终止时序原则:当时钟信号SCL电平为1时,数据信号SDA由
13、高电平跳变为低电平时设为数据信号传输的起始状态;当时钟信号SCL为电平值为1时,数据信号SDA由低电平跳变为高电平跳变时设置为数据信号传输的终止标志状态。I2C总线起始与终止信号MCP9801温度传感器由一个带隙型温度传感器,一个-模数转换器 (ADC),若干个用户可编程寄存器和一个兼容双线I2C/SMBus总线协议的接口组成。串口通信模块设计:本设计中,通过单片机的10引脚P3.0(RXD)、11引脚P3.1(TXD)与电平转换芯片MAX232的9引脚(R2OUT)、10引脚(T2IN)相连接,MAX232的7引脚(T2OUT)、8引脚(R2IN)与9针D型插座2(RXD)引脚、3(TXD)
14、引脚相连,MAX232的5引脚接地。9针D型插头与计算机的9针D型插头相连接来实现单片机与计算机通信的硬件连接。其基本接线方式如图所示:串口连接电路原理图如图所示,本次设计中用到的串口芯片为MAX232,这款芯片是半导体芯片商美信(MAXIM)公司专门标准串行接口所设计的单电源电平转换芯片,芯片使用+5v单电源对其供电。其他辅助模块设计:设计中除了用到了以上主模块,还用到了12864和1602两块液晶显示器以及DS1302的I2C接口的时钟芯片、蜂鸣器、按键等辅助硬件,分别用于显示射频、温度以及时间。显示器1602与AT89C52相连,配合温度传感器和时钟芯片显示当前检测温度以及时间;显示器1
15、2864与STC11F32XE相连,其中涉及数据和控制端的连接,配合单片机以及射频芯片输出卡号和与卡号相对应的最适温度。图3.14 12864显示器连接液晶显示器1602连接其中如图所示,1602的VSS与VEE之间通过变阻器连接,可以调节屏幕亮度。5.射频模块软件设计总体方案(1)数据采集模块:读卡器MF RC522通过连接天线读取RFID卡的数据,然后将数据传送出去(2)数据处理模块:STC11F32XE单片机处理来自射频读卡器的数据,并完成显示数据传输等功能。(3)显示模块:STC11F32XE接收到数据后,将通过数据处理完并在12864上予以显示(4)报警模块:STC11F32XE接收
16、到数据后,启动蜂鸣器,进行蜂鸣报警,提示有卡进入(5)键盘模块:通过按键进行四种状态转换以实现对卡注册、读卡、温度变换的四种操作(6)串口通信:将预设温度发送给温度检测部分单片机。射频部分工作的总体框图:射频部分总体运行框图6.温度检测模块软件设计总体方案(1)串口通信:串口实时检测来自射频部分的信号,当有数据时采用中断接受发送数据,并交付单片机处理(2)数据采集模块:单片机收到来自串口的数据后初始化温度传感器MCP9801采集,采集当前房间温度(3)数据处理模块:单片机收到温度传感器和串口数据后进行比对,然后做出相应处理(4)显示模块:系统待机时,LCD1602显示来自DS1302的时间信号
17、,当有温度检测时,显示器显示当前温度射频部分工作的总体框图:温度检测部分总体运行框图7.射频模块主要软件详细设计分析7.1读卡器初始化与卡操作程序分析:射频读卡芯片MF RC522是本次设计的基础,读卡器的软硬件设计是本次设计的重点,射频的读卡芯片的软件初始化程序包括总线设置、寻卡、防冲撞检测、卡片选定、卡片验证10(14443A协议验证)、读卡、写数据、卡片挂起休眠、校验、复位等操作。初始化程序如下void Init_MFRC500(void)RFID_Reset(); /复位RFID_AerialOff(); /天线关闭RFID_AerialOn(); /天线开启MFRC_Type( A
18、); /设置芯片工作方式程序的初始化操作主要是针对天线进行的,初始化是读卡前对天线的复位启用,天线扫描到卡后便进行读卡操作,主要通过读卡芯片RC522进行,下面主要分析社对射频芯片操作的程序。设计中采用函数void pcd_contpro(void)对射频卡进行卡操作,其中包括了对预设温度以及其相关操作。RFID_Rebcon(uchar *pSn); /进行防冲撞检测RFID_Cho(uchar *pSn); /函数进行卡选择以上两个函数只有一个参数,即指针变量pSn,指针指向数组,卡片序列号存储在参数pSnOUT中,共4字节,两个函数执行完成后返回值均为为MI_OK,无其他值。RFID_A
19、uth_State(uchar au_mode,uchar addr,uchar *pKey,uchar *pSn); 函数有四个参数,分别是密码验证模式au_modeIN,块地址addrIN,密码pKeyIN,卡片序列号pSnIN,其中密码验证模式有两种,以十六进制的形式进行表示,验证A密钥为0x60,验证B密钥为0x61,卡号共4字节RFID_Write(uchar addr, uchar *pData); /读取卡数据RFID_Read(uchar addr, uchar *pData); /向卡写数据这两个函数是卡的读写操作函数,每个函数均有两个参数,一个字符串变量,一个指针变量,变量
20、addrIN存储卡的块地址,pDataOUT存储读出的数据,共16字节,函数运行成功返回MI_OK。uchar Read_MFRC(uchar Addr)void Write_MFRC(uchar Addr, uchar value)void Set_Flag(uchar reg, uchar flag) void Clr_Flag(uchar reg, uchar flag) 以上四个函数是对MF RC522的寄存器进行操作,分别包括读寄存器、写寄存器、寄存器置位、寄存器清零操作。读寄存器函数参数为寄存器地址Addr IN,函数返回值为读出的值;写寄存器函数参数Addr IN为寄存器地址,v
21、alueIN为要写入的值;寄存器置位/清零函数参数regIN为寄存器地址,flagIN为置位或者清零值;7.2读卡器通信与数据处理程序分析天线配合读卡器完成其初始化后需要进行卡和读卡器之间的数据通信,通讯采用标准的14443A协议,通过数据通信,读卡器将采集卡号,同时将卡号发送给单片机进行数据处理。本节将着重分析卡通信和与卡相关的数据处理部分程序。设计中读卡器的通信是采用函数char RC500_com实现,其结构如下:char RC500_com( uchar Command, uchar *pIn_Dat, uchar In_LenByte, uchar *pOut_Dat, uint *
22、pOut_LenBit )函数基本功能是实现读卡芯片MF RC522与采用ISO14443协议的射频卡进行通信。函数中涉及5个参数,其对应意义表:卡通信函数参数对照表参数参数功能意义CommandINRC522命令字pIn_DatIN通过RC522发送到卡片的数据InL_enByteIN发送数据的字节长度POut_DatOUT接收到的卡片返回数据*pOut_LenBitOUT返回数据的位长度当读卡器完成读卡将卡号传送个单片机后,单片机根据相应案件进行操作,其操作包括注册、读卡、预设温度降低、预设温度升高等操作。if(flag_Menu) if( (KNumb=N1)&(!KTime) ) KT
23、ime=15; Show_Menu=0; card_op=temp_down; send_char1(KNumb); Show16_16(2,0,4); Show16_16(2,2,5); else if( (KNumb=N2)&(!KTime) ) KTime=15; Show_Menu=0; card_op=temp_up; send_char1(KNumb); Show16_16(2,0,6); Show16_16(2,2,7); else if( (KNumb=N3)&(!KTime) ) KTime=15; Show_Menu=0; card_op= card_reg; send_c
24、har1(KNumb); Show16_16(2,0,10); Show16_16(2,2,11); else if( (KNumb=N4)&(!KTime) ) KTime=15; Show_Menu=0; card_op=card_read; send_char1(KNumb); Show16_16(2,0,12); Show16_16(2,2,13); 7.3射频LCD显示模块程序详细设计及分析设计中射频部分采用的LCD12864,用于显示系统的卡号以及预设温度,同时可以辅助修正预设温度。显示器自身不带中文字库,需要采用取模软件对中文进行取模操作,以获得中文对应的十六进制数据。字体取模软
25、件如图所示十六进制A51字体取模软件液晶屏操作分为初始化、状态检查、数据写入、清屏等操作,设计中软件部分建立了相关字库,同时做了以上基本分任务。LCD初始化程序采用函数InitLcd0108(void); 初始化函数分为如下几部分:void InitLcd0108(void) CLR_LCD_EN; SET_LCD_CS1; SET_LCD_CS2; SetStartLine(0); /设置开始行为第0行 SetOnOff(1); /开关显示 ClearScreen(); /清屏液晶屏操作主要部分是数据写入,其中向液晶屏写数据的函数为WriteByte(),首先检测屏幕状态,设置功能管脚,向数
26、据端口写数据,选择写入方向,写入数据。void WriteByte(unsigned char data dat,uchar data Screen) CheckState(Screen); SET_LCD_DI; CLR_LCD_RW; LCD12864DataPort=swapbit(dat); switch(Screen) case SCREENLEFT: CLR_LCD_CS2; break; case SCREENRIGHT: CLR_LCD_CS1; default: break; SET_LCD_EN; CLR_LCD_EN; SET_LCD_CS1; SET_LCD_CS2;
27、显示模块其他函数为数据数据显示函数,函数Show816()、ShowHZ1616()用于显示8*16、16*16点阵,字体旋转90度,字模被竖着切分,行(0-7),列(0-15),data address为字模区首地址。8.温度检测模块主要软件详细设计分析8.1 I2C总线程序分析温度传感器MCP9801采用I2C总线实现与单片机通信,因为温度检测控制部分为仿真电片机没有内置I2C总线接口,在程序编写中需要模拟时序以实现传感器与单路,标准51单片机之间的通信。见文献14 设计中采用iic_start(void)和iic_stop(void)两个函数实现总线的启用和停止,在SCL为高电平期间,将
28、SDA由高电平跳到低电平,启动总线首发数据,在SCL为高电平期间,将SDA由低电平跳到高电平终止总线数据首发。总线初始化完成后便进行数据的读写,其中数据读写相关函数有三个,分别得总线应答函数bit iic_ack(void),数据写入函数bit iic_write(uchar c),数据读取函数uchar iic_read(void)。其中对于总线操作需要格外注意的是数据要在上升沿发送,I2C总线中数据发送以8位为一个单位,将数据与0x80位与,得到高位上升沿发送数据,具体写入程序如下:for(i=0;i8;i+)if(c&0x80) /上升沿发送数据 SDA=1; elseSDA=0;c=c
29、7;if(flg) /负数操作lcd_wdat(-);*tmp = (*tmp)+0x01;x =*tmp;lcd_wdat(numx/10);lcd_wdat(numx%10);if(*(tmp+1)&0x80)lcd_string(.5);elselcd_string(.0);lcd_string(tmp2); 单片机通过I2C接口向温度传感器发送地址数据、模式、温度传感器接到来自单片机的地址数据和模式后向单片机返回温度数据,函数中同时设计了负数温度的取补码操作,以及0.5摄氏度的误差修正。9.系统运行与仿真结果温度检测模块整体运行示意: 温度模块演示传感器启动前图(a)所示已经传感器启动
30、后图(b)所示。(a)(b)(a)没有温度数据输入 (b)启动传感器之后射频模块整体运行示意:射频模块主演是了硬件电路的整体构造以及读卡前欢迎界面图4.5(a)所示以及当有卡进入射频区后的读卡与温度绑定后的界面显示,如图4.5(b)所示。(a) (b)射频模块整体运行示意图(a)为射频模块启动时的运行状态示意图,展示了运行的环境界面,图(b)为有已注册射频卡进入读卡器范围后读卡示意图,当前为读卡模式,当期用户卡号为3E523E00,当前用户最适宜温度为26摄氏度。10.结束语通过此次课程设计,使我更加扎实的掌握了有关RFID在智能家居方面的应用,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。我认为,在这学期的实训中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。专心-专注-专业