当前位置:首页 > 工作总结 > 基于FPGA的USB主控芯片软硬件协同设计与验证:USB主控芯片
 

基于FPGA的USB主控芯片软硬件协同设计与验证:USB主控芯片

发布时间:2019-02-16 04:44:22 影响了:

  摘要:设计了一款采用PowerPC架构的USB1.1主机控制器芯片,并对该芯片进行软硬件协同验证。通过内嵌PowerPC和USB主机IP核的FPGA系统,辅以外部收发器电路、驱动、应用程序和文件系统,完成了对U-Disk和HID两类典型USB应用的测试,验证结果表明该USB主机芯片设计可以符合USB技术规范,并能和其他厂家的设备兼容。
  关键词:USB主机,SoC,软硬件协同验证
  中图分类号:TP334.4 文献标识码:A
  
  The hardware-software Co-design
  and verification for USB host SoC based on FPGA
  
  LIANG Rui-bin, LI Xiao-chao, GUO Dong-hui
   (Department of Electronic Engineering,Xiamen University, Xiamen Fujian 361005, China)
  
  Abstract:We design a USB1.1 host controller SoC based on PowerPC architecture and make hardware-software co-verification. The SoC prototype is implemented with embedded PowerPC and the USB host IP core in FPGA, supplemented by an external USB transceiver and software application systems. We complete two typical USB applications testing, eg. U-Disk and HID. The results show that the USB host SoC meets the USB specifications and is compatible with other vendors’ products.
  Keywords:USB host , System on Chip , hardware-software co-verification
  
  1引言
  
   近年来,USB接口技术在消费性电子、通讯等领域得到了越来越广泛的应用[1]。USB的主从架构决定了设备之间必须通过主机才能进行数据交互[2],而目前扮演主机角色的通常是PC机,这给USB设备之间的数据交互带来了诸多的不便。集成了USB主机功能IP的SoC(片上系统)可以很好地解决这个问题。目前,国外厂商已经推出了许多具有这种功能的芯片,例如CY7C67300、LPC175x系列、LC87F1JJ2A等。
   国内与USB技术相关的研发主要集中在USB应用和系统设计上[3-5]。在SoC设计上也基本集中于USB设备控制芯片的研发[6-8]。对USB主机SoC设计研究还主要处于IP核的设计和单独验证,例如,文献[9]中完成了USB1.1主机控制器中串行接口引擎(HSIE)模块的设计;文献[10]中解决了USB1.1主机控制器IP核模块划分和实现等问题;文献[11]设计出了一种具备USB2.0主机控制器功能的IP核。文献[12]完成了具备全速USB主机功能的USB2.0 OTG IP核的研究和设计。然而,仅仅进行IP核的单独验证是不够的,还必须经过芯片级的验证和软硬件协同的验证[13]。其中,IP核的单独验证和芯片级的验证只是针对系统的硬件,由于USB协议复杂,它不仅需要硬件支撑,还必须有大量的软件配合才能实现完整功能,因此,其软硬件协同验证是验证SoC设计正确与否的关键步骤。
   对USB主机SoC的软硬件协同验证的实现方案有很多种,例如文献[14]采用Seamless 的CVE仿真软件实现了对USB主机的软硬件协同验证。为了验证我们基于PowerPC架构的USB1.1主机SoC设计方案,本文基于FPGA实现了该SoC设计,并辅以必要的软硬件和调试工具,对其进行软硬件的协同验证。本文内容划分如下:第一节介绍该SoC的架构及验证环境,第二节阐述验证过程中的硬件实现,第三节介绍软件部分的设计,第四节进行实际的应用测试,最后一节对本文进行总结。
  
  2USB主机SoC架构及其验证环境
  
  基于PowerPC架构的USB1.1主机SoC的架构如图1所示。整个系统工作在两个严格的数字时钟域(总线时钟和USB时钟),尤其是USB时钟必须严格控制在48 MHz,因此需要一个时钟管理模块对外部输入的100 MHz时钟进行频率合成和锁相,以生成系统需要的时钟频率。PowerPC405微处理器作为整个SoC的控制核心与处理器局部总线(PLB)相连,并提供JTAG、电源管理、中断控制、片上数据/指令存储器(DOCM/IOCM)等接口,其上运行着USB主机的系统软件,因此需要在其数据/指令存储接口上连接两个片上存储单元(OCM)用于存储数据和指令。PLB总线主要为处理器和高速设备提供低延时、高带宽通路。片上外围总线(OPB)面向片上外围接口IP核,用于连接具有不同总线带宽及时序要求的外设,其总线上可挂载包括USB主机控制器、中断管理、定时器和串口等IP核。由于USB主机IP核采用wishbone作为内联总线,必须在wishbone和OPB总线之间进行必要的桥接设计(IPIF)。PowerPC405仅提供两个外设中断接口,当外部中断多于两个时,需要添加一个中断管理模块管理外围IP核的中断。定时器用于系统必要的定时。串口作为输出/输入端口。此外, USB主机SoC要能正常工作还需要相应的外部收发器支持,该收发器提供了USB的物理接口并对逻辑信号与物理端信号进行转换。
  
   我们构建的协同验证环境如图2所示。采用Xilinx公司VIRTEX-II PRO开发板上的FPGA芯片XC2VP30来实现该USB主机的SoC。通过开发板的低速数字扩展口连接外部收发器子板。开发板上围绕FPGA的其他功能模块包括电源模块,时钟晶振等。PC机将USB主机SoC的软硬件比特流文件通过JTAG接口配置到FPGA,并通过串口和逻辑分析仪观察该SoC的运行情况。以下将对验证系统的软硬件设计做进一步的阐述。
  
  3验证系统的硬件设计
  
  硬件上的设计包含FPGA内部的SoC实现和收发器电路设计两个部分。我们在EDK开发平台中建立SoC系统的硬件,该平台提供了除USB主机IP核外的其他IP核,它们具有统一的接口标准,应用时仅需要进行必要的参数配置和接口连接,因此整个硬件设计的重点在于USB主机IP核的集成以及收发器电路的设计。
  
   3.1 USB主机IP核集成
   我们的USB主机IP核内部包含了5个模块(如图3)。Wishbone总线模块提供了与处理器的接口通道,内连USB协议核,数据接收缓存和发送缓存模块;USB主机协议核是USB1.1主机协议的具体硬件实现,它主要由可寻址寄存器和相应处理逻辑组成,通过配置这些寄存器可以完成USB协议规定的四种传输类型(控制、批量、中断和同步传输)、直接控制总线状态、在全速状态下实现每1 ms自动发送SOF包及帧号计算等功能;接收数据缓存和发送数据缓存用来暂时存储主机端接收到的和待发送的数据;串行接口引擎模块的主要功能是检测收发器状态,接收和发送总线信号,进行总线数据采样、串/并转换、同步插入、位填充、非归零反相编/解码等操作。
  
  为了将USB主机IP核集成到SoC系统中,必须解决OPB到WishBone总线之间的桥接问题,EDK工具的IPIF服务[15]提供两种OPB到用户IP的桥接方式:寄存器模式和存储器模式。它们的最大区别在于读写方式不同。寄存器模式为每个寄存器单独提供读写使能,存储器模式则为一个连续的地址空间提供一个读写使能。为了满足WishBone接口信号时序,我们选用存储器模式桥,接口信号如图4。由于USB主机IP核地址空间为256字节,且数据宽度为一个字节,因此选择IPIF接口数据、地址总线的低8位连接到WishBone总线,并采用Bus2IP_ArCS信号作为USB主机IP核的片选信号。另外扩展了USB时钟输入信号(USB CLK)和USB中断输出信号(USB IRQ)。
  
   3.2 外部收发器电路的设计
   外部收发器电路连接着USB主机IP核的串行接口引擎(SIE)外部逻辑端口,实现总线信号与数字逻辑信号之间的电平转换,满足全速和低速两种传输模式。SIE外部逻辑端口包括:两对差分线WireDataIn(VMI,VPI), WireDataOut(VMO,VPO),线输出有效信号(OE)和传输速率控制信号(SPD)。这些逻辑端口工作在Vcc为3.3 V的LVTTL电平模式下,其输出和输入的高/低电平必须满足VOH>=2.4V,VOL = 2 V,VIL   
   图8(b)(c)(d) 分别为该事务三个包的非归零反相编码(NRZI)时序图。NRZI编码原理是当输出0时总线状态取反,当输出1时总线状态保持不变。因此我们对各包进行解码分析,以令牌包为例,在VMO上取得的令牌包信号的NRZI编码如表1所示,对其进行解码分析后得出该包的5个域:同步域(sync)、包标识域(PID)、地址域、端点域和校验域。可分析结果表面该包为建立请求包,当前设备的地址为0,并采用端点0进行传输。
  
  同理分析得到数据包和握手包的信息如表2。数据包分4个域:同步域、包标识域、数据域和校验域。该数据包中数据描述的是主机获取设备描述符的请求包。其中,十六进制80表示获取标准数据;06表示设备描述符;40表示要获取64字节的数据。握手包分2个域:同步域和标志域。该握手包为应答握手,表明数据包被正确接收。
  
  我们通过串口终端捕捉系统对U盘的应用测试过程,从图9显示的信息可以看出,主机系统在发现一个全速设备后(found Full-Speed device),首先对其进行总线复位(Reset device),然后开始枚举过程(enumerate),在识别设备为存储设备后(Mass storage device),进一步读取文件系统基本信息并识别该设备文件系统类型(FAT32)。我们编写的测试程序通过输入控制命令完成对U盘的文件操作,getcap读取U盘的总空间和当前的可用空间,crtdir创建一个文件夹目录,crtfil创建一个文件,opnfil打开该文件,setptr设置读写操作的起始指针,wrfil、rdfil进行读写操作,完成后clsfil关闭该文件。通过cd,ls显示文件信息可以看到我们所创建的目录及文件的信息。结果表明:对U盘应用测试取得很好的效果。
  
   此外在进行U盘文件操作测试程序设计时发现一个现象:如果停止对U盘的操作一段时间(大于2 s),再对U盘进行批量传输的话就得不到任何数据回应,但在此过程中主机每1 ms都向设备发生SOF包,表明设备并没有进入挂起状态。针对这一现象我们观察了PC机对U盘的操作过程,通过Bus Hound软件观察到,在空闲状态下PC主机大约每1 s向U盘发送一个TEST UNIT READY命令(图10)。为此我们通过定时器产生一个每1 s的定时中断使程序在U盘空闲时每秒发送一次查询命令,解决了这一问题。
  
  6结束语
  
  本文通过基于FPGA的USB主机硬件实现和驱动程序、HID和U-disk两类典型应用测试程序的软件开发,完成了对PowerPC架构的USB主机SoC设计方案的软硬件协同验证。结果表明该USB主机控制器的设计符合USB技术规范,并能很好地与Intel,Cypress等厂商的USB设备兼容。同时,在测试过程中所编写的软件驱动和移植的文件系统等均可以直接应用到SoC的后续开发中,降低了后续开发的难度。
  
  参考文献
  [1] 余瑞�. USB市场应用发展趋势[J].电子产品世界,2006,5. https://www.省略/article/12719.htm.
  [2] Universal Serial Bus Specification Reversion 1.1[S]. https://www.省略, 1998.
  [3] 胡天林,王磊, 林春等. 新型紫外分光光度计的USB采集卡设计[J]. 厦门大学学报,2009,48(3)365-368.
  [4] 刘小军,刘栋斌.基于EZ-USB的CCD信号采集系统[J].计算机工程,2009,35(14)203-205.
  [5] 于晶荣,滕召胜,孙传奇等.基于USB主机技术的三相多功能电能表设计[J].湖南大学学报,2007,34(2)51-55.
  [6] 沈小磊,张晓彤,李占才. USB设备控制器的硬件实现与研究[J].计算机工程,2007,33(24)247-249.
  [7] 付华杰,刘丽君,张遂南. 高速USB IP核的设计与开发[J].微电子学与计算机, 2008,25(7)127-129.
  [8] 戴迎�. 基于SoPC的USB设备控制器IP核设计[J].计算机工程与设计,2008,29(20)5234-5236.
  [9] 武甲东,梅张雄等.USB主机控制器端串行接口引擎IP的实现[J].微电子学与计算机,2005,22(2)35-38.
  [10] 张美林,章军.USB1.1主机控制器IP核的设计和实现[J].计算机工程与应用,2007,43(22)109-112.
  [11] 胡锦,胡立琴,陈训亮.一种嵌入式USB2. 0 主机控制器IP 核的研究与设计[J]. 微电子学与计算机,2009,1:133-136.
  [12] 廖文兵.USB2_0 OTG IP核全速主机控制器研究与设计[D].电子科技大学,2008.
  [13] Chen Wenwei,Zhang Jinyi, Li Jiao, Ren Xiaojun and Liu Jiwei,” Study On a Mixed Verification Strategy for IP-Based SoC Design”,IEEE High Density Microsystem Design and Packaging and Component Failure Analysis, Pages:1-4, June 2005.
  [14] 李栋,李正卫.基于SoC的USB主设备的软硬件协同验证[J].中国集成电路,2007,2:53-57.
  [15] OPB IPIF(v3.01c) DataSheet[EB/OL]. https://www.省略/support/documentation/ipbusinterfacei -o_ coreconn ect_opb-ipifarchitect.htm.
  
  作者简介
  梁瑞彬,在读硕士研究生,研究方向为嵌入式系统设计与应用;
  李晓潮,副教授,研究领域:集成电路、嵌入式系统、扩谱通信和多媒体;
  郭东辉,教授,博士生导师,研究领域:集成电路设计,人工智能,网络通信等。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3