ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:529.08KB ,
资源ID:21973840      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21973840.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《基于51单片机及一次性密钥加密系统的无线密码锁》Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《基于51单片机及一次性密钥加密系统的无线密码锁》Word下载.docx

1、4. 安全性和可靠性的设计1.2本课题研究的意义本文给出一种无线密码锁设计,具有可靠性、安全性高,使用尽量少和成品低的元件构成满足实际要求的硬件系统,通过软件的编制实现所需功能,并在保证安全性的基础上设计出友好的用户操作界面,具有较高的应用价值。2 研究方案的设计2.1无线密码锁主要功能及控制2.1.1钥匙的配对目前,无线密码锁的弊端之一是钥匙(遥控器)一旦丢失,不仅系统安全性受到威胁,并且配置新的遥控器并不是很方便。 本课题提出了一种利用配对机制来实现无线密码锁的配对功能,方便操作,每个钥匙(遥控器)有个系统配置密码,被固化在单片机中,进入配置系统可配置钥匙(遥控器)的ID,修改开锁密码,配

2、对操作。 配对时用户需要提供正确的密码才可通过锁端验证并配对成功。锁端在进行配对操作后将钥匙的ID及同步的密钥存入存储器中,当无线模块接收到合法的信号后回首先判断是否为相应配对的钥匙来决策是否应答,也起到一定的抗干扰作用。2.1.2 存储器存储器用于锁端保存钥匙ID和用户密码以及密码处理模块的参数,本课题采用STC89C52增强型单片机,其芯片内部扩展了2K的EEPROM用户可用存储器,单片机可方便读写该存储器。2.1.3 单片机通信及人机交互单片机间通过无线模块实现通信,两机间通过程序流程按照一定的协议进行交互,实现各种操作中信息的收发。当通信中出现信息错误或则硬件错误时,单片机能够进行相应

3、判断并提示,同时保证系统的稳定。钥匙(遥控器)提供16键键盘和液晶显示器进行用户操作的输入和提示信息的显示,锁端提供三个操作按键满足配对及初始化等操作,同时蜂鸣器提供相应声音信号。2.1.4 安全性及可靠性 本系统除配对操作外,所有收发信息都经过加密,并且每次使用不同的随机密钥进行加密,由于配对操作需要在锁上进行相应按键才能完成,所以安全性也有保障。本系统可由用户设定密码,遥控器在进行开锁、密码修改、消除警报操作时,需发送经加密的ID及用户密码和操作标识符,锁端接收到数据并经过解密,得到的信息中与保存的已配对ID进行比对,这样既避免了一些干扰,对安全性也有所提高。ID验证通过后,锁根据操作标识

4、符进入相应操作,各操作都需先验证用户密码是否正确,并进行相应操作及回馈信息给钥匙端,钥匙端会将操作的结果信息显示给用户。 进入操作后,如果验证密码错误三次则进入报警状态,此后只能利用遥控端的消警功能进行警报消除,若消警密码错误三次则系统自动锁闭约2个小时,在此期间不能进行任何操作,2个小时候方可再次进行消除警报,次数限制仍为三次。消除警报后锁进入正常状态,可进行开锁操作。用户可通过锁端初始化密码,遥控器与之配对后可进行密码修改,密码被保存在锁端的存储器上。密码不以明文方式发送,而是使用了一次性随机密钥的加密,这样实现了密文的随机性变化,使得“拷贝重发”的破解方式失效,同时由于时间和次数的限制,

5、使得“扫描跟踪(穷举)”等方法难以破解,系统具有很高的安全性。2.2 系统总体方案的设计2.2.1 总体方案设计本文设计和研制无线密码锁,以满足需求。利用单片机与单片机之间的通信。钥匙(遥控器)是以单片机为核心的,包括主模块、键盘处理模块、LCD1602显示模块、数据存储模块和数据通信模块及加解密模块等;锁是以单片机为核心,包括主模块、数据存储模块、和数据通信模块及加解密模块等。数据存储模块能够完成ID和密码及密钥的读写操作;数据通信模块是基于无线传输模块,由NRF24L01进行数据的传输,实现两块单片机之间的通信;加解密模块则根据密钥将要发送的明文信息加密成对应的密文,以及将接收到得密文解密

