基于μCOS-II技术的考勤机设计
2014-05-13王文虎
王文虎, 杨 峰
基于μCOS-II技术的考勤机设计
王文虎*, 杨 峰
(湖南文理学院 电气与信息工程学院, 湖南 常德, 415000)
基于STM32系列微处理器的考勤系统终端, 硬件包括STM32F207最小系统、以太网通信单元、SD卡存储单元、ID卡识别单元、摄像单元、TFT液晶触摸单元、检测及控制单元及电源供电电路; 软件嵌入了实时操作系统μC/OS-Ⅱ、LWIP轻型IP协议栈及用户图形界面μC/GUI. 终端采取无源ID卡识别与头像数据采集同步进行的方式记录员工的出勤情况, 一方面将与ID卡对应的头像信息以文件形式保存至本地SD卡, 以供查询; 另一方面将信息通过以太网传送至上位机, 并由上位机完成考勤统计. 利用Keil MDK软件及金龙STM32F207开发板实验仿真表明: 终端运行可靠, 传输稳定, 操作界面友好, 实现了设计功能.
STM32F207; 考勤; 无源ID卡; μC/OS-Ⅱ; LWIP; μC/GUI
市面上, IC卡考勤机与指纹考勤机极大提高了考勤机制的管理效率[1—2], 然而, IC卡考勤机存在代考勤以及指纹考勤机存在指纹识别率低等弊端, 一款头像抓拍与ID卡打卡兼顾的视频考勤可以较好满足新型考勤的需求.
1 终端结构
如图1所示终端结构图, 以微处理器STM32F207及摄像头OV7670为核心, 集合以太网接口与SD卡存储电路, 共同完成考勤功能. 其中, ID卡识别模块提供无源ID卡的能量传递及数据读取传送功能. OV7670摄像模块完成人脸数据的采集. SD卡存储模块存储照片文件. 检测控制电路包括电源管理模块、光线检测电路及电铃控制接口, 光线检测电路可在检测到光线的条件下自动打开LED照明以保证拍照质量; 电铃控制接口可连接外部电铃以完成定时响铃工作. 人机交互接口提供TFT彩色液晶显示屏支持及触摸屏输入支持. 以太网通讯部分完成图片信息的上传及控制指令的接收. 终端融合了FSMC、SPI总线、SDIO、USART、SCCB总线及以太网通讯.
终端采取无源ID卡识别与头像数据采集同步进行的方式记录员工的出勤情况, 将头像数据编码成BMP图片格式的文件存储至本地SD卡中, 在网络允许的条件下可将图片通过TFTP协议发送至设定的服务器中进行后期处理.
图1 终端结构图
2 硬件设计
硬件包括STM32最小系统、摄像头单元电路、TFT液晶及触摸屏电路、以太网通信电路、检测及控制单元电路及电源电路. STM32F207最小系统主要由时钟电路、复位电路、SWD下载调试电路、启动配置电路构成.
2.1 摄像单元电路
摄像单元电路(图2)由图像传感器OV7670[3]及缓存芯片AL422B构成. OV7670是一种图像传感器, 体积小, 工作电压低, 提供单片VGA摄像头和影像处理器的所有功能. 通过SCCB总线控制, 可以输入整帧、子采样、取窗口等方式的各种分辨率8位影像数据. 该产品VGA图像最高达到30 帧/s. OV7670将采集到的一帧图像数据缓存到AL422B中, 等待微处理器的读取. 这样, 不管微处理器的速度快慢, 都能确保完整地读取到一帧图像数据, 采用缓存芯片的摄像模块也具有更高的通用性.
图2 摄像头单元电路
图3 摄像头单元电路
2.2 TFT液晶及触摸屏电路
TFT液晶屏是2.8寸的37线国产手机屏, 控制器型号为常见的T7781或ili9320, 采用16位数据线进行数据传送, 外部控制TFT背光点亮以实现节能. 在TFT上集成电阻触摸屏以实现数据输入与选择功能, 触摸屏为ADS7843的触摸模数转换芯片, 可将触摸的位置信息转换为数字信号以提供给MCU使用(图3).
2.3 其它单元电路
以太网通信电路主要是通过STM32F207的MAC接口与DP83848的PHY(物理层)接口, DP83848后通过网络变压器、RJ45与网络相连[4—5].
检测及控制单元电路主要由光线强度检测电路、电铃控制电路、LED照明电路构成. 光线强度检测电路通过光敏电阻将光线强度转换为电压信号, 然后利用STM32F207内部的A/D转换电路将电压信号转换为数字信号, 电铃控制电路通过三极管驱动继电器来控制电铃的开关.
电源电路由外置的220 V转5 V电源提供, 再经过内部稳压至3.3 V给装置内部进行供电.
图4 主程序流程图
3 软件设计
软件上嵌入实时操作系统μC/OS-Ⅱ[6]划分系统任务, 对系统硬件资源进行了合理的分配, 使得程序执行更加高效可靠; 在网络传输模块中嵌入轻型IP协议栈(LWIP), 使数据的传输结构更加清晰明了, 并且嵌入上层的通讯协议TFTP, 使通讯更加方便可靠; 系统嵌入图形界面μCGUI以方便操作; 系统嵌入文件系统(FATFS)以使存储结构更加合理, 对存储空间管理更加高效.
3.1 主程序设计
主程序主要完成所有外设初始化、μC/OS-II内核初始化、μC/OS-II节拍设置、μC/GUI初始化、LwIP协议栈初始化、多任务创建、邮箱申请, 最后启动μC/OS-II多任务, 剩下的事情就完全交给实时操作系统μC/OS-II处理(图4).
3.2 μC/OS-II任务设计
系统嵌入实时多任务操作系统μC/OS-II, 系统功能由多个任务协作完成[7], 系统的任务分配见表1.
起始任务(App_TaskStart)的优先级最高, 通过起始任务创建其它任务: GUI显示任务(App_TaskGUI)、系统设置任务(App_SystemSet)、触摸屏识别任务(App _TaskKbd)、拍照任务(APP_TakePictrue)、TFTP文件上传任务(App_Task_TFTP)及LED指示任务(App_Task_LED).
程序通过创建信号量与邮箱的的方式解决任务间的通信, 如系统设置任务的运行机制: 触摸屏识别任务获取外部信号后产生触摸事件并将其发送给GUI任务进行输入信号的识别与处理, 处理完毕后通过邮箱将处理结果发送给系统设置任务使用.
表1 系统任务分配表
由于均要用到TFT液晶屏, 采用互斥的信号量来保证在同一时刻只有拍照任务与GUI显示任务中的一个占用液晶屏资源. 拍照任务在拍摄完一张照片后通过信号量来告知TFTP文件上传任务发送拍摄好的照片文件.
①拍照任务(APP_TakePictrue). 当无源ID读卡器采集到ID卡号时, 拍照任务开始采集当前镜头影像, 采集完毕后则在液晶屏上实时显示镜头影像及时间等信息(图5).
②TFTP文件上传任务(App_Task_TFTP). TFTP文件上传任务的主要作用是将SD卡中的所有照片文件都发送至TFTP服务器进行考勤数据统计与处理(人脸识别等). 在网络允许的情况下, 该任务会将SD卡中所有照片文件发送到服务器中; 在没有网络连接的情况下在会将考勤照片存在本地SD中. 一旦有新的照片文件创建, 该任务也会立即启动, 进行照片的传送(图6).
图5 拍照任务流程图
图6 TFTP文件上传流程图
3.3 中断服务程序设计
串口中断服务程序的作用在于接收无源ID读卡器发送的ID卡号数据. 读卡器读到的数据如表2所示.
表2 无源ID卡数据说明
当串口读到前缀“0x02”时, 开始接收ID卡号, 当读到“0x0D”时停止接收, 并将相应计数清零. 以太网中断用来接收以太网数据并将数据传递给上层协议.
4 验证
在金龙STM32F207开发板硬件平台及Keil MDK软件平台下进行了实验验证. 考虑到打卡的高效性及图片分辨率大小, 采用了BMP图片格式对拍摄的照片进行编码, 照片传输采用精简文件传输协议TFTP, 可靠地将考勤机装置中的本地照片传送至指定的服务中.
当把ID卡置于读卡器上方时, “滴”的一声过后, 液晶屏中的画面定格, 同时ID卡号也显示到屏幕上, 1 s过后, 完成照片拍摄. 随后, 装置将照片发送至TFTP服务器. 利用软件Tftpd- 32将电脑作为TFTP服务器(IP地址: 172. 16.202.162), 并设定好文件存储路径(C:Users Administratorfiles)就可以开始接收从考勤机装置上传的照片文件了(图7).
照片文件命名的规则如下: 卡号+打卡日期与时间, 以.bmp作为文件名后缀. 可以看到照片中的时间、日期、卡号与文件名中的信息保持一致, 做到了真正的人、卡、时间的高度统一.
图7 考勤机装置文件上传过程
5 总结
装置采取无源ID卡识别与头像数据采集同步进行的方式记录员工的出勤, 将头像数据编码成BMP图片格式的文件存储至本地SD卡中, 在网络允许的条件下可将图片通过TFTP协议发送至设定的服务器中进行后期处理. 实验表明终端能同时实现打卡与拍照的功能, 并能将带有人员信息的照片发送至服务器, 达到了预期的效果.
[1] 朱高中. IC卡考勤系统设计[J]. 渭南师范学院学报, 2011, 26(12): 68—72.
[2] 董国林, 刘鑫. 基于STC单片机的指纹考勤系统设计[J]. 工业控制计算机, 2012, 25(11): 110—111.
[3] OmniVision Technologies, Inc.OV7670/OV7171 Cmos VGA(640X480) Camera Datasheet [EN/DB], 2005.
[4] 王文虎, 杨峰. 基于以太网技术的车桥追溯管理系统终端设计[J]. 微型机与应用, 2013, 32(21): 72—74.
[5] 宋鑫, 郭勇, 谢兴红. RMII模式以太网PHY芯片DP83848C的应用[J]. 单片机与嵌入式系统应用, 2010(8): 43—45.
[6] 邵贝贝. 嵌入式实时操作系统μC/OS-II[M]. 北京: 北京航空航天大学出版社, 2003.
Design based on ethernet in axle tracing management terminal
WANG WenHu, YANG Feng
(Department of Electrical Engineering, Hunan University Arts & Science, Changde 415000, China)
Designed a attendance system terminal which used a STM32 microprocessor as the core. On the hardware side, the terminal includes the STM32F207 minimum system, Ethernet communication unit, SD card storage unit, ID card recognition unit, video unit, TFT LCD touch unit, detection and control unit and power supply circuit. On the software side, the terminal is embedded a real-time operating system (μC/OS-Ⅱ), the the the lightweight IP protocol stack(LWIP) and a graphical user interface (μC/GUI). On the one hand, the terminal corresponding to the ID card information stored in document form to the local SD card for the query; The other hand, the information is transmitted via Ethernet, and the host computer handles the attendance statistics, which garanteed the efficiency, fairness and truthfulness. Used the Keil MDK and the dragon STM32F207 development board to do the simulation experiment, these futrues make the terminal working reliable, transmissing stable and facing friendly, and basicly realized the attendence function.
STM32F207, attendance; passive ID card; μC/OS-Ⅱ; LWIP; μC/GUI
10.3969/j.issn.1672-6146.2014.03.018
TP 368.1; TN 929.5
1672-6146(2014)03-0079-04
email:cdwwh@126.com.
2014-03-10
(责任编校:刘刚毅)