在指纹自动识别系统中,嵌入式系统由于功耗低、设备体积小、安全性高等优点,已经得到越来越广泛的应用。通用串行总线(USB)是由Inter、 Microsoft、IBM和NEC等共同制定的微机总线接口规范,具有较高的传输速率,支持即插即用,占用系统资源少,扩展能力强。在嵌入式系统的应用中,几乎不可避免与PC机的通信,由于通信速度的要求以及计算机硬件高速发展,传统的RS232接口已经越来越不能满足用户的需求,所以在嵌入式系统中USB接口的实现势在必行。
系统控制模块设计
系统控制模块的核心处理器为P89C52,由于其接口有限,同时完成系统控制和USB接口控制将十分困难。而从系统成本、开发时间周期和继承性方面考虑,换用其他处理器也不太方便,所以必须考虑在此处理器的基础上完成多项任务。由指纹自动识别系统的特点来看,系统在完成指纹录入或登录后才需要利用USB接口完成指纹模板和登录信息的传输,所以对于处理器来说,USB控制和系统控制可以采用时分复用的方式进行。由此,利用一个电平转换芯片和一个8总线收发器来控制数据的选通及流向,以保证系统能够正常工作。
系统USB接口设计
USB接口硬件主要以接口芯片PDIUSBD12为中心,设计它与USB物理接口以及微控制器之间的连接。接口模块通过跳线选择供电方式,可同时支持USB总线供电方式和外设供电方式,为全速USB设备接口。设计过程中充分考虑到可靠性、可测性以及电磁兼容性。其接口电路如图3所示。
接口电路供电通过拨盘开关K1选择,当K1接MVCC时,系统为自供电方式;当K1接UVSB时,为总线供电方式。当系统处于自供电方式情况下,系统通过 EOT_N引脚来检测VUSB是否存在,并接上一个1M,赘的放电电阻来减弱充电,以确保当VUSB移开时EOT_N变为低,并且此时自供电电源与USB 总线之间只能共地,同时设备不能通过USB口向VBNS输出电流。
在单片机与PDIUSBD12的控制通信方面,单片机通过对PDIUSBD12的A0脚的状态控制来指示并行数据总线P0上传输内容为命令还是数据。此时,PDIUSBD12上用于数据地址总线复用的ALE引脚一直接地。中断引脚INT_N是系统的关键,几乎所有USB的活动在设备接口端都是由PDIUSBD12接收,然后通过中断通知单片机完成。PDIUSBD12上的挂起SUSPEND为一个双向引脚,由此保证USB设备既能被设备主控(单片机)也能被上位PC机唤醒,而PDIUSBD12工作时连续3次没有检测到SOP就将挂起脚置高。
PDIUSBD12片上GL_N引脚通过外接发光二极管来指示系统工作状态,在USB枚举过程中,LED指示根据通信状况间歇闪烁;当PDIUSBD12成功枚举和配置后,LED指示将一直点亮;随后与PDIUSBD12之间成功地传输(带应答)将关闭LED;处于挂起状态时LED将会关闭。
片上时钟发生电路采用6MHz晶振,匹配一个22pF和一个68pF的无源电容。采用6MHz晶振也是为了降低产品制造过程中产生EMI(电磁干扰效应) 的风险,因为外部线路的频率越高,其EMI效应也会越强,而在片外电路采用较低频率并在芯片内部进行倍频的措施将既不影响芯片的处理速度,又能提高在外部布线的安全性。使用两个不同容值电容的目的是为了使晶体能够快速起振,经过测量,晶振的启动时间在2ms左右。
PDIUSBD12可采用5V和3.3V两种工作电压。由于主控单片机的IO电压为5V,所以对PDIUSBD12也使用5V的工作电压。此时在接入5V至PDIUSBD12 VCC脚的同时,要将PDIUSBD12上的VOUT脚空出,接去耦电容。另外,为了减小系统的EMI,在USB连接器输入侧的VBUS和地线上增加磁珠,如图3的BLM21P,并且在USB的屏蔽罩与地之间使用容性耦合。
由于USB通信协议的复杂性,相当一部分工作由硬件电路来完成,所以对硬件电路设计的准确性要求非常严格,布线要合理要尽量减少分布电容和电磁干扰的影响,硬件电路的质量将直接影响到数据能否正常传输。