6、为明文。原理框图下所示:图2-1无线密码锁钥匙(遥控器)原理图图2-2无线密码锁(主机)原理图1人机对话接口LCD1602显示系统(钥匙):显示信息,并提示输入相应密码,进入系统设置可显示菜单选项。LED灯(锁):显示操作结果信号键盘(钥匙):用以密码输入及相关操作。报警信号:当非法操作次数超限时,系统进行相应处理并使蜂鸣器发出警报声。2无线传输模块用来实现单片机之间的通讯。3.数据存储模块 用来存储所需ID,密钥,密码等参数数据2.2.2 总体设计方框图锁(主机):图2-3无线密码锁(主机)总体设计框图钥匙(遥控器):图2-4无线密码锁钥匙(遥控器)总体设计框图2.2.3 详细设计本文通过对

7、密码在无线通信中的保密性的分析研究,对系统总体方案进行了详细设计,采用STC公司生产的STC89C52RC单片机、无线收发模块NRF24L01,LCD1602液晶显示模块。单片机通过加密函数将输入的明文信息转换为对应密文,明文信息为ID及控制信息与密码,形成能够完成相应操作的信号数据。显示部分由比较廉价的LCD液晶显示器对信息进行显示。当非法操作超限时,系统会控制自动报警。本设计采用的是系统限制和声音报警,声音报警主要是控制蜂鸣器的发声,从而达到报警的目的。具体的控制过程:A、密码锁主机端提供四个按键分别为:系统复位、配对、密码初始化、锁初始化1、密码初始化:将开锁密码重置为默认值:“6666

8、666”,消除警报密码重置为默认值“666666”(按下此键红灯亮) 2、锁初始化:将本机配对钥匙ID设为默认值(不与任何遥控器配对),(按下此键绿灯亮) 3、配对:按下此键黄灯常亮进入等待状态,当接收到钥匙(遥控器)的配对信息正确配对后黄红绿灯全亮1秒、蜂鸣器响,配对成功,若等待超时则退出配对状态进入正常状态B、钥匙(遥控器)提供一个复位键及16个按键:数字“09”、清除、开锁、消警、系统设置、取消、确认;1、数字键“09”:用于输入密码2、清除键:用于清除当前输入以便修改3、开锁:开锁:输入开锁密码,按下此键向对应锁发送开锁请求,密码正确进行开锁(锁(主机端)三盏灯齐亮2秒,蜂鸣器响,继电

9、器接通1秒)密码输入三次错误锁(主机端)进入警报状态,报警约30秒,需进行消警操作以解除警报4、消警:输入消警(备用)密码,按下此键向对应锁号发送消除警报请求,密码正确消除警报可进行正常开锁(锁(主机端)红黄灯亮,蜂鸣器响),密码输入错误三次,锁(主机端)锁闭系统约2个小时,此期间不可进行任何操作,2个小时后可再次进行消警操作(仍以三次为限)5、系统设置:输入系统密码,按下此键可进入系统设置,有三个选项:ID 锁密码及配对;相应数字键进入选项,按取消键退出5(a)、修改ID:进入此选项后提示输入新ID,按确认键使新ID生效,按取消键则返回5(b)、配对:当锁(主机端)处于配对状态时,输入锁密码

10、,按下此键发送配对请求,密码核对正确后钥匙(遥控器)的ID被记录在锁(主机端),配对完成,按取消键可退出当前设置5(c)、密码修改:进入此选项后提示输入原密码下,输入原密码后按下确认键,若原密码正确则提示输入新密码,输入新密码后再按确认键完成密码修改,按取消键可退出当前设置,原密码输入错误超过三次,后果同编号B-3所述;C、以上所有操作,操作结果可由相应指示灯指示,蜂鸣器发声及钥匙(遥控器)的液晶显示器显示相应的提示信息;2.3本章小结本章综述了无线密码锁各个功能模块和控制方法,并针对系统进行了详细的操作流程的方案设计,为下文的展开做了前期准备。3 部分硬件电路的设计3.1无线收发(NRF24

11、L01)硬件设计 随着计算机技术、短距离无线数据传输技术的迅速发展,无线传输系统的研发在技术支持上有了更多的选择。无线通信在无线传输系统中是比较关键的技术,选择一款好的无线收发芯片,不但能缩短开发时间,而且能节约开发成本。3.1.1模块简介(1) 2.4Ghz 全球开放 ISM 频段免许可证使用(2) 最高工作速率2Mbps,高效GFSK 调制,抗干扰能力强,特别适合工业控制场合(3) 126 频道,满足多点通信和跳频通信需要(4) 内置硬件CRC 检错和点对多点通信地址控制(5) 低功耗1.9 - 3.6V 工作,待机模式下状态为22uA;掉电模式下为900nA(6) 内置2.4Ghz 天线

