APP下载

基于STM32和FPGA的可扩展校园储物柜设计

2022-05-18白龙温

承德石油高等专科学校学报 2022年1期
关键词:校园卡柜门卡号

白龙温,贾 铭

(1.天津机电职业技术学院,天津 300401;2.河北工业大学,天津 300401)

随着数字信息化时代到来、经济和科技的不断发展,人们对生活品质有了更高的追求,生活的各个领域整日趋凸显高效便捷和智能化,这就使得电子储物柜在商场、体育馆、车站、超市等地方应用越来越广泛。但这些传统储物柜存在如下缺点:1)一般使用密码条、钥匙进行存取,存在存取效率低下、密码条携带不方便且易丢失、信息无法监控等缺点;2)使用MCU作为主控芯片并直接驱动柜门,受限于芯片的管脚数量,不能很好扩展大量储物柜。在人数众多且校园卡(一卡通)广泛普及的高校当中,电子储物柜的需求量大、使用率高,使用严格的校园卡识别等方法,可以高效、安全地进行储物柜的管理和使用,为此在校园的图书馆、食堂、体育场等人流密集场所配置一种校园卡识别的低成本、易扩展、响应快的智能储物柜将具有积极的意义[1]。

为此,本文设计一款基于STM32和FPGA的可扩展智能储物柜,通过配置多块扩展接口板可快速扩展储物柜数量,使用RFID识别技术的校园卡打开指定物品柜,该系统会自动保存储物柜使用记录,实现了监控等功能。

1 系统设计

整体系统框图如图1所示,主要分为核心处理板、扩展接口板、上位机平台,以及校园卡RFID读卡器,220 V交流电源适配器,柜门的电磁动作机构等其他部分。

上位机登记学生校园卡号和储物柜号码,并通过TCP协议将卡号等信息通过网口下发到核心处理板并存储。学生使用校园卡后,扩展接口板解析RFID读卡器发来的卡号信息并通过串口转发到核心处理板,核心处理板接收该卡号信息进行查找比对,并通知对应的扩展接口板打开相应的储物柜,同时将卡号等信息上发上位机进行记录保存,从而实现信息监控功能。

核心处理板的主控芯片为ST公司的STM32F407,该单片机基于ARM公司的Cortex-M4内核设计,时钟频率可达168 MHz,自带1MB FLASH和192 KB RAM,具有高性能、低成本、低功耗的优点,是嵌入式应用设计中良好的选择[2]。为保证读卡信息的实时响应和快速TCP通信,MCU运行UCOS-II实时操作系统和LwIP协议栈。UCOS-II是一个实时可剥夺系统内核的嵌入式操作系统,包括资源同步、资源管理、任务之间通信,多达64个任务,通过任务间的不同优先级来调度任务运行。LwIP是一个小型开源的轻量级TCP/IP的协议栈,由于其对RAM和ROM需求较低,在中低端嵌入式系统中应用广泛[3-4]。

扩展接口板以FPGA为控制核心,FPGA具有并行效率高、IO管脚多、使用灵活、扩展能力强等特点。选用型号为Altera公司的CycloneIII系列的EP3C25F324,普通IO管脚达215个,每个IO管脚即可驱动一个电磁动作机构,可扩展储物柜数量达200个。FPGA还进行RFID卡的协议解析,可以大大减轻MCU解析协议造成的资源和时间开销,减少系统响应时间,并且后期更新扩展新校园RFID卡协议和增加其他扩展功能也更方便。

一块核心处理板SRAM存储信息可达上万条,配置多块扩展接口板即可大量扩展储物柜,各个扩展接口板之间通过串口通信,最终由扩展接口板0缓存所有卡号信息并和核心处理板通信。

其中RFID读卡器通信协议为26位韦根协议,电源适配器为整个系统提供二次电源12 V和5 V。

2 系统硬件设计

2.1 核心处理板的硬件设计

核心处理板硬件方案如图2所示。

存储模块包括FLASH和SRAM,FLASH为学生卡号等信息存储模块,STM32将接收到卡号信息存储到该FLASH中,型号为Winbod公司的SPI接口FLASH,W25Q128。当系统启动后,将FLASH中学生卡号信息加载到SRAM中,STM32通过FSMC接口访问SRAM,以便快速检索卡号信息,SRAM型号为IS62 WV51216,原理图见图3。

DP83848为网口的外部PHY芯片,采用RMII接入形式,相比MII的方式可减少一半的接入信号数量,网口模块原理图见图4。

2.2 扩展接口板的硬件设计

扩展接口板硬件方案如图5所示。

FPGA的程序存储FLASH选型为M25P16,时钟和存储器配置原理图见图6。

电源输入主要包括12 V和5 V,12 V为继电器和RFID读卡器供电。继电器为隔离驱动模块,是驱动柜门的电磁动作机构。

5 V电源模块为整板其他模块供电,采用TI公司的TPS650243,可输出1.8 V,3.3 V,1.2 V,2.5 V等多路电压,分别供给FPGA的核电压、AUX电压、接口电压和其他外设器件等,其原理图见图7。

3 系统软件设计

系统软件按照功能模块分为核心处理板STM32软件、扩展接口板FPGA软件和PC上位机软件,工作流程图如图8所示。

