打印
[RISC-V MCU 创新应用比赛]

基于CH32V103开发板的指纹管理系统

[复制链接]
7185|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xinmeng_wit 于 2021-9-27 07:30 编辑

#申请原创#

【RISC-V MCU创新应用比赛】基于CH32V103的指纹管理系统
作者:xinmeng_wit

演示视频链接:https://b23.tv/NAMWTO
功能描述
本系统使用沁恒RISC-V内核MCUCH32V103作为主控芯片实现对用户指纹数据的采集和管理。主要实现用户的指纹增加,删除,批量删除和识别检测等功能。同时支持两种使用方式:①本地控制;②PC端控制。其中,对指纹的采集使用了AS608光学指纹传感器模块。该模块具有接口简单,使用方便的特点,同时支持UART和USB两种通讯方式。本方案采用简单的UART方式与传感器进行通讯。另外,使用了240*320的LCD及五向按键进行人机交互,提升用户体验。PC与MCU之间可以用多种方式进行通讯,例如:UART,USB,wireless等。本方案先使用UART进行验证,后期会扩展到USB和wireless方式。
硬件框架



1.   主控采用沁恒开发板CH32V103,CH32V103是基于RISC-V内核的MCU,最高80MHz系统主频,64KB的flash和20KB的SRAM,虽然主频和存储容量都不是特别突出,但是实现一些常规应用也足够了。
2.   LCD的接口有16bit和8bit方式可选,为了节省IO引脚资源,本方案采用8bit方式进行通讯。
3.   五向按键用来配合LCD进行人机交互。(主要使用上键、下键和确认键)。
4.   MCU与PC间通过板载的虚拟串口进行通讯,PC端会通过自己做的一个小工具进行与MCU交互。
5.   LED则使用板载的LED灯,主要功能是指示程序的运行状态。

接口定义
模块
名称
功能
MCU引脚
备注
LCD
D15~DB8
LCD数据引脚
PB15~PB8

WR
写数据控制信号
PC0

RD
读数据控制信号
PC1

RS
数据/命令控制信号
PC2

RST
复位控制信号
PC3

CS
片选控制信号
PC4

BL
背光控制信号
PC5

AS608
Vi
电源正输入端
VCC

TX
串行数据输出(TTL)
PA3
USART2
RX
串行数据输入(TTL)
PA2
GND
信号地
GND

WAK
感应信号输出(高电平有效)
PA4

VT
触摸感应电源输入
VCC

五向按键
MID
确认键
PA5

UP
上键
PA7

DWN
下键
PA6

COM
GND
GND

LED
LED1
指示灯
PA0

PC
TX
PC发送
PA10
USART1
RX
PC接收
PA9


软件模块说明
软件上没有太多要进行说明的,主要是USART1和USART2为了减少中断次数和接收不定长数据,在接收的时候使用了DMA+idle中断,也就是说只有在一帧数据接收完成后会产生一次idle中断。然后在中断里面去计算接收数据的长度。
中断函数如下:

void USART2_IRQHandler(void)

{

    if(USART_GetITStatus(USART2, USART_IT_IDLE) != RESET) //idle interrupt

    {

        USART_ReceiveData(USART2);               //clear idle interrupt bit



        DMA_Cmd(DMA1_Channel6,DISABLE);

        DMA_ClearITPendingBit(DMA1_IT_TC6);    // Clear Transfer Complete flag

        DMA_ClearITPendingBit(DMA1_IT_TE6);    // Clear Transfer error flag



        Usart2RecLen = DMA_REC_LEN-DMA_GetCurrDataCounter(DMA1_Channel6);

        DMA_SetCurrDataCounter(DMA1_Channel6, DMA_REC_LEN);

        DMA_Cmd(DMA1_Channel6, ENABLE);/* USART2 Rx */

        memcpy(usart_rec_pro_buf,usart_rec_buf,Usart2RecLen);

        rec_comp_flag = 1;

    }

}



演示效果













使用特权

评论回复
沙发
loutin| | 2022-11-5 15:02 | 只看该作者
如何实现指纹模块进入功耗,并按压的时候自动唤醒?

使用特权

评论回复
板凳
maqianqu| | 2022-11-5 15:11 | 只看该作者
ch32v103的串口有几个?怎么实现上位机和指纹模块的通信?

使用特权

评论回复
地板
janewood| | 2022-11-5 15:42 | 只看该作者
这个指纹使用的是哪个模块?              

使用特权

评论回复
5
xinmeng_wit|  楼主 | 2022-11-6 20:43 | 只看该作者
loutin 发表于 2022-11-5 15:02
如何实现指纹模块进入功耗,并按压的时候自动唤醒?

可以通过外部中断唤醒

使用特权

评论回复
6
xinmeng_wit|  楼主 | 2022-11-6 20:44 | 只看该作者
maqianqu 发表于 2022-11-5 15:11
ch32v103的串口有几个?怎么实现上位机和指纹模块的通信?

可以通过uart或者usb通讯

使用特权

评论回复
7
xinmeng_wit|  楼主 | 2022-11-6 20:44 | 只看该作者
janewood 发表于 2022-11-5 15:42
这个指纹使用的是哪个模块?

AS608

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

240

帖子

1

粉丝