论文部分内容阅读
由于USB具有传输速度快,支持热插拔,使用灵活等优良特性,已经成为一种应用非常广泛的串行接口标准,差不多有电子设备的地方就有USB。正因为如此,有不少企业或研究单位,投入大量的人力与物力,参入到USB相关的硬件与软件的研究与开发,期望在自己的产品中加入USB的功能,以提高产品的竞争力,除了要达到所需的USB性能,还不能增加太多的成本。于是提出了开发低成本USB2.0主机控制器的课题。本论文首先讨论了USB2.0与UTMI等相关的协议,然后分析了市场上主要几类主机控制器(UHCI、OHCI、EHCI、xHCI和其它厂商或个人自行定义的)及相关协议标准或硬件与软件设计方案。并以此为基础,提出新的低成本的USB2.0主机控制器的硬件与软件设计方案。硬件设计方案部分包含USB2.0主机控制器的架构,软硬件寄存器接口定义及AHB从机接口模块(usb20_sl_if)、DMA控制模块(usb20_dma_ctl)、缓冲管理模块(buffer_manage)、协议层控制模块(usb20_host_pl)、主机寄存器模块(usb20_host_reg)、集线器控制模块(usb20_port_ctl)等各功能子模块功能及状态转换描述,并用Verilog HDL实现。软件设计方案部分,只设计了与硬件相关的主机控制器驱动程序部分,与硬件无关的USB协议栈与客户端软件可以直接复用Linux内核中的相关程序。主机控制器驱动程序包含了USBD接口模块、根集线器模块、数据传输模块、中断管理模块等子模块功能及函数描述,并用C语言实现。此外还定性分析了此方案确实会比UHCI、 OHCI、 EHCI、xHCI等主机控制器的硬件成本低,也定性分析了此方案在存储类设备方面的性能不会逊色于UHCI、 OHCI、 EHCI、xHCI等主机控制器。为了保证此方案的主机控制器的高性能,实现了两点创新:一是用两个单端口SRAM来实现异步时钟域的乒乓缓冲;二是利用DMA读写数据传输与USB传输的流水线并行操作,从而提高USB总线的带宽利用率或降低对系统总线的带宽的要求。最后采用基于BFM的自动化的验证方法,对USB2.0主机控制器的低速、全速、高速的数据传输,总线复位及DMA等相关模式及操作做了完整的验证,都符合USB2.0及UTMI协议标准。同时还用Synopsys的Design Compile综合工具,对USB2.0主机控制器的RTL综合出来的电路只有7.5千门(不包含SRAM面积)。结果表明,此方案是可行的,能同时满足低成本高性能的需求,达到了预期的目标。