当前位置:首页 > 电源 > 线性电源
[导读]为了实现USB设备之间的直接通信,介绍一款USB 0TG IP核的设计与FPGA验证。在分析OTG补充规范的基础上,重点描述了USB OTG IP核的设计原理、模块划分以及每个模块的功能,然后对USBOTG的部分特性进行详细的阐述,最后给出该IP核在ModelSim中的功能仿真及FPGA验证结果。结果表明,该IP核具备主机功能和设备功能,可作为一个独立的IP模块应用到SoC系统中。

引 言
   
USB协议公布后,USB凭借其占用系统资源少、廉价、通用、可热插拔等优点,成为通用的串行接口总线。当前,绝大部分计算机外围设备(如打印机、MP3、移动硬盘等)均采用USB接口。但随着USB接口应用的普及,基于USBl.x和USB2.O规范的USB接口逐渐暴露其缺点。由于USB总线是主从式结构,且设备的主从特性在设备设计时就已经固定,这样就很不利于设备间点对点的数据传输。这种以计算机为核心的数据传输结构,非常不利于USB总线在嵌入式行业的应用,因为这些设备一般都要求具有与计算机通信的USB设备功能,同时也要求具有连接其他USB设备的主机功能。为了解决这一问题,USB OTG规范作为USB2.O规范的补充出台了。本文介绍一款USB OTG IP核的设计与实现,该设备控制器可作为IP核用于SoC系统中,完成与主机控制器的通信,并能与普通的USB从设备进行通信。

1 USB OTG的工作原理
    OTGl.Oa补充规范对USB2.O进行的最重要扩展是其更具节能性、电源管理,并允许设备以主机和外设2种形式工作。OTG有两种设备类型:两用OTG设备(dual—role 0TG device)和外设式OTG设备(peripher一al_only 0TG device)。两用0TG设备完全符合USB2.O规范,同时提供有限的主机能力和一个Mini—AB插座,支持主机流通协议(IIost Negotiation Protocol,HNP)”。,且同外设式OTG设备一样支持事务请求协议(SessionRequest Protocol,SRP)。当作为主机工作时,两用0TG设备可在总线上提供8 mA的电流,而以往标准主机则需要提供100~500 mA的电流。2个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB规范主机/外设的结构模型。OTG主机负责初始化数据通信,比如总线复位、获取各种USB描述符和配置设备。这些配置完成后,2个OTG设备便可分别以主机和从机方式传输信息,2个设备主从角色交换的过程由主机流通协议定义。

2 IP设计原理和IP模块设计
    USB 0TG控制器芯片按结构分类,通常分为以下2种:
    ①专为USB OTG设计的芯片。这类芯片集成了微控制器,是完全按照协议设计的,而不是在旧的结构上增加功能。其结构不同于其他常用控制芯片,开发者需要较长的学习时间,但是它能够达到最优化。
    ②需要外部微处理器的接口芯片。有些USB控制器只处理USB通信,而且必须由外部微处理器来控制。这种实现接口的标准组件使得使用者可以在各种不同类型的微控制器中选择一种最适合的微控制器,通过使用已有的结构和减少固件上的投资来缩短开发时间,减少开发风险和费用。但由于外接一个处理器,增加了电路的复杂性。
    本文设计的USB OTG IP核采用第2种方式,所采用的处理器是Nios。根据对USB OTG规范的理解,USB0TG控制器应该具有以下的功能:HNP和SRP协议的实现,主机工作模式和设备工作模式。系统结构框图如图1所示。

    UTMI+接口需要外接一个符合USB 2.0 UTMI+协议的收发器。该芯片用作USB2.O接口的模拟前端,处理由USB2.O接口发出的高速和模拟信号,对其发出的用NRZI方式编码的数据进行解码、位填充等,并将串行数据转换成并行数据;反之,该芯片对由本控制器发出的并行数据通过其内部的差分驱动电路进行串行化、位填充和NRZI编码,并输出到USB电缆上。该接口模块主要用于缓存发送和接收的数据,确保与外围收发芯片的无缝结合,以及挂起、恢复和复位的检测。
    OTG控制器实现USB OTG补充协议的功能。该模块主要负责HNP、SRP的硬件实现,以及连接状态的检测。
    主机控制器实现IP核工作在主机模式的功能。该模块主要产生挂起、恢复、复位信号,主动发送get_descip—tor、set_address、set_configuration等标准请求,并把请求变成对应的USB数据包格式(比如TOKEN包加入PID、地址、端点和5位的CRC校验码等);隔固定的时间向从设备发送SOF标志,并根据配置的结果产生对应的主机中断。
    设备控制器实现IP核工作在设备模式的功能。该模块主要负责接收标准的USB请求,比如接收SOF标志、IN标志、OUT标志等,并根据这些请求作出正确的响应以及检测复位、挂起信号。
    控制状态寄存器完成对IP核控制器内部状态的设置。它分成2种类型:一种是基本的控制状态寄存器,比如控制状态寄存器(指定USB的速率模式、挂起模式、连接状态、主从模式),设备地址寄存器(存放主机分配给USB设备的地址),中断屏蔽寄存器(使能对应中断)和中断源寄存器(Nios控制器通过读此寄存器来判断中断类型);另一种是端点寄存器控制状态寄存器,如中断源寄存器、中断屏蔽寄存器、缓冲区的指针寄存器和大小寄存器,模块中实现时根据输入的地址和读写信号来对某一个寄存器进行相应的读写操作。
    存储器接口实现IP核内部数据与Nios控制器数据的之间的仲裁。当Nios控制器和IP核内部同时对外部存储器SRAM进行读写访问时,必须对它们进行数据的仲裁。默认的优先级为IP核内部数据优先级高于Nios控制器的数据优先级。
    Nios控制器接口实现USB IP核与外部微控制器(Nios)的数据通信。该接口符合Avalon总线规范,通过输入地址的最高位来判断Nios是对内部寄存器进行访问还是对SRAM存储器进行访问,并完成地址、数据和相关信号的处理。[!--empirenews.page--]

