密码锁随着时代的发展,从机械密码锁过渡到了现阶段所使用的电子密码锁。电子密码锁由于其简单的数字组合便可作为其密钥的优点受到了大家的青睐,然而,没有实体密钥的缺陷也成为了数字密码锁容易被破解的缺陷。将动态密码自动变更的功能与数字密码锁相结合会是一个很好的解决方案。为解决蓝牙模块安全性能不高问题,引入安全令方式,采用STC89C52单片机作为控制单元,结合HC05蓝牙模块实现动态密码生成以及与移动端交互通讯功能,实现一种基于单片机控制的高安全性动态密码锁。
早在距今5000年前人类历史上便有了类似木锁的结构产生。机械锁因为其可靠的耐用性以及较低的造价,成为了历史长河中不可或缺的一环。但随着现代数字化时代的推进,机械锁的缺点也就慢慢地暴露出来。机械锁需要锁芯和金属制成的钥匙上的不同齿状相配合才能工作,而且金属钥匙一旦丢失,不管是谁捡到钥匙都可以将机械锁打开。根据调查,每2000把锁中就存在一把锁的钥匙齿牙相同或相似,大大降低了安全性。
据有关资料介绍,电子密码锁早在20世纪30年代就已经开始着手研究了,主要应用于一些特殊的场所。目前,在很多发达国家,电子密码锁的种类非常齐全,制作技术也日趋成熟,电子密码锁已经慢慢被广泛应用于各种公共处所,并深深融入人们的日常生活。
汪建关等人、解翔宇等人均设计了基于STC89C52单片机的数字密码锁,其通过矩阵键盘输入开锁密码,当密码输入正确时,开锁驱动电路实现开锁功能。STC89C51单片机由于其低功耗高性能等特点,成为了基于单片机的密码锁开源设计的很好参照样本。
然而,数字密码锁因为其没有实体密钥的缺陷也成为了数字密码锁容易被破解的缺陷,导致其安全性能大打折扣。于是乎,将数字密码自动动态更新成为了一种很好的技术解决方案。对于动态密码锁,廖杰等人设计出了一款基于云计算的动态密码锁系统以增强密码的安全性。为实现密码锁与密钥的分离,密码锁和移动端通讯成为了发展的一大趋势,目前GSM模块由于其与手机号一一对应的关系,成为了动态密码锁与移动终端通讯的最佳选择。董一鸣等人在基于STC89C52单片机的数字密码锁的基础上设计了一种利用GSM模块与手机进行短信通讯的动态密码锁系统。而在于移动设备的通讯上,首先随着GSM模块的广泛使用,张柏畅等人设计出了基于GSM智能密码锁短信双工模式的通讯方式。
本研究调查发现,GSM模块以西门子公司出品的TC35模块为例,市场价格约为100元,这样的价格比密码锁所采用的核心芯片89C52系列还贵不少。于是,高昂的价格会成为动态密码锁的运用限制条件,并且由于GSM模块需占用一张SIM卡,成为了其很累赘的一点。
相比之下,HC05蓝牙模块成本较低,调试较为简单;然而由于其连接方式安全性低,即所有移动设备均可进行蓝牙匹配连接,缺乏一机一锁的对应安全关系,使蓝牙模块在移动设备通讯密码锁方面的运用受到限制。受到方凯彬等人提出的一种密码锁短信动态口令公开验证模型的启发,将用户静态安全口令和动态密码相结合应当是一种较好的提高安全性的方法。
我们的研究希望能在保证密码的安全性的基础上,采用价格更为低廉的HC05蓝牙芯片与移动终端进行通讯最大化降低这款密码锁的成本。
1 系统总体设计
安卓进程间通信本设计的核心单元将采用STC89C52单片机最小系统,以及相应的实现功能的外设。旨在实现通过STC89C52单片机产生动态密码并保存、自动更新,之后用户可通过手机蓝牙连接,回答安全令获得随机生成的动态密码的动态密码锁。从而实现动态密码以及静态安全令双重密码保护的功能,既确保密码的安全性,同时相比于基于GSM
模块进行通讯的密码锁,降低生产成本。
图1 系统总体运行流程图
如图1所示,为系统总体流程图。开锁进程总体包括用户端操作以及单片机端操作。密码锁在无外界信号时,自动产生动态随机密码,并储存于EEPROM中,这样即使外界有盗窃密码的企图,也会受到随时更新的密码限制。当单片机接收到用户端开锁请求时,即从预存的3个安全令中随机发送一个到用户端进行安
基于51单片机及蓝牙模块通讯的动态密码锁设计北京理工大学 吕 添 陈 鹏 甄 灏 彭梓桓
全令验证,而用户端则此时需要输入安全令信息,如输入正确,则单片机端对比后提供目前的动态密码;如输入错误,则需重新输入,多次失败后激活报警程序。用户输入正确动态密码后,继电器启动完成开锁操作。
1.1 硬件设计
图1所示为利用Altium Designer绘制的动态密码锁电路原理图,其中一共包括8个部分:STC89C52芯片、A T24C02芯片、DS1302芯片、HC05蓝牙模块、LCD1602显示器、4×4矩阵键盘、继电器、提示灯LED。
STC89C52芯片是STC推出的新一代超强抗干扰/高速/低功耗的51单片机STC89C52,它是采用8051核的ISP(In System Pro-gramming)在系统可编程芯片,指令代码完全兼容传统的8051单片机。如图2所示,单片机核心模块为8051单片机最小单元,其包括了振荡电路、复位电路以及STC89C52芯片本身。其中多数引脚均采用了外接排阻上拉至VCC的设计,用于增加I/O口输入输出信号稳定性。
A T24C02芯片作为密码的储存单元,A T24C02芯片因为其掉电不丢失数据,起到EEPROM的作用,其中该芯片的SCL和SDA引脚分别与单片机P21和P20引脚连接。LCD1602承担了这款密码锁的人机交互显示界面,它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成,其支持2行各16字符显示。
HC05蓝牙模块则承担了通讯功能,其中P31引脚与模块的RXD 接口连接,P30引脚接模块的TXD模块,GND、VCC则对应与单片机相应接口连接,与其匹配的移动终端软件可以由MIT APPIN-VENTOR制作。DS1302芯片是组成该系统的外部时钟源,成为了增加功能性的设施。LED小灯、嗡鸣器等起到提示、报警功能。最后再由单片机控制继电器模块实现锁芯的开合。其中4×4矩阵键盘包括了0-9数字按键、确认、返回键以及上、下翻页键;其采用先列后行,拉至低电平,交叉检测按键按下的检测方式。
1.2 程序设计
程序框架设计:
根据本设计的目的,除主函数外,可以划分为6个功能模块,即6个头文件:I2C、key、LCD、code、timer、Bluetooth,如图3所示。其中,I2C模块负责利用I2C通讯模式实现单片机与其对应外设的通讯,例如和A T24c02芯片通讯实现EEPROM的功能;key模块则包含了按键扫描的代码实现;LCD模块包含了LCD1602显示器的相应功能使能、实现的函数;code模块则负责了动态随机码的生成、自动更新储存等功能;timer模块实现了定时器中断的相应配置;Bluetooth
模块图2 电路原理图
则主要负责蓝牙数据的收发以及安全令的储存对比等功能。
程序实现流程:
程序总共包括了4个过程,即:初始化、主循环、定时器中断、蓝牙串口中断。程序流程框图如图4所示。
(1)程序初始化过程
程序的初始化过程包括了:相关参数的初始化赋值;单片机I/O 口引脚定义;程序标志位初始化;LDC1602以及USART 串口的初始化;从EEPROM 中读取断电前最后更新的密码,如无则为初始密码;定时器中断的初始化等。
(2)程序主循环
主循环中首先调用按键读取相关函数,读取是否有按键输入,之后利用键值判断更新step 标志位。step 函数组中包括了step0~step6等,均有一个标志值step 指明函数运行进程,他们由主循环中的一个case 条件语句进行判断进而推进单片机程序按步骤进行。Step0是初始界面的显示,当按键按下时,step 值
自动加一,进入到下一步。Step1、step2是相对紧密的两个函数,step2是初始化选择菜单页面,而之后自动执行step2即菜单滚动、选择功能的实现。Step3则是初始化密码输入界面,之后进入step4以“*”展示所输入的密码。
Step5则是列举了输入过程中若干情况的系统应答情况。Step6则是完成了最终显示,成功解锁或是失败。
(3)定时器中断
定时器中断中,首先进行时长判断,达到预定更新密码的时长,则进行利用定时器产生数字做种产生随机数,之后将6位随机密码储存在EEPROM 中。同时进行0-2随机数生成,决定随机产生的预存3个安全问题,以便在之后获得解锁请求后调用。
(4)蓝牙串口中断
蓝牙串口中断触发方式为蓝牙模块接收到外界信息时触发,进入中断后,首先向移动设备发送安全问题,等待移动设备回复。由于受到该型51单片机SBUF 寄存器容量影响,安全令答案仅支持2字节大小,可使用数字或字母组合。接收到安全问题回复后进行答案对比,若正确,则发送最新的动态密码至移动端;若错误,则有三次重试机会,否则触发报警功能。
2 实际运行测试
实际测试中使用到:51单片机开发板如图5所示;安卓手机作为移动端;BTClient 蓝
牙接收、发送程序。
图3 代码功能模块框架
图4 程序流程图
图5 单片机开发板
(1)上电后,LCD 第一行显示“biter 02”,第二行显示“wel-come ”。
(2)之后按任意键进入菜单页面,菜单页面可通过按上、下翻页键实现滚动选择,选择光标在最右侧成楔形。
(3)菜单首个选项为“unlock ”选项,选择后进入密码输入
界面,可通过矩阵按键输入密码。
(4)菜单第二个选项为“change password ”选项,选择后在输入正确密码后可实现手动更改密码的功能。
(5)菜单第三个选项为“enable dtmm ”选项,选择后可实现
使能或失能自动更新生成动态密码的功能。
图6 测试样例一 图7 测试样例二
图8 测试样例三(6)若使能动态密码功能,即可在既定时间内自动更新随机
密码并储存,储存成功后LED 指示灯闪烁。
(7)密码的获取可通过安装在手机上的BTClient 程序,匹配到HC05蓝牙模块。当手机端输入按键“9”时,触发单片机发送安全问题至手机,这里的按键也可根据用户需求更改。安全问题显示后可以输入2字符的安全令答案,之后获得动态密码。本研究中测试了三次,分别体现了动态随机码生成,以及随机抽取的三个安全问题的功能,分别如图6、图7、图8所示。
(8)开锁成功后显示“welcome ”。
由图6和图7可以看到,经过一定时间等待,系统自动生成了新的随机密码,安全问题由于一定概率,从三个预设安全问题中抽取
到了同一个问题。由图7和图8可以看到,再经过一定时间等待,安全问题和随机密码都发生了变化。
相比于普通的电子密码锁,一款动态密码锁的设计能很大程度提高它的安全性;而当下动态密码锁多采用GSM 模块实现与移动端通讯,成本较高;本设计的基于51单片机及蓝牙模块通讯的动态密码锁,在保证动态密码生成功能的前提下,实现通过蓝牙与手机通讯,设置随机抽取的静态安全问题,很大程度上提高了蓝牙模块的安全性,而同时降低了动态密码锁的生产成本和使用繁
琐性,因此具有较广阔的应用前景。
(上接第134页)
使用嵌入式处理器与UWB 活动节点以及INS 系统相连,接收距离与惯导信息,实时解算位置坐标。使用小型四旋翼无人机携带上述装置在场地手动飞行。试验场地保持空旷,为模拟NLOS 环境,在处理器每次接收的UWB 距离信息中,随机选取3个加入方差
的高斯误差。记录纯UWB 定位坐标,LOS 环境下融
合坐标,NLOS 环境下融合坐标轨迹,为方便观察,仅选取X,Y 坐标作平面轨迹如图2所示。
表1 UWB节点误差统计
测试点实际坐标误差(LOS)/m 误差(NLOS)/m
1(10,10,2)0.2350.4972(25,10,2)0.1970.3783(10,20,2)0.2020.3474(25,20,2)0.1840.5885(10,10,5)0.1390.2036(25,10,5)0.1670.351
7(10,20,5)0.1790.2678
(25,20,5)
0.168
0.392
由图2可以看出,融合算法相较于纯U W B 系统,定位的精确性与稳定性均有提升。其中在L O S 环境下表现较好,在NLOS 环境下仍存在一定误差,但能够控制在较小的范围内,并保持稳定。
为了能够量化的评估算法性能,本文选取8个场地中的固定点,使用激光测距仪测量其真值坐标。参考(马思源.基于IMU/UWB/码盘的移动机器人导航定位方法研究),在每个固定点出取20组位置解算数据,
对每个点采用平均欧氏距离作为误差指
标,衡量定位准确性。如表1所示,融合定位系统在LOS 环境下的平均误差为0.184m ,在NLOS 环境下的平均误差为0.378m ,算法稳定程度高,能够在NLOS 环境下运行。
本文设计了一种基于松耦合结构的UWB 与INS 系统融合定位方法,通过实验对比组合定位系统在LOS 与NLOS 环境下的相对于纯UWB 定位系统的性能提升,同时量化的给出了系统的定位误差。本文所提出的组合定位的方法相较于单一系统,在定位性能上有明显提升。在室内环境,特别是由于复杂环境引起的NLOS 环境
下,组合定位能够较好的完成定位任务,满足精确性与稳定性的要求,具有较强的实用性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论