嵌入式指纹自动识别系统USB接口的设计与实现
eeskill 2020-11-19

在指纹自动识别系统中,嵌入式系统由于功耗低、设备体积小、安全性高等优点,已经得到越来越广泛的应用。通用串行总线(USB)是由Inter、Microsoft、IBM和NEC等共同制定的微机总线接口规范,具有较高的传输速率(USB 1.1支持最高传输速度为12Mb/s,而USB 2.0的传输速度最高可达到480Mb/s),支持即插即用,占用系统资源少,扩展能力强。在嵌入式系统的应用中,几乎不可避免与PC机的通信,由于通信速度的要求以及计算机硬件高速发展,传统的RS232接口已经越来越不能满足用户的需求,所以在嵌入式系统中USB接口的实现势在必行。

1 嵌入式指纹自动识别系统

本文所介绍的嵌入式指纹自动识别系统采用DSP与单片机协同工作,以实现指纹自动识别以及用户服务系统。其中单片机选用Philps公司的P89C52,DSP处理器选用TI公司的TMS320C5416。单片机具有系统控制能力强、结构简单、扩展方便等特点,适合作为系统的控制核心;而DSP采用的增强型哈佛结构、多级流水线、多处理单元以及特殊的指令(乘加指令等),使得DSP具有强大的数据处理能力,并且TMS320C5416支持最高160MHz的时钟频率,基于其强大数据处理能力和高运行速度,所以将它作为系统的算法核心处理器。由单片机为核心的控制模块主要完成用户服务系统和系统通信接口,由DSP为协处理器的算法模块完成指纹采集和处理。用户通过键盘输入控制整个系统的工作流程,通过LCD了解系统的工作状态及处理结果。DSP由其HPI(主机接口)与单片机以中断方式进行通信。而整个系统通过USB接口与上位PC机之间进行通信。其结构如图1

系统新用户注册时,通过键盘输入注册ID,然后系统由DSP控制指纹传感器采集用户指纹数据。如果采集到有效指纹,经过DSP进行指纹处理得到指纹模板数据。系统将该指纹模板存入系统数据库中。如果需要,也可以通过USB接口将用户信息和对应模板都上传至PC机中备份。当嵌入式系统数据丢失时,可以通过USB接口将PC机里所存备份下载至系统中。下面着重介绍系统的控制模块和USB接口的设计。

2 系统控制模块设计

系统控制模块的核心处理器为P89C52,由于其接口有限,同时完成系统控制和USB接口控制将十分困难。而从系统成本、开发时间周期和继承性方面考虑,换用其他处理器也不太方便,所以必须考虑在此处理器的基础上完成多项任务。由指纹自动识别系统的特点来看,系统在完成指纹录入或登录后才需要利用USB接口完成指纹模板和登录信息的传输,所以对于处理器来说,USB控制和系统控制可以采用时分复用的方式进行。由此,利用一个电平转换芯片和一个8总线收发器来控制数据的选通及流向,以保证系统能够正常工作。

SN74ALVC164245为5V~3.3V电平转换芯片,负责控制单片机与DSP之间的数据流向以及电平转换。因为单片机的IO电平为5V,而DSP的IO电平为3.3V,所以必须进行电平转换。另外,SN74ALVC164245的OE和DIR脚联合控制数据的流向,当OE为高时,芯片两边的数据互相独立;当OE为低时,通过DIR的状态来控制数据的流向。74HC245为总线传输器,用来控制单片机同LCD控制芯片KS0108的数据通信,其工作原理与SN74ALVC164245类似,只是没有电平转换功能。同样,USB服务芯片通过SUSPEND管脚来使能数据线,将SUSPEND脚置高电平时,整个PDIUSBD12处于休眠状态。由此,单片机就可以通过控制引脚的状态来控制数据总线,以实现单片机数据总线的时分复用。

3 系统USB接口设计

3.1 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通信协议的复杂性,相当一部分工作由硬件电路来完成,所以对硬件电路设计的准确性要求非常严格,布线要合理要尽量减少分布电容和电磁干扰的影响,硬件电路的质量将直接影响到数据能否正常传输。

3.2 USB设备固件程序的开发

固件程序主要由主程序和中断服务程序组成。USB设备请求包括标准设备请求和厂商请求。标准设备请求用来完成USB设备枚举的命令,而厂商请求则是根据具体USB设备来完成特殊任务的命令。对于本文采用的USB服务芯片PDIUSBD12,其片内的SIE(串行接口引擎)实现了全部的USB协议层,且完全由硬件实现而不需要固件的参与,所以对于USB固件程序来说,USB协议的具体实现就可以根据PDIUSBD12所提供的命令字来完成。最后剩下的就是硬件层上读写数据的程序实现。

其工作流程大致为:主循环完成一些初始化工作,转入等待中断的循环中;当USB总线上有事务发生时,PDIUSBD12将会自动产生相应的中断来通知固件程序;然后固件程序转入相应的中断服务程序处理中断,主循环通过读取中断服务程序中设定的事件标志和循环数据缓冲区来决定转入相应的请求响应;响应程序通过再下层的PDIUSBD12命令接口程序控制PDIUSBD12完成相应数据或命令操作。此积木式结构的固件程序组合完成了USB接口设备从初始化到数据传输的全部USB活动。

