当前位置:首页 > 思想汇报 > 基于FPGA的USB,2.0控制器的设计 USB控制器
 

基于FPGA的USB,2.0控制器的设计 USB控制器

发布时间:2019-02-16 04:41:21 影响了:

  摘要:USB 2.0控制器支持USB 2.0协议和UTMI接口规范,其一侧通过UTMI接口连接到物理层(PHY)与USB设备通信,另一侧通过功能接口连接到微处理器。USB 2.0控制器主要由协议层、UTMI接口、功能接口、仲裁和存储器接口组成。通过对各模块功能分析,并在仿真软件中进行仿真验证,控制器满足通用设备数据传输要求。
  关键词:USB;FPGA;传输宏接口;接口控制器
  中图分类号:TP334.7文献标志码:B
  
  DesignofUSB 2.0 Controller Based on FPGA
  
  ZHANG Jian,HUANGHu
  (College of Information Engineering, Chengdu University of Technology, Sichuan Chengdu 610059,China )
  
  Abstract: USB 2.0 controller supports USB 2.0 specification and UTMI interface specification, through the UTMI interface it connects to the PHY on one side and correspondences with a USB device, on the other side, it connects to a Micro controller with the function interface. USB 2.0 controller consists of PL , UTMI interface, function interface, arbiter and memory interface. By analyzing each function module and simulating the controller with the Modelsim, the controller meets the requirement of data transmission for general devices.
  Key words:USB;FPGA;UTMI;Interface controller
  
  1引言
  USB(Universal Serial Bus,通用串行总线)是英特尔、康柏、IBM、Microsoft等多家公司联合提出的通用串行总线[1],现发展成为计算机与外围设备的输入/输出标准,USB 2.0规范是继USB 1.1规范之后新的USB总线通信规范。目前,USB总线已经成为PC机主板上的标准配置,USB作为一种新型的接口以其较快的传输速率和方便的连接等优势受到用户的青睐[2]。
  在高速的数据采集或传输中,目前使用较多的都是采用USB 2.0 接口控制器和FPGA 或DSP 实现的[3]。本文介绍的USB 2.0控制器为外设提供一种功能接口,外围设备通过该接口控制器可以方便的连接到电脑上。由于USB 2.0控制器是按照USB 2.0规范设计的,所以该控制器可以使外围设备在USB高速和全速模式下操作(12和480 Mb/s)。
  
  2控制器硬件电路构架
  
   USB 2.0控制器硬件电路主要分为两个部分:一为接口部分,二为协议层。接口部分包括三个接口:一种是与物理层进行通信的UTIM接口;一种是访问存储器和执行数据流操作的存储器接口,另一种是与微控制器进行通信的功能接口。USB 2.0控制器结构框图如图1所示。
  
   2.1UTMI(Transceiver Macrocell Interface)接口
  UTMI接口主要负责完成与物理层的数据交换、时钟传递、操作模式选择(全速模式和高速模式)等,逻辑模块按以下五个部分划分:接收数据缓冲模块、发送数据缓冲模块、发送数据总线接口、接收数据总线接口、接口控制状态机。
  物理层中需要一个外部收发器,该收发器的主要功能是进行USB最底层协议规范所要求的信号处理,包括信号的串并转换和并串转换,比特填充和去除,时钟恢复和加同步以及去同步。核心目的是把总线上的时钟域数据转移到处理时钟域上,去除掉设备厂商开发中的高速逻辑部分等[4]。
  
   2.2功能接口
   功能接口为外部微控制器操作USB 2.0控制器提供了一个控制通道。为了使USB 2.0控制器能在不同控制平台进行移植,主机接口采用Wishbone总线规范设计。Wishbone总线规范通过在IP核之间建立一个通用接口完成互连,可以用于在软核、固核以及硬核之间进行互联[5]。本设备控制器通过WISHBONE接口向外提供两种中断输出(INTA,INTB),当导致中断的事件发生时,INTA或INTB会向外界可能存在的处理器提出中断请求[6]。
  
   2.3 存储器接口和仲裁器
  外部存储器采用同步静态随机存储器(SSRAM)。一方面存储器接口主要负责对SSRAM的访问,另一方面仲裁器负责仲裁协议层或外部微控制器两者之一来与SSRAM进行数据交换。
  
   2.4 协议层
   协议层负责对所有的输入/输出数据操作和控制通信,其结构框图如图2所示。
   DMA和存储器接口主要完成SSRAM与USB电缆线连接的外部设备之间的数据传递。包组装模块完成输出数据的包组装,如插入PID(包标识符)、ADDR(地址)、ENDP(端口号)、CRC(循环冗余校验)等,组装后的数据进入UTMI中的输出缓存模块。包分解模块则对输入的USB格式数据进行解包处理,解包后的数据进入下一模块。协议引擎处理USB传输的Token(标记)、DATA(数据)、Handshake(握手)等信号。
  
  3功能操作分析
  
   3.1 端口操作
  所有的传输都是传送到一个设备的端点(device endpoint),或由一个端点发出[7]。USB2.0控制器的端点数最多可达16个,微控制器可以通过写端点寄存器EPn_CSR、 EPn_INT、EPn_BUF0、EPn_BUF1(n=0、1、2…16)来控制端点。EPn_CSR为控制状态寄存器,该寄存器用来指定端点的操作模式以及向微控制器报告指定端点的状态,其部分功能如表1所示。初始状态下EPn_CSR= 0000h。
  EPn_INT为中断源寄存器,该寄存器用来向控制器提供详细中断源信息,其部分功能如表2。初始状态下EPn_INT=0000h。
  EPn_BUF为端点缓存寄存器,该寄存器用来保存各端点的缓存指针,每个端点有两个功能一样的缓存寄存器用以双缓存操作。EPn_BUF 的0到16位为缓存指针,17到30位为缓存大小,31位为使用标识位,该位由主机控制器设置,当buffer为空或重新装载数据或初始化时为0,当buffer被使用时为1。 初始状态下EPn_BUF=FFFFFFFFh。
  缓存指针指向内存中的数据结构,当指针的数据全为1时,表明buffer还没有被分配数据,当所有的buffer都未分配数据时主机控制器应回应不确认(NAK)信号给USB主机。USB 2.0控制器支持双缓存操作特性,buffer0和buffer1交替使用从而减小微控制器的延迟需求。控制端点与普通端点不同,buffer0用于输出缓存,buffer1用于输入缓存,因此标记(token)数据的传输将首先被写入buffer0,而对输出数据的确认(ACK)信号或输入数据将首先被写入buffer1。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   
   3.2DMA操作
  DMA操作允许可使USB 2.0控制器与微控制器之间进行透明的数据传输,每个端点都有一个DMA请求信号(DMA_REQ) 和一个DMA应答信号(DMA_ACK)。当控制寄存器中的DMA使能位(DMAEN)被设置后,USB控制器将使用DMA_REQ和DMA_ACK信号来控制DMA传输。DMA模式下,buffer0将被使用,而buffer1将不被使用。当buffer0中有数据或为空需要填充时,发送DMA_REQ信号。DMA传输中每传送4个字节将返回一个DMA_ACK信号[8]。
  
  4仿真分析
  
  USB 2.0控制器采用Modelsim进行功能仿真和时序仿真。当外部主机通过USB电缆与USB 2.0控制器建立连接后,外部主机与USB 2.0控制器之间的批量数据传输可通过DMA操作完成,时序仿真截图如图3所示。
  5结束语
  
  本文介绍了基于FPGA的USB 2.0控制器的实现方案,讨论了各功能模块的具体功能,分析了控制器的主要模块的操作方法。控制器的Verilog HDL代码已在Altera公司的cyclone II FPGA芯片上通过了Quartus II 8.0的综合、时序分析及布局布线。从仿真结果中可以看出,USB 2.0控制器基本满足时序要求,最高操作频率可达到55.765 MHz,该频率可以满足通用的音频和视频数据的传输要求。由于本设计功能接口采用Wishbone总线构架,所以该USB 2.0控制器可以轻松嵌入到Soc系统中。
  
  参考文献
  [1] Compaq,Hewlett-Packard,IntelUniversal. Serial Bus Specification[s],2000.4
  [2] 袁文波,张皓,唐振中.从实践到提高[M].北京:中国电力出版社,2007.6,123-132
  [3]谭安菊,龚彬. USB 210 控制器CY7C68013 与FPGA 接口的VerilogHDL 实现[J ] .电子工程师,2007 ,33 (7) :52 - 55.
  [4] 阎磊.USB UTMI接口标准研究[R].普天信息技术研究院,2006.10
  [5]WISHBONE System-on-Chip (SoC) Intercon- nection Architecture for Portable IP Cores
  Revision: B.3, Released: September 7, 2002
  [6] 孙爱良,徐 磊.基于WISHBONE片上总线的USB 2.0设备控制器IP核的设计[J].自动化与仪器仪表,2009,(141)1:29-31.
  [7] 萧世文. USB 210 硬件设计[ M ] . 北京: 清华大学出版社,2002.
  [8] Rudolf Usselmann. USB function IP Core[J],2001.10
  
  作者简介
  张健,硕士研究生,研究方向:微波与通讯;
  黄虎,副教授,研究方向:微电子技术。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

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

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