12、,体积小巧(7) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便(8) 内置专门稳压电路,使用各种电源包括DC/DC 开关电源均有很好的通信效果(9) 标准DIP 间距接口,便于嵌入式应用(10) 工作于Enhanced ShockBurst 具有Automatic packethandling, Auto packet transaction handling,具有可选的内置包应答机制,极大的降低丢包率。(11) 与51 系列单片机P0 口连接时候,需要加10K 的上拉电阻,与其余口连接不需要。(12) 其他系列的单片机,如果是5V

13、 的,请参考该系列单片机IO口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块! 如果是3.3V 的,可以直接和RF2401 模块的IO 口线连接。比如AVR 系列单片机如果是5V 的,一般串接2K 的电阻。3.1.2模块结构和引脚功能1、NewMsg_RF24L01 模块使用Nordic 公司的nRF24L01 芯片开发而成,内部结构如下图:图3-1 nrf24l01内部结构框图3.1.3 nrf24l01的接口电路 图3-2 nrf24l01与单片机的接口电路接口说明:(1) VCC 脚接电压范围为 1.9V3.6V 之间,不能在这个区间之外,超过3.6V 将会烧毁模块。

14、推荐电压3.3V 左右。(2) 除电源 VCC 和接地端,其余脚都可以直接和普通的5V 单片机I0 口直接相连,无需电平转换。当然对3V 左右的单片机更加适用了。(3) 硬件上面没有 SPI 的单片机也可以控制本模块,用普通单片机I0 口模拟SPI 不需要单片机真正的串口介入,只需要普通的单片机IO 口就可以了,当然用串口也可以了。(4) 9、10 脚接地脚,需要和母板的逻辑地连接起来;2 脚悬空。(5) 排针间距为 2.54mm,标准DIP 插针,如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可以联系我们定做。 曾强型ShockBurst模式下的NRF24L01集成了所有高速链路层

15、操作,无需单片机硬件上一定有SPI接口与其相连,SPI接口可以利用单片机通用IO口进行模拟。而且由于链路层完全集成在芯片上,非常方便软件的编程,这样硬件设计简单、系统的可编程性好。CE使能无线传输芯片的发射或接收,CE为l时,芯片为发射端,CE为0时芯片为接收端。CSN使能SPI片选,低电平有效,CSN为低后SPI接口等待执行指令,每一条指令执行都必须通过一次CSN由高到低的变化。SCK为串行时钟,其初始状态设置为1,在允许接收后再设置SCK为0,这样就在SCK上产生了一个下降沿,芯片在下降沿的驱使将待发的数据串行左移,将最高位数据发送至MISO线上,此后再置SCK为1,产生一个上升沿,芯片接

16、收单片机的最高位数据,至此,l位数据传输完成,依次循环8次,即可完成1次SPI总线传输8位数据。MOSI引脚是将单片机的控制指令输入给NRF24L01,MISO引脚是将NRF24L01的状态信息和数据信息输出给单片机。IRQ为数据发送成功标志位,数据发送成功IRQ变为低。3.1.4 工作模式 NRF2401 有工作模式有四种:收发模式、配置模式、空闲模式、关机模式。 工作模式由PWR_UP register 、PRIM_RX register 和CE 决定,详见下表:表3-1 nrf24l01的工作模式3.2 STC89C52内部扩展EEPROM存储简介 为满足需要使用非易失性存储的扩展要求,

