徐玉召 戴德伟 刘义 郭红波
摘要:随着社会发展与电子科学技术的不断进步,人们对电子设备安全性的要求也越来也高,希望个人信息或个人设备信息能够更加安全,应运而生的电子密码锁因此受到了很大的关注。基于51单片机的加密锁使用RSA加密算法,其硬件系统内置STC89C52芯片,利用蓝牙设备接收信息和发送指令,由单片机完成处理信息和响应外部事件工作,从而实现电子锁加密与解锁等功能。
关键词:电子密码锁;51单片机;蓝牙
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)09-0212-03
目前,在国外RSA电子加密锁技术运用已经非常成熟,尤其在美国、德国等计算机技术发达国家,它的运用已经相当普遍,美国已经将这项技术运用到了公钥加密标准和电子商业中。电子密码锁包括图形锁、密码锁、指纹锁、人脸识别等,这些安全锁使用不同的设锁和解锁的模式,大多运用电容、机器码、热感等开锁原理,具有很高的安全性,对于网络用户的个人信息和财务等方面的安全提供了有力保障。但是,还是有少部分高智商的犯罪分子仍然无视他们的存在,究其主要原因还是因为这些加密技术在现有的破锁技术下可强破性很高,如此的结果就使的他们无法达到对更高机密的保护要求。
当下,RSA电子密码锁开锁解锁模式和美国所运用的RSA密码锁解锁开锁模式基本相符,只是运用的主要硬件有所不同,电子密码锁所使用的STC89C52单片机内部使用汇编语言处理信息,对代码的要求较低,提升了电子密码锁广泛应用的可行性。而在本设计思路中运用了RSA密钥加密技术,由于RSA加密技术在当下还属于不可强破的加密技术,从而增加了密码锁的不可强破性,提高了电子密码锁的安保性能,操作简单、性价比更高。
1电子密码锁单片机系统设计
1.1單片机的内部引脚原件功能和外部实现
单片机是一种集成电路芯片,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等,还包括显示驱动电路、发送数据的功能,具有接收信息、处理信息和做出外部响应的功能,以此来模拟密码锁。其内部有四个八位并行I/O端口:记作P0、P1、P2和P3,每个端口都是准双向口,包含一个锁存器、一个输出驱动器和一个输入缓冲器。
P0口主要用于数码管的显示。P1口主要用于外部开锁闭锁和相对状态的显示,输入输出电路图如图1所示。P2端口的第1位(P2.1)接在继电器的DIO端,在单片机内控制高低电平,为P3口控制中断提供指令。P3口主要是控制器,端口的第0位连接蓝牙的TX端,是单片机串口的接收端,P3端口的第1位连接蓝牙的RX端,是单片机串口的发送端。按键S4在内部连接P3端口的第2位,为外部中断0(低电位),按键S5在内部连接P3端口的第3位,为部中断1(高电位)。
P1口作为通用I/O口,被设计为电子密码锁的外部锁头的旋转控制,对P1的操作可以采用字节操作,也可以采用位操作。复位以后,口锁存器为“1”,对于作为输入的口线,相应位的口锁存器不能写入“0”,在图1中P1.0~P1.3作为输出线,分别接,锁身、锁柄、开锁状态指示灯和闭锁状态指示灯,P1.4~P1.7作为输入线,接四个开关S0~S3。图1子程序采用字节操作指令将开关状态送到P1.0~P1.3显示,S1,S2闭合P1.0和P1.2分别处于开锁和开锁指示状态,S3,S4闭合P1.1和P1.3分别处于闭锁和闭锁指示状态,如果状态指示灯不能与锁头锁柄同步进行指示状态,说明电子加密锁出现故障,需要维修。
1.2 单片机的功能
1)连接:和连接转换模块一样,蓝牙模块的RX连接单片机的TX,蓝牙模块的TX连接单片机的RX,此处说明单片机的RX和TX引脚分别为P3.0 RXD(串行输入口)和P3.1 TXD(串行输出口),之后可相互记录彼此的IP地址。在蓝牙模块和单片机进行连接的时候,还要注意保持两者的晶振相同,一般在12MHZ左右,晶振大小可在某平台购买的时候在详细数据参数中查询。
2)传送数据:数据传送的汇编语言指令一共有28种,用到的助记符有如下8种:MOV、MOVC、XCH、XCHD、SWAP、PUSH、POP、MOVX,也可以使用C语言代码中的UART_DMA_Enable传送信息,电子加密锁主要使用了UART_DMA_Enable调用dma(直接存储器)的发送方式。传送数据的类型可分为内部RAM的数据传输指令和片外RAM的数据传输指令,片内RAM的数据传送指令可以分为立即型、直接型、寄存器型和寄存器间址型,立即型数据传输一般使用助记符MOV。而电子密码锁所使用的是片内RAM的立即数据型传送指令。
51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。当串行发送完毕后,将在标志位TI置1,同样,当收到了数据后,也会在RI置1。无论RI或TI出现了1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。在中断程序中,要区分出来研究是发送引起的中断,还是接收引起的中断,然后分别进行处理。如果接收到1,则将P10置高电平,接收到0,P1.0置低电平。处于高电平时,开锁状态,输入输出电路如图1所示,以此来完成开锁请求。
3)接收信息:接收信息,代码使用程序存储器ROM取数据指令,这种指令只有两条,完成从程序存储器ROM中读入数据,传送至累加器。这两条指令常用于查表操作,故又被称之为查找指令,内部主要依赖于P3.6/WR(外部数据存储器写选通)和P3.7/RD(外部数据存储器读选通)。串口接收程序基于串口中断,单片机串口每次接收到一字节数据产生一次中断,然后再读取寄存器就可以得到串口所接收的数据。然而在实际应用当中,基本上不会有单字节接收的情况。一般都是基于一定串口通信协议的多字节通信。在422或者485通信中,还可能是一个主机(一般是计算机)带多个从机(相应的有单片机的板卡)。这就要求单片机能够在连续接收到的串口数据序列中识别出符合自己板卡对应的通信协议,来进行控制操作,不符合则不进行任何操作。简而来说就是,单片机要在一串数据中找到符合一定规律的几个字节的数据,来达到匹配效果。
2蓝牙模块原理和功能
2.1 蓝牙模块的功能和作用
蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块、远程控制模块和数据采集模块。一般模块具有半成品的属性 ,是在芯片的基础上进行加工,使后续应用更为方便。电子密码锁使用的是半成品蓝牙模块。电子密码锁蓝牙模块相当于开锁装置,是用来存储RSA加密源码和解秘源码的模块,同时具有与单片机进行蓝牙方式连接、发送信息和接收信息的功能。
1)连接:使用的是HC-05型號的蓝牙模块,通过USB-TTL转接器,在与单片机进行连接之前连接到电脑上,通过串口调试助手调试。进入命令调试模式,输入AT指令,设置模块的参数。设置蓝牙的名称,用指令AT+name=”xxx”\r\n设置蓝牙模块名字为xxx,方便后续查找。设置自动连接模式的串口波特率为9600,为了与蓝牙模块波特率进行匹配,用指令AT+uart=9600,0,0\r\n,设置波特率为9600,停止位1位,无校验位。若蓝牙模块为手机时,可直接使用手机蓝牙功能进行蓝牙连接,在蓝牙模块的Java代码内进行波特率设置。
2)发送信息:配对完成后,设备之间已经记录了双方的IP地址,通过点击listView设备,触发HandleMessage线程传输数据,数据流以字节流的形式进行传播。
3)接收数据:通过触发handerler.sendMessage自动接收数据流,以字节的方式接收之后再进行字符形式的转换,达到获取数据的目的。
2.2硬件功能流程
开始使用电子密码锁时,首先对蓝牙模块和单片机进行初始化,主要是执行重启操作即可,第二步在蓝牙模块上只需要按请求键请求请求重新生成密码密钥,可在,单片机接收并信息处理信息,做出生成密码和保存密码的指令,单片机显示屏会提示密码设置完成,第三步,利用蓝牙模块发出解锁请求信息,在液晶显示屏上显示开锁成功,开锁状态指示灯点亮,锁头旋转,达到解锁的目的。解锁开锁的过程省去了手动输入密码是过程,在内部使用函数直接调用接收信息端口。如图2硬件功能实现流程图所示。
3结语
电子加密锁选择51单片机,是因为它的指令简单,外围电路简单,硬件设计方便,I/O口操作简单,无方向寄存器,可用资源丰富,一般设计就可以满足电子密码锁的需要,而且易学易懂,方便后期电子密码锁的维修工作。而蓝牙模块,价格便宜、容易购买,资料丰富容易获得,程序编写简单,低功率,便于在停电的情况下使用小功率电池长期供电使用,而且使用蓝牙通信,不受互联网的限制,即便在没有无线网的情况下也可以正常使用。所以基于51单片机模块设计的电子密码锁将以其操作简单、安全系数高和价格低廉等特点,被大众所接受并得到广泛的应用。
参考文献:
[1] 邓仲华,卓四清.手机应用程序开发[M].北京:科学出版社,2004:47-69.
[2] 赵德安.单片机原理与应用[M].机械工业出版社,2004:98-126.
[3] 徐万明.基于单片机的多功能电子密码锁设计[J].信息通信,2018,184(4):119.
[4] 施亚杰,韩坚杰.基于AT89C51单片机的现代化电子密码锁探索[J].产业与科技论坛,2017,16(12):55-56.
[5] 徐剑琴,李克讷.AVR单片机的电子密码锁控制系统设计[J].装备制造技术,2017,2(15):63-70.
[6] 徐海华.基于STC15单片机和射频模块的电子密码锁设计[J].科技创新导报,2017(24):99-104.
[7] 麻锐敏.基于单片机的电子安全密码锁的设计初探[J].科技风,2018,8(14):59-91.
[8] 刘寺杰,郭翔宇. 基于单片机处理的电子密码锁设计[J].科教导刊,2018(8):49-50.
[9] 赵若静.基于单片机的电子密码锁的设计[J].电子技术与软件工程,2017(14):249.
[10] 严敏,黄皓.基于单片机的电子密码锁的设计与实现[J].佛山科学技术学院学报,2017,35(6):47-50.
【通联编辑:唐一东】