会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 接口 / USB接口电路系统

USB接口电路系统

阅读:292发布:2021-03-02

IPRDB可以提供USB接口电路系统专利检索,专利查询,专利分析的服务。并且本发明属于电子测量技术领域,尤其涉及一种USB接口电路的设计系统。本发明的USB接口电路系统,包括FPGA模块、EZ-USB FX2模块、EEPROM模块、晶振,FPGA模块、EEPROM模块、晶振分别与EZ-USB FX2模块电连接。这个固件架构流程图是从USB数据传输的角度来看的,大量的特定功能在自定义控制传输和块传输中实现。,下面是USB接口电路系统专利的具体信息内容。

1.一种USB接口电路系统,其特征在于,包括FPGA模块、EZ-USB FX2模块、EEPROM模块、晶振,FPGA模块、EEPROM模块、晶振分别与EZ-USB FX2模块电连接。

2.根据权利要求1所述的USB接口电路系统,其特征在于,EZ-USB FX2模块采用CY7C68013型号。

3.根据权利要求2所述的USB接口电路系统,其特征在于,EZ-USB FX2模块包括USB收发器、USB引擎、RAM、增强8051、地址/数据总线、I2C主控器、通用I/O、GPIF、FIFO,把EZ-USB FX2看成两个数据域:一个是USB数据域,由USB内核控制;另一个是接口数据域,由增强8051或GPIF控制;两个数据域由端点FIFO连接,EZ-USB FX2的端点FIFO采用了以USB数据包的方式提交给FIFO。

4.根据权利要求1所述的USB接口电路系统,其特征在于,EEPROM模块采用AT24LC64型号。

5.根据权利要求1所述的USB接口电路系统,其特征在于,晶振采用24M晶振。

说明书全文

USB接口电路系统

技术领域

[0001] 本发明属于电子测量技术领域,尤其涉及一种USB接口电路的设计系统。

背景技术

[0002] 随着电子技术的发展,接口系统的设计正朝着复杂程度高、工作速度快、标准化的方向发展,对测试仪器提出了更高的要求。USB(Universal Serial Bus)已成为一种标准的连接接口,自1996年USB-IF(USB实施论坛)联盟公布了USB1.1以来,USB接口已取得了长足的发展。最初的USB标准主要面向低速数据的传输应用,USB1.1支持1.5Mbps(低速)和12Mbps(全速)两种速率,广泛用于对传输速率要求不高的PC外设,如键盘、鼠标等,2000年公布的USB2.0标准的传输速度最高可以达到480Mbps(高速)。上述的标准USB设备都必须以PC为主机,USB OTG(USB On The Go)技术的推出,实现了设备到设备的数据传输,拓展了USB技术的使用范围。其广泛用于各种嵌入式系统中,如PDA,移动电话、数码相机、测量仪器、测试设备等。
[0003] 集成了USB协议的微处理器,按功能可以分为USB主控制器芯片、USB集线器芯片和USB设备芯片,本方法用到的是USB功能设备芯片。目前市面上主要有两种USB设备芯片,一种是USB接口芯片,其仅包含USB的串行接口引擎(SIE)、FIFO内存、收发器以及电压调整器等部分的芯片,如Philips公司的PDIUSBD12、ISP1581,National Semiconductor公司的USBN9602等,这种芯片需要一个外接的微控制器来控制,开发难度大,开发周期长。

发明内容

[0004] 本发明的技术效果能够克服上述缺陷,提供一种USB接口电路系统,其通过USB接口硬件设计及固件编程,实现了设备到设备的数据传输,支持USB2.0标准并向下兼容。
[0005] 为实现上述目的,本发明采用如下技术方案:其包括FPGA模块、EZ-USB FX2模块、EEPROM模块、晶振,FPGA模块、EEPROM模块、晶振分别与EZ-USB FX2模块电连接。
[0006] EZ-USB FX2模块采用CY7C68013型号。EZ-USB FX2模块包括USB收发器、USB引擎、RAM、增强8051、地址/数据总线、I2C主控器、通用I/O、GPIF、FIFO,把EZ-USB FX2看成两个数据域:一个是USB数据域,由USB内核控制;另一个是接口数据域,由增强8051或GPIF控制;两个数据域由端点FIFO连接,EZ-USB FX2的端点FIFO采用了以USB数据包的方式提交给FIFO。
[0007] EEPROM模块采用AT24LC64型号。晶振采用24M晶振。
[0008] 这个固件架构流程图是从USB数据传输的角度来看的,大量的特定功能在自定义控制传输和块传输中实现。

附图说明

[0009] 图1为EZ-USB FX2芯片结构图;
[0010] 图2为本发明系统结构模块图;
[0011] 图3为固件主循环流程图;
[0012] 图4为GPIF波形设置。

