实用新型内容
本实用新型的目的,是为了克服现有电子密码锁存在的密码容易泄漏、修改密码麻烦、安全性差的缺点,提供一种具有自动生成密码功能的电子锁,该电子锁可以自动生成大量的用户密码,同一时间只有一个用户密码有效,而且使用后会自动失效,下一个用户密码被激活。这样,即使用户输入密码的过程被别人偷看到,别人也不可能用偷看到的密码打开电子锁,该密码已经失效,避免了密码泄露风险,具有安全性高的特点。
本实用新型的目的可以通过以下措施达到:
具有自动生成密码功能的电子锁,其特征是:它包括控制器模块、键盘输入及显示模块、密码查询器模块和锁机构模块;控制器模块中设有批量密码生成单元、密码比较与管理单元;控制器模块的一个信号输入/输出端与键盘输入及显示模块的一个信号输入/输出端连接;控制器模块的信号输出端之一与密码查询器模块的信号输入端连接,控制器模块的信号输出端之二与锁机构模块的信号输入端连接;控制器模块接收键盘输入信号,包含有批量密码生成单元、密码比较与管理单元;批量密码生成单元用于对电子锁进行设置,批量生成用户密码;密码比较与管理单元用于对密码进行比较,如果密码正确,通知控制器模块开锁,并且使该密码失效,激活下一组用户密码。
实际应用中:
所述的控制器模块,用于接收键盘输入,自动生成密码,对比密码,驱动锁机构模块,发送用户密码给密码查询器模块;控制器模块包含了批量密码生成单元、密码比较与管理单元;所述的批量密码生成单元用于对电子锁进行设置,批量生成用户密码;所述的密码比较与管理单元用于对密码进行比较,如果密码正确,通知控制器模块开锁,并且使该密码失效,激活下一组用户密码。
所述的键盘输入及显示模块用于用户输入密码、设置电子锁的信息、显示用户输入的信息和电子锁的状态信息和操作提示。
所述的密码查询器模块用于读取电子锁生成的用户密码,供管理者随时查询。
所述的锁机构模块是电子锁的机械部分,用于实现上锁和开锁。
本实用新型的目的还可以通过以下措施达到:
本实用新型的一种实施方式是:所述控制器模块的具体电路结构由单片机U1,三端稳压器U2、电容C2、电容C3、电容C4、电容C5组成的稳压电路,三极管Q1、三极管Q2、三极管Q3、三极管Q4、电容C1、电阻R2、电阻R3、电阻R5、电阻R6组成的电机正反转驱动电路,以及电压检测芯片U3连接而成;其中,单片机U1的是一款4K的flash单片机,含256字节的EEPROM;由单片机U1的定时器、计算器、程序存储器构成批量密码生成单元,由单片机U1的逻辑比较器、计算器、EEPROM、程序存储器构成密码比较与管理单元。
本实用新型的一种实施方式是:所述键盘输入及显示模块的具体电路结构由按键K2~K13、电阻R8~R14组成的按键电路,限流电阻R15~R21、六位共阳数码管组成的显示电路连接而成。
本实用新型的一种实施方式是:所述密码查询器模块的具体电路结构由中央控制器U4,存储芯片U5,LCD液晶模块、电阻R27~R36、按键K14~K25、二极管D2~D4、三极管Q7组成按键输入和液晶显示电路连接而成。
本实用新型的有益效果是:
本实用新型提供一种具有自动生成密码功能的电子锁,电子锁自动生成大量的用户密码,同一时间只有一个用户密码有效,而且使用后会自动失效,下一个用户密码被激活。这样,即使用户输入密码的过程被别人偷看到,别人也不可能用偷看到的密码打开电子锁,该密码已经失效,避免了密码泄露风险,具有安全性高的优点。该实用新型是一个很好的管理工具,因为密码一次性有效,所以下级每次使用电子锁都需要向上级申请用户密码。更进一步,可以利用现代先进的通信工具,例如电话,手机等实现远程管理,管理人和用户可以相隔两地,用户通过通信工具向管理人取得密码后打开电子锁。
具体实施例:
参照图1,本实施例所述的一种具有自动生成密码功能的电子锁,它包括控制器模块1、键盘输入及显示模块2、密码查询器模块3和锁机构模块4;控制器模块中设有批量密码生成单元1-1、密码比较与管理单元1-2;控制器模块1的一个信号输入/输出端与键盘输入及显示模块2的一个信号输入/输出端连接;控制器模块1的信号输出端之一与密码查询器模块3的信号输入端连接,控制器模块1的信号输出端之二与锁机构模块4的信号输入端连接。
实际应用中:所述的控制器模块,用于接收键盘输入,自动生成密码,对比密码,驱动锁机构模块,发送用户密码给密码查询器模块;控制器模块包含了批量密码生成单元、密码比较与管理单元;所述的批量密码生成单元用于对电子锁进行设置,批量生成用户密码;所述的密码比较与管理单元用于对密码进行比较,如果密码正确,通知控制器模块开锁,并且使该密码失效,激活下一组用户密码。所述的键盘输入及显示模块用于用户输入密码、设置电子锁的信息、显示用户输入的信息和电子锁的状态信息和操作提示。所述的密码查询器模块用于读取电子锁生成的用户密码,供管理者随时查询。所述的锁机构模块是电子锁的机械部分,用于实现上锁和开锁。
参照图2,本实用新型所述的电子锁的控制过程如下:
1)通过键盘输入及显示模块2输入管理密码,获得电子锁的设置权限;
2)所述控制器模块1接受键盘输入及显示模块2输入的信息后,通过批量密码生成单元1-1批量生成用户密码;这些用户密码都有一个唯一的用户密码ID,其中,只有一组用户密码处于激活状态;控制器模块1将处于激活状态的用户密码ID发送到键盘输入及显示模块2显示出来;
3)利用用户密码ID在密码查询器模块3中查询,获得用户密码;
4)通过键盘输入及显示模块2输入获得的用户密码;
5)当所述控制器模块1接收到键盘输入及显示模块2发送过来的用户密码后,通过密码比较与管理单元1-2对用户密码进行比较,如果用户密码正确,使该用户密码失效,激活下一组用户密码;同时由控制器模块1发送信息到锁机构模块4,实现开锁。
在步骤3)中,密码查询器模块3查询用户密码的步骤如下:
1)输入密码查询器模块密码;
2)输入想查询的电子锁序号;
3)输入用户密码ID号;
4)密码查询器模块显示用户密码。
在步骤5)中,当密码比较与管理单元1-2对用户密码进行比较时,密码比较与管理单元1-2从EEPROM中读取到被激活的用户密码ID号,然后利用用户密码ID号通过计算器计算出用户密码在程序存储器中的地址;接着密码比较与管理单元1-2利用地址从程序存储器中读取到被激活的用户密码,利用逻辑比较器跟用户输入的密码进行比较,如果相同,把用户密码ID加1后,保存到EEPROM中,那么刚使用的用户密码失效,下一个用户密码被激活同时,由控制器模块1的电机正反转驱动电路发送信息到锁机构模块4,实现开锁。
以下结合附图3-6对本实用新型的硬件电路进行详细描述:
参照图3,所述控制器模块1的具体电路结构由单片机U1,三端稳压器U2、电容C2、电容C3、电容C4、电容C5组成的稳压电路,三极管Q1、三极管Q2、三极管Q3、三极管Q4、电容C1、电阻R2、电阻R3、电阻R5、电阻R6组成的电机正反转驱动电路,以及电压检测芯片U3;图中,还包括电阻R1、R4、R7,三极管Q5、查询密码接口CN1、按键K0、K1。
U1为单片机,选用PIC的16F883,该单片机是一款4K的flash单片机,含256字节的EEPROM.它是控制器模块的核心,用于接收键盘输入,自动生成密码,对比密码,驱动锁机构模块,发送用户密码给密码查询模块。U2,C2,C3,C4,C5组成一个简单的稳压电路,保证U1稳定运行。U2是一个三端稳压器,C5,C6,C7,C8是稳压滤波电容。U3是一个电压检测IC,如果电压低于3.9V,它就输出一个低电平通知U1单片机。Q1,Q2,Q3,Q4,C1,R2,R3,R5,R6组成一个电机正反转驱动电路。U1单片机通过设置RA4,RA5I/O口的电平,实现电机的正转和反转,驱动锁机构模块。
批量密码生成单元1-1由单片机里的定时器,计算器,程序存储器组成。
在这个实例中,单片机会自动生成150组8位的随机密码。这里采用线性叠加法来获得伪随机数。线性叠加法涉及二个内容:乘法和加法。它的三个步骤如下:
1、旧的种子和一个常数A相乘,
2、然后所得结果跟第二个常数c相加。
3、新的种子是结果的低32位,利用它来获得下一个种子。
计算公式:种子=A×种子+C。
随机数函数的关键在于选择优秀的″常数A″,其实也就是选择了一个固定的数字序列。″常数c″不像乘数A那样重要,但是它一定是个奇数。事实上,c可选1,它会简化计算。经过人们的不断论证和测试发现,69069这个乘数是一个神奇的数字,而且可以进减小程序运算的时间。
利用定时器每10ms中断一次,在中断程序中种子自动加1,这样保证种子的随机性。
单片机计算出一个新的种子,然后把它转化为8位密码,然后保存到程序存储器中。种子是32位的,每4位就代表一个数字,就得到8个0到15的随机数字。再通过处理得到8个0到9的随机数。转化公式是:Xn=(Xn-1+Yn)%10。
Xn代表0到9的随机数,Yn代表0到15的随机数。
因为EEPROM只有256个字节,容量不够,所有把密码保存到程序存储器中。
密码比较与管理单元1-2由单片机里的逻辑比较器,计算器,EEPROM,程序存储器组成。
当密码比较与管理单元1-2接收到键盘输入及显示模块2发送过来的用户输入密码时,密码比较与管理单元1-2从EEPROM中读取到被激活的用户密码ID号,然后利用用户密码ID号通过计算器计算出用户密码在程序存储器中的地址。接着密码比较与管理单元利用地址从程序存储器中的读取到被激活的用户密码,利用逻辑比较器跟用户输入的密码进行比较如果相同,把用户密码ID加1后,保存到EEPROM中,那么刚使用的用户密码失效,下一个用户密码被激活。
参照图4,所述键盘输入及显示模块2的具体电路结构由按键K2~K13、电阻R8~R14组成的按键电路,限流电阻R15~R21、六位共阳数码管组成的显示电路连接而成。
键盘输入及显示模块2用于用户输入密码和设置电子锁的信息和显示用户输入的信息和电子锁的状态信息和操作提示。键电路由K2~K13,R8~R14组成12个按键,跟图3的U1的七个I/O口相连接。三跟行线,四跟列线。这是扫描方式键盘键盘,采用扫描方式检测按键闭合情况及识别确定键码。显示电路由R15~R21,六位共阳数码管组成。数码管的阳极由图3的U1的6个I/O口驱动,R15~R21是限流电阻,具体值可根据亮度调整。数码管显示由图3的U1控制,采用动态扫描的方法工作。数码管的7个段位脚跟键盘共用I/O口,因为它们都采用扫描方式工作,工作的时段不一样,不会互相干扰。这种单片机驱动数码管和共用I/O口的设计可有效的降低成本。
参照图5,所述密码查询器模块3的具体电路结构由中央控制器U4,存储芯片U5,LCD液晶模块、电阻R27~R36、按键K14~K25、二极管D2~D4、三极管Q7组成按键输入和液晶显示电路连接而成。密码查询器模块用于读取电子锁生成的用户密码,供管理者随时查询。本实例的密码查询器可储存30把电子锁的用户密码信息,每把电子锁有150组用户密码,每组用户密码固定8位。
U4是密码查询器模块的中央控制器,它是一款8位的单片机,选用HOLTEK的HT48R50A-1,4K的程序存储器,在主震4MHZ时,工作电压为2.0V到5.5V.它控制密码查询器模块与控制器模块的串行通信,控制按键液晶显示电路和蜂鸣器驱动电路。
U5是两线串行EEPROM,它跟U4的I/O口连接进行通讯。用来存储用户密码。本实例采用AT24C256,它可存储32768个字节数据。一个字节可保存2位密码,一个8位的密码需要4个字节。密码查询器需要储存30把电子锁的用户密码信息,那需要的空间是:4×150×30=18000(字节)。AT24C256可以满足要求。
按键输入和液晶显示电路由LCD液晶模块,R27~R36,K14~K25,D2~D4,Q7组成,按键输入用于输入管理密码和查询信息。液晶显示用于显示查询结果,输入信息和操作提示。
所述密码查询器模块3还包括由三端稳压器U6、电容C8、电容C9、电容C10、电容C11组成的稳压电路。图中还包括:查询接口CN2、电阻R22、R23、R24、R25、R26,电容C6、C7,二极管D2,三极管Q6,晶振X1。
密码查询器模块读取电子锁生成的用户密码步骤:
1、把密码查询器模块的查询插头插到电子锁的查询插座上。
2、在密码查询器模块上输入正确的管理码。
3、密码查询器模块接收电子锁发送的用户密码,然后保存到EEPROM中。
密码查询器模块查询用户密码步骤:
1、输入密码查询器模块密码。
2、输入想查询的电子锁序号。
3、输入用户密码ID号。
4、密码查询器模块显示用户密码。
参照图6,所述的锁机构模块4是电子锁的机械部分,用于实现上锁和开锁。上锁时,电机正转,锁杆伸出,当锁杆压到关门行程开关时,锁杆已到位,电机停止转动。开锁时,电机反转,锁杆缩入,当锁杆压到开门行程开关时,锁杆已到位,电机停止转动。