USB2.0主机控制器IP核的介绍及其设计方案

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

握手包格式转换

简介:为了提高产品集成度并摆脱对USB2.0主机控制器ASIC芯片的依赖,本文设计了一款针对全速和高速USB海量存储设备的USB2.0主机控制器IP核。文章首先介绍了USB2.0通信协议和ULPI接口规范协议,然后利用VHDL硬件描述语言完成了ULPI接口模块和USB2.0通信协议模块的设计。通过Xilinx公司的ISE Simulator工具进行波形仿真,并在Xilinx XUPV2开发板上进行了验证,仿真结果和FPGA片上实验表明,本文设计的USB2.0主机控制器能够有效地管理USB海量存储设备。

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

ULPI模块位于USB2.0主机控制器的协议模块和物理层芯片之间,完成对插入USB设备的状态检测和设备类型判别,并根据设备类型进行相应的USB传输事务。USB传输由事务组成,每个事务由令牌包、数据包、握手包和特殊包组成。USB协议包含四种数据传输类型:控制传输、批量传输、中断传输和同步传输。本文设计的USB2.0主机控制器IP核主要针对全速和高速海量存储设备,通过ULPI模块实现了设备状态的有效管理。

在系统设计中,使用Xilinx Virtex-II Pro XC2VP30 FPGA作为主控芯片,通过物理层芯片ISP1504子板和USB接口连接到FPGA开发板。FPGA内嵌了MicroBlaze软核处理器,USB主机控制器IP核作为用户IP核挂接到处理器的PLB总线上,并加入USB驱动程序,实现了对全速和高速USB海量存储设备的管理。本文重点介绍了ULPI接口模块和USB2.0协议模块的设计和实现。

ULPI接口模块的设计基于ULPI规范,实现了总线事件检测功能,完成了上电、正常操作、挂起和复位状态之间的转换。该模块采用状态机实现,通过控制寄存器的写入和计数器的使用来控制状态转移。通过仿真波形可以验证ULPI模块的正确性。

USB2.0协议模块的设计主要包括封包模块(PA)、拆包模块(PD)和控制传输的协议引擎模块(PE)。封包模块负责对令牌包、数据包和握手包进行封装并发送到ULPI模块。拆包模块则是对从ULPI模块接收到的数据包和握手包进行拆包。协议引擎模块主要负责协调封包模块和拆包模块,实现USB传输方式的控制。根据传输请求的类型,协议引擎模块会根据状态转移图进行相应的处理。

通过仿真波形可以验证封包模块和拆包模块的正确性。设计的USB2.0主机控制器IP核可以作为独立的IP核移植到其他数字系统中,提高产品的集成度。

结论:本文设计了针对全速和高速USB海量存储设备的USB2.0主机控制器IP核,通过ULPI模块和USB2.0协议模块的设计和实现,摆脱了对USB2.0主机控制器ASIC的依赖,提高了产品的集成度。设计采用VHDL语言进行RTL级描述,并通过Xilinx ISE Simulator工具进行了波形仿真。仿真结果验证了设计的正确性。在Xilinx XUPV2 FPGA开发板和带有USB接口的子板上进行了验证。该USB2.0主机控制器IP核可以作为独立的IP核移植到其他数字系统中,为USB海量存储设备的管理提供了有效的解决方案。

赞(0)