【GD32L233C-START评测】5、指纹管理系统(1)
[复制链接]
本帖最后由 xinmeng_wit 于 2022-3-5 22:45 编辑
(视频链接:https://training.eeworld.com.cn/video/32764)
功能描述
本系统使用兆易创新Cortex-M23内核MCU GD32L233作为主控芯片实现对用户指纹数据的采集和管理。主要实现用户的指纹增加,删除,批量删除和识别检测等功能。同时支持两种使用方式:①本地控制;②PC端控制。其中,对指纹的采集使用了AS608光学指纹传感器模块。该模块具有接口简单,使用方便的特点,同时支持UART和USB两种通讯方式。本方案采用简单的UART方式与传感器进行通讯。另外,使用了迪文5寸(480*854)的智能触摸屏进行人机交互,提升用户体验。PC与MCU之间可以用多种方式进行通讯,例如:UART,USB,wireless等。本方案先使用UART进行验证,后期会扩展到USB和wireless方式。
硬件框图
硬件实物图
说明:
1. 主控采用兆易创新开发板GD32L233-START,GD32L233是基于Cortex-M23内核的MCU,最高64MHz系统主频,256KB的flash和32KB的SRAM,虽然主频不是特别突出,但是实现一些常规应用也足够了。
2. 5寸迪文智能触摸屏与MCU通过uart通讯,节省了IO资源。其实触摸屏本身是可以当做MCU用的,本次方案没有使用这种方式。
3. MCU与PC间通过板载的串口进行通讯,PC端会通过自己做的一个小工具进行与MCU交互。
4. LED则使用板载的LED灯,主要功能是指示程序的运行状态。
接口定义
模块
|
名称
|
功能
|
MCU引脚
|
备注
|
5寸触摸屏
|
RX2
|
UART接收
|
PC10
|
MCU UART3
|
TX2
|
UART发送
|
PC11
|
AS608
|
Vi
|
电源正输入端
|
VCC
|
|
TX
|
串行数据输出(TTL)
|
PA3
|
UART1
|
RX
|
串行数据输入(TTL)
|
PA2
|
GND
|
信号地
|
GND
|
|
WAK
|
感应信号输出(高电平有效)
|
PA1
|
|
VT
|
触摸感应电源输入
|
VCC
|
|
LED
|
LED1
|
指示灯
|
PA7
|
|
PC
|
TX
|
PC发送
|
PA10
|
USART0
|
RX
|
PC接收
|
PA9
|
软件模块说明
软件上没有太多要进行说明的,主要是的三个UART的数据收发的处理。为了不过多的占用CPU时间以及减少中断次数和接收不定长数据,在接收的时候使用了DMA+idle中断,也就是说只有在一帧数据接收完成后会产生一次idle中断。然后在中断里面去计算接收数据的长度。最后在中断之外去进行协议解析操作。
UART0中断函数如下:
/*!
\brief this function handles USART interrupt request
\param[in] none
\param[out] none
\retval none
*/
void UART3_IRQHandler(void)
{
if(RESET != usart_interrupt_flag_get(UART3, USART_INT_FLAG_IDLE)){
usart_interrupt_flag_clear(UART3, USART_INT_FLAG_IDLE);
/* number of data received */
Usart3RecLen = UART3_DMA_REC_LEN - (dma_transfer_number_get(DMA_CH2));
memcpy(usart3_rec_pro_buf,usart3_rec_buf,Usart3RecLen);
usart3_rec_comp_flag = 1;
/* disable DMA and reconfigure */
dma_channel_disable(DMA_CH2);
dma_transfer_number_config(DMA_CH2, UART3_DMA_REC_LEN);
dma_channel_enable(DMA_CH2);
}
}
效果图片(视频链接:https://training.eeworld.com.cn/video/32764)
视频链接:https://training.eeworld.com.cn/video/32764
|