17、STC89C52芯片内部扩展了2K的用户EEPROM存储器,其利用IAP技术实现EEPROM。程序在系统ISP程序区可以对用户应用程序区/数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除;程序在用户应用程序区时,仅可以对数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除;单片机已固化了ISP引导码,并设置上电复位进入ISP的STC89C51RC/RD+系列单片机出厂时已完全加密。3.3 LCD1602的设计 液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602液晶显示模块可以显示

18、两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。3.3.1 LCD1602的引脚功能 LCD1602采用标准14脚(无背光)或16脚(带背光)接口,个引脚功能如表3-7所示。表3-5 LCD1602引脚及功能VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。若对比度过高会产生“鬼影”,使用时可以通过一只10K电阻来调整对比度。RS为寄存器选择端,RS为高电平时选择数据寄存器,为低电平时选择指令寄存器。RW为读写信号线,为高电平时进行读操作,为低电平时为写操作。当RS和RW同为低电平时可以写入指令或者显示地址。当RS为低电平、RW

19、为高电平时可以读忙信号,当RS为高电平、RW为低电平时可以写入数据。E为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。DOD7为位双向数据线。3.3.3 1602LCD的操作指令说明1602液晶模块内部的控制器共有11条控制如表3-6所示。 表3-6 LCD1602液晶模块内部的控制器的11条控制指令 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。指令1:清显示,指令码,光标复位到地址位置。指令2:光标复位,光标返回到地址OOH。指令3:光标和显示模式设置。其中:ID:光标移动方向,高电平右移,低电平左移;S:屏幕上所有文字是否左移或者右移,高电平。指令4:显

20、示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示:C:控制光标的开与关,高电平表示有光标,低电平表示无光标;B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位。sc:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令。DL:高电平时为4位总线,低电平时为8位总线;N:低电平时为单行显示,高电平时双行显示;F:低电平时显示57的点阵符, 高电平时显示5lO的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址。BF:读忙标志位,高电平表示忙、,此时模块不能接收命令或者数据低电平表示不忙。指令10

21、:写数据。指令1l:读数据。图3-12 LCD1602的硬件电路图3.4 缺少部分逻辑电路未设继电器等用于实际控制门闸驱动器等器件,实际应用中需做相应扩展。3.5 本章小结 本章较为详细地介绍了部分硬件设计。介绍了各个不同模块的工作原理并设计了相应的硬件电路。4 系统的软件结构和程序框图 4.1 主程序模块主程序是控制单片机系统按预定操作方式运转的程序,它负责组织调用各子程序模块,完成系统初始化、显示数据、无线传输和处理按键等功能。它的工作过程是:系统上电后,钥匙端单片机完成对各个端口及模块的初始化工作,然后进入键盘检测状态,根据按键进行相应操作。锁端单片机完成对各个端口及模块的初始化工作、然

22、后进入检测按键及无线模块接收数据状态。当有数据收到时,根据数据中的控制段的内容进入相应子模块进行处理。主程序流程图如图4-1所示。图4-1 主程序流程图4.2 系统各子程序模块本系统的子程序模块主要有:无线模块的传输程序、键盘子程序、显示子程序以及数据处理子程序模块等。4.2.1 键盘子程序模块本系统中钥匙设立了16个操作按键,分别是数字键0-9、清除键、开锁键、消警键、系统设置键、取消键、确定键以及复位键。扫描键盘的过程中,当操作者按下或松开按键时,按键会产生机械抖动。这种抖动经常发生在按下或松开的瞬问,一般持续几到十几微秒,在扫描键盘过程中,必须想办法消除按键抖动,本文采用软件延时的方法来

23、消除按键的抖动。一旦发现有键按下,就延时10ms以后再测按键的状态。这样就避开了按键发生抖动的那一段时间,使CPU能可靠地读取按键状态,另一方面,在键盘扫描中,应防止按一次键而有多个对应键值输入的情况,即当某一个按下的键还未松开时,键盘扫描程序和键处理程序已经执行了多遍。因此,在键扫描程序中不仅要检测是否有键按下,在有键按下的情况,还应检测按下的键是否松开,只有当按下的键松开以后,程序才能做一次键处理。4.2.2 显示子程序模块图4-2 LCD1602液晶显示子程序模块4.2.3 无线数据收发模块增强型模式的nRF24L01可以使双向链接协议执行起来容易、有效,使程序简单。发射数据时,首先将n