3 USB OTG IP核的特性讨论
3.1 连接状态的检测

    当上电复位后进入空闲状态,开始USB会话。首先需要等待一段时间(最多50 ms),OTG控制器会检测输入ID线的电平,以确定自己是A设备还是B设备,高电平表示B设备,低电平表示A设备。对于A设备,IP核会等待电源线Vbus上的电平上升到符合USB会话的4.4 V最低电平要求,具体的操作就是通过UTMI+接口的DrvVbus信号控制PHY对Vbus电源线充电,以提供USB总线工作用的电源;对于B设备,则根据是否正在作SRP请求而实现SRP协议或者进入数据传输。当Vbus电源线上的电平满足要求时,A设备等待B设备连入USB总线。作为主机的A设备的DpPulldown和Dm—Pulldown在开始会话后始终保持高电平状态,如果B设备没有连上,则2条USB数据线DP和DM呈现SE0状态;而当B设备连上USB总线时,DP和DM会呈现J态或者K态。根据这一特点,A设备就可以判断出是否有B设备连入USB总线。
3.2 SRP协议的实现
    当设备进入SRP协议实现时,B设备等待SRP操作的初始条件,即通过UTMI+接口的DischrgVbus信号加速SRP条件的满足。当初始条件都满足后,B设备通过UTMI+接口的信号XcvrSelect、TermSelect、DpPulldown和DmPulldown实现对PHY的控制,使之向DP线上发出驱动脉冲。持续5~10 ms后,B设备又通过UTMI+接口的信号ChrgVbus控制PHY向Vbus上发出驱动脉冲,该驱动脉冲需要持续足够长的时间以使Vbus电源线被充电到2.1 V。驱动完成后,回到空闲状态,进而等待A设备对SRP作出响应。如果A设备识别到了B设备的SRP,则会开始USB会话,否则本次SRP失败。
3.3 HNP协议的实现
    不妨假设A设备当前处于主机状态,而B设备处于从设备状态。此时,B设备需要通过HNP取得USB主机地位,过程如下:A设备通过发出挂起命令使得USB总线准备进入挂起状态。B设备首先由数据传输状态准备进入挂起状态。这时,B设备需要检查是否有HNP请求,如果有则开始等待A设备连接,否则正常地进入挂起状态。B设备在等待A设备配置时,A设备尚未完全进入挂起状态,当它进入挂起状态的同时会检查是否有B设备的断开中断。如果有,则说明B设备正在进行HNP操作,并且已经进入了等待A设备配置状态,接着A设备进入设备工作状态,从而使自己变为从设备。B设备检测到A设备的连接后,对USB总线进行复位,同时开始对A设备进行复位操作。B设备进入主机模式工作,而A设备则进入从设备模式工作。在B设备作为主机完成了对USB总线的使用后,再一次通过HNP将USB主机地位还给A设备,操作过程类似。

