论文部分内容阅读
目前USB设备控制器的实现方式主要有两种:全集成芯片和部分集成芯片。全集成芯片在单芯片内集成了USB设备控制器核和基于该核的单片机,这种设计节省了芯片资源,但制作专用集成电路(ASIC)的周期长,不利于产品升级。而部分集成芯片则使用分离的通用微处理器(如ARM)和USB控制芯片(如SL811HS),这样的组合缩短了开发周期,但集成度较低,且USB控制芯片作为“黑盒”调试起来也比较麻烦。这两种方法各有优劣,而两者共同的缺点是都需要采用ASIC,使得整个实现方式不够高效灵活,亦不利于硬件升级。
随着电路规模越来越大,片上系统(SoC)已经成为IC设计的发展趋势,在这种形势下,可编程片上系统(System on Programmable Chip,SOPC)的设计方法应运而生。SOPC将处理器、存储器、I/O接口等系统设计必需的功能模块集成到一个可编程逻辑器件上,构建成一个可编程SoC,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软/硬件在系统可编程的功能。Altera公司的NiosⅡ处理器是一种基于SOPC的RISC型的软核处理器,具有较灵活的可配置性,且占用较少的逻辑单元,该软核配置、编译完成后可直接嵌入到FPGA中。
本文基于SOPC技术,在单片FPGA中集成了一个完整的USB2.0设备系统。硬件部分包含NiosⅡ处理器和USB2.0设备控制器;软件设计使用QuartusⅡ(及内嵌的SOPC Builder)和集成开发环境NiosⅡ IDE,建立顶层软件工程,并完成了相应固件的开发和调试。自行设计制作了PCB测试电路板,板上集成了Altera的CycloneⅡ型FPGA芯片EP2C35F484C8、USB2.0收发器和存储器等元件。以JTAG模式下载FPGA配置文件到PCB测试版,实现了USB2.0设备系统。使用逻辑分析仪,通过USB端口信号监测软件Bus Hound对PCB验证板连接到主机USB端13的数据传输过程进行分析,验证了整个SOPC系统的正常工作。此外,由于处理器和USB2.0设备控制器都是以软核的形式嵌入到FPGA中,整个系统具有非常灵活的可配置性,充分体现了SOPC技术的优势。