具有自动生成密码功能的电子锁及其控制方法 技术领域 本发明涉及一种电子锁, 特别是涉及一种具有自动生成密码功能的电子锁及其控 制方法。属于防盗设备技术领域。
背景技术
目前, 应用于保险柜的电子密码锁, 密码永久有效。 当用户输入密码的时候很容易 被别人偷看并记住, 别人就可以利用偷看到的密码打开电子锁。在管理方面有的电子锁只 提供一组密码, 没有管理功能。 有的具有两组密码, 一组管理码, 一组用户码。 当用户码丢失 后, 可以使用管理码打开密码锁, 管理功能太弱。当管理员只允许用户打开一次电子锁时, 他需要在用户使用后立刻更改密码。这样做操作复杂, 工作量大, 而且容易忘记更改, 形成 安全漏洞。 发明内容本发明的第一个目的, 是为了克服现有电子密码锁存在的密码容易泄漏、 修改密 码麻烦、 安全性差的缺点, 提供一种具有自动生成密码功能的电子锁。
本发明的第二个目的, 是为了提供一种具有自动生成密码功能的电子锁的控制方 法。
本发明的第一个目的可以通过以下措施达到 :
具有自动生成密码功能的电子锁, 其特征是 : 它包括控制器模块、 键盘输入及显示 模块、 密码查询器模块和锁机构模块 ; 控制器模块中设有批量密码生成单元、 密码比较与管 理单元 ; 控制器模块的一个信号输入 / 输出端与键盘输入及显示模块的一个信号输入 / 输 出端连接 ; 控制器模块的信号输出端之一与密码查询器模块的信号输入端连接, 控制器模 块的信号输出端之二与锁机构模块的信号输入端连接。控制器模块接收键盘输入信号, 包 含有批量密码生成单元、 密码比较与管理单元 ; 批量密码生成单元用于对电子锁进行设置, 批量生成用户密码 ; 密码比较与管理单元用于对密码进行比较, 如果密码正确, 通知控制器 模块开锁, 并且使该密码失效, 激活下一组用户密码。
实际应用中 :
所述的控制器模块, 用于接收键盘输入, 自动生成密码, 对比密码, 驱动锁机构模 块, 发送用户密码给密码查询器模块 ; 控制器模块包含了批量密码生成单元、 密码比较与管 理单元 ; 所述的批量密码生成单元用于对电子锁进行设置, 批量生成用户密码 ; 所述的密 码比较与管理单元用于对密码进行比较, 如果密码正确, 通知控制器模块开锁, 并且使该密 码失效, 激活下一组用户密码。
所述的键盘输入及显示模块用于用户输入密码、 设置电子锁的信息、 显示用户输 入的信息和电子锁的状态信息和操作提示。
所述的密码查询器模块用于读取电子锁生成的用户密码, 供管理者随时查询。
所述的锁机构模块是电子锁的机械部分, 用于实现上锁和开锁。
本发明的第一目的还可以通过以下措施达到 :
本发明的一种实施方式是 : 所述控制器模块的具体电路结构由单片机 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) 通过键盘输入及显示模块输入管理密码, 获得电子锁的设置权限 ;
2) 由控制器模块接受键盘输入及显示模块输入的信息后, 通过批量密码生成单元 批量生成用户密码 ; 这些用户密码都有一个唯一的用户密码 ID, 其中, 只有一组用户密码 处于激活状态 ; 控制器模块将处于激活状态的用户密码 ID 发送到键盘输入及显示模块显 示出来 ;
3) 利用用户密码 ID 在密码查询器模块中查询, 获得用户密码 ;
4) 通过键盘输入及显示模块输入获得的用户密码 ;
5) 当所述控制器模块接收到键盘输入及显示模块发送过来的用户密码后, 通过密 码比较与管理单元对用户密码进行比较, 如果用户密码正确, 使该用户密码失效, 激活下一 组用户密码 ; 同时由控制器模块发送信息到锁机构模块, 实现开锁。
本发明的第二个目的还可以通过以下措施达到 :
本发明的一种实施方式是 : 在步骤 3) 中, 密码查询器模块查询用户密码的步骤如 下:
1) 输入密码查询器模块密码 ;
2) 输入想查询的电子锁序号 ;
3) 输入用户密码 ID 号 ;
4) 密码查询器模块显示用户密码。
本发明的一种实施方式是 : 在步骤 5) 中, 当密码比较与管理单元对用户密码进行 比较时, 密码比较与管理单元从 EEPROM 中读取到被激活的用户密码 ID 号, 然后利用用户密 码 ID 号通过计算器计算出用户密码在程序存储器中的地址 ; 接着密码比较与管理单元利 用地址从程序存储器中读取到被激活的用户密码, 利用逻辑比较器跟用户输入的密码进行 比较, 如果相同, 把用户密码 ID 加 1 后, 保存到 EEPROM 中, 那么刚使用的用户密码失效, 下 一个用户密码被激活 ; 同时, 由控制器模块的电机正反转驱动电路发送信息到锁机构模块, 实现开锁。本发明的有益效果是 :
1、 本发明提供一种具有自动生成密码功能的电子锁及其控制方法, 该电子锁可以 自动生成用户密码, 同一时间只有一个用户密码有效, 而且使用后会自动失效, 在前的密码 失效后下一个用户密码被激活。 这样, 即使用户输入密码的过程被别人偷看到, 别人也不可 能用偷看到的密码打开电子锁, 该密码已经失效, 避免了密码泄露风险, 具有安全性高的特 点。
2 本发明是一个很好的管理工具, 因为密码一次性有效, 所以下级每次使用电子锁 都需要向上级申请用户密码。更进一步, 可以利用现代先进的通信工具, 例如电话, 手机等 实现远程管理, 管理人和用户可以相隔两地, 用户通过通信工具向管理人取得密码后打开 电子锁。 附图说明
图 1 是本发明所述的电子锁的模块组成框图。
图 2 是本发明所述的电子锁的控制程序流程图。
图 3 是本发明所述的电子锁的键盘输入及显示模块的电路原理图。
图 4 是本发明所述的电子锁的控制器模块的电路原理图。 图 5 是本发明所述的电子锁的密码查询器模块的电路原理图。 图 6 是本发明所述的电子锁的密锁机构模块结构示意图。具体实施方式
具体实施例 :
参照图 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 是电子锁的机械部分, 用于实现上锁和开锁。上锁 时, 电机正转, 锁杆伸出, 当锁杆压到关门行程开关时, 锁杆已到位, 电机停止转动。 开锁时, 电机反转, 锁杆缩入, 当锁杆压到开门行程开关时, 锁杆已到位, 电机停止转动。