Giter Club home page Giter Club logo

smart_password_lock's Introduction

基于FPGA的智能密码锁 第三组

介绍

基于FPGA的智能密码锁是《数字系统该课程设计》的实践作业,通过Verilog实现的智能密码锁,包括输入密码、修改密码、错误提示、警报处理、密码显示等功能,为用户提供安全可靠的密码锁智能服务

核心一 状态机模块

本模块实现了一个简单的密码锁状态机,根据输入的密码和按钮操作,控制状态机状态并输出相应的控制信号。

输入变量

  • clk:时钟信号
  • reset:复位信号
  • password:密码输入信号(24位)
  • ok:确认按钮信号
  • change_password:修改密码按钮信号

输出变量

  • state:密码锁当前状态(8位)
  • display_max:显示最大值信号
  • clear:清除信号

状态常数

  • in_password_state:等待密码状态
  • change_password_state_one:修改密码状态1
  • change_password_state_two:修改密码状态2
  • warning_state:警报状态
  • switch_state:开门状态
  • password_mistake_state:输入密码开门错误状态
  • change_mistake_state:修改密码错误状态
  • change_success_state:修改密码成功状态

寄存器和逻辑

  • password_reg:密码临时寄存器
  • password_main:主密码寄存器
  • warning_num:密码输入错误次数记录
  • password_result:密码比对结果

核心二 密码输入模块

模块介绍

该模块用于密码的输入和显示控制,包括接收蓝牙模块发送的信息、控制数码管显示密码等功能。

输入/输出端口

  • 输入端口:

    • clk: 时钟信号输入(100MHz)
    • clk3k: BCD数码管显示时钟
    • reset: 复位信号
    • clear: 清除密码信号
    • rx: 对应蓝牙模块的TX
    • display: 显示按钮(按下显示,松开关闭)
    • display_max: 长期显示由状态机控制,修改密码时显示密码
  • 输出端口:

    • tx: 返回蓝牙模块,确认无误
    • sel: 位选信号输出
    • dout: 数码管译码输出
    • password_bcd: 密码的BCD码输出

模块内部逻辑

  • 信号处理及状态机控制
  • 蓝牙模块消息接收与处理
  • 密码输入控制逻辑
  • 位选信号生成
  • 显示使能控制
  • BCD码显示控制

依赖模块

  • 蓝牙模块:bluetooth
  • BCD码显示控制模块:bcd_view_out
  • 数码管译码模块:display_decode

核心三 OV7670摄像头模块VGA显示顶层模块

模块介绍

本模块用于将OV7670摄像头模块采集的视频数据显示在VGA上。通过该模块,可以实现摄像头模块的初始化设置、视频数据采集和存储、以及VGA显示控制。

输入端口

  • clk: 板载时钟信号,频率为100MHz
  • resetc: 系统复位信号
  • pclk: 摄像机像素时钟
  • vsync: 摄像机帧信号,用于帧同步
  • href: 相机像素有效,行同步信号
  • D_data: 摄像机获取的8位像素数据输入
  • testmode: 测试模式开关

输出端口

  • vga_red: VGA红色信号
  • vga_green: VGA绿色信号
  • vga_blue: VGA蓝色信号
  • vga_hsync: VGA水平同步信号
  • vga_vsync: VGA垂直同步信号
  • sioc_to_ov7670: OV7670摄像头模块的I2C时钟线
  • siod_to_ov7670: OV7670摄像头模块的I2C数据线
  • ov7670_xclk: OV7670摄像头模块的像素时钟输入
  • ov7670_pwdn: OV7670摄像头模块的掉电模式控制(低电平有效)
  • ov7670_reset: OV7670摄像头模块的复位信号

模块结构

  • 精准时钟调用IP核
  • 集成控制状态机模块
  • VGA控制模块
  • OV7670数据获取模块
  • OV7670硬件设置控制模块
  • 时钟IP核
  • RAM IP核

模块功能

  1. 精准时钟调用IP核用于生成不同频率的时钟信号。
  2. 集成控制状态机模块用于控制LED灯以显示控制状态。
  3. VGA控制模块用于将RAM中的数据输出到VGA显示器上。
  4. OV7670数据获取模块用于从OV7670摄像头模块获取视频数据并保存到RAM中。
  5. OV7670硬件设置控制模块用于对OV7670摄像头模块进行硬件初始化设置。
  6. 时钟IP核用于生成不同频率的时钟信号。
  7. RAM IP核用于存储从OV7670获取的视频数据,并提供给VGA控制模块进行显示。

相关说明

  • 以上是对OV7670摄像头模块VGA显示顶层模块的核心代码进行的提取,具体实现细节可能还需要根据实际情况进行调整和完善。

smart_password_lock's People

Contributors

flightleaf avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.