一种FPGA密码锁的设计与实现

2022-07-23 06:36江阴职业技术学院电子信息工程系杨建松孙朝伟井新宇
电子世界 2022年1期
关键词:密码锁数码管蜂鸣器

江阴职业技术学院电子信息工程系 杨建松 孙朝伟 井新宇

随着现在社会科技水平的不断进步,生活水平质量的不断提升,人们对安全防范意识也变得更加重视,对家庭防盗意识也越来越高。传统机械锁的结构过于简单,防盗系数过低已无法保证人们的家庭安全,有的还因此损失钱财。而具有现场可编程功能的FPGA芯片,跟基于单片机密码锁和传统密码锁相比较,如果拿它来构成系统,可靠性能会更好,这样有利于密码锁的更改与升级,使之变得更加便捷。

1 装置设计要求及其指标

本次设计硬件方面需要使用FPGA开发板以及软件Quartus II,VHDL语言编程设计密码锁电路实现密码锁电路功能。

设计要求:

产品有按键输入密码和手机蓝牙输入密码两种方式,用户可自行选择输入密码方式。

产品在按键模式下输入密码成功可以进行修改密码操作,手机蓝牙模式下不能修改密码。

密码输入成功之后会有LED提示开锁成功,密码输入失败后蜂鸣器会响应20S,期间不能再输入密码。

2 系统原理分析

2.1 直流电机驱动原理

直流电机的工作原理就是把电枢线圈中感应的交变电动势,靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。感应电动势的方向按右手定则确定。导体受力的方向用左手定则确定。

2.2 蓝牙工作原理

蓝牙设备使用无线电波连接手机和电脑。蓝牙产品包含一块小小的蓝牙模块以及支持连接的蓝牙无线电和软件。当两台蓝牙设备想要相互交流时,它们需要进行配对。蓝牙设备之间的通信在短程的临时网络中进行。

3 系统方案

3.1 系统分析

本系统使用5V外接电源,EP1C3T144CN单片机读取有没有人按按键,并且按照按键指令进行相对应的操作。如果通过按键或手机蓝牙成功输入密码后LED灯显示开锁的状态,单片机打开门锁。如果没有在规定时间内通过按键或手机输入正确的密码,LED灯显示关锁状态,并且蜂鸣器发出警报,在此期间不得再次输入密码。

3.2 系统原理图

系统原理图如图1所示。

图1 系统原理图

3.3 主控芯片选择

EP1C3T144C8N是一个表面贴装现场可编程门阵列芯片,它具有着2910个逻辑元件。它是一款入门级的FPGA芯片,大约3000个LE,引脚的个位数为144,具有8ns的内部门延迟时间。工作电源电压:1.5V~3.3V;最大工作频率:250MHz。

4 硬件设计

4.1 电源电路

FPGA采用5V供电,AMS1117-3.3V得到3.3V,AMS1117-1.2V得到1.2V。并装配了自恢复PTC保险丝,可最大程度的降低使用过程中意外短路引起的电路损坏。

4.2 数码管显示电路

FPGA采用了2个4位8段共阳LED数码管,通过S8550芯片驱动位信号,数码管采用共阳数码管,点亮段码和位码均为低电平有效。

4.3 蜂鸣器电路

图2 蓝牙门锁原理图

FPGA装配了1个无源蜂鸣器,低电平有效,S8050进行驱动,此时FPGA可以通过产生一定频率的方波来驱动发声一定频率对应着一定的音调。

4.4 蓝牙电路

这里我选用的是HC-06蓝牙串口通信模块,是基于Bluetooth Specification V2.0带EDR蓝牙协议的数传模块。无线工作频段为2.4GHz ISM,调制方式是GFSK。模块最大发射功率为4dBm,接收灵敏度-85dBm,板载PCB天线,可以实现10m距离通信。蓝牙电路原理如图3所示。

图3 蓝牙电路原理图

4.5 电机驱动原理图

这里我采用门锁电机,TC118S(单通道直流马达驱动器)。电机驱动电路原理如图4所示。

图4 电机驱动电路原理图

5 软件设计

软件模块:

蓝牙智能门锁软件模块如图6所示。

图6 蓝牙智能门锁软件模块

(1)按键处理模块

系统时钟频率为50MHz,经过50000分频,得到1KHz脉冲信号,作为按键消抖出理的时钟信号,通过状态转换检测按键状态实现按键延时消抖,RST-修改密码按键、Set_PWD-数字选择按键、Sel_DIG-输入密码按键、Inp_OK-修改密码确认按键、Set_OK-复位按键。

(2)密码设置与开锁控制模块

系统复位时,密码为系统原始密码;只有输入密码正确并且设置密码按键(RST)按下后才能修改密码,即完成密码的装载;在非设置密码状态,按下数字选择键(Set_PWD),输入密码和蜂鸣器响应20S(OvSPK)均未完成时,启动StSPK蜂鸣开启信号;按数字选择键(Set_PWD),选择0~9数字;按数字输入完成键(Sel_DIG),统计输入密码个数为1~4;在不违时的情况下(EnSPK=0)可以进行输入密码;非设置密码情况下,输出密码,密码正确驱动电磁锁开锁,设置密码情况下,输入设置的密码,输出新密码。StSPK为启动发声信号,EnSPK为发声使能信号,OvSPK为发声完成信号。

(3)显示译码模块

采用数码管动态扫描的原理,将4为二进制密码(Password)译码为7段码,在LED数码管显示。动态扫描的频率有系统时钟频率分频得到。

(4)发声控制模块

模块得到StSPK启动发声信号启动蜂鸣器,准备5s,鸣响20s,并产生EnSPK发声使能信号和OvSPK发声完成信号,鸣响的频率为1KHz。

6 测试结果

表1 蓝牙门锁使用情况

本文设计的蓝牙门锁,基于FPGA和蓝牙模块,可以使用两种方式进行开门处理,一种是按键密码开锁,另一种是设计蓝牙密码开锁,两种都可以进行开锁,不过只有按键方式可以修改密码,蓝牙不能修改密码。

猜你喜欢
密码锁数码管蜂鸣器
电动自行车产品车速提示音检测现状和整改技术研究(2)
基于51单片机的分数计数器设计
微课教学设计之“数码管动态显示”
掌控板制作简易钢琴
本尼丢了蜂鸣器
Arduino编程
MC9S08FL16单片机数码管静态显示分析
开启密码锁
数字密码锁的逻辑实现
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响