基于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;
}
}
演示效果
如何实现指纹模块进入功耗,并按压的时候自动唤醒? ch32v103的串口有几个?怎么实现上位机和指纹模块的通信? 这个指纹使用的是哪个模块? loutin 发表于 2022-11-5 15:02
如何实现指纹模块进入功耗,并按压的时候自动唤醒?
可以通过外部中断唤醒 maqianqu 发表于 2022-11-5 15:11
ch32v103的串口有几个?怎么实现上位机和指纹模块的通信?
可以通过uart或者usb通讯 janewood 发表于 2022-11-5 15:42
这个指纹使用的是哪个模块?
AS608
页:
[1]