具体实施方式

[0013] 本发明的USB接口电路系统,包括FPGA模块、EZ-USB FX2模块、EEPROM模块、晶振,FPGA模块、EEPROM模块、晶振分别与EZ-USB FX2模块电连接。
[0014] Cypress公司的EZ-USB FX2芯片是世界第一个集成USB2.0协议的微处理器。片内集成了串行收发器、智能SIE、增强8051微控制器、一个可编程外设接口(GPIF),以及一2
个主要用于程序下载的IC接口。FX2的智能SIE的硬件处理了大部分USB1.1和USB2.0协议,使得内嵌的微控制器(增强型8051)有足够的资源和能力去实现设备的特定功能,简化了固件代码的开发,EZ-USB FX2支持12Mbps的全速传输和480Mbps的高速传输,可使用
4种USB传输方式:控制传输、中断传输、批量传输和等时传输;完全适用于USB2.0,并兼容USB1.1。芯片图如图1所示。
[0015] EZ-USB FX2内部有8k字节的RAM存储空间上电后可以用来存储数据和程序代码,4k字节的端点FIFO可动态的配置给EP2、EP4、EP6、EP8等四个端点,和众多的USB寄存器。
内嵌的8051有128字节的片内存储器,EZ-USB FX2还有8根数据线和16根地址线,可以用来扩展程序或数据空间。需要注意的是EZ-USB FX2是在片内RAM中运行程序。
[0016] 可以把EZ-USB FX2看成两个数据域(data domain):一个是USB数据域,由USB内核控制;另一个是接口数据域,由8051或GPIF控制。两个数据域由端点FIFO连接,EZ-USB FX2的端点FIFO采用了“量子FIFO”(Quantum FIFO)的概念,即数据是以USB数据包的方式而不是以字的方式提交给FIFO。当FIFO不空时,说明FIFO里面至少已经有一个USB数据包大小的数据。最多可以给一个端点配置4个USB数据包大小的FIFO,用普通FIFO的观点去看,也就是FIFO可以配置的最大深度是4。
[0017] EZ-USB FX2内嵌的增强型8051单片机比标准的8051的速度更快(可在12,24或48MHz下工作)、四个时钟周期为一个指令周期,功能更强,且指令集和标准的8051完全兼容,并可使用C51编译器。
[0018] 固件下载
[0019] EZ-USB FX2的固件可以保存在扩展的片外程序存储器中,并在片外程序存储器中运行,这种方法显然提高了成本,而且增加了电路板的面积,在固件不大的的情况下,一般采用在SRAM中运行的方法。RAM是调电就丢失数据的,所以需要有保存固件的地方。CY7C68013-128提供了两种方法来实现这个功能。
[0020] (一)固件保存在一个片外EEPROM中,系统上电后,EZ-USB FX2的硬件自动把固2
件通过IC总线下载到片内RAM中运行。
[0021] (二)把固件和USB设备驱动程序一起编译,上电后通过驱动固件下载到片内RAM中运行。
[0022] 系统上电后,USB内核首先检查I2C总线上是否有EEPROM。如果有,并且其第一个字节是0xC2,则USB内核将EEPROM中的内容全部拷贝到内部RAM中,然后8051处理设备列举时的各种设备请求,并开始执行RAM中的固件。若有EEPROM但第一个字节是0xC0,则USB内核PID/VID/DID(即产品标识号、生产商标识号和设备标识号)从EEPROM中拷贝到内部RAM,然后USB内核把这些信息加载传给主机,主机会把加载相应的驱动程序,下载相应的固件,然后FX2重新连接,完成重新设备列举,并开始执行RAM中的固件。如果第一个字节既不是0xC2,也不是0xC0,或者没有发现EEPROM,则主机从USB内核中读取PID/VID/DID完成设备的重新设备列举。
[0023] 本方法采用一片EEPROM芯片AT24LC64来保存固件,其第一个字节0xC2,接着后面的字节才是程序代码和数据。
[0024] 接口电路设计
[0025] 在本设计中,EZ-USB FX2通过并行总线和GPIF两种方式读写FPGA,通过控制传输和块传输两种USB传输类型与主机通信。EZ-USB FX2的并行总线方式和普通8051微控制器的P0口作为总线端口时类似,只是EZ-USB FX2还有独立的16根地址线,不需要端口复用。EZ-USB FX2和FPGA的连接及外围电路图如图2所示。
[0026] EZ-USB FX2外接时钟24MHz,内部PLL倍频为48MHz,即增强型8051工作在48MHz频率下。CY7C68013复位脚RESET#是低电平有效,RESET#通过一个100kΩ的电阻接上电2
源VCC,通过一个1uF的电容接上地GND,使得芯片能够上电复位。CY7C68013的IC接口信号线SCL和SDL都是漏极开路输出和迟滞输入,分别在这两个管脚上连接2.2kΩ的上拉电阻,再分别和AT24LC64的SCL和SDL管脚连接。本方案中,AT24LC64用来存储固件程序,所以它的设备地址设为001,即A2A1接地,A0通过一个电阻接电源。16位的GPIF数据线FD[15:0]和FPGA的16个作为数据输出的管脚相连,2根CTL线作为GPIF的控制输出连到FPGA中,分别作为FIFO读时信号和SRAM读时钟信号。8位的数据总线和16根地址总线中的9根都连到FPGA的相应管脚。
[0027] USB设备对电源要求比较高,EZ-USB FX2典型工作电压是3.3v,当电压低于3.0v时,设备不能被识别。为了避免电路板上其它器件对它的影响,专门用了一片低压差电源管理器件lt1117-3.3来给CY7C68013供电,lt1117-3.3最大能提供800mA的电流,能够给CY7C68013提供稳定的供电。
[0028] 固件程序设计
[0029] 固件程序控制整个接口硬件系统的运行,负责处理主机发来的各种USB请求,以完成它们之间的数据传输。并读写FPGA以实现特定的功能。设计中采用C51语言来编写USB固件程序,在德国Keil软件公司的集成开发环境Keil uVison2下编译链接。固件程序由主循环、USB中断服务例程(ISR)、标准设备请求、自定义请求、GPIF块读等部分组成。固件主循环流程图如图3:
[0030] 这个固件架构流程图是从USB数据传输的角度来看的,大量的特定功能在自定义控制传输和块传输中实现。固件的各个重要部分如下。
[0031] USB描述符表
[0032] USB描述符保存了设备的基本信息,描述符用汇编语言编成。本设计中定义了两个端点,端点2定义为块传输输入,端点数据包最大为512(高速)。端点4定义为块传输输出,端点数据包最大为512(全速)。本设计的USB接口支持USB1.1和USB2.0协议,所以有两种不同的配置描述符,固件根据主机支持的速率来选择不同的配置描述符提供给主机。
[0033] 下面是固件中设备描述符的代码。
[0034]
[0035]
[0036] 从上面可以看到,我们定义的VID是7919,PID是0810,因为USB传输是先传低位再传高位,所以如果按照高位在先的习惯,VID/PID分别是1979/1008。操作系统将根据VID和PID去装载设备驱动程序。
[0037] USB设备请求处理
[0038] 设备请求用的是USB控制传输,设备请求的请求号和功能由Setup事务的8个字节数据包来定义。
[0039] 当USB内核检测到控制传输的SETUP数据包接收无误时,就会设置SUDAV中断,固件必须处理这个中断以响应控制传输。SUDAV中断服务例程只是简单的把GotSUD变量置1,且把中断请求清零,等到主循环查询到GotSUD为1时再去处理设备请求。SUDAV中断服务例程如下:
[0040]
[0041]
[0042] FX2是把多个USB中断请求相或后作为总的USB中断请求输出,在处理一个中断的时候,如果有低优先级的中断出现,这个低优先级的中断会被悬置,当高优先级的中断请求位清零后才会置位被悬置的中断请求。为了避免丢失中断,USB中断服务例程必须先清零总的USB中断请求位,然后才能清零单个的中断请求。
[0043] 主循环中判断到GotSUD为TRUE,则去根据SETUP数据包的数据来判断是属于什么设备请求,并进行响应处理,下面以标准设备请求“获取设备描述符”来举例。
[0044] SETUP数据包的8个字节对于标准设备请求来说都有确定的定义,固件程序根据其定义去判断并处理各个请求。对于自定义设备请求,SETUPDAT[1]中存储了自定义请求号,这个请求号可以是0xA0-0xFF,其中0xA0-0xAF由Cypress公司保留。SETUPDAT[6]、SETUPDAT[7]存储了控制传输数据阶段的数据包大小,SETUPDAT[2]-SETUPDAT[4]由设备开发者自己定义,在本方法的固件设计中,经常用这四个字节来传输少量数据。
[0045]
[0046] SUDPTRH和SUDPTRL是专门用来处理“获取描述符”设备请求的地址指针寄存器,当一个地址值写入SUDPTRL后,USB内核自动去相应的地址获取描述符,并发给主机。
[0047] USB高速中断服务例程
[0048] 如果主机支持高速传输,USB内核复位后就会产生一个高速中断,固件中在高速中断服务例程中设置了端点2的块传输数据包的大小,并把配置描述符指针指向高速配置描述符,其它速率配置描述符指针指向全速配置描述符。如果没有高速中断产生,块传输数据包的大小将采用固件初始化时设置的值。
[0049]
[0050]
[0051] GPIF块读控制
[0052] GPIF块读函数把逻辑分析仪采集保存到FPGA内部FIFO和外部SRAM的有效数据读到端点2的缓存FIFO中,再由USB内核把数据发送到主机。固件把端点2配置成块传输,方向是输入。并给端点2配置了4个512字节的缓存,相当于一个深度为4的“量子FIFO”,当一个缓存装满后,GPIF自动会往下一个缓存装载数据,在这同时,USB内核把已经前一个缓存中的数据传给主机。4个缓存轮流工作,大大提高了USB的传输效率。
[0053] FX2的GPIF和端点FIFO(8位或16位)提供了一个更容易和外部通用接口通信的方法。GPIF其实就是一个有7个工作状态和一个空闲状态的可编程状态机,它可以驱动6个控制(CTL)输出和接收6个读就绪(RDY)输入,GPIF可以工作在手动或自动模式下。在自动模式时,GPIF控制了USB端点的FIFO,此时8051不参与数据传输。GPIF工作频率最高可达48MHz,为USB高速传输提供了解决方案。GPIF在每个工作状态可执行的功能有:
[0054] (1)驱动或悬空CTL输出
[0055] (2)采样RDY信号和传输计数器溢出标志以及FIFO标志
[0056] (3)把采集到的RDY信号进行逻辑运算,并根据结果跳到另一个状态[0057] (4)GPIF地址加1
[0058] (5)读写FIFO
[0059] 在每个状态可以等待一定的时钟周期后进入下一个状态,这种状态称为非判断点(Non-Decision Point);也可以把两个RDY信号进行逻辑运算,并根据结果跳到另一个状态,这种状态称为判断点(Decision Point)。
[0060] FX2用波形来描述GPIF各个工作状态的功能,FX2中有128个寄存器专门用来存储波形数据。设置那么多地寄存器不但麻烦,而且容易出错。Cyprees公司提供了一个产生波形数据的软件GPIFTool,我们只需要在固件中把GPIFTool生成的数据拷贝到波形寄存器中就可完成波形的描述。图4是本方案中GPIF块读的波形设置。FIFOCLK是CTL0信号的名称,作为FPGA中FIFO的读时钟;SRAMCLK是CTL1的名称,作为SRAM地址计数器的时钟;EF是RDY0的名称,和FPGA中7号FIFO的空标志信号连接。对于GPIF读,DataMode的NOData表示不采数,Activate表示把FD端口的数据读到端点缓存中,并且缓存地址加1。
[0061] 由波形设置图可知,GPIF在状态4采数。在状态0中FIFO读时钟有一个上升沿,状态1中判断FIFO空标志是否为1,为1说明FIFO输出端口数据无效,跳到状态0再给一个读时钟,为0则跳到状态3。对于SRAM则先读数再给个上升沿让地址计数器加1,指向下一个数据。GPIF波形执行到空闲状态后又从状态0开始执行,直到传输计数器溢出。
[0062] 主循环函数每循环一次就执行一次GPIF块读函数,在函数中首先判断端点2的缓存FIFO是否满,不满则判断开始传输允许标志是否为1,为1则可以开始读数。开始读数之前先设需要读取数据的数目,然后启动GPIF波形。函数中,GPIF传输计数器的值设定和USB块传输最大数据包大小一样。为了准确读取数据,在每次GPIF块读之前,应用程序都先用控制传输,把需要读取的数据数量传到固件中以备检测。GPIF块读函数部分代码如下:
[0063]
[0064]
[0065] 固件升级函数
[0066] 本方法中FX2的固件保存在AT24LC64中,上电后再装载到片内RAM中运行。固件升级其实就是在系统编程,利用固件升级功能,应用软件可以把一个新的固件代码通过USB接口下载到AT24LC64中,系统重新上电后将运行新的固件。在这个过程中不需要烧写器等工具的帮助,操作也非常简单,只需要在用户界面选择一个二进制的固件文件并点击“下载“按钮,就可以完成整个过程。固件升级为完善固件或添加系统功能提供了一个很好的途径。
[0067] 固件升级的原理是利用了FX2的固件在片内RAM中运行这一特性,固件正常运行后,AT24LC64处于闲置状态,这时固件可以接收USB主机传来的新固件代码,并把它通过2 2
IC接口写入AT24LC64中。固件升级函数就是一个接收控制传输数据并可以写IC接口接口的函数。其相关代码段如下:
[0068]
[0069]
[0070] 这固件升级办法存在一种隐患,如果在固件升级过程中系统掉电或USB电缆松动将导致升级失败,并且可能原来的固件也不能正常工作。这个时候可以采用设备驱动程序下载固件的方法来更新固件,由于这种方法比较麻烦,需要在两个设备驱动程序之间切换,所以一般采取前面一种方案。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用