论文部分内容阅读
通用串行总线(USB)是目前应用非常广泛的计算机与外围设备互连标准,比起传统的并行接口,它有连接简单、可扩展性强等重要的优点。本文为了在SoC芯片中嵌入USB设备控制器接口,实现与PC的通信,设计了一款USB2.0设备控制器IP核。本文依据USB2.0协议规范,提出了一个新的USB2.0设备控制器IP核的系统架构。该架构对模块划分时尽量做到每个模块功能独立且信号流清晰。该IP外部接口有两部分:与物理收发器接口遵照UTMI协议规范来进行设计。而与应用的接口,尽量做到能够满足多数应用情景,同时又拥有很大的灵活性,可以很方便的根据具体应用进行重新设计。根据架构设计了工作模式控制、信息包处理、事务处理和枚举控制四个模块。工作模式控制模块完成复位检测、高速握手、设备挂起和唤醒的控制。事务处理模块完成对USB事务的三个步骤(令牌、数据、握手)的控制。信息包处理模块负责对接收到信息包的识别与CRC校验,发送信息包时进行组包和添加CRC校验码。枚举控制模块实现对USB设备的枚举控制,以硬件电路来代替传统USB设备控制器用MCU和固件一起才能完成的枚举。经验证该IP核有完善的功能,可以支持高速(480Mbps)和全速(12Mbps)两种传输模式。本文给出了各模块的设计与仿真,并用modelsim工具对IP核进行了传输级、事务级、信息包级的功能验证,结果表明设计的核符合USB协议规范。最后设计制作了一个FPGA测试板,使用Xilinx公司的开发工具和USB协议分析仪对设计的IP核进行了物理验证,验证结果表明设计的IP核可以正常工作,并顺利完成了设备的枚举。本设计可以当成一个通用的USB2.0设备控制器的IP核使用,开发USB功能设备,也可以作为一个功能模块嵌入到SoC,实现复杂的功能。该IP核与应用层的接口可以根据实际应用需要进行修改,因此具有很强的通用性、实用性。