无无MCU的的USB2.0设备控制器设备控制器IP设计与验证设计与验证
实现了一种无需MCU的USB2.0设备控制器IP核。使用硬件电路代替传统单片机实现的MCU和固件功能,支持
高速(480 Mb/s)和全速(12 Mb/s)传输。所设计的IP核在FPGA上经过了验证,结果表明它可以作为独立的模块用
于SoC系统中。
通用串行总线USB(Universal Serial Bus)是现今最为流行的计算机接口,它是一种快速、双向、同步、可动态监测的串行接口
[1]。目前大多数的USB设计都是经过系统集成,采用现成的商用USB芯片进行开发,并没有涉及到IP(Intellectual Property)核
的设计与开发。在SoC(System on Chip)开发中可以利用已有的IP核开发成果,缩短系统芯片的设计周期,提高效率。本文通
过分析USB2.0协议,实现了一个无需外置MCU(Micro Control Unit)的USB2.0设备控制器IP核,并进行了FPGA验证,可用于
SoC的集成中。
1 USB2.0设备控制器系统设计设备控制器系统设计
目前USB2.0设备控制器广泛使用的系统架构是串行接口引擎SIE(Serial Interface Engine) +MCU模式,SIE负责解释USB协议
层的动作[2]。一方面,SIE模块将主机发送的信息解释成后端功能设备能够识别的信息;另一方面,将功能模块相关数据按照
符合USB协议的格式发送给主机。这种传统的USB设备控制器设计核心是针对事务(Transaction)和信息包(Packet)的处理。对
于关键的控制传输,则需要外置单片机和固件的辅助,因为这种传统的USB设备控制器不能独立完成USB与主机通信过程中
最核心的枚举过程。
本文使用硬件电路代替传统单片机实现MCU和固件的功能。整体框架如图1所示,图中实心箭头代表应用与主机之间的数据
流。
采用Top-to-Down(自顶向下)的设计结构将USB设备控制器划分为以下主要功能模块:
(1)Init模块:实现UTMI协议(USB 2.0 Transceriver Macrocell Interface(UTMI) Specification)的相关细节,主要用于控制总线挂
起/恢复模式与速度模式的切换。
(2)Packet模块:对接收到的USB格式的信息包进行处理,提取其中的数据,检验CRC;对发送的数据进行封装,添加CRC检验
位。
(3)Transaction模块:对USB定义的基本事务(transaction)类型(如IN、OUT、SETUP和PING等)按照协议规范处理。以上模块实
现SIE的功能, 其事务处理流程如图2所示。
评论0
最新资源