微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 中科SoC的USB1.1 OHCI主机控制器IP设计

中科SoC的USB1.1 OHCI主机控制器IP设计

时间:08-02 来源:互联网 点击:
系统阐述了USB1.1 OHCI 主机控制器IP 的功能、结构、各功能模块的电路设计和实现方法,介绍了主机串行接口引擎模块及其时钟和数据恢复电路以及并行CRC 算法的设计。

为了验证OHCI 主机控制器功能正确性,在中科SoC 虚拟验证平台上对该主机控制器做了系统级模拟验证,验证结果证明了设计的正确性。
  
IP 就其本质来讲是一个能提供正确接口信号的功能模块。随着EDA 技术和半导体工艺技术的发展,集成电路的规模越来越大,设计越来越复杂,使用IP 核是一个必然趋势。研究开发超大规模集成电路设计业亟需的、具有良好应用前景的IP 核,积极推动IP 核的应用,对于我国集成电路产业的良性发展将会起到极大的促进作用。USB 通用串行总线是众多计算机厂商和电信厂商共同开发的用于计算机外设连通到计算机的规范。它日益成为一种主流的计算机接口标准。它包含3 大技术要素:主机,集线器和功能。国外一些公司近年来相继开发出基于上述3 个技术要素的IP,国内一些IC 设计公司也开始在这些领域内作研究,但由于USB 主机控制器IP 的设计一直是USB 系统设计中的难点,成果较少。  
作者遵循USB 规范和开放主机总线接口(Open HostController Interface, OHCI)规范,基于ASIC 流程开发出了USB1.1 OHCI 主机控制器IP。   


  
在所有的实现中,主机控制器都必须提供基本相同的功能,主要包含状态处理、串行化与反串行化、帧产生、数据处理、协议引擎、传输差错控制、远程唤醒、集线器、主机系统接口。根据这些要求,参考USB 规范和OHCI 规范,通过定义一组与主机系统存储器交互的虚拟主机总线接口以及收发器接口,作者将设计分成若干部分,将每一部分需要完成的目标功能单独描述并验证,在此基础上再作顶层的整合。进行功能划分后OHCI 主机控制器IP 的结构如图1。  

主机控制器功能模块设计  

主机系统接口模块  

该模块由两个部分组成,主要功能是在主机系统与OHCI主机控制器之间建立高速的数据通道。按照数据传输的发起者不同,可以分为HCI 主模块和HCI 从模块,前者负责发起对系统存储器的读写操作,后者负责响应主机系统或CPU 的读写操作。针对不同的SoC(System on a Chip)片内总线,可以在主机系统接口模块与片内总线之间实现简单的胶合逻辑,从而实现USB 主机控制器IP 的重复使用。  

状态控制模块(USB State Control)  

它是列表处理器层次结构的上层模块,直接由OHCI 寄存器来控制。它实现了主状态机,可用来触发列表处理器中较低层次的状态机。主状态机还可以生成一些控制信号,以便控制下列操作:传输SOF(Start of Frame)标示、复位/恢复、向系统存储器中的HCCA(Host Controller CommunicationArea)写回每微秒的帧序号等。该模块还实现了优先级算法,该算法基于OHCI 寄存器决定当前需要处理周期性列表还是非周期性列表,如果非周期性列表获得优先权,它可以确定当前应该执行的传输是控制传输还是批传输。  

列表处理器模块  

它是整个IP 核最关键的控制器,实现了OHCI 规范规定的绝大部分协议。按照OHCI 规范,它有多个状态机实现列表服务流、列表优先级、ED/TD 服务、状态写回、TD 撤退等功能。它充当一个控制器,连接HCI Master 和Host SIE,帮助它们在系统存储器和USB 之间实现数据传输。它包含4个子模块:列表服务流程模块、端点描述符服务流程模块、传输描述符服务流程模块以及HCI Master 接口模块。

数据FIFO 和数据FIFO 控制模块  

数据FIFO 模块实现了一个宽度为8bit、深度为64byte的FIFO,它的主要作用是同步Host SIE 和HCI Master 之间的数据传输。数据FIFO 控制模块实现了主机控制器的内部数据FIFO 的方向控制逻辑,以便在USB 和系统存储器间传输数据。  

对于IN Packet,当数据从端点接收时,Host SIE 将其存储在数据FIFO 中。当所有数据收到(对GTD/ITD 而言)或数据FIFO 中的数据超过一定的门限(≥16byte),TD 状态机发起一个写命令通知HCI Master 接口模块。HCI Master 接口模块提供写的起始地址,同时本模块提供写回的字节数,触发HCI Master 执行一个写周期。HCI Master 写操作结束以后,它将控制返回到TDSF 的TD 状态机。  

类似的,对于OUT Packet,TD 状态机通知本模块从系统存储器读取数据。读操作的地址和字节数由HCI Master 模块来提供。若数据超过16byte,它将通过HCI Master 执行多次操作。  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top