微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > USB2.0 SIE的ASIC设计与实现

USB2.0 SIE的ASIC设计与实现

时间:08-30 来源:互联网 点击:
1 引言

通用串行总线 (USB) 是 Intel 公司 1996 年提出、由康柏等七家公司联合制定的一种新型接口技术。 USB 历经七年的发展,目前已经到了 2 . 0 版本。由于数据传输速率高,传输可靠,连接灵活,成本低廉,所以 USB 在 PC 领域获得了广泛的应用。USB 系统中包含的硬件和软件如图 1 所示。所有的 USB 传输事务都在 USB 系统软件控制下进行,

系统软件包括 USB 设备驱动、 USB 驱动和 USB 主控制器驱动程序。 USB 设备驱动程序负责与 USB 设备进行通信,它提供了 USB 设备驱动程序和 USB 主控制器之间的接口。这些软件负责把客户请求转换为一个或多个传输事务进行处理,然后被直接送往 USB 目标设备或者被目标设备发出。


  
每个 USB 传输事务包含一个或若千个信息包,包括令牌包、数据包、握手包、专用包,信息包采用了非归零编码 (NRZI) 的串行传输方式。为了便于接收端信号的时钟恢复,传输中的串行数据还要进行位填充处理,使串行信号不跳变的最长时间为 6bit 。

2 USB 通信模型

USB 系统采用的塔形拓扑结构使 USB 系统只能采用共享总线的方式进行通信,即所有设备只能通过一条数据通路与主控制器进行通信。在总线中,每个设备具有 - —个地址,而且每个设备中的若干端点也被分配了端点地址。所有通信的数据来源或目的都是基于这些端点地址,所以从客户软件看来,对端点的操作就像处于一个独立的管线中,如图 2 所示。


  
在 USB 系统中,对端点的操作被设备驱动程序分解为 IRP(I/Orequest packets) 。 USBHOST 把这些 IRP 分解为基本的传输事务 ( 如 IN , OUT 等 ) ,安排在相同或不同的帧中。每个传输事务包含若干信息包,其中包含了与 HOST 通信的设备地址和端点地址,只有地址对应的设备或端点才能响应 HOST 发出的信息包。

基于以上分析,可以构造出设备端 SIE 通信模型,如图 3 所示。在这个模型中,由端点控制/状态寄存器 (CSR) 和端点 FIFO 组成的管线记录了端点的状态和通信的有效数据。端点控制逻辑用于端点选择及端点访问控制。通过 USB 设备功能接口,设备功能软件可以方便地以管线形式对端点进行状态控制,以实现 USB 通信。


  
3 USB SIE 电路结构和设计

3.1USB SIE 电路结构

根据 USB 通信模型 ,构造的 SIE(serial inter face engine) 电路结构如图 4 所示。主要包含 UTMI , PL( 由 PD , PA , PE 组成 ) , MA , UC_RF , BUFFER , WB 等功能模块 , 可以完成 USB 速度识别、解析信息包、组构信息包、底层协议处理、缓存管理、中断请求等功能。此外它还需要外接控制器才能完成 USB 通信。


  
3.2 USB SIE 各功能模块说明

UTM(USB transceiver macrocell) 主要完成两个功能:从 USB 总线上接收数据,经过 NRZI 解码和位剥离后,转换为 8 位并行数据,传送给 SIE 中的 UTMI £》或从 UTMI 接收 8 位并行数据,经过 NRZI 编码和位填充后,发送到 USB 总线。

UTMI(UTM interface) 的主要功能有两个:接受 PD , PA 的控制,在 UTM 数据线上输入或输出数据:检测总线状态以及识别总线速度。

PD(packet disassembler) 将接收到的信息包数据进行解析,解析出包标识 (PID) 、端点地址和 Function 地址以及包含在包中的有效数据。在解码时,要对必要的令牌包进行 CRC5 校验,对数据包进行 CRCl6 校验。

PA(packet assembler) 根据 PE 送来的 PID 组织相应的信息包,把要发送的数据安排在相应的数据包,或者组织令牌包。发送令牌包时,不必产生 CRC5 校验位。在发送数据包寸,需要把有效数据的 CRCl6 校验位放在包末尾一起发送。

PE(protocol engine) 可以对 IN,OUT 以及 SETUP 事务进行单线程处理 ( 串行总线不能同时进行两个以上 USB 传输事务 ) ,且确定当前传输事务要操作的端点地址,所有对 MA 和 RF 的当前操作都基于这个端点地址。 PE 要根据当前端点的配置或当前状态处理传输事务,并在传输事务中实时更新控制/状态寄存器 CSR 。 SIE 还能通过 CSR 中的中断向量请求设备总线的控制支持。 PD , PA , PE 三个模块组成了 USB SIE 的协议层 (PL) 。

MA(memory buffer arbiter) 管理数据的流向, WB 通过最高位地址选择读写目标是 FIFO 还是UC_RF ; PE 则通过端点地址选择相应的 FIFO 和 UC_RF 。在对 FIFO 的操作上, PE 比 MA 有更高的优先权。

UC_RF(USBcorer egister file) 最多支持 16 个端点。每个端点的 CSR 分别存储本端点的当前状态。每个端点的 CSR ,包含 5 组寄存器,分别为配置 CSR 、协议 CSR 、进程 CSR 、中断状态 CSR 和中断屏蔽 CSR 。它们可以接受 MA 和 PE 读写。

BUFFER(USB SIE buffer) 对相应的端点收发数据进行缓存,最多支持 16 个端点。每个端点 FIFO 占用固定的 SRAM 区域,分别有读指针和写指针指向该端点对应的区域。

WB(Wishbone interface) , 标准 Wishbone 接口,连接两个不同的时钟域,在数据传输时要把两个时钟域分割开。

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

网站地图

Top