|
|
|
|
|
|
指纹自动识别系统的嵌入式实现 |
|
日期:2009-6-10 9:31:35 |
本文根据USB1.1协议由其服务芯片PDIUSBD12和单片机P89C52完成了嵌入式指纹自动识别系统的USB接口硬件和固件程序的研究和开发,并结合上位PC机的驱动程序和应用程序为整个嵌入式系统提供了一个稳定性好、传输速度快、使用方便的USB接口。达到嵌入式系统与PC机之间灵活通信,使本嵌入式指纹自动识别系统得到了更广范的应用。 一、嵌入式指纹自动识别系统 本文所介绍的嵌入式指纹自动识别系统采用DSP与单片机协同工作,以实现指纹自动识别以及用户服务系统。由单片机为核心的控制模块主要完成用户服务系统和系统通信接口,由DSP为协处理器的算法模块完成指纹采集和处理。用户通过键盘输入控制整个系统的工作流程,通过LCD了解系统的工作状态及处理结果。DSP由其HPI与单片机以中断方式进行通信。而整个系统通过USB接口与上位PC机之间进行通信。 二、系统控制模块设计 系统控制模块的核心处理器为P89C52,由于其接口有限,同时完成系统控制和USB接口控制将十分困难。而从系统成本、开发时间周期和继承性方面考虑,换用其他处理器也不太方便,所以必须考虑在此处理器的基础上完成多项任务。由指纹自动识别系统的特点来看,系统在完成指纹录入或登录后才需要利用USB接口完成指纹模板和登录信息的传输,所以对于处理器来说,USB控制和系统控制可以采用时分复用的方式进行。由此,利用一个电平转换芯片和一个8总线收发器来控制数据的选通及流向,以保证系统能够正常工作。 三、USB接口硬件设计 USB接口硬件主要以接口芯片PDIUSBD12为中心,设计它与USB物理接口以及微控制器之间的连接。接口模块通过跳线选择供电方式,可同时支持USB总线供电方式和外设供电方式,为全速USB设备接口。设计过程中充分考虑到可靠性、可测性以及电磁兼容性。由于USB通信协议的复杂性,相当一部分工作由硬件电路来完成,所以对硬件电路设计的准确性要求非常严格,布线要合理要尽量减少分布电容和电磁干扰的影响,硬件电路的质量将直接影响到数据能否正常传输。 四、USB设备固件程序的开发 固件程序主要由主程序和中断服务程序组成。USB设备请求包括标准设备请求和厂商请求。标准设备请求用来完成USB设备枚举的命令,而厂商请求则是根据具体USB设备来完成特殊任务的命令。对于本文采用的USB服务芯片PDIUSBD12,其片内的SIE实现了全部的USB协议层,且完全由硬件实现而不需要固件的参与,所以对于USB固件程序来说,USB协议的具体实现就可以根据PDIUSBD12所提供的命令字来完成。最后剩下的就是硬件层上读写数据的程序实现。 其工作流程大致为:主循环完成一些初始化工作,转入等待中断的循环中;当USB总线上有事务发生时,PDIUSBD12将会自动产生相应的中断来通知固件程序;然后固件程序转入相应的中断服务程序处理中断,主循环通过读取中断服务程序中设定的事件标志和循环数据缓冲区来决定转入相应的请求响应;响应程序通过再下层的PDIUSBD12命令接口程序控制PDIUSBD12完成相应数据或命令操作。此积木式结构的固件程序组合完成了USB接口设备从初始化到数据传输的全部USB活动。
|
|
|
|
|
|
|