碧波液压网 欢迎你,游客。 登录 注册

USB2.0主机控制器IP核的设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  0 引言

  在USB 协议标准发展的过程中,USB2.0 接口凭借其连接简单、稳定、速度快以及即插即用等优点,广泛应用于计算机、通信和消费类电子产品中。然而目前大部分USB 主机端控制器都是使用国外公司研制的专用ASIC 芯片,USB2.0 主机控制器IP 核的设计可以摆脱对这些芯片的依赖,使得应用灵活方便。本文完成了针对全速和高速海量存储设备USB2.0主机控制器IP 核中与物理层芯片接口的ULPI[2]模块以及USB2.0 协议模块的设计和实现。

  ULPI 模块介于USB2.0 主机控制器的协议模块和物理层芯片之间,完成对插入USB 设备的状态检测,判别是何种设备(全速还是高速),然后将设备置于相应的状态再进行USB 的各种传输事务。每一个USB 的传输都是由事务组成的。而每一个事务都是由USB 传输的最基本单位包(packet)来组成的,USB 的包主要是由令牌包、数据包、握手包和特殊包这四种类型组成的。令牌包和数据包又包含不同的类型[4],握手包仅由一个PID 域组成用以传输联络信号来反映目前数据处理的状态。USB 协议包含了四种数据传输类型,分别为控制传输,批量传输,中断传输和同步传输,其中控制传输是所有设备必须要支持的传输方式,对时间没有严格限制的大量的数据传输要用到批量传输;同步传输也被称为实时传输。

  1 系统设计

  

图1 整体系统图

  图 1 中FPGA型号为Xilinx Virtex-II proxc2vp30,标识为ISP1504 的子板通过FPGA扩展口接入到FPGA 开发板,子板以物理层芯片ISP1504 为核心并配以简单外围电路构成,上面带有USB 接口用来插入USB 设备。ISP1504 用来完成数据的串行化和解串,以及NRZI编码和比特位填充等功能。FPGA 中内嵌microblaze 软核处理器,USB 主机控制器IP 核作为用户IP 核挂接到处理器的PLB 总线上,再加入USB 驱动,便可以实现microblaze 处理器对全速和高速USB 海量存储设备的管理。本文主要介绍USB 主机控制器IP 核设计中的两个重要模块--与物理层接口的ULPI 模块以及USB2.0 协议层模块的设计实现。

  2 ULPI 接口模块的设计及实现

  ULPI(UTMI+低引脚数)接口规范是应用于高速通用串行总线(USB)和便携式USB(USBOTG)收发器芯片的行业规范。ULPI 模块提供USB 主机控制器与UTM 正常通信的物理层通道,是主机控制器实现正常通信的重要接口之一。该模块依据ULPI规范实现了总线事件检测的功能,完成了上电,正常操作,挂起和复位状态之间的转换等。

  此模块采用状态机来实现,主要通过对 ISP1504 的功能控制寄存器写入一定的数据,使得物理层芯片的收发器进入相应的状态(全速、高速以及高速挂起),对状态机中时间控制采用计数器实现,主机端发送kj 序列对首先通过写ISP1504 的功能控制寄存器使之进入高速chirp 检测状态,然后在数据线上发送全0 和全1 来完成的。本设计USB2.0 主机控制主要针对全速和高速海量存储设备设备,全速和高速的状态转移图如图2 所示:

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论