xinmeng_wit 发表于 2021-9-26 23:26

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

本帖最后由 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引脚备注
LCDD15~DB8LCD数据引脚PB15~PB8

WR写数据控制信号PC0

RD读数据控制信号PC1

RS数据/命令控制信号PC2

RST复位控制信号PC3

CS片选控制信号PC4

BL背光控制信号PC5

AS608Vi电源正输入端VCC

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

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

VT触摸感应电源输入VCC

五向按键MID确认键PA5

UP上键PA7

DWN下键PA6

COMGNDGND

LEDLED1指示灯PA0

PCTXPC发送PA10USART1
RXPC接收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

这个指纹使用的是哪个模块?            

xinmeng_wit 发表于 2022-11-6 20:43

loutin 发表于 2022-11-5 15:02
如何实现指纹模块进入功耗,并按压的时候自动唤醒?

可以通过外部中断唤醒

xinmeng_wit 发表于 2022-11-6 20:44

maqianqu 发表于 2022-11-5 15:11
ch32v103的串口有几个?怎么实现上位机和指纹模块的通信?

可以通过uart或者usb通讯

xinmeng_wit 发表于 2022-11-6 20:44

janewood 发表于 2022-11-5 15:42
这个指纹使用的是哪个模块?

AS608
页: [1]
查看完整版本: 基于CH32V103开发板的指纹管理系统