本文根据USB1.1协议由其服务芯片PDIUSBD12和单片机P89C52完成了嵌入式指纹自动识别系统的USB接口硬件和固件程序的研究和开发,并结合上位PC机的驱动程序和应用程序为整个嵌入式系统提供了一个稳定性好、传输速度快、使用方便的USB接口。达到嵌入式系统与PC机之间灵活通信,使本嵌入式指纹自动识别系统得到了更广范的应用。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 硬件
  • 原理图
  • 信号完整性
  • EMI
  • 5G下载速率低,是功率设置过大导致的?

    一、【问题现象】 单站工程师单验时,发现速率异常。RSRP=-37,Sinr=22,RANK3,MCS23, grantcount为1600,说明空口质量良好,但是NR MAC Throughput DL只有567Mbt/s 。 二、【问题分析】 前台工程师松子向项目经理扳手反馈,扳手安排后台工程师熊猫检查相关

    10-09
  • 电磁兼容设计58个常见问题!

    1. 为什么要对产品做电磁兼容设计? 答:满足产品功能要求、减少调试时间,使产品满足电磁兼容标准的要求,使产品不会对系统中的其它设备产生电磁干扰或影响周边电磁干扰环境。 2. 对产品做电磁兼容设计可以从哪几个方面进行? 答:电路设计(包括器件选择)

    09-11
  • 万字详细图文剖析电源PCB布板与EMC的关系

    导读:说起开关电源的难点问题,PCB布板问题不算很大难点,但若是要布出一个精良PCB板一定是开关电源的难点之一(PCB设计不好,可能会导致无论怎么调试参数都调试布出来的情况,这么说并非危言耸听)原因是PCB布板时考虑的因素还是很多的,如:电气性能,工艺

    09-11
  • 如何避免现场设备系统损坏或丢数据?

    记录数据的可靠性,通常只考虑到突然掉电、写入不完全等,往往忽略了存储器件的使用寿命。存储器件的擦除次数寿命是行业公认的客观事实,工程师只能尽量的符合器件使用规范,以免过快损耗擦写寿命。 Nand-Flash/eMMC(带有Flash控制器的Nand-Flash)作为一种

    09-10
  • 9 种高速电路信号完整性测试方法,你都Get了吗?

    信号完整性设计在产品开发中越来越受到重视,而信号完整性的测试手段种类繁多,有频域,也有时域的,还有一些综合性的手段,比如误码测试。 这些手段并非任何情况下都适合使用,都存在这样那样的局限性,合适选用,可以做到事半功倍,避免走弯路。本文对各种

    09-10
  • 开启高效阅读全英文数据手册的正确姿势

    全英文的数据手册少则十几页,多则上百页的也有的,加上我们又是如此的爱国(英文水平差的借口),所以在阅读全英文数据手册的时候,根本做不到面面俱到,当然也是完全没有必要的,学会善用Ctrl+F搜索关键词,按需所取,阅读我们关注的部分即可。 我以一个DC-

    09-16
  • 30条PCB布局心得

    画板总是画不理想,很困惑? 1、滤波电容要尽量与芯片电源近,振荡器也是,在振荡器前端放电阻; 2、改变电路板大小在Design的Board Shape里; 3、画完电路板大小后,在Mechanical1层用10mil线画板框(国内部分工程师喜欢用禁止布线层即KeepOut-Layer层)P+L

    09-17
  • 干货|高人图解高速电路PCB回流路径

    回流的基本概念 数字电路的原理图中,数字信号的传播是从一个逻辑门向另一个逻辑门,信号通过导线从输出端送到接收端,看起来似乎是单向流动的,许多数字工程师因此认为回路通路是不相关的,毕竟,驱动器和接收器都指定为电压模式器件,为什么还要考虑电流呢

    09-01
  • CMOS器件输入管脚不能悬空?硬件调试记录

    前言 最近在调试一块板卡时,发现了一个奇怪的问题,一款反相器——CD4049出现异常发热现象。虽然板卡已经做过温箱老化试验了,即在60度恒温条件下最大功率运行24小时,运行还算正常。但是一次偶然的机会,使用热成像仪测量板卡上的发热点时,发现这颗CD4049

    08-24
  • PCB设计中,3W原则、20H原则和五五原则

    3W原则 在PCB设计中为了减少线间串扰,应保证线间距足够大,当线中心间距不少于3倍线宽时,则可保持大部分电场不互相干扰,这就是3W规则。 3W原则是指多个高速信号线长距离走线的时候,其间距应该遵循3W原则,例如时钟线,差分线,视频、音频信号线,复位信号

    08-24
  • EMC磁珠滤波原理,非常简单!

                在产品数字电路EMC设计过程中,我们常常会使用到磁珠,那么磁珠滤波的原理以及如何使用呢?  铁氧体材料是铁镁合金或铁镍合金,这种材料具有很高的导磁率,他可以是电感的线圈绕组之间在高频高阻的情况下产生的电容最小。铁氧体材料通常在高频情

    08-25
下载排行榜
更多
广告