




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业课程设计题目:基于RFID的开放式智能家居设计姓名院(系)专业年级学号指导教师目录摘要课题设计背景与研究意义2.1课题设计背景2.2课题研究意义RFID原理系统设计方案射频模块软件设计总体方案温度检测模块软件设计总体方案射频模块主要软件详细设计分析7.1读卡器初始化与卡操作程序分析7.2读卡器通信与数据处理程序分析7.3射频LCD显示模块程序详细设计及分析温度检测模块主要软件详细设计分析I2C总线程序分析温度传感器初始化程序分析温度检测程序分析系统运行与仿真结果结束语1.摘要智能家居(SmartHome),这一概念起源微软的智能家居体系,其基本要求是以个人住宅为信息化设计的平台,将通常意义上的建筑设计成具备网络通信、自动化控制、智能管理的完整系统,同时要保证满足环境友好的要求,突出能源优化方案以及整个系统体系的安全性。射频识别系统RFID(RadioFrequencyIDentification,射频识别)是近几年新型的一种识别技术,其具有非接触性、读写速度快、反应灵敏、识别率高等多重优点,广泛应用与门禁、物联网等领域。本次设计的主要目标是完成基于RFID的智能家居设计,实现身份识别、预设温度的设定以及室温的检测调整功能。设计整体上分成射频识别和温度检测两大模块。(1)设计目标是是完成基于RFID的智能家居系统模型的总体设计方案,设计中MFRC522为识别核心,结合增强型STC单片机,液晶显示器的射频读卡模块设计,设计中给出了具体实现的电路图、PCB电路板以及与射频相关的程序代码。实现读取卡片信息、住户身份识别、住户预设温度与卡信息绑定等功能(2)设计温度检测与控制模块,设计采用MCP9801作为温度传感器,结合AT89C52、液晶显示器、DS1302芯片、RS232串口设计等部分,做了电路的仿真。由温度传感器和单片微控制器电路结合,以实现房间温度的检测与调控的功能。完成整体电路设计,实现基本功能并做出相应电路原理图,同时给出与硬件设计相关的主要代码。(3)完成整体设计,发现设计不足,为今后继续研究提供有效数据。设计需要分析目前存在的诸多问题,同时找出与之相关的解决方案。对于目前尚无法解决的问题,认真做了记录,以便未来可以继续研究。2.课题设计背景与研究意义2.1课题设计背景早在21世纪初中国就提出了物联网这个概念。当时对其进行的定义是:通过RFID(RadioFrequencyIDentification,射频识别)系统、、无线传感器网络等信息传感设备,按照安其各自的通信协议,把与生活息息相关的物品数字化,并且将其联入互联网与,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种。随着“十二五”的到来,在中国物联网的发展也将进入了关键时期,同时中国在未来面对跟多的全球化竞争合作,在信息产业,物联网应“初步形成产业体系完整、创新能力增强、应用水平提升、网络信息安全的良性发展格局”。作为物联网当前应用领域之一的智能家居系统是与大众生活最密切相关也是最容易部署实施的物联网应用体系。智能家居有很多部分组成,它包括门禁、对讲、安防、视频监视、通风系统、空气透析系统、智能窗、煤气泄漏感应器、烟雾探测感应器、插座、灯光控制开关、空调、风雨感应器、SOS紧急求助按键、电视等等。与智能家居相关性最大的行业莫过于是楼宇建筑行业,因为要具备基本的通讯、门禁对讲等功能,并考虑到物业公司为小区业主或写字楼客户提供相关的服务以及自身的收费需要,在楼宇建设的前期,即需要规划考虑与智能家居相关的综合布线、通信接入、物业管理网络、安防报警网络等等。而与智能家居直接相关的最基本技术便是RFID射频识别技术,其作为智能家居的最基础的核心,现在越来越多的进入科技人员的视野,也越来越受到从芯片制作、算法设计到相关配套电路设计的工程技术人员的追捧。2.2课题研究意义智能家居研究意义深远,其中不仅涉及到常规意义上的满足舒适生活的要求,智能家居更担负着新经济的复兴、推动新兴产业崛起以及节能减排等事关国计民生的大担子。智能家居的发展涉及到算法控制、软硬件设计、网络支持等多个行业,几乎涉及到IT(InformationTechnology,信息技术)行业的方方面面,其中作为网络支持的运营商,更是有了拓展其业务增长的新领域。在运营商看来,基于RFID的智能家居系统,无疑是给从电信运营服务商转型成为全方位的服务商提供了非常好的契机。通过这一战略的实施,目前的电信运营商至少将在将在如下几个方面获益:(1)从传统意义上的逐门逐户发展,转向以整栋楼宇甚至整个小区为基本单位的发展模式(2)除现有的基础电信增值营商将有机会把语音、数据、视频的多项业务进行绑定,提供Tripleplay(三网合一)业务。(3)一次性的基础建设投入,将有更为长久的收益,未来可以继续通过网关,后台部署的云服务器,持续提供增值服务(4)智能家居可以将固定电话、移动终端与家庭安防对讲等多项同时绑定在一起,实现“保固话、争移动、提高ARPU(AverageRevenuePerUser,平均每户收入)值”的经营目标。3.RFID原理射频识别RFID系统通常由读卡器和射频卡组成的。其中,读卡器通常作为终端的,读卡器主要功能是用来对射频卡进行数据读写,其主要分为主控模块、高频射频通讯模块和射频天线等部分。常规射频系统结构功能图射频识别系统的典型结构:射频识别系统标准功能框图图为一个标准的RFID系统的工作流程图,此系统为无源式被动射频识别系统,整个系统的能量来自于读卡器的电源。(1)RFID读卡器在某一空间区域内发射信号产生一个空间电磁场区,电磁场大小由芯片的功率密度、频段和耦合天线的面积决定。(2)当有符合标准的射频卡进入这个电磁场区,射频卡接受脉冲信号产生耦合电流,经过整流桥稳压后产生整个系统稳定工作的能量。(3)系统数据解调器将来自线圈的脉冲信号进行调制解调,并将的道德数据发送给逻辑与控制单元,同时将得到的数据在E2PROM中进行存储。(4)需要数据发送时,控制逻辑模块从E2PROM中读取数据,经过数据解调模块解码,进行发送。(5)读卡器接到来自数据解码模块的数据后,进行相应处理,同时进行校验和协议匹配,得到最终有效4.系统设计方案根据整个系统分析与需求分析,整个系统分为如下几个模块,分别是:由RFID射频卡和RFID读卡器共同构成的数据采集模块,数据处理模块,温度检测模块,显示模块,串口发送/接收模块,按键模块。各个模块的具体作用如下:(1)数据采集模块:当有符合14443标准的近距离射频卡进入到读卡器卡范围时,RFID读卡器启动扫描卡号。(2)数据处理模块:基于增强型51内核单片机的控制部分,负责处理射频读卡器传送的数据以及其他信号处理(3)温度检测模块:用于检测当前温度,并对对应相关卡号进行操作(4)显示模块:用来接收单片机发送的数据,进行相应处理后予以在LCD上显示,包括一块1602和一块12864(5)串口发送/接收模块:主要用来通过串口发送和接收数据(6)按键模块:用于输入操作以及复位操作串口串口STC11F32XEAT89C52STC11F32XEAT89C52LCD显示RFID读卡器按键最小系统LCD显示LCD显示RFID读卡器按键最小系统LCD显示时钟控制温度检测最小系统系统总体设计模块元器件选择:通过多方调研考证,充分考虑性价比的前提下,在本次设计中我选择最容易实现产品指标的元件。(1)主控芯片:AT89C52、STC11F32XE(2)射频读卡器:MFRC522(3)温度检测:MCP9801(4)始终芯片:DS1302(5)LCD液晶:ZL1602C2、ZYMG12864(6)串口通讯芯片:MAX232(7)其他:蜂鸣器、晶振、电阻、电容、按键、LED若干MFRC522管脚配置方式:MFRC522通信方式配置引脚名称UART方式SPI方式IIC方式SDARXNSSSDAIICLLHEALHEAD7TXMISOSCLD6MXMOSIADR_0D5DYRQSCKADR_1D4--ADR_2D3--ADR_3D2--ADR_4D1--ADR_5MFRC522匹配电路和天线设计天线电路设计其等效电路如图所示:天线电路的等效电路图温度检测电路设计:温度传感器电路采用I2C总线进行数据传送时,需要遵循一定的通信协议,如图中I2C数据传输时序所示,当时钟信号SCL为高电平,数据线SDA的电平需要保持稳定,当在时钟线SCL为低电平,数据线SDA电平值才可以产生跳变。I2C总线的数据读取I2C总线起始与终止时序原则:当时钟信号SCL电平为1时,数据信号SDA由高电平跳变为低电平时设为数据信号传输的起始状态;当时钟信号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)引脚相连,MAX232的5引脚接地。9针D型插头与计算机的9针D型插头相连接来实现单片机与计算机通信的硬件连接。其基本接线方式如图所示:串口连接电路原理图如图所示,本次设计中用到的串口芯片为MAX232,这款芯片是半导体芯片商美信(MAXIM)公司专门标准串行接口所设计的单电源电平转换芯片,芯片使用+5v单电源对其供电。其他辅助模块设计:设计中除了用到了以上主模块,还用到了12864和1602两块液晶显示器以及DS1302的I2C接口的时钟芯片、蜂鸣器、按键等辅助硬件,分别用于显示射频、温度以及时间。显示器1602与AT89C52相连,配合温度传感器和时钟芯片显示当前检测温度以及时间;显示器12864与STC11F32XE相连,其中涉及数据和控制端的连接,配合单片机以及射频芯片输出卡号和与卡号相对应的最适温度。图3.1412864显示器连接液晶显示器1602连接其中如图所示,1602的VSS与VEE之间通过变阻器连接,可以调节屏幕亮度。5.射频模块软件设计总体方案(1)数据采集模块:读卡器MFRC522通过连接天线读取RFID卡的数据,然后将数据传送出去(2)数据处理模块:STC11F32XE单片机处理来自射频读卡器的数据,并完成显示数据传输等功能。(3)显示模块:STC11F32XE接收到数据后,将通过数据处理完并在12864上予以显示(4)报警模块:STC11F32XE接收到数据后,启动蜂鸣器,进行蜂鸣报警,提示有卡进入(5)键盘模块:通过按键进行四种状态转换以实现对卡注册、读卡、温度变换的四种操作(6)串口通信:将预设温度发送给温度检测部分单片机。射频部分工作的总体框图: 射频部分总体运行框图 6.温度检测模块软件设计总体方案(1)串口通信:串口实时检测来自射频部分的信号,当有数据时采用中断接受发送数据,并交付单片机处理(2)数据采集模块:单片机收到来自串口的数据后初始化温度传感器MCP9801采集,采集当前房间温度(3)数据处理模块:单片机收到温度传感器和串口数据后进行比对,然后做出相应处理(4)显示模块:系统待机时,LCD1602显示来自DS1302的时间信号,当有温度检测时,显示器显示当前温度射频部分工作的总体框图:温度检测部分总体运行框图7.射频模块主要软件详细设计分析7.1读卡器初始化与卡操作程序分析:射频读卡芯片MFRC522是本次设计的基础,读卡器的软硬件设计是本次设计的重点,射频的读卡芯片的软件初始化程序包括总线设置、寻卡、防冲撞检测、卡片选定、卡片验证[10](14443A协议验证)、读卡、写数据、卡片挂起休眠、校验、复位等操作。初始化程序如下voidInit_MFRC500(void){RFID_Reset();//复位RFID_AerialOff();//天线关闭RFID_AerialOn();//天线开启MFRC_Type('A');//设置芯片工作方式}程序的初始化操作主要是针对天线进行的,初始化是读卡前对天线的复位启用,天线扫描到卡后便进行读卡操作,主要通过读卡芯片RC522进行,下面主要分析社对射频芯片操作的程序。设计中采用函数voidpcd_contpro(void)对射频卡进行卡操作,其中包括了对预设温度以及其相关操作。RFID_Rebcon(uchar*pSn);//进行防冲撞检测RFID_Cho(uchar*pSn);//函数进行卡选择以上两个函数只有一个参数,即指针变量pSn,指针指向数组,卡片序列号存储在参数pSn[OUT]中,共4字节,两个函数执行完成后返回值均为为MI_OK,无其他值。RFID_Auth_State(ucharau_mode,ucharaddr,uchar*pKey,uchar*pSn);函数有四个参数,分别是密码验证模式au_mode[IN],块地址addr[IN],密码pKey[IN],卡片序列号pSn[IN],其中密码验证模式有两种,以十六进制的形式进行表示,验证A密钥为0x60,验证B密钥为0x61,卡号共4字节RFID_Write(ucharaddr,uchar*pData);//读取卡数据RFID_Read(ucharaddr,uchar*pData);//向卡写数据这两个函数是卡的读写操作函数,每个函数均有两个参数,一个字符串变量,一个指针变量,变量addr[IN]存储卡的块地址,pData[OUT]存储读出的数据,共16字节,函数运行成功返回MI_OK。ucharRead_MFRC(ucharAddr)voidWrite_MFRC(ucharAddr,ucharvalue)voidSet_Flag(ucharreg,ucharflag)voidClr_Flag(ucharreg,ucharflag)以上四个函数是对MFRC522的寄存器进行操作,分别包括读寄存器、写寄存器、寄存器置位、寄存器清零操作。读寄存器函数参数为寄存器地址Addr[IN],函数返回值为读出的值;写寄存器函数参数Addr[IN]为寄存器地址,value[IN]为要写入的值;寄存器置位/清零函数参数reg[IN]为寄存器地址,flag[IN]为置位或者清零值;7.2读卡器通信与数据处理程序分析天线配合读卡器完成其初始化后需要进行卡和读卡器之间的数据通信,通讯采用标准的14443A协议,通过数据通信,读卡器将采集卡号,同时将卡号发送给单片机进行数据处理。本节将着重分析卡通信和与卡相关的数据处理部分程序。设计中读卡器的通信是采用函数charRC500_com实现,其结构如下:charRC500_com(ucharCommand,uchar*pIn_Dat,ucharIn_LenByte,uchar*pOut_Dat,uint*pOut_LenBit)函数基本功能是实现读卡芯片MFRC522与采用ISO14443协议的射频卡进行通信。函数中涉及5个参数,其对应意义表:卡通信函数参数对照表参数参数功能意义Command[IN]RC522命令字pIn_Dat[IN]通过RC522发送到卡片的数据InL_enByte[IN]发送数据的字节长度POut_Dat[OUT]接收到的卡片返回数据*pOut_LenBit[OUT]返回数据的位长度当读卡器完成读卡将卡号传送个单片机后,单片机根据相应案件进行操作,其操作包括注册、读卡、预设温度降低、预设温度升高等操作。if(flag_Menu){if((KNumb==N1)&&(!KTime)){KTime=15;Show_Menu=0;card_op=temp_down;send_char1(KNumb);Show16_16(2,0,4);Show16_16(2,2,5);}elseif((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);}elseif((KNumb==N3)&&(!KTime)){KTime=15;Show_Menu=0;card_op=card_reg;send_char1(KNumb);Show16_16(2,0,10);Show16_16(2,2,11);}elseif((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,用于显示系统的卡号以及预设温度,同时可以辅助修正预设温度。显示器自身不带中文字库,需要采用取模软件对中文进行取模操作,以获得中文对应的十六进制数据。字体取模软件如图所示十六进制A51字体取模软件液晶屏操作分为初始化、状态检查、数据写入、清屏等操作,设计中软件部分建立了相关字库,同时做了以上基本分任务。LCD初始化程序采用函数InitLcd0108(void);初始化函数分为如下几部分:voidInitLcd0108(void){CLR_LCD_EN;SET_LCD_CS1;SET_LCD_CS2;SetStartLine(0);//设置开始行为第0行SetOnOff(1);//开关显示ClearScreen();//清屏}液晶屏操作主要部分是数据写入,其中向液晶屏写数据的函数为WriteByte(),首先检测屏幕状态,设置功能管脚,向数据端口写数据,选择写入方向,写入数据。voidWriteByte(unsignedchardatadat,uchardataScreen){CheckState(Screen);SET_LCD_DI;CLR_LCD_RW;LCD12864DataPort=swapbit(dat);switch(Screen){caseSCREENLEFT:CLR_LCD_CS2;break;caseSCREENRIGHT:CLR_LCD_CS1;default:break;}SET_LCD_EN;CLR_LCD_EN;SET_LCD_CS1;SET_LCD_CS2;}显示模块其他函数为数据数据显示函数,函数Show816()、ShowHZ1616()用于显示8*16、16*16点阵,字体旋转90度,字模被竖着切分,行(0-7),列(0-15),dataaddress为字模区首地址。8.温度检测模块主要软件详细设计分析8.1I2C总线程序分析温度传感器MCP9801采用I2C总线实现与单片机通信,因为温度检测控制部分为仿真电片机没有内置I2C总线接口,在程序编写中需要模拟时序以实现传感器与单路,标准51单片机之间的通信。见文献[14]设计中采用iic_start(void)和iic_stop(void)两个函数实现总线的启用和停止,在SCL为高电平期间,将SDA由高电平跳到低电平,启动总线首发数据,在SCL为高电平期间,将SDA由低电平跳到高电平终止总线数据首发。总线初始化完成后便进行数据的读写,其中数据读写相关函数有三个,分别得总线应答函数bitiic_ack(void),数据写入函数bitiic_write(ucharc),数据读取函数uchariic_read(void)。其中对于总线操作需要格外注意的是数据要在上升沿发送,I2C总线中数据发送以8位为一个单位,将数据与0x80位与,得到高位上升沿发送数据,具体写入程序如下:for(i=0;i<8;i++) { if(c&0x80) //上升沿发送数据 SDA = 1;else SDA = 0; c = c << 1; SCL = 1; iic_delay(); SCL = 0; iic_delay(); }程序接收数据原理与发送相似,以下降沿为标志接受。8.2温度传感器初始化程序分析温度传感器初始化包括向传感器写入数据、读取传感器返回数据三个主要操作。函数MCP_wrbyte()以及MCP_rdbyte()功能便是通过I2C总线向温度传感器写入数据以及从温度传感器读取数据的两个函数。void MCP_wr1byte(uchar reg,ucharaddress,ucharcmd) { bit ack; iic_start(); re1: ack = iic_write(address); if(ack == 1) goto re1; re2: ack = iic_write(reg); if(ack == 1) goto re2; re3: iic_write(cmd); if(ack == 1) goto re3; iic_stop(); delay(100);}函数三个变量分别为寄存器、地址变量和写入模式命令。void MCP_rdbyte(ucharreg,ucharaddress,uchar*des) { iic_start(); iic_write(address); iic_write(reg); iic_start(); iic_write(address|0x01); *des = iic_read(); iic_sendack(1); *(des+1) = iic_read(); iic_sendack(1); iic_stop();}温度传感器MCP9801读取程序流程为总线启用、写高位地址、读取高位数据、返回,指针后移读低位读数据,返回,函数返回值为空。8.3温度检测程序分析温度检测模块采用循环检测串口程序,仿真时采用了外部中断,当按键按下模拟串口有数据进入,开始进入温度检测状态。voidshow_tmp(ucharaddress,ucharmode) { uchartmp[2],ll= 0x80,flg; u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CTRA 07-2024橡胶粉改性沥青碳减排核算
- T/CHES 118-2023城市河湖污染底泥处理效果评估技术导则
- T/CECS 10404-2024绿色建材评价耐碱网格布
- T/CACE 0130-2024竹浆短纤维
- 上海市建筑安全知识a试题及答案
- 上海安全员c3考试题库及答案
- 上海安全b证模拟考试题库及答案
- 2025年房屋简易租赁合同4篇
- T/CEPPEA 5039-2023配电站工程竣工验收规范
- 讲卫生不得病教案
- 国开经济学(本)1-14章练习试题及答案
- 《企业销售费用控制研究(论文)8600字》
- 二0二三年度六年级上册Module1《多维阅读》第八级DifferentPlants教学设计
- 公司网银盾交接单
- JT∕T 784-2022 组合结构桥梁用波形钢腹板
- 汽车客运有限公司成本费用管理规定
- 缓刑期满个人总结
- 私教工作表格健康问卷
- 市政道路中线测量内容及计算方法
- 南瓜种植PPT演示课件(PPT 46页)
- 第三章磁功能玻璃
评论
0/150
提交评论