当RFID读卡器读取卡号后,以韦根协议的形式发送给FPGA,卡号由PID(2字节)和HID(1字节)组合而成3个字节,FPGA解析出PID和HID后通过串口UART1发送给STM32,同时STM32根据PID和HID读取SRAM对应地址内柜门号码,如存在则将该柜门号码通过串口UART2发送给FPGA,FPGA译码后驱动对应号码继电器,从而打开对应柜门。同时STM32通过TCP告知上位机卡号等信息,以便上位机监控记录。

FPGA软件使用Verilog语言,以Modelsim 10.0C作为代码逻辑仿真软件,最终使用Quartus II 13.1作为编译和调试平台。程序主要包括韦根协议解析模块,FIFO,UART1串口模块,UART2串口模块和IO口输出等模块。对于如图1所示的扩展接口板0,其他扩展接口板控制的串口1和串口2均和扩展接口板0的预留串口通信,故扩展接口板0的FPGA程序需单独增加调度缓存模块,负责缓冲记录各个扩展接口板发来的卡号信息,并通过串口UART1和UART2与核心处理板通信。其程序结构如下图见图9。

3.1 STM32软件设计

STM32软件采用C语言设计,使用Keil软件作为编译和调试工具。STM32接收到信息更新后,存储所有学生的卡号和对应柜门号到FLASH中。每次更新完会员信息后,自动重新启动系统,以便将FLASH中会员信息加载到SRAM中。为了快速方便检索,直接将会员卡号作为SRAM地址,对应柜门号作为数据内容。

由于STM32运行实时操作系统,可以多任务抢占式工作,其软件流程如图3所示,主要包括初始化和多任务设计两部分[5]。

初始化包括内容如下:

1)系统初始化以及外设自检:系统时钟和内存初始化等,中断分组配置,串口初始化,Flash和SRAM初始化,Flash和SRAM自检。

2)学生信息加载:通过SPI接口读取FLASH内学生信息并更新到SRAM中。

3)UCOSII初始化:操作系统核心程序包括任务控制块初始化,任务就续表等初始化。

4)LWIP协议栈初始化:TCP/IP内核协议初始化,PHY芯片DP8838驱动配置(IO初始化、时钟初始化、中断初始化、寄存器配置),IP地址,子网掩码和默认网关设置等。

5)客户端线程初始化:创建TCP客户端任务,创建TCP连接,绑定端口,进入监听模式,收发数据。该任务基于NETCONN进行TCP/IP编程,NETCONN结构类似标准BSD Socket,对各种类型连接函数做了统一封装,相当于提供了一个API调用接口,方便配合操作系统使用,方便快速大量数据通信[6]。

6)起始任务创建:创建其它全部任务。

7)启动多任务:开始Start任务,UCOSII 根据任务优先级和挂起等状态自动切换任务调度。

多任务设计如下,按照各个任务的优先级由先及后排列(见图10)。

①TCP客户端任务(task1):TCP客户端启动进入监听模式,接收和发送TCP数据。

②SRAM查找任务(task2):接收STM32串口UART1信息,搜索SRAM地址查找对应柜门号,并通过STM32串口UART2输出,并通过TCP上传卡号。

③FLASH更新任务(task3):更新学生卡号等信息到FLASH。

④工作正常任务(task4):状态工作指示灯

⑤开始任务(task5):Start任务

3.2 上位机软件

使用C++作为编程语言,应用了QT框架和SQlite数据库。SQLite数据库是一款轻型的文件型数据库,主要应用于嵌入式领域,支持跨平台移植,而且得到了QT很好的默认支持[8]。SQlite数据库用于记录学生信息,包括卡号、姓名、柜号、手机号、开柜时间等信息。上位机作为服务器,其TCP接口通信使用QT框架下的SOCKET类进行编程,用于向STM32更新卡号信息和接收存储其发来的卡号使用信息,并添加系统时间作为开柜时间记录,更新到数据库当中。其调试界面如图11所示。

4 结论及系统改进

本系统充分利用Ucos-II实时操作系统多任务和LwIP轻量型协议栈的优势,并利用FPGA并行处理效率高、易扩展等特点,实现了RFID卡韦根协议解析、系统和上位机TCP协议互传、快速搜索学生信息、储物柜数量扩展等功能,系统工作状态良好,响应迅速,满足设计需要。但需注意的是本系统中采用RFID卡号作为SRAM的寻址地址,寻址地址存在限制。例如本文选取FSMC_NE3作为SRAM的片选信号,STM32内部寻址空间为0x6800_0000到0x6BFF_FFFF,26位韦根协议ID卡占用3字节,正好满足需求。若RFID卡协议后期更改为32位,则不能使用卡号作为SRAM寻址地址,只能使用柜门号作为寻址地址,ID卡号作为内容,这样需遍历SRAM才能找到对应ID卡号,会增加系统时间开销。

猜你喜欢

校园卡柜门卡号
基材和压贴工艺对浸渍胶膜纸饰面细木工板柜门翘曲度的影响∗
河南省长葛市彩红蜂衣蜂帽加工厂
实木定制柜门的标准化设计
暖心的故事
数理:它是几号柜
关键词:有尊严的资助;保护个人隐私;用大数据说话……
卡没了,小美文召回它
一种校园卡考勤签到系统的设计
好老板
考研热致高校校园卡贵达千元,这个责谁来担