USB2.0 SIE 的 ASIC 设计与实现
发布时间:2008/6/3 0:00:00 访问次数:745
通用串行总线 (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 校验位放在包末尾一起发送。
ma(memory buffer arbiter) 管理数据的流向, wb 通过最高位地址选择读写目标是 fifo 还是uc_rf ; pe
通用串行总线 (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 校验位放在包末尾一起发送。
ma(memory buffer arbiter) 管理数据的流向, wb 通过最高位地址选择读写目标是 fifo 还是uc_rf ; pe
深圳服务热线:13751165337 13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)

深圳市碧威特网络技术有限公司
付款方式