USB2.0接口和基于ARM核的SOC系统的应用已经非常广泛,特别在电子消费类领域。包含USB2,0接口的ARM系统则更是市场的需求。本文介绍一种基于ARM核的USB2,0接口IP(AHB_USB2.0)的设计,主要对其中的串行接口引擎(SIE)的设计进行讨论。 该 AHB_USB2.0 IP核支持USB2.0协议,并兼容USB1.1协议;支持AMBA2.0协议和UTMI 1.05协议。该IP核一侧通过UTMI接口或ULPI接口的PHY与USB2.0主机端进行通信;另一侧则通过AHB总线与ARM相连。 AHB_USB2.0 IP核在硬件上分为三个大模块:ULPI模块(ULPI)、串行接口引擎(SIE)模块和AHB总线接口模块(AHB)。ULPI模块实现了UTMI接口转ULPI接口。串行接口引擎(SIE)模块为USB2.0的数据链路层协议处理模块,为整个IP核的核心部分,进一步分为四个子模块——GLC(全局控制模块),PIE(PHY接口处理引擎),SIF(系统接口逻辑)和EPB(端点缓冲模块)。GLC模块负责整个IP的复位控制,IP时钟的开关提示等;PIE模块负责处理USB的事务级传输,包括组包解包等;SIF模块负责协议相关寄存器组和端点缓冲区的读写,跨时钟域信号的处理和PIE所需的控制信号的产生;AHB模块负责IP核与ARM通信和DMA功能的实现。 该IP核的软件设计遵循USB协议,Bulk Only协议和UFI协议,由外挂ARM实现USB设备命令和UFI命令的解析,并执行相应的操作。设计了IP核与ARM之间的多种数据传输方法,通过软件实现常规数据读写访问、内部DMA或外部DMA等多种方式的切换。 本IP已经通过EDA验证和FPGA测试,并且已经在内嵌ARM核的FPGA系统上实现了多个U盘。这个FPGA系统的正确工作,证明了AHB_USB2.01P核设计是正确的。