1、视频考勤机的软件设计
微控制器C8051F020是本视频考勤机的控制核心。考勤机的各个模块的功能都通过对C8051F020编程实现。初始化程序通过对各个芯片的功能寄存器的设置完成初始化,使考勤机进入正常工作状态。图像采集JPEG压缩程序把摄像头采集到的模拟图像数字化,并控制编码芯片对数字图像数据进行压缩。USB模块通信程序完成对USB模块的读写控制。
1.1图像采集JPEG压缩程序
图像采集JPEG压缩程序包括两部分:模拟图像信号A/D转换部分和JPEG图像压缩部分。系统采用SAA7113芯片实现图像的A/D转换。视频A/D芯片的初始化是微控制器通过IIC总线对SAA7113的内部寄存器的进行配置实现的。本系统中使用ZORAN公司生产的芯片ZR36060做JPEG硬件编解码。ZR36060在正常工作之前也需要对其内部寄存器进行初始化。在代码被动方式下,对ZR36060内部寄存器的读写操作是直接对地址ADDR=00b进行的。压缩/解压缩的JPEG码流是通过代码接口传输的。代码接口有两种操作方式:主动方式和被动方式。系统中对ZR36060代码接口的控制是由微控制器通过CPLD进行地址译码等逻辑控制实现对其内部代码空间的操作,采用的接口操作方式是被动方式,数据总线的宽度是8位,与微控制器总线宽度相符,减少了逻辑变换操作。考勤系统采用8bit代码宽度的代码从模式。
1.2USB读写程序
本系统使用USB[6]模块进行USB读写操作。使用U盘文件读写模块作为USB主控接口。USB模块采用并口读写方式,并口数据交换是通过模块的CH421芯片进行,该模块支持8位被动并口,模块中的CH421芯片为双向缓冲接口芯片,用于模块CH375芯片通信数据的缓存。USB模块占用芯片CH421的两个I/O地址。芯片CH421对缓冲区的读写采用索引地址方式,在两个传输方向上各提供64字节的缓冲区,缓冲区的第一个和最后一个单元的索引地址分别为00H和3FH。
2、USB读写模块调试
USB读写模块调试的过程如下:模块内置了简单的自动演示功能,方法是:在模块处于正常工作状态时(此时跳线J1是断开的,模块的LED亮起说明其空闲),将跳线J1插上,模块开始自动执行。开始执行后,模块的LED灭掉,等待U盘插入,当U盘插入后,模块打开U盘中根目录下的“模块演示.TXT”文件,如果文件不存在则新建文件,如果文件存在则移动文件指针到末尾,添加两行字符串,其中包含当前状态信息,然后关闭文件。上述演示结束后,模块的LED重新亮起。如果演示过程中出现错误,那么模块的LED会闪烁。演示完毕后,只有断开电源或者复位,模块才能恢复正常工作状态。模块的演示结果中包括模块程序版本号和当前功能配置值以及串口通讯波特率除数,所以也可以用于检查模块当前接口以及功能配置是否设置正确。当模块工作正常后通过微控制器和图像采集压缩模块和USB模块把JPEG文件写入U盘。再把U盘连接到PC机上,打开JPEG图片验证结果正确。
3、结束语
本考勤系统经过较长时间的测试和实验,各项技术指标均已达到预期目标,完全满足中小型企事业单位考勤的需求。但在实验和使用的过程中,发现本系统还存在的弱点。个别专用芯片价格较高,增加了系统的成本。在下一代的考勤机中建议整合方案,采用更高性能处理器,通过软件完成JPEG压缩算法,这样能大大降低成本。
作者:郭楚尘 张立立 张帆 单位:沈阳市第二十中学 东北大学信息科学与工程学院