4 系统功能仿真
    本设计采用硬件描述语言Verilog HDL完成RTL(寄存器传输级)的描述。寄存器传输级是指在数字系统设计时,可以将数字系统简单地看作是寄存器和寄存器之间的组合逻辑(cornbinational logic)。本设计使用Mentor公司的设计仿真软件ModelSimSE进行功能仿真。应用Verilog HDL语言搭建测试平台,通过仿真工具,设计者对各设计层次的设计模块进行仿真,以确定这些设计模块的功能和逻辑关系是否满足设计要求。

    在设计的验证阶段,将包含该设计的2个USB OTG IP核直连,并让这2个IP核工作在不同的工作状态,即一个工作在A设备模式,另一个工作在B设备模式。这样,A设备就可以作为B设备的激励源,通过A设备发出一系列测试信号,比如向B设备发出复位信号以及SRP和HNP协议请求,发送SOF标志信号和配置信息等。然后观察B设备是否对这些命令或者信号做出正确的响应。通过这样的程序来验证该IP核是否具有双功能和对USB协议的支持情况。仿真的部分结果如图2所示。


5 FPGA验证
    FPGA是一种可编程逻辑器件,可进行多次编程操作,使器件根据不同的需求实现不同的功能。随着微电子技术的发展,FPGA的性能不断提高,很多设计已经完全可以由FPGA来完成。目前,在ASIC设计中一个重要的验证手段就是通过FPGA进行硬件仿真,以保证设计的可靠性。FPGA芯片是整个验证系统的核心,它包含了USB OTG IP核和相关的控制模块。因为用Verilog语言来实现控制模块的功能,所以将它和USB OTG IP核一起综合然后下载到FPGA中进行测试。
    FPGA选用AItera公司的Cyclone系列芯片,具体型号是EPlCl2Q240C8;物理层模拟部分选用Philips公司的产品ISPl301;存储器SRAM选用ISSI公司的IS63LVl024—12J。复位电路用来产生上电复位信号,也可以在系统正常工作时,通过按键开关产生复位信号。此复位信号提供给USB IP核作为系统复位。系统的布局布线采用的是Altera公司的QHartusII 6.0。
    验证过程分成2个部分来分别验证主机模式和设备模式。当USB 0TG IP核工作在主机模式时,直接用U盘与IP核进行连接,通过编写的底层驱动可以识别出U盘。在完成对U盘的驱动后,成功地进行了数据传输,最后正确地断开连接。当IP核工作在设备模式时,IP核作为USB从设备接入电脑主机的USB接口。通过安装新的驱动,电脑主机可以识别出该USB设备,完成对该设备的驱动后,同样可以正确地进行数据传输,并安全地移除该设备。验证的结果表明,该USB 0TG IP核的主机和从设备功能均能正常工作,达到了预期的设计要求。

结 语
    FPGA验证的结果表明,USB OTG IP核在功能和时序上符合USB2.0标准和OTGl.Oa补充规范的协议要求,具备了主机功能和设备功能,达到了设计的预期目标。另外,完成的USB OTG IP核支持UTMI+接口,可以广泛应用于包含USB功能的SoC开发。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2022年10月17日讯)为全球技术基础设施提供高速连接的企业Alphawave IP Group plc发布其截至2022年9月30日的三个月交易和业务更新文告。公司从2022年9月1日起整合了已收购的O...

关键字: ALPHA IP GROUP PLC

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

USB-C接口全称为USB Type-C,属于USB 3.0下一代接口,其亮点在于更加纤薄的设计、更快的传输速度(最高可达10Gbps)、更强的电力传输(最高100W),此外USB-C接口还支持双面插入,正反面随便插,相...

关键字: iPhone 15 Lightning USB

东芝公司(Toshiba)关于经营重组方案,计划与国内基金“日本产业合作伙伴”(JIP)为核心的企业联盟优先展开谈判。JIP向中部电力、欧力士等多家日企寻求出资参与东芝重组。东芝9月30日宣布,从通过第一轮招标的多个阵营...

关键字: 东芝 IP TOSHIBA 电力

东芝公司(Toshiba)关于经营重组方案,计划与国内基金“日本产业合作伙伴”(JIP)为核心的企业联盟优先展开谈判。JIP向中部电力、欧力士等多家日企寻求出资参与东芝重组。东芝9月30日宣布,从通过第一轮招标的多个阵营...

关键字: 东芝 IP TOSHIBA 电力

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

这个国庆假期前,温州14岁的小文(化名)在“鬼门关”前走了一遭。感冒发烧的小文,因为课业繁忙强撑着没去医院治疗,撑了两天高烧迟迟没退。等到医院后,小文心肌炎暴发,一度心脏停跳半分钟…...

关键字: IP 传导

线性电源

1619 篇文章

关注

发布文章

编辑精选

技术子站

关闭