已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文(设计) 题 目:指纹采集系统中USB接口的设计目 录一、简介21.1 指纹采集21.2 USB数据传输21.3 课题的目的3二、USB规范和协议42.1 USB物理接口和电平特性42.1.1 USB物理接口42.1.2 USB电平特性42.2 系统结构52.2.1 USB互连52.2.2 USB设备52.2.3 USB主机72.2.4 USB系统拓扑结构82.3 USB传输类型82.4 USB协议92.5 USB总线枚举11三、指纹采集系统中USB接口的硬件设计113.1 系统硬件设计方案113.1.1 芯片选择113.1.2 系统结构123.2 USB主控芯片AN2131QC133.2.1 AN2131QC结构框图133.2.2 AN2131QC微处理器133.2.3 AN2131QC端点143.2.4 AN2131QC枚举与重枚举153.3 辅助硬件电路设计163.3.1 电压调整模块电路设计163.3.2 I2C总线的EEPROM电路173.3.3 串口电路(调试接口电路)18四、USB接口的软件设计184.1 AN2131QC固件程序设计184.1.1 主程序184.1.2 枚举子程序194.1.3 USB传输子程序214.2 驱动程序23五、结束语25致谢26参考文献:26ABSTRACT27指纹采集系统中USB接口的设计摘要:作为一种PC机与外围设备间的高速通信接口 ,USB具有许多突出的优点:连接灵活,无需定位及运行安装程序,无需连接外设时关机及重启系统,实现真正的即插即用;速度快,USB协议支持12MbS;不占用系统硬件资源,不存在硬件冲突问题,自动检测和配置外围设备。本论文在介绍了USB1.1协议规范的基础上 ,详细地论述了指纹采集系统中USB接口的硬件电路设计、固件程序编写和驱动程序的过程。关键词:指纹识别;USB1.1协议;固件;程序一、简介1.1 指纹采集CMOS图像传感器是近年来得到快速发展的一种新型固态图像传感器。它将图像传感部分和控制电路高度集成在同一芯片里,体积明显减小、功耗也大大降低,满足了对高度小型化、低功耗成像系统的要求。与传统的CCD图像传感器相比,CMOS图像传感器还具有集成度高、控制简单等诸多优点,并且在通常的使用环境中,其成像质量与CCD没有明显差异。因此随着CMOS集成电路工艺的不断进步和完善,CMOS图像传感器己经广泛应用于各种通用图像采集系统中,特别是小型化的指纹采集系统中。1.2 USB数据传输随着现代计算机技术的发展和普及,以PC机为平台发展的数据采集系统已成为当前数据采集技术发展的重要方向。对需要大规模数据传输的数据采集系统,其数据传输方式对数据采集速度有至关重要的影响。()计算机总线计算机总线就是计算机几个模块间进行信息传输的通道。利用总线,一个设备就可以完成与另一个设备或多个设备之间的通信。一般来说,计算机总线分为:系统总线、外部总线、内部总线三大部分。系统总线:用来与PC机系统扩充槽上的板卡相连,它是微型机系统最重要的一种总线。一般谈到微型机总线,指的就是这种总线。外部总线:它用于在系统之间进行互联,如微机之间,微型计算机与仪器或其他设备之间。常用的总线有RS-232C、IEEE-488、VXI、并行口、USB等。片内总线:它位于微处理器芯片内部,用于ALU(算术逻辑单元)及各种寄存器等功能单元之间进行互联。()使用USB总线数据传输对外置式数据采集系统,数据传输必须利用计算机外围总线接口。传统数据传输所用的计算机外围接口多为并行口和串行口。但是计算机的并行口和串行口数量有限且传输速率不高,而计算机外围设备却在日新月异的变化和增加,外设对传输速率的要求也越来越高,同时,对串行口和并行口的使用也无法做到热插拔,安装时仍需要关闭计算机。为了解决以上问题,一种新型的USB(Universal Serial Bus通用串行总线)应运而生。1998年9月,USB-IF发布USB1.1规范,该版本为目前计算机操作系统以及硬件平台支持,其传输速率支持12Mb/s和1.5Mb/s。2000年4月,USB-IF发布了USB2.0最新版本,其速率高达480Mb/s,同时兼容USB1.1规范,在操作系统WindowsXP和Windows2000中都提供支持。USB的基本特点:使用方便。使用USB接口可以连接多个不同的设备,支持热插拔,在软件方面,为USB设计的驱动程序和应用软件可以自动启动,无需用户干预。速度快。USB1.1支持高速和低速两种方式:12Mbps和1.5Mbps,分别满足不同设备的需要。最新推出的USB2.0速度可以达到480Mbps;扩展方便。在USB设备上通常有USB下行端口,也有专用的集线器。这种扩展方式使USB能够接多个USB外设供电方式灵活。USB设备有两种供电方式:总线供电和自供电。四种传输类型:中断传输(Interrupt)、控制传输(Control)、块(批量)传输(Bulk)和同步传输(Synchronization),满足不同设备的需要。1.3 课题的目的在利用CMOS图像传感器实现的指纹图像采集的系统中,采集的指纹数据的传输是一个十分重要的环节,本论文就是采用USB1.1规范标准来解决外置式指纹图像采集系统与PC机间数据传输的“瓶颈”,实现采集数据与PC机间准确、快速和方便的传输。其内容包括USB1.1协议规范的深入研究,USB传输接口硬件的设计,固件和驱动的装载。二、USB规范和协议2.1 USB物理接口和电平特性2.1.1 USB物理接口USB传送信号和电源是通过一根四线的电缆,如图所示:电缆中使用Vbus、GND两条线向设备提供电源(Vbus为V)。但每个USB主机通过电缆只能提供有限的电源。 图1 USB的电缆D+、D_是串行数据通信线,它支持两种数据传输率USB的全速信号的比特率为12Mb/s;低速信号传送的比特率为1.5Mb/s。USB总线会根据USB设备情况在两种传输速率中自动动态转换。2.1.2 USB电平特性USB主机(或集线器)和设备采用差分输出驱动器将数据信号驱动到USB电缆上,其电平特性如表所示:表1信号电平总线状态信号电平始端的源连接器终端的目标连接器需要条件接受条件差分的“”(D+)Voh(min) (D)-200mv (D+)Vih(min)(D+)-(D-)200mv差分的“”(D-)Voh(min) (D+)200mv (D-)Vih(min)(D+)-(D-)200mv单终端“”(D+)和(D-)Vol(max)(D+)和(D-)Vih(max)(D+)和(D-)Vihz(min) (D+)Vil(max) (D+)Vihz(min) (D-)Vihz(min)(D+)Vihz(min)(D-)Vih(min)唤醒状态数据状态数据状态包开始(SOP)数据线从空闲态转到态包结束(EOP)SEO状态近似地为2个再持续1个空闲状态SEO状态至少1个,其后仅接着J态断开连接(在下行端口处).SEO持续时间大于等于2.5微秒连接(在上行端口处).空闲态持续时间大于等于2毫秒空闲态持续时间大于等于2.5微秒复位D+和D小于Vo1(max)的持续时间大于等于10毫秒D+和D小于Vil(max)的持续时间大于等于10毫秒D+和D小于Vil(max)的持续时间大于等于2.5毫秒2.2 系统结构一个USB1.1系统主要被定义为三个部分:USB的互连;USB的设备;USB的主机。2.2.1 USB互连USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:总线的拓扑结构:USB设备与主机之间的各种连接方式;内部层次关系:根据性能叠置,USB的任务被分配到系统的每一个层次;数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式;USB的调度:USB提供了一个共享的连接,对可以使用的连接进行了调度以支持同步数据传输,并且避免了优先级判别的开销。2.2.2 USB设备USB设备分类USB设备主要分为两类:集线器和功能部件。集线器可以提供更多的USB的连接点,功能部件提供了具体的功能。USB设备端点一个端点是一个可唯一识别的USB设备的端口,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时由主机分配。而设备中的每个端点在设备内部有唯一的端点号,这个端点号是在设备设计时被给定。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持数据流出设备。一个端点的特性决定了它与客户软件进行的传送的类型。一个端点有以下特性:端点的总线访问频率要求端点的总线延迟要求端点的带宽要求端点的端点号对错误处理的要求端点能接收或发送的包的最大长度端点的传送类型端点与主机的数据传送方向端点号不为O的端点在被设置前处于未知状态,不能被主机访问。USB通道一个USB通道是设备上的一个端点和主机上软件之间的联系。体现了主机上缓存和端点间传送数据的能力。有两种不同的且互斥的通道通信格式:流(Stream):指不具有USB定义的格式的数据流。消息(Message):指具有某种USB定义的格式的数据流。USB不解释在通道中传送的数据的内容。消息通道要求数据组织成USB定义的格式,但它的内容USB是不管的。USB设备描述符USB设备构架定义了一些描述符(descriptor),用于存放USB设备的各种信息。描述符是一个带有一定格式的数据结构。每个USB设备都必须有设备描述符、配置描述符、接口描述符和端点描述符。这些描述符提供的信息包括目标USB设备的地址、数据传输的类型、数据传输包的大小和数据传输带宽请求等。设备描述符:一个USB设备只有一个设备描述符,它包含了设备设置所用的默认通道的信息和设备的一般信息; 配置描述符:一个USB设备有一个或多个配置描述符。配置描述符包含配置的一般信息和配置时所需要的接口数,每个配置有一个或多个接口,当主机请求配置描述符时,接口描述符和端点描述符也一同返回; 接口描述符:一种配置可能支持一个或多个接口。接口描述符提供接口的一般信息,也用于指定具体接口所支持的设备类型和该接口通信时所用的端点描述符数(不将端点0计算在内); 端点描述符:一个接口可能含有一个或多个端点描述符,分别定义各自的通信端点,端点描述符提供的是该端点所支持的传输类型和最大传输速率。用户驱动程序通过设备的描述符来获取设备的相关信息,在设备接入主机时,USB系统软件根据这些信息进行相关操作。2.2.3 USB主机USB主机在整个USB系统中是唯一的,它包括三个层次:USB总线接口USB系统(USB System)USB客户(Client)其中,USB总线接口处理电气及协议层的互连。从互连的角度看,USB设备和USB主机都提供类似的USB总线接口,如串行接口引擎(Serial Interface Engine SIE)。由于主机在USB系统中的特殊性,USB主机上的总线接口还必须具备主机控制器的功能(Host Controller)。主机控制器具有一个内集成的集线器(根集线器)提供与USB电缆的连接。USB系统(USB System)使用主机控制器来管理主机与USB设备的数据传输。USB系统层相对于主机控制器而言,其处理的是以客户角度见到的数据传输及客户与设备的交互。USB系统还必须管理USB的系统资源,以使得客户的访问成为可能。客户层描述的是直接与USB设备进行交互所需要的软件包。当所有的设备都己连上系统时,客户就可以直接与设备进行通信。一个客户不能直接访问设备的硬件。图2主机通信图2.2.4 USB系统拓扑结构USB系统的拓扑连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接,从主机到集线器或其它功能部件,或从集线器到集线器或其它功能部件。2.3 USB传输类型USB通过通道在主机缓冲区与设备端点间传送数据。USB定义了4种数据传输类型:()控制传输:可靠的、非周期性的、由主机软件发起的请求或者回应的传输。控制传输通常用于命令事务和状态事务,支持在客户软件和它的应用之间的关于设置信息、命令信息、状态信息的传输。()同步传输:在主机与设备之问的周期性的、连续的通信。同步传输一般用于传输与时间相关的信息。同步传输有以下几个特点:固定的延迟下,确保对USB带宽的访问; 只要数据能提供得上,就能保证通道上的恒定数据传送速度;如果由于错误而造成传送失败,并不重传数据。()中断传输:小规模数据的、低速的、固定延迟的传输。()批量传输:非周期性的,大包的可靠的传输。典型地用传输那些可以利用任何带宽的数据,而且这些数据当没有可用带宽时,可以容忍等待。批量传输有以下特点:只有当有可获得的带宽时,批量传输才会发生。如果USB有较多的空闲带宽,则批量传输发生的相对频繁,如果空闲带宽较少,可能有很长时间没有批量传输发生;如果总线出现错误而传输夫败,可进行重发;可以保证数据必被传输,但不保证传输的带宽和延迟。2.4 USB协议USB数据位被发送到总线的时候,首先是最低有效位(LSb),跟着是下一个最低有效位,最后是最高有效位(MSb)。同步字段所有的包都从同步(SYNC)字段开始的。同步字段作为空闲状态出现在总线上,后面跟着以NRZI编码的二进制串“KJKJKJKK”。同步字段里的最后的2位是同步字段结束的记号,并且标志了包标识符(PID, Packet Identifier)开始。包标识符字段所有USB包的同步字段后都紧跟着包标识符(PID)。包标识符由4位的包类型字段和其后4位的校验字段(包类型字段的补码)构成。包标识符指出了包的类型,并由此隐含地指出了包的格式和包上所用错误检测的类型。主机和所有功能部件都必须对得到的全部PID字段实行完整的译码。任何收到的包标识符如果含有失败的校验字段或者经译码得到未定义的值,则该包标识符被假定是被损坏的,而目包的余项将被包接收机忽略。如果一个功能部件收到了包含它所不支持的事务类型或方向的合法包标识符,则不必应答。例如,只能输入的端口(IN only Endpoint)必须忽略输出标记(Token)。表包标识符类型、编码及其描述。表2PID类型PID类型PID名PID3:0描述标记(Token)输出(OUT)输入(IN)帧开始(SOF)建立(SETUP)0001B1001B0101B1101B在主机到功能部件的事务中有地址端口号 在功能部件到主机的事务中有地址端口号 帧开始标记和帧号 在主机到功能部件建立一个控制管道的事务中有地址+端口号数据(DATE)数据0(DATE0) 数据1(DATE1)0011B 1011B偶数据包PID 奇数据包PID握手(Handshake)确认(ACK)不确认(NAK)停止(STALL)00l0Bl0l0B1110B接收器收到无错数据包 接收设备部不能接收数据,或发送设备不能发送数据 端口挂起或一个控制管道请求不被支持 专用(Special)前同步(PRE)1100B主机发送的前同步字,打开到低速设备的下行总线通信地址字段和端口字段功能部件端口使用个字段:功能部件地址字段和端口字段。功能部件对地址和端口字段都需要进行译码。不允许使用地址或端口的别名,并且任何一个字段不匹配此标记都必须被忽略。另外,对未初始化端口的访问将使得访问被忽略。地址字段功能部件地址(ADDR)字段指定功能部件的地址。ADDR指定了总共128个地址。端口字段附加的位的端口(ENDP)字段在功能部件需要一个以上端口时允许更灵活地寻址。除了端口地址之外,端口个数是由功能部件决定的。端口字段只对输入,建立和输出标记PID有定义。所有的功能部件都必须在端口0提供一个控制管道(缺省控制管道)。对于低速(Low Speed)设备,每个功能部件最多提供3个管道:在端口0的控制管道加上2个附加管道(或是2个控制管道,或是1个控制管道和1个中断端口,或是2个中断端口)。全速(Full Speed)功能部件可以支持最多可达16个的任何类型的端口。帧号字段帧号字段是一个11位的字段,主机每过一帧就将其内容加一。帧号字段达到其最大值7FFH时归零,且它仅在每个帧最初时刻在SOF标记中被发送。数据字段数据字段可以在0到1023字节之间变动,但必须是整数个字节。图3为多字节数据格式。每个字节的数据位移出时都是最低位(LSb)在前。数据包大小随着传送类型而变化。图3数据字段格式2.5 USB总线枚举当USB设备插到USB总线上时,主机通过一个叫总线枚举的过程来确认设备状态的改变。以下是USB设备从插到总线上到设备可用的整个枚举过程:(1)当USB设备接到hub(主机内置有根hub)上,该hub就会通知主机发生了设备接入事件,设备进入连接状态,此时hub上与该设备连接的端口还未进入使能状态;(2)主机检测hub,确认设备的接入时间和接入端口;(3)直到确认了有新设备接入,主机就传送一个复位(reset)命令;(4)hub向端口发出一个持续100ms的reset命令,当该信号结束时,端口就己使能,hub提供100mA的电流给USB设备,设备进入上电状态,所有的寄存器和状态重设,并响应默认地址。 (5)在USB设备收到唯一地址前,可以通过设备默认的地址访问默认的端点,主机读取设备的设备描述符来获取设备默认管道的最大数据传输量,此时设备处于地址默认状态; (6)主机给USB设备分配一个唯一的地址,设备进入地址状态; (7)主机读取设备的配置描述符以获取设备的配置信息;(8)主机以设备的配置信息和USB设备的用途,向USB设备发出一个配置值;设备进入配置状态;所有的端点准备就绪可以开始工作,设备可以使用;当USB设备从总线上移出时,hub通知主机发生了设备移出事件,该设备的端口进入关闭装态,主机将更新局部的拓扑逻辑信息。三、指纹采集系统中USB接口的硬件设计3.1 系统硬件设计方案3.1.1 芯片选择目前,市场上供应的USB控制器(USB1.1协议)主要有两种:带有USB接口的单片机和纯粹的USB接口芯片。带USB接口的单片机又可以分成两类:一类是从底层设计专用于USB控制的单片机,如Cypress公司的CY7C63513(低速)、CY7C64013(全速),但由于价格、开发工具以及单片机性能有限等问题,故很少选用此种芯片;另一类是增加了USB接口的普通单片机,如Intel公司的8X931(基于8051),8X930(基于高速增强的8051),Cypress公司的EZ-USB(基于8051),选择这类USB控制器,开发人员对指令比较熟悉,且外围接口电路简单。纯粹的USB接口芯片仅处理数据的USB通信,因此必须增加一个外部处理器来进行协议处理和数据交换,如Philips公司的PDIUSBD11(I2C),PDIUSBD12(并口),朗讯公司的USB820/825,美国国家半导体公司的USBN9602/9604和Netchip公司的NET228等。 考虑到指纹图像数据数量大,USB传输速率较高,如果利用纯粹的USB接口芯片外加个普通控制器(如8051),其处理速度会很慢,因而达不到指纹采集数据传输的要求,但如采用高速微处理器(如DSP),虽满足了速度要求,却增加了成本。因此在各方面综合下本论文选择了Cypress公司的内置微控制器(增强型8051)的USB主控芯片EZUSB AN2131QC。指纹采集图像传感器采用OMNIVISION公司的CMOS彩色图像传感器OV7620。它具有体积小、重量轻、功耗低、集成度高、价格低等优点。3.1.2 系统结构利CMOS数字图象传感器与USB接口数据传输来实现的指纹识别仪具有结构简单、体积小、便携化等优点。本章将重点介绍利用OmniVision公司的CMOS彩色数字图象传感器OV7620和Cypress公司的EZ-USB AN2131QC USB控制传输芯片(内部集成了增强型51内核)来实现指纹信息的采集和USB传输的硬件电路设计,应用AN2l31QC、 CPLD和OV7620设计的指纹识别系统硬件框图如图4所示:图4 指纹识别硬件系统简略框架图首先,AN2131QC通过I2C对指纹图像传感器(OV7620)的窗口、输出模式等参数进行配置,光学透镜把指纹图像成在OV7620的像面上后,CMOS图像传感器OV7620对其进行空间采样,并按照一定的帧频连续输出8位的数字图像数据Y7:0(输出数字图像数据的帧同步信号为VSYNC,水平有效信号为HREF,输出时钟信号为PCLK)。为了实现指纹传感器输出数据与USB控制器读取数据速度与时序的匹配,使用了SRAM(IS61C1024)和CPLD构成高速缓冲区,利用此高速缓冲区先将OV7620输出的指纹数据缓存,最后AN2131QC实现与上位机(PC机)的USB通信,将高速缓冲区中的数据传输到PC机进行相应的图像处理。3.2 USB主控芯片AN2131QC3.2.1 AN2131QC结构框图CYPRESS公司的EZUSB芯片集成了一个USB外设接口所需的技术和电路。AN2131QC内部结构简图如图5所示:图5 AN2131QC简化框图该芯片集成了一个增强型8051核、一个串行接口引擎、一个USB收发模块、RAM,对外有24个I/O接口,16位的地址总线、8位的数据总线,一个I2C接口和USB数据端口(D,D)。该芯片遵从USB1.1协议规范,支持远程唤醒功能。集成的USB收发模块与USB总线的D和D引脚相连。串行接口引擎(SIE)对串行数据进行编码和译码,并执行错误更正、位填充以及其它一些USB需要的信号级操作,最后发送数据字节到USB端口或从USB端口接收数据字节。内部集成的微处理器是一个增强的8051,具有执行时间快(每个指令周期包含4个时钟,时钟频率24MHz),并增加了许多新的特性。内部RAM可用来存储程序和数据,使EZ-USB具有软特性。EZ-USB系列使用增强的SIE/USB接口(称为“USB内核”),它甚至能在8051之前就具有智能的全部USB设备的功能。这个增强的内核能够自动完成USB协议的许多工作,简化了8051的程序设计。EZ-USB芯片的电压为3.3V,这简化了USB设备总线电源的设计。因为USB连接器提供5V电源(USB规格说明中允许的最低电压为4.4V),可驱动3.3V调压器,为EZ-USB芯片提供单独的、稳定的电源。3.2.2 AN2131QC微处理器AN2131QC微处理器是一个改进的8051内核。使用8051兼容的处理器,为EZUSB AN2131QC设计提供了大量的软件支持工具。改进后的8051其特性如下:(1)空闲的总线周期被消去,一个总线周期包含4个时钟周期,而标准805则为12个时钟周期,因此速度提高了3倍;(2)24MHz时钟脉冲;(3)双数据指针可用于存储器之间的快速传输;(4)三个计数器/定时器;(5)扩展的中断系统;(6)两个UART;(7)256字节的内部寄存器RAM ;(8)标准8051指令集;(9)可变的MOVX周期提供给高速/低速的RAM外设;(10)可与非复用的16位地址总线的高速存储器接口;(11)快速外部传输(自动指针、快速传输模式);(12)带自动向量的USB 中断;(13)控制传输中的SETUP和DATA都有各自的缓冲器;(14)3.3V工作电压。改进的8051内核使用片内RAM作程序和数据存储器,使EZ-USB AN2131QC具有软特性:首先,USB主机通过USB总线将8051程序代码和设备描述符下载到RAM中,然后EZ-USB AN2131QC芯片使用己下载的程序中定义的外设特性进行重连接。3.2.3 AN2131QC端点AN2131QC端点的就是一个装满了接收字节或将要通过USB总线传输字节的缓冲器。8051从OUT缓冲器读取数据,通过IN缓冲器写入端点数据进行USB传输。(1)块端点 块端点无方向控制,即一个端点对应一个方向,块端点的包长度为8,16,32,或64字节。AN2131QC提供了14个用于块(批量)传输的端点,包括7个IN端点,(EP1_INEP7_IN),和7个OUT端点(EP1_OUTEP7_OUT),14个端点中每个都有64字节的缓冲区。(2)控制端点0AN2131QC的端点0是控制端点,传送来自或发向AN2131QC的控制信息,AN2131QC的枚举(第一次插上主机时,主机对其初始化的过程)就是由端点0引导的。端点0是双向的,且只接受SETUP PID。8051通过端点0响应主机发出的设备请求。(3)中断端点 中断端点与块端点大致相同,14个AN2131QC端点(EP1EP7,IN和OUT)可用作中断端点,中断端点信息包最大长度可达64字节,在其描述符中包含一个“轮询间隔”字节,以告诉主机为之服务。8051通过中断端点传送数据的方式与块端点完全一样。(4)同步端点同步端点通过USB发送高带宽、时间精确的数据。AN2131QC提供16个同步端点,编号为815 (8IN15IN,80UT150UT)。3.2.4 AN2131QC枚举与重枚举枚举与重枚举概述所谓AN2131QC设备的枚举与重枚举就是指在复位(上电)期间,内核进行初始的总线枚举和8051代码下载,此时作为默认的USB设备;在脱离复位后,8051执行下载的代码程序,再次进行总线枚举,此次作为装入的正常USB设备,重枚举是芯片在电气上模拟一次物理断开和重连接来完成的,其实现电路如图6所示:当运行下载的固件代码时,在所有操作前使/DISCON管脚输出低电平并持续一段时间,然后变为高电平。图6 重枚举硬件电路AN2131QC芯片具有软特性:集成8051的程序代码和数据存储在内部RAM内,使用USB接口从主机中加载。因此,使用EZUSB芯片的外围设备可以不带ROM、EPROM、FLASH存储器工作。EZUSB AN2131QC的控制位“ReNum” (再次连接)决定了是由SIE内核还是8051来处理通过控制端点0的设备请求。在上电时,ReNum位(USBCS.1)是0,表明SIE内核自动处理设备请求。一旦8051固件代码开始运行,它设置ReNum位为1表明使用由用户下载的8051程序代码来处理设备请求。枚举方式EZUSB AN2131QC芯片上电后,EZUSB内核根据I2C总线上的外部EEPROM的内容来决定如何枚举。如表3所示:表3 通电时内核动作EEPROM的首字节EZ-USB内核动作过程不是0xB0或0xB2从EZ-USB提供描述符,PID/VID/DID,设置ReNum=00xB0从EZ-USB提供描述符,从EEPROM提供PID/VID/DID,设置ReNum=00xB2加载EEPROM到EZ-USB的RAM,设置ReNum=1;由8031提供描述符,PID/VID/DID在表中,PID表示product ID,VID表示Version ID,DID表示Device ID。(1)如果没有EEPROM存在,或者是存在但首字节既不是0xB0也不是0xB2,EZUSB内核使用内部存储的描述符数据进行枚举,包括Cypress半导体公司的PID/VID/DID,如表4所示。这些ID字节引起主机操作系统加载Cypress公司的设备驱动程序。这种方式只用在开发和调试阶段。表4 内部PID/VID/DIDVendor ID0x547(公司产品代号)Product ID0x2131(EZUSB)Device Release0xXXYY(由版本决定)(2)如果有串行的EEPROM连在I2C总线上并且首字节是0xB0,则EZUSB内核同样使用内部存储的描述符,就像和没有EEPROM一样枚举。但不同的是它从外部EEPROM的6个字节(如表5所示)中而不是EZUSB内核提供PID/VID/DID数据。EEPROM中定制的用户VID/PIDJDID使主机操作系统加载和EEPROM中PID/VID/DID相匹配的驱动程序。表5 EEPROM内PID/VID/DIDEEPROM地址内容00xB01Vendor ID (VID)L2Vendor ID (VID)H3Product ID (PID)L4Product ID (PID)H5Device ID(DID)L6Device ID(DID)H7未使用(3)如果有串行的EEPROM连在I2C总线上并且首字节是0xB2,EZUSB内核把EEPROM中的内容复制到内部RAM中。EZUSB内核还设置“ReNum”位为1来表明8051(而不是EZUSB核)通过“控制”端点0响应设备请求。因此,所有的描述符数据,包括PID/VID/DID数据都是由8051固件代码提供。从EEPROM加载的最后一个字节(对于CPUCS寄存器)发出8051的复位信号,使EZUSB芯片像完全定制的设备一样使用RAM中的软件。3.3 辅助硬件电路设计3.3.1 电压调整模块电路设计整个硬件电路系统的供电方式采用USB电缆供电,也就是说,整个硬件电路的供电是主机(PC机)通USB接口提供的,其提供的电压为+5V,最大电流为500mA。硬件电路中CPLD EPM7128,SRAMIS61C1024和OV7620工作电压为+5V而USB控制器AN2131QC工作电压是+3.3V,因此必须通过电压调整电路将+5V的供电电压转换为+3.3V电压,从而适应整个硬件系统的需求。图7为+3.3V电压调整器图7 电压调整电路3.3.2 I2C总线的EEPROM电路在前面电路设计中已经提到,当EZ-USB AN2131QC芯片上电时,EZ-USB的引导装载器检查I2C总线上是否存在EEPROM,如果检测到EEPROM存在,装载程序就会读取EEPROM的第一个字节,以决定如何进行总线的枚举。因此,整个硬件电路中EEPROM模块电路是不可缺少的(当然对于调试可以没有,但作为一个USB设备是不可缺少的)。 选用具有I2C总线接口的EEPROM芯片24LC64。24LC64是8K字节的电可擦除的PROM,其工作电压范围为2.5V5.5V。24LC64可以一次写入32字节(一页),可以任意的或连续读出8K字节数据。其一种封装类型管脚(SO1C)如图8所示:图8 24LC64管脚其中A2,A1,A0为用户配置地址,在USB接口硬件系统中,此地址必须为0、0、1。WP为写保护,SCL、SDA为I2C总线的时钟和数据线。由于在AN2131QC中,I2C控制器是漏极开路的,因此使用中必须将SCL和SDA线经过电阻上拉。图9为实现的EEPROM硬件电路。图9 I2C接口的EEPROM电路3.3.3 串口电路(调试接口电路)AN2131QC的固件程序开发编译工具使用keil51,代码调试过程中其与硬件电路的连接和通信是使用主机(PC机)RS232C串行总线通信接口。 串行通信标准RS-232C RS-232C标准在物理接口上采用了9根信号(TxD、RxD、RTS、CTS、DSR、DTR、DCD、RI和GND)的电缆线,并对数据和控制信号标准作了定义。在TxD和RxD上:逻辑1(MARK)3V15V 逻辑0(SPACE)3V15V在RTS、CTS、DSR、DTR、DCD和RI等控制线上: 信号有效(接通,ON状态,正电压)3V15V 信号无效(断开,OFF状态,负电压)3V15V 对于数据(信息码):逻辑“1”的电平低于3V,逻辑“0”的电平高于3V;对于控制信号:接通状态(ON)即信号有效的电平高于3V,断开状态(OFF)即信号无效的电平低于3V。以上电气特性表明当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于3V3V之间的电压无意义,低于15V或高于15V的电压也认为无意义。四、USB接口的软件设计4.1 AN2131QC固件程序设计指纹采集USB接口的固件程序由主程序、USB总线枚举(设备请求)子程序和USB传输子程序构成。4.1.1 主程序主程序主要完成各种工作状态标志,各种变量的RAM空间分配,功能模块的初始化和各种中断的设定。其框架结构流图如图10所示:图10 固件主程序图主程序工作过程如下:首先初始化内部的状态变量,然后调用用户初始化函数TD_Init(),此函故中包括对串口初始化和对指纹图像传感器OV7620的初始化函数的调用:此后,主程序电气上模拟重连接,等待主机枚举(即等待SETUP包出现)。与出现SETUP包后,就周而复始的进行任务调度:调用用户函数TD_Poll(),执行功能任务(调用功能函数);有SETUP请求,分析请求类型并执行相应请求;如收到挂起信号,调用TD_Suspend()函数将外设挂起。4.1.2 枚举子程序当USB设备插入主机后,主机要进行总线枚举以获取USB设备的信息,从而调入相应的客户驱动程序以便应用程序能够操作USB外设。枚举的主要工作有:主机首先通过默认地址0和默认端点0(控制端点0)发出设备描述符请求以获取USB设备的设备描述符;然后给USB外设分配一个唯一的地址(此后访问设备就通过此地址),并发出配置描述符请求获取设备的配置信息(设备返回配置描述符、接口描述符和端点描述符);最后主机根据设备的配置信息和USB设备的用途,向USB设备发出一个配置值。由枚举过程可以看出,枚举本质上是些设备请求,是主机对描述符的获取和对设备状态的设定。因此合理设定USB设备的描述符表是整个枚举能够正确运行的关键。本指纹采集系统USB接口设备的部分描述符表实现(汇编形式)如下:DeviceDscr: db DeviceDSCREnd- DeviceDscr ; Descriptor lengthdb DSCR_DEVICE;Decriptor typedw 0001H ;Specification Version (BCD)db OOH ;Device classdb 00H ;Device sub-classdb OOH ;Device sub-sub-classdb 64 ;Maximum packet sizedw 4705H ;Vendor IDdw 0210H ;Product ID-set to default example IDdw 5153H ;Product 1D-set to QS IDdw O100H ;Product version IDdb 0 ;Manufacturer String indexdb 0 ;Product string indexdb 0 ;Serial number string indexdb 1 ;Number of configurationsdeviceDscrEnd;ConfigDscr: db ConfigDscrEnd-ConfigDscr ; Descriptor lengthdb DSCR_CONFIG ; Descriptor typedb StringDscr-ConfigDscr:Configuration+End Points length(LSB)db (StringDscr-ConfigDscr)/256;(MSB)db 1 ;Number of interfacesdb 1 ;Interface numberdb 0 ;Configuration stringdb 10100000b;Attributes (b7-buspwr,b6-selfpwr,b5-rwu)db 0 ;Power requirement (div 2 ma)ConfigDscrEnd;IntrfcDscr: db IntrfcDscrEnd-IntrfcDscr;Descriptor length db DSCR_INTRFC;Descriptor type db 0 ;Zero-based index of this interface db 0 ;Alternate setting db 2 ;Number of end points db OffH ;Interface class db OOH ;Interface sub class db OOH ;Interface sub sub class db 0 ;Interface descriptor string indexIntrfcDscrEnd:EpInDscr: db EpInDscrEnd-EpInDscr;Descriptor length db DSCR_ENDPNT;Descriptor type db 82H ;Endpoint number, and direction db ET_BULK;Endpoint type db 40H ;Maximun packet size (LSB) db OOH ;Max packect size (MSB) db OOH ;Polling intervalEpInDscrEnd:EpOutDscr: db EpOutDscrEnd-EpOutDscr;Descriptor length db DSCR_ENDPNT;Descriptor type db 02H ;Endpoint number, and direction db ET_BULK;Endpoint type db 40H ;Maximun packet size (LSB) db OOH ;Max packect size (MSB) db OOH ;Polling intervalEpOutDscrEnd: End4.1.3 USB传输子程序当采集的指纹数据导入了由SRAM和CPLD构成的高速数据缓冲区后,要通过USB接口将数据发送到上位PC机,AN2131QC必须先将数据读入到内部USB缓冲区。因此,AN2131QC将数据传到内部USB缓冲区的速度将是整个USB数据传输速度快慢的关键。为了使USB数据传输(从外部读入数据并将之传到PC机)达到最快,需要采用很多措施。 正常情况下,AN2131QC内核结构从外部读入数据到USB的端点缓冲区,要使用的汇编程序为: movx a,dptr;读外部数据到acc寄存器 inc dptr;外部地址加1 inc dps;切换DPTR指针(内核有双DPTR指针,用dps进行切换) movx dptr,a;将acc内容放入USB缓冲区 inc dptr; USB缓冲区地址加1 inc dps;切换DPTR指针 由上述程序可知,数据在寄存器中完成操作后,都必须有一个“inc dptr”,和“inc dps”指令来完成16位地址的增加和缓冲区指针切换。为了消除这种内部消耗,使用AN2131QC提供的一种特殊的硬件指指(只能用于内部缓冲区),8051装载USB缓冲区地址到两个AUTOPTRH(高字节地址)和AUTOPTRL(低字节地址)寄存器中,向AUTODATA写入的数据就直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财会人员警示教育
- 企业采购申请及审批流程工具
- 胆囊炎患者急性发作处理流程
- 企业团队培训需求评估表
- 通信公司网络优化工程师网络性能及优化技术考核表
- 健康宣教小讲座
- 宁夏银川市宁夏大学附中2026届化学高一第一学期期末联考模拟试题含解析
- 跨文化团队沟通协作与冲突解决指南
- 文化传播机构公关推广策略实施及效果评估绩效评定表
- 酒店水疗产品设计
- 2025年新员工入职医疗器械知识培训试题及答案
- GB/T 46729-2025纺织品智能纺织品术语和分类
- 桥架安装作业指导书方案
- 2025年武汉市黄陂区公开招聘工会协理员4人笔试考试参考题库及答案解析
- 2025亳州利辛县产业发展集团有限公司2025年公开招聘工作人员10人备考题库附答案
- 分式计算题强化训练(12大题型96道)解析版-八年级数学上册
- 【飞瓜数据】2025年休闲零食线上消费市场洞察
- 2025年吉林事业单位招聘考试职业能力倾向测验试卷(石油化工)
- 水利渠道安装光伏施工方案
- 学堂在线 中国经济概论 章节测试答案
- 国网南瑞集团招聘考试真题2025
评论
0/150
提交评论