24、RF24L01配置为发射模式:接着把地址TXADDR和数据TXPLD按照时序由SPI口写入NRF24L01缓存区,TXPLD必须在连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少lOus,延迟130us后射数据。若自动应答开启,那么NRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TXDS置高,同时TXPLD从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARCCNT)达到上限,MAXRT置高,TXPLD不会被清除;MAXRT或TX_DS置高时,使IRQ变低,以便通知MCU。最后发射成功

25、时,若CE为低则NRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。4.2.4 数据发送及接收的软件设计流程图图4-3 数据发送及接收的控制流程图4.2.5 数据存储模块 采用STC89C52内部扩展EEPROM存储,运用ISP总线方式进行读写 4.2.6 配对程序模块图4-4 配对操作控制流程图4.2.7 开锁/消除警报程序模块图4-5 开锁/消除警报操作控制流程图4.2.8 密码修改程序模块图4-6 密码修改操作控制流程图4.2.9 数据加密处理模块这里提出一种基于一次性随机变化密钥的替换的加密算法及通信协议,每次

26、正确收发数据后,收发双方的密钥都由一个随机数一致更新;在一次通信中原密钥和新密钥同时使用,既保证了对称性,又保证了随机性。对于明文为09的加密算法描述如下:设置一个10*10替换盒S ,每一行由09十个字符排列,设置一个初始密钥t;S替换如下:S(a,b):用a行b列对应的值作为S(a,b)的值S(a,b)表示对b利用a做S盒反替换; 即检索第a行中值为b的下标值作为S(a,b)的值(A B初始密钥一致 )数据内容为09的数字(用户密码,一般为6位)对于其他数据,单片机一个字节表示范围为0255,不宜采用S盒替换法,而采用简单的方法,如下: 明文m,则将其加密为密文n=m+t;由于t为一次性密

27、钥,所以系统仍具有安全性例如:A和B通信过程(A、B双方已经过配对): 设当前密钥为t (收发双方已同步此密钥),锁的标识为ID(4位),要发送的密码信息为P(6位),控制信息为K(1位) ;此处“位”表示一个数据(1字节)A发送端:(1) 生成随机数r=rand();(2) 用t加密r,得R1=r+t;(3) 用r及S盒加密ID和密码信息P,分别得到ID1和P1,控制信息加密为K1=a+r(4) R1、ID1、P1、K1即为密文,将他们用数组组织起来通过无线模块发送(5) 等待应答并判断是否超时(6) 未超时且收到应答,用r解密应答信息(内容为ID)(7) 检验应答是否正确(8) 应答信息正

28、确,将r存入存储器替换t(作为t的新值),否则返回B接收端:(1) 接收到数据(2) 用t(=128)解密R1得到r(3) 用r解密ID1、P1、K1,得到ID、P、K(4) 判断ID是否与本机存储的ID一致,不一致则返回,否则继续(5) 用r及S盒加密本机存储的ID得到ID2(6) 将ID2作为应答信号发送出去(7) 将P、K(分别对应密码可控制信息)作为有效信息(8) 将r存入存储器替换t(作为t的新值)至此,顺利的话,A已将密码P及控制信息K发送给B,并更新了密钥(随机数r);B收到A发送的密码P及控制信息K,并更新了与A相同的密钥;AB正确通信后同时更新了密钥,且这个密钥是随机数,即保证了下次通信时密钥的一致。4.2.10 报警程序 图4-7 报警控制流程图4.3 本章小结 本章主要从各个不同的模块入手,详细的介绍了各个不同模块的程序流程图。5总结 通过大量文献解读与系统分析、研究、设计和参与课题的实践,在导师的指导帮助下,终于基本完成了开题报告中确定的任务。本课题针对无线密码锁系统的研究,是对单片机技术、通信技术、电子技术等专业知识的综合运用。在设计和开发的过程中,紧密结合密码安全的实际要求,综合目前一些先进的加密理念。本文遵循系统的需求,进行总体分析与设计、模块化设计、详细设计,并对系统的可靠性和安全性进行了设计。参考文献1房德君等一种新